2 構造神經網絡
本章我們來學習如何構造一個人工神經網絡,當然這一切都要從基本單位人工神經元說起。
2.1 構造一個神經元
本節我們就來設計一個人工神經網絡的基本單位——人工神經元。依照剛才學習到的單個神經元來創造一個簡單的數理圖形,能夠反映現實神經元的基本模型,注意這里是基本模型,是從基本功能角度去模擬,而不是從單個蛋白細胞的角度去模擬。
前面我們說到生物神經元的時候,著重提了神經元的輸入部分(樹突)、處理部分(細胞體)和輸出部分(軸突)。
我們先來看看信號的輸入部分樹突(如圖2-1所示),這里我們用p代表樹突,多個輸入信號源,多個樹突,分別是從p1開始到pn;我們用w代表樹突的強度權重。

圖2-1 神經元的輸入部分:樹突
樹突將收集到的刺激源往后傳遞,這里的刺激源可以是外界五感信號源,也可以將其他神經元細胞產生的結果(output)作為目前這個神經元的輸入(input),這里我們統一稱作刺激源,如圖2-2所示。

圖2-2 樹突將信號傳往信息處理機構(模擬生物層面上的細胞體)
在信號處理里面處理的是所有樹突的信號源及相關強度的計算。
這種強度可以用以下簡單公式來表示:
s =p1w1+p2w2+p3w3+……+pnwn
從以上公式中我們可以看到,只是將輸入的信號p乘以強度w,然后依次累加得到s。實際上,信號處理是歸納了所有神經元輸入結果,并將其作為一個結果輸出,這樣就方便我們處理了。
以上就是構造人工神經元的基本過程,這也是根據生物神經元的原理做的算法模擬,即接受刺激信號并匯總輸出。非常簡單,對不對!僅僅這樣,我們設計的這個神經元還無法干活,還要加點東西,如圖2-3所示。

圖2-3 傳遞函數
我們要先理解什么叫傳遞函數?
在信號處理這端,我們假設有一個輸出結果s(n),這個結果有可能是0到1這個區間的一個數字,也可以是任意一個可能大于0或者小于0的整數,然而對于一個分類運算來說,大多數時候,我們需要輸出一個0或1,代表是或否,怎么處理呢?如果大于0,我們就把它作為1,如果小于0,我們就把它輸出為0,這是最簡單的傳遞函數的一種用法,你可以把它看作格式化輸出結果,將結果變成我們可以使用的一種符號或數字。
表2-1所示為常用的傳遞函數。
表2-1 常用的傳遞函數

我們幾乎完整地模擬了一個神經元的功能,為什么說幾乎呢?
因為還有個非常容易漏掉的地方。
神經元細胞的處理我們用s模擬,我們只是簡單地將信號做了一個加權處理,而神經元本身的特性我們沒有模擬出來,我們給s加個內置的處理輸入源,并用b模擬這種內部的強度,如圖2-4所示。

圖2-4 構造神經元
原來的公式是s=p1w1+p2w2+p3w3+pnwn,現在的s函數是s=p1w1+p2w2+p3w3+pnwn+b×1,然后將用傳遞函數f(s)將結果格式化輸出。
以上成功的模擬了生物神經元,很簡單吧!
我們構造的神經元正確嗎?如何測試其正確性呢?能用現實中的一個問題來檢驗嗎?