目的:使得network变小,用于较小的设备当中。

模型压缩(Network Pruning):因为模型中有的权重或神经元没有起到作用。

1.训练一个大的网络。

2.评价网络中weight和neruon的重要性。

可以利用 L1,L2评价weight。如果该weight接近于0则说明该weight重要性不大。如果神经元的输出为0,也可以理解为该神经元不重要。

3.移除不重要的weight和不重要的neruon。

4.移除之后,拿到原来的数据集下进行fine-tune

神经网络模型可以理解为多个小模型的集合,可以把它看作一个继承模型。大的模型效果好主要是其中存在一个小模型可以实现很好的效果。因此模型压缩可以理解为在找大模型中效果最好的小模型。

知识蒸馏(Knowledge Distillation):一个大的网络(teacher net),一个小的网络(student net).让小网络的输出尽量和大网络的输出相同。

为了让 student net 更轻易的学到 teacher net 的输出分布,在两个网络的最后一层不使用 softmax(因为通过softmax的输出和label一样的,对student net 没有意义)。

减少模型参数的trick: 在两层之间插入一个线性层,但这样可能会限制网络的能力。

总结:

Network Pruning: 将network不重要的weight和neuron进行删除,再重新train一次。

原因:大的NN有很多冗余的参数,而小的NN很难train,那就用大NN删成小NN就好了。

Knowledge Distillation:利用一个已经学好的大model来教小model如何做好任务。

原因:让学生直接作对题太难,让学生看老师如何做题的

应用:通常只用在classification, 而且学生只能从头学起。

Architecture Design: 利用更少的参数达到原本某些layer的效果。

原因:有些layer可能参数很冗余,比如DNN

应用:直接套新的model,或利用新的layer来模拟旧的layer。

Parameter Quantization(参数量化):将原本NN常用的计算单位:float32/float64压缩为更小的单位。

原因:对于NN来说,小数点后面好多位的数字其实意义不大。

模型压缩与数据蒸馏(笔记)相关推荐

  1. 【AI不惑境】模型压缩中知识蒸馏技术原理及其发展现状和展望

    大家好,这是专栏<AI不惑境>的第十一篇文章,讲述知识蒸馏相关的内容. 进入到不惑境界,就是向高手迈进的开始了,在这个境界需要自己独立思考.如果说学习是一个从模仿,到追随,到创造的过程,那 ...

  2. 模型压缩一-知识蒸馏

    一.知识蒸馏简介 知识蒸馏是模型压缩方法中的一个大类,是一种基于"教师-学生网络(teacher-student-network)思想"的训练方法, 其主要思想是拟合教师模型(te ...

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

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

  4. 模型压缩之量化入门笔记||量化基本公式的理解||量化过程可视化||LSQ公式理解

    文章目录 公式介绍 量化零点 z z z 在离散化过程中的作用 量化尺度 s s s 在离散化过程中的作用 量化尺度 s s s 和量化零点 z z z 联合作用 公式介绍   本人初入模型量化的坑, ...

  5. 【深度学习之模型优化】模型剪枝、模型量化、知识蒸馏概述

    前言 模型部署优化这个方向其实比较宽泛.从模型完成训练,到最终将模型部署到实际硬件上,整个流程中会涉及到很多不同层面的工作,每一个环节对技术点的要求也不尽相同.但本质的工作无疑是通过减小模型大小,提高 ...

  6. 【模型压缩】谷歌高被引知识蒸馏论文笔记

    论文名称:Distilling the Knowledge in a Neural Network 论文下载:https://arxiv.org/abs/1503.02531 论文作者:Geoffre ...

  7. 模型压缩与蒸馏!BERT家族的瘦身之路

    点击上方,选择星标,每天给你送干货! 作者 | 许明 整理 | NewBeeNLP公众号 之前我们讨论了『模型压缩与蒸馏!BERT的忒修斯船』,算是一个开篇.本文继续讨论关于模型蒸馏(Distilli ...

  8. 【视频课】深度掌握模型剪枝+模型量化+知识蒸馏3大核心模型压缩技术理论!...

    前言 欢迎大家关注有三AI的视频课程系列,我们的视频课程系列共分为5层境界,内容和学习路线图如下: 第1层:掌握学习算法必要的预备知识,包括Python编程,深度学习基础,数据使用,框架使用. 第2层 ...

  9. 知识蒸馏相关技术【模型蒸馏、数据蒸馏】以ERNIE-Tiny为例

    1.任务简介 基于ERNIE预训练模型效果上达到业界领先,但是由于模型比较大,预测性能可能无法满足上线需求. 直接使用ERNIE-Tiny系列轻量模型fine-tune,效果可能不够理想.如果采用数据 ...

最新文章

  1. 访问数据库_访问数据库
  2. 多元化谋定美国农业巨头-丰收节贸易会:四大粮商曲折历程
  3. JavaScript面向对象编程深入分析
  4. gorm preload 搜索_文件太多忘记了文件放在什么地方?那你可以试试这款文件搜索工具...
  5. php暂停循环,在特定数量的递归循环后,PHP停止执行
  6. gradient设置上下渐变_PaintCode Mac使用教程:如何使用渐变色
  7. 华平助广东海事局构建水上搜救应急指挥系统
  8. 11dayC语言指针-指针变量
  9. java contains性能_java – 使用whereArrayContains进行搜索的效率
  10. Oracle v$session_longops 视图说明
  11. 点击类名方法名如何连接到相应的Android源代码
  12. 拓端tecdat|R语言用关联规则和聚类模型挖掘处方数据探索药物配伍中的规律
  13. 持久化消息队列memcacheq的安装配置
  14. 【2019杭电多校第七场1011=HDU6656】Kejin Player(期望dp+递推+逆元)
  15. Synergy两台电脑使用同一个鼠标和键盘
  16. 主机ping虚拟机ip请求超时解决办法
  17. 杰里695N系列(soundbox)之 1.0 SDK快速入门(1)
  18. jquery怎么读(jquery怎么读音英语)
  19. Spring——Spring两大特性:IOC+AOP
  20. ubuntu的防火墙 ufw

热门文章

  1. 新ipad 充电测试软件,你的充电器能喂饱新iPad Pro吗?新iPad Pro充电大对决
  2. 嘿Siri,有人举报说你监听我了。
  3. 阿里云服务产品清单和简介--截至20141024
  4. 大数据时代的时序数据 陈超-互联网技术联盟-专题视频课程
  5. Real-World Super-Resolution via Kernel Estimation and Noise Injection ---2020.08.10
  6. mysql怎么禁止输出文件_MySQL禁止导出文件时写WebShell的方法 | kTWO-个人博客
  7. 使用跨平台的visual studio code 进行python 开发
  8. 滚珠开关和震动开关的区别
  9. spring boot框架三分钟入门
  10. android 6.0蓝牙,Android 6.0 蓝牙搜索不到设备原因,MIUI权限申请机制方法