一、前言
根据上一篇文章《机器学习 单变量线性回归 (1)背景介绍》中的推理,单元线性回归问题变成了求 w 0 w_0 w0、 w 1 w_1 w1两个变量的值,使得代价函数 J ( w 0 , w 1 ) J(w_0,w_1) J(w0,w1)最小。
梯度下降是一个用来求函数最小值的算法,我们将使用梯度下降算法来求出代价函数
J
(
w
0
,
w
1
)
J(w_0,w_1)
J(w0,w1)的最小值。
二、算法思想
- 存在函数 J ( w 0 , w 1 , … , w n ) J(w_0,w_1,\dots,w_n) J(w0,w1,…,wn)
- 确定 w 0 , w 1 , … , w n w_0,w_1,\dots,w_n w0,w1,…,wn的值,使得函数 J J J最小
流程:
- 初始化
w
0
,
w
1
,
…
,
w
n
w_0,w_1,\dots,w_n
w0,w1,…,wn,取
任意值即可,如 w 0 = 0 , w 1 = 0 , … , w n = 0 w_0=0,w_1=0,\dots,w_n=0 w0=0,w1=0,…,wn=0 - 不断改变
w
0
,
w
1
,
…
,
w
n
w_0,w_1,\dots,w_n
w0,w1,…,wn的值,降低
J
(
w
0
,
w
1
,
…
,
w
n
)
J(w_0,w_1,\dots,w_n)
J(w0,w1,…,wn),直到我们找到
J
J
J的
全局最小值或局部最小值
为了更加容易理解,我们取n=1,即
J
(
w
0
,
w
1
)
J(w_0,w_1)
J(w0,w1)。
J
(
w
0
,
w
1
)
J(w_0,w_1)
J(w0,w1)函数有两个变量,故此函数图是三维的。假设如下图所示,想象成你站在山上的某个位置(
w
0
,
w
1
w_0,w_1
w0,w1初始值决定的位置),想要尽快走下山(尽快找到
J
J
J的最小值)。

那么你首先会360°观察四周,哪个方向的坡度最陡,然后往前走一段,停下再360°观察四周往最陡的方向走去。。。直到来到一个最低点,四周的坡度都是朝上的了。

如果初始位置是另一个点,还有可能来到局部最低点,如下图所示:

三、算法实现
对
J
(
w
0
,
w
1
)
J(w_0,w_1)
J(w0,w1)中的
w
0
,
w
1
w_0,w_1
w0,w1分别求偏导,求导相关知识可参考《导数与偏导》。
重复以下计算:
w
0
=
w
0
−
η
∗
∂
∂
w
0
J
(
w
0
,
w
1
)
=
w
0
−
η
∗
∂
∂
w
0
1
2
m
∑
i
=
1
m
[
w
0
+
w
1
x
(
i
)
−
y
(
i
)
]
2
=
w
0
−
η
∗
1
m
∑
i
=
1
m
(
w
0
+
w
1
x
(
i
)
−
y
(
i
)
)
w_0 = w_0-η*\frac{∂}{∂w_0}J(w_0,w_1)=w_0-η*\frac{∂}{∂w_0}\frac1{2m}\sum_{i=1}^m[w_0 + w_1x^{(i)}-y^{(i)}]^2=w_0-η*\frac1{m}\sum_{i=1}^m(w_0 + w_1x^{(i)}-y^{(i)})
w0=w0−η∗∂w0∂J(w0,w1)=w0−η∗∂w0∂2m1∑i=1m[w0+w1x(i)−y(i)]2=w0−η∗m1∑i=1m(w0+w1x(i)−y(i))
w 1 = w 1 − η ∗ ∂ ∂ w 1 J ( w 0 , w 1 ) = w 1 − η ∗ ∂ ∂ w 1 1 2 m ∑ i = 1 m [ w 0 + w 1 x ( i ) − y ( i ) ] 2 = w 1 − η ∗ 1 m ∑ i = 1 m ( w 0 + w 1 x ( i ) − y ( i ) ) x ( i ) w_1 = w_1-η*\frac{∂}{∂w_1}J(w_0,w_1)=w_1-η*\frac{∂}{∂w_1}\frac1{2m}\sum_{i=1}^m[w_0 + w_1x^{(i)}-y^{(i)}]^2=w_1-η*\frac1{m}\sum_{i=1}^m(w_0 + w_1x^{(i)}-y^{(i)})x^{(i)} w1=w1−η∗∂w1∂J(w0,w1)=w1−η∗∂w1∂2m1∑i=1m[w0+w1x(i)−y(i)]2=w1−η∗m1∑i=1m(w0+w1x(i)−y(i))x(i)
η
η
η称之为学习率,控制梯度下降时每一段走的距离。
一直迭代计算,直到
w
0
,
w
1
w_0,w_1
w0,w1变化很小为止,代表已经达到最小值或者局部最小值了,此时
w
0
,
w
1
w_0,w_1
w0,w1确定下来。
上文中的 h ( 𝑥 ) = w 0 + w 1 x ℎ(𝑥) = w_0 + w_1x h(x)=w0+w1x也可确定,输入房子面积,即可输出预测房价。

本文详细介绍了如何使用梯度下降算法求解单变量线性回归问题中的参数,通过直观的山地比喻阐述了算法流程,并提供了具体计算步骤。学习率的选择对结果至关重要,最终目标是确定权重参数以最小化代价函数。
1913

被折叠的 条评论
为什么被折叠?



