本文已参与「新人创作礼」活动,一同开启创作之路。

DRAW

《DRAW: A Recurrent Neural Network For Image Generation》

全体介绍

 本文介绍了一种根据循环注意力网络和VAE的生成网络,作者最基本的创意来历来自于人眼在对事物进行调查时的机理,我们往往并并不是一次观测就取得了事物的悉数信息,而是每次都只观测一小部分,经过不断的观测来补全对事物的全体影响。因而,作者以为当我们想要去生成新样本时,也不应该去奢求网路能够一次性就得到非常好的成果,而是应该不断的对初次生成的成果进行批改,终究得到理想的输出。

模型架构

 模型的全体架构和VAE类似,同样是经过编码器来取得数据背面的隐变量散布,再使用重参数技巧对隐变量采样,经过解码器生成新的图画。不同之处在于,这儿的编码器和解码器都是RNN网络而非原先的MLP或者是CNN,这就使得我们能够重复的观测图片从中获取信息,再将其送入解码器进行重构。此外,解码器的输出也会参与到编码的进程,从而使得编码器能够使用前一时刻步的重构性能对本轮的编码输出进行优化。终究,在编码进程中,作者并不是简单的采用了基本的RNN架构,而是使用了带注意力的RNN架构,使得每次观测都只是观测某些要点区域,而非次次观测相同的全局。结构图如下:

论文解析:DRAW

左边即为根底的VAE架构,右边为改进的DRAW架构,能够看出它是以一种时序的方式在执行生成进程,每个时刻步的编码器都会使用前次解码器的输出来选取重视区域、参与编码进程,而每次的解码器成果都会不断累加终究得到较好的输出。

流程解析

 每个时刻步网络所执行的任务如下:

论文解析:DRAW

首先由输入图片xx和解码器重构图片(ct−1)\sigma(c_{t-1})核算出目前为止的重构差错,使用该差错、前一轮解码器隐状况、输入图片经注意力机制来得到本轮要点重视区域的表征rtr_trtr_t和前一轮解码器隐状况输出作为本时刻步的编码器RNN输入,得到本轮编码器输出htench_t^{enc},由此确认隐变量散布的参数(假定隐变量的后验散布为对角正态散布)。经解码器RNN输出隐状况,使用类似的注意力机制取得终究的重构图片。能够看出整个流程的要点就在于这个注意力机制。

注意力机制

 实际上这儿的注意力机制就是之前根据区域分割的签名认证系统中注意力机制的创意来历,同样是使用用横纵两个方向的N*N个网格核函数与输入特征图样相乘,只不过这儿的核函数变成了高斯函数,其余部分一模一样,都是经过隐状况确认网格距离、散布参数,再将网格内每个子滤波器的方位改换改换到图画坐标系当中,终究再别离核算原图每个元素经对对应核滤波的成果,不再赘述。

 在read操作里就是将每个滤波器横向纵向权重和原图相乘即得到带注意力的特征表征,而在写操作中则是反了过来,将特征表征(隐变量)重构为图片,核算方式如下:

wt=W(htdec)write(htdec)=1FYTwtFXw_t=W(h_t^{dec})\\ write(h_t^{dec})=\frac{1}{\hat{\gamma}}\hat{F}_Y^Tw_t\hat{F}_X

wtw_t为解码器隐变量映射出的patch embedding。

总结

 文章这一系列主意非常的有意思,不是对图画进行一次全局的信息获取,而是多看几次,每次重视不同的区域,终究取得了愈加优越的特征表征。从机理来看,也的确愈加符合人眼调查事物的实质。