天道社区

 找回密码
 立即注册
查看: 8|回复: 0

训练网络像是买彩票?神经网络剪枝最新进展之彩票假设解读

[复制链接]

2647

主题

2647

帖子

8133

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
8133
发表于 5 天前 | 显示全部楼层 |阅读模式
机器学习的训练过程,是数据科学家在理论与现实之间面临的妥协之一。通常情况下,对于特定问题而言,由于训练成本的限制,理想的神经网络架构不能完全实现。一般而言,神经网络最初的训练需要大量的数据集和昂贵的计算成本,其结果得到一个隐藏层之间充满复杂连接的庞大的神经网络结构。这种结构往往需要经过优化技术,移除某些连接来调整模型的大小。数十年来困扰研究者的一个问题是我们是否真的需要这样的庞大的神经网络结构。很明显,如果我们连接网络中的每个神经元,可以解决特定的问题,但可能因为高昂的成本而被迫止步。难道我们不能从更小、更精简的网络开始训练吗?这就是彩票假设的本质。

以博彩来类比,训练机器学习模型就相当于通过购买每一张可能的彩票来获得中奖彩票。但是如果我们知道中奖彩票长什么样子,那么是不是就可以更聪明地来选择彩票?在机器学习模型中,训练过程得到的巨大的神经网络结构相当于一大袋彩票。在初始训练之后,模型需要进行优化,例如剪枝,删除网络中不必要的权重,从而在不牺牲性能的情况下减小模型的大小。这就相当于在袋子中寻找中奖彩票,然后扔掉剩下的彩票。通常情况下,经过剪枝后的网络结构要比原始的小 90% 左右。那么问题来了,如果网络结构可以缩小,那么为了提高训练效率为什么不一开始就训练这个更小的网络呢?然而,已经有许多实验证明了,如果从头开始训练剪枝后的网络,得到的准确率要比原始网络低很多。

MIT 的彩票假设背后的思想是,一个大型的神经网络包含一个小的子网络,如果一开始就训练,那么会得到和原始网络相似的准确率。

彩票假设

文章中对彩票假设的正式定义为:一个随机初始化的密集神经网络包含一个初始化的子网络,在单独训练时,最多经过相同的迭代次数,可以达到和原始网络一样的测试准确率。

我们将一个复杂网络的所有参数当做奖池,上述一组子参数对应的子网络就是中奖彩票。

更正式的,考虑一个密集的前馈神经网络 f(x;θ),其中初始化参数 θ=θ_0~D_θ,当在训练集上用随机梯度下降时,f 可以在 j 次迭代后达到损失 l 和准确率 a。此外,考虑对参数θ作用一个 01 掩模 m∈{0,1}^|θ|,在相同的数据集上训练 f(x;m⊙θ), f 在 j' 次迭代后达到损失 l' 和准确率 a'。彩票假设指出存在 m, 使得 j』=a (准确率更高), ||m||_0 21.2% 时,Pm 越小,即剪枝的参数越多,准确率越高,当 Pm



由图 4 可以观察到,迭代剪枝要比 oneshot 剪枝更快找到中奖彩票,而且在子网络规模较小的情况下依然可以达到较高的准确率。为了衡量中奖彩票中初始化的重要性,作者保留了中奖彩票的结构然后使用随机初始化重新训练。与中奖彩票不同的是,重新初始化的网络学习速度比原来的网络越来越慢,并且在进行少量剪枝之后就会失去测试精度。

总结

本文中,作者提出了彩票假设并给出一种寻找中奖彩票的方法,通过迭代非结构化剪枝的方式可以找到一个子网络,用原始网络的初始化参数来初始化,可以在性能不下降的情况下更快的训练这个子网络,但是如果用随机初始化方法却达不到同样的性能。

作者也在文章中指出这项工作存在的一些问题。例如,迭代剪枝的计算量太大,需要对一个网络进行连续 15 次或 15 次以上的多次训练。未来可以探索更加高效的寻找中奖彩票的方法。

论文2:Deconstructing Lottery Tickets: Zeros, Signs, and the Supermask



原文链接:https://arxiv.org/abs/1905.01067

彩票假设回顾

Frankle 和 Carbin 在彩票假设(LT)论文中提出一种模型剪枝方法:对网络训练后,对所有小于某个阈值的权重置 0(即剪枝),然后将剩下的权重重置成原始网络初始的权重,最后重新训练网络。基于这种方法,得到了两个有趣的结果。

