1. 知识点
- Mini-batch梯度下降法
普通梯度下降法,每一步梯度下降都要对训练集的所有样本进行运算。
Mini-batch梯度下降法,每一步梯度下降选择训练集样本的子集进行运算。
Mini-batch梯度下降的算法实现:打乱训练集、对训练集进行切分(比如,切分为64个子集)、更新参数时每次选择一个子集进行运算。
普通梯度下降、随机梯度下降、Mini-batch梯度下降成本函数的比较:普通梯度下降每一次训练时间较长,成本递减;随机梯度下降成本总体趋势向下,呈波动状态;Mini-batch在前两者之间做到一个平衡。
Mini-batch大小的选择:如果样本数较小,选择普通梯度下降。切分的子集的样本数,要符合CPU/GPU的运算能力。
- 指数加权平均:将离散波动的观测值变得平滑。
同时考虑当前观测值和前n个观测值的平均值,对两者进行加权运算,获得指数加权平均值。。
偏差修正:由于=0 ,且较大,t较小时,会明显小于,需要修改。修正函数为。随着t的增大,接近于0 ,不再起到修正作用。
- 动量梯度下降法:为了减小梯度下降时成本函数上下波动幅度,将指数加权平均用在计算梯度上。、、、。
- RMSprop优化算法:(为啥这样更新能起到减小成本波动的作用,没想明白??)
- Adam优化算法:将动量梯度下降法和RMSprop结合起来。
用动量梯度下降计算,用RMSprop计算,分别修偏差,,,更新参数。
- 学习率衰减:用固定的学习率,当算法在到达最小值附近时,由于噪声存在,使得不会精确收敛,而是会在最小值附近一定范围内波动。学习率衰减,可以让波动减小,计算结果更接近最小值。
- 局部最优
存在一些局部最小值点,其梯度为0。
在高维度的函数中,会存在一些梯度为0的点,并不是局点最小值点,而是在有些维度局部最小,在有些维度局部最大,这样的点为鞍点。