【MachineLearning】梯度下降与牛顿法

参考:牛顿法 https://zhuanlan.zhihu.com/p/22862479

微分:微分的概念是无线分割。y=f(x),当dx无限靠近自己的时候,函数在dx处的极限
叫做函数在dx处的微分。

求解最值的方法:
一、线性回归中的梯度下降法Gradient Descent[随机梯度下降|批量梯度下降]
适用于无约束优化问题。
参考:stanford CS229 note1
linear expression: h(x) = θT x
cost function: J(θ) = 1/2∑m(h(x)-y)^2 最小二乘法 => 曲线拟合(欧几里得距离)
解释:损失函数,平方是为了避免正负符号问题,1/2是为了数学方便
关于最小二乘法,需要做一个detail learning
θj := θj - α△J(θ)  #这里对cost function求导就是在求梯度,寻找让J(θ)最小的θ值
△J(θ) = (h(x)-y) * △j(h(x)-y)
△J(θ) = (h(x)-y) * xj
=> θj := θj - α(hθ(xi)-yi)xij
θj := θj + α(yi - hθ(xi))xij Widrow-Hoff learning rule
批量梯度下降:
Repeat:{
θj := θj + α∑(1->j)(yi - hθ(xi))xij
}
随机梯度下降:
Loop:{
for i=1 to m,{
θj := θj + α(yi - hθ(xi))xij
}
}

二、牛顿法(全称:牛顿-拉弗森方法 Newton-Raphson method)
要解决的问题:求函数l(x)的最值
求导得极值:l'(x) = 0,令f(x)=l'(x)=0
=>解决的问题:f(x) = 0
=>画切线,无限逼近 tanθ = f'(x)
= f(x) / △x
=> △x = f'(x) / f(x)
=> θ := θ - f'(x)/f(x)
f(x)=l'(x)=> θ := θ - l''(x)/l'(x)
特殊情况:H值为0,应当另设初始点,重新计算。

 

三、对比
梯度下降:平面逼近局部,求最值。一阶收敛。
牛顿法:曲面逼近局部,求最值。二阶收敛。
解读:梯度下降是在平面上,找坡度下降/上升的方向迈出一步。
牛顿法不但考虑要朝着坡度下降最大的方向走一步,还要考虑下下一步的坡度
下降要更快。所以牛顿法比梯度下降最快。

posted @ 2018-01-24 20:26  小七西西  阅读(162)  评论(0编辑  收藏  举报