大家好,欢迎来到专栏《AutoML》,在这个专栏中我们会讲述AutoML技术在深度学习中的应用,这一期讲述在知识蒸馏中的应用。

作者&编辑 | 言有三

上一期给大家介绍了AutoML技术在模型量化中的应用,而知识蒸馏作为模型压缩的另外一个技术,也是学术界和工业界的重点研究方向,今天给大家介绍AutoML在模型蒸馏中的应用思路。

1 N2N Learning

N2N learning是一个知识蒸馏框架,它使用增强学习算法来将teacher模型转化为student模型,框架结构如下:

N2N learning基于一个假设,即一个教师网络转化成学生网络的过程可以看作是马尔可夫决策过程Markov Decision Process(MDP),当前的步骤只和有限的之前几步有关系,使用增强学习来进行优化,其基本概念如下:

状态S:将网络的架构作为状态,对于任何一个大的网络,采样后比它小的网络都很多,所以状态空间非常大。

动作A与状态转换T:包括层的缩减以及移除操作。这一个过程通过双向LSTM来实现,它会观察某一层与前后层的关系,学习到是否进行约减或者删除。

奖励r:模型压缩的目标是保证精度的同时尽可能压缩模型,因此reward就是压缩率。

在上图结构中中包括了两个动作,实际进行优化时依次进行:

(1) 首先选择一组动作,用来判断当前层的去留;

(2) 然后使用另一个策略选择一组动作,用来决定剩下每一层的裁剪程度,伪代码流程如下:

以上两种动作使用的LSTM也有差异,下图(a)是层的去留使用的LSTM,可以看出是一个双向的LSTM,要同时考虑前向和反向的中间状态。

下图(b)是层的裁剪使用的LSTM,可以看出是一个单向的LSTM,其中at的值范围是[0.1,0.2,...,1],表示压缩率。

而奖励reward公式如下:

其中C表示压缩率,A表示学生模型准确率,Ateacher表示教师模型准确率,教师网络的输出作为学生网络的真值。

损失函数包括两项,分别是学生网络的分类损失以及蒸馏损失,其中蒸馏损失中教师网络的输出作为学生网络的真值,使用L2距离。

实验结果如下:

从结果来看,实现了非常高的压缩率,并且性能下降不明显。

2 关于模型优化

如果说要我在深度学习这么多方向里选择一个的话,我会毫不犹豫地选择模型优化。公众号写过很多的模型解读了,如下是一些文章总结和直播链接以及资源下载。

【完结】总结12大CNN主流模型架构设计思想

「总结」言有三&天池深度学习模型设计直播汇总,赠超过200页课件

知识星球也有一个模型结构1000变板块,比公众号的内容更深更广。其中的模型优化部分主要包括紧凑模型的设计,剪枝,量化以及知识蒸馏等内容的详细解读,感兴趣可以移步。

[1] Ashok A , Rhinehart N , Beainy F , et al. N2N Learning: Network to Network Compression via Policy Gradient Reinforcement Learning[C]// ICLR 2018. 2017.

总结

本次我们简单介绍了AutoML在知识蒸馏中的一个经典案例,更多知识蒸馏与模型优化,AutoML的内容,请大家移步有三AI知识星球长期学习。

有三AI知识星球

知识星球是有三AI的付费内容社区,里面包括各领域的模型学习,数据集下载,公众号的付费图文原稿,技术总结PPT和视频,知识问答,书籍下载,项目推荐,线下活动等资源,了解详细请阅读以下文章:

【杂谈】有三AI知识星球一周年了!为什么公众号+星球才是完整的?

【杂谈】万万没想到,有三还有个保密的‘朋友圈’,那里面都在弄啥!

转载文章请后台联系

侵权必究

往期精选

  • 【AutoML】如何选择最合适的数据增强操作

  • 【AutoML】激活函数如何进行自动学习和配置

  • 【AutoML】归一化(Normalization)方法如何进行自动学习和配置

  • 【AutoML】优化方法可以进行自动搜索学习吗?

  • 【AutoML】损失函数也可以进行自动搜索学习吗?

  • 【AutoML】如何使用强化学习进行模型剪枝?

  • 【AutoML】强化学习如何用于模型量化?

  • 【AutoML】当前有哪些可用的AutoML平台?

  • 【星球知识卡片】残差网络家族10多个变种学习卡片,请收下!

  • 【星球知识卡片】移动端高效率的分组网络都发展到什么程度了?

  • 【星球知识卡片】注意力机制发展如何了,如何学习它在各类任务中的应用?

  • 【星球知识卡片】模型剪枝有哪些关键技术,如何对其进行长期深入学习

  • 【星球知识卡片】模型量化的核心技术点有哪些,如何对其进行长期深入学习

