• 边缘人工智能的模型压缩技术


    深度学习在模型及其数据集方面正以惊人的速度增长。在应用方面,深度学习市场以图像识别为主,其次是光学字符识别,然后是面部和物体识别。根据 Allied Market Research 的数据,2020 年全球深度学习市场价值 68.5 亿美元,预计到 2030 年将达到 1799.6 亿美元,2021 年至 2030 年的复合年增长率为 39.2%。 

    曾几何时,人们认为大型和复杂的模型性能更好,但现在这几乎是一个神话。随着边缘 AI 的发展,越来越多的技术将大型复杂模型转换为可以在边缘运行的简单模型,所有这些技术结合起来执行模型压缩。

    什么是模型压缩?
    模型压缩是在计算能力和内存较低的边缘设备上部署 SOTA(最先进的)深度学习模型的过程,同时不会影响模型在准确性、精确度、召回率等方面的性能。模型压缩广泛地减少了模型中的两件事,即。大小和延迟。Size reduction 侧重于通过减少模型参数使模型更简单,从而减少执行中的 RAM 需求和内存中的存储需求。减少延迟是指减少模型进行预测或推断结果所花费的时间。模型大小和延迟通常在一起,大多数技术都会减少两者。

    流行的模型压缩技术
    修剪
    修剪是最流行的模型压缩技术,它通过删除冗余和无关紧要的参数来工作。神经网络中的这些参数可以是连接器、神经元、通道,甚至层。它很受欢迎,因为它同时减小了模型的大小并改善了延迟。

    修剪

    修剪可以在我们训练模型甚至训练后进行。有不同类型的剪枝技术,包括权重/连接剪枝、神经元剪枝、过滤器剪枝和层剪枝。

    量化
    当我们在修剪中移除神经元、连接、过滤器、层等以减少加权参数的数量时,权重的大小在量化过程中会减小。在此过程中,较大集合中的值将映射到较小集合中的值。与输入网络相比,输出网络的值范围更窄,但保留了大部分信息。有关此方法的更多详细信息,您可以在此处阅读我们关于 模型量化的深入文章。

    知识蒸馏
    在知识蒸馏过程中,我们在一个非常大的数据集上训练一个复杂的大型模型。在对大型模型进行微调后,它可以很好地处理看不见的数据。一旦实现,这些知识就会转移到更小的神经网络或模型中。使用教师网络(较大模型)和学生网络(较小模型)。这里存在两个方面,知识蒸馏,我们不调整教师模型,而在迁移学习中,我们使用精确的模型和权重,在一定程度上改变模型,并针对相关任务进行调整。

    图表描述自动生成

    知识蒸馏系统

    知识、蒸馏算法和师生架构模型是一个典型的知识蒸馏系统的三个主要部分,如上图所示。

    低矩阵分解
    矩阵构成了大部分深度神经架构。该技术旨在通过应用矩阵或张量分解并将它们变成更小的矩阵来识别冗余参数。当应用于密集 DNN(深度神经网络)时,该技术降低了 CNN(卷积神经网络)层的存储要求和因式分解,并缩短了推理时间。具有二维且秩为 r 的权重矩阵 A 可以分解为更小的矩阵,如下所示。

     
     

    低矩阵分解

    模型的准确性和性能在很大程度上取决于适当的因式分解和等级选择。低秩分解过程的主要挑战是更难实现并且计算量大。总的来说,与满秩矩阵表示相比,密集层矩阵的分解会导致更小的模型和更快的性能。

    由于边缘 AI,模型压缩策略变得非常重要。这些方法相互补充,可以跨整个 AI 流水线的各个阶段使用。TensorFlow 和 Pytorch 等流行框架现在包含剪枝和量化等技术。最终,该领域使用的技术数量将会增加。

    人工智能

  • 相关阅读:
    数说故事×北拓资本:AI技术与数据产业的未来展望
    转铁蛋白靶向肽标记PEG化磷脂DSPE-PEG-T7(HAIYPRH)
    嵌入式Linux应用开发基础知识(四)——Makefile语法
    Java字符串(String类)
    【uniapp/uview】u-datetime-picker 选择器的过滤器用法
    C++ Day4
    Python-Sqlalchemy(ORM数据库框架)
    Android原生插件开发-环境篇
    【ESP32_8266_WiFi (四)】闪存文件系统基本操作
    Netty客户端与服务器端闲暇检测与心跳检测(三)
  • 原文地址:https://blog.csdn.net/wouderw/article/details/127894933