深度学习在模型及其数据集方面正以惊人的速度增长。在应用方面,深度学习市场以图像识别为主,其次是光学字符识别,以及面部和物体识别。根据 Allied Market Research 的数据,2020 年全球深度学习市场价值 68.5 亿美元,预计到 2030 年将达到 1799.6 亿美元,2021 年至 2030 年的复合年增长率为 39.2%。
曾经有人认为大型复杂模型性能更好,但现在这几乎是一个神话。随着边缘人工智能的发展,越来越多的技术出现将大型复杂模型转换为可以在边缘运行的简单模型,所有这些技术结合起来执行模型压缩。
什么是模型压缩?
模型压缩是在计算能力和内存较低的边缘设备上部署 SOTA(最先进的)深度学习模型的过程,同时不会影响模型在准确度、精确度、召回率等方面的性能。模型压缩广泛地减少了模型中的两件事,即。大小和延迟。尺寸缩减侧重于通过减少模型参数使模型更简单,从而减少执行中的 RAM 需求和内存中的存储需求。延迟减少是指减少模型进行预测或推断结果所花费的时间。模型大小和延迟通常同时存在,大多数技术都会降低两者。
流行的模型压缩技术
修剪
剪枝是最流行的模型压缩技术,它通过删除冗余和无关紧要的参数来工作。神经网络中的这些参数可以是连接器、神经元、通道,甚至是层。它很受欢迎,因为它同时减小了模型的大小并改善了延迟。
修剪
修剪可以在我们训练模型甚至训练后进行。有不同类型的剪枝技术,包括权重/连接剪枝、神经元剪枝、过滤器剪枝和层剪枝。
量化
当我们在剪枝中移除神经元、连接、过滤器、层等以减少加权参数的数量时,权重的大小在量化期间会减小。在此过程中,将大集合中的值映射到较小集合中的值。与输入网络相比,输出网络的取值范围更窄,但保留了大部分信息。有关此方法的更多详细信息,您可以在此处阅读我们关于模型量化的深入文章。
知识蒸馏
在知识蒸馏过程中,我们在一个非常大的数据集上训练一个复杂而大的模型。在对大型模型进行微调后,它可以很好地处理看不见的数据。一旦实现,这些知识就会转移到更小的神经网络或模型中。教师网络(较大的模型)和学生网络(较小的模型)都被使用。这里存在两个方面,即知识蒸馏,我们不调整教师模型,而在迁移学习中,我们使用精确的模型和权重,在一定程度上改变模型,并针对相关任务进行调整。
知识蒸馏系统
知识、蒸馏算法和师生架构模型是典型知识蒸馏系统的三个主要部分,如上图所示。
低矩阵分解
矩阵构成了大多数深度神经架构的主体。该技术旨在通过应用矩阵或张量分解并将它们变成更小的矩阵来识别冗余参数。当应用于密集DNN(深度神经网络)时,这种技术降低了 CNN(卷积神经网络)层的存储要求和分解,并提高了推理时间。具有二维和秩 r 的权重矩阵 A 可以分解为更小的矩阵,如下所示。
低矩阵分解
模型的准确性和性能高度依赖于适当的分解和等级选择。低秩分解过程的主要挑战是更难实现并且计算量很大。总体而言,与全秩矩阵表示相比,密集层矩阵的因式分解导致模型更小,性能更快。
由于边缘人工智能,模型压缩策略变得非常重要。这些方法相互补充,可用于整个 AI 管道的各个阶段。TensorFlow 和 Pytorch 等流行框架现在包括修剪和量化等技术。最终,该领域使用的技术数量将会增加。