根据函数的一阶泰勒展开,在负梯度方向,函数值是下降的。只要学习率设置的足够小,并且没有达到梯度为0的地方,每次迭代函数值一定会下降。
实操中为什么将学习率设置为一个非常小的正整数?保证迭代后的X(k+1)位于迭代之前的X(k)的邻域内,避免跳过最佳路径。
局部最小值 :有的函数可能有多个局部极小值点,梯度下降法可能在一个非全局最小值的局部最小值点就终止优化了。
鞍点 : 鞍点是指梯度为0,Hessian矩阵既不是正定也不是负定,即不确定的点。如下图,黄色的曲线处梯度下降遇到了鞍点,认为已经招到了极值点,从而终止迭代过程,而这里根本不是极值点。
对于很多机器学习的问题,我们的目标函数是对样本的损失函数。而在很多实际应用中,样本数量很大,网络的层级也很深,也意味着需要训练的参数极多。此时如果每次训练时都用所有的样本计算梯度并更新,成本太高,作为改进,可以每次迭代的时候选一批样本将损失函数定义在这些样本上。
随机梯度下降法在数学期望上的意义下收敛,即随机采样产生的梯度的期望值是真实的梯度。因为每次迭代时的目标函数实际是不一样的,因此随机梯度下降法并不能保证每次迭代时全局样本的损失函数值一定下降。
数学知识告诉我们,一阶导数代表函数变化的方向和速度,二阶导数则代表“变化”变化的方向和速度。而牛顿法正是利用了函数的一阶和二阶导数信息,直接寻找梯度为0的点。
牛顿法比梯度下降法有更快的收敛速度,但每次迭代时需要计算 Hessian 矩阵,并且求解一个线下方程组,运算量更大。并且,如果 Hessian 不可逆,这种方法就失效了。