本章重点:
1.线性回归的理解与运用。
2.什么是代价函数。
3.什么是梯度下降算法。
一、线性回归
解释代价函数与梯度下降算法前必须提一下线性回归,因为他是代价函数与梯度下降算法的基础。线性回归通过构建一个线性模型来近似输入与输出之间的关系,而代价函数则是在这一框架下设计的关键组件,它衡量模型预测值与实际观测值之间的差异,并作为优化目标,配合梯度下降等算法来寻优模型参数,从而提升模型预测性能。在训练线性回归模型时,我们需要调整模型参数(比如线性回归中的权重θ₀和θ₁)以使得模型尽可能好地拟合数据。
-
当我有一组数据集,想通过线性回归函数去拟合这些数据,这个一次函数没有被确定之前是这样的:
线性回归函数.png
二、代价函数
- 知道了线性回归且因为θ0和θ1是未知的,θ0和θ1可以取任意值,那么如何取这两个值才能很好的拟合这组数据便是用到了代价函数:
代价函数.png - 这就是一次函数的代价函数 J(θ0, θ1)。让我们一步步来分析这个函数。判断拟合的这个函数是否准确就是判断通过这个函数的出来的结果与实际结果有多大的误差(取平方后总是非负的,助于确保损失函数总是定义在一个非负区间内,方便计算和解释):
误差程度.png -
i 为第 i 个数据,上式表示我通过拟合函数 hθ(x) 得到的第 i 个数据与真实的第 i 个数据的误差。总共有 m 个数据,那么我们就应该把 m 个数据的误差求和然后再求出平均误差,得到下面这个式子。
代价函数的整体解释.png
三、梯度下降
知道了代价函数是为了更好的找到θ0和θ1如何取值才能很好的拟合数据组,那么如何让代价函数一步一步找到它的最小值,也就是最后的收敛呢?我们就要引入梯度下降算法啦!
梯度下降算法主要用于解决连续可微函数最小化的问题。其目的是找到一个多变量函数的局部最小值或者全局最小值。
-
从图像上看,从不同的起点开始梯度下降,得到的局部最优解可能会完全不同,如图:
梯度下降图.png -
从公式直观的理解,具体解释如图:
梯度下降算法.png
J(θ0,θ1):代价函数。
-
J(θ0,θ1)求 θj 的偏导是为了反应 点θj 在代价函数中的斜率,斜率影响着学习的速度和趋向收敛值的走向。
假设某个θ点的偏导例子.png
3.α:反应的是从起始点开始梯度下降的步子迈的有多大,也就是学习率,α过高会导致无法收敛甚至越来越发散,α太低会收敛值越精确,但是效率会低。
4.在更新θ0和θ1时必须同时更新,否则会出现某一个θ值的更新值参与到此次更新影响到另外的θ值结果。
5.梯度下降算法的推导:
- 梯度下降算法偏导的推导过程可以看看”温姑娘“这位博客的内容写的很工整详细:https://blog.csdn.net/wyxeainn/article/details/92116787
-
θ0 和 θ1的推导最终结果如图:
梯度下降算法的推到结果.png
声明:以上构图来自吴恩达机器学习课程的内容截图,本人对图片内容添加了个人理解与补充,仅供学习参考。若有不足之处欢迎留言讨论。