前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >独家 | 如何在确保准确度>99%的前提下减少CNN的训练参数(附链接)

独家 | 如何在确保准确度>99%的前提下减少CNN的训练参数(附链接)

作者头像
数据派THU
发布2022-09-27 17:15:32
3530
发布2022-09-27 17:15:32
举报
文章被收录于专栏:数据派THU数据派THU

文:Sabrina Göllner

翻译:陈之炎

校对:zrx

本文约4800字,建议阅读10分钟

本文来自 Niantic 和 UCL 等机构的研究者使用精心设计和训练的 2D 网络,实现了高质量的深度估计和 3D 重建。

标签:CNN训练

性能优良的神经网络不一定要很大。

图Uriel SC (Unsplash)

近年来,图像识别领域的研究主要集中在深度学习技术上,并且取得了很好的进展。卷积网络(CNNs)在感知图像结构方面非常有效,它能够自动提取独特的特征。然而,大型神经网络往往需要大量的算力和长时间的训练,才能达到尽可能高的准确度。

本项工作中,将展示3种方法,即在不影响准确度的情况下,如何确保卷积网络中参数的数量尽可能少。

在本实验中,将使用“修改后的国家标准与技术研究所(MNIST)”(来源)数据集。

提示:为了更好地理解这个实验,需要有一些机器学习的基础知识。例如,将处理池化、归一化、正则化和剪枝。在继续学习之前,最好先了解一下这些技巧。

动机

现有的大多数有效解决MNIST数据集的方法虽然都具有较高的准确度,但模型的参数通常在100,000-20万甚至更高的[1,2]范围内。究其原因,这些方法通常有大量的卷积层,以较大的特征映射作为特征提取器,而全链接层则用于生成分类。因此,该架构会产许多参数。CNN分类的典型架构如下图所示:

图1:典型的CNN架构,来源[2]

具体来说,这个实验的挑战是将模型参数数目减少到小于10,000(即,降低到原参数数目的10%),同时将准确度保持在99%+的+范围内。

实施

准备数据集

首先,归一化训练数据的格式,在这里使用了独热编码。然后,将数据集加载到内存中,以获得更好的性能。扰乱训练数据,使每次运行训练时不总是获取相同顺序的数据集。最后,将数据划分为大小相等的批,使得每个epoch能获取到相同批大小的数据。除数据扰乱之外,对测试数据集也做同样的操作过程。

方法

在本小节中,实验采用了现存的架构,在MNIST数据集训练模型,并在每个epoch后测量准确度,每种方法中观察40 epoch。

为每个案例创建不同架构,测试其性能,按照实验要求,每种架构的可训练参数少于10,000个(Keras中的可训练参数定义为:可以在训练过程中发生变化的参数。例如,激活层中的参数、最大池化、扁平化和Dropout的参数)。

1.方法 1

本方法采用了“典型CNN架构”的简化变体(见图1)。由于对可训练参数数量的限制,只使用卷积层进行特征提取,只采用一个全链接层进行分类。因此,该模型只有7968个可训练参数。

架构详情: 

图2:方法1的Keras模型概要,来源:作者自创的图表

该模型共由11层组成。由于图像为28x28像素,颜色值带有一个灰度通道,所以数据以(28,28,1)的格式进入输入层。接下来是两个连续的块,每个块由以下层组成:一个激活函数为ReL的Conv2D层,然后是批处理归一化,最后是Max池化层。

MaxPooling池化对输入数据向下采样,所以它有助于减少参数。第一个块中的卷积层由32个不同的滤波器组成,滤波器的核非常小,大小为3x3;第二个块中,滤波器的数量减少到14个。因为假设图像的基本部分位于中心,而不是在边缘,所以没有使用填充,将步长(步幅)设置为1。激活函数采用ReLU,因为它是目前最先进的技术。批归一化提供了一种正则化,以防止过拟合。大小为2的最大池化层将先前应用的滤波器的输出结果减少了2倍。作为向全连接神经网络的过渡,目前采用了一个平坦层,它将张量减少成长度为126(14x3x3)的向量。然后,添加10%的Dropout 。最后一层是具有Softmax激活的全连接层。该模型共有8060个参数,其中7968个参数是可训练的。

配置:

为了避免模型进行不必要的训练,使用早停方法。

观察10 个epoch之后的测试准确度,准确度的下限设置为98%。如果测试准确度没有提高,则启动最佳权重的恢复(由Keras“恢复最佳权重”来实现)。Plateau上的降低学习率一次设置为4个epoch。在训练了4个epoch后,测试的准确度稳步下降,使得学习率降低了0.5倍。采用分类交叉熵法计算损失,优化器为Adam。批大小设置为125,可以均匀获得批量数据,开始时设置的学习率为0.01。使用批处理归一化之后,准确度收敛速度会更快,在无需降低学习率的情况下,也能加快学习过程。

