Paper-HYPERNETWORKS

1.Introduction

  • Hypernetwork:small,生成main network的weights,输入是:main network的weights相关的结构信息。
  • main network:large

2.Movitation and Related Work

  • 演化计算(evolutionary computing):很难直接在大搜索空间上跑。
  • Schmidhuber(1992):提出快速权值。一个网络可以为另一个网络产生上下文相关的权值变化。
  • Schmidhuber(1993):快速权值的递归版本。
  • Gomez&Schmidhuber(2005):快速权值的实际应用,进化学。习
  • HyperNEAT(2009):
    • 搜索空间约束在很小的权重空间内。
    • 输入是一堆main network中每个权重的虚拟坐标(virtual coordinates)。
    • CPPNs用来学习main network的权重结构。
  • Compressed Weight Search(2010):
    • HyperNEAT的变种,结构没变
    • 权重通过Discrete Cosine Transform来进化。
  • Denil et al., 2013
  • Yang et al., 2015
  • Bertinetto et al., 2016
  • De Brabandere et al., 2016
  • Jaderberg et al., 2016
  • Andrychowicz et al., 2016
  • Differentiable Pattern Producing Networks (DPPNs)(Fernando et al., 2016)
    • HyperNEAT的变种,结构变了。
  • ACDC-Networks(Moczulski et al., 2015)
    • 线性层用DCT压缩
  • 缺点:训练慢,需要启发式方法。离散余弦变换在压缩权值搜索中的应用过于简单,使用DCT先验可能不适用于很多问题。HyperNEAT中结构和权值进化对于大多数问题都是多余的。
  • 本文:
    • 优点:端到端训练、模型灵活和训练简单取得良好平衡。rnn也能用。

3.Methods

  • input:各个层的权重的嵌入向量(每个层一个embedding),可以是固定,也可以是端到端学习到的,生成可以是动态生成的。允许同层、跨层的近似权重分享。
  • 权值共享:
    • rnn:可以被看做强权值跨层共享,使得不灵活、产生梯度消失。
    • cnn:不共享权值,灵活,网络深的时候参数冗余。
    • Hypernetwork:看做轻权重共享,取得了平衡,学习参数的数量大大低于main network。

3.1静态

  • hepernetwork是两层线性网络:
    • hypernetwork第1层:输入main network第j层编码向量zj。其中:Nin个权重矩阵Wi∈Rd*Nz、偏置Bi∈Rd,d是第1层神经元数,固定d=Nz。
    • hypernetwork第2层:输入ai∈Rd,用Wi∈R fsize * Nout fsize * d、偏置B∈R fsize * Nout fsize。最终的kernel是由Kj们concate起来的。
  • 参数量对比:
  • 为什么用两层不用一层:一层网络的参数量更多。
  • 不具有相同维度kernel:如残差网络=>如果我们需要一个更大的内核用于某一层,我们将把多个基本内核连接在一起,形成更大的内核。例:有16、31、64,则可以学单位为16的。尺寸较大的内核将需要按比例增加embedding向量的数量。

3.2动态

  • hypernetwork是rnn:生成rnn,relaxe的权值共享(rnn的硬权值共享和cnn的无权值共享的折衷)。
    • 。。。。。

未完待续