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之后开始更新第二步。