1.引子
對於神經元的研究由來已久,1904年生物學家就已經知曉了神經元的組成結構。
一個神經元通常具有多個樹突,主要用來接受傳入資訊;而軸突只有一條,軸突尾端有許多軸突末梢可以給其他多個神經元傳遞資訊。軸突末梢跟其他神經元的樹突產生連線,從而傳遞訊號。這個連線的位置在生物學上叫做“突觸”。
人腦中的神經元形狀可以用下圖做簡單的說明:
1943年,心理學家McCulloch和數學家Pitts參考了生物神經元的結構,發表了抽象的神經元模型MP。在下文中,我們會具體介紹神經元模型。
2.結構
神經元模型是一個包含輸入,輸出與計算功能的模型。輸入可以類比為神經元的樹突,而輸出可以類比為神經元的軸突,計算則可以類比為細胞核。
下圖是一個典型的神經元模型:包含有3個輸入,1個輸出,以及2個計算功能。
注意中間的箭頭線。這些線稱為“連線”。每個上有一個“權值”。
圖6 神經元模型
連線是神經元中最重要的東西。每一個連線上都有一個權重。
一個神經網路的訓練演算法就是讓權重的值調整到最佳,以使得整個網路的預測效果最好。
我們使用a來表示輸入,用w來表示權值。一個表示連線的有向箭頭可以這樣理解:在初端,傳遞的訊號大小仍然是a,端中間有加權引數w,經過這個加權後的訊號會變成a*w,因此在連線的末端,訊號的大小就變成了a*w。
在其他繪圖模型裡,有向箭頭可能表示的是值的不變傳遞。而在神經元模型裡,每個有向箭頭表示的是值的加權傳遞。
如果我們將神經元圖中的所有變數用符號表示,並且寫出輸出的計算公式的話,就是下圖。
可見z是在輸入和權值的線性加權和疊加了一個函式g的值。在MP模型裡,函式g是sgn函式,也就是取符號函式。這個函式當輸入大於0時,輸出1,否則輸出0。
下面對神經元模型的圖進行一些擴充套件。首先將sum函式與sgn函式合併到一個圓圈裡,代表神經元的內部計算。其次,把輸入a與輸出z寫到連線線的左上方,便於後面畫複雜的網路。最後說明,一個神經元可以引出多個代表輸出的有向箭頭,但值都是一樣的。
神經元可以看作一個計算與儲存單元。計算是神經元對其的輸入進行計算功能。儲存是神經元會暫存計算結果,並傳遞到下一層。
當我們用“神經元”組成網路以後,描述網路中的某個“神經元”時,我們更多地會用“單元”(unit)來指代。同時由於神經網路的表現形式是一個有向圖,有時也會用“節點”(node)來表達同樣的意思。
3.效果
神經元模型的使用可以這樣理解:
我們有一個資料,稱之為樣本。樣本有四個屬性,其中三個屬性已知,一個屬性未知。我們需要做的就是通過三個已知屬性預測未知屬性。
具體辦法就是使用神經元的公式進行計算。三個已知屬性的值是a1,a2,a3,未知屬性的值是z。z可以通過公式計算出來。
這裡,已知的屬性稱之為特徵,未知的屬性稱之為目標。假設特徵與目標之間確實是線性關係,並且我們已經得到表示這個關係的權值w1,w2,w3。那麼,我們就可以通過神經元模型預測新樣本的目標。
4.影響
1943年釋出的MP模型,雖然簡單,但已經建立了神經網路大廈的地基。但是,MP模型中,權重的值都是預先設定的,因此不能學習。
1949年心理學家Hebb提出了Hebb學習率,認為人腦神經細胞的突觸(也就是連線)上的強度上可以變化的。於是計算科學家們開始考慮用調整權值的方法來讓機器學習。這為後面的學習演算法奠定了基礎。
儘管神經元模型與Hebb學習律都已誕生,但限於當時的計算機能力,直到接近10年後,第一個真正意義的神經網路才誕生。