梯度下降(Gradient Descent)是在求解机器学习算法的模型参数(无约束优化问题)时,最常采用的方法之一
代价函数
提到梯度下降就不得不说一下代价函数。代价函数也被称作平方误差函数,有时也被称为平方误差代价函数。
我们以猜测房屋价格为例子来说明代价函数的具体形式。问题简化之后可以认为拟合一条直线来衡量房子的价格,下图为表达式。可以看到有两个参数θ0和θ1
我们选择的参数决定了我们得到的直线相对于我们的训练集的准确程度, 模型所预测的值与训练集中实际值之间的差距就是 建模误差(modeling error)。我们的目标便是选择出可以使得建模误差的平方和能够最小的模型参数。
代价函数
我们想要的结果是使这个函数最小,前面的1/2是为了在求导的时候方便计算
梯度下降
梯度下降是一个用来求函数最小值的算法,我们将使用梯度下降算法来求出代价函数J(θ0 ,θ1 ) 的最小值。
梯度下降原理:将函数比作一座山,我们站在某个山坡上,往四周看,从哪个方向向下走一小步,能够下降的最快
方法:
- 先确定向下一步的步伐大小,我们称为学习率Learning rate;
- 初始化参数的值
- 沿着负梯度方向去减小函数值并更新参数
-
当下降的高度小于某个定义的值或迭代次数超过一定限制,则停止下降;
对于多个参数的情况那是一样的
梯度和偏导数都是向量,那么参考向量运算法则,我们在每个变量轴上减小对应变量值即可
特点:
- 这种方法只能找到一个局部最小值(local minimum),因为我们并没有尝试完所有的参数组合,所以不能确定我们得到的局部最小值是否便是全局最小值(global minimum),选择不同的初始参数组合,可能会找到不同的局部最小值。
- 越接近最小值时,下降速度越慢
网友评论