前两天学习了最小二乘法在线性回归中可以用来求解最小代价函数(损失函数),今天学习的梯度下降法在线性回归中与最小二乘法具有类似的功能,也可以用来求解最小代价函数,只不过是采用迭代的方式,下面是我对梯度下降法的总结。
一、梯度下降法概述
官方定义:梯度下降是迭代法的一种,可以用于求解最小二乘问题(线性和非线性都可以)。在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)是最常采用的方法之一,另一种常用的方法是最小二乘法。在求解损失函数的最小值时,可以通过梯度下降法来一步步的迭代求解,得到最小化的损失函数和模型参数值。反过来,如果我们需要求解损失函数的最大值,这时就需要用梯度上升法来迭代了。在机器学习中,基于基本的梯度下降法发展了两种梯度下降方法,分别为随机梯度下降法和批量梯度下降法。
我的理解:梯度下降可以这样理解,假如我们在大山中的某个位置,我们不知道该如何下山,于是决定走一步算一步,也就是在每走到一个位置时,求解当前位置的梯度,沿着梯度的负方向也就是当前最陡峭的位置向下走下一步,然后继续求解当前位置的梯度,向这一步所在位置沿着最陡峭最易下山的位置走一步。这样一步步的走下去,一直走到觉得我们已经到了山脚。当然这样走下去,有可能我们不能走到山脚,而是到了某一个局部的山峰低处。下图可以直观的解释梯度下降。
二、梯度下降法的原理
从数学上的角度看梯度的方向就是函数增长速度最快的方向,那么梯度的反方向便是函数减少最快的方向,那么如果想计算一个函数的最小值,就可以使用梯度下降法的思想来做。假设希望求解目标函数的最小值,可以从一个初始点开始,基于学习率(步长)构建一个迭代过程:当时,
其中