【白話AI】機器是如何模仿大腦學習的?(一)
來自專欄思故是4 人贊了文章
聯結學派(模仿大腦學習)的崛起
在過去的十年里,由於在訓練深度人工神經網路領域的技術性突破,機器學習的聯結學派(模仿大腦學習)迅速崛起。深度人工神經網路不僅在包括圖像識別和語音識別等傳統機器學習演算法的強勢領域屢屢打破紀錄,更令人興奮的是他還在話題歸類、語義分析、自然語言回答和語言翻譯等,讓工程師們頭疼的任務上取得了非常令人矚目的成績。例如,谷歌2016年11月發布的多語言人工神經機器翻譯模型(Neural Machine Translation Model)不僅在多個語言對上超過了現有的最好機器翻譯模型,甚至在某些語言的翻譯上取得與人類翻譯近似的成績。
目前,這些最新的研究成果不僅僅是躺在某個學術庫里的論文,他們已經被谷歌、微軟、臉譜網(Facebook)等公司大規模的應用在與我們日常生活息息相關的各種領域。例如,當你在谷歌網上搜索的時候,後面的系統已經不是簡單的網頁排名+關鍵字匹配,而是由十幾個人工智慧系統同時在試圖作答。這些系統把互聯網上的信息建立成龐大的知識腦圖,並利用這個腦圖回答我們提出來的問題。超過70%的情況下,最後呈現在你面前的結果是由這些系統主動根據你的問題的理解做出的主動回答,而不再是簡單的網頁鏈接。雖然這個系統還有很多不完善的地方,但是我非常有理由相信未來人工智慧能夠對於人類的信息自動建立自己的理解,從而更從容的應付人類的複雜需求。
不過,這個系統再複雜也是由人造的,下面我們一起來試著揭開深度學習的神秘面紗,看看她到底是怎麼運作的。
神經元
老規矩,我們先從最簡單的方面入手。
神經元(neuron),又名神經原或神經細胞(nerve cell),是神經系統的結構與功能單位之一。神經元能感知環境的變化,再將信息傳遞給其他的神經元,並指令集體做出反應。
相信大家都應該在高中生物課里見過這個圖,這個是神經元(生物)的一個基本構造。它的基本工作原理是通過它的樹突從其他的神經元獲得信號輸入,再經過軸突處理,最後通過突觸把信號傳遞給其他的神經元。
1943年,心理學家沃倫·麥卡洛克和數理邏輯學家沃爾特·皮茨基於這個最基本的大腦功能單位設計了最早的人工神經元的數學模型。這個數學模型的發表也標誌了人工神經網路研究時代的開始。
在這個模型中,信號只有兩種:開(1)和關(0),當總的「開」的輸入信號超過某個特定值時,這個人工神經元就輸出「1」,否則就輸出「0」。舉個例子如果一個人工神經元的閾值是5,並且有10個輸入聯結,那麼當這10個輸入中超過5個為「1」的時候,這個人工神經元就會對聯結在它後面的神經元輸出「1」。這個簡單的模型完整的用數學方式表達了神經元信號傳遞的方式——整合多個信號輸入並轉化為一個信號輸出給其他神經元。
不過這個模型有個非常重要的缺陷——它是「死」的,也就是說一旦這個人工神經元存在了,它的工作方式就固定了。用上面的例子來說(假設閾值是生物機理,不可變),如果一個人工神經元輸出「1」,那麼它就會一直輸出「1」,並不會因為其他因素而改變。理論上,如果我們大腦中都是這樣的人工神經元的話,一旦我們大腦形成了某種認知以後,它就不會再通過後面的學習而提高這個認知。
那麼怎麼改進這個模型來讓它具有學習功能呢?在回答這個問題之前,讓我們先來看看人腦是如何學習的。
能學習的人工神經元
1949年,唐納德·赫布提出了非常有名的赫布定律(Hebb』s Rule),這個定律描述了在人類學習時大腦中神經元的變化方式,從而奠定了我們關於人腦學習方式的基本認知。
赫布定律: 我們可以假定,反射活動的持續與重複會導致神經元穩定性的持久性提升……當神經元A的軸突與神經元B很近並參與了對B的重複持續的興奮時,這兩個神經元或其中一個便會發生某些生長過程或代謝變化,致使A作為能使B興奮的細胞之一,它的效能增強了。
(來源:維基百科 link)
說實話這個定理看不懂不能怪翻譯。原文本身就是那種詞都認識,可是就是不知道在說啥的感覺。我反而覺得赫布的另外一句話反而更具有啟發性:如果一個神經元持續激活另一個神經元,前者的軸突將會生長出突觸小體(如果已有,則會繼續長大)和後者的胞體相連接。也就是說當我們反覆同時刺激兩個神經元,他們之間的聯結就會獲得增強,從而「記住」這個刺激。例如,當一個小孩的父母拿著一個蘋果反覆告訴他那是一個蘋果的時候,這個小孩的大腦中相關的神經元之間的連接就通過這個反覆刺激獲得了增強,從而對蘋果形成了記憶印痕,也就逐漸認識了蘋果。
受這個對於人腦學習方式的認知的啟發,1956年弗蘭克·羅森布拉特進一步改善了人工神經元設計,增加了類似於人腦的學習機制,這個模型叫做感知器(Perceptron)。
可以看到這個模型與之前的模型唯一不同之處就是在每個輸入信號上面都加了一個權重,用來反映兩個人工神經元的聯結程度。通過調整這個權重的數值的大小,這個模型就能模仿大腦的學習方式來控制一個人工神經元與另外一個人工神經元的聯結。
這個模型雖然看上去很簡單,但是功能已經很強大。當時基於這個模型設計的人工神經網路已經可以做一些簡單的英文識別功能。最新的人工神經元的設計雖然在細節上有很大不同,但是總體上還是基於這個模型的理念建立的。
下面讓我們看看基於這個簡單的人工神經元(人工)模型,我們可以設計出怎樣的機器學習模型。
基於感知器的股票買賣系統
我們可以簡單的定義一個股票交易系統如下:
目標:希望通過一隻股票的基本面信息來判斷是否買賣一隻股票。
輸入信號:1.股票當前價格2.公司市值3.市盈率(每股市價/每股盈利)4.市凈率 (每股市價/每股凈資產)輸出信號:買或者賣(也就是圖中的1和0)
基於這個定義我們可以設計一個非常簡單的單層人工神經網路(人工)如下:
對應的公式為:
- a = 股票價格 x 權重1 + 公司市值 x 權重2 + 市盈率 x 權重3 + 市凈率 x 權重4
- 假設閾值是(z)
- 當 a 大於 z 的時候,買入股票,否則不買入。
一開始的時候,這些權重值可以是一組很小的隨機數字,用來表示這個人工神經網路對於股票交易一無所知。在我們不斷的訓練這個模型的過程中,我們不斷的把這個模型做出的買賣判斷的結果反饋給這個模型。如果買賣判斷造成了盈利,這個模型會增加相應的權重值來「記住」這個結果,反之亦然。通過反覆這個過程,這組權重值理論上就可以被調整到某一組最優值上,從而產生更高的收益。例如,假設市盈率+市凈率和股票未來走勢相關度很高,我們這個模型的權重3和權重4的絕對值就會比較高。這個過程我們就可以理解為這個人工神經網路學習到了市盈率+市凈率和股票價格未來走勢的關係。
雖然對於當今的股票市場來說這個模型太過於簡單,但是其實早期的股票交易模型在本質上並不比這個複雜多少。不難想像通過疊加這些基本的人工神經元並調整他們之間的數學關係(由線性改為非線性),我們應該可以創造出能夠學習非常複雜的關係的人工神經網路,從而設計出一個真正的股票交易模型。
可是當弗蘭克·羅森布拉特發布了這個感知器的模型以後,儘管學術界對這個模型的潛力感到興奮,但人工神經網路在當時並沒有得到廣泛的認可和應用。當時問題就出在了如何有效學習調整這些權重上,這個問題在複雜的、深度的人工神經網路上更具有挑戰性。沒有好的尋找最優權重值的方法,當時的聯結學派就不能有效的訓練一個人工神經網路,也就不能用具體例子證明人工神經網路確實能解決複雜問題。就這樣聯結學派銷聲匿跡了幾十年,直到最近10年才在學習調整深度人工神經網路的權重問題上取得了突破性的進展,從而帶動了我們在文章一開始提到的深度學習的迅速崛起。
未完待續。。。(敬請期待:如何學習調整人工神經網路權重)
首發公眾號:
? 版權聲明:本文首發自本人微信公共帳號:思故是(sikaoguwozai);無需授權即可轉載,但轉載時請務必註明作者 。
?推薦閱讀:
※可視化展示神經網路是如何將分類正確率提升的
※【譯】重新定義「數據科學家」
※機器學習概述與演算法介紹
※Machine Learning-常見演算法優缺點匯總
※機器學習答題集