【深度学习】【CVPR2019】Auto-deeplab
Auto-DeepLab: Hierarchical Neural Architecture Search for Semantic Image Segmentation
作者

简介


相关工作

Cell 搜索
所谓cell是整个网络的基本结构,例如resnet中的residual block,一个cell是由多个block构成,一个cell中的一个block可以用如下式子表示:
(
I
1
,
I
2
,
O
1
,
O
2
,
C
)
(I_1,I_2,O_1,O_2,C)
(I1,I2,O1,O2,C)
I
1
,
I
2
I_1,I_2
I1,I2是输入,
O
1
,
O
2
O_1,O_2
O1,O2是输入对应的操作,
C
C
C是逐元素相加操作,从而得出该block的输出,也就是将两个输入合并成一个输出。下图是所有可能的操作集合
O
O
O,该部分同darts相同。

对于每一个block,其输入集合
I
I
I是前面所有的block的输出,而一个cell的输出则是各个block输出的按通道拼接。如下图所示,图来自于darts论文,各个方块代表的是一个block的输出,而这个cell最终的输出,也就是方块3是方块0、1、2输出的拼接。

而在该论文中,一个cell是如下所示的,其中的
s
H
l
−
2
^sH^{l-2}
sHl−2、
s
H
l
−
1
^sH^{l-1}
sHl−1分别是上上一层、上一层的输出,剩下的
s
H
i
l
^sH^{l}_i
sHil是定义的hidden states,对于每一个hidden states,其输入集合
I
I
I是上上一层、上一层的输、和之前hidden states的输出,而该cell的输出就是这些hidden states的按通道拼接,所以输出大小不变,只有通道数增加了。

通过下式的连续化,即加入了
α
\alpha
α,详细内容可阅读darts,便可以通过梯度下降法来训练
α
\alpha
α参数,可以将
α
\alpha
α视为概率,在模型训练结束后,只要找到
α
\alpha
α最大的两个值,就找到了该block使用的是哪两个输入,从而可以得到该block的输出。

Network 搜索
-
对于分类任务有着相同的预设模式:
normal cell维持特征图大小;reduction cell使特征图缩小一半并使通道数加倍;前者被后者等间隔分隔开。 -
然而对于语义分割任务有两类特征,不能仅仅靠这种预设模式来进行堆叠:
- 下一层的输出是上一层输出的两倍、一半或者相等。
- 最小的特征图是原图的1/32。
网络部分搜索空间如下图所示,该部分目的是在network level search找到一条走过L个点的路径,最初的两个白点代表的是固定的操作,即将特征图缩小两倍,其他的蓝点代表只能缩小两倍或放大两倍或维持不变(灰线)。不管这条路径最后得到多大的特征图,都会接上Atrous Spatial Pyramid Pooling(ASPP)使特征图回到原本的大小。

在该部分,也是加入了权重 β \beta β使离散的选择连续化,在训练完模型后,我们可以将 β \beta β视为转移概率,要找到从头到尾最大概率的路径,可以通过Viterbi algoritm达到, S S S代表的是下采样的尺度。

实验

将数据分为两部分,一部分训练网络内部权重
w
w
w,另一部分训练网络外部权重
α
,
β
\alpha,\beta
α,β,作者发现如果一开始就优化第二部模型表现很差,所以在10个epoch之后开始更新第二步。

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)