反向傳播演算法推導過程(非常詳細)
陳楠 發表于 娛樂2019-08-25
1。 前向傳播
假設
為
的矩陣(其中,
為樣本個數(batch size),
為特徵維數):
與
的維數為
為
的矩陣,
與
的維數為
為
的矩陣,
與
的維數為
為
的矩陣,
前向演算法:
假設輸出為
維,則
為大小為
的矩陣,根據MSE或CE準則可以求得
,對於迴歸問題與分類問題,
的求解方法如下:
對於迴歸問題,對out直接計算損失,損失函式為MSE。 損失:
對於分類問題,out後接softmax進行分類,然後使用CE(cross entropy)計算loss。
一個樣本對應的網路的輸出
是一個機率分佈,而這個樣本的標註
一般為
,也可以看做一個機率分佈(硬分佈)。cross entropy可以看成是
與
之間的KL距離:
假設
,其中1為第
個元素(索引從0開始),令
。
損失:
KL距離(相對熵)
:是Kullback-Leibler Divergence的簡稱,也叫相對熵(Relative Entropy)。它衡量的是相同事件空間裡的兩個機率分佈的差異情況。其物理意義是:在相同事件空間裡,機率分佈 P(x) 對應的每個事件,若用機率分佈 Q(x) 編碼時,平均每個基本事件(符號)編碼長度增加了多少位元。我們用
表示KL距離,計算公式如下:
,當兩個機率分佈完全相同時,即 P(X)=Q(X) ,其相對熵為0。
2。反向傳播
,為了便於詳細說明反向傳播演算法,假設
為
的向量,
為
的向量:
所以,
1) 損失
對
的導數:
即,
2) 損失對偏置b的導數等於將
的每一列加起來:
3) 損失
對
的導數:
即,
4) 損失
對
的導數:
為sigmoid時,
為tanh時,
。
為relu時,
3。 梯度更新
對於不同演算法 ,梯度更新方式如下: