Python社区  »  机器学习算法

对神经网络进行翦枝-让深度学习变的可以训练

混沌巡洋舰 • 1 周前 • 20 次点击  

今天这篇文章算是ICRL(International Conference on Learning Representations)中标题最有趣的一篇了,也是对实际训练很有指导意义的一篇文章。这篇文章的主要观点一点都不难懂,也没有多少复杂的公式推导。



对训练好的神经网络进行翦枝,去除其中不必须的权重项,可以去除网络中90%的权重项,同时不会影响网络的在分类等问题上性能。通过网络翦枝,可以减少网络的大小,减少计算所需的能耗及计算时间,从而提高使用网络做推理时的效率。


但问题在于,为何要在训练完成后再去对网络进行翦枝,去除那些当网络收敛到一定程度的时候对网络做分类任务时贡献度较小的权重,而不是直接用一个更小的网络架构来训练。传统上对这个问题的回答是,如果一开始训练时的网络架构就相对较小,模型的容量有限,会导致最终训练好的模型效果相比翦枝后的模型相对较差,因此要先去训练一个大的网络,在通过翦枝对网络进行加速。


而今天介绍的研究则是问,如果在训练的时候就开始对网络随机去除一些权重,而且在训练过程中一次次的去做翦枝,那么网络在分类精度,以及训练所需的时间上,有什么区别了。


上图展示的是针对MINST数据全连接网络(红色),以及用于分类的卷积网络的CIFAR(绿色与黄色),在训练过程中,在什么那个epoth需要停止训练,以避免过拟合,用该值来代表训练所需的计算时间,横轴是随机去掉多少比例的权重,不同的线型代表训练完成后和训练进行中进行翦枝。相比翦枝前的稠密网络,翦枝后的网络训练所需的轮数(epoth)普遍更小。

上图展示了针对上述俩个网络,比较了分类精度的变化,注意横轴最极端情况下,进行翦枝去除了99%以上的权重。但模型在分类准确度上,以及分类所需的epoth上,都没有出现特别明显的下降,但如果训练中迭代式的对随机选择权重进行翦枝,和训练完一次性的去除对分类帮助不大的权重,在分类的精度上,就存在着10%-20%的差距。


本文用到的网络的具体参数与大小


由此作者给出了神经网络中的”lottery tickect“彩票猜想,即对于一个稠密的网络,其中一定包含一个子网络,当该子网络单独训练时,在分类准确性和训练时间上和原网络近似。这样的子网络作者拟人化的称为”彩票中奖者“。


那图中另一种线条代表的训练过程是怎样的了?首先是随机生成一个稠密网络结构,然后做反向传播来对权重进行优化,再去除优化后网络中权重较小的部分,之后对剩下的网络结构中的权重随机,不断重复上面的四个步骤,迭代式的找出”中了彩票“的最优子网络。


假设要去除的网络权重为p%,去除过程包括n次迭代,那每次去除 网络中p^(1/n) %的权重项,而不是像传统中在训练后一次性全部去除。由于迭代式的翦枝,在每一次的训练过程中,都需要重新对网络的权重进行随机初始化,正是这个操作,导致了模型的准确性不如训练后一次性翦枝,这反过来说明了在深度学习中,对网络权重的初始化,对提升网络的精度影响很大,不应该简单的用随机值来初始化网络权重。


该实验引申出的另一个推论是翦枝剩下的网络结构本身和训练数据强相关,从“中了彩票”的网络结构中,甚至可以推出到底是训练数据本身的规律,至少这个网络结构展示了训练数据中存在的偏向性。


综合训练精度和训练时间,如果一开始训练的网络结构本身是一个相对稠密的,包含更多权重的,那在模型的准确性上要好,也更容易训练,因为从一个密集连接的网络结构中,找出最优子网络的几率更大。如果先通过翦枝,找到原网络结构里“中彩票”的子网络,那么模型的训练所需时间会相对较短。


该研究的猜想如果在更多的数据中重现,那可以用其来降低神经网络训练所需的计算资源(在训练过程中进行权重翦枝),也可以用来提升模型的精度(通过对最优子网络的研究,指导设计新的网络结构及初始化策略,或者将一类数据对应的最优子网络结构用在其他类型的数据上),还可以对加深对深度学习背后的理论基础的研究,例如确认随机梯度下降的优化策略是不是等价于迭代式的选择子网络对其进行优化。


人类大脑的发育,在幼儿时期,先让神经元之间自由的构建连接,到了童年,再去除多达80%以上的多余连接。神经网络和大脑发育呈现出了相同的趋势,这在AI中并不是特例,更多这方面的进展,参考模拟人类大脑 :人工智能的救赎之路 ?


该研究并不是百分百完成了的,其中考虑的神经网络,和当前研究用到的网络相比还是比较小的,不确定该文的猜想是不是适合更大规模的神经网络。同时该文也只考虑了计算机视觉,对于时间序列数据以及NLP相关的任务,该文的猜想也没有相应的验证。另外该文中对网络进行权重翦枝的方法,只是基于当个权重的大小一刀切,对于新的翦枝方法,例如对网络中的一个局部整体进行翦枝,不基于权重大小的翦枝选择策略,该文都没有涉及。随机生成的网络要想有效,需要足够大,本文考虑的网络大小,对比两者网络翦枝策略,其实不是一个公平的起跑线。对如何从翦枝最优网络结构中如何提取与训练数据有关的特征,本文也没有进行讨论。


更多阅读

图像分类中的隐式标签正则化

随机网络中的智慧


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/34296
 
20 次点击  
分享到微博