第二章 单变量线性回归(Linear Regression with One Variable)(一)
第1节 模型和代价函数(Model and Cost Function)
2.1 模型表示
参考视频 : 2 - 1 - Model Representation (8 min).mkv
我们学习的第一个算法是线性回归算法。你将会了解这个算法的概况,以及监督学习过程完整的流程。
还是预测房价的例子。已知一个数据集,其中包含不同尺寸的房子的价格。通过构建模型(直线、曲线或其他),可以对数据集外的房子预测价格。这就是监督学习中的回归问题。
在这个例子中,假设我们的数据训练集(training set)如下表所示:
回归问题的符号标记规定如下:
- m m m 代表训练集中实例的数量(数据集中样本的数量)
- x x x 代表特征/输入变量
- y y y 代表目标变量/输出变量
- ( x , y ) (x,y) (x,y) 代表训练集中的实例
- ( x ( i ) , y ( i ) ) (x^{(i)},y^{(i)}) (x(i),y(i)) 代表第 i i i个观察实例
- h h h 代表学习算法的解决方案或函数(也称为假设)
这就是监督学习算法的工作方式,我们把训练集“喂”给学习算法,输出一个函数,通常用小写 h h h表示;然后再将我们要预测的房屋的大小作为输入变量给 h h h,输出结果(输出变量)即为该房屋的预测房价。
那么我们该如何表达 h h h呢?一种可能的表达方式为: h θ ( x ) = θ 0 + θ 1 x h_{\theta }(x)=\theta_{0}+\theta_{1}x hθ(x)=θ0+θ1x,其中只含有一个特征(输入变量),因此这样的问题叫做单变量线性回归问题。
2.2 代价函数
参考视频: 2 - 2 - Cost Function (8 min).mkv
学习如何定义代价函数,这有助于我们弄清楚如何把最有可能的直线与给定的数据集相拟合。如图:
训练集的数量
m
=
47
m=47
m=47,假设函数也就是用来预测的函数是线性函数形式:
h
θ
(
x
)
=
θ
0
+
θ
1
x
h_{\theta }(x)=\theta_{0}+\theta_{1}x
hθ(x)=θ0+θ1x,其中
θ
0
\theta_{0}
θ0和
θ
1
\theta_{1}
θ1为参数,我们选择的参数决定了得到的直线,训练集中变量在所得直线上的值与训练集中实际值之间的差距(下图中蓝线所指)是建模误差。
我们的目标是选择出建模误差平方和最小的模型参数,这里就是
θ
0
\theta_{0}
θ0、
θ
1
\theta_{1}
θ1。代价函数为
J
(
θ
0
,
θ
1
)
=
1
2
m
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
2
J(\theta_{0},\theta_{1}) = \frac{1}{2m} \sum_{i=1}^{m} {\left({h}_{\theta }({x}^{(i)})-{y}^{(i)} \right)}^2
J(θ0,θ1)=2m1i=1∑m(hθ(x(i))−y(i))2
其中分母是
2
m
2m
2m,原因看这里 代价函数除2m的原因。根据代价函数绘出等高线图,三个坐标分别为
θ
0
\theta_{0}
θ0、
θ
1
\theta_{1}
θ1、
J
(
θ
0
,
θ
1
)
J(\theta_{0},\theta_{1})
J(θ0,θ1):
可以看出三维空间中存在一个使得 J ( θ 0 , θ 1 ) J(\theta_{0},\theta_{1}) J(θ0,θ1)最小的点( θ 0 , θ 1 \theta_{0},\theta_{1} θ0,θ1)。
这里的代价函数被称作平方误差函数。求出误差的平方和对于大多数问题,特别是回归问题,是一个合理的选择。还有其他代价函数也能很好地发挥作用,但是平方误差代价函数是解决回归问题最常用的手段。接下来进一步解释代价函数 J J J的工作原理,并尝试更直观第解释它在计算什么,以及我们使用它的目的。
2.3 代价函数的直观了解I
参考视频:2 - 3 - Cost Function - Intuition I (11 min).mkv
我们通过一些例子来获取一些直观的感受,看看代价函数到底是在干什么。
代价函数的直观理解如下图,
上图中令 θ 0 = 0 \theta_{0}=0 θ0=0, J ( 0 , 0 ) = 14 / 6 J(0,0)=14/6 J(0,0)=14/6, J ( 0 , 1 ) = 0 J(0,1)=0 J(0,1)=0。即如果固定其中一个参数为定值,则代价函数 J J J为二次函数,可用中学数学知识求出最小值。
2.4 代价函数的直观了解II
参考视频:2 - 4 - Cost Function - Intuition II (11 min).mkv
本节课中深入学习代价函数的作用。下图为等高线图,多看几遍就能看懂了,如果不熟悉的话也没关系,对后续课程理解影响不大。
把代价函数绘成等高线图,从图中可以看书三维空间中存在一个使得
J
(
θ
0
,
θ
1
)
J(\theta_{0},\theta_{1})
J(θ0,θ1)最小的点,此点对应的坐标即为所求参数
θ
0
,
θ
1
\theta_{0},\theta_{1}
θ0,θ1。
当然,我们真正需要的是一种有效的算法,能够自动地找出使代价函数 J J J取最小值的参数 θ 0 , θ 1 \theta_{0},\theta_{1} θ0,θ1来。我们不想编程序等高线图画出来,然后人工读出来这些点的值,这不是一个好办法,而是应该编写程序来自动找出可以最小化代价函数的 θ 0 , θ 1 \theta_{0},\theta_{1} θ0,θ1。