ppt阅读笔记

1:对bn的改进

与我在 白皮书阅读笔记中记录的bn的改进方法一致

2:WAGE

这篇文章核心是量化了四个部分(W:weight,A:activation,G:gradient,E:eroor)。
着重分析下这篇文章是如何把bn层融入进其他部分的。
首先bn的一个作用是减少了对初始化的依赖。去掉了bn层,为了降低初始化对模型效果的影响,本文采取了一个叫msra的初始化方式,关于这个方法的论文见链接msra论文;msra 博客。简而言之,该初始化的核心是,使得该层输入的方差等于该层输出的方差。
即: V a r ( y l − 1 ) Var(y_{l-1}) Var(yl1) = V a r ( y l ) Var(y_{l}) Var(yl).在激活函数RELU的情况下,作者经过推导,发现要满足上述条件,必须满足 V a r ( W l ) = 2 / n i n Var(W_{l})=2/n_{in} Var(Wl)=2/nin
在这里插入图片描述
在这里插入图片描述
对于L的取值, 6 / n i n \sqrt {6/n_{in}} 6/nin 是为了保证W的方差为 2 n i n \frac {2}{n_{in}} nin2. 其中 n i n n_{in} nin的含义是输入的维度。但是,如果 n i n n_{in} nin过大,那么W的取值范围会非常窄。由于量化的原因,W的取值只能是 σ \sigma σ的整数倍,如果 6 / n i n < σ \sqrt {6/n_{in}}<\sigma 6/nin <σ那么W的取值只能是全0.这很明显不行。所以,便引入了第二项, β \beta β是一个大于1 的值,那么 L m i n > σ L_{min}>\sigma Lmin>σ于是,就可以保证W不会全部为0。
对于bn的另外一个作用,就是将输入的均值置为零,方差值为一。本文的做法是,首先认为activation的均值为0.这里没有给出足够的理由,所以感觉有些不合理。其次,对于scale,作者的做法如下:
在这里插入图片描述
其中 α \alpha α为:
在这里插入图片描述
这里我认为作者写错了公式,应该是
α = m a x ( S h i f t ( L / L m i n ) , 1 ) \alpha = max(Shift(L/L_{min}),1) α=max(Shift(L/Lmin),1)
这样的话, α \alpha α的取值就不再只是1了,可以是大于1的值。
对于 a q a_{q} aq的量化操作,作者并没有分析 α \alpha α在量化中的作用。不过可以得知的是, α \alpha α绝对是一个与当前batch 无关的数据,用这样的数来做batch normalization,我认为不合理。
作者通过这两步操作取消了bn,但是作者也认为这样做不够合理,需要进一步研究。

3:各种normalization
这部分内容感觉分为两部分,一部分是Norm matters这篇论文,另一部分则是对各种normalization的介绍,可以参考张俊林对normlization的介绍.
首先来说Norm matters这篇论文。这篇文章主要分析了L1,L2, L ∞ L^{\infty} L对Batch normalization和weight normalization的影响。weight normalization我没有仔细看,主要分析Batch normalization。
L1 batch normalization
ppt阅读笔记_第1张图片
在这里插入图片描述
ppt阅读笔记_第2张图片
由此可以看出,L1bn效果和L2bn的效果差不太多。

第二部分就是对各种normalization的介绍。

ppt阅读笔记_第3张图片

你可能感兴趣的:(量化)