站在山上某处视线扫一圈,所看到的山上某处沿着某个方向的陡峭程度就是方向导数方向导数是数值沿着某条射线的变化率,梯度是最大的方向导数,梯度是某点最陡峭的方向
方向导数
定义:
已知: l l l为从 P 0 P_0 P0出发的一条射线条件: t = ( Δ x ) 2 + ( Δ y ) 2 + ( Δ z ) 2 , c o s α c o s β c o s γ 是 方 向 l 的 方 向 余 弦 t=sqrt{(Delta x)^2+(Delta y)^2+(Delta z)^2}, cosalpha cosbeta cosgamma 是方向l的方向余弦 t=(Δx)2+(Δy)2+(Δz)2 ,cosαcosβcosγ是方向l的方向余弦若极限存在: lim t → 0 + u ( P ) − u ( P 0 ) t = u ( x 0 + t c o s α , y 0 + t c o s β , z 0 + c o s γ ) t {lim_{tto 0^+}frac{u(P)-u(P_0)}{t}=frac{u(x_0+tcosalpha,y_0+tcosbeta,z_0+cosgamma)}{t}} t→0+limtu(P)−u(P0)=tu(x0+tcosα,y0+tcosβ,z0+cosγ)结果:则称此极限为点 P 0 P_0 P0沿方向 l textbf{l} l的方向导数记: ∂ u ∂ l ∣ P 0 = lim t → 0 + u ( P ) − u ( P 0 ) t frac{partial{u}}{partial{l}}|_{P_0}={lim_{tto 0^+}frac{u(P)-u(P_0)}{t}} ∂l∂u∣P0=t→0+limtu(P)−u(P0)注意: l textbf{l} l是向量
定理:
条件: u ( x , y , z ) u(x,y,z) u(x,y,z)在点 P 0 ( x 0 , y 0 , z 0 ) P_0(x_0,y_0,z_0) P0(x0,y0,z0)处可微,则 u ( x , y , z ) u(x,y,z) u(x,y,z)在点 P 0 P_0 P0处沿任一方向 l textbf{l} l的方向导数都存在结果: ∂ u ∂ l ∣ P 0 = u x ( P 0 ) ′ c o s α + u y ( P 0 ) ′ c o s β + u z ( P 0 ) ′ c o s γ frac{partial{u}}{partial{l}}|_{P_0}=u_x(P_0)^{'}cosalpha+u_y(P_0)^{'}cosbeta+u_z(P_0)^{'}cosgamma ∂l∂u∣P0=ux(P0)′cosα+uy(P0)′cosβ+uz(P0)′cosγ注意: l textbf{l} l是向量 梯度
定义:
问题:在某一点沿着那个方向的方向导数才是最大的条件: u ( x , y , z ) u(x,y,z) u(x,y,z)在点 P 0 ( x 0 . y 0 , z 0 ) P_0(x_0.y_0,z_0) P0(x0.y0,z0)处具有一阶偏导数定义: u u u在 P 0 P_0 P0处的梯度 grad u ∣ P 0 = ( u x ( P 0 ) ′ , u y ( P 0 ) ′ , u z ( P 0 ) ′ ) textbf{grad} u|_{P_0}=(u_x(P_0)^{'},u_y(P_0)^{'},u_z(P_0)^{'}) grad u∣P0=(ux(P0)′,uy(P0)′,uz(P0)′)注意:梯度是一个向量 梯度与方向导数的关系
方向导数:
∂
u
∂
l
∣
P
0
=
u
x
(
P
0
)
′
c
o
s
α
+
u
y
(
P
0
)
′
c
o
s
β
+
u
z
(
P
0
)
′
c
o
s
γ
frac{partial{u}}{partial{l}}|_{P_0}=u_x(P_0)^{'}cosalpha+u_y(P_0)^{'}cosbeta+u_z(P_0)^{'}cosgamma
∂l∂u∣P0=ux(P0)′cosα+uy(P0)′cosβ+uz(P0)′cosγ梯度:
grad
u
∣
P
0
=
(
u
x
(
P
0
)
′
,
u
y
(
P
0
)
′
,
u
z
(
P
0
)
′
)
textbf{grad} u|_{P_0}=(u_x(P_0)^{'},u_y(P_0)^{'},u_z(P_0)^{'})
grad u∣P0=(ux(P0)′,uy(P0)′,uz(P0)′)关系:
∂
u
∂
l
∣
P
0
=
(
u
x
(
P
0
)
′
,
u
y
(
P
0
)
′
,
u
z
(
P
0
)
′
)
⋅
(
c
o
s
α
,
c
o
s
β
,
c
o
s
γ
)
=
grad
u
∣
P
0
⋅
l
0
=
∣
grad
u
∣
P
0
∣
∣
l
0
∣
c
o
s
θ
=
∣
grad
u
∣
P
0
∣
c
o
s
θ
begin{aligned} frac{partial{u}}{partial{l}}|_{P_0} &=(u_x(P_0)^{'},u_y(P_0)^{'},u_z(P_0)^{'})cdot (cosalpha,cosbeta,cosgamma) \ &=textbf{grad} u|_{P_0}cdot textbf{l}^0 \ &=big|textbf{grad} u|_{P_0}big|big|textbf{l}^0big|costheta \ &=big|textbf{grad} u|_{P_0}big|costheta end{aligned}
∂l∂u∣P0=(ux(P0)′,uy(P0)′,uz(P0)′)⋅(cosα,cosβ,cosγ)=grad u∣P0⋅l0=∣∣grad u∣P0∣∣∣∣l0∣∣cosθ=∣∣grad u∣P0∣∣cosθ条件:
θ
theta
θ为
grad
u
∣
P
0
textbf{grad} u|_{P_0}
grad u∣P0与
l
0
textbf{l}^0
l0的夹角结果:当
c
o
s
θ
=
1
costheta=1
cosθ=1时,
∂
u
∂
l
∣
P
0
frac{partial{u}}{partial{l}}big|_{P_0}
∂l∂u∣∣P0有最大值结论:函数在某点的梯度是这样一个向量,梯度的方向与最大方向导数的方向一致,梯度的模为方向导数的最大值补充:
⋅
cdot
⋅点乘为对应元素相乘注意:
l
0
textbf{l}^0
l0是单位向量
批量梯度下降(batch)
注意
每次迭代使用整个样本更新权重bias和weight
特点
适合小数据量大数据量:收敛速度慢,稳定性高稳定性高:梯度值越来越小,梯度值上下波动频率低
伪代码
假设: m=1000 (m是样本总量)
iteration(num_iter)
{
w
j
=
w
j
−
α
1
m
∑
i
=
1
m
∂
c
o
s
t
(
w
,
b
)
∂
w
j
w_j=w_j-alphafrac{1}{m}sumlimits_{i=1}^{m}frac{partial{cost(w,b)}}{partial{w_j}}
wj=wj−αm1i=1∑m∂wj∂cost(w,b)
b
j
=
b
j
−
α
1
m
∑
i
=
1
m
∂
c
o
s
t
(
w
,
b
)
∂
b
j
b_j=b_j-alphafrac{1}{m}sumlimits_{i=1}^{m}frac{partial{cost(w,b)}}{partial{b_j}}
bj=bj−αm1i=1∑m∂bj∂cost(w,b)
(for every j=0,1,…,n)
}
注意
每次迭代使用1个样本更新权重bias和weight
特点
适用于小数据量和大数据量大数据量:收敛速度快,稳定性低稳定性低:梯度值不是越来越小,梯度值上下波动频率高
伪代码
假设: m=1000 (m是样本总量)
iteration(num_iter)
{
for (i=1,2,…,m)
{
w
j
=
w
j
−
α
1
m
∂
c
o
s
t
(
w
,
b
)
∂
w
j
w_j=w_j-alphafrac{1}{m}frac{partial{cost(w,b)}}{partial{w_j}}
wj=wj−αm1∂wj∂cost(w,b)
b
j
=
b
j
−
α
1
m
∂
c
o
s
t
(
w
,
b
)
∂
b
j
b_j=b_j-alphafrac{1}{m}frac{partial{cost(w,b)}}{partial{b_j}}
bj=bj−αm1∂bj∂cost(w,b)
(for every j=0,1,…,n)
}
}
注意
每次迭代使用1个mini-batch中的样本更新权重bias和weight
特点
适用于小数据量和大数据量大数据量:收敛速度较快,稳定性较高稳定性较高:梯度变化稳定性介于批量梯度下降和随机梯度下降之间
伪代码
假设: mini_batch_size=10, m=1000 (m是样本总量)
iteration(num_iter)
{
for (i=0,10,20,…,990)
{
w
j
=
w
j
−
α
1
m
i
n
i
_
b
a
t
c
h
_
s
i
z
e
∑
k
=
i
i
+
9
∂
c
o
s
t
(
w
,
b
)
∂
w
j
w_j=w_j-alphafrac{1}{mini_batch_size}sumlimits_{k=i}^{i+9}frac{partial{cost(w,b)}}{partial{w_j}}
wj=wj−αmini_batch_size1k=i∑i+9∂wj∂cost(w,b)
b
j
=
b
j
−
α
1
m
i
n
i
_
b
a
t
c
h
_
s
i
z
e
∑
k
=
i
i
+
9
∂
c
o
s
t
(
w
,
b
)
∂
b
j
b_j=b_j-alphafrac{1}{mini_batch_size}sumlimits_{k=i}^{i+9}frac{partial{cost(w,b)}}{partial{b_j}}
bj=bj−αmini_batch_size1k=i∑i+9∂bj∂cost(w,b)
(for every j=0,1,…,n)
}
}
梯度下降算法:
mini_batch_size=1时,成为随机梯度下降mini_batch_size>1时,成为mini-batch梯度下降mini_batch_size=样本数量时,成为batch梯度下降



