跳至主要內容

第 2 章:线性回归模型

Alex Sun2023年2月28日AI机器学习AI机器学习大约 6 分钟

吴恩达机器学习课程,第二章。

2.1 示例

我们还是以房价问题为例。

波特兰的房子面积和价格散点图

我们的目标是构建一个模型,当我获得一个面积的时候,我应该给这个房子的估价是多少?这是单变量回归问题,我们最容易想到的就是线性回归。

2.2 线性回归

线性回归是非常典型的监督学习,我们预先给出 “正确答案”,然后让模型预测 xx 对应的未知的 yy

面积(平方英尺)房价(1000$)
2104400
1600330
2400369
1416232
1985300
1534315
1427199
1380212
1494242
......

假设我们的数据有 mm 条,定义

(x(i),y(i)) \left(x^{(i)},\, y^{(i)}\right)

为第 ii 条数据。对于我们的数据集,其 (x(1),y(1))(x^{(1)},\,y^{(1)}) 就对应 (2104,400)(2104,\, 400)

当我们估计一个 xx 时,我们得到的值是 yy 的估计值,即 y^\hat{y}

y^=f(x) \hat{y} = f(x)

我们需要的模型即为 ff,那么我们应该如何确定我们的 ff 呢。我们这一节以线性模型为例,所以 ff 应该是一个一次函数,我们把参数 wwbb 放在 ff 的下面来表示这是一个参数而非变量。w,bw,\,b 也被称为系数或权重。

fw,b(x)=wx+b f_{w,\,b}(x) = wx + b

定义 像上面这样,数据使用线性预测函数来建模被称为 线性回归,当数据 xx 如上所示维度为一时,线性回归也可以称为 单变量线性回归

2.3 损失函数

我们在预测时,我们需要知道预测值和目标值误差有多大,我们可以简单地衡量出来

y^y \hat{y} - y

当我们需要知道这个模型效果的好坏时,我们往往要计算平方误差

1mi=1m(y^(i)y(i))2 \frac{1}{m}\sum_{i=1}^m \left(\hat{y}^{(i)} - y^{(i)}\right)^2

我们除以 mm 的原因是希望误差不会随着数据量额增大而持续变大,而上面的式子能够很好地衡量出这个直线对数据的拟合误差。

我们在机器学习中通常会将其除以 22,这只是为了让计算整洁,对结果没有任何影响。我们一般将误差函数记作 J(w,b)J(w,\,b),将 y^(i)\hat{y}^{(i)} 带入上式

J(w,b)=12mi=1m(fw,b(xi)y(i))2 J(w,\,b) = \frac{1}{2m}\sum_{i=1}^m \left(f_{w,\,b}(x^{i}) - y^{(i)}\right)^2

2.4 损失函数的直观理解

回顾我们的工作:

项目
模型fw,b(x)=wx+bf_{w,\,b}(x) = wx + b
参数w,bw,\,b
损失函数J(w,b)J(w,\,b)
目标arg minw,bJ(w,b)\argmin_{w,\,b} J(w,\,b)

我们进行一些化简:如果我们直接取 b=0b = 0,即让直线经过原点,这个问题就变得简单一些。

fw(x)=wx f_w(x) = wx

我们只需要得到

arg minwJ(w)=12mi=1m(fw(xi)y(i))2 \argmin_{w} J(w) = \frac{1}{2m} \sum_{i=1}^m \left(f_{w}(x^{i}) - y^{(i)}\right)^2

设我们有三个点 (1,1)(1,\, 1)(2,2)(2,\, 2)(3,3)(3,\, 3),我们尝试拟合这三个点,我们不断尝试 ww 的值,然后计算损失值并由此绘制函数图像。

损失函数图像

我们的目标是通过寻找 ww 的值,使其最小。通过图像,我们发现我们的示例最小值在 w=1w = 1 处(如上图)。

2.5 可视化损失函数

让我们回到最初的优化目标

arg minw,bJ(w,b) \argmin_{w,\,b} J(w,\,b)

事实上,如果我们想可视化 J(w,b)J(w,\,b),这将会是一个三维的函数(表现为曲面),

j_wb
j_wb

我们可以通过它来绘制等高图,等高线上的每一个点的损失值都相同。

counter
counter

在本节的 Jupyter Notebook 你可以看到交互式的演示。

现在让我们回到主题,什么是机器学习?就是让机器自动地寻找解决问题的最优方法,我们应该提供一个有效算法,让我们不用手动计算每一处的损失值,让机器能够自动地去发现最小的损失值。

下面我们将介绍梯度下降,这不仅仅能解决单变量线性回归问题,也能够解决人工智能中最大最复杂的模型优化问题。