一.讨论无约束优化问题:
最速下降法求解无约束优化问题最简单和古老的方法之一。虽然如今它有很多缺陷,但却是研究其他约束优化算法的基础。
用不同的方式确定搜索方向或搜索步长,会得到不同的算法。最速下降法是用负梯度方向作为搜索方向,因此也称为梯度法。
为什么选择梯度下降法?
事实上负梯度方向并不是一个好的下降方向,需要很多步骤才能收敛,用其它高阶的算法能够在更少的步骤收敛。但它的优点是简单,不需要计算高阶导数,每次只需要计算梯度方向。而且它也是一个下降的算法,能保证每次更新都是下降的。
下面证明梯度下降法是一个下降的算法:
设代价函数
其中,v1,v2是模型参数,n是训练数据的个数,a代表输出层的向量,这个和是包含了所有的训练输入x。C称为二次代价函数,也称为均方误差。目标是使代价函数最小。
二.梯度下降法大家族(BGD,SGD,MBGD)
1. 批量梯度下降法:一次采用所有数据来梯度下降(就是一讨论的问题,是一个下降算法)
2.随机梯度下降法:一次采用一个样本来梯度下降
1和2各自的优缺点都非常突出。对于训练速度来说,随机梯度下降法由于每次仅仅采用一个样本来迭代,训练速度很快,而批量梯度下降法在样本量很大的时候,训练速度不能让人满意。对于准确度来说,随机梯度下降法用于仅仅用一个样本决定梯度方向,导致解很有可能不是最优。对于收敛速度来说,由于随机梯度下降法一次迭代一个样本,导致迭代方向变化很大,不能很快的收敛到局部最优解。
3.小批量梯度下降法(mini-batch gradient descent)是批量梯度下降法和随机梯度下降法的折衷,也就是对于m个样本,我们采用x个样子来迭代,1