MINIEYE首席科学家吴建鑫解读ICCV入选论文:用于网络压缩的滤波器级别剪枝算法ThiNet

简介: 近日,南京大学计算机科学与技术系教授、MINIEYE 首席科学家吴建鑫所在团队的一篇论文《ThiNet: 一种用于深度神经网络压缩的滤波器级别剪枝算法》被计算机视觉领域顶级国际会议 ICCV 2017 收录。

近日,南京大学计算机科学与技术系教授、MINIEYE 首席科学家吴建鑫所在团队的一篇论文《ThiNet: 一种用于深度神经网络压缩的滤波器级别剪枝算法》被计算机视觉领域顶级国际会议 ICCV 2017 收录。论文中提出了滤波器级别的剪枝优化算法,利用下一层的统计信息指导当前层的剪枝,能够在不改变原网络结构的前提下,让卷积神经网络模型在训练与预测阶段同时实现加速与压缩。ThiNet 框架具普适性,可无缝适配于现有的深度学习框架,有助于减少网络的参数与 FLOPs,同时保留原网络的精度级别。为此,机器之心对吴建鑫教授进行了采访,进一步解读 ThiNet 框架的设计思路以及背后的研究工作。

 

目前,参数冗余是神经网络领域公认的一个重要问题。如何在保持神经网络的精确度、迁移能力等各方面特性的基础上,减小神经网络模型参数的数目,也是学术界与工业界的热门研究方向。「由于网络模型过大的原因,很多情况下深度学习模型无法适用于终端用户的使用场景之中,例如 VGG 模型的硬盘空间就达到 500M 以上,应用场景也会受到相应的限制。所以,模型压缩对深度学的实际应用具有非常大的价值。」吴建鑫举例解释道。

 

除此之外,模型压缩在科研方面也具备较大的研究价值。在硬件资源普及之前,卷积神经网络并非计算机视觉领域的首选。吴建鑫回忆,在他学生时代参加学术会议时,曾与卷积神经网络之父 Yann LeCun 研究组的学生进行过交流。那时训练一个神经网络模型的代价非常高,有时甚至需要几个月的时间才能完成整个网络的训练及应用过程,那名学生还因此担心没有办法按时毕业。而随着 GPU、FPGA 等硬件计算资源与大数据资源的崛起,神经网络模型可以最大程度发挥作用,逐渐大放异彩。与此同时,业界有观点认为,快速发展硬件资源是解决神经网络问题的根本,针对模型压缩本身进行研究的科研意义不大。对此,吴建鑫持不同观点,他解释道,今年 CVPR 会议上,Uber 公司的研究人员提出的网络模型 UberNet 可以把识别、检测、分割等任务集中在一个模型里实现。不过,UberNet 对资源的消耗非常大,哪怕是在最新型 GPU 上进行单张图片的处理也需要搭配使用减少资源消耗方面的先进技术成果。「这个领域对资源消耗方面的索求速度将高于硬件发展的速度。新技术、新资源出现的同时也会带来新的问题,针对压缩网络进而降低资源消耗的研究应该齐头并进。」


压缩网络模型通常有两种思路:一是利用稀疏性对模型进行剪裁,从而达到减少模型参数数目的效果;二是由卷积神经网络的通道(channel)入手进行选择性取舍,去掉通道中的噪声或是可以被其他通道代替的部分,进而降低计算代价。ThiNet 框架的设计思路就是从通道选择的角度展开,提出了一种滤波器级别的剪枝算法,并将其定义为一个优化问题,结果在性能方面有较大的提升。据吴建鑫介绍,2014 年团队就曾针对基于熵的特征选择算法进行研究,结果发现相较模型压缩方法,在同压缩比的情况下具有更高的准确率,发表于 CVPR2015。在这个熵算法的基础上,团队在 2015 年底开始不断做出尝试和改进,最终设计出了效果更优的 ThiNet 框架。

 

在下图的 ThiNet 剪枝框架图中,先根据图中的虚线框部分判断哪些通道及其相对应的滤波器性能较弱(第一行中用黄色高亮的部分)或可以被其他通道代替。然后丢弃对网络的性能影响较小的通道及其对应的滤波器从而得到一个剪枝模型。之后再对剪枝后的模型进行微调以恢复其精度。


微信图片_20211129110518.jpg

ThiNet 框架

 

