计划完成深度学习入门的126篇论文第十三篇,UW的陈天奇和Goodfellow合著针对知识迁移的加速学习Net2Net。


ABSTRACT&INTRODUCTION

摘要

我们介绍了将存储在一个神经网络中的信息快速传输到另一个神经网络的技术。主要目的是加速训练一个更大的神经网络。在实际的工作流程中,人们经常在实验和设计过程中训练许多不同的神经网络。每个新模型都是从零开始训练的,所以这是一个浪费时间的过程。我们的Net2Net技术通过将知识从以前的网络即时传输到每个更深或更广的新网络,从而加快了实验过程。我们的技术基于神经网络的参数之间function-preserving transformations的概念。这与之前的训练方法不同,之前的训练方法在向神经网络添加层时改变了神经网络所表示的功能。使用我们的知识迁移机制向Inception模块添加深度,我们演示了ImageNet数据集上最新的精度等级。

介绍

我们提出了一种新的大型神经网络操作方法:将一个神经网络中的知识快速转移到另一个神经网络中。我们称之为Net2Net。使用Net2Net作为一个通用术语,来描述任何训练学生网络的过程,其速度都要比利用教师网络的知识来完成相同任务的速度快得多。在本文中,我们提出了两种特定的Net2Net方法。两者都基于神经网络的function-preserving transformations思想。具体来说,我们将学生初始化为一个神经网络,它表示与教师相同的功能,但使用不同的参数化。其中一个转换是Net2WiderNet,它允许用更宽的等效模型替换模型(每个隐藏层中有更多的单元)。另一个转换是Net2DeeperNet,它允许用等价的、更深层次的模型替换满足某些属性的模型。在初始化较大的网络以包含较小网络先前获得的所有知识之后,可以对较大的网络进行培训,以提高其性能。

传统上,机器学习算法被设计成接收固定的数据集作为输入,在不需要任何知识的情况下初始化一个新模型,并训练该模型在该数据集上收敛。实际的工作流要比这个理想化的场景复杂得多。我们提倡使用Net2Net操作作为加速实际工作流的有用工具。

实际工作流偏离理想场景的一种方式是,机器学习实践者通常不会在每个数据集上只培训一个模型。相反,人们通常训练多个模型,每个模型的设计都以某种方式改进前一个模型。迭代设计过程中的每一步都依赖于对前一步的充分培训和评估。对于许多大型模特来说,培训是一个漫长的过程,持续一周甚至一个月。这使得数据驱动的迭代设计变慢,原因是评估对模型的每个更改是否导致了改进的延迟。

更有野心的是,真正的机器学习系统最终将成为终身学习系统(Thrun, 1995;Silver,2013;Mitchell,2015)。这些机器学习系统需要在很长一段时间内继续运行,并在这些示例可用时不断体验新的培训示例。我们可以把终身学习系统lifelong learning system看作是一个不断增长的训练集。最优模型复杂度随着训练集大小的变化而变化。为了避免过度拟合和降低使用模型的计算成本,一开始可以选择小模型。稍后,可能需要一个大型模型来充分利用大型数据集。Net2Net操作允许我们平稳地实例化一个大得多的模型,并立即开始在我们的终身学习系统中使用它,而不需要花费数周或数月的时间在最新的、最大的训练集版本上从头开始重新训练一个更大的模型。


METHODOLOGY

在本节中,我们将描述我们新的Net2Net操作,以及如何将它们应用于真正的深度神经网络。

1. FEATURE PREDICTION

我们简要地试验了一种方法,证明它并没有提供明显的优势:从随机初始化开始训练一个大型的学生网络,并在学生网络中引入一组额外的教师预测层。具体地说,学生网络的几个卷积隐藏层作为新的、学习的卷积层的输入。修改了成本函数,使之包含鼓励这些辅助层的输出接近教师网络中相应层的术语。换句话说,学生被训练使用每一个隐藏层来预测老师隐藏层的值。

