机器学习分为监督学习和无监督学习, 监督学习又分为 回归问题 和 分类问题, 本文主要介绍监督学习-回归问题 中的 单变量线性回归,包括假设函数、代价函数、梯度下降等概念。
单变量线性回归
(Linear Regression with One Variable)
1. 假设函数
(Hypothesis)
以上述预测房价的回归模型为例,由于只有一个输入变量/特征,我们可以定义假设函数Hypothesis为:
显然,
是一条斜率为
,且在
轴上截距为
的直线,我们要做的就是用这条直线来拟合数据。
2. 代价函数
(Cost Function)
为了使 Hypothesis 具有最好的预测效果,即
的值最小,就要为模型选择合适的参数(parameters)
,它们决定了直线相对于训练集的准确程度 ,模型所预测的值与训练集中实际值之间的差距(下图蓝线所指)就是 建模误差(modeling error)
我们可以定义代价函数来表示建模误差: 代价函数也被称作 平方误差代价函数(Squared Error Cost Function),是解决回归问题最常用的手段。
- 当
时,代价函数即为关于
的二次函数:
时,假设函数 就是一条过原点的直线,通过改变斜率 可以画出其代价函数即为一个二次函数:
- 当
和
都在变化时,我们绘制一个表示代价函数的三维图,三个坐标分别为
、
和
:
则可以看出在三维空间中存在一个使得 最小的点。
3. 梯度下降
(Gradient Descent)
为了找出使代价函数 取最小值的参数 和 ,我们可以使用梯度下降法。 梯度下降背后的思想如下图所示:
想象一下你正站立在山的这一点上,在梯度下降算法中,我们要做的就是旋转360度,看看我们的周围,并问自己要在哪个方向上,能用小碎步尽快下山。
- 当你站在山坡上的这一点,看一下周围,你会发现最佳的下山方向,然后你按照自己的判断迈出一步;
- 你再看看周围,然后再一次想想,我应该从什么方向迈着小碎步下山?然后你按照自己的判断又迈出一步;
- 重复上面的步骤,并依此类推,直到你接近局部最低点的位置。
- 开始时随机选择一个参数的组合 ,计算代价函数 的值;
- 然后在初始参数组合的周围寻找下一个能让代价函数值下降最多的参数组合;
- 持续这么做直到找到一个 局部最小值(local minimum),因为我们并没有尝试完所有的参数组合,所以不能确定我们得到的局部最小值是 全局最小值(global minimum),选择不同的初始参数组合,可能会找到不同的局部最小值。
4.梯度下降的直观理解
首先看梯度下降算法的公式:
公式解释如下:
- :学习率(learning rate),决定了我们沿着能让代价函数下降程度最大的方向向下迈出的步子有多大
- :代价函数 对 和 的偏导数
为了直观理解,还是以 为例,此时代价函数为关于 的二次函数, 就可以理解为二次函数在某个 点上切线的斜率,那么:
斜率 × 学习率 = 每进行一次梯度下降所降的高度
如下图所示,当
逐渐向左移动,切点斜率也在变小,因此 越接近代价函数的最低点,每次梯度下降的高度也越小,直到到达最低点斜率为零,此时
不再更新赋值,即收敛到局部最低点。
注意:线性回归模型中的代价函数,总是一个凸函数(convex function),这个函数没有局部最优解,只有一个全局最优解,例如下图中的碗状:
5. 线性回归中的梯度下降算法
(Gradient Descent for Linear Regression)
总结一下梯度下降算法和线性回归模型:
对线性回归问题运用梯度下降法,关键在于求出代价函数的导数,即:
则算法改写成:
由于在梯度下降的每一步中,都要计算微分求导项,这个项需要对所有
个训练样本求和。因此,我们也称这种梯度下降为 批量梯度下降法(Batch Gradient Descent) 。
本章介绍了只含有一个参数的单变量线性回归,关于多变量线性回归见下一章(3)多变量线性回归与特征缩放