1. 泰勒级数的一阶展开
泰勒级数(Taylor series)用级数来表示一个函数,这些相加的项由函数在某一点的导数求得。泰勒级数是以于1715年发表了泰勒公式的英国数学家布鲁克·泰勒(Sir Brook Taylor)的名字来命名的,在近似计算中有重要作用。
【定义】 如果函数
f
(
x
)
f(x)
f(x)在点
x
=
x
0
x=x_0
x=x0具有任意阶导数,则可以得到
f
(
x
)
f(x)
f(x)在
x
0
x_0
x0点的泰勒级数为
f
(
x
)
=
∑
n
=
0
∞
f
(
n
)
(
x
0
)
n
!
(
x
−
x
0
)
n
=
f
(
x
0
)
+
f
′
(
x
0
)
(
x
−
x
0
)
+
f
′
′
(
x
0
)
2
(
x
−
x
0
)
2
+
⋯
+
f
(
n
)
(
x
0
)
n
!
(
x
−
x
0
)
n
+
⋯
\begin{aligned} f(x)&=\sum_{n=0}^{\infty}\frac{f^{(n)}(x_0)}{n!}(x-x_0)^n\\ &=f(x_0)+f'(x_0)(x-x_0)+\frac{f''(x_0)}{2}(x-x_0)^2+\cdots+\frac{f^{(n)}(x_0)}{n!}(x-x_0)^n+\cdots \end{aligned}
f(x)=n=0∑∞n!f(n)(x0)(x−x0)n=f(x0)+f′(x0)(x−x0)+2f′′(x0)(x−x0)2+⋯+n!f(n)(x0)(x−x0)n+⋯显然,如果
x
x
x非常接近
x
0
x_0
x0,即
x
−
x
0
x-x_0
x−x0很小时,我们可以用泰勒级数的一阶展开来近似表示
f
(
x
)
f(x)
f(x),即
f
(
x
)
≈
f
(
x
0
)
+
f
′
(
x
0
)
(
x
−
x
0
)
.
f(x)\approx f(x_0)+f'(x_0)(x-x_0).
f(x)≈f(x0)+f′(x0)(x−x0).
2. 梯度下降法
(1)问题描述
对于某函数:
J
(
θ
0
,
θ
1
)
J(\theta_0,\theta_1)
J(θ0,θ1)
希望:
min
θ
0
,
θ
1
J
(
θ
0
,
θ
1
)
\min \limits_{\theta_0,\theta_1}J(\theta_0,\theta_1)
θ0,θ1minJ(θ0,θ1)
步骤:
- 从某个 θ 0 , θ 1 \theta_0,\theta_1 θ0,θ1的初值开始(例如 θ 0 = 0 \theta_0=0 θ0=0, θ 1 = 0 \theta_1=0 θ1=0);
- 持续改变 θ 0 , θ 1 \theta_0,\theta_1 θ0,θ1来减小 J ( θ 0 , θ 1 ) J(\theta_0,\theta_1) J(θ0,θ1),直到得到我们希望的最小值。
(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)\quad ({\rm for}\ j=0\ {\rm and}\ j=1)
θj:=θj−α∂θj∂J(θ0,θ1)(for j=0 and j=1)
}
\}
}
正确的方法:同时更新
temp0
:
=
θ
0
−
α
∂
∂
θ
j
J
(
θ
0
,
θ
1
)
:=\theta_0-\alpha\frac{\partial}{\partial \theta_j}J(\theta_0,\theta_1)
:=θ0−α∂θj∂J(θ0,θ1)
temp1
:
=
θ
1
−
α
∂
∂
θ
j
J
(
θ
0
,
θ
1
)
:=\theta_1-\alpha\frac{\partial}{\partial \theta_j}J(\theta_0,\theta_1)
:=θ1−α∂θj∂J(θ0,θ1)
θ
0
:
=
\theta_0:=
θ0:=temp0
θ
1
:
=
\theta_1:=
θ1:=temp1
不正确的方法:分别更新
temp0
:
=
θ
0
−
α
∂
∂
θ
j
J
(
θ
0
,
θ
1
)
:=\theta_0-\alpha\frac{\partial}{\partial \theta_j}J(\theta_0,\theta_1)
:=θ0−α∂θj∂J(θ0,θ1)
θ
0
:
=
\theta_0:=
θ0:=temp0
temp1
:
=
θ
1
−
α
∂
∂
θ
j
J
(
θ
0
,
θ
1
)
:=\theta_1-\alpha\frac{\partial}{\partial \theta_j}J(\theta_0,\theta_1)
:=θ1−α∂θj∂J(θ0,θ1)
θ
1
:
=
\theta_1:=
θ1:=temp1
- α \alpha α:学习速率,更新参数的幅度大小
3. 梯度下降线性回归
对于一元线性回归问题,有
h θ ( x ) = θ 0 + θ 1 x J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m [ h θ ( x ( i ) ) − y ( i ) ] 2 \begin{aligned} h_{\theta}(x)&=\theta_0+\theta_1x\\ J(\theta_0,\theta_1)&=\frac{1}{2m}\sum_{i=1}^m[h_{\theta}(x^{(i)})-y^{(i)}]^2 \end{aligned} hθ(x)J(θ0,θ1)=θ0+θ1x=2m1i=1∑m[hθ(x(i))−y(i)]2
对代价函数求偏导,可以得到
∂
∂
θ
0
J
(
θ
0
,
θ
1
)
=
1
m
∑
i
=
1
m
[
h
θ
(
x
(
i
)
)
−
y
(
i
)
]
∂
∂
θ
1
J
(
θ
0
,
θ
1
)
=
1
m
∑
i
=
1
m
[
h
θ
(
x
(
i
)
)
−
y
(
i
)
]
x
(
i
)
\begin{aligned} \frac{\partial}{\partial \theta_0}J(\theta_0,\theta_1)&=\frac{1}{m}\sum_{i=1}^m[h_{\theta}(x^{(i)})-y^{(i)}]\\ \frac{\partial}{\partial \theta_1}J(\theta_0,\theta_1)&=\frac{1}{m}\sum_{i=1}^m[h_{\theta}(x^{(i)})-y^{(i)}]x^{(i)}\end{aligned}
∂θ0∂J(θ0,θ1)∂θ1∂J(θ0,θ1)=m1i=1∑m[hθ(x(i))−y(i)]=m1i=1∑m[hθ(x(i))−y(i)]x(i)