最速下降法极小化rosenbrock函数 代码_应该没有比这更全面的“梯度下降”总结了。...

在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)是最常采用的方法之一,另一种常用的方法是最小二乘法。今天小天就对梯度下降法做一个完整的总结。

最速下降法极小化rosenbrock函数 代码_应该没有比这更全面的“梯度下降”总结了。..._第1张图片

一、梯度

‍‍在微积分里面,对多元函数的参数求∂偏导数,把求得的各个参数的偏导数以向量的形式写出来,就是梯度。

‍‍比如函数:74456373f04fb06cc226ab2d11c79d81.png分别对x,y求偏导数,求得的梯度向量就是f22257a8c19001353f769ed36ab49aa8.png,简称e4cc246d99db0180b59538463cd95743.png,或者a66bde4620ecdbee3ab9914d9a341084.png

对于在点daf1208f85e7e751dd78f105b0424e15.png,的具体梯度向量就是d0cfa3227bdb6e07f357a51040b2e05e.png;或者ceee5fa5de0883866acbeadfbf7f3481.png,如果是3个参数的向量梯度,就是d5e225312d65edad205baa00bccf4f60.png以此类推。

那么这个梯度向量求出来有什么意义呢?

他的意义从几何意义上讲,就是函数变化增加最快的地方。具体来说,对于函数96568811149e1f1f2789e65ea482c364.png,在点a456ac801c4b30df91c8c2b55d034df8.png,沿着梯度向量的方向就是6394297a26ae35e1a4941dadea9ef66a.png的方向是57120253a68a5a9f72349ff3f4ef1473.png,增加最快的地方。或者说,沿着梯度向量的方向,更加容易找到函数的最大值。反过来说,沿着梯度向量相反的方向,也就是dc711a406c1235ffcc12933f41bf7f00.png的方向,梯度减少最快,也就是更加容易找到函数的最小值。

二、梯度下降与梯度上升

‍‍

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

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

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

三、梯度下降法算法详解

1. 梯度下降的直观解释

首先来看看梯度下降的一个直观的解释。

比如我们在一座大山上的某处位置,由于我们不知道怎么下山,于是决定走一步算一步,也就是在每走到一个位置的时候,求解当前位置的梯度,沿着梯度的负方向,也就是当前最陡峭的位置向下走一步,然后继续求解当前位置梯度,向这一步所在位置沿着最陡峭最易下山的位置走一步。

这样一步步的走下去,一直走到觉得我们已经到了山脚。当然这样走下去,有可能我们不能走到山脚,而是到了某一个局部的山峰低处。

从上面的解释可以看出,梯度下降不一定能够找到全局的最优解,有可能是一个

你可能感兴趣的:(代码,梯度下降参数不收敛)