自2017年AlphaGo问世以来,深度学习如火如荼,尤其是在计算机视觉,自然语言处理领域都取得了非凡的进展。然而,深度学习依赖大量的样本,否则容易出现过拟合现象。既然是大量样本,那么对算力有相当的要求。要么硬件更强,要么算法收敛更快。下面介绍一种较快的优化算法–Mini-Batch梯度下降。
min
w
∈
R
d
E
ξ
[
F
(
w
,
ξ
)
]
+
g
(
w
)
\min_{w\in\mathbb{R}^{d}} E_{\xi}[F(w,\xi)]+g(w)
minw∈RdEξ[F(w,ξ)]+g(w)
算法:Mini-Batch梯度下降
输入: w 1 ∈ R d w^{1}\in \mathbb{R}^{d} w1∈Rd,
R
∼
u
n
i
f
o
r
m
{
1
,
2
,
⋯
 
,
N
}
R\sim uniform \{1,2,\cdots,N\}
R∼uniform{1,2,⋯,N}
for
k
=
1
,
2
,
⋯
 
,
R
−
1
k=1,2,\cdots,R-1
k=1,2,⋯,R−1
ζ
λ
(
w
k
)
∈
p
r
o
x
λ
g
(
w
k
)
\zeta^{\lambda}(w^{k})\in prox_{\lambda g}(w^{k})
ζλ(wk)∈proxλg(wk)
Sample
ξ
k
∼
P
M
\xi^{k}\sim P^{M}
ξk∼PM
∇
A
λ
M
k
(
w
k
,
ξ
k
)
=
1
M
∑
j
=
1
M
∇
F
(
w
k
,
ξ
k
)
+
1
λ
(
w
k
−
ζ
λ
(
w
k
)
)
\nabla A^{k}_{\lambda M}(w^{k},\xi^{k})=\frac{1}{M}\sum_{j=1}^{M}\nabla F(w^{k},\xi^{k})+\frac{1}{\lambda}(w^{k}-\zeta^{\lambda}(w^{k}))
∇AλMk(wk,ξk)=M1∑j=1M∇F(wk,ξk)+λ1(wk−ζλ(wk))
w
k
+
1
=
w
k
−
γ
∇
A
λ
M
k
(
w
k
,
ξ
k
)
w^{k+1}=w^{k}-\gamma \nabla A^{k}_{\lambda M}(w^{k},\xi^{k})
wk+1=wk−γ∇AλMk(wk,ξk)
end for
输出:
w
ˉ
R
∈
p
r
o
x
λ
g
(
w
R
)
\bar{w}^{R}\in prox_{\lambda g}(w^{R})
wˉR∈proxλg(wR)