Mini-batchgradient
1 gradient descent又可以被称为steepest descent
2 梯度下降算法误差曲线:一般的梯度下降算法误差曲线是椭圆形的,这样就会存在问题,例如,实际要跨的步子可 能很小,但是梯度算法求解出来的步子很大;实际要跨的步子可能很大,但是梯度下降算 法求解出来的步子很 小。所以,好的做法是将椭圆形的误差面转化成为圆形的误差面, 这也是下面的改进所要完成的事情。
3 如果数据集中存在大量的冗余,那么使用前一半数据得到的梯度下降结果和使用另一半的结果相同,那么此时就不需要使用全部的数据进行权重的训练,可以先使用一半数据训练得到一组权重,然后再使用另一半,更新上述得到的权重。这种极端情况就是随机梯度学习。
(1)在权重更新的过程中,计算量要少于使用随机梯度下降算法
(2)梯度下降算法在计算的过程中会涉及到矩阵间乘法,这个可以通过并行计算完成
5 mini-batchgradient 的注意点:以分类问题为例:提取的数据中应该要尽可能的包含所有的分类情况。
6 mini-batchgradient处理的小技巧:
(1)初始化权重:
如果初始化权重相同,然后输入也相同,那么就会导致结果也相同,这样就没有办法了解数据之间的差异性。所以采用随机初始化的方法。同时如果输入项个数很多时,要减小权重,以防止学习过程中迭代过度。
(2)改变输入项数据:shifting inputs(数据整体进行缩放,不同坐标轴上数据的缩放是一致的),scaling inputs(坐标轴整体的缩放,不同坐标轴上的数据缩放比例可以不一样)
(3)主成分分析方法:当输入项彼此之间存在很强的关联性时,得到最优值的过程是漫长的,所以降低输入项彼此 间的相关性是必要的。所以,采用PCA(主成分分析方法)可以将输入项转变为彼此不相关。
7 提高mini-batch gradient学习的速度
(1) 动量梯度下降算法(mpmentum method)
梯度下降算法的目标是最终获得一个全局最优值,以抛物线为例,最终会停在最低点不动,从动量的角度来说,每次在权重更新的过程中都会存在能量的流失,到最后就会彻底停在某个点上。
动量梯度下降算法的过程是,一开始根据梯度下降算法指定的方向运动,当获得一定的速度以后,就不会再按照梯度下降算法的方向运行
(2) 学习效率自适应:
(1) Rmsprop: