关于随机梯度下降法小心得

关于随机梯度下降法小心得_第1张图片
上述代码一次运行后的结果如下
关于随机梯度下降法小心得_第2张图片
表明陷入了loss的局部极小值
其他几次运行的结果也不稳定

为了解释上述原因

首先上面用的loss是
关于随机梯度下降法小心得_第3张图片
梯度下降法就是每次迭代时计算的是训练样本的误差的和(也叫批量学习batch learning
对于非凸误差空间来说,模型的优化结果取决于权重的随机初始值
可能会陷入局部极小值中出不来。

为了避开这种情况,我们会使用随机梯度下降法,每一次迭代是每个训练样本的误差去更新,相当于上面的公式的累计和符号去掉

而回到主题,我们上面虽然采用的是SGD(随机梯度下降法)但是由于训练样本数只有四个,过于小,而小数据样本很大程度受限于随机初始值,因为一个迭代周期中(即上面的100次迭代)四个样本算误差的顺序固定着,也就是朝着下降的梯度方向很难有大改变(因为它们假定自己走的方向就是全局极小值的方向,然而殊不知在一步步陷进局部极小值)
但对于大数据而言,样本很大(多样性),也就是说改变方向(就是如果随机初始值很差,往着局部极小值的方向,很靠近)的可能性会大,也就是它的下降方向会更准确。

随机梯度类似于在进行参数估计,因为不是算整体的
关于随机梯度下降法小心得_第4张图片
epoch是迭代数

你可能感兴趣的:(机器学习笔记,深度学习,神经网络)