线性回归算法中特定的符号表示:
m
m
:表示训练样本的数目;
:表示输入的特征;
y
y
:表示输出变量或目标变量;
:表示一个训练样本;
(x(i),y(i))
(
x
(
i
)
,
y
(
i
)
)
:表示第
i
i
个训练样本;
:表示假设函数,表示从
x
x
到的函数映射;
单变量的线性回归模型:
hθ(x)=θ0+θ1x
h
θ
(
x
)
=
θ
0
+
θ
1
x
;
其中,
θ0,θ1
θ
0
,
θ
1
为模型参数;
线性回归算法的目标为选择 θ0,θ1 θ 0 , θ 1 ,使 hθ(x) h θ ( x ) 最接近样本对应的 y y 值,即寻找,使
12m∑i=1m(hθ(x(i))−y(i))2 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 表示平均误差,其中, 12 1 2 是为了方便后续梯度下降算法的计算。
引入代价函数的概念:
平方误差代价函数是解决回归问题最常用的手段。
算法简化:
令
θ0=0
θ
0
=
0
,则
hθ(x)=θ1x
h
θ
(
x
)
=
θ
1
x
,模型参数只剩下
θ1
θ
1
,代价函数变为
带入训练集样本数据,发现 J(θ1) J ( θ 1 ) 是一个下凸曲线,找到令 J(θ1) J ( θ 1 ) 取值最小的 θ1 θ 1 。
J(θ1,θ0)
J
(
θ
1
,
θ
0
)
同理,可用轮廓图表示:
梯度下降算法:可以使代价函数最小化。
算法定义:
repeat until convergence{
:=为赋值运算符;
α α 为一个数字,称为学习速率,控制梯度下降步幅。
θ0,θ1
θ
0
,
θ
1
正确的更新方法:
temp0:=θ0−α∂∂θ0J(θ0,θ1)
t
e
m
p
0
:=
θ
0
−
α
∂
∂
θ
0
J
(
θ
0
,
θ
1
)
temp1:=θ1−α∂∂θ1J(θ0,θ1)
t
e
m
p
1
:=
θ
1
−
α
∂
∂
θ
1
J
(
θ
0
,
θ
1
)
θ0:=temp0
θ
0
:=
t
e
m
p
0
θ1:=temp1
θ
1
:=
t
e
m
p
1
θ0,θ1
θ
0
,
θ
1
要同时更新。
通常将 θ0,θ1 θ 0 , θ 1 均初始化为0。
注: ∂∂x ∂ ∂ x 为偏导数符号, ddx d d x 为导数符号
梯度下降算法中,若
α
α
的值取得太小,梯度下降过于缓慢;若
α
α
的值取得太大,可能导致无法收敛,甚至发散。
在梯度下降法中,当我们接近局部最低点时,梯度下降法会自动采取更小幅度,因为当接近局部最低点时,
∂∂θjJ(θ0,θ1)
∂
∂
θ
j
J
(
θ
0
,
θ
1
)
导数值自动变得越来越小。
线性回归算法的梯度下降:
∂∂θjJ(θ0,θ1)=∂∂θj12m∑i=1m(hθ(x(i))−y(i))2=∂∂θj12m∑i=1m(θ0+θ1x(i)−y(i))2
∂
∂
θ
j
J
(
θ
0
,
θ
1
)
=
∂
∂
θ
j
1
2
m
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
2
=
∂
∂
θ
j
1
2
m
∑
i
=
1
m
(
θ
0
+
θ
1
x
(
i
)
−
y
(
i
)
)
2
j=0时:∂∂θ0J(θ0,θ1)=1m∑i=1m(hθ(x(i))−y(i))=1m∑i=1m(θ0+θ1x(i)−y(i))
j
=
0
时
:
∂
∂
θ
0
J
(
θ
0
,
θ
1
)
=
1
m
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
=
1
m
∑
i
=
1
m
(
θ
0
+
θ
1
x
(
i
)
−
y
(
i
)
)
j=1时:∂∂θ1J(θ0,θ1)=1m∑i=1m(hθ(x(i))−y(i))x(i)=1m∑i=1m(θ0+θ1x(i)−y(i))x(i)
j
=
1
时
:
∂
∂
θ
1
J
(
θ
0
,
θ
1
)
=
1
m
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
x
(
i
)
=
1
m
∑
i
=
1
m
(
θ
0
+
θ
1
x
(
i
)
−
y
(
i
)
)
x
(
i
)
即:
repeat until convergence{
批量梯度下降法(Batch Gradient Descent):梯度下降法最常用的形式,具体做法是在更新参数时使用所有的样本来进行更新。