寫在前面:
各位小夥伴們,又到了喜聞樂見的更新時間,最近猛料不斷,先有Boston動力的“仁義”機器人反恐演習,緊接着MIT的狗狗們在實驗室的綠茵場上集體賣萌,讓我們感慨強人工智能離我們也許不遠了。

作為快要秃頭的我們,又該怎麼看待這個快速變化的世界呢?在知識更新越來越快的現在,想要專注于當下似乎都變得艱難。其實柳貓想要告訴大家,作為一個普通人,對各種資訊越是了解的多,認識的越是淺薄,為了增強自己的不可替代性,必須增加自己專業的深度,從一而終。
今天,想跟大家分享一下最早也是最簡單的一個機器學習模型:感覺器~
感覺器的誕生——從樣本中學習
神經網絡的AI先驅們一直依靠着神經元的繪圖以及它們互相連接配接的方式,進行着艱難的摸索。康奈爾大學的弗蘭克·羅森布拉特是最早模仿人體自動圖案識别視覺系統架構的人之一。
他發明了一種看似簡單的網絡感覺器(perceptron),這種學習算法可以學習如何将圖案進行分類,例如識别字母表中的不同字母。算法是為了實作特定目标而按步驟執行的過程,就像烘焙蛋糕的食譜一樣。
如果我們了解了感覺器如何學習圖案識别的基本原則,那麼在了解深度學習工作原理的路上已經成功了一半。感覺器的目标是确定輸入的圖案是否屬于圖像中的某一類别(比如貓)。
上圖解釋了感覺器的輸入如何通過一組權重,來實作輸入單元到輸出單元的轉換。權重是對每一次輸入對輸出單元做出的最終決定所産生影響的度量,但是我們如何找到一組可以将輸入進行正确分類的權重呢?
解決這個問題的傳統方法,是根據分析或特定程式來手動設定權重。這需要耗費大量人力,而且往往依賴于直覺和工程方法。另一種方法則是使用一種從樣本中學習的自動過程,和我們認識世界上的對象的方法一樣。需要很多樣本來訓練感覺器,包括不屬于該類别的反面樣本,特别是和目标特征相似的,例如,如果識别目标是貓,那麼狗就是一個相似的反面樣本。這些樣本被逐個傳遞給感覺器,如果出現分類錯誤,算法就會自動對權重進行校正。
感覺器具體算法
這種感覺器學習算法的美妙之處在于,如果已經存在這樣一組權重,并且有足夠數量的樣本,那麼它肯定能自動地找到一組合适的權重。在提供了訓練集中的每個樣本,并且将輸出與正确答案進行比較後,感覺器會進行遞進式的學習。如果答案是正确的,那麼權重就不會發生變化。但如果答案不正确(0被誤判成了1,或1被誤判成了0),權重就會被略微調整,以便下一次收到相同的輸入時,它會更接近正确答。這種漸進的變化很重要,這樣一來,權重就能接收來自所有訓練樣本的影響,而不僅僅是最後一個。
感覺器是具有單一人造神經元的神經網絡,它有一個輸入層,和将輸入單元和輸出單元相連的一組連接配接。感覺器的目标是對提供給輸入單元的圖案進行分類。輸出單元執行的基本操作是,把每個輸入(xn)與其連接配接強度或權重(wn)相乘,并将乘積的總和傳遞給輸出單元。上圖中,輸入的權重和(∑i=1,…,n wi xi)與門檻值θ進行比較後的結果被傳遞給階躍函數。如果總和超過門檻值,則階躍函數輸出“1”,否則輸出“0”。例如,輸入可以是圖像中像素的強度,或者更常見的情況是,從原始圖像中提取的特征,例如圖像中對象的輪廓。每次輸入一個圖像,感覺器會判定該圖像是否為某類别的成員,例如貓類。輸出隻能是兩種狀态之一,如果圖像處于類别中,則為“開”,否則為“關”。“開”和“關”分别對應二進制值中的1和0。
感覺器學習算法可以表達為:
感覺器如何區分兩個對象類别的幾何解釋
如果對感覺器學習的這種解釋還不夠清楚,我們還可以通過另一種更簡潔的幾何方法,來了解感覺器如何學習對輸入進行分類。對于隻有兩個輸入單元的特殊情況,可以在二維圖上用點來表示輸入樣本。每個輸入都是圖中的一個點,而網絡中的兩個權重則确定了一條直線。感覺器學習的目标是移動這條線,以便清楚地區分正負樣本。對于有三個輸入單元的情況,輸入空間是三維的,感覺器會指定一個平面來分隔正負訓練樣本。在一般的情況下,即使輸入空間的次元可能相當高且無法可視化,同樣的原則依然成立。
這些對象有兩個特征,例如尺寸和亮度,它們依據各自的坐标值(x,y)被繪制在每張圖上。左邊圖中的兩種對象(加号和正方形)可以通過它們之間的直線分隔開;感覺器能夠學習如何進行這種區分。其他兩個圖中的兩種對象不能用直線隔開,但在中間的圖中,兩種對象可以用曲線分開。而右側圖中的對象必須舍棄一些樣本才能分隔成兩種類型。如果有足夠的訓練資料,深度學習網絡就能夠學習如何對這三個圖中的類型進行區分。
最終,如果解決方案是可行的,權重将不再變化,這意味着感覺器已經正确地将訓練集中的所有樣本進行了分類。
但是,在所謂的“過度拟合”(overfitting)中,也可能沒有足夠的樣本,網絡僅僅記住了特定的樣本,而不能将結論推廣到新的樣本。為了避免過度拟合,關鍵是要有另一套樣本,稱為“測試集”(test set),它沒有被用于訓練網絡。訓練結束時,在測試集上的分類表現,就是對感覺器是否能夠推廣到類别未知的新樣本的真實度量。泛化(generalization)是這裡的關鍵概念。在現實生活中,我們幾乎不會在同樣的視角看到同一個對象,或者反複遇到同樣的場景,但如果我們能夠将以前的經驗泛化到新的視角或場景中,我們就可以處理更多現實世界的問題。
利用感覺器區分性别
舉一個用感覺器解決現實世界問題的例子。想想如果去掉頭發、首飾和第二性征,比如男性比女性更為突起的喉結,該如何區分男性和女性的面部。
這張臉屬于男性還是女性?人們通過訓練感覺器來辨識男性和女性的面孔。來自面部圖像(上圖)的像素乘以相應的權重(下圖),并将該乘積的總和與門檻值進行比較。每個權重的大小被描繪為不同顔色像素的面積。正值的權重(白色)表現為男性,負值的權重(黑色)傾向于女性。鼻子寬度,鼻子和嘴之間區域的大小,以及眼睛區域周圍的圖像強度對于區分男性很重要,而嘴和顴骨周圍的圖像強度對于區分女性更重要。
區分男性與女性面部的工作有趣的一點是,雖然我們很擅長做這種區分,卻無法确切地表述男女面部之間的差異。由于沒有單一特征是決定性的,是以這種模式識别問題要依賴于将大量低級特征的證據結合起來。感覺器的優點在于,權重提供了對性别區分最有幫助的面部的線索。令人驚訝的是,人中(即鼻子和嘴唇之間的部分)是最顯著的特征,大多數男性人中的面積更大。眼睛周圍的區域(男性較大)和上頰(女性較大)對于性别分類也有着很高的資訊價值。感覺器會權衡來自所有這些位置的證據來做出決定,我們也是這樣來做判定的,盡管我們可能無法描述出到底是怎麼做到的。
感覺器的擴充
感覺器激發了對高維空間中模式分離的美妙的數學分析。當那些點存在于有數千個次元的空間中時,我們就無法依賴在生活的三維空間裡對點和點之間距離的直覺。俄羅斯數學家弗拉基米爾·瓦普尼克(Vladimir Vapnik)在這種分析的基礎上引入了一個分類器,稱為“支援向量機”(Support Vector Machine)。
它将感覺器泛化,并被大量用于機器學習。他找到了一種自動尋找平面的方法,能夠最大限度地将兩個類别的點分開(線性)。這讓泛化對空間中資料點的測量誤差容忍度更大,再結合作為非線性擴充的“核心技巧”(kernel trick),支援向量機算法就成了機器學習中的重要支柱。
總結——并非萬能的感覺器
在感覺器中,每個輸入都獨立地向輸出單元提供證據。但是,如果需要依靠多個輸入的組合來做決定,那會怎樣呢?這就是感覺器無法區分螺旋結構是否相連的原因:單個像素并不能提供它是在内部還是外部的位置資訊。盡管在多層前饋神經網絡中,可以在輸入和輸出單元之間的中間層中形成多個輸入的組合,但是在20世紀60年代,還沒有人知道如何訓練簡單到中間隻有一層“隐藏單元”(hiddenunits)的神經網絡。