1、在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)是最常采用的方法之一,另一种常用的方法是最小二乘法。
梯度的方向是函数f增长最快的方向,梯度的反方向是梯度下降最快的方向
对于梯度下降的解释是:
比如说下山的过程中,我们不知道从哪里下山可以最快到达山脚下,这个时候求偏导,也就是求出梯度值,沿着梯度的负方向,也就是当前位置最陡峭的方向走一步,然后继续求当前位置的梯度,一步一步往下走,就可以到达山脚。
算法过程:
2、梯度下降和其他的下降方法比较:
在机器学习中的无约束优化算法,除了梯度下降以外,还有前面提到的最小二乘法,此外还有牛顿法和拟牛顿法。
梯度下降法和最小二乘法相比,梯度下降法需要选择步长,而最小二乘法不需要。梯度下降法是迭代求解,最小二乘法是计算解析解。如果样本量不算很大,且存在解析解,最小二乘法比起梯度下降法要有优势,计算速度很快。但是如果样本量很大,用最小二乘法由于需要求一个超级大的逆矩阵,这时就很难或者很慢才能求解解析解了,使用迭代的梯度下降法比较有优势。
梯度下降法和牛顿法/拟牛顿法相比,两者都是迭代求解,不过梯度下降法是梯度求解,而牛顿法/拟牛顿法是用二阶的海森矩阵的逆矩阵或伪逆矩阵求解。相对而言,使用牛顿法/拟牛顿法收敛更快。但是每次迭代的时间比梯度下降法长。
3、梯度下降找到的一定是下降最快的方向吗?
梯度先将不一定能够找到全局最优解,也可能是一个局部最优解,如果损失函数是凸函数,梯度下降法得到的解一定是全局最优解
4、什么造成了梯度消失的问题?
sigmoid函数f(x)的导数是f(x)f(1-f(x)),因为f(x)的输出在0-1之间,所以随着深度增加,从顶端传过来的倒数每次乘以两个小于1的数,很快就会变得特别小,,接近于0,造成梯度消失
5、什么是拟牛顿法:
拟牛顿法的思想是改善牛顿法每次需要求解复杂的海森矩阵逆矩阵的缺陷,使用正定矩阵来近似海森矩阵,从而剑豪了运算的复杂度,拟牛顿法和最速下降法一样只要求每一步迭代时知道目标函数的梯度,通过测量梯度的变化,构造一个目标函数的模型使之足以产生超线性收敛,因为它不需要二次求导,所以比牛顿法有效
6、什么是共轭梯度法
共轭梯度法是介于梯度下降法与牛顿法之间的一个方法,它仅需利用一阶导数信息,但客服了梯度下降法收敛慢的缺点,又避免了牛顿法需要存储和计算Hessian矩阵求逆的缺点,共轭梯度法不仅是解决线性方程组最有效的算法之一,在各种优化算法中,共轭梯度发非常重要,所需的存储量小,具有逐步的收敛行,稳定性高,而且不需要任何外来参数。