第二章 单变量线性回归
线性回归:就是能够用一个直线较为精确地描述数据之间的关系。这样当出现新的数据的时候,就能够预测出一个简单的值。
1. 模型表示
通过训练数据,将数据输入到算法里面,我们能得到一个关于这个模型的一个假设
h
h
h,然后利用这个假设
h
h
h我们将其他输入变量输入到该假设中就会得到我们想要的预测结果
y
y
y。
通过线性回归构造出来的函数一般称之为线性回归模型。线性回归模型的函数一般写作为:
h
θ
(
x
)
=
θ
0
+
θ
1
x
h_{\theta }(x)=\theta _{0}+\theta _{1}x
hθ(x)=θ0+θ1x
因为输入只有一个特征,所以是单变量线性回归问题。
2. 代价函数(Cost Function)
假设函数:
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}(h_{\theta }(x^{(i)})-y^{(i)})^{2}
J(θ0,θ1)=2m1∑i=1m(hθ(x(i))−y(i))2
优化目标:
m
i
n
i
m
i
z
e
θ
0
,
θ
1
J
(
θ
0
,
θ
1
)
minimize_{\theta_{0} ,\theta_{1}}J(\theta _{0},\theta _{1})
minimizeθ0,θ1J(θ0,θ1)
两个参数的代价函数模拟图:
是一个三维图。
我们使用等高线图来表示代价函数。
右图,横坐标为
θ
0
\theta _{0}
θ0,纵坐标为
θ
1
\theta _{1}
θ1,每一个椭圆形为
J
(
θ
0
,
θ
1
)
J(\theta _{0},\theta _{1})
J(θ0,θ1)值相等的一系列点。
3. 梯度下降
梯度下降:可以将代价函数
J
J
J最小化。梯度下降法不止应用于线性回归,还应用于机器学习的众多领域。
步骤:
- 设定一个初始值 θ 0 \theta _{0} θ0, θ 1 \theta _{1} θ1;
- 不停的一点点改变(向着梯度下降最快的方向改变)
θ
0
\theta _{0}
θ0和
θ
1
\theta _{1}
θ1,来使
J
(
θ
0
,
θ
1
)
J(\theta _{0},\theta _{1})
J(θ0,θ1)变小。
选择不同的初始参数,可能会得到不同的局部最小值。
梯度
在微积分里面,对多元函数的参数求∂偏导数,把求得的各个参数的偏导数以向量的形式写出来,就是梯度。
梯度的几何意义:是函数变化增加最快的地方。具体来说,对于函数f(x,y),在点(x0,y0),沿着梯度向量的方向就是(∂f/∂x0, ∂f/∂y0)T的方向是f(x,y)增加最快的地方。
沿着梯度向量的方向,更加容易找到函数的最大值。反过来说,沿着梯度向量相反的方向,也就是 -(∂f/∂x0, ∂f/∂y0)T的方向,梯度减少最快,也就是更加容易找到函数的最小值。
梯度下降算法
repeat until convergence{
θ
j
:
=
θ
j
−
α
∂
∂
θ
j
J
(
θ
0
,
θ
1
)
\theta _{j}:=\theta _{j}-\alpha \frac{\partial }{\partial \theta _{j}}J(\theta _{0},\theta _{1})
θj:=θj−α∂θj∂J(θ0,θ1) for
j
=
0
j=0
j=0 and
j
=
1
j=1
j=1
}
// := 赋值 不断更新参数值
//
α
\alpha
α: 学习率
//
θ
0
\theta _{0}
θ0,
θ
1
\theta _{1}
θ1是同时更新的