DL之SoftmaxWithLoss:SoftmaxWithLoss算法(Softmax+交叉熵误差)简介、使用方法、应用案例之详细攻略
DL之SoftmaxWithLoss:SoftmaxWithLoss算法(Softmax函數(shù)+交叉熵誤差)簡介、使用方法、應(yīng)用案例之詳細(xì)攻略
?
?
?
?
?
目錄
SoftmaxWithLoss算法簡介
1、Softmax-with-Loss層的計算圖
2、正向傳播
3、反向傳播
4、總結(jié)
SoftmaxWithLoss算法使用方法
SoftmaxWithLoss算法應(yīng)用案例
?
?
?
?
?
?
SoftmaxWithLoss算法簡介
? ? ? ? ?softmax 函數(shù)稱為softmax 層,交叉熵誤差稱為Cross Entropy Error 層,兩者的組合稱為Softmax-with-Loss層。
1、Softmax-with-Loss層的計算圖
? ? ? ? ?計算圖中假定了一個進(jìn)行3 類別分類的神經(jīng)網(wǎng)絡(luò)。從前面的層輸入的是(a1, a2, a3),softmax 層輸出(y1, y2, y3)。此外,教師標(biāo)簽是(t1, t2, t3),Cross Entropy Error 層輸出損失L。Softmac-with-Loss 層的反向傳播的結(jié)果為(y1 ? t1, y2 ? t2, y3 ? t3)。
?
2、正向傳播
Softmax 層和Cross Entropy Error 層的內(nèi)容
| Softmax層 | ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?輸出記為(y1, y2, y3) | |
| Cross Entropy Error 層 |
?
3、反向傳播
求這個計算圖的反向傳播時,要注意下面幾點(diǎn):
| Cross Entropy Error 層 | ?輸出記為(y1, y2, y3),結(jié)果(-t1/y1,-t2/y2,-t3/y3)是傳給Softmax層的反向傳播的輸入。 | |
| Softmax層 | Step1:前面的層(Cross Entropy Error 層)的反向傳播的值傳過來。 Step2:“×”節(jié)點(diǎn)將正向傳播的值翻轉(zhuǎn)后相乘 Step3:正向傳播時若有分支流出,則反向傳播時它們的反向傳播的值會相加。 Step4:“+”節(jié)點(diǎn)原封不動地傳遞上游的值。 Step5:"×”節(jié)點(diǎn)將值翻轉(zhuǎn)后相乘。 Step6:向兩個分支的輸入和乘以exp(a1) 后的值就是我們要求的反向傳播。 ? |
?
4、總結(jié)
Softmax-with-Loss層的計算圖
?
?
SoftmaxWithLoss算法使用方法
1、?caffe源碼—softmaxWithLoss
caffe::SoftmaxWithLossLayer< Dtype > Class Template Reference
net.loss = caffe.layers.SoftmaxWithLoss(net.fc3, net.label) 輸出: layer {name: "loss"type: "SoftmaxWithLoss"bottom: "fc3"bottom: "label"top: "loss" }?
?
SoftmaxWithLoss算法應(yīng)用案例
DL之DNN:自定義2層神經(jīng)網(wǎng)絡(luò)TwoLayerNet模型(封裝為層級結(jié)構(gòu))利用MNIST數(shù)據(jù)集進(jìn)行訓(xùn)練、GC對比
DL之DNN:自定義2層神經(jīng)網(wǎng)絡(luò)TwoLayerNet模型(封裝為層級結(jié)構(gòu))利用MNIST數(shù)據(jù)集進(jìn)行訓(xùn)練、預(yù)測
DL之DNN:DNN優(yōu)化技術(shù)之利用MultiLayerNetExtend算法(BN層使用/不使用+權(quán)重初始值不同)對Mnist數(shù)據(jù)集訓(xùn)練評估學(xué)習(xí)過程
DL之DNN:利用MultiLayerNet模型【6*100+ReLU+SGD】對Mnist數(shù)據(jù)集訓(xùn)練來理解過擬合現(xiàn)象
DL之DNN:利用MultiLayerNet模型【6*100+ReLU+SGD,weight_decay】對Mnist數(shù)據(jù)集訓(xùn)練來抑制過擬合
DL之DNN:利用MultiLayerNetExtend模型【6*100+ReLU+SGD,dropout】對Mnist數(shù)據(jù)集訓(xùn)練來抑制過擬合
DL之DNN:自定義MultiLayerNet【6*100+ReLU,SGD】對MNIST數(shù)據(jù)集訓(xùn)練進(jìn)而比較【多個超參數(shù)組合最優(yōu)化】性能
DL之CNN:自定義SimpleConvNet【3層,im2col優(yōu)化】利用mnist數(shù)據(jù)集實(shí)現(xiàn)手寫數(shù)字識別多分類訓(xùn)練來評估模型
DL之CNN可視化:利用SimpleConvNet算法【3層,im2col優(yōu)化】基于mnist數(shù)據(jù)集訓(xùn)練并對卷積層輸出進(jìn)行可視化
DL之CNN:利用自定義DeepConvNet【7+1】算法對mnist數(shù)據(jù)集訓(xùn)練實(shí)現(xiàn)手寫數(shù)字識別、模型評估(99.4%)
?
參考文章
Caffe源碼 - SoftmaxWithLossLayer
?
?
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的DL之SoftmaxWithLoss:SoftmaxWithLoss算法(Softmax+交叉熵误差)简介、使用方法、应用案例之详细攻略的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 成功解决python中出现的Indent
- 下一篇: 成功解决This module was