一方面经过大量剪枝的网络(删掉 85%-95% 的权重)与原网络相比性能并没有明显的下降,而且,如果仅仅剪掉 50%-90% 的权重后的网络性能往往还会高于原网络。另一方面,对于训练好的普通网络,如果重新随机初始化权重然后再训练,得到的结果与之前的相当。而对于彩票假设的网络并没有这个特点,只有当网络使用和原网络一样的初始化权重,才能很好地训练,如果重新初始化会导致结果变差。剪枝掩模(如果删掉权重置 0,否则为 1)和权重的特定组合构成了中奖彩票。

存在的问题

虽然上篇论文里证明了彩票假设是有效的,然而许多潜在的机制尚未得到很好的理解。例如:LT 网络如何使他们表现出更好的性能?为什么掩模和初始权重集如此紧密地耦合在一起,以至于重新初始化网络会降低它的可训练性?为什么简单地选择大的权重构成了选择掩模的有效标准?其他选择掩模的标准也会起作用吗?本篇论文提出了对这些机制的解释,揭示了这些子网络的特殊模式,引入了与彩票算法相抗衡的变体,并获得了意外发现的衍生品:超级掩模(supermask)。

掩模准则

作者将每个权重的掩模值设为初始权值和训练后的权值的函数 M(w_i,w_f),可以将这个函数可视化为二维空间中的一组决策边界,如图 1 所示。不同的掩码标准可以认为是将二维 (wi =初始权值,wf =最终权值) 空间分割成掩码值为 1 vs 0 的区域。



如图所示的掩码准则由两条水平线标识,这两条水平线将整个区域划分为掩码=1(蓝色) 区域和掩码=0(灰色) 区域,对应于上篇论文中使用的掩模准则:保留最终较大的权重,并剪掉接近于零的权重。作者将这种称为 large_final mask, M(w_i,w_f)=|w_f|。作者还提出了另外 8 种掩模准则,对应的公式都在下图表示出来了,保留椭圆中彩色部分的权重,将灰色部分的权重剪掉。



作者对这些掩模准则做了一系列对比试验,对于全连接和 Conv4 网络结果如下图所示。可以发现,magnitude increase 和 large_final 相比不相上下,在 Conv4 网络中还要表现的更好一些。



以随机掩模为基线,我们可以发现那些倾向于保留具有较大最终值的权重的准则能更好的发现子网络,而保留小权值的效果较差。

正负号的重要性

现在已经探索了对哪些权重进行减值效果较好。接下来的问题是该将保留下来的权重重置为何值。作者主要是想研究上篇论文中的一个有趣的结果,当重置为原网络初值的时候效果很好,但当随机初始化时,效果会变差。为什么重新初始化效果会变差以及初始化的哪些条件最重要?为了找到问题的答案,作者做了一系列初始化的实验。



可以发现保留权重的初始值并没有保留正负号这么重要。如果使用其他的初始化方法,但是忽略正负号,那么效果很差,和随机初始化差不多(图中虚线)。而如果和原来的权重保持一样的正负号,三种方法和 LT 网络的初始化效果相差无几(图中实线)。只要保持正负号一致,即使将剩下的权重都设为常量也不会影响网络的表现。

超级掩模

在开头提到了超级掩模的概念,它是一种二值掩模,当作用到随机初始化的网络上时,即使不重新训练,也可以得到更高的准确率。下面介绍如何找到最佳的超级掩模。

基于上述对初始符号重要性的洞察以及让权重更接近最终值的考虑,作者引入了一种新的掩模准则,选择较大的权重,而且这些权重在训练后也保持相同的正负号,作者将其称为 large_final, same sign。并且用 large_final, diff sign 作为对照,两者的区别如下图所示。



通过使用这一掩模准则,可以在 MNIST 上取得 80% 的测试准确率,而上一篇文章 large_final 方法在最好的剪枝率下只有 30% 的准确率(注意这是在没有进行重新训练的情况下)。



总结

这篇文章对上一篇文章进行了深度的解释。通过比较不同的掩模准则和初始化方案来回答为什么彩票假设可以表现的很好。并且有意思的是提出了一种新的「超级掩模」,通过它可以在不重新训练子网络的情况下得到很高的准确率。这为我们提供了一种新的神经网络压缩方法,只需要保存掩模和随机数种子就可以重构网络的权重。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|天道社区 ( 蜀ICP备06024898号-1 )

GMT+8, 2025-8-31 08:29 , Processed in 0.160682 second(s), 23 queries .

Powered by 网站地图 X3.4

!copyright!