概述
DL之SoftmaxWithLoss:SoftmaxWithLoss算法(Softmax函数+交叉熵误差)简介、使用方法、应用案例之详细攻略
目录
SoftmaxWithLoss算法简介
1、Softmax-with-Loss层的计算图
2、正向传播
3、反向传播
4、总结
SoftmaxWithLoss算法使用方法
SoftmaxWithLoss算法应用案例
SoftmaxWithLoss算法简介
softmax 函数称为softmax 层,交叉熵误差称为Cross Entropy Error 层,两者的组合称为Softmax-with-Loss层。
1、Softmax-with-Loss层的计算图
计算图中假定了一个进行3 类别分类的神经网络。从前面的层输入的是(a1, a2, a3),softmax 层输出(y1, y2, y3)。此外,教师标签是(t1, t2, t3),Cross Entropy Error 层输出损失L。Softmac-with-Loss 层的反向传播的结果为(y1 − t1, y2 − t2, y3 − t3)。
2、正向传播
Softmax 层和Cross Entropy Error 层的内容
Softmax层 | 输出记为(y1, y2, y3) | |
Cross Entropy Error 层 |
3、反向传播
求这个计算图的反向传播时,要注意下面几点:
- 反向传播的初始值(下图中最右边的值)是1(因为dL/dL=1)。
- “ ×” 节点的反向传播将正向传播时的输入值翻转,乘以上游传过来的导数后,再传给下游。
- “ +” 节点将上游传来的导数原封不动地传给下游。
- “ log” 节点的反向传播遵从下式。
Cross Entropy Error 层 | 输出记为(y1, y2, y3),结果(-t1/y1,-t2/y2,-t3/y3)是传给Softmax层的反向传播的输入。 | |
Softmax层 | Step1:前面的层(Cross Entropy Error 层)的反向传播的值传过来。 Step2:“×”节点将正向传播的值翻转后相乘 Step3:正向传播时若有分支流出,则反向传播时它们的反向传播的值会相加。 Step4:“+”节点原封不动地传递上游的值。 Step5:"×”节点将值翻转后相乘。 Step6:向两个分支的输入和乘以exp(a1) 后的值就是我们要求的反向传播。
|
4、总结
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算法应用案例
DL之DNN:自定义2层神经网络TwoLayerNet模型(封装为层级结构)利用MNIST数据集进行训练、GC对比
DL之DNN:自定义2层神经网络TwoLayerNet模型(封装为层级结构)利用MNIST数据集进行训练、预测
DL之DNN:DNN优化技术之利用MultiLayerNetExtend算法(BN层使用/不使用+权重初始值不同)对Mnist数据集训练评估学习过程
DL之DNN:利用MultiLayerNet模型【6*100+ReLU+SGD】对Mnist数据集训练来理解过拟合现象
DL之DNN:利用MultiLayerNet模型【6*100+ReLU+SGD,weight_decay】对Mnist数据集训练来抑制过拟合
DL之DNN:利用MultiLayerNetExtend模型【6*100+ReLU+SGD,dropout】对Mnist数据集训练来抑制过拟合
DL之DNN:自定义MultiLayerNet【6*100+ReLU,SGD】对MNIST数据集训练进而比较【多个超参数组合最优化】性能
DL之CNN:自定义SimpleConvNet【3层,im2col优化】利用mnist数据集实现手写数字识别多分类训练来评估模型
DL之CNN可视化:利用SimpleConvNet算法【3层,im2col优化】基于mnist数据集训练并对卷积层输出进行可视化
DL之CNN:利用自定义DeepConvNet【7+1】算法对mnist数据集训练实现手写数字识别、模型评估(99.4%)
参考文章
Caffe源码 - SoftmaxWithLossLayer
最后
以上就是舒心铃铛为你收集整理的DL之SoftmaxWithLoss:SoftmaxWithLoss算法(Softmax+交叉熵误差)简介、使用方法、应用案例之详细攻略的全部内容,希望文章能够帮你解决DL之SoftmaxWithLoss:SoftmaxWithLoss算法(Softmax+交叉熵误差)简介、使用方法、应用案例之详细攻略所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复