什么是知识蒸馏?

近年来,神经模型在几乎所有领域都取得了成功,包括极端复杂的问题。然而,这些模型体积巨大,有数百万(甚至数十亿)个参数,因此不能部署在边缘设备上。

知识蒸馏指的是模型压缩的思想,通过一步一步地使用一个较大的已经训练好的网络去教导一个较小的网络确切地去做什么。“软标签”指的是大网络在每一层卷积后输出的feature map。然后,通过尝试复制大网络在每一层的输出(不仅仅是最终的损失),小网络被训练以学习大网络的准确行为。

我们为什么需要这样做?

深度学习在计算机视觉、语音识别、自然语言处理等众多领域取得了令人难以置信的成绩。然而,这些模型中的大多数在移动电话或嵌入式设备上运行的计算成本太过昂贵。要了解更多关于模型压缩的需求和涉及的常见技术,请访问下面的博客:https://towardsdatascience.com/machine-learning-models-compression-and-quantization-simplified-a302ddf326f2。

这样和从头训练一个模型有什么不一样?

显然,模型越复杂,理论搜索空间越大。但是,如果我们假设较小的网络也能实现相同(甚至相似)的收敛,那么教师网络的收敛空间应该与学生网络的解空间重叠。

不幸的是,仅凭这一点并不能保证学生网络收敛在同一点。学生网络的收敛点可能与教师网络有很大的不同。但是,如果引导学生网络复制教师网络的行为(教师网络已经在更大的解空间中进行了搜索),则其预期收敛空间会与原有的教师网络收敛空间重叠。

教师学生网络 — 到底如何工作?

  1. 训练教师网络:首先使用完整数据集分别对高度复杂的教师网络进行训练。这个步骤需要高计算性能,因此只能在离线(在高性能gpu上)完成。

一个高度复杂和深度的网络可以用作教师网络的例子:GoogleNet

  1. 构建对应关系:在设计学生网络时,需要建立学生网络的中间输出与教师网络的对应关系。这种对应关系可以直接将教师网络中某一层的输出信息传递给学生网络,或者在传递给学生网络之前进行一些数据增强。

构建对应关系的例子

  1. 通过教师网络前向传播:教师网络前向传播数据以获得所有中间输出,然后对其应用数据增强(如果有的话)。

  2. 通过学生网络反向传播:现在利用教师网络的输出和学生网络中反向传播误差的对应关系,使学生网络能够学会复制教师网络的行为。

下一步工作?

对于上述传统的学生教师,有很多新的修改建议,比如引入多名教师(即将集成网络转换为单一网络),引入助教(教师先教助教,助教再教学生)等。然而,该领域还很年轻,在许多维度上还未被探索。

深度学习模型——知识蒸馏相关推荐

  1. 【轻量化深度学习】知识蒸馏与NLP语言模型的结合

    Knowledge Distillation Student : Wenxuan Zeng School : University of Electronic Science and Technolo ...

  2. 深度学习 模型压缩之知识蒸馏

    知识蒸馏 知识蒸馏 蒸馏方式 离线蒸馏 在线蒸馏 自我蒸馏 蒸馏算法 对抗蒸馏 多教师蒸馏 跨模态蒸馏 图蒸馏 无数据蒸馏 量化蒸馏 深度交互学习(Deep Mutal Learning) Demo ...

  3. 深度学习入门知识整理-训练技巧以及模型调优

    目录 网络模型先简单后复杂 确认模型损失 检查中间输出和连接 关于可视化神经网络的主要方法,Faizan Shaikh 举出了三个例子: 超参数的选择 学习率范围侧视图Colab Notebook N ...

  4. 解析KDTCN:知识图谱和深度学习模型联合实现股票预测

    背景概述 今天看了一篇论文我觉得挺有意思,一方面是讲的股票预测相关,另一方面是把深度学习和知识图谱相结合解决一个问题.通常知识图谱和深度学习很少有交集,一般是独立发展的两个人工智能领域解决问题的手段, ...

  5. 【深度学习基础知识 - 21】加快模型训练速度的方法

    在深度学习任务中,虽然可以通过堆叠参数.设计更复杂的结构来提高模型的表征能力,但这也会导致模型的计算量增加,训练时间延长,大大降低模型的产出效率.这篇文章根据博主的经验简单介绍一些加快模型训练速度的方 ...

  6. 【Roofline 推理速度】影响深度学习模型推理速度的因素及相关基础知识

    文章目录 1 问题分析 2 计算平台角度分析 2.1 算力 π 2.2 带宽 β\betaβ 2.3 计算强度上限 ImaxI_{max}Imax​ 3 模型自身的性能评价指标 3.1 计算量与参数量 ...

  7. 深度学习模型轻量化(下)

    深度学习模型轻量化(下) 2.4 蒸馏 2.4.1 蒸馏流程 蒸馏本质是student对teacher的拟合,从teacher中汲取养分,学到知识,不仅仅可以用到模型压缩和加速中.蒸馏常见流程如下图所 ...

  8. 深度学习模型压缩与加速综述!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:Pikachu5808,编辑:极市平台 来源丨https://zh ...

  9. 深度学习模型压缩与加速综述

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 导读 本文详细介绍了4种主流的压缩与加速技术:结构优化.剪枝.量化 ...

最新文章

  1. MySQL视图的创建、修改与删除
  2. 什么是Unwind segues,您如何使用它们?
  3. 计算硼原子的基态能级B---交换能
  4. Fibonacci数列第n项的log(n)算法
  5. 04.MyBatis别名的设置和类型转换器
  6. Linux程序包管理2
  7. cuda 图片拆分_急需,PDF怎么拆分啊?
  8. Linux内核源代码分析——插入之后会发生什么?
  9. matlab的取数组末尾n个元素的切片方法
  10. 深度linux如何打开exe文件,在deepin中简单粗暴地执行exe程序
  11. linux 编译java文件 执行class文件
  12. JS正则表达式(5) = 正则的捕获方法
  13. 修改intellij IDEA 项目编码
  14. excel 文件加密
  15. 关于如何设置收藏本站和设为首页
  16. JAVAScript实现人民币大小写转换算法
  17. 【C语言】生成3的乘方表
  18. c语言blue的大写字母,26个大写字母正确读法
  19. 微信开放平台开发(2) 网站应用微信登录
  20. 单位阶跃信号是周期信号吗_教授科普,信号不满格,网速就会慢吗?

热门文章

  1. 全国计算机比赛ccf比赛时间,2019年全国青少年信息学奥林匹克相关通知
  2. 程序员的算法趣题Q05: 硬币兑换
  3. 解决Chrome浏览器启动页被劫持篡改为360
  4. 客单价3000一周热卖1000万!又有哪些快手神奇商品爆单了?
  5. 安卓11来了,快!扶我起来
  6. 强大的Excel 的 VBA
  7. (实验一)十进制整数的原反补移码实现
  8. 扫地机器人的轮子困住_扫地机器人被“困住”的解决办法
  9. 网络角斗士棋竞技对战平台
  10. Android面试问答题