1.單一神經元
神經網絡是由許許多多的單一神經元構成的,那每一個神經元的實質是什么呢?神經元就干一件事情,叫做非線性變換。如下圖所示:
2.神經網絡
sigmod激活函數的作用是什么呢?它把一個數從負無窮到正無窮映射為0到1的部分,它只干這么一件事。那什么是神經網絡呢?神經元是一個函數吧,那么神經網絡是一個超級超級復雜的復合函數。
上圖中的神經網絡實際上與線性分類器如出一轍。你看看啊,上圖中有三層網絡,每兩層之間有權重,這些權重相當於線性分類器中的W矩陣。換句話說,這個神經網絡實際上是由兩個線性分類器構成的,只不過這里的分類器輸出還要做一個非線性變換,當然了,靠近輸出的那一層沒有做非線性變換。
上圖中這里的z是非線性變換之前的結果,而a(activation)是經過非線性變換之后的結果.
3.目標函數
這里的Sc是分類錯誤的分數,S是分類正確的分數,Xc是輸出錯誤的對應的輸入,X是輸出正確的對應的輸入。Δ的作用是用來增強自信心的,通常取為1.
4.反向傳播算法
如上圖所示,Wjkl 這里的L代表第幾層,j代表后邊那一層的第j個節點,k代表前邊那一層的第K個節點。如果改變圖中紅色線的權重,那1號神經元的輸出結果會受影響,而2,3,4號神經元的輸出結果不會受影響。那第三層的神經元都會受變化,因為第二層的第一個神經元受變化了,它跟后邊的神經元都連接了。
如上圖所示,第二層第一個神經元的受到的變化為ΔajL,它一受變化,最終會導致他后邊的所有神經元都要受變化,最終會導致損失函數受變化。
那么第二層第一個神經元受的變化為多少呢?可用上圖中的公式計算,可類比為一次函數求變化。求導相當與求斜率,如下圖所示:
接下來,以此類推,求下一層的變化情況,如下圖所示:
直到最后一層,導致損失函數的變化:
因為可能改變的不止一個權重,如果有多個權重發生了改變,如上圖所示,用累加求和的辦法求出最后損失函數的變化就可以了。
上圖中,最后一項,δjk是損失函數對第K層第j個神經元的輸入求導。為什么要定義這個呢?這是因為后邊的反向傳播算法要用到。