仅以此文献给还在努力的自己.
什么是梯度下降法(gradient descent):
又名:最速下降法,是一个最优化算法
步骤:
步骤:
1.确定线性函数h(x)
2.建立损失函数J()
3.求参数.即对J(
)求偏导数(梯度方向),然后一级一级求,最终求出
4.代入h(x)
简单理解:
梯度方向:数值增大最陡的方向
例如:一元函数,梯度方向为切线增长的方向
2元函数,对,x,y,分别求偏导,由导数组成的向量就是梯度方向
第一步:建立线性函数h(x)
上面我们知道影响成绩有玩游戏的时间,看书的时间,谈恋爱,当然还有很多其他因素,比如走神时间等等无数个因素,这些因素就叫做因变量,所以我们做出一个估计函数:
此处把所有向量组织成矩阵,采用矩阵的方式进行计算
:默认为列矩阵,转秩之后为行矩阵
第二步:建立损失函数,其实就是我们上面的残差平方和RSS
我们的目标是使j()最小,怎么使它最小呢?即minJ()
方法:对求偏导,沿着梯度反方向进行收敛
解释:沿着梯度的方向上升最快,沿着梯度的反方向下降最快
开求:
第三步.求
公式:
其中:a是步长,即在每次梯度反方向上变化多少
注意:是向量,有方向,所以我们每次只要沿着梯度的方向进行下降就行,因为这是最快的下降方式.
所谓梯度:
,这个梯度沿x移动
,沿着y移动
注意:
梯度上升法到达每个点都会被重新估计移动方向.从x0,开始,计算完梯度之后移动到x1,接着再重新计算梯度,移动到x2,直到满足最佳的移动方向.
终止条件:
(1)达到某个制定值
(2)算法达到某个允许的误差
缺点:(1)可能产生局部最小点而不是全局最小点
(2)每次都要计算整个样本,计算量大
上上面那个图就是这个图的投影
改进:(随机梯度法):
至此: 我们可以求出
注:部分图片来源于网络.