1.模型表示
下文所举的例子为根据房子的大小去预估房价。
m m m 代表训练集中实例的数量
x x x 代表特征/输入变量
y y y 代表目标变量/输出变量
( x , y ) \left( x,y \right) (x,y) 代表训练集中的实例
( x ( i ) , y ( i ) ) ({{x}^{(i)}},{{y}^{(i)}}) (x(i),y(i)) 代表第 i i i 个观察实例
h
h
h 代表学习算法的解决方案或函数也称为假设(hypothesis)
一种可能的表达方式为:
h
θ
(
x
)
=
θ
0
+
θ
1
x
h_\theta \left( x \right)=\theta_{0} + \theta_{1}x
hθ(x)=θ0+θ1x(找到一条与所给数据拟合的直线),因为只含有一个特征/输入变量,因此这样的问题叫作单变量线性回归问题。
2.代价函数
J
(
θ
0
,
θ
1
)
=
1
2
m
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
2
J \left( \theta_0, \theta_1 \right) = \frac{1} {2m}\sum\limits_{i=1}^m \left( h_{\theta}(x^{(i)})-y^{(i)} \right)^{2}
J(θ0,θ1)=2m1i=1∑m(hθ(x(i))−y(i))2
上式为我们所定义的代价函数,其中
h
θ
(
x
(
i
)
)
h_{\theta}(x^{(i)})
hθ(x(i))表示模型所预估的值;
y
(
i
)
y^{(i)}
y(i)表示正确值。
此代价函数也被称为平方误差函数,对于大多数问题,尤其是回归问题,都会使用平方误差函数作为代价函数。
2.1代价函数(一)
为了更好的理解代价函数,本章节将假设函数进行简化,令假设函数为
h
θ
(
x
)
=
θ
1
x
h_\theta \left( x \right)=\theta_{1}x
hθ(x)=θ1x,由此可得下图。给出数据(1,1)(2,2)(3,3),可得当
θ
1
\theta_{1}
θ1=1时,所绘制的假设函数的曲线能完美的拟合所给出的数据。
2.2.代价函数(二)
在章节2.1中,我们简化了假设函数,本章节不做简化即 h θ ( x ) = θ 0 + θ 1 x h_\theta \left( x \right)=\theta_{0} + \theta_{1}x hθ(x)=θ0+θ1x,此时代价函数为 J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J \left( \theta_0, \theta_1 \right) = \frac{1} {2m}\sum\limits_{i=1}^m \left( h_{\theta}(x^{(i)})-y^{(i)} \right)^{2} J(θ0,θ1)=2m1i=1∑m(hθ(x(i))−y(i))2
下图为代价函数可视化
3.梯度下降
梯度下降算法:用来求解函数的最小值。
梯度下降背后的思想是:开始时我们随机选择一个参数的组合
(
θ
0
,
θ
1
,
.
.
.
.
.
.
,
θ
n
)
\left( {\theta_{0}},{\theta_{1}},......,{\theta_{n}} \right)
(θ0,θ1,......,θn),计算代价函数,然后我们寻找下一个能让代价函数值下降最多的参数组合。我们持续这么做直到找到一个局部最小值(local minimum),因为我们并没有尝试完所有的参数组合,所以不能确定我们得到的局部最小值是否便是全局最小值(global minimum),选择不同的初始参数组合,可能会找到不同的局部最小值。
在本章节,我们用梯度下降算法来求解代价函数J的最小值,J有两个参数
θ
0
{\theta_{0}}
θ0和
θ
1
{\theta_{1}}
θ1。
梯度下降的数学公式为:
其中α表示学习率,它用来控制梯度下降时我们迈出多大的步子,若α很大。则梯度下降就很迅速。
在梯度更新中,有一个需要注意的问题是要保证
θ
0
{\theta_{0}}
θ0和
θ
1
{\theta_{1}}
θ1同步更新。