Effcient Multi-Objective Neural

2020-04-19  本文已影响0人  落花盈香

网络结构搜索致力于用发现能够与专家涉及相聘美的网络结构。目前在图像识别、语音识别、机器翻译等领域已经取得了非常好的进展,但是仍然有两个问题。
1、目前的网络结构搜索只能进行单目标优化
2、大多数架构搜索方法需要大量的计算资源,通常需要千个GPU/天。

为了解决第一个缺点,我们提出了LEMONADE,这是一种用于多目标架构搜索的进化算法,它允许在一次运行中逼近多个目标(例如预测性能和参数数量)下的整个架构的Pareto前沿。
为了解决第二个缺点,我们提出了一种LEMONADE的Lamarckian继承机制,该机制可以生成由受过良好训练的父母热启孩子网络。 这是通过使用(近似)网络态射算子生成子代来完成的。

这两种贡献的结合使您可以找到与手工制作和自动设计的网络同等甚至超越其性能的模型。

1、介绍
这篇论文中我们的主要贡献:

在16个GPU上仅用5天的时间,LEMONADE就发现了与手动设计的网络在预测性能和资源消耗方面具有竞争力的架构,例如MobileNet V2(Sandler等人,2018),以及使用 资源增加40倍(Zoph等人,2018)和其他多目标方法(Dong等人,2018)。

2、背景
多目标优化
多目标优化(Miettinen,1999年)处理的问题是具有多个互补的目标函数f1...fn。 令N为可行解N的空间(在本例中为可行神经体系结构的空间)。 通常,多目标优化处理寻找一个N ∗∈N使得所有的f1...fn最小。 但是,通常没有单个N *同时使所有目标最小化。 相反,存在多个帕累托最优解,它们是在不增加至少一个fj的情况下无法降低任何fi。 更正式地讲,如果∀i∈1,...,n:fi(N(1))≤fi(N(2))并且∃j∈1,则解N(1)帕累托支配另一个解N(2)。 ,...,n:fj(N(1))<fj(N(2))。 帕累托最优解N ∗就是那些不受其他N∈N支配的解。 帕累托最优N ∗的集合就是所谓的帕累托锋。

神经网络结构搜索(NAS)

多目标网络结构搜索
LEMONADE(i)不需要复杂的宏体系结构,而是可以从琐碎的初始网络开始,(ii)可以处理任意搜索空间,(iii)不需要定义对先验目标的硬约束或权重。

3、网络操作
网络映射的含义,类似于函数的映射,区别在于他表示的是网络到网络的映射关系。


网络映射的含义

3.1 、网络态射
网络态射表达的意思是指

一个网络操作,对于任意的x属于X,都有下面的等式成立,其中N和TN代表同一个网络,这能够被实现通过争取的参数化参数

现在,我们描述LEMONADE中使用的运算符,以及如何将其表示为网络态射。 有关详细信息,请参阅附录A.1.1。
1、插入一个 Conv-BatchNorm-Relu块。我们把卷积初始化为一个单位块(identity mapping恒等变化)。(在前传过程中消除梯度弥散)
2、增加卷积的过滤器数量。
3、添加skip connection(能在后传过程中更好地把梯度传到更浅的层次中)

3.2 Approximate Network Morphisms
网络态射的公共属性是他们增加网络的大小,如果人们只想找到一种具有最大准确性的神经体系结构,这可能是一个合理的属性,如果仅以找到最大精度的神经体系结构为目标,而不是以资源需求较低的神经体系结构为目标,则这可能是一个合理的属性。 同样,一旦做出的决定将无法恢复。 像删除图层这样的操作员可能会大大减少模型所需的资源,同时(可能)保留其性能。
因此,我们现在对网络态射的概念进行概括,以涵盖降低神经体系结构能力的运算符。 我们说如果每个x∈X的Nw(x)≈(TN)w ̃(x),则算子T相对于神经网络Nw具有参数w的近似网络态射(ANM)。我们参考附录A.1.2。 进行正式定义。 在实践中,我们简单地确定w ̃,以便使用知识蒸馏法使N distillation近似于N(Hinton等人,2015)。
在我们的实验中,我们采用以下ANM:(i)删除随机选择的层或跳过连接,(ii)修剪随机选择的卷积层(即,删除其过滤器的1/2或1/4),以及( iii)用深度可分离卷积代替随机选择的卷积。 请注意,这些运算符可以通过用于压缩神经网络的复杂方法轻松扩展(Han等人,2016; Cheng等人,2018)。

  1. LEMONADE
    在本节中,我们提出一个Lamarckian多目标进化算法神经架构,命名为LEMONADE。

LEMONADE旨在最小化多个目标f(N)=(fexp(N),fcheap(N))⊤∈Rm×Rn,其第一分量fexp(N)∈Rm
表示要进行昂贵评估的目标(例如作为验证错误或某种措施
仅可通过昂贵的模拟获得)及其其他成分fcheap(N)∈Rn
表示要廉价评估的目标(例如型号尺寸)。

LEMONADE维持一定种群的父亲网络,我们选择包括所有关于f的非支配网络,即Pareto front2的当前近似值。

在LEMONADE的每个迭代中,我们首先根据便宜的目标针对某些概率分布对父级网络进行采样,然后通过应用网络态射来生成子网络。在第二个采样阶段,我们再次根据便宜的目标对儿童子集进行采样,并且仅根据昂贵的目标对子集进行评估。因此,我们利用fcheap的评估成本低廉,以便将两个采样过程都偏向人口稀少的fcheap区域。因此,我们多次评估fcheap,以便最终在目标空间的人口稀少区域中找到一组不同的孩子,但仅评估fexp几次。

更具体地说,LEMONADE首先根据当前总体的便宜目标值{fcheap(N)| N∈P}计算密度估算器pKDE(例如,在我们的示例中为内核密度估算器)。 请注意,我们仅针对fcheap而不是f明确地计算KDE,因为这可以非常快速地评估pKDE(fcheap(N))。然后,提议孩子的更大数量npc Ncpc = {N c,...。 。 。 ,N c}是通过应用网络态射生成的,其中每个孩子的父N是1 npc根据与pKDE成反比的分布采样,

appendix
1、Batch Normalization, 批标准化, 和普通的数据标准化类似, 是将分散的数据统一的一种做法, 也是优化神经网络的一种方法. 具有统一规格的数据, 能让机器学习更容易学习到数据之中的规律.
我们引入一些 batch normalization 的公式. 这三步就是我们在刚刚一直说的 normalization 工序, 但是公式的后面还有一个反向操作, 将 normalize 后的数据再扩展和平移. 原来这是为了让神经网络自己去学着使用和修改这个扩展参数 gamma, 和 平移参数 β, 这样神经网络就能自己慢慢琢磨出前面的 normalization 操作到底有没有起到优化的作用, 如果没有起到作用, 我就使用 gamma 和 belt 来抵消一些 normalization 的操作

学习链接:https://morvanzhou.github.io/tutorials/machine-learning/ML-intro/3-08-batch-normalization/

batch mormalization

我的几点疑问
问题一:网络态射之后的网络需要训练么?
答案:需要,网络态射后的网络只是相当于热启,热启完之后仍然需要训练,这就是为什么说看模型在验证集上的表现是"昂贵的",因为首先得对模型进行训练


image.png
上一篇 下一篇

猜你喜欢

热点阅读