ThiNet 框架的核心是通过上一层的统计信息来指导当前层的剪枝,这也是区别于其他现有模型压缩方法的亮点。以模型的第五层为例,在针对网络模型的第五层进行压缩时,为了尽可能不影响网络模型的效果,要尽量保持第五层的输出通道不变或改变较小。由于卷积层是一种线性算子,所以可以看成是用第五层的输入(即第四层的输出)模拟其输出的线性过程。在这里,第五层的输入是可以缩减的,如果可以通过优化方法找到第五层的输入中线性组合等于零的部分并将相应的第四层输出的卷积核舍弃掉,就可以利用较少的输入得到相似的输出,换言之,在不牺牲模型效果的前提下实现压缩模型。探索线性组合的值接近于零的具体过程涉及采样训练样本、贪心算法、最小化重构误差等优化方法。

 

在这之后的微调步骤对于恢复模型的精准度也相当重要,从实验数据可以看出 ThiNet 具有相当的鲁棒性能。


微信图片_20211129110522.jpg

在 CUB-200 数据集上,微调前后的精度变化情况。

 

实验结果验证了 ThiNet 算法的有效性,其性能超过了现有的剪枝算法。

 

微信图片_20211129110525.jpg

不同选择算法的性能比较:VGG-16-GAP 模型以不同的压缩率在 CUB-200 数据集上的剪枝效果。


团队使用 ThiNet 对 VGG-16 在 ImageNet 进行剪枝,从实验数据可以发现,ThiNet 不仅能够降低 FLOPs 以及网络参数,对于 top-1 和 top-5 准确率的影响也非常小。

 

微信图片_20211129110528.jpg

这里,M/B 表示百万/十亿 (10^6/10^9);f./b. 是前向/反向的缩写,速度由 batch size=32 在一张 M40 GPU 上测试所得。


微信图片_20211129110532.jpg

与其他方法在 VGG-16 上的比较。部分工作的原文中未报告相关的准确数字,使用≈来表示相应的近似值。

 

除此之外,在 ResNet-50 上的类似实验证明,即便是对于紧凑的网络,ThiNet 也能减少超过一半的的参数与 FLOPs,而 top-5 准确度仅降低 1%。

 

微信图片_20211129110535.jpg

这里,M/B 表示百万/十亿 (10^6/10^9);f./b. 是前向/反向的缩写,速度由 batch size=32 在一张 M40 GPU 上测试所得。


另外,ThiNet 能将 VGG16 网络模型剪枝到 5.05MB 的大小,保留 AlexNet 级别的精度,却拥有更强的泛化性能。吴建鑫表示,ThiNet 框架具有通用性,可推广能力较强,能够无缝适配于现有的深度学习框架,同时不会受到硬件体系结构的限制。目前,ThiNet 框架已经在团队的图像风格迁移项目中展开相关应用。

 

吴建鑫介绍,如何在资源受限的情况下更好地研究和应用计算机视觉技术是目前团队的重点研究方向。除此之外,他认为理解现有的经典神经网络也是非常重要的一个课题。「业内各研发团队设计的新型网络结构层出不穷,相比之下,传统的神经网络模型到底是如何使用学习出来的内容,又包含了哪些信息,相关的研究和探索还比较少,我个人更愿意把这方面内容研究清楚。」

 

最后,在谈到计算机视觉落地应用时,身为 ADAS 技术研发公司 MINIEYE 首席科学家的吴建鑫肯定了深度学习在自动驾驶领域内的巨大潜力。同时他也表示,由于汽车是需要连续运行的资源受限场景,其可靠性和资源占用问题都亟待解决。虽然眼下英伟达 GPU、赛灵思 FPGA、甚至微软新开发的 HPU 等都在硬件方面给予相应的支持,软件方面各家公司也都在积极研发,不过将技术算法转化成工程上可用的产品还需要一定的时间。「高级别的自动驾驶不仅仅涉及技术的问题,还与法律法规、公众接受程度等问题相关,相比之下,辅助驾驶技术的落地发展则更为乐观。在辅助驾驶方面,无论是学术界的基础研究还是产业公司的研发进展速度都是非常快的,我相信深度学习全面落地辅助驾驶产品在不远的将来是可以预见的。」 微信图片_20211129092521.png

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
相关文章
|
2月前
|
机器学习/深度学习 人工智能
类人神经网络再进一步!DeepMind最新50页论文提出AligNet框架:用层次化视觉概念对齐人类
【10月更文挑战第18天】这篇论文提出了一种名为AligNet的框架,旨在通过将人类知识注入神经网络来解决其与人类认知的不匹配问题。AligNet通过训练教师模型模仿人类判断,并将人类化的结构和知识转移至预训练的视觉模型中,从而提高模型在多种任务上的泛化能力和稳健性。实验结果表明,人类对齐的模型在相似性任务和出分布情况下表现更佳。
70 3
|
21天前
|
机器学习/深度学习 算法 Serverless
基于WOA-SVM的乳腺癌数据分类识别算法matlab仿真,对比BP神经网络和SVM
本项目利用鲸鱼优化算法(WOA)优化支持向量机(SVM)参数,针对乳腺癌早期诊断问题,通过MATLAB 2022a实现。核心代码包括参数初始化、目标函数计算、位置更新等步骤,并附有详细中文注释及操作视频。实验结果显示,WOA-SVM在提高分类精度和泛化能力方面表现出色,为乳腺癌的早期诊断提供了有效的技术支持。
|
9天前
|
机器学习/深度学习 算法 信息无障碍
基于GoogleNet深度学习网络的手语识别算法matlab仿真
本项目展示了基于GoogleNet的深度学习手语识别算法,使用Matlab2022a实现。通过卷积神经网络(CNN)识别手语手势,如"How are you"、"I am fine"、"I love you"等。核心在于Inception模块,通过多尺度处理和1x1卷积减少计算量,提高效率。项目附带完整代码及操作视频。
|
12天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于深度学习网络的宝石类型识别算法matlab仿真
本项目利用GoogLeNet深度学习网络进行宝石类型识别,实验包括收集多类宝石图像数据集并按7:1:2比例划分。使用Matlab2022a实现算法,提供含中文注释的完整代码及操作视频。GoogLeNet通过其独特的Inception模块,结合数据增强、学习率调整和正则化等优化手段,有效提升了宝石识别的准确性和效率。
|
18天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于贝叶斯优化CNN-GRU网络的数据分类识别算法matlab仿真
本项目展示了使用MATLAB2022a实现的贝叶斯优化、CNN和GRU算法优化效果。优化前后对比显著,完整代码附带中文注释及操作视频。贝叶斯优化适用于黑盒函数,CNN用于时间序列特征提取,GRU改进了RNN的长序列处理能力。
|
29天前
|
机器学习/深度学习 算法 关系型数据库
基于PSO-SVM的乳腺癌数据分类识别算法matlab仿真,对比BP神经网络和SVM
本项目展示了利用粒子群优化(PSO)算法优化支持向量机(SVM)参数的过程,提高了分类准确性和泛化能力。包括无水印的算法运行效果预览、Matlab2022a环境下的实现、核心代码及详细注释、操作视频,以及对PSO和SVM理论的概述。PSO-SVM结合了PSO的全局搜索能力和SVM的分类优势,特别适用于复杂数据集的分类任务,如乳腺癌诊断等。
|
1月前
|
机器学习/深度学习 自然语言处理 算法
深入理解机器学习算法:从线性回归到神经网络
深入理解机器学习算法:从线性回归到神经网络
|
1月前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
垃圾识别分类系统。本系统采用Python作为主要编程语言,通过收集了5种常见的垃圾数据集('塑料', '玻璃', '纸张', '纸板', '金属'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对图像数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。然后使用Django搭建Web网页端可视化操作界面,实现用户在网页端上传一张垃圾图片识别其名称。
79 0
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
|
2月前
|
机器学习/深度学习 Web App开发 人工智能
轻量级网络论文精度笔(一):《Micro-YOLO: Exploring Efficient Methods to Compress CNN based Object Detection Model》
《Micro-YOLO: Exploring Efficient Methods to Compress CNN based Object Detection Model》这篇论文提出了一种基于YOLOv3-Tiny的轻量级目标检测模型Micro-YOLO,通过渐进式通道剪枝和轻量级卷积层,显著减少了参数数量和计算成本,同时保持了较高的检测性能。
43 2
轻量级网络论文精度笔(一):《Micro-YOLO: Exploring Efficient Methods to Compress CNN based Object Detection Model》
|
2月前
|
机器学习/深度学习 编解码 算法
轻量级网络论文精度笔记(三):《Searching for MobileNetV3》
MobileNetV3是谷歌为移动设备优化的神经网络模型,通过神经架构搜索和新设计计算块提升效率和精度。它引入了h-swish激活函数和高效的分割解码器LR-ASPP,实现了移动端分类、检测和分割的最新SOTA成果。大模型在ImageNet分类上比MobileNetV2更准确,延迟降低20%;小模型准确度提升,延迟相当。
75 1
轻量级网络论文精度笔记(三):《Searching for MobileNetV3》
下一篇
DataWorks