机器学习笔记(三)牛顿法和梯度下降法

来源:互联网 发布:张公子知乎 编辑:程序博客网 时间:2024/05/21 07:50

3 优化算法介绍

3.1 梯度下降法

梯度下降法:

[定义]梯度下降法(英语:Gradient descent)是一个一阶最优化算法,通常也称为最速下降法。 要使用梯度下降法找到一个函数的局部极小值,必须向函数上当前点对应梯度(或者是近似梯度)的反方向的规定步长距离点进行迭代搜索。如果相反地向梯度正方向迭代进行搜索,则会接近函数的局部极大值点;这个过程则被称为梯度上升法

(摘自维基)

对θ使用梯度下降法时的公式: θ=θμLθ (μ称为步长,也称之为学习率)

使用梯度下降法的步骤如下:

  1. 初始化所有θ的值都为0
  2. 求出损失函数的偏导数,然后对θ进行更新。
  3. 重复第二步,直到迭代次数达到预先设定的最大值。

目前常用的梯度下降法有两种,一种是随机梯度下降法,另一种是批量梯度下降法。

[问题] : 如何确定梯度下降的步长?

  1. 固定步长

  2. line search方法。 首先指定一个步长μ,然后根据这一步长进行更新,并判断更新后损失函数有没有下降,有下降就直接进行下一步,没有下降就按一定比例不断缩小步长μ,循环十次,直到可以让损失函数的值下降。

    (还有很多方法)

3.2 牛顿法

牛顿法

[定义]:In calculus, Newton’s method is an iterative method for finding the roots of a differentiable function f (i.e. solutions to the equation f(x)=0). In optimization, Newton’s method is applied to the derivative f ′ of a twice-differentiable function f to find the roots of the derivative (solutions to f ′(x)=0), also known as thestationary points of f. (摘自维基)

[翻译]:在微积分学中,牛顿法是一个迭代求可微函数的根的方法。在优化中,牛顿法被应用对二次可微函数f,求解其偏导数的根,也被看作f的驻点。

对θ应用牛顿法的公式:θ=θLθ(2L2θ)1

[理论依据]:

我们需要求f‘(x)=0,f’(x)的泰勒的二次展开式有:

f(x)=f(x0)+Δxf′′(x0)) (其中,Δx = x-x0)

我们知道,这个式子在Δx无限趋近于0时成立。我们需要求偏导数为0,则令f(x)为偏导数。则该式等价于:

0=f(x0)+Δxf′′(x0)
Δx=f(x0)f′′(x0)

还有拟牛顿法等,在此就不一一介绍了。

0 0
原创粉丝点击