1.2 卷積神經(jīng)網(wǎng)絡(luò)基礎(chǔ)補充

反向傳播以及誤差的計算


- x1和x2為輸入層
- 中間的為隱藏層
- w11,第一個1代表上一個層的第一個節(jié)點,第二個1表示本層的第一個節(jié)點
- 上標(biāo)括號的1代表第一層,中間的代表激活函數(shù)
實例:輸出的計算

x1×對應(yīng)的權(quán)重+x2×對應(yīng)的權(quán)重+偏置,通過激活函數(shù)統(tǒng)一相乘得到輸出

中間節(jié)點的輸出以及下面節(jié)點的輸出,b1為偏置(此案例沒有使用激活函數(shù))
計算多類損失過程中,一般最后一層激活函數(shù)統(tǒng)一用softmax作為激活函數(shù)
softmax的計算過程

圖中輸出的y1、y2并不符合任意一個分布,想要滿足一個概率分布,要進行softmax處理
表達式在右下角o1、o2等
發(fā)現(xiàn):
經(jīng)過softmax激活處理后所有的輸出滿足概率分布,即和等于1(o1+o2=1)
損失計算

一般計算損失使用:交叉熵損失(一般有兩種表達式)
根據(jù)最終層的輸出函數(shù)決定使用哪一種表達式
1.針對多類問題,一般采用softmax輸出,所有輸出節(jié)點滿足概率和為1的分布規(guī)律,大部分使用
2.針對二分類問題,一般采用sigmoid輸出,每一個輸出節(jié)點之間互不相干,即每一個輸出不會滿足任何一種分布規(guī)律
對于二分類問題,理論上使用sigmoid和softmax沒有區(qū)別,因為數(shù)學(xué)表達式的形式是一樣的。
對于多分類非互斥問題,使用sigmoid更合適。
對于多分類互斥問題,使用softmax更合適。
PS:Oi*為真實標(biāo)簽值,Oi為預(yù)測值,默認log是以e為底等于ln
區(qū)別:
若貓和狗的分類,得到的輸出是唯一的(不是狗就是貓)
若輸出包含人類、男人等等,它的輸出不滿足概率分布,需要使用二分類問題進行處理。
Loss損失公式

誤差的反向傳播

以求W11(2)的誤差梯度為例(求偏導(dǎo))



對每一個偏導(dǎo)進行計算
權(quán)重的更新

- 左邊是求得的損失函數(shù)的梯度
- 右邊為更新的權(quán)重(新值=舊值-設(shè)置的學(xué)習(xí)率×損失梯度)
求得的損失梯度的方向是否是指向全局最優(yōu)的方向?

目標(biāo)點:全局最優(yōu)點
左邊:
在實際應(yīng)用中往往不可能一次性將所有數(shù)據(jù)載入內(nèi)存(算力不夠等問題),一般使用分批次訓(xùn)練方法進行訓(xùn)練
數(shù)據(jù)集隨機的分成n等份,每份取x張圖(正整數(shù)),即batch=x
每求一個批次進行一次誤差的計算以及反向傳播(常用SGD優(yōu)化器)
右邊:
如果使用分批次樣本進行求解,損失梯度指向當(dāng)前批次最優(yōu)方向(局部最優(yōu)≠全局最優(yōu))
方向不夠平穩(wěn),要引入優(yōu)化器
優(yōu)化器
目的:使網(wǎng)絡(luò)更快的得到收斂

SGD優(yōu)化器

每一批數(shù)據(jù)隨機進行分批次,對于一批數(shù)據(jù)求得的方向可能不同(是隨機的)
缺點:
1.易受樣本噪聲影響
2.可能陷入局部最優(yōu)解
SGD+Momentum優(yōu)化器(增加動量部分)

除了計算當(dāng)前的梯度,還會將之前的梯度加入進來左下角實例
有效抑制樣本噪聲的干擾
Adagrad優(yōu)化器(自適應(yīng)學(xué)習(xí)率)
主要調(diào)整學(xué)習(xí)率

缺點:學(xué)習(xí)率下降很快,可能沒有達到收斂就停止了
RMSProp優(yōu)化器(是Adagrad的改良版)
相比Adagrad添加了兩個系數(shù),控制衰減速度

Adam優(yōu)化器
包含了一階動量和二階動量

一些列優(yōu)化器優(yōu)化速度的快慢

要看實際情況進行選擇