【科普】联邦知识蒸馏概述与思考

关注公众号,发现CV技术之美

随着深度学习与大数据的进一步发展,效果好的模型往往有着较大的规模和复杂的结构,往往计算效率与资源使用方面开销很大,无法部署到一些边缘设备、移动终端或者嵌入式设备上。因此,如何在保证模型性能的前提下减少模型的参数量以及加快模型前向传播效率,这是一个重要的问题,总的来说不同的模型压缩与加速技术具体可以分为以下四类:

1)参数剪枝与共享(Parameter pruning and sharing):参数剪枝和共享用于降低网络复杂度和解决过拟合问题。网络模型越大,参数也越多,但是可能很大一部分参数是冗余的,所以我们可以将那些对输出结果影响不大的参数减去,这样就可以使得模型运行速度更快、模型文件更小。参数共享可以参考卷积神经网络每个过滤器的权重是固定的,可以看作模板,只关注数据的某一种特性,同时可以减少参数与计算量。具体如下图1所示。

2)低秩分解和稀疏性(Low-rank factorization and sparsity):从线性代数的角度上来说,低秩矩阵每行或每列都可以用其他的行或列线性表出,其包含大量的冗余信息。低秩分解的目的在于去除冗余,并且减少权值参数,进一步来说权重向量往往分布在一些低秩子空间,所以我们可以用少量参数重建权重向量。在机器学习角度可以采用两个K*1的卷积核替换掉一个K*K的卷积核,这将减少大部分参数。具体如下图2所示。

3)传输/紧凑卷积滤波器(Transferred/compact convolutional filters):由于卷积神经网络的滤波器通过一个个卷积核进行特征提取,而较大的卷积核可以通过小型卷积核的拼凑进行替换,即一个5*5的卷积核可以通过两个3*3的卷积核代替进行特征提取。通过增加卷积核之间的约束关系来优化空间和计算,从而实现压缩卷积核、减少计算的目的。

4)知识蒸馏(Knowledge Distillation):知识蒸馏是近年来发展起来的一类模型压缩与加速技术,其主要是利用一个已经训练好的复杂模型(作为教师),将其学习到的决策信息(知识)迁移到另一个轻量级模型(作为学生)中,帮助和指导学生模型的训练。知识蒸馏旨在通过将知识从深度网络转移到小型网络来压缩和改进模型。

9dbd92c54158d885a7923c0588da5ec9.png

图1:参数剪枝与共享

  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值