读论文:Data-Free Learning of Student Networks

    ICCV 2019年总共有三篇文章讲了模型压缩与加速,这是其中一篇。文章9月份更新了最新版,网上关于文章的解读也有了不少,我在此篇博客中简单讲下自己的理解。

1 文章解决的问题

    这篇文章解决了下图架构的一类问题,即:

  1. 已经有了大型复杂的网络处理分类问题
  2. 没有训练数据;
  3. 想要获得小型的、能够部署、性能接近大型网络的分类模型。

           

2 如何做的

2.1 预备知识

    想要看懂这篇文章,首先得了解知识蒸馏的内容。知识蒸馏问题的架构如下图所示。与关于知识蒸馏的解读可以查阅我的上一篇博文知识蒸馏(Distilling Knowledge )的核心思想 。下图与上图的区别在于数据与老师网络是否已知。在数据未知的情况下,作者采用 GAN 网络,利用噪声图像数据,生成了训练数据。从而使得学生网络基于训练数据不断优化自身参数,学习老师网络的知识。

          

2.2 核心点

2.2.1 整体架构

    文章的核心点在于如何生成用于训练的数据。GAN 理论的核心点在于纳什均衡理论。训练 GAN 网络需要真实数据和标签。老师网络作为 GAN 网络中的判别器,无须进行训练,所以只要训练一个生成器即可。于是作者设计了一套损失函数,帮助均匀地生成各个类的训练数据,为什么说均匀的呢,下面会进一步介绍。

   整体的网络架构如下图所示。

2.2.2 损失函数

    训练生成器的损失函数:

    为了训练生成器,作者设计了一个整合三种损失函数的loss。

    噪声 z 经过生成器生成图像 x,经过 TN 网络得到输出向量 y,利用 arg max 得到标签 t (这里 t 的定义在于 y 的输出值,比方 y 是 [0, 0, 1](总有一个最大的值),那么该数据的标签就是1(最大的值)对应的那类。

  • Loh 是 one-hot 损失函数,采用交叉熵损失函数。通俗的讲,就是随机信号第一次经过 TN 的输出 y 是[0.2, 0.3, 0.5], 那么标签就是第三类,训练的过程中让 y 不断靠近 [0, 0, 1]。
  • La 是激活函数,f 是TN 所提取的最终特征,为了使得更多的最终特征成为能够模拟近似真实输入图片的特征(不稀疏)来输出,用了加负号的L1正则进行约束(L1正则本身产生稀疏向量)。
  • Lie 是信息熵损失函数,当所有类别均衡时,Hinfo取得最大值,增加负号取到最小值。因此该损失函数为了获得均衡分布的数据。

    训练 SN 的损失函数:

    同知识蒸馏中的交叉熵损失函数。

2.2.3 训练流程

    整体训练流程如下图所示,简单讲就是先训练生成器,再训练 SN。

                                             

3 其他

    论文中说明了损失函数的可导性、有效性。实验的结果可查看原文。我比较好奇特征图激活损失函数的有效性,论文中表格2内的 TOP 1 accuracy 中,特征图激活函数对于准确性的提升十分有限。毕竟最后输出的 TN 输出的 y 是稀疏的,那么 f 非稀疏的必要性,可能是有待探讨的。

 

 
 

 

 

 

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值