知识蒸馏:迁移学习的一种,目的是将庞大网络学到的知识转移到小的网络模型上,即不改变网络复杂度的情况下,通过增加监督信息的丰富程度来提升性能。
关键点:1.知识获取 2.知识转移
常见集中思想:
1. softmax层的输入比类别标签包含更多的监督信息,使用logistics代替类别标签对小模型进行训练,将小模型训练转化为了回归问题。让小模型输出尽量接近大模型的logits。因为小模型隐层要足够宽,所以参数没有明显减少,效果有限。
2. softmax的输出层包含了每个类别的概率,包含了更多的信息,用超参数控制预测概率的平衡程度。最终损失函数由小模型预测结果和大模型logistics的交叉熵,和小模型预测结果和类别标签的交叉熵组成。通过调节权重确定两部分的重要程度。但当类别较多时模型难收敛,因为与维度紧密。与logits相比,前一层的输出包含了更多噪声和无关信息。因此先取出无关维度(保留足够强区分维度,维度间低相关)。效果会提高。但研究工作还需要深入。
紧凑的网络结构
1. 挤压(维度不高表达不强,维度高了参数增多,容量与参数的平衡用1*1的卷积进行降维,得到多通道信息,特征紧密,保证模型泛化)
2. 扩张(为了减少参数,部分使用1*1代替大的卷积核,但为了保证不同核输出拼接完整,要对打的卷积输入进行合适的填充像素)
3. Squeezenet:三条卷积操作,扩张卷积,反卷积,普通卷积,然后合并输入下一层。实现了4.1M参数和googlenet效果一样。