萌主天下無敵 作品

第635章

    sigmoid神經元(sigmoidneuron)是現代神經網絡經常使用的基本結構(當然不是唯一的結構)。它與感知器的結構類似,但有兩個重要的區別。

    第一,它的輸入不再限制為0和1,而可以是任意0~1之間的實數。

    第二,它的輸出也不再限制為0和1,而是將各個輸入的加權求和再加上偏置參數,經過一個稱為sigmoid函數的計算作為輸出。

    具體來說,假設z=w1x1+w2x2+w3x3+...+b,那麼輸出output=σ(z),其中:σ(z)=1(1+e-z)。

    σ(z)是一個平滑、連續的函數。而且,它的輸出也是0~1之間的實數,這個輸出值可以直接作為下一層神經元的輸入,保持在0~1之間。

    可以想象,在採用sigmoid神經元組裝神經網絡之後,網絡的輸入和輸出都變為連續的了,也就是說,當我們對某個參數的值進行微小的改變的時候,它的輸出也只是產生微小的改變。這樣就使得逐步調整參數值的訓練成為可能。

    在歷史上,很多研究人員曾經也做過嘗試,michaelnielsen的書《neuralnetworksanddeeplearning》這本書中也曾經提到過這個例子。

    這個神經網絡只有一層隱藏層,屬於淺層的神經網絡(shallowneuralnetworks)。而真正的深度神經網絡(deepnerualnetworks),則會有多層隱藏層。

    神經元系統採用了左右腦半球的設計方式進行設計和製造。

    最右側則是輸出層(outputlayer),有10個神經元節點,分別代表識別結果是0,1,2,...,9。當然,受sigmoid函數σ(z)的限制,每個輸出也肯定是0~1之間的數。

    那我們在得到一組輸出值之後,哪個輸出的值最大,最終的識別結果就是它。

    而在訓練的時候,輸出的形式則是:正確的那個數字輸出為1,其它輸出為0,隱藏層和輸出層之間也是全連接。

    神經網絡共的權重參數有784*15+15*10=11910個,偏置參數有15+10=25個,總共參數個數為:11910+25=11935個。

    這是一個非常驚人的數字。