天天看點

機器學習之——初識神經網絡

在讨論神經網絡之前,我們先回顧一下之前的一系列讨論。

之前我們已經讨論過,非線性假設(non-linear hypothesis),使用非線性的多項式能夠幫助我們建立更好的分類模型(classification)。假設我們有非常多的特征,例如大于10000個變量,我們希望用這10000個特征來建構一個非線性的多項式模型,那麼結果将是數量非常驚人的特征組合,即便我們隻采用兩兩特征的組合(x1x2+x1x3+x1x4+...+x9999x10000),我們也會有接近500000哥組合而成的特征。這對于一般的邏輯回歸(logistic

regression)來說,需要計算的特征太多了。

我們舉一個假設:

假設我們希望訓練一個模型來識别視覺圖像(例如識别一張圖檔上是否是一輛汽車,google之前做過一個根據youtube的視訊來準确的識别出一隻貓),我們怎麼樣才能這樣做呢?一種方法是,我們利用很多汽車的圖檔和很多非汽車的圖檔,然後利用這些圖檔上一個個像素的值來作為特征。

假如我們隻選用灰階圖檔,每個像素隻有一個值(非rgb值),我們可以選取圖檔上的兩個不同位置的兩個像素,然後訓練一個邏輯回歸模型來利用這兩個像素的值來判斷圖檔上是否是一輛汽車:

機器學習之——初識神經網絡

假如我們采用的都是50x50像素的小圖檔,并且我們将所有的像素視為特征,則會有2500個特征,如果我們要進一步将兩兩特征組合構成一個多項式模型,則會有2500x2500/2(接近300萬)個特征。普通的邏輯回歸模型,不能有效的處理這麼多的特征,這時候,我們就可以使用神經網絡。

那麼神經網絡是從何而來的呢?

神經網絡算法(neural network)源自于人類對大腦的模仿。在20世紀80到90年代被廣泛的使用過,之後的應用逐漸減少,直到最近幾年又變得開始流行起來。原因是,神經網絡是非常依賴計算能力的算法,在較早之前的應用時,由于計算機的計算能力瓶頸,導緻一度消退,随着計算機性能的不斷提高,神經網絡算法又成為了很有效的一門技術。

神經網絡算法的目的是發現一個能夠模仿人類大腦學習能力的算法。有一個實驗,如果我們将視覺信号傳遞給大腦中負責其他感覺——如觸覺——的大腦皮層區,我們發現負責處理觸覺的大腦組織将能夠很快地學會如何處理視覺信号。我們就推斷,在大腦的不同組織不同神經之間,使用着一套學習算法,使得将外界的刺激作為輸入,能夠對輸入進行相同的處理。

機器學習之——初識神經網絡

有另外一個案例,讓舌頭學會如何去“看”東西。再一個盲人的頭頂配置了一台低像素的照相機,然後将照相機拍攝的照片的像素轉換為不同的電極,每個像素都按照亮度被賦予一個不同的電壓值。結果随着實驗的進行,這個盲人開始能夠利用舌頭看到眼前的東西。目前這一項技術正在逐漸的應用到幫助盲人恢複視覺上,例如google、微軟。(希望我們中國也很快能夠有這樣一家造福社會的公司!)

機器學習之——初識神經網絡

為了建構神經網絡模型,我們首先要思考:大腦中的神經網絡是什麼結構?

每一個神經元都可以被認為是一個處理單元/神經核(processing unit/nucleus),它含有許多輸入/樹突(input/dendrite),并且有一個輸出/軸突(output/axon)。神經網絡是由大量的神經元互相連結并通過電脈沖來交流的一個網絡結構。

機器學習之——初識神經網絡

神經網絡模型建立在需要的神經元智商,每一個神經元又是一個個學習模型。這些神經元,也叫激活單元(activation unit)采納一些特征作為輸入,并且根據本身的模型提供一個輸出。下面是一個以邏輯回歸模型作為自身學習模型的神經元的示例,在神經網絡中,參數也可以被稱之為權重(weight)。

機器學習之——初識神經網絡

這一次我們先讨論到這裡。下一次我們将讨論,神經網絡模型的具體表達。

繼續閱讀