3 优化算法介绍
3.1 梯度下降法
梯度下降法:
[定义] :梯度下降法(英语:Gradient descent)是一个一阶最优化算法,通常也称为最速下降法。 要使用梯度下降法找到一个函数的局部极小值,必须向函数上当前点对应梯度(或者是近似梯度)的反方向的规定步长距离点进行迭代搜索。如果相反地向梯度正方向迭代进行搜索,则会接近函数的局部极大值点;这个过程则被称为梯度上升法。
(摘自维基)
对θ使用梯度下降法时的公式: θ=θ−μ∂L∂θ (μ称为步长,也称之为学习率)
使用梯度下降法的步骤如下:
- 初始化所有θ的值都为0
- 求出损失函数的偏导数,然后对θ进行更新。
- 重复第二步,直到迭代次数达到预先设定的最大值。
目前常用的梯度下降法有两种,一种是随机梯度下降法,另一种是批量梯度下降法。
[问题] : 如何确定梯度下降的步长?
固定步长
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∂θ(∂2L∂2θ)−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)
还有拟牛顿法等,在此就不一一介绍了。