3 梯度消失與**
mlp可以說是最簡單的一種ann結構了,輸入通過若干個隱藏層後,進入輸出層得到輸出。下圖展示了只有乙個單隱層的mlp。
圖1 單隱層mlp
如果使用交叉熵損失函式(cross entropy error function),需要在輸出層的狀態值
如果使用mse損失函式(mean squared error function),則可以不使用 softmax 歸一化函式。對應的方程為:
我們需要優化的引數為:第一層的
,第二層(輸出層)的
。由鏈式法則可知,損失值對第
層輸出的梯度
(稱為啟用值梯度),可以由前一層迭代求出:
然後通過
計算出狀態值梯度,一般記為
。最後就可以計算第
層中各個引數的梯度:
下面,我們將以圖1中的單隱層mlp為例,來演示梯度的計算。為簡便起見,輸入的batch num設為1。
本節的目標是求得輸出層的引數梯度微分:,(8),以及前乙個隱藏層的啟用值梯度
(9)。
向量化:
其中 是逐元素取倒數。
得到:其中 為逐元素指數函式,
表示與
同型的全1向量,
表示對
各元素求和得到乙個標量。記
。微分:
向量化:
得到:由(4)(5),有:
微分後向量化:
有:由於 ,有:
觀察(6-a)和(6-b)可知,無論是採用mse還是交叉熵,輸出層的狀態值梯度
都是網路輸出與目標輸出之間的殘差(餘差)
。在實際計算中,可以跳過
而直接計算
。微分:
向量化:
得到:其中 表示單位陣,其大小與第2層輸出維度大小一致。
結合(6)(7)有:
在實際計算中,一般將
進一步化簡,消掉kronecker積:
結合(9)可得:
與 類似。
回顧式(7)
與式(10)
,有:推廣到多隱層mlp,有:
記為jacobian矩陣的形式,
,特別地,
。由鏈式法則有:
記。
神經網路 全連線神經網路
全連線神經網路 也稱作多層感知機 mlp 1.1 神經元 神經元接收輸入向量x xx神經元節點有權重向量w和偏置項b 輸出值為f w tx b f w tx b f wtx b 在經過類似線性回歸之後 使用啟用函式對得到值進行操作 1.2 網路結構 個人對於每一層的理解就是 使用 這層維度,上層維度...
從MLP到神經網路
多層感知器 mlp 是一種非常簡單的神經網路,其實現起來也是非常容易滴。那我們就來看一看吧 首先,先看一下來自維基百科的介紹 多層感知器 multilayer perceptron,縮寫mlp 是一種前向結構的 人工神經網路 對映一組輸入向量到一組輸出向量。mlp可以被看作是乙個有向圖,由多個的節點...
MLP 多層神經網路 介紹
接觸神經網路 ann 的時間很長了,以前也只是學了學原理,做過乙個bpn的練習,沒有系統的總結過,最近看torch的原始碼,對mlp有了更多的了解,寫寫自己學到的東西吧,算是做了一次總結!1 高度的並行性 人工神經網路是由許多相同的簡單處理單元併聯組合而成,雖然每個單元的功能簡單,但大量簡單單元的並...