实验结果: 

图2:方法1的训练曲线图,来源:作者自创的图表

平均而言,测试准确度在第二阶段后已经达到98%以上,随后收敛到99%。在Plateau上通过降低学习率来稳定训练过程。训练早期,平均在30到40个epoch之间停止训练。该网络产生的最佳测试准确率为99.24%。因此,从实验结果可以看出,该网络具有较高的泛化能力,即便学习参数较少,泛化能力也超过了较少参数的网络。

2. 方法2

该方法只使用卷积层进行特征提取,分类方法采用了全局平均池化的方法。利用池化方法实现分类,取代全链接层完成分类任务。这种方法保存了由全链接层生成的大量参数。在[4]和[5]中已经提到,窄而深的网络具有更好的泛化能力。为了与方法1进行比较,该架构设计了更多数目的层。

架构详情:

图2:方法2的Keras概要,来源:作者自创的图表

如前所述,本方法选择了一种深度网络的架构,它由5个 “卷积块”组成,每个卷积块是由以下连续的层组成:卷积层、ReLU、批归一化。卷积层中的滤波器数量定义为4-8-16-10,核大小为3x3的。没有使用填充,步长为1。最大池化在第二个块之后执行,从而有助于减少参数。由于滤波器的数量众多,后续两个块的参数最多。这些因素对于模型的特征提取和结果的准确率都非常重要。最后一个块只有10个滤波器,经过测试,滤波器的数量已经足够。最后一层的最后三个块有10% dropout,用于正则化。该模型共有5490个参数,其中5382个参数可以被训练。

配置: 

将该网络设置为早停( Early Stopping),Plateau平台上的学习率、损失、优化器、批大小和学习率的配置与方法1的配置相同。

方法2的训练曲线图,来源:作者自创的图表

观察:

测试准确度经过初始波动后,在10个epoch后缓慢地收敛到99%,该网络的最佳测试准确率为99.47%。

3. 方法3

该架构在本质上类似于方法2,本方法同样只采用卷积层进行特征提取,采用全局平均池化方法进行分类。然而,它由更少的层组成,并且没有dropout,配置也没变。

架构详情:

方法3的Keras屏幕截图,来源:作者自创的图表

该架构同样是一个深度网络,包含5个块,每个块由一个ReLU激活追加批归一化的卷积层组成。在本架构中,滤波器定义如下:滤波器的大小按2-4-8-16-10的升序定义。因此,前三个卷积层的数量减半,后两个层与方法2相同。与方法2的主要区别是删除了 Dropouts ,因为发现 Dropouts 会导致训练和测试的准确性显著下降。可以得出结论,在小型网络中过频繁地使用Dropouts 会导致过多的正则化。该模型共有3170个参数,其中3090个参数可以被训练。

图2:方法3的训练曲线图,来源:作者自创的图表

观察: 

前三个卷积层中滤波器尺寸的减小对准确度没有预期那么高的影响,该网络的准确率仍可达到99%以上。

方法比较,来源:作者自创的图表

结论:

在本小节中,测试了3种不同架构的学习模型,带有约5000个参数的模型的最佳准确度为99,47%。此外,还需要有足够多的滤波器来有效地提取特征。正则化和标准化的使用确保了训练过程的稳定性。

借助“彩票假说”实施剪枝

本小节的目的是采用“彩票假说”进行一个简短的实验,评估其结果。该假设基于原始网络中存在子网络的假设,子网络负责大部分结果的输出。这意味着准确度主要由子网决定的。利用方法2测试网络中是否存在“中奖彩票”。

也可以称之为“全局剪枝”方法,将它应用于深度卷积网络。深层次的网络剪枝是通过在所有卷积层上去除最小的权值来实现的,对于更深层次的网络,其中某些层比其他层有更多的参数。当对所有层的参数以相同的速度减少时,那些参数较少的层就会成为瓶颈,无法识别 “中奖彩票”的最小概率。全局剪枝可以避免这种陷阱。本实验中的网络不同层中的参数数目有很大的差异,所以这里采用了该方法。

迭代剪枝:

方法2中的网络采用随机初始化的权值进行训练。正如Frankle & Cabin [3]在论文中所描述的那样,经过训练之后,达到了最佳的准确度。在那之后,再进行n轮剪枝。在每一轮剪枝中,用p 1/n %修剪剩余的权重,计算出屏蔽字;其余的权重将重置为初始值,并再次进行训练。

这个实验进行了两次迭代。在这里,采用了Plateau 的“早停”和“降低学习率”两种配置,与之前的实验条件相同。在训练过程中,每次迭代减少的权重数与原始网络进行比较(见表2)。只有卷积层的权重受到剪枝过程的影响(可分调参数)。在下表中,参数列列出的是“参数”,术语“减少”是指在本次迭代中减少的参数的数量。

来源:作者自创的图表

观察:

每经过一次迭代,准确率下降约0.1%。如下图所示,在第一次迭代的训练开始时(20%剪枝),比原来有更高的波动,但在15个epoch之后,会稳定下来。第二次迭代(55.77%的剪枝)过程中,在开始时观察到更高的测试准确度波动,但在随后的过程中会越来越稳定。本次迭代过程中,在31个epoch后开始了早停。总体而言,每次迭代的预期测试准确度均达到99%。论文提到,修剪后的网络学习率更快,而且准确度也有所提高 [3,第5页]。相比之下,修剪后的网络的准确度不会有很快的提高。大型网络剪枝的影响要大得多,虽然会对训练产生较大的影响,但这种情况也仅会在很小的范围内发生。

比较全部学习曲线(蓝色=初始,橙色=20%,green=55.78%),来源:作者自创的图

结果:

从5220个可用于修剪的参数开始,减少到2309个可分割的参数。经过剪枝后,最终模型得到2471个可训练参数(使用Keras计算5380个“可训练参数”的求和差,剪枝将参数权重减小到2309个),剪枝后模型的最终测试准确度为99.2%。

总结和展望

在实际训练中,神经网络有过度参数化的倾向。对于本实验中使用的MNIST数据集中产生的问题,用到的参数比大多数架构中使用的参数数目要少。这大大节省了训练时长和算力。如本工作所示,适当的架构可以提取出足够多的信息,同时又不牺牲准确率。此外,像剪枝这样的方法可以帮助限制剩余的权重,只留下网络的重要部分,即所谓的“中奖彩票”。

参考文献

[1] Ahlawat, Savita ; Choudhary, Amit ; Nayyar, Anand ; Singh, Saurabh ; Yoon, Byungun:使用卷积神经网络改进手写数字识别(CNN)。见:传感器20号(2020年),Nr。12, S. 3344

[2] Siddique, Fathma ; Sakib, Shadman ; Siddique, Md Abu B.:;利用卷积神经网络识别手写数字,并对不同隐含层性能进行比对。见:2019年第5届先进电气工程会议(ICAEE)IEEE(Veranst.),2019, S. 541–546

[3] Frankle, Jonathan ; Carbin, Michael::彩票假说:寻找稀疏的、可训练的神经网络。见:arXiv预印本arXiv:1803.03635(2018)

[4] Goodfellow, Ian ; Bengio, Yoshua ; Courville, Aaron ; Bengio, Yoshua::深度学习。麻省理工学院出版社剑桥,2016

[5] Simonyan, Karen ; Zisserman, Andrew:用于大规模图像识别的深度卷积网络。见:arXiv预印本arXiv:1409.1556(2014)

原文标题:

How to reduce training parameters in CNNs while keeping accuracy >99%

原文链接:

https://towardsdatascience.com/how-to-reduce-training-parameters-in-cnns-while-keeping-accuracy-99-a213034a9777

编辑:王菁

校对:林亦霖

译者简介

陈之炎,北京交通大学通信与控制工程专业毕业,获得工学硕士学位,历任长城计算机软件与系统公司工程师,大唐微电子公司工程师,现任北京吾译超群科技有限公司技术支持。目前从事智能化翻译教学系统的运营和维护,在人工智能深度学习和自然语言处理(NLP)方面积累有一定的经验。业余时间喜爱翻译创作,翻译作品主要有:IEC-ISO 7816、伊拉克石油工程项目、新财税主义宣言等等,其中中译英作品“新财税主义宣言”在GLOBAL TIMES正式发表。能够利用业余时间加入到THU 数据派平台的翻译志愿者小组,希望能和大家一起交流分享,共同进步

翻译组招募信息

工作内容:需要一颗细致的心,将选取好的外文文章翻译成流畅的中文。如果你是数据科学/统计学/计算机类的留学生,或在海外从事相关工作,或对自己外语水平有信心的朋友欢迎加入翻译小组。

你能得到:定期的翻译培训提高志愿者的翻译水平,提高对于数据科学前沿的认知,海外的朋友可以和国内技术应用发展保持联系,THU数据派产学研的背景为志愿者带来好的发展机遇。

其他福利:来自于名企的数据科学工作者,北大清华以及海外等名校学生他们都将成为你在翻译小组的伙伴。

点击文末“阅读原文”加入数据派团队~

转载须知

如需转载,请在开篇显著位置注明作者和出处(转自:数据派ID:DatapiTHU),并在文章结尾放置数据派醒目二维码。有原创标识文章,请发送【文章名称-待授权公众号名称及ID】至联系邮箱,申请白名单授权并按要求编辑。

发布后请将链接反馈至联系邮箱(见下方)。未经许可的转载以及改编者,我们将依法追究其法律责任。

点击“阅读原文”拥抱组织

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-09-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据派THU 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档