参考博客:
https://zhuanlan.zhihu.com/p/22252270?utm_source=qq&utm_medium=social
https://zhuanlan.zhihu.com/p/32626442
标记成原创是因为加入了很多整理,内容并非原创,写在前面,希望后人不要误解,一切解释归参考博客中的博文所有
在文章:
LeNet-5 研习 4 (进行C语言实现LeNet的后向传播的解读)
我们对梯度下降法进行了介绍,为了方便,这里我们那部分内容全部拷贝过来:
你也可以通过目录,快速跳转到梯度下降优化方法
一 基础简介
2梯度下降法(粗略看下即可)
2.1感知器
2.2线性单元
2.3误差准则
当然,实际情况下的loss损失函数可能更为复杂,比如鞍面,这样我们使用梯度下降就有可能取到局部极值,从而引出梯度下降的很多优化算法,在另外的博客中我们再行具体论述:
2.4梯度下降法的推导
2.5增量梯度下降
2.6关于寻优方法的比较
二梯度下降优化方法
前文中我们提到过
批量学习方法:突触权值的调整在训练样本集合的所有N个例子都出现后进行,这个N个例子构成训练的一个回合,每个回合的训练样本的样例都是随机选择的,而权值的调整是靠所有N个例子的总体平均来实现。
批量学习方法的优点在于能够精确估计当前梯度向量(即代价函数对权值向量W的导数),因此,保证能最快下降到局部极小点的收敛性,另外能满足并行计算的要求,当前也增加存储压力。
在线学习方法:即样例是一个接一个输入网络中,只有当前一样本输入完成权值调整后,后一样本才能进入网络。在线学习方法相比于批量学习方法,其更容易执行,而且也不易陷入局部极值点,另外比批量学习需要更少的存储空间。
例子:关于mnist使用LeNet-5的损失函数loss
如果我们使用批量学习方法
其中D是训练样本的集合,是训练样本d的目标输出(训练样本d的类别信息),是线性单元对于训练样本d的实际输出
上图是对于mnist的识别,d=1,一个样本的各个类别信息,各个神经元实际输出,以及相减的误差信息(上图其实是使用在线学习方法,但是在线学习方法就是相当于批量学习方法d=1的情况)
如果我们使用在线学习方法
每次只输入一个训练样本
和上面一样,不过每次就是输入一个样本,上述数据直接可作为进行反向传播