一、 回归问题的符号说明
n 代表特征的数量
x
(
i
)
x^{(i)}
x(i)代表第i个训练实例,是特征矩阵中的第i行,是一个向量。
x
j
(
i
)
x_j^{(i)}
xj(i)代表特征矩阵中第i行的第j个特征。
二、假设函数
支持多变量的假设h表示为:
h
θ
(
x
)
=
θ
0
+
θ
1
x
1
+
θ
2
x
2
+
.
.
.
+
θ
n
x
n
h_\theta(x)=\theta_0+\theta_1x_1+\theta_2x_2+...+\theta_nx_n
hθ(x)=θ0+θ1x1+θ2x2+...+θnxn
这个公式中有n+1个参数和n个变量,为了使得公式能够简化一些,引入
x
0
=
1
x_0=1
x0=1,则公式转化为:
h
θ
(
x
)
=
θ
0
x
0
+
θ
1
x
1
+
θ
2
x
2
+
.
.
.
+
θ
n
x
n
h_\theta(x)=\theta_0x_0+\theta_1x_1+\theta_2x_2+...+\theta_nx_n
hθ(x)=θ0x0+θ1x1+θ2x2+...+θnxn
此时模型中的参数是一个n+1维的向量,任何一个训练实例也都是n+1维的向量,特征矩阵X的维度是m*(n+1)。因此公式可以简化为:
h
θ
(
x
)
=
θ
T
X
h_\theta(x)=\theta^TX
hθ(x)=θTX,其中上标T代表矩阵转置。
三、代价函数
J ( θ 0 , θ 1 . . . θ n ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) − y ( i ) ) ) 2 J(\theta_0,\theta_1...\theta_n)=\frac {1}{2m}\sum_{i=1}^m(h_\theta(x^{(i)}-y^{(i)}))^2 J(θ0,θ1...θn)=2m1∑i=1m(hθ(x(i)−y(i)))2
其中 h θ ( x ) = θ T X = θ 0 x 0 + θ 1 x 1 + θ 2 x 2 + . . . + θ n x n h_\theta(x)=\theta^TX=\theta_0x_0+\theta_1x_1+\theta_2x_2+...+\theta_nx_n hθ(x)=θTX=θ0x0+θ1x1+θ2x2+...+θnxn
四、多变量梯度下降
我们的目标和单变量线性回归问题中的一样,是要找出使得代价函数最小的一系列参数。
多变量线性回归的批量梯度下降算法为:
Repeat{
θ
j
:
=
θ
j
−
α
∂
∂
θ
j
J
(
θ
0
,
θ
1
.
.
.
θ
n
)
\theta_j :=\theta_j-\alpha\frac{\partial }{\partial \theta_j}J(\theta_0,\theta_1...\theta_n)
θj:=θj−α∂θj∂J(θ0,θ1...θn)
}
即:
Repeat{
θ
j
:
=
θ
j
−
α
∂
∂
θ
j
1
2
m
∑
i
=
1
m
(
h
θ
(
x
(
i
)
−
y
(
i
)
)
)
2
\theta_j :=\theta_j-\alpha\frac{\partial }{\partial \theta_j}\frac {1}{2m}\sum_{i=1}^m(h_\theta(x^{(i)}-y^{(i)}))^2
θj:=θj−α∂θj∂2m1∑i=1m(hθ(x(i)−y(i)))2
}
求导数后得到:
Repeat{
θ
j
:
=
θ
j
−
α
1
m
∑
i
=
1
m
(
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
⋅
x
j
(
i
)
)
\theta_j :=\theta_j-\alpha\frac {1}{m}\sum_{i=1}^m((h_\theta(x^{(i)})-y^{(i)})\cdot x_j^{(i)})
θj:=θj−αm1∑i=1m((hθ(x(i))−y(i))⋅xj(i)) (for j=0,1,…,n)
}
我们开始随机选择一系列的参数值,计算所有的预测结果后,再给所有的参数一个新的值,如此循环直到收敛。
梯度下降法实践1-特征缩放
当我们面对多维特征问题的时候,我们要保证这些特征都具有相近的尺度,这将帮助梯度下降算法更块地收敛。(尝试将所有特征的尺度都尽量缩放到-1与1之间,令: x n = x n − μ n s n x_n=\frac {x_n-\mu_n}{s_n} xn=snxn−μn,其中 μ n \mu_n μn是平均值, s n s_n sn是标准差)
梯度下降法实践2 -学习率
梯度下降算法的每次迭代受到学习率的影响,如果学习率 α \alpha α过小,则达到收敛所需的迭代次数会非常高;如果学习率 α \alpha α过大,每次迭代可能不会减小代价函数,可能会越过局部最小值导致无法收敛。通常可以考虑尝试学习率: α \alpha α=0.01, 0.03, 0.1, 0.3, 1, 3, 10
五、正规方程
正规方程是通过求解下面的方程来找出使得代价函数最小的参数的:
∂
∂
θ
j
J
(
θ
j
)
=
0
\frac {\partial }{\partial \theta_j}J(\theta_j)=0
∂θj∂J(θj)=0。
假设我们的训练集特征矩阵为X(包含了
x
0
=
1
x_0=1
x0=1)并且我们的训练集结果为向量y,则利用正规方程解出向量
θ
=
(
X
T
X
)
−
1
X
T
y
。
\theta=(X^{T}X)^{-1}X^{T}y。
θ=(XTX)−1XTy。对于那些不可逆的矩阵,正规方程方法是不能用的。