meta之change bias之filter learning篇(1)

今日两弹有关Filter Learning的文章分享

这是一篇来自2016年Nips的文章,是用输入样本(这条支路称为A路)作为条件来动态输出B路某一层卷积核参数的方法。

这是一篇来自2017年ICLR的文章,与上一篇不同之处在于,文章中控制卷积核的方式并不是通过输入样本,并且模型一旦训练,在测试过程中也不会动态的改变网络中某层的卷积核参数,即本文并不是用来做动态学习卷积核的,更确切的说,本文是用一路小网络来输出主网络的卷积核参数的。

文章具体对比如下:
第一篇的模型思想不难想像,作者希望在实际测试场景下,模型中的某些参数是依赖于输入测试样本的。考虑如下的场景:当我们在看到一个人的侧脸时,人可以“脑补”出这个人的正脸。作为训练好的模型,我们也希望她能够根据现实中的一些场景进行合理的联想和改变—反映到模型参数上就是希望参数是一些条件输入的函数,就比如前面人脸的例子。现在我们一起来看看,为了实现,作者是怎么做的:

文中提出的两个模型架构

对于左图所示模型,卷积后的output(对应的是图中显示output的地方)可以表示为,

G(i,j)=fθ(IB(i,j)) G ( i , j ) = f θ ( I B ( i , j ) )

由输入A可以得到卷积核,即左图所示的蓝色栅格。这个模型做的事情是根据输入A得到一个filter,代表在B中所要提取的特征是某种单一特征。

对于右图所示模型,卷积后的output可以表示为,

G(i,j)=fi,jθ(IB(i,j)) G ( i , j ) = f θ i , j ( I B ( i , j ) )

这里做的事情是对于B(i,j)的每一个领域,都有一个卷积核与之对应,即提取的是与位置有关的单一特征。

这里注意下,上述的单一特征在该模型中可以轻松扩展,即将输出的filter个数设置成大于1即可。这块的设计就回到了标准CNN的滤波器个数的问题上了,设多设少,根据问题来定。

第二篇文章的模型,相对比较复杂,笔者仅研究了其中关于CNN的部分,LSTM待吃透了再回来和大家分享。
第二篇的模型思想也很intuition,我们来看一下她的模型,

很直观的做法:用一个可变参数的小网络去给主网络分配参数

文章摘要部分指出,本文的出发点和动机—权值分解来降低模型复杂度;没有人在LSTM上设计过这种权值分解算法。从生物学角度出发,作者提出了下面的小网络(黄色部分)可以看作基因型,主网络(黑色部分)
可以看作是表现型。这也是从一个小网络获得主网络参数的一个生物学动机和解释。

下面,笔者主要介绍下文章中的static hypernetwork—a weight factorization for CNN。

部分截图

偷个懒,截图附上。其实文章要做的事情并不难,就是通过给小网络一个layer embedding的输入z,通过公式(2)的feed-forward计算,得到第j层卷积层的卷积核(真实用于特征提取的参数),再用这个卷积核参与到其他卷积层正常的前向核反向计算更新中调整模型参数即可。

这里特别要注意:与第一篇条件于输入样本的做法不同,此处,作者通过将layer embedding z设置成待学习的参数,随着模型的训练,该参数作为小网络的先验也随之改变,直到主网络收敛,我们认为小网络的z也更新到其合适的后验上来。从生物进化的角度来看,学习的过程就是基因型自然选择的过程,自然选择受表现型的影响,由我们设置的代价函数来控制决定,并通过梯度更新来执行物尽天择!

整体来看,个人觉得第二篇文章的生物学立意很有趣,从达尔文进化论的角度来看待我们的模型参数选择,真的是一件蛮令人激动的事情!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值