【阅读笔记】《ReNet: A Recurrent Neural Network Based Alternative to Convolutional Networks》

本文记录了博主阅读论文《ReNet: A Recurrent Neural Network Based Alternative to Convolutional Networks》的笔记,代码,更新于2019.05.23。

后续论文笔记:【阅读笔记】《ReSeg: A Recurrent Neural Network-based Model for Semantic Segmentation》

Abstract

本文提出了一个基于循环神经网络的用于目标识别的网络结构,称为ReNet。

Introduction

Model Description

X={xi,j}X=\{x_{i,j}\}表示输入图像或输入特征图,其中XRw×h×cX\in\mathbb R^{w\times h\times c}wwhhcc分别代表宽、高和通道数。给定尺寸为wp×hpw_p\times h_p的感受野或图块P={pi,j}P=\{p_{i,j}\},其中I=wwpI=\frac{w}{w_p}J=hhpJ=\frac{h}{h_p}pi,jRwp×hp×cp_{i,j}\in\mathbb R^{w_p\times h_p\times c}是图像的第(i,j)(i,j)个图块,第一个参数ii表示水平index,第二个参数hh表示竖直index。

用两个RNNs滑动扫过整张图像,一个RNN自下而上,另一个RNN自上而下。(这句没懂,到底这个方向什么意思,怎么进行的?)每个RNN都以一个展开的图块为输入,一次只处理一个图块,并更新其隐藏状态(hidden state),沿着输入图像XX的每个列jj进行;
【阅读笔记】《ReNet: A Recurrent Neural Network Based Alternative to Convolutional Networks》
竖直的双向滑动结束后,开始水平方向的滑动。将两个中间状态vi,jFv^F_{i,j}vi,jRv^R_{i,j}按照位置(i,j)(i,j)级联,得到整合的特征图V={vi,j}i=1,,Ij=1,,JV=\{v_{i,j}\}^{j=1,\dots,J}_{i=1,\dots,I},其中vi,jR2dv_{i,j}\in\mathbb R^{2d}dd是回归单元的个数。每个vi,jv_{i,j}都是一个特征监测子在位置(i,j)(i,j)上的activation,对应所有在原始图像第jj列的图块(对所有iipi,jp_{i,j})。

接下来,对得到的特征图VV应用两个RNNs(fHFWDf_\text{HFWD}fHREVf_\text{HREV})。与竖直滑动相同,这些RNNs沿着VV的每行滑动,得到输出的特征图H={hi,j}H=\{h_{i,j}\},其中h=i,jR2dh_={i,j}\in\mathbb R^{2d}。现在,每个向量hi,jh_{i,j}代表原始图像中图块pi,jp_{i,j}对于整张图片的上下文信息。

ϕ\phi表示从输入图像XX到输出特征图HH的函数(如下图所示)。
【阅读笔记】《ReNet: A Recurrent Neural Network Based Alternative to Convolutional Networks》
显然,可以堆叠多个ϕ\phi使得所提出的ReNet更深,从而能够获取输入图像更复杂的特征。经过若干层应用到输入图像的循环层以后,最后一层的Activation在展开(flattened)后,送入一个可微的分类器。在本文实验中,这里应用了全连接层和softmax作为分类器。如下图所示:
【阅读笔记】《ReNet: A Recurrent Neural Network Based Alternative to Convolutional Networks》

深度ReNet是一个平滑、连续的函数,其参数(从RNNs和全连接层来的)可以通过随机梯度下降法和反向传播算法估计得到(使得log-likelihood最大化)。

Differences between LeNet and ReNet

ReNet和卷积神经网络之间有诸多的相似和不同。这个部分,论文作者用LeNet代表经典卷积神经网络,分析比较几个关键点。

每层,这两个网络都对输入图像或输入特征图的图块用了相同的滤波器。但是,ReNet通过覆盖整图的横向连接(lateral connections)传递信息;而LeNet仅关注了局部特征。
【阅读笔记】《ReNet: A Recurrent Neural Network Based Alternative to Convolutional Networks》
LeNet用max-pool处理了所有小区域内的activations以得到局部平移不变性。相反,由于学习得到的横向连接,ReNet不用任何池化。ReNet中的横梁连接能够模仿(emulate)LeNet中max-pooling进行的特征局部计算。当然,这并不意味着ReNet没有办法应用max-pooling。在ReNet中应用最大池化可以帮助减少特征图的空间维度,从而降低计算量。

【阅读笔记】《ReNet: A Recurrent Neural Network Based Alternative to Convolutional Networks》
【阅读笔记】《ReNet: A Recurrent Neural Network Based Alternative to Convolutional Networks》

Experiments

Datasets

Data Augmentation

Model Architectures

Training

Results and Analysis

Discussion

更多内容,欢迎加入星球讨论。
【阅读笔记】《ReNet: A Recurrent Neural Network Based Alternative to Convolutional Networks》