当前位置:   article > 正文

深度学习 对比两张图片的差异_深度学习模型压缩方法的特点总结和对比

深度学习辨别两张图片的异同

了解用于深入学习的不同模型压缩技术的需求和特点

c6e871f40238778355842e4ff624ea98.png

不管你是计算机视觉新手还是专家,你可能听说过 AlexNet 于2012年赢得了ImageNet挑战赛。这是计算机视觉发展史上的转折点,因为它表明,深度学习模型能够以前所未有的精度完成非常困难的任务。

但是你是否知道 AlexNet有6.2千万训练参数?

另一个广为人知的模型 VGGNet 则有1.38亿训练参数,是AlexNet 的两倍之多。

我们知道,模型层数越多,那么表现的性能越好,那么是否需要关注和强调参数的数量呢?

2d54a4eae14e2fa64ce24ccddb4374e2.png

知名CNN模型的复杂度和准确度

上述模型在机器视觉领域已经是基准了。但是在现实生产场景中,是否会被人们选择部署呢?你是否在实际应用中使用这些模型?

在回答上述问题之前,我们先了解如下背景知识。 物联网装备预测在2030年将达到1.25-5千亿台套的规模,并且其中20%都带有摄像头,这是一个130亿的市场。

物联网摄像头设备包括家庭安全摄像头(如Amazon Ring和Google Nest),当您到家时会打开门或在看到未知的人时通知您,智能车辆上的摄像头可帮助您驾驶,停车场的摄像头在您进出时打开大门,物联网摄像头设备的应用场景十分广泛!其中一些物联网设备已经在某种程度上使用人工智能,而其他设备正在慢慢赶上。

d1f1641b4d35c79a90b9d7f36f312cc9.png

智能家居

许多现实场景的应用程序需要实时的设备处理能力。自动驾驶汽车就是一个很好的例子。为了使汽车在任何道路上安全行驶,他们必须实时观察道路,如果有人走在汽车前面,必须停车。在这种情况下,需要在设备上实时地处理视觉信息和做出决策。

那么,现在回到之前的问题:我们能否使用前述模型部署到生活场景中?

如果你从事的是计算机视觉领域应用和研究,你的应用程序很可能需要物联网设备。 主要的挑战是物联网设备资源受限;它们的内存有限,计算能力低。而模型中可训练的参数越多,其规模就越大。深度学习模型的计算时间随着可训练参数个数的增加而增加。此外,与较少参数的模型相比,所消耗的能量和占用的空间也越大。最终的结果是,当模型很大时,深度学习模型很难在资源受限的设备上部署。虽然这些模型已经成功地在实验室中取得了巨大的成果,但它们在许多实际应用中并不可用。

在实验室,通过昂贵的GPU可以实现模型的高效计算,但是在生产场景中,资金、能源、温度等问题使得GPU的计算方式行不通。 尽管将这些模型部署在云端能够提供高计算性能和存储使用性,但是却存在高时延的问题,因此不能满足现实应用的需求。

简而言之,人工智能需要在靠近数据源的地方进行处理,最好是在物联网设备本身进行处理!因此,我们可供选择之一就是:减少模型的规模。

在不影响准确性的前提下,制作一个能在边缘设备约束下运行的更小的模型是一个关键的挑战。因为仅仅拥有一个可以在资源受限的设备上运行的小模型是不够的,它应该无论是在准确性和计算速度方面都具有很好的性能。

接下来将介绍几种降低模型规模的方法。

剪枝(Pruning)

修剪通过删除对性能不敏感的冗余、不重要的连接来减少参数的数量。这不仅有助于减小整个模型的大小,而且节省了计算时间和能耗。

c80907585556c436d3769c6e0c0b71c4.png

剪枝

好处

· 可以在训练时和训练后执行该操作

· 可以改善给定模型的计算时间/模型规模

· 既可以用于卷积网络,也可以用于全连接层

不足

· 相较于直接修改模型结构,剪枝的效果稍逊一筹

