吃瓜第五章 神經網絡 2023-12-23

神經網絡

1 神經元模型

1.1 M-P神經元

M-P神經元模型

在這個模型中,神經元接收到來自其他n個神經元傳遞過來的輸入信號,這些信號通過帶權值的連接進行傳遞,神經元把接收到的總收入值與閾值進行比較,然后通過激活函數處理來產生輸出。“——《機器學習》周志華

1.2 激活函數

常用Sigmoid函數,把在較大范圍內變化的輸入值擠壓到(0, 1)輸出范圍內。

sigmoid

更多的激活函數請見https://zh-v2.d2l.ai/chapter_multilayer-perceptrons/mlp.html 中4.1.2節。

  • 單個M-P神經元:感知機(sgn作激活函數)、對數幾率回歸(sigmoid作激活函數)
  • 多個M-P神經元:神經網絡

2 感知機與多層網絡

2.1 感知機

從幾何角度說,給定一個線性可分的數據集T,感知機的學習目標是求得能對數據集T中正負樣本完全正確劃分的超平面。

2.2 感知機算法

感知機由兩層神經元。假設計算
y = f(\sum_i w_ix_i - \theta)f是階躍函數,y的值是0或1。

感知機

其中x是樣本的特征向量,是感知機的輸入,w是權值,\theta是閾值。
閾值可以看作一個輸入固定為-1的”啞節點“的權值。

損失函數:


損失函數

若分類全部正確,則損失函數值一定為0。
學習使用隨機梯度下降,則每次更新參數只使用一個誤分類點。若當前輸出為y,則新的權值是:
w_i \leftarrow w_i + \eta (y-\hat{y}) x_i \theta \leftarrow \theta - \eta (y-\hat{y})不斷更新,直至對所有樣本點都分類正確。

2.3 多層感知機

但是,單層感知機只能解決線性分類問題,要解決非線性可分問題,需要使用多層感知機。

線性可分

神經網絡是層級結構,每層神經元與下層全互連,不存在同層連接的,稱為多層前饋神經網絡
分為輸入層、隱藏層、輸出層。
前饋神經網絡

3 反向傳播算法BP

反向傳播是實現梯度下降的一種具體方式。
假設如下網絡(激活函數是Sigmoid):


對隱藏層的每個節點,要算它與l個輸出節點和d個輸入節點分別的連接權重,以及自己的閾值。對每個輸出節點,還要算自己的閾值。所以一共有(d+l+1)q+l個參數參與計算。

w_{hj}權重更新:



得到w_{hj}=w_{hj}-\eta g_jb_h權重的更新值為學習率×g_j×隱藏層第h個神經元的輸出。
類似可得

其中theta_j是輸出層第j個神經元的閾值,v_{ih}是輸入層第i個到隱藏層第h個的權重,\gamma _h是隱藏層第h個神經元的閾值。
e_h
e_h

標準BP流程(每次針對一個樣例進行更新):
誤差逆傳播算法

標準BP算法往往需要更多次迭代,才能到達累計誤差最小點。累積BP算法參數更新的頻率小的多,但是在很多任務中,當累計誤差下降到一定程度之后,進一步下降會非常緩慢,這是標準BP往往更快獲得較好的解。

解決過擬合:

  • 早停:用訓練集來更新參數,驗證集用來估計誤差。如果訓練集誤差降低了但驗證集誤差升高了,就停止。
  • 正則化:損失函數里加與模型規模相關的懲罰項。

參考:

  1. 南瓜書https://www.bilibili.com/video/BV1Mh411e7VU/?p=1&vd_source=32ad22ca1aa5a882c8b7fe1b7878657f
  2. 《機器學習》周志華
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容