我们的目标是,老师将为学生提供一个很好的任务的内部表示,学生可以快速复制,然后开始细化。这种方法类似于FitNets (Romero et al., 2014)训练中等深度的非常薄的网络的策略。不幸的是,与基础方法相比,我们没有发现这种方法提供任何令人信服的加速或其他优势。这可能是因为我们的baseline非常强,基于批处理标准化(Ioffe &Szegedy,2015)。Mahayri等(2015)独立观察到,将模型更改为使用批处理标准化后,FitNets训练策略的好处被消除。

FitNets-style的Net2Net学习方法是非常普遍的,从某种意义上说,如果成功,它将允许任何学生网络架构学习任何教师网络架构。虽然我们不能使这种通用方法工作,但我们鼓励其他研究人员在未来尝试设计完全通用的Net2Net策略。相反,我们转向了不同的Net2Net策略,这些策略的范围有限,但更有效。

2. FUNCTION-PRESERVING INITIALIZATIONS

我们介绍了两种有效的Net2Net策略。两者都是基于初始化学生网络来表示与教师相同的功能,然后通过正常的方式继续训练学生网络。具体地说,假设教师网络由一个函数​​​​​​​​​​​​​​表示,x是网络的输入,y是网络的输出,θ是网络的参数。在我们的实验中,f由卷积网络定义,x是一个输入图像,y是一个概率向量,表示给定x的对象类别上的条件分布。

我们的策略是选择一组新的参数学生网络这样,

在我们的方法的描述中,我们假设为简单起见,老师和学生网络含有成分的标准形式的线性神经网络层, h (i)是隐藏层的激活,W (i)的权重矩阵的这一层,和φ是一个激活函数,如纠正线性激活函数(Jarrett et al ., 2009;或maxout激活函数(Goodfellow et al., 2013)。为了清晰起见,我们使用这个层形式化,但是我们的方法泛化为这些层的任意组合结构,比如Inception (Szegedy et al., 2014)。事实上,我们所有的实验都是使用Inception networks来完成的。

虽然我们描述方法的矩阵乘法为简单起见,它很容易扩展到卷积(通过观察双重卷积是乘法的块循环矩阵)和添加bias(通过治疗偏见的行乘以一个常数输入的W 1)。我们还将给出具体描述回旋的情况在后续的讨论方法的细节。与其他增长网络的方法相比,保留功能的初始化具有许多优点:

3. NET2WIDERNET

我们提出的第一个转换是Net2WiderNet转换。这允许一个层被一个更宽的层替换,这意味着一个层有更多的单位。对于卷积结构,这意味着层将有更多的卷积通道。

让我们从一个简单的特殊案例开始来说明这个操作。假设第i层和第i + 1层都是完全连接的层,第i层使用元素非线性。为了扩展第i层,我们替换了W (i)和W (i+1)。如果第i层有m个输入和n个输出,第i+1层有p个输出,。Net2WiderNet允许我们替换有q个输出的第i层。我们会介绍这个随机mappin函数

我们引入一个新的权值矩阵U (i)和U (i+1)表示新学生网络中这些层的权值。然后给出新的权重

这里,W (i)的前n列被直接复制到U (i)中,第n+1行到U(i)通过选择一个g中定义的随机变量来创建。对于U (i+1)中的权值,我们必须通过将权值除以给出的复制因子来解释复制,因此所有的单元都具有与原始网络中的单元完全相同的值。

这种描述可以推广到使多层更宽,层由任意有向无环计算图所描述的组成。这个一般过程如图2所示。到目前为止,我们只讨论了使用一个随机映射函数来展开一个层。事实上,我们可以为每个非输出层引入一个随机映射函数g(i)。重要的是,这些g(i)受计算图所定义的一些约束。需要注意的是,要确保重新映射的功能确实能够保存功能。

为了解释,我们提供了两个计算图形结构的例子,它们对随机映射函数施加了特定的约束。

一个例子是批量标准化(Ioffe &Szegedy,2015)。该层包括一个标准的线性变换,但也涉及到通过学习参数的元素乘法,这些参数允许该层表示任意范围的输出,尽管进行了标准化操作。乘法参数的随机重映射必须与权矩阵的随机重映射匹配。否则,我们可以生成一个新的单元,它使用现有单元i的权向量,但由单元j的乘法参数缩放。新单元不会实现与旧单元i或旧单元j相同的功能。

另一个例子是连接。如果我们将第1层和第2层的输出连接起来,然后将这个连接起来的输出传递给第3层,那么第3层的映射函数需要考虑到连接。第1层输出的宽度将决定来自第2层的单元坐标的偏移量。

为了使Net2WiderNet成为一个完全通用的算法,我们需要一个重新映射推理算法,它使一个正向遍历图,查询图中的每个操作,了解如何使重新映射函数保持一致。在我们的实验中,我们为Inception网络手工设计了所有必要的推理规则,而Inception网络也适用于大多数前馈网络。这类似于现有的形状推断功能,该功能允许我们预测计算图中任意张量的形状,方法是向前通过图,从已知形状的输入张量开始。

得到随机映射后,我们可以复制权值并除以复制因子,复制因子的形式如下式所示。

每个单元至少要复制一次,这是很重要的,因此限制了结果层的宽度。该算子可任意多次应用;我们只能扩展网络的一个层,或者可以扩展所有非输出层。

在多个单元需要共享相同权重的情况下,例如卷积操作。我们可以将这样的约束添加到随机映射生成中,使权重源保持一致。这对应于在通道级别上进行随机映射,而不是在单元级别上,剩余的过程保持不变。

当使用某些形式的随机化对增广层进行训练时,例如dropout (Srivastava et al., 2014),可以使用保存完美转换的Net2WiderNet,正如我们到目前为止描述的那样。当使用一种不使用随机化的训练算法来鼓励相同的单元学习不同的函数时,除了每一列的第一个副本外,其他所有的都应该添加少量的噪声。这导致学生网络只代表与教师大致相同的功能,但这种近似是必要的,以确保学生可以在恢复培训时学习充分利用其能力。

4. NET2DEEPERNET

我们还介绍了第二个保留功能的转换,Net2DeeperNet。这让我们把一个现有的网变成一个更深的网。具体来说,Net2DeeperNet替换了一个层和两层。新矩阵U初始化为单位矩阵,但以后仍可自由地学习接受任何值。这个操作只适用于选择当所有向量v。这个属性保持为校正线性激活。要为maxout单元获得Net2DeeperNet,必须这样做使用类似于单位矩阵,但具有复制列的矩阵。不幸的是,对于一些受欢迎的激活函数,如logistic sigmoid,不可能插入相同的层,表示所需域中的标识函数的类型。当我们把它应用到卷积网络中,我们可以简单地将卷积核设置为单位滤波器。

在某些情况下,构建标识层需要额外的工作。例如,在使用批处理归一化时,必须设置归一化层的输出比例和输出bias来撤销层统计数据的标准化。这需要通过网络上的训练数据,以估计激活统计量。

我们所采用的方法是更一般方法的一个特定案例,即构建一个多层网络来分解原始层。做一个更深但等价的表示。然而,对非线性变换单元的层进行一般的因式分解,如校正,是比较困难的线性和批量标准化。限制为添加标识转换允许我们处理此类非线性转换,并将该方法应用于我们关心的网络体系结构。它还节省了这种因式分解的计算成本。我们认为支持层的一般分解是一个值得探索的有趣的未来方向。

使用Net2DeeperNet时,不需要添加噪声。我们可以从一个学生网络开始培训,这个学生网络与教师网络的功能完全相同。然而,添加少量的噪声可以更快地打破对称性。乍一看,由于使用了identity操作,Net2Net只能添加与其下一层宽度相同的新层。然而,Net2WiderNet可能是由Net2DeeperNet组成的,因此我们实际上可以添加任何至少与其下一层一样宽的隐藏层。


EXPERIMENTS

1. EXPERIMENTAL SETUP

我们在三个不同的设置中评估了Net2Net操作符。在所有的案例中,我们都使用了InceptionBN网络(Ioffe &Szegedy, 2015)在ImageNet上进行培训。在第一种设置中,我们演示了Net2WiderNet可以通过使用更小的网络初始化一个标准inception network,从而加速对它的培训。在第二个设置中,我们演示了Net2DeeperNet允许我们增加Inception模块的深度。最后,我们在实际环境中使用Net2Net操作符,对模型大小进行更大的更改,并探索模型空间以获得更好的性能。在这个设置中,我们在ImageNet上演示了一个改进的结果。

我们将把我们的方法与一些基线方法进行比较:

2. NET2WIDERNET

我们从评估Net2WiderNet方法开始。我们从构建一个比标准初始更窄的教师网络开始。我们将inception model中每一层的卷积通道数量减少了一倍。由于减少了通道的输入和输出数量,这将大多数层中的参数数量减少到原始数量的30%。为了简化我们实验的软件,我们没有修改除在inception model之外的网络组件。在对这个小型教师网络进行培训之后,我们用它来加速对一个标准规模学生网络的培训。

图4为不同方法的比较。我们可以发现,该方法比基线方法具有更快的收敛速度。重要的是,Net2WiderNet提供了与随机初始化训练的模型相同的最终精度。这说明模型的真实大小决定了训练过程的精度。初始化模型以模拟更小的模型不会损失准确性。因此,Net2WiderNet可以安全地用于更快地达到相同的精度,从而减少运行新实验所需的时间。

3. NET2DEEPERNET

我们使用Net2DeeperNet进行了实验,使网络更加深入。在这些实验中,我们使用了一个标准的Inception模型作为教师网络,并增加了每个Inception模块的深度。Inception模块中的卷积层使用矩形内核。卷积层成对排列,一层使用垂直内核,另一层使用水平内核。每一层都是具有校正非线性和批量归一化的完整层;它不仅仅是将线性卷积运算分解成可分离的部分。在出现垂直-水平卷积层的任何地方,我们都添加了另外两对这样的层,它们被配置成一个恒等变换。结果如图5所示。我们发现Net2DeeperNet在训练和验证精度上都比随机初始化训练快得多。

4. EXPLORING MODEL DESIGN SPACE WITH Net2Net

Net2Net的一个重要特性是,通过转换现有的最先进的体系结构,可以快速探索modelp空间。在这次实验中,我们对模型设计空间进行了更广泛和更深入的探索。具体来说,我们将Inception模型的宽度扩大到原来模型的p2倍。我们还通过在初始inception模型的每个inception模块上添加四个垂直-水平卷积层对,构建了另一个更深层次的网络。

结果如图6所示。最后一种方法得到了回报,产生了一个模型,它在我们的ImageNet验证集上设置了78.5%的最新状态。由于资源和时间的限制,我们没有从零开始训练这些较大的模型。然而,我们报告了原始的收敛曲线inception model供参考,它应该比这些较大的模型更容易训练。我们可以发现,使用Net2Net操作初始化的模型比标准模型收敛得更快。

这个例子真实地展示了Net2Net方法的优势,它帮助我们更快地探索设计空间,并在深度学习中推进结果。


DISCUSSION

我们的Net2Net操作人员已经证明,在某些架构约束下,可以快速地将知识从一个小的神经网络转移到一个大得多的神经网络。实验表明,利用该方法可以训练更大的神经网络,提高图像网络的识别性能。Net2Net现在也可以作为一种技术来更快地探索模型族,从而减少典型机器学习工作流所需的时间。我们希望未来的研究能够发现在神经网络之间传递知识的新方法。我们尤其希望未来的研究能揭示出更多通用的知识转移方法可以快速初始化一个学生网络,该网络的体系结构不受限于类似于教师网络。

(13)[ICLR16] Net2Net: ACCELERATING LEARNING VIA KNOWLEDGE TRANSFER相关推荐

  1. 【Lifelong learning】Continual Learning with Knowledge Transfer for Sentiment Classification

    链接:http://arxiv.org/abs/2112.10021 简介 这是一篇在情感分类Sentiment Classification运用连续学习Continual Learning的pape ...

  2. Deep Reinforcement Learning with Knowledge Transfer for Online Rides Order Dispatching

    用于在线乘车订单调度的知识转移深度强化学习 Zhaodong Wang ∗† Zhiwei (Tony) Qin ∗‡ Xiaocheng Tang ∗‡ Jieping Ye § Hongtu Zh ...

  3. 元学习——通过知识迁移的图小样本学习(Graph Few-shot Learning via Knowledge Transfer)

    文献记录-通过知识迁移的图小样本学习 1 摘要 对于图的半监督学习已经提出了很多的研究方法.类似于GNN类方法,通过聚合节点周围节点的信息来更新节点的表示,已经取得了非常不错的效果.但是,大多数的GN ...

  4. Cross Domain Knowledge Transfer for Person Re-identification笔记

    Cross Domain Knowledge Transfer for Person Re-identification笔记 1 介绍 2 相关工作 3 方法 3.1 特征提取的ResNet 3.2 特 ...

  5. 【Lifelong learning】Achieving Forgetting Prevention and Knowledge Transfer in Continual Learning

    链接:https://link.zhihu.com/?target=https%3A//arxiv.org/abs/2112.02706 简介 本文专注于连续学习的两个方面: 连续学习(或终身学习)主 ...

  6. Group Knowledge Transfer: Federated Learning of Large CNNs at the Edge部分阅读

    Group Knowledge Transfer: Federated Learning of Large CNNs at the Edge 组知识转移:边缘大型cnn的联合学习 Abstract 通 ...

  7. 论文阅读笔记(1):Multi-Task Feature Learning for Knowledge Graph Enhanced Recommendation

    Multi-Task Feature Learning for Knowledge Graph Enhanced Recommendation 原文链接:https://arxiv.org/pdf/1 ...

  8. 【论文翻译】UniT: Unified Knowledge Transfer for Any-Shot Object Detection and Segmentation

    UniT: Unified Knowledge Transfer for Any-Shot Object Detection and Segmentation UniT:任意样本量的目标检测和分割的统 ...

  9. 【cvpr2022-论文笔记】《L2G: A Simple Local-to-Global Knowledge Transfer .... Semantic Segmentation》

    目录 文章概述 网络架构 Classification Loss Attention Transfer Loss Shape Tansfer Loss 相关讨论 本文记录弱监督语义分割领域论文笔记&l ...

最新文章

  1. (转)RTSP协议详解
  2. SpringBoot环境下QueryDSL-JPA的使用
  3. linux常用命令(精)
  4. BeginnersBook MongoDB 教程
  5. Unix系统编程()发送信号kill
  6. 组合数学1.1——棋盘的完美覆盖
  7. [已解决]罗技鼠标驱动打不开问题
  8. 超星pdg格式转换为pdf格式原理方法
  9. 现浇板弹性计算还是塑性计算_板塑性与弹性.doc
  10. 关于android尺寸单位换算
  11. 分享100个精美的作品集网站设计案例
  12. 数字调制解调技术的MATLAB与FPGA实现(关盘资料源码)
  13. python123第八周_GitHub - ChangYZ123/Python-100-Days: Python - 100天从新手到大师
  14. R7000P进入ubuntu18.04黑屏问题
  15. 论文阅读利器——划词翻译插件(桌面与浏览器)
  16. 从富文本(html字符串)中获取图片,js获取富文本中的第一张图片(正则表达式)
  17. 华为p10android版本,华为P10系列什么时候升级安卓8.0?官方给出答案
  18. TCP/IP协议(二、初识tcp)
  19. JDK内置注解元注解++反射
  20. IAR Embedded Workbench 破解方法+工具+授权文件

热门文章

  1. swust2020春季《形势与政策》mooc考试答案参考
  2. 专利权利要求书七步法
  3. Unity射线与UI碰撞检测
  4. 树、二叉树(完全二叉树、满二叉树)概念图解
  5. Proxifier使用教程
  6. firewall ip白名单设置
  7. 建立统一标准的教育大数据
  8. linux 应用层gpio中断_linux下GPIO中断驱动US100传感器--Apple的学习笔记
  9. JSON.stringfy()详解
  10. C#从字节数组截取片段(转载)