之前AlphaGo擊敗韓國名將李世石的新聞讓更多的人開始關(guān)注人工智能雕什,特別是后來AlphaGo Zero缠俺,只訓(xùn)練的40天又把AlphaGo遠遠超越。著實讓人不得不感嘆道:哎呀臥槽贷岸!好牛逼R际俊!要知道偿警,之前的AlphaGo是學(xué)習(xí)人類的棋譜訓(xùn)練出來的躏救,也算是以人類的智慧為基礎(chǔ),博采眾長嘛,贏了也正常盒使”谰颍可是這Zero版本就不一樣了,從來沒見過人類是怎么下棋少办,只知道下棋規(guī)則苞慢,如何算贏。這樣經(jīng)過幾百萬盤的自我博弈后就輕松的擊敗老版本AlphaGo凡泣,這讓人類顏面往哪兒擱枉疼;好歹AlphaGo Zero也是人類(DeepMind團隊)寫出來的,總算挽回了些面子鞋拟。等有一天這玩意兒進化成【天網(wǎng)】的時候骂维,就沒人類什么事了。
口水話太多贺纲,還是引入幾個專業(yè)術(shù)語來提升提升文章的逼格吧航闺。
很容易看出來:機器學(xué)習(xí)是一種實現(xiàn)人工智能的方法,而深度學(xué)習(xí)則是實現(xiàn)機器學(xué)習(xí)的一種技術(shù)猴誊。
深度學(xué)習(xí)潦刃,說白了就是:我們建立一個模型,把一堆訓(xùn)練數(shù)據(jù)不停的往里扔懈叹,根據(jù)當前模型算出來的結(jié)果與真實結(jié)果的差異來修正模型參數(shù)乖杠,直到這個模型能真正反映訓(xùn)練數(shù)據(jù)。再白一點就是:已知曲線過幾個點澄成,求這個曲線的方程——經(jīng)過的這幾個點就是我們的數(shù)據(jù)胧洒,算出來的方程就是我們最終訓(xùn)練出來的模型 。
目前深度學(xué)習(xí)對圖像識別墨状、語音識別等問題來說就很適合卫漫,因為它就是現(xiàn)實的映射。比如你寫個8肾砂,最多歪一點列赎,但是大體形狀跑不了;你說一句話镐确,那一串音頻信號和一些文字其實是一一對應(yīng)的包吝。正如x通過函數(shù)y=f(x)之后與y一一對應(yīng)一樣。
正是因為深度學(xué)習(xí)的模型是現(xiàn)實的一種反映源葫,所以它缺乏反饋機制诗越,無法根據(jù)情況的變化實時改變。像AlphaGo Zero那種可以“自娛自樂”的程序則需要引入強化學(xué)習(xí)臼氨。
強化學(xué)習(xí)是機器學(xué)習(xí)中的一個領(lǐng)域,強調(diào)如何基于環(huán)境而行動芭届,以取得最大化的預(yù)期利益储矩。其靈感來源于心理學(xué)中的行為主義理論感耙,即有機體如何在環(huán)境給予的獎勵或懲罰的刺激下,逐步形成對刺激的預(yù)期持隧,產(chǎn)生能獲得最大利益的習(xí)慣性行為即硼。
為了讓我們的人工智能更加智能,能夠舉一反三屡拨,所以還需要遷移學(xué)習(xí)只酥。
Transfer learning or inductive transfer is a research problem in machine learning that focuses on storing knowledge gained while solving one problem and applying it to a different but related problem.[1] For example, knowledge gained while learning to recognize cars could apply when trying to recognize trucks. This area of research bears some relation to the long history of psychological literature on transfer of learning, although formal ties between the two fields are limited.
瞄了一眼文章的標題,感覺稍微有點跑題呀狼。
好了裂允,現(xiàn)在開始科普無人駕駛。在無人駕駛前先了解下機器學(xué)習(xí)入門的 Hello World 程序:手寫數(shù)字識別(還要繼續(xù)跑題)
對于手寫數(shù)字識別哥艇,我們的輸入是寫著1234567890的一張張圖片绝编,還有這一張張照片本來代表的數(shù)字的標記,也就是我們需要求解的方程y=ax+b里面的x(手寫數(shù)字圖片)貌踏、y (圖片上的數(shù)字到底是幾) 十饥。
圖片是x?(書讀得少祖乳,不要騙我逗堵,以前數(shù)學(xué)老師沒講過x可以代表圖片哦)計算機二進制曉得噻,01010010是啥眷昆,我也不知道蜒秤,只是經(jīng)過約定好的規(guī)則轉(zhuǎn)換過來顯示在屏幕上人類才能識別。人與人之間的交流也是一樣的隙赁,我們的祖先不知道從什么時候開始約定用“人”這個符號代表我們這個物種垦藏;等哪天大家都說“狗”這個字筆畫多些,顯得大氣伞访,跟我們這個物種的身份更匹配掂骏,那么我們從此以后就改叫“狗類”。其實都一樣厚掷,我們這樣約定了之后弟灼,大家再說“狗類”的時候,我們就曉得是在說我們自己了冒黑。一點也不影響我們要表達的意思田绑。
回到剛剛的“x可以代表圖片”問題。圖片是什么抡爹,電腦里面的圖片并不是真正意義上的圖片掩驱。照相機的CMOS記錄的是曝光一瞬間CMOS各個位置的亮度信息,而亮度就是0-255(或者0-1,跟剛才說的一樣欧穴,只要大家約定好一點不影響)之間的一個數(shù)值民逼。
好了瘫析,既然x和y都是數(shù)字,現(xiàn)在可以放心的代入方程 y = ax+b 求a默责、b(這個過程就叫神經(jīng)網(wǎng)絡(luò)的訓(xùn)練)贬循,求出的方程(模型)我們就可以拿來識別數(shù)字。顯然桃序,a杖虾、b已知,代入x 媒熊,算出的y就是模型的識別結(jié)果奇适。
當然,剛剛你也看到了芦鳍,圖片的數(shù)組里面有很多數(shù)字嚷往,一個x是遠遠無法代表的,所以我們需要很多的x柠衅,x1皮仁、x2、x3 菲宴、...贷祈、 xn,很多的方程喝峦,方程嵌套方程——所謂神經(jīng)網(wǎng)絡(luò)(Neural Network)就像下面這種:
還有這種:
哈哈势誊,懵逼了吧??
不懂也沒關(guān)系,反正知道通過梯度下降谣蠢,反向傳播算法最后確實可以把那一個個參數(shù)算出來就行粟耻。反正是科普嘛查近,了解得太深入那不成了科研?
才疏學(xué)淺挤忙,我也有點懵逼嗦嗡。不知道DeepMind那幫人腦子里面都裝了些啥,AlphaGo Zero這樣的程序也能寫出來饭玲,程序員與程序員的差距咋就這么大呢 [好好反省]
打總結(jié):總之,像手寫數(shù)字識別這種叁执,只要知道輸入圖片和圖片對應(yīng)的數(shù)字就可以求出方程 [假裝懂了] ——總感覺表情不夠用 茄厘。
無人駕駛其實和手寫數(shù)字識別一樣,也使用深度學(xué)習(xí)技術(shù)谈宛。而在無人駕駛的車輛上面次哈,我們會在車輛前方安裝一臺照相機,還有一個測量方向盤當前角度的儀器吆录。在訓(xùn)練的時候(由人駕駛車輛)窑滞,照相機負責(zé)不停的拍照,獲取車上視覺拍攝到的馬路照片恢筝;與此同時從方向盤角度測量儀獲取角度值。
下面兩張圖片分別是汽車左轉(zhuǎn)和右轉(zhuǎn)的時候拍攝的馬路照片:
好吧撬槽,我們又來【解方程】此改。 輸入x便是馬路的照片侄柔,y便是方向盤的角度,帶入假設(shè)方程y=ax+b解出參數(shù)便得方程(即最終訓(xùn)練好的模型)欲间。等到自動駕駛的時候,實時拍攝馬路照片x铣卡,代入方程(模型)算出方向盤角度y。然后根據(jù)方向盤的角度——突然意識到贝椿,在車上還需要安裝一個可以根據(jù)角度值旋轉(zhuǎn)方向盤的機械裝置了
所謂無人駕駛就是這么回事,這下明白了吧陷谱,Give me five !