· 对于 TensorFlow模型,往往只能减小模型规模,但是不能降低计算时间

96d2c3ef1e452695f58e6e5f2bc7ff97.png

原始模型和修剪模型的计算速度、规模差异

量化权值(Quantization)

在DNN中,权重存储为32位浮点数字。量化是通过减少比特数来表示这些权重的思想。权重可以量化为16位、8位、4位甚至1位。通过减少使用的比特数,深度神经网络的规模可以显著减小。

da2cd0572c7055b55430a9af2297dbcf.png

二进制量化

好处

· 可以在训练时和训练后执行该操作

· 既可以用于卷积网络,也可以用于全连接层

不足

· 量化权值使得神经网络更难收敛。为了保证网络具有良好的性能,需要较小的学习速率

· 量化权重使得反向传播不可行,因为梯度不能通过离散神经元反向传播。需要使用近似方法来估计损失函数相对于离散神经元输入的梯度

· TensorFlow的量化感知训练在训练过程中不做任何量化。训练期间只收集统计数据,用于量化训练后的数据。

知识蒸馏(Knowledge distillation)

在知识蒸馏中,一个大型的、复杂的模型是在一个大型数据集上训练的。当这个大的模型能够对看不见的数据进行泛化并表现良好时,它就被传输到一个较小的网络中。较大的网络模型也称为教师模型,较小的网络也称为学生网络。

ec5e0f6d5f501bfcd24e01b9f0f800a9.png

知识蒸馏

好处

· 如果你有一个预先训练好的教师网络,训练较小的(学生)网络所需的训练数据较少。

· 如果你有一个预先训练好的教师网络,训练较小的(学生)网络所需的时间很短。

· 可以缩小一个网络而不管教师和学生网络之间的结构差异。

不足

· 如果没有预先选练好的教师模型,那么训练学生模型将需要大规模的数据集和较长时间。

选择性注意(Selective Attention)

选择性注意是指把注意力集中在感兴趣的对象或元素上,而抛弃其他对象(通常是背景或其他与任务无关的对象)。它的灵感来自人眼生物学机制。当我们看东西的时候,我们一次只关注一个或几个物体,其他的区域就会模糊。

bdc2791e425cc9ca69d3f75aa6f871ad.gif

选择性注意

这就需要在你现有的人工智能系统上添加一个选择性的注意力网络。

好处

· 更短的计算时间

· 规模更小的模型(通过这一方法生成的人脸识别器只有44KB大小)

· 精度保障

不足

· 只支持从头开始的训练

低秩分解

利用矩阵/张量分解来估计信息参数。一个(m,n)维且秩为r的权矩阵A被更小维的矩阵代替。这种技术有助于将大矩阵分解成更小的矩阵。

9dabefcddcfe99227432003a3edc659b.png

低秩分解

好处

· 可被用于训练阶段和训练后

· 可被用于卷积网络,也可用于全连接层

· 用于训练阶段时,可以降低训练时间

最棒的是,所有这些技术是相辅相成的。它们可以按原样应用,也可以与一种或多种技术相结合。通过使用剪枝、量化和Huffman编码三级流水线来减小预训练模型的大小,在ImageNet数据集上训练的VGG16模型从550MB降到了11.3MB。

上面讨论的大多数技术都可以应用于预先训练的模型,作为后处理步骤,可以减小模型大小并提高计算速度。但它们也可以在训练期间使用。量化越来越受欢迎,现在已经被引入机器学习框架。我们可以预期修剪很快也会被引入流行的框架中。

在本文中,我们研究了将基于深度学习的模型部署到资源受限设备(如物联网设备)的动机,以及减小模型大小以使其适应物联网设备而不影响准确性的需求。我们还讨论了一些现代技术压缩深度学习模型的利弊。最后,我们谈到了每一种技术可以单独应用,也可以组合使用。

作者:Sabina Pokhrel

deephub翻译组 Oliver Lee

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/287754
推荐阅读
相关标签
  

闽ICP备14008679号