• 回答数

    0

  • 浏览数

    2814

  • 收藏数

    0

作者:kepu1126 发表于 2020-10-23 09:47:04
跳转到指定楼层
近年来,随着人工智能的不断兴起,深度神经网络已经被广泛应用在计算机视觉、自然语言处理、语音识别等多个领域,并取得了巨大的成功。但是随着网络结构的复杂化,网络结构越来越深,模型参数越来越多,神经网络模型需要消耗大量的计算资源和存储空间,严重制约了深度神经网络在资源有限的应用环境和实时在线处理的应用上的发展。

如何在尽量不损失复杂深度神经网络模型的性能的情况下,对模型进行压缩与加速从而有效减小模型的计算量和存储空间,成为了深度神经网络模型有效利用的一个重要问题。因此,在汉斯出版社《计算机科学与应用》期刊中,有论文介绍了基于知识蒸馏的神经网络模型压缩方法,对深度神经网络知识蒸馏领域的相关代表性工作进行了详细的梳理与总结,并对知识蒸馏未来发展趋势进行展望。

知识蒸馏是一种常见的模型压缩方法,其将复杂模型或多个模型集成学习到的知识迁移到另一个轻量级的模型之中,使得模型变轻量的同时尽量不损失性能。典型的深度神经网络知识蒸馏,将原始较大的或者集成的深度网络称为教师网络,用于获取知识;将轻量级的模型称为学生网络,用于接收教师网络的知识,并且训练后可用于前向预测。

在深度学习中,一般将网络隐藏层的输出看作模型所学习到的特征。基于中间结果层的模型蒸馏方法利用网络中间隐藏层学习到的特征作为知识,指导学生模型学习。

从分类的决策边界角度分析,一个关键的问题是分类边界样本的分类问题。简单的小模型真正的弱点在于对边界样本的分类困难,而大模型处理边界的能力优于小模型,因此可以利用学生模型学习教师模型的边界分布,从而实现对教师模型的蒸馏。

根据学习方式的不同,深度神经网络蒸馏方法又可分为基于自我学习的蒸馏方法和基于对抗学习的蒸馏方法。基于自我学习的蒸馏方法不同于传统的教师–学生形式的拟合教师蒸馏框架,自蒸馏不是训练学生网络去拟合教师网络的输出,而是在网络内部对知识进行蒸馏。

基于对抗学习的蒸馏方法利用生成对抗网络(GAN)来进行模型蒸馏。有学者提出一种使用生成对抗网络进行知识蒸馏的方法,利用条件对抗网络来学习损失函数,以实现知识从教师网络到学生网络的转移。

现阶段深度神经网络知识蒸馏方法大多针对模型结构进行蒸馏,考虑在许多实际应用场景中,不仅有计算资源和存储空间的限制,还存在着在线和离线特征不一致的问题。知识蒸馏方向未来的发展不仅要对复杂深度学习模型的结构进行蒸馏,还应该考虑对模型的输入特征进行蒸馏,利用教师模型将在线计算阶段难以获取到的特征直接蒸馏到学生模型中,使得学生模型在线预测时不需要加入离线特征,从而减少学生模型的特征输入并提升模型性能。

分享:
回复

使用道具

成为第一个回答人

高级模式 评论
您需要登录后才可以回帖 登录 | 立即注册 微信登录
关于作者
kepu1126

用户组:资深会员

  • 主题

    897

  • 帖子

    897

  • 关注者

    2