【学习】网络压缩:知识蒸馏、参数量化、动态计算,PPO


一、知识蒸馏Knowledge Distillation

学生网络学习老师网络。
在这里插入图片描述
学生可以学到训练资料可能没有提供的东西。
老师也可以是很多个模型的投票结果:
在这里插入图片描述
温度常数用于softmax:可以让分布变平滑。这是一个超参数,不能非常大(会变成所有参数都一样)
在这里插入图片描述
这里有平滑的分布,就不是one-hot一样的东西(要么是0,要么是1),这样就不是给一个标准答案了!可以给额外更多的信息。

二、参数量化

• 1.使用较少的位来表示一个值
•2.权重聚类(确定了分布之后取平均)
3.用较少的比特表示频繁的聚类,用较多的比特表示罕见的聚类,例如霍夫曼编码。
在这里插入图片描述
压缩到参数只有+1或者-1,binary weights
在这里插入图片描述
在这里插入图片描述

结构设计:深度方向可分卷积Depthwise Separable Convolution

在这里插入图片描述
有几个channel就有几个filter,每个filter管理每个channel。问题:chanel之间没有联系

1、Depthwise Convolution

在这里插入图片描述
filter是1*1的
在这里插入图片描述
专注于channel之间的关系。
在这里插入图片描述
参数量少了很多
low rank approximation也是减少了参数的方法,但是还是有限制:减少了W的可能性,不是所有的w都能做为参数。
在这里插入图片描述
Depthwise Separable Convolution跟这个也很像:
在这里插入图片描述

三、动态计算Dynamic Computation

网络根据需要调整计算。
在这里插入图片描述
为什么我们不准备一套模型?根据需要选择不同的模型?麻烦!
怎么做呢?让网络自由调整深度,增加额外的层。
在这里插入图片描述
也可以改变宽度:
在这里插入图片描述
这两种方法都是让L越小越好。
不同的压缩对应于不同的应用:简单的图片可以在小的层就能结束,难的图片在多的层结束。
在这里插入图片描述

四、From on-policy to off-policy(PPO)

不止一次地利用经验
on-policy :学习的代理和与环境交互的代理是相同的。
off-policy:代理学习和与环境交互的代理是不同的。
在这里插入图片描述
在这里插入图片描述
期望一样但是不代表variance一样。
在这里插入图片描述
这里希望取样足够多,那么variance就相近。
在这里插入图片描述
这里做了修正之后,从θ’(跟环境互动)里面取样,而我们也可以通过更新多次θ的参数之后采取做一次参数取样。
在这里插入图片描述
在这里插入图片描述
这两个θ的分布不能相差太多,PPO做的解决这个问题
在这里插入图片描述
TRPO是比较难做的
我们引入KL散度,希望两个actor上的分布越近越好,不是参数上的差距。

在这里插入图片描述
在这里插入图片描述
横轴是θ的p相除,在A>0的时候(得分好),我们希望Pθ越大越好,但是和Pθk之间的差距不要太大,限制最大为1+E,如果比1+E大那就只要1+E,不让他继续增大了。
如果A<0的时候(得分低),希望Pθ越小越好,但是希望最低是1-E。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Raphael9900/article/details/128583912