卷积和反卷积的介绍
1. 对于卷积,我们一般有如下的参数:
- input size W i n ∗ H i n W_{in}*H_{in} Win∗Hin
- kernel size k e r n e l ∗ k e r n e l kernel*kernel kernel∗kernel
- stride s s t r i d e , s t r i d e stride,stride stride,stride
- padding size p a d , p a d pad,pad pad,pad
- in channels
对一个卷积操作可以表示为如下的图,实际过程中一般不只是一个通道,
可以看得出padding后实际的长和宽为:
W
m
i
d
d
l
e
=
W
i
n
+
2
∗
p
a
d
H
m
i
d
d
l
e
=
H
i
n
+
2
∗
p
a
d
W_{middle}=W_{in}+2*pad\\ H_{middle}=H_{in}+2*pad
Wmiddle=Win+2∗padHmiddle=Hin+2∗pad
从而可以计算最后的长和宽为:
W
o
u
t
=
W
m
i
d
d
l
e
−
k
s
t
r
i
d
e
+
1
=
W
i
n
+
2
∗
p
a
d
−
k
s
t
r
i
d
e
+
1
H
o
u
t
=
H
m
i
d
d
l
e
−
k
s
t
r
i
d
e
+
1
=
H
i
n
+
2
∗
p
a
d
−
k
s
t
r
i
d
e
+
1
W_{out}=\frac {W_{middle}-k}{stride}+1=\frac {W_{in}+2*pad-k}{stride}+1\\ H_{out}=\frac {H_{middle}-k}{stride}+1=\frac {H_{in}+2*pad-k}{stride}+1
Wout=strideWmiddle−k+1=strideWin+2∗pad−k+1Hout=strideHmiddle−k+1=strideHin+2∗pad−k+1
2. 对于反卷积
对上图的公式做变换可知:
W
i
n
=
(
W
o
u
t
−
1
)
∗
s
t
r
i
d
e
+
k
−
2
∗
p
a
d
H
i
n
=
(
H
o
u
t
−
1
)
∗
s
t
r
i
d
e
+
k
−
2
∗
p
a
d
W_{in}=(W_{out}-1)*stride +k-2*pad\\ H_{in}=(H_{out}-1)*stride +k-2*pad
Win=(Wout−1)∗stride+k−2∗padHin=(Hout−1)∗stride+k−2∗pad
反卷积可以说是对卷积做一个逆变换了,那么其参数和卷积类似,但是前后每个通道的变换如下:
W
o
u
t
=
(
W
i
n
−
1
)
∗
s
t
r
i
d
e
+
k
−
2
∗
p
a
d
H
o
u
t
=
(
H
i
n
−
1
)
∗
s
t
r
i
d
e
+
k
−
2
∗
p
a
d
W_{out}=(W_{in}-1)*stride +k-2*pad\\ H_{out}=(H_{in}-1)*stride +k-2*pad
Wout=(Win−1)∗stride+k−2∗padHout=(Hin−1)∗stride+k−2∗pad
EMA(Exponential move average)指数滑动平均
这是一种给与近期数据权重更高的平均方法
E
M
A
:
v
t
=
α
∗
v
t
−
1
+
(
1
−
α
)
∗
θ
t
其
中
v
t
表
示
前
t
条
的
平
均
值
,
v
0
=
0
,
α
是
加
权
权
重
值
,
一
般
设
定
为
0.9
0.999
EMA:v_t=\alpha*v_{t-1}+(1-\alpha)*\theta _t\\ 其中v_t表示前t条的平均值,v_0=0,\alpha是加权权重值,一般设定为0.9\text{~}0.999
EMA:vt=α∗vt−1+(1−α)∗θt其中vt表示前t条的平均值,v0=0,α是加权权重值,一般设定为0.9 0.999
一般的普通的过去n时刻的平均是:
v
t
=
(
n
−
1
)
∗
v
t
−
1
+
θ
t
n
v_t=\cfrac {(n-1)*v_{t-1}+\theta_t} n
vt=n(n−1)∗vt−1+θt,如果把
α
\alpha
α设定为
n
−
1
n
\cfrac {n-1} n
nn−1,那么可以看得出来两者形式上是等同的。
下面我们看一下EMA究竟做了什么东西:
令
n
时
刻
的
模
型
权
重
为
v
n
,
梯
度
为
g
n
,
参
数
为
θ
n
,
那
么
可
以
得
到
:
公
式
➀
θ
n
=
θ
n
−
1
−
g
n
−
1
=
θ
n
−
2
−
g
n
−
2
−
g
n
−
2
=
θ
n
−
3
−
g
n
−
3
−
g
n
−
2
−
g
n
−
1
=
θ
1
−
∑
i
=
1
n
−
1
g
i
n
时
刻
的
E
M
A
的
影
子
权
重
为
v
n
,
可
以
得
到
:
公
式
➁
v
n
=
α
v
n
−
1
+
(
1
−
α
)
θ
n
=
α
(
α
v
n
−
2
+
(
1
−
a
)
θ
n
−
1
)
+
(
1
−
α
)
θ
n
=
α
n
v
0
+
(
1
−
a
)
(
θ
n
+
α
θ
n
−
1
+
α
2
θ
n
−
2
+
⋯
+
α
n
−
1
θ
1
)
接
着
我
们
讲
公
式
1
带
入
公
式
2
,
可
以
得
到
如
下
:
v
n
=
α
n
v
0
+
(
1
−
a
)
(
θ
1
−
∑
i
=
1
n
−
1
+
α
(
θ
1
−
∑
i
=
1
n
−
2
g
i
)
+
.
.
.
+
α
n
−
2
(
θ
−
∑
i
=
1
1
+
α
n
−
1
θ
1
)
=
θ
1
−
∑
i
=
1
n
−
1
(
1
−
α
n
−
i
)
可
以
看
到
如
下
的
两
个
式
的
对
比
:
{
θ
n
=
θ
1
−
∑
i
=
1
n
−
1
g
i
结
论
1
v
n
=
θ
1
−
∑
i
=
1
n
−
1
(
1
−
α
n
−
i
)
g
i
结
论
2
由
上
面
的
两
个
式
子
可
以
很
明
显
的
看
出
来
E
M
A
在
第
i
步
的
下
降
的
补
偿
增
加
了
权
重
系
数
相
当
于
做
了
一
个
l
e
a
r
n
i
n
g
r
a
t
e
d
a
c
a
y
,
从
而
能
够
更
好
的
控
制
达
到
全
局
收
敛
令n时刻的模型权重为v_n,梯度为g_n,参数为\theta_n,那么可以得到:公式➀ \text{}\\ \begin{aligned} \theta_n &=\theta_{n-1}-g_{n-1}\\ &=\theta_{n-2}-g_{n-2}-g_{n-2}\\ &=\theta_{n-3}-g_{n-3}-g_{n-2}-g_{n-1}\\ &=\theta_1-\sum_{i=1}^{n-1}g_i\\ \end{aligned}\\ n时刻的EMA的影子权重为v_n,可以得到:公式➁\\ \begin{aligned} v_n&=\alpha v_{n-1}+(1-\alpha)\theta_n\\ &=\alpha(\alpha v_{n-2}+(1-a)\theta_{n-1})+(1-\alpha)\theta_n\\ &=\alpha^nv_0+(1-a)(\theta_n+\alpha\theta_{n-1}+\alpha^2\theta_{n-2}+\dots+\alpha^{n-1}\theta_1) \end{aligned}\\ 接着我们讲公式1带入公式2,可以得到如下:\\ \begin{aligned} v_n&=&\alpha^nv_0+(1-a)(\theta_1-\sum_{i=1}^{n-1}+\alpha(\theta_1-\sum_{i=1}^{n-2}g_i)+...+\alpha^{n-2}(\theta-\sum_{i=1}^1+\alpha^{n-1}\theta_1)\\ &=&\theta_1-\sum_{i=1}^{n-1}(1-\alpha^{n-i})\\ \end{aligned} 可以看到如下的两个式的对比:\\ \begin{cases} \theta_n = \theta_1-\sum_{i=1}^{n-1}g_i \quad &结论1\\ v_n=\theta_1-\sum_{i=1}^{n-1}(1-\alpha^{n-i})g_i&结论2\\ 由上面的两个式子可以很明显的看出来EMA在第i步的下降的补偿增加了权重系数\\相当于做了一个learning\,rate\,dacay,从而能够更好的控制达到全局收敛 \end{cases}
令n时刻的模型权重为vn,梯度为gn,参数为θn,那么可以得到:公式➀θn=θn−1−gn−1=θn−2−gn−2−gn−2=θn−3−gn−3−gn−2−gn−1=θ1−i=1∑n−1gin时刻的EMA的影子权重为vn,可以得到:公式➁vn=αvn−1+(1−α)θn=α(αvn−2+(1−a)θn−1)+(1−α)θn=αnv0+(1−a)(θn+αθn−1+α2θn−2+⋯+αn−1θ1)接着我们讲公式1带入公式2,可以得到如下:vn==αnv0+(1−a)(θ1−i=1∑n−1+α(θ1−i=1∑n−2gi)+...+αn−2(θ−i=1∑1+αn−1θ1)θ1−i=1∑n−1(1−αn−i)可以看到如下的两个式的对比:⎩⎪⎪⎪⎨⎪⎪⎪⎧θn=θ1−∑i=1n−1givn=θ1−∑i=1n−1(1−αn−i)gi由上面的两个式子可以很明显的看出来EMA在第i步的下降的补偿增加了权重系数相当于做了一个learningratedacay,从而能够更好的控制达到全局收敛结论1结论2