神經網路入門知識(二)

神經元和多層感知器

我們以一個具體的手寫識別問題來開始我們的介紹。人的視覺系統對於識別如下的數字序列是非常容易的:

然後如果讓普通的計算機來解決這個問題,就會非常複雜。如果我們用普通的識別方法,比如“9頂上有個圈,右下方是一條豎線”, 就很快會陷入各種混亂的異常和各種數不完的ifelse中。神經網路則以另外一種方式看待這個問題。通過獲取大量的手寫數字,也叫做訓練樣本,然後開發出一個可以從這些訓練樣本中進行學習的系統。我們先了解一下這個系統中最基本的元素-神經元

早在上世紀50-60年代就已經有FrankRosenblatt提出了最原始的感知器,一種特殊的神經元,也是現在我們所說的神經元的原型,如圖:

Advertisements

一個感知器就是途中圓圈的形狀,x1,x2,x3是它的輸入,每個輸入線段上還有一個權重w1,w2,w3用於表示每個輸入的重要性,感知器會輸出0或者1,輸出是兩個因素決定:1.輸入權重后的總和決定,即x1*w1+x2*w2+x3*w3,我們簡要的用求和表達這個式子就是∑jwjxj

;一個實數我們稱之為閾值,當權重總和小於閾值時取0,當權重總和大於閾值時取1,如下公式:

這就是基本的感知器數學模型。雖然很簡單,即便是單一一個感知器也可以解決實際的問題。舉個例子,如果你今天想去看電影,你去或者不去由幾個原因所構成:

1. 天氣好不好

2. 你有沒有朋友陪你一起去

3. 這部電影是不是很好看

Advertisements

那麼這三個條件就是輸入,而你是否去看電影的決策就是輸出,這三個輸入的重要性就是權重。很顯然,如果今天的天氣很惡劣,天氣的輸入項就會小一些,然而如果這部電影非常不錯的話,你可能就會把條件3的權重設定的非常高,這樣即便1和2都不大,你仍然會決定去,因為權重之後總和仍然大於某個閾值。

前面所說的模型,我們可以再將它變形一下,更符合我們後續的運算:

我們把閾值移到左邊,將求和變成向量點積的形式。此時公式中的b就是負的閾值,我們稱之為偏置。向量的點積如果讀者不明白可以查一下線性代數,

單一的感知器看上去解決問題非常有限,那麼我們看看更複雜的決策情況,感知器可以像下圖這樣來建立模型:

最左邊是輸入層,中間有兩層是隱藏層,最右邊是輸出層,每一層的每一個感知器,都與下一層的每一個感知器直接連接,作為他們的輸入層。從最左邊的輸入層開始一直到輸出層每一個感知器都經歷如上的計算(最左邊輸入層不需要計算wx+b只提供下一層的輸入),這種多層網路有時被稱為多層感知器或者MLP。回到手寫的例子,我們可以這麼來設置我們的神經網路,將圖片的每一個像素作為輸入,將判斷的結果作為輸出,假設圖片是一張28×28的灰度圖像(沒有顏色的圖像,只有一個灰度值表示每個像素的亮度範圍是0-255),我們需要784個輸入神經元來代表每一個輸入像素,10個輸出神經元代表0-9這10個數字的結果(0表示不是,1表示是),中間層我們可以設定一層或者多層,數量也可以根據一些經驗來確立,這樣我們就建立了一個圖片到結果的神經網路,就是前文我們提到的輸入到輸出的映射。而機器學習的任務,就是在這麼一個網路中通過不斷的計算訓練數據調整每一個節點間的權重和節點的偏置,讓神經網路能正確的辨認結果。

但是這裡有一個很致命的問題,要讓我們的網路可以正確的運行,我們必須要解決一個問題,任何一個節點都不能太快或者太慢的改變輸出,但是靠我們前面所說的公式很難做到這一點,因為每個節點的輸出是不可控的。為了控制每個節點的輸出,我們需要在每個節點上增加一個函數,來控制輸出的範圍。這個函數,稱之為激活函數。我們看一種典型的神經元,它保證了輸出在0到1之間的某個實數,我們稱之為S型神經元。

S型神經元採用的激活函數是一個成為sigmoid的函數,這個函數只能輸出0到1之間的數字:

這裡的z就是我們前面提到的加權總和,所以完整的表達式是

可以看到,當z趨向於無窮大時,sigmoid函數無窮趨向於1,當z無窮小時則趨向於0。Sigmoid函數的圖像看上去非常的明顯

因此S型的輸出永遠都介於0和1之間。利⽤實際的 σ 函數,我們得到⼀個,就像上⾯說明的,平滑的感知器。的確,σ函數的平滑特性,正是關鍵因素,⽽不是其細部形式。σ 的平滑意味著權重和偏置的微⼩變化,即 ∆w j 和∆b,會從神經元產⽣⼀個微⼩的輸出變化 ∆output。實際上,微積分告訴我們∆output 可以很好地近似表⽰為:

其中求和是在所有權重 w j 上進⾏的,⽽ ∂ output/∂w j 和∂ output/∂b 符號表⽰ output 分別對於 w j 和 b的偏導數。如果你對偏導數感到不⾃在,不⽤驚慌。上⾯全部⽤偏導數的表達式看上去很複雜,實際上它的意思⾮常簡單:∆output是⼀個反映權重和偏置變化 —— 即 ∆w j 和 ∆b——的線性函數。這⼀線性使得選擇權重和偏置的微⼩變化來達到輸出的微⼩變化的運算變得容易。所以當 S型神經元有更多和感知器相同的本質的⾏為時,計算如何變化權重和偏置來使輸出變化會更加容易。下一節我們談談神經網路的處理核心思想,梯度下降演算法。

AI技術諮詢,請聯繫微信公眾號:上海呼麥信息技術有限公司

Advertisements

你可能會喜歡