- 权重剪枝:结构化剪枝,整层整层地剪,整通道整通道地剪
- 通道剪枝:非结构化剪枝,一根树杈子,一根树杈子剪
- 加速卷积运算:将卷积运算转换成张量运算,这里面有很多卡脖子的技术,这也是MATLAB软件非常牛的关键,底层有很多数值运算的功能,都是MATLAB的核心技术,这点是无法被Python这种开源的编程语言所取代的;也是无法被开源计算库所取代的,特别是发射一个火箭,谁也没法保证到小数点后几位,但是MATLAB却可以;这里面有很多卡脖子的技术。
- 如果使用OpenVino的话,可以使用Intel神经网络计算棒
- FPGA和集成电路,也可以部署人工智能算法
- 比如说MnasNet和MobileNetV3就是把NAS和轻量化网络进行了结合,就是让人工智能自己去设计一个轻量化的网络,而不用人去设计了
- 预训练大模型的知识蒸馏
- 论文来自于NIPS会议,是计算机视觉领域的顶级论文
所以在训练教师网络的时候,可以使用hard target去训练,但是,当训练出了教师网络后,教师网络对这张图片的预测结果,也就是这个soft targets能够传递更多的信息
那么也就可以使用这个soft target去训练学生网络
那么现在目标就明确了,用包含了很多信息的标签去训练学生网络,这样效率就会更高
现在还要进行一个操作,这个softtarget,还是不够soft,需要让它更加soft,也就是要知道这些非正确类别的概率,并把它解耦出来,给他暴露出来,所以这个时候就需要引入一个蒸馏温度T,这个温度T越高,这个soft label就越soft
可以看出,当T越大,就越soft;当T=100的时候,这4类,就已经基本一样了,等于是基本没有贫富差距了
T越小的话,两极分化就越来越严重
softmax,本来就是将概率转换为0~1之间,并且使得其求和为1
更软的soft-target去训练学生网络,那些非正确类别的概率就暴露得更彻底,更容易让学生网络去学习
所以这里就可以举一个具体的例子:
- 那学生网络与教师网络之间,是如何通过蒸馏来进行学习的呢?
- 知识蒸馏的图解如下图所示:
- distillation是有一个师傅在手把手教你,告诉你,这是一个马,更像驴,而不像车,驴和车有多像,有多不像;而下面的这个hardloss就是在告诉你,这个课本有一张马的插图,插图告诉你,这就是马,不是别的东西;所以,这两项,有一个师傅带,还有一个课本看;就是和我们普通人学习的过程是很像的。
我们的目标就是,微调学生网络中的权重,使得最终的损失函数最小化;具体通过什么方法呢,就是通过梯度下降,反向传播的方法。
你可以把学生网络中的若干个权重当做水龙头,我们要微调每一个水龙头,使得最终的total loss最小。
它里面的所有权重,最终就可以使得,最终的损失函数最小化,或者说收敛到一个低值。
- 前面这两个图是训练过程,后面这个图是预测过程,也叫做部署过程。
- 少样本,甚至0样本,的学习,可以通过知识蒸馏来实现
就好比,我们从来没有见过大熊猫,但是天天有一个人来给我们讲解大熊猫是什么样,给我们讲大熊猫跟老虎有什么区别;当我们再见到大熊猫的时候,其实也知道这是一只大熊猫了。
右边,就是李宏毅老师的课程上面的图片
这篇论文还在语音识别领域进行了应用,发现蒸馏之后,效果是非常好的,可以把单个模型集成10倍来训练一个教师网络,也可以用教师网络来训练一个更小的学生网络;可以看到,徒弟和老师,是非常类似的;而且,学生会更加轻量化。
用softtarget去训练,而不是用hardlabel去训练的话,还有一个好处,就是可以防止过拟合。
如果出现了过拟合,那么就要进行早停,dropout,正则化,那么一系列防止过拟合的操作,得密切监视测试集中准确率的变化。
如果在测试集中,loss出现先增后降的现象,那么就要进行早停的操作。
但是使用soft target去训练就没有这个问题,准确率一直都是在增加的,直到收敛,不会出现先增后降的情况
迁移学习:把一个领域学习的东西,泛化到另一个领域,比如把猫狗域迁移到了医疗X光领域
知识蒸馏:把一个模型的知识,迁移到另一个模型上,通常是大模型迁移到小模型
迁移学习指的是领域之间的迁移,知识蒸馏指的是模型之间的蒸馏
- 知识蒸馏背后的机理
这也是研究的热点,也是适合水论文的一个点
教师网络就会引导这个黄圈进行收敛,最终收敛到橙圈里面去
越靠近教师网路就越好,因为教师网络的性能更好
对bert进行知识蒸馏,也达到了很好的效果
为什么知识蒸馏是有效的?
知识蒸馏,就是学生网络在浩如烟海的书籍里面去翻书,但是教师网络指导一下,就不会漫无目的的翻书了
Label Smooth是为了防止网络对某一个类别过度自信,也就是会导致网络对某一个类别的输出趋向于无穷大,为了防止这一现象的发生,通常就是给其它类别也赋予一个常数的概率
知识蒸馏现代的前沿研究方向
每一个方向都是适合发很多论文的,适合自己来做毕业论文,或者适合自己做小论文的
可以和人工智能的所有领域发生化学反应
这个图展示了有多个老师,也就是多模态的一种范式
上面是3种蒸馏方法
上面这个就是有一些中间层的蒸馏,也就是脑回路的传授
下面这个博客,描述的是知识蒸馏的综述和历史发展