[2022]李宏毅深度学习与机器学习第十三讲(必修)-神经网络压缩

[2022]李宏毅深度学习与机器学习第十三讲(必修)-Network compression

  • 做笔记的目的
  • Outline
  • Network can be pruned
    • Why Pruning
  • Knowledge Distillation
    • Ensemble
    • Temperature for softmax
  • Parameter Quantization
  • Architecture Design-Depthwise Separable Convolution
  • Dynamic Computation
    • Dynamic Depth
    • Dynamic Width
    • Computation based on Sample Difficulty

做笔记的目的

1、监督自己把50多个小时的视频看下去,所以每看一部分内容做一下笔记,我认为这是比较有意义的一件事情。
2、路漫漫其修远兮,学习是不断重复和积累的过程。怕自己看完视频不及时做笔记,学习效果不好,因此想着做笔记,提高学习效果。
3、因为刚刚入门深度学习,听课的过程中,理解难免有偏差,也希望各位大佬指正。

Outline

虽然大的模型效果不错,但是小的模型同意有应用市场。需要把模型跑在资源有限的情况下比如手表,这种情况就不适合用大的模型。如果传到云端,但是可能会有延时(自动驾驶),同时可能涉及隐私安全。所以我们需要小的模型,但是也要保证小的模型的准确率。
[2022]李宏毅深度学习与机器学习第十三讲(必修)-神经网络压缩_第1张图片
大纲如下:
[2022]李宏毅深度学习与机器学习第十三讲(必修)-神经网络压缩_第2张图片

Network can be pruned

有两种思路:

  1. 删除一些weight
  2. 删除一些神经元
    整个步骤如下图,当network够小时,就停止了。
    [2022]李宏毅深度学习与机器学习第十三讲(必修)-神经网络压缩_第3张图片
    修剪的单位可以是参数可以是神经元,如果是weight,这样网络就不规则了,这样不好进行实现,同时GPU加速也不好加速。为了加速方便会把weight变为0.
    [2022]李宏毅深度学习与机器学习第十三讲(必修)-神经网络压缩_第4张图片
    但实际上,准确率降低了的同时运算时间基本上没有改变,所以这种方法并不是很实用。
    [2022]李宏毅深度学习与机器学习第十三讲(必修)-神经网络压缩_第5张图片
    删掉一些神经元
    [2022]李宏毅深度学习与机器学习第十三讲(必修)-神经网络压缩_第6张图片

Why Pruning

为什么不能直接训练一个小的模型那?直观的来说就是,直接训练一个小的模型,效果并不如剪枝的效果好。但是同样的模型,为什么剪枝的效果更好那?比较著名的有Lottery Ticket Hypothesis(彩票假设)。
[2022]李宏毅深度学习与机器学习第十三讲(必修)-神经网络压缩_第7张图片
大的network可以看成包括多个小的network,所以有很多机会可以win,我们选出来的就是win的部分。
[2022]李宏毅深度学习与机器学习第十三讲(必修)-神经网络压缩_第8张图片
Lottery Ticket Hypothesis(彩票假设)的实验,剪枝后剩下来的是幸运的模型,尽管确定了模型架构但是如果这个时候随机初始化训练不起来,同时如果采用一开始的随机初始化就可以训练起来。同时假说还证明了只要不改变正负号,就可以训练起来,正负号是能不能训练起来的关键。
[2022]李宏毅深度学习与机器学习第十三讲(必修)-神经网络压缩_第9张图片
[2022]李宏毅深度学习与机器学习第十三讲(必修)-神经网络压缩_第10张图片
也有一些论文在讨论随机初始化,然后修剪调一些神经网络,之后进行直接预测。
但是也有反对彩票假说的,认为彩票假说是只有在学习率小的时候符合。
[2022]李宏毅深度学习与机器学习第十三讲(必修)-神经网络压缩_第11张图片

Knowledge Distillation

训练一个大的模型做为老师,然后用小的模型去学习老师。为什么不直接train小的那?从结果上看是效果没有学习老师的效果好。为什么那?因为Teacher net可能会给student一些额外的信息,比如1像7,所以如果训练的时候没有看过7,也有可以看出来
[2022]李宏毅深度学习与机器学习第十三讲(必修)-神经网络压缩_第12张图片

Ensemble

多个模型求平均,然后用来教学生。Ensemble这个技术不仅仅能用在Knowledge Distillation上,在很多比赛上前几名往往就是多个模型的平均。
[2022]李宏毅深度学习与机器学习第十三讲(必修)-神经网络压缩_第13张图片

Temperature for softmax

要取一个Temperature,让分布平滑,这样就能学习到一些关系。
[2022]李宏毅深度学习与机器学习第十三讲(必修)-神经网络压缩_第14张图片

Parameter Quantization

用少的空间,取储存参数,Weight Clustering每一个Cluster center 取一个值。
有的方法如下图。
[2022]李宏毅深度学习与机器学习第十三讲(必修)-神经网络压缩_第15张图片
Binary Weights 技术是神经元只有两种状态0-1,他的效果还不错,同时不容易过拟合。
[2022]李宏毅深度学习与机器学习第十三讲(必修)-神经网络压缩_第16张图片

Architecture Design-Depthwise Separable Convolution

[2022]李宏毅深度学习与机器学习第十三讲(必修)-神经网络压缩_第17张图片
filter number等于channel number。每个filter只管一个channel。
[2022]李宏毅深度学习与机器学习第十三讲(必修)-神经网络压缩_第18张图片
Depthwise Convolution 之后进行Pointwise Convolution,这里每个filter里面的卷积核都是1*1的。每个filter产生一个channel。
[2022]李宏毅深度学习与机器学习第十三讲(必修)-神经网络压缩_第19张图片
参数对比
[2022]李宏毅深度学习与机器学习第十三讲(必修)-神经网络压缩_第20张图片
为什么这一招有用那?这样优化会让w有一些限制,但是这个是减少参数非常常用的方法,同时这也做也不容易过拟合。
[2022]李宏毅深度学习与机器学习第十三讲(必修)-神经网络压缩_第21张图片
[2022]李宏毅深度学习与机器学习第十三讲(必修)-神经网络压缩_第22张图片

Dynamic Computation

同一个模型在不同的机器上运用,可能需要Dynamic Computation技术
[2022]李宏毅深度学习与机器学习第十三讲(必修)-神经网络压缩_第23张图片

Dynamic Depth

加一个extra Layer,这个训练方法就可以达到Dynamic的效果。
[2022]李宏毅深度学习与机器学习第十三讲(必修)-神经网络压缩_第24张图片

Dynamic Width

同一个网络不同的宽度,训练的时候一起考虑,这样训练需要一些技巧。
[2022]李宏毅深度学习与机器学习第十三讲(必修)-神经网络压缩_第25张图片

Computation based on Sample Difficulty

对于简单问题提取停下来,对于难的问题往后面走
[2022]李宏毅深度学习与机器学习第十三讲(必修)-神经网络压缩_第26张图片
前面4个技术都可以让net变小,同时这四个技术并不互斥,可以一起被使用。

你可能感兴趣的:(李宏毅深度学习笔记,深度学习,深度学习,神经网络)