深度学习之 RefineNet

网络结构:

RefineNet block的作用就是把不同resolution level的feature map进行融合。网络结构如下:

最左边一栏就是FCN的encoder部分(文中是用的ResNet),先把pretrained ResNet按feature map的分辨率分成四个ResNet blocks,然后向右把四个blocks分别作为4个path通过RefineNet block进行融合refine,最后得到一个refined feature map(接softmax再双线性插值输出)。

注意除了RefineNet-4,所有的RefineNet block都是二输入的,用于融合不同level做refine,而单输入的RefineNet-4可以看作是先对ResNet的一个task adaptation。

RefineNet Block

接下来仔细看一下RefineNet block,可以看到主要组成部分是Residual convolution unit, Multi-resolution fusion, Chained residual pooling, Output convolutions. 切记这个block作用是融合多个level的feature map输出单个level的feature map,但具体的实现应该是和输入个数、shape无关的。

Residual convolution unit就是普通的去除了BN的residual unit;

Multi-resolution fusion是先对多输入的feature map都用一个卷积层进行adaptation(都化到最小的feature map的shape),再上采样再做element-wise的相加。注意如果是像RefineNet-4那样的单输入block这一部分就直接pass了;

Chained residual pooling中的ReLU对接下来池化的有效性很重要,还可以使模型对学习率的变化没这么敏感。这个链式结构能从很大范围区域上获取背景context。另外,这个结构中大量使用了identity mapping这样的连接,无论长距离或者短距离的,这样的结构允许梯度从一个block直接向其他任一block传播。

Output convolutions就是输出前再加一个RCU。

相关推荐
WeeJot嵌入式12 分钟前
卷积神经网络:图像特征提取与分类的全面指南
人工智能·分类·cnn
魍魉198838 分钟前
构建 LLM (大型语言模型)应用程序——从入门到精通(第七部分:开源 RAG)
人工智能·语言模型·自然语言处理
幻风_huanfeng2 小时前
线性代数在人工智能领域中的实践
人工智能·线性代数
正儿八经的数字经3 小时前
算力100问☞第30问:密集计算有什么特点?
网络·人工智能·gpu算力
【建模先锋】3 小时前
独家原创 | 超强组合预测模型!
人工智能·深度学习·机器学习
电报号dapp1193 小时前
区块链游戏的新观察:自治世界能否成为未来链游的突破口?
人工智能·游戏·去中心化·区块链·智能合约
cainiaomyf3 小时前
【论文阅读】Multi-level Semantic Feature Augmentation for One-shot Learning
论文阅读·人工智能·深度学习·机器学习·计算机视觉
是Yu欸3 小时前
【科研】9如何高效阅读和理解学术论文
论文阅读·人工智能·深度学习·论文笔记