前言
机器学习基本知识——卷积网络基础补充
参考内容来自b站up主:https://space.bilibili.com/18161609
一、误差计算
以三层神经网络为例
经过Softmax输出,所有输出节点概率之和为1
交叉熵损失(Cross Entropy Loss)
- 针对多分类问题(Softmax输出,所有输出和概率为1)
- 针对二分类问题(Sigmoid输出,每个输出节点互不相干)
其中, o 1 ∗ o_1^* o1∗为真实标签值, o 1 o_1 o1为预测值,默认log是以e为底(ln)
对于该三层网络,其误差的计算公式则为
L
o
s
s
=
−
(
o
1
∗
l
o
g
(
o
1
)
+
o
2
∗
l
o
g
(
o
2
)
)
Loss= -(o_1^*log(o_1)+o_2^*log(o_2))
Loss=−(o1∗log(o1)+o2∗log(o2))
二、误差反向传播
处理完之后,相当于把所得到的误差反向传播到了每一个节点,得到了每一个节点的损失梯度。
三、权重更新
如果进行更新参数,则按照以下进行就ok了
即新的值等于旧的值减去学习率(自己设置的)乘损失梯度。
然而,我们所求的损失梯度的值不一定是全局最优的方向,在实际应用中我们会分批次进行训练。
这时候需要引入优化器的概念,优化器是为了使网络得到更快的收敛。
常见的优化器有:SGD优化器、Agagrad优化器、Adam优化器等。
-
SGD优化器
SGD全称为随机梯度下降优化器。
其缺点是:1、容易受到噪声的影响;2、容易陷入局部最优解
解决办法:采用SGD+Momentum(动量)优化器。 -
Agagrad优化器
全称为自适应学习率优化器。
其缺点是学习率下降的太快,可能还没有收敛就停止训练。
解决办法:RMSProp优化器(自适应学习率),控制衰减速度。 -
Adam优化器
Adam = RMSProp+Momentum
既能适应稀疏梯度(即自然语言和计算机视觉问题),又能缓解梯度震荡的问题。
优化器具体内容参考各种优化器Optimizer的总结与比较