单变量回归问题
对于某房价问题,x为房屋大小,h即为预估房价,模型公式为:
h
θ
(
x
)
=
θ
0
+
θ
1
x
h_{\theta}(x)=\theta_{0}+\theta_{1}x
hθ(x)=θ0+θ1x
要利用训练集拟合该公式(主要是计算
θ
0
、
θ
1
\theta_{0}、\theta_{1}
θ0、θ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)=2m1i=1∑m(hθ(x(i))−y(i))2
当代价函数得到最小值时,此时拟合的公式最好。一般利用梯度下降法来得到代价函数的局部(全局)最优解。批量梯度下降的公式为
θ
j
:
=
θ
j
−
α
∂
∂
θ
j
J
(
θ
0
,
θ
1
)
(
f
o
r
j
=
0
a
n
d
j
=
1
)
\theta_{j}:=\theta_{j}-\alpha\frac{\partial }{\partial \theta_{j}}J(\theta_{0},\theta_{1}) (for \quad j=0\quad and \quad j=1)
θj:=θj−α∂θj∂J(θ0,θ1)(forj=0andj=1)
∂ ∂ θ j J ( θ 0 , θ 1 ) = ∂ ∂ θ j ( 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 ) \frac{\partial }{\partial \theta_{j}}J(\theta_{0},\theta_{1})=\frac{\partial }{\partial \theta_{j}}(\frac{1}{2m}\sum_{i=1}^{m}{(h_{\theta}(x^{(i)})-y^{(i)})^2}) ∂θj∂J(θ0,θ1)=∂θj∂(2m1i=1∑m(hθ(x(i))−y(i))2)
j = 0 时, ∂ ∂ θ 0 J ( θ 0 , θ 1 ) = 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) j=0时,\frac{\partial }{\partial \theta_{0}}J(\theta_{0},\theta_{1})=\frac{1}{m}\sum_{i=1}^{m}{(h_{\theta}(x^{(i)})-y^{(i)})} j=0时,∂θ0∂J(θ0,θ1)=m1i=1∑m(hθ(x(i))−y(i))
j = 1 时, ∂ ∂ θ 1 J ( θ 0 , θ 1 ) = 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) ⋅ x ( i ) j=1时,\frac{\partial }{\partial \theta_{1}}J(\theta_{0},\theta_{1})=\frac{1}{m}\sum_{i=1}^{m}{(h_{\theta}(x^{(i)})-y^{(i)})\cdot x^{(i)}} j=1时,∂θ1∂J(θ0,θ1)=m1i=1∑m(hθ(x(i))−y(i))⋅x(i)
α \alpha α为学习率,决定沿着代价函数下降程度最大的方向向下的步子有多大,在批量梯度下降中,我们每一次都同时让所有的参数减去学习速率乘以代价函数的导数。
如果
α
\alpha
α太小了,即我的学习速率太小,需要很多步才能到达最低点,可能会很慢;
如果
α
\alpha
α太大,那么梯度下降法可能会越过最低点,甚至可能无法收敛。
在梯度下降法中,当我们接近局部最低点时,梯度下降法会自动采取更小的幅度,这是因为当我们接近局部最低点时,很显然在局部最低时导数等于零,所以当我们接近局部最低时,导数值会自动变得越来越小,所以梯度下降将自动采取较小的幅度,这就是梯度下降的做法。所以实际上没有必要再另外减小 α \alpha α。