最速下降法极小化rosenbrock函数 代码_机器学习系列(四)—— 梯度下降

梯度下降

梯度下降(Gradient Descent)是求解机器学习模型参数最常用的方法之一,我们的《机器学习系列》前几章已经提到了梯度下降,并对此进行了简单描述。近期恰好读到刘建平Pinard老师写的《梯度下降小结》很详尽,故在此基础上略微改动分享给大家。

1 梯度

在微积分里,对多元函数参数求偏导数,把求得的各个参数的偏导数以向量形式写出来,就是梯度。比如函数, 分别对、求偏导数,求得的梯度向量就是,简称或者。如果是3个参数的向量梯度,就是,以此类推。

那么求梯度向量有什么意义呢?从几何意义上讲,梯度就是函数变化增加最快的地方。或者说,沿着梯度向量的方向,更加容易找到函数的最大值。反过来说,沿着梯度向量相反的方向,的方向,梯度减少最快,也就更加容易找到函数的最小值。

2 梯度下降与梯度上升

机器学习算法在最小化损失函数时,可以通过梯度下降法一步步迭代求解,得到最小化的损失函数和模型参数值。反过来,如果我们需要求解损失函数的最大值,这时就需要用梯度上升法来迭代了。

梯度下降法和梯度上升法是可以互相转化的。比如,求解损失函数的最小值(此处为参数),这时我们需要用梯度下降法来迭代求解。但是实际上,我们可以反过来求解损失函数的最大值,这时梯度上升法就派上用场了。

下面详细总结了梯度下降法。

3 梯度下降算法详解

3.1 梯度下降的直观解释

首先,梯度下降的一个直观的解释:比如,我们在一座大山上的某处位置,由于我们不知道怎么下山,于是决定走一步算一步,也就是在每走到一个位置的时候,求解当前位置的梯度,沿着梯度的负方向,也就是当前最陡峭下山最快的位置向下走一步,然后继续求解当前位置梯度,继续沿最陡峭下山最快的位置走一步。这样一步步的走下去,一直走到我们觉得已经到了山脚。当然这样走下去,有可能

你可能感兴趣的:(代码,机器学习中为什么需要梯度下降,梯度下降参数不收敛)