呆板之心专栏
呆板之心编辑部
这篇来自 CMU 和 HKUST 科研团队的 ICML 论文,仅通过调解练习算法,在 ImageNet 数据集上取得了比之前的 SOTA BNN 网络 ReActNet 高1.1% 的分类精度。
二值化网络(BNN)是一种网络压缩要领,把本来必要 32 bit 表现的神经网络参数值和激活值都二值化到只必要用 1 bit 表现,即 -1/+1 表现。
这种非常的压缩要领在带来优胜的压缩性能的同时,会造成网络精度的降落。
在本年的 ICML 集会中,一篇来自 CMU 和 HKUST 科研团队的论文仅通过调解练习算法,在 ImageNet 数据集上取得了比之前的 SOTA BNN 网络 ReActNet 高 1.1% 的分类精度,终极的 top-1 accuracy 到达 70.5%,凌驾了全部划一量级的二值化网络,如下图所示。
这篇论文从二值化网络练习历程中的常见题目切入,一步步给出对应的办理方案,最终收敛到了一个有用化的练习计谋。接下来就随着这篇论文一路看看二值化网络(BNN)应该怎样优化。
起首,BNN 的优化器应该怎样拔取?
可以看到,BNN 的优化曲面显着差别于实数值网络,如下图所示。实数值网络在局部最小值周边有越发腻滑的曲面,是以实数值网络也更简单泛化到测试集。相比而言,BNN 的优化曲面更陡,是以泛化性差而且优化难度大。
这个显着的优化区别也导致了直接相沿实数值网络的 optimizer 在 BNN 上体现成效并欠好。现在实数值分类网络的通用优化器都是 SGD,该论文的比拟试验也发觉,对付实数值网络而言,SGD 的性能总是优于自顺应优化器 Adam。但对付 BNN 而言,SGD 的性能却不如 Adam,如下图所示。这就激发了一个题目:为什么 SGD 在实数值分类网络中是默认的通用优化器,却在 BNN 优化中输给了 Adam 呢?
这就要从 BNN 的特性提及。由于 BNN 中的参数值(weight)和激活值(activation)都是二值化的,这就必要用 sign 函数来把实数值的参数和激活值酿成二值化。
而这个 Sign 函数是不行导的,以是通例做法便是对付二值化的激活值用 Clip 函数的导数拟合 Sign 函数的导数。
如许做有一个题目便是,当实数值的激活值凌驾了 [-1,1] 的范畴,称为激活值过饱和(activation saturation),对应的导数值就会变为 0。从而导致了污名昭著的梯度消逝(gradient vanishing)题目。从下图的可视化效果中可以看出,网络内部的激活值凌驾[-1, 1] 范畴非常常见,以是二值化优化里的一个紧张题目便是因为激活值过饱和导致的梯度消逝,使得参数得不到充实的梯度估量来进修,从而简单困局部次优解里。
而比力 SGD 而言,Adam 优化的二值化网络中激活值过饱和题目和梯度消逝题目都有所缓解。这也是 Adam 在 BNN 上成效优于 SGD 的缘故原由。那么为什么 Adam 就能缓解梯度消逝的题目呢?这篇论文通过一个结构的超简二维二值网络阐发来阐发 Adam 和 SGD 优化历程中的轨迹:
图中展示了用两个二元节点构建的网络的优化曲面。(a) 前向通报中,因为二值化函数 Sign 的存在,优化曲面是分离的,(b) 而反向流传中,因为用了 Clip(−1, x, 1)的导数类似 Sign(x)的导数,以是现实优化的空间是由 Clip(−1, x, 1)函数构成的, (c) 从现实的优化的轨迹可以看出,相比 SGD,Adam 优化器更能降服零梯度的局部最优解,(d) 现实优化轨迹的顶视图。
在图 (b) 所示中,反向梯度盘算的时间,只有当 X 和 Y 偏向都落在[-1, 1] 的范畴内的时间,才在两个偏向都有梯度,而在这个地区之外的地区,至少有一个偏向梯度消逝。
而从下式的 SGD 与 Adam 的优化方法比力中可以看出,SGD 的优化方法只盘算 first moment,即梯度的均匀值,碰到梯度消逝题目,对相应的参数的更新值降落极快。而在 Adam 中,Adam 会累加 second moment,即梯度的二次方的均匀值,从而在梯度消逝的偏向,对应放大进修率,增大梯度消逝偏向的参数更新值。如许能关心网络越过局部的零梯度地区到达更好的解空间。
进一步,这篇论文展示了一个很有味的征象,在优化好的 BNN 中,网络内部存储的用于关心优化的实数值参数出现一个有纪律的漫衍:
漫衍分为三个峰,分别在 0 周边,-1 周边和 1 周边。并且 Adam 优化的 BNN 中实数值参数靠近 - 1 和 1 的比力多。这个特别的漫衍征象就要从 BNN 中实数值参数的作用和物理意义讲起。BNN 中,因为二值化参数无法直接被数目级为 10^ -4 左右巨细的导数更新,以是必要存储实数值参数,来积存这些很小的导数值,然后在每次正向盘算 loss 的时间取实数值参数的 Sign 作为二值化参数,如许盘算出来的 loss 和导数再更新实数值参数,如下图所示。
以是,当这些实数值参数靠近零值时,它们很简单通过梯度更新就转变标记,导致对应的二值化参数简单跳变。而当实值参数的肯定值较高时,就必要累加更多往相反偏向的梯度,才气使得对应的二值参数转变标记。以是正如 (Helwegen et al., 2019) 中提到的,实值参数的肯定值的物理意义可以视作其对应二值参数的置信度。实值参数的肯定值越大,对应二值参数置信度更高,更不简单转变标记。从这个角度来看,Adam 进修的网络比 SGD 实值网络更有置信度,也侧面印证了 Adam 对付 BNN 而言是更优的 optimizer。
固然,实值参数的肯定值代表了其对应二值参数的置信度这个推论就激发了另一个思索:应不该该在 BNN 中对实值参数施加 weight decay?
在实数值网络中,对参数施加 weight decay 是为了操纵参数的巨细,防备过拟合。而在二值化网络中,参加网络盘算的是实数值参数的标记,以是加在实数值参数上的 weight decay 并不会影响二值化参数的巨细,这也就意味着,weight decay 在二值化网络中的作用也必要重新思索。
这篇论文发觉,二值化网络中利用 weight decay 会带来一个逆境:高 weight decay 会低落实值参数的巨细,进而导致二值参数易变标记且不稳健。而低 weight decay 大概不加 weight decay 会使得二值参数将趋势于连结当前状态,而导致网络简单依靠初始值。
为了量化稳健性和初始值依靠性,该论文引入了两个指标:用于权衡优化稳健性的参数翻转比率(FF-ratio),以及用于权衡对初始化的依靠性的初始值相干度 (C2I-ratio)。两者的公式如下,
FF-ratio 盘算了在第 t 次迭代更新后几多参数转变了它们的标记,而 C2I -ratio 盘算了几多参数与其初始值标记差别。
从下表的量化阐发差别的 weight decay 对网络稳健性和初始值依靠性的效果中可以看出,随着 weight decay 的增添,FF-ratio 与 C2I-ratio 的改变趋向呈负相干,而且 FF-ratio 呈指数增添,而 C2I-ratio 呈线性降落。这评释一些参数值的来回跳变对终极参数没有奉献,而只会影响练习稳健性。
那么 weight decay 带来的稳健性和初始值依靠性的两难逆境有没有要领解离呢? 该论文发觉近来在 ReActNet (Liu et al., 2020) 和 Real-to-Binary Network (Brais Martinez, 2020) 中提出的两阶段练习法共同符合的 weight-decay 计谋能很好地化解这个逆境。这个计谋是,第一阶段练习中,只对激活值举行二值化,不贰值化参数。因为实数值参数不必担忧二值化参数跳变的题目,可以添加 weight decay 来减小初始值依靠。随后在第二阶段练习中,二值化激活值和参数,同时用来自第一步练习好的参数初始化二值网络中的实值参数,不施加 weight decay。如许可以进步稳健性并使用预练习的精良初始化减小初始值依靠带来的毛病。通过观看 FF-ratio 和 C2I-ratio,该论文得出结论,第一阶段利用 5e-6 的 weight-decay,第二阶段不施加 weight-decay 成效最优。
该论文综合全部阐发得出的练习计谋,在用雷同的网络布局的情形下,取得了比 state-of-the-art ReActNet 凌驾 1.1% 的效果。试验效果如下表所示。
更多的阐发和效果可以参考原论文。
参考文献: