HyperNetwork 论文阅读 2017 ICLR

HyperNetwork

论文地址
1、灵感来源于nature中的基因型(超网络)以及表型(主网络)
2、主要为了解决CNN,RNN中权重不共享以及RNN中全共享的问题,旨在创造一个relaxed weight-sharing across layers的模型,在不特别影响精度的情况下,减少了模型参数。

模型

一、静态 HyperNetwork:深度卷积网络的权重分解方法

HyperNetwork 论文阅读 2017 ICLR_第1张图片
超网络为前馈网络生成权重。黑色连接和参数与主网络相关联,而橙色连接和参数与超级网络相关联。

分解原理:
卷积的所有参数: K j ∈ R N i n f s i z e × N o u t f s i z e K^j\in R^{N_{in}f_{size} \times N_{out} f_{size}} KjRNinfsize×Noutfsize ,(其中 j = 1 , . . . D j=1,...D j=1,...D 为深度卷积网络的层数),作者想让这个参数用线性映射一下,由此可以表示为:
image

将其沿着参数 N i n N_{in} Nin方向分解为slices,输出的结果可以等价于输入两个线性层之后的叠加,由此函数 g ( ) ˙ g(\dot ) g()˙可以拆分为如下公式(其中的<.>表示dot product点积):

HyperNetwork 论文阅读 2017 ICLR_第2张图片

为什么要用两层:一是比一层的参数要少,二是对于共享参数 W o u t 、 B o u t W_{out}、B_{out} WoutBout,两层的hperNetwork表示能使结构更为紧凑。
由此就可以用在一些深度卷积网络中,例如Resnet网络,结果如下:
HyperNetwork 论文阅读 2017 ICLR_第3张图片
代码:
HyperNetwork,定义了可学习参数
HyperNetwork 论文阅读 2017 ICLR_第4张图片
生成embedding
HyperNetwork 论文阅读 2017 ICLR_第5张图片
总体结构:
HyperNetwork 论文阅读 2017 ICLR_第6张图片
HyperNetwork 论文阅读 2017 ICLR_第7张图片
其实大概就是把Residual network中的卷积的权重换成了hpernetwork网络产生的结果(W),这个超网络需要embedding即Z作为激励
github代码

二、动态HperNetwork递归网络的自适应权值生成

主要是想用一个小一点的RNN模型,来生成main RNNs的参数,其中的参数会随时间变化并生成,故名为动态叭~
HyperRNNs结构图,其中黑色连接和参数,与基本RNNs相关。本文介绍了橙色连接和参数,并与HyperRNNs关联。虚线箭头用于生成参数。

HyperNetwork 论文阅读 2017 ICLR_第8张图片
基本RNN的标准公式如下所示:
image
其中 ϕ \phi ϕ是一个非线性函数,可以是tanh、relu等,

由之前的思路,HyperRNN可以将 h t h_t ht计算为对应于上面的那个图:
HyperNetwork 论文阅读 2017 ICLR_第9张图片
HyperNetwork 论文阅读 2017 ICLR_第10张图片
由于这样计算会引起存储空间太大,所以改进之后的式子表示为:
HyperNetwork 论文阅读 2017 ICLR_第11张图片
HyperNetwork 论文阅读 2017 ICLR_第12张图片
其中d是一个权重的缩放向量。

你可能感兴趣的:(卷积神经网络,python)