当前位置:   article > 正文

知识蒸馏:大神Hinton《Distilling the Knowledge in a Neural Network》论文笔记 2015_2015年,hinton发表了什么论文

2015年,hinton发表了什么论文

论文第5部分:在一个特大的数据集上训练一个特殊的网络集成

在这里插入图片描述

1.问题:网络识别问题

    前提:
在这里插入图片描述      训练集JFT,有约1亿个图片,15000个分类。谷歌有个基线模型(Google’s baseline model),训练了约6个月。

   提出问题:
      针对大网络和大的数据集,计算量大,如果把一个笨重的大网络变成使用多个网络集成模型,可以并行计算。
   (多个网络模型,每个专注于易于混淆的子类,可以减少学习集成的总计算量。)

   解决思路:
      本文先有一个通用模型(generalist model),用通用模型再继续训练多个专有模型(specialist models)。

在这里插入图片描述

2.训练过程

2.1通用模型:

      谷歌的基线模型直接当成通用模型(generalist model)
在这里插入图片描述

2.2专有模型:

      设置m个专有模型,用来分辨易于混淆的类。
在这里插入图片描述

2.2.1专有模型的训练集构造过程

      把总训练集分为易于混淆的类。可以用真实标签(记为hard target)来分类,但本文利用通用模型(generalist model)得到的预测结果(soft target,记为软目标)分类。

在这里插入图片描述
      具体的来说,由软目标得到协方差,再 K-means方法聚类,这里聚类的结果是 可以相交的且不涵盖到所有样本(即从总训练集中提取易混淆的m个小样本集,可相交)。Table2展示了几个合理的分类。

在这里插入图片描述

在这里插入图片描述

补充

   方差: 衡量样本偏离均值的程度

   协方差: 衡量两个随机变量针对各自均值的变化趋势是否一致,分为正相关,负相关,不相关。

   K-means: 针对一个样本集合
      输入K(一个大于0的正整数,而不是指定的K个样本)
      过程:把样本集合根据距离分为k个不想交的子集。
      输出:k个聚类。】
在这里插入图片描述
       原文没有具体写怎么对样本的输出做协方差矩阵(混淆矩阵),再进行有交集的聚类,得到易混淆样本(299标签分类)的61个聚类。个人猜想是因为general 模型的输出本来就只有约25%的预测正确率,所以输出在同一个分类中的样本就是易分错混淆的样本。先对所有样本做61个聚类(k-mean),再对每个聚类样本选出判别出现最高的前299个类别标签。所以才会出现不同专家模型对于易混淆样本的标签分类是有交集的。注意在测试时,需要用到的是那299个类别标签。
在这里插入图片描述

训练集: 一半易混淆样本+一半随机样本(防止过拟合;训练完后适当调整由训练集引起的偏差)。

在这里插入图片描述

      易混淆的样本共有299种分类,随机样本算一种混合分类(记为dustbin class),共计300个分类(详情见4.结果)。
在这里插入图片描述

2.2.2训练专有模型

      为防止过拟合,初始化数据直接用通用模型,在训练时微调权重。

在这里插入图片描述
   训练时间:

      从基线模型训练专有模型的过程只需要几天(并行化)。

在这里插入图片描述
在这里插入图片描述

3.测试过程

在这里插入图片描述

在这里插入图片描述

   输入: 测试样本X

  1. 样本X输入到通用模型(generalist model),得到结果Pg
  2. 由软目标可以得到和X易混淆的类和对应得专家模型(不止一个,也可能为空),记为Ak,输入专家模型得到一系列的预测结果Pm

  求样本X的分布q,建立优化方程如下,取方程最小值,直接计算最优q:

在这里插入图片描述
   输出: 预测样本X的分布q
在这里插入图片描述

补充:
      KL散度用来描述两个的分布P、Q是否相似,相似则KL值小,不相似KL值大。如下是离散和连续分布的KL散度公式:
在这里插入图片描述

在这里插入图片描述

4.结果

      训练了61个专有模型,每个包含300个类。

在这里插入图片描述
在这里插入图片描述

      单纯基线模型正确率25%,加上61个专有模型,提高了1.1%,相对提高了4.4%正确率。

      conditional test accuracy:测试样本的标签是属于专有模型中易于混淆的类别,即Ak非空。
       test accuracy:Ak可以是空集。
在这里插入图片描述

在这里插入图片描述
      of specialists covering:表示Ak的模(个数),看测试样本标签属于哪几个易混淆的300个聚类中。
      of test example:测试样本中有多少个样本满足上一条件的。
      delta in top1 correct:相比基准测试(只有general模型的测试),正确个数的增加(注意基数问题,样本数量多,正确率个数会更高)
      最右边:相对正确率变化

这里可以计算出测试集大概用67.7万个样本。
每个专家模型的训练集应该用了 (1亿)/61个易混淆样本聚类*2≈328万个样本(乘2是一半随机样本)。

论文链接: 2015 Hinton《Distilling the Knowledge in a Neural Network》.

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/731801
推荐阅读
相关标签
  

闽ICP备14008679号