梯度下降算法在机器学习领域是非常重要的一个解决问题的方法,目的就是基于历史数据,拟合出一个理想的模型。
一、梯度下降算法阐述
1.1 梯度下降阐述
梯度下降算法是对损失函数(cost function)进行求导,最后目标是获得使损失函数的导数最小或者相对最小的参数值。
具体分析,损失函数 J(θ0,θ1),图形化表示损失函数如图:
梯度下降算法的目的就是将(θ0,θ1)对应的 J(θ0,θ1)从较高的地方,逐步改变到低谷的 J(θ0,θ1)值,也就是让 J(θ0,θ1)尽可能的小,可以理解成从山上下山,逐渐下到较低或最低的山底。
梯度下降算法如下:
(其中alpha>0, j=0,1)
举个例子:
例如损失函数如图所示,alpha>0,如果初始值在A1点,A1点的斜率是正数,那么θ1会往左移动,往更加接近最低点的位置移动。
如果初始值处于B1点,斜率为负数,那么θ1会往右移动,也是往更加接近最低点的位置移动。
1.2 alpha的作用
alpha表示学习速率,直观的表现是影响梯度下降过程中的步长。alpha越大,学习速率越大,收敛越快,alpha越小,学习速率越小,收敛越慢。
另外,alpha的值如果过于小,会是学习速率过于慢,影响效率,另外,很容易得出局部最优解的结果。alpha的值过大也会引发另一个问题,导致梯度下降的过程中错过最优解,而导致发散不收敛。
1.3 alpha大小的影响
1.4 收敛速率
即使不调节alpha的值,随着梯度下降过程中越来越接近最优点或局部最优点,由于斜率在接近最优点的过程中是逐渐降低的,收敛速率也是逐步降低的。
例如,A1的斜率大于A2的斜率,B1的斜率大于B2的斜率。
1.5 局部最优解
当cost function如下图所示的时候,很容易求出的θ值是局部最优解。局部最优解的表现是导师为0,达到局部最优解的位置之后,无论怎么进行梯度下降,由于其导数为0,都不会改变θ值。
1.6 θ参数同时更新
有一点需要说明,所有θ的更新需要同步进行,不能单独进行,下面对θ的更新进行了比较,一定要谨记。
二、线性回归模型的梯度下降
2.1 总体阐述
左侧是梯度下降算法,右侧是线性回归模型以及相应的cost function
2.2 梯度下降的算法求解
以下就是梯度下降算法的求解过程,一般对微积分和求导有所了解的话,还是比较简单的。
2.3 线性函数的cost function(凸函数)
线性回归的cost function是凸函数,所谓的凸函数简单点理解就是一个弓形函数,在梯度下降的时候,只会求出最优解。
2.4 线性回归模型的梯度下降过程
三、总结
以上就是针对梯度下降算法,以及结合线性回归模型的梯度下降的算法解释。
领取专属 10元无门槛券
私享最新 技术干货