知识蒸馏,知识迁移

1 什么是知识蒸馏,知识迁移 

知识蒸馏,知识迁移_第1张图片

我们有一个训练好的教师网络Teacher Model 和 数据 和一个未训练好的学生网络Student Model。

我们需要学生网络有着与教师网络相似的,相近的能力。实现的方式就是知识蒸馏,知识迁移。

表现如图示:教师把知识传授给学生,学生学会了知识,就有和教师相似的能力。

2 为什么要使用知识蒸馏,知识迁移 

知识蒸馏,知识迁移_第2张图片

 项目实施通常会把模型部署到终端,然而终端的算力都是有限的。

教师网络往往是本身模型参数大,使用海量数据训练,算力要求也是巨大的,这是不适合部署到终端的。

我们使用知识蒸馏,知识迁移 可以生成一个轻量型的学生网络,学生网络算力需求不大的同时也具有教师网络相近的能力,这是适合用来部署的。

3新概念:预训练大模型

知识蒸馏,知识迁移_第3张图片

通过海量数据训练出一个参数庞大且能力强的模型,可以部署到云端,当网络条件不好时,可以使用知识蒸馏获得能力相似的相对小的模型,在把这个小模型部署到移动端。

4移动终端部署方式

知识蒸馏,知识迁移_第4张图片

 移动端部署的四种方式:对应图中红字。

绿字表示移动端部署方方面面的影响因素。


知识的表示与迁移 

 知识蒸馏,知识迁移_第5张图片

表示图中分类结果在知识蒸馏中有两种方式:hard targets 和 soft targets。

已图中为例 假如有三种目标要分类:马,驴和车。

有一张图片是马时:

对应的hard targets: 马-1,驴-0,车-0

对应的soft targets: 马-0.7,驴-0..2,车-0.02

可见:

hard targets只能表示出图片中的是一匹马,但是对应其他两种分类数值都是0,在数值上都为0,不能表示这两个非正确类别的区分度。

soft targets:正确的类别是马,在特征上马和驴是相似的,驴的预测数值也是相对与车是高一些的。车和驴是不相似的物品,预测的数值也不是相似的。soft targets包含的信息有驴子与正确类别-马有一定相似性,同时也表示出与非正确类别-车的区分程度。

知识蒸馏,知识迁移_第6张图片

 蒸馏温度T 

通常使用softmax计算的结果每个类别在数值上有时是相差较大的,这里引用了一个参数: 蒸馏温度T  ,可以达到将各个类别放缩到同一量级表示内。这中方式使每个类别区分在数值上更明确。

知识蒸馏,知识迁移_第7张图片

T=1 时,是通常的softmax。

知识蒸馏,知识迁移_第8张图片 如图:T=3 相对于 T=1 时 对各类别预测结果相对大小的表示更明确。

 知识蒸馏的过程

 知识蒸馏,知识迁移_第9张图片

已有一个训练好的教师网络,未训练好的学生网络

1 输入大量数据到教师网络 在温度t时预测 得到对应的 soft targets

2 输入相同数据到学生网络 在温度t 时预测 得到对应的soft pred

3 计算 soft targets 与 soft pred 的差距得到distlllation loss 表示学生网络与教师网络 预测在知识上的差距

4 输入相同数据到学生网络 在温度1 时预测 得到对应的hard pred

5 计算hard pred 与 hard targets 的差距得到studentloss 表示预测分类loss

6总loss未两部分loss相加:total loss = soft loss + hard loss

通过反向传播算法不断优化学生网络,最终可以使学生网络学习到教师网络的知识获得与教师网络相似的能力。


实验结果 

 1 少样本甚至0样本学习:

教师网络训练时 使用的全部类别数据集

当训练学生网络时 数据集中不包含某个类时 训练结束后 。学生网络也可以区分出数据是属于哪个类别的。 也可以区分出是否是数据集中未包含的那一类别。

2 使用soft targets可以预防过拟合

知识蒸馏,知识迁移_第10张图片

 知识蒸馏的应用场景

知识蒸馏,知识迁移_第11张图片

第3点解释:当手里有已训练好的教师网络是, 可以从网上爬取海量的五标注数据 通过教师网络得到 soft target。再用soft target 对学生网络进行训练。

迁移学习与知识蒸馏无关


 本文内容主要来自B站up主:同济子豪兄 视频:【精读AI论文】知识蒸馏 的笔记摘要

视频地址:【精读AI论文】知识蒸馏_哔哩哔哩_bilibili知识蒸馏是人工智能领域重要的模型压缩方法,在自然语言处理、计算机视觉、多模态学习、预训练大模型领域有广泛应用。通过师徒传授,将大规模教师模型的知识传递给轻量化学生网络,实现模型压缩和部署。子豪兄将带领大家了解知识蒸馏核心算法,透视知识蒸馏机理,纵览知识蒸馏前沿热点,精读知识蒸馏开山之作:Distilling the knowledge in a neural network,通过Pytorch实现https://www.bilibili.com/video/BV1gS4y1k7vj

你可能感兴趣的:(人工智能,计算机视觉,深度学习)