【AutoML】强化学习如何用于模型蒸馏?相关推荐

  1. 【AutoML】强化学习如何用于模型量化?

    大家好,欢迎来到专栏<AutoML>,在这个专栏中我们会讲述AutoML技术在深度学习中的应用,这一期讲述在模型量化中的应用. 作者&编辑 | 言有三 上一期给大家介绍了AutoM ...

  2. 【AutoML】强化学习如何用于自动模型设计(NAS)与优化?

    大家好,欢迎来到专栏<AutoML>,在这个专栏中我们会讲述AutoML技术在深度学习中的应用,这一期讲述强化学习用于模型设计和优化的核心技术. 作者&编辑 | 言有三 一直以来, ...

  3. 「AutoML」强化学习如何用于自动模型设计(NAS)与优化?

    作者&编辑 | 言有三 一直以来,网络结构的设计是一个非常需要经验且具有挑战性的工作,研究人员从设计功能更加强大和更加高效的模型两个方向进行研究,随着各类经典网络设计思想的完善,如今要手工设计 ...

  4. 乔治亚理工提出基于GAN的强化学习算法用于推荐系统

    Generative Adversarial User Model for Reinforcement Learning Based Recommendation System Xinshi Chen ...

  5. 初探强化学习(7)基于模型的强化学习的应用综述

    本文是直接翻译一篇文章的,我先把原文地址放在这里. 原文名字为:Survey of Model-Based Reinforcement Learning: Applications on Roboti ...

  6. [论文]基于强化学习的无模型水下机器人深度控制

    基于强化学习的无模型水下机器人深度控制 摘要 介绍 问题公式 A.水下机器人的坐标框架 B.深度控制问题 马尔科夫模型 A.马尔科夫决策 B.恒定深度控制MDP C.弯曲深度控制MDP D.海底追踪的 ...

  7. 初探强化学习(6)到底TMD什么是model-based和model-free(基于模型的强化学习和基于模型的强化学习 TMD的到底是什么)

    0 如何定义无模型和有模型 Model-based和Model-free方法对比 Model-based: 一旦model学好后,就是采用On-Policy的算法: 一旦model学好后,就不需要与真 ...

  8. 基于模型的强化学习比无模型的强化学习更好?错!

    作者 | Carles Gelada and Jacob Buckman 编辑 | DeepRL 来源 | 深度强化学习实验室(ID:Deep-RL) [导读]许多研究人员认为,基于模型的强化学习(M ...

  9. ICML 2018 | 从强化学习到生成模型:40篇值得一读的论文

    https://blog.csdn.net/y80gDg1/article/details/81463731 感谢阅读腾讯AI Lab微信号第34篇文章.当地时间 7 月 10-15 日,第 35 届 ...

最新文章

  1. linux运维的发展方向
  2. 你真的会使用assert吗?
  3. threejs 三面体_如何在Three.js中构造空心圆柱体
  4. 动态规划训练15 [Monkey and Banana HDU - 1069 ]
  5. epoll实现高并发聊天室
  6. 框架笔记:记录XLua的简单接入
  7. 想学 AI,先搞懂这件小事!
  8. ebook site
  9. Atitit js es5 es6新特性 attilax总结
  10. CPU卡密钥管理系统
  11. android o car模块,CarPlay for Android: Bonjour 及 插件源码移植问题分析
  12. JUnit4 Note (尚学堂马士兵)
  13. ubuntu 安装osx 主题 转自linux公社
  14. Javaweb的初级(Servlet接口)
  15. JS仿写刮刮乐小例子
  16. 通过you-get在哔哩哔哩下载视频报错处理
  17. Dell 笔记本电脑BIOS详细解读
  18. python判断回文序列_怎么用python3代码检查回文序列?
  19. amd显卡驱动目录linux,安装ATI Linux显卡驱动
  20. 鲁大师html5是什么,鲁大师怎么样

热门文章

  1. 21 岁理工男开源的这个编辑器火了!
  2. 新同事上来就把项目性能优化了一遍,瑟瑟发抖。。。
  3. 堆和堆傻傻分不清?一文告诉你 Java 集合中「堆」的最佳打开方式
  4. struts2 的form 标签theme属性
  5. 02--MySQL自学教程:数据库MySQL纯净卸载
  6. python创建文件夹 覆盖_Python 创建新文件时避免覆盖已有的同名文件的解决方法...
  7. eclipse怎么创建web项目html,eclipse入门之创建第一个web程序(jsp测试环境)
  8. 遍历同辈节电的方法_jQuery遍历
  9. springboot redis 断线重连_Redis复制:部分同步PSYNC详解
  10. windows密钥连接linux,windows使用密钥登录linux