知识蒸馏 Knowledge distillation(学习笔记)

知识蒸馏概述

蒸馏:把大的 复杂的东西变成小的纯净的东西

在知识蒸馏中 大的模型为 教师模型(teacher)臃肿 集成 牛逼 复杂的

                       小的       为 学生模型(student)小的精干的 轻量化

这里有一个知识的迁移

因为落地实现的终端边缘设备的算计十分有限

所以急需 将一个大的优秀的模型 压缩成一个小巧精干的轻量化 模型

这张图它背后的含义是预训练的大模型的增长速率时很恐怖的 比摩尔定律还大

而我们小设备的算力提升是很受限的,所以这个 知识蒸馏技术 就显得尤为重要

然而目前而言 要想调用大模型的功能 

就把大模型放在云端,通过api来调用(就会面临网络延迟网络的一系列问题)

  

 轻量化技术

1.压缩已经训练好的模型

知识蒸馏 权值量化 剪枝(权重剪枝 通道剪枝(结构化剪枝 非结构化剪枝)) 注意力迁移

2.直接设计训练轻量化网络

3加速卷积运算 (数值运算)

4.硬件部署

NIPS 2014 

Hinton (AI 教父)Jeff Dean(谷歌天才程序员)

如何让教师网络把知识教给学生网络

hard targets      soft targets

马 1                      马 0.7

驴 0                      驴 0.25

汽车 0                 汽车 0.05

hard targets 用来训练教师网络,缺点是不能反映出马和驴的相似之处

而soft targets课传递更多的信息供学生网络学习

 这里的hard targets 更像是死板的教科书

soft targets 就像是老师 能教授更多知识

所以 soft targets 用来训练学生网络

 

而知识蒸馏需要设定一个蒸馏温度 T 

当T= 1 的时候,就是学习普通的softmax 

但是softmax 的信息还不够丰富 曲线不够顺滑 

所以这里引入的蒸馏温度是想让每一个类别的相对大小更加明显

当然这里如果太极端的话 T取得很大 就会导致两极分化非常不明显 甚至有可能就是一条平行于x 轴的直线

这里学生模型想要学习的是没给类别的相对信息

 

知识蒸馏的好处

1.soft label可以防止过拟合

2.泛化性能very good

3.零样本学习(这里可以提及一嘴:没有标签的数据直接放进教师模型来获取标签。之后直接让学生模型去学习soft loss即可妈祖无监督训练需求)

4.学生模型是一个轻量化的网络

知识蒸馏的应用场景

1.模型压缩

2.优化训练 防止过拟合(潜在的正则化)

3.无限大的无监督数据集的数据挖掘

4.少样本 0样本的学习

这里给出迁移学习 知识蒸馏区别

迁移学习只是 domain领域知识的泛华  从猫狗分类到 x 光医学的分类

知识蒸馏 是模型到 模型的 从一个复杂 臃肿的 大模型 到一个小巧精干的 小模型完成轻量化的蜕变

知识蒸馏背后的机理

 

label smoothing 和 soft targets的区别

 

知识蒸馏的研究方向

1.教学相长 T-S S-T

2.助教 多个老师 多个学生 

3.知识的表示 (中间的featuremap(feature based) 或者是最原始的 softmax(response based) )

4.多模态(视觉语音文本)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东东要拼命

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值