《Attention Graph Convolution Network for Image Segmentation in Big SAR Imagery Data》笔记

1.AGCN模型结构

模型利用 S L I C ( S i m p l e   L i n e a r   I t e r a t i v e   C l u s t e r i n g ) SLIC(Simple\ Linear\ Iterative \ Clustering) SLIC(Simple Linear Iterative Clustering)算法对整幅图像进行无监督聚类,得到大量的图像块,称为超像素。接着利用CNN对每个超像素进行特征提取作为每个节点的特征,利用超像素之间的邻接关系作为节点的邻接矩阵,利用像素投票的方式得到每个节点分类标签。利用注意力矩阵调整邻接矩阵,引导图卷积层关注关键节点,完成图像分割任务。
《Attention Graph Convolution Network for Image Segmentation in Big SAR Imagery Data》笔记_第1张图片

2.基于超像素投票

利用SLIC算法将原始图像划分为超像素后,需要给每块超像素一个自己的标签,但是在超像素ground-truth中对应有多种标签,所以作者提出以超像素对应区域的ground-truth中标签频率最高的那一类作为超像素的标签:
y i = a r g m a x r = { 1 , . . . , K } ∑ m = 1 M s i g n ( l m = r ) (10) y_i=argmax_{r=\{1,...,K\}}\sum_{m=1}^{M}sign(l_m=r)\tag{10} yi=argmaxr={ 1,...,K}m=1Msign(lm=r)(10)

其中, M M M表示超像素中像素点数目。 l m l_m lm表示第m个像素的标签值, s i g n ( ∗ ) sign(*) sign()为符号将函数。当 l m = = r l_m==r lm==r时值为1,否则值为0。通过对 K K K类像素进行统计得到超像素的标签。

3.注意力图卷积

利用卷积神经网络对超像素特征提取后,得到图结构数据。由于得到的节点特征是通过卷积层得到的,所以作者去掉了GAT模型中开始的全连接层:
e i j = a → T ( x → i ∣ ∣ x → j ) (11) e_{ij}=\overrightarrow a^{T}(\overrightarrow x_i||\overrightarrow x_j)\tag{11} eij=a T(x ix j)(11)

其中, a → T \overrightarrow a^{T} a T为注意力相关的训练参数。
注意力权重表达为:
α i j = s o f t m a x j ( e i j ) = e x p ( L e a k y R e L U ( a → T ( x → i ∣ ∣ x → j ) ) ) ∑ j ∈ N i e x p ( L e a k y R e L U ( a → T ( x → i ∣ ∣ x → j ) ) (12) \alpha_{ij}=softmax_j(e_{ij})=\frac{exp(LeakyReLU(\overrightarrow a^{T}(\overrightarrow x_i||\overrightarrow x_j)))}{\sum_{j\in N_i}exp(LeakyReLU(\overrightarrow a^{T}(\overrightarrow x_i||\overrightarrow x_j))}\tag{12} αij=softmaxj(eij)=jNiexp(LeakyReLU(a T(x ix j))exp(LeakyReLU(a T(x ix j)))(12)

在得到注意力权重矩阵 α \alpha α后,需要将其进行图结构化的处理,对于第 i i i行而言,如果节点 j j j不在节点 i i i的邻域中,则 α i j = 0 \alpha_{ij}=0 αij=0,并且 α i i = 1 \alpha_{ii}=1 αii=1.
由于图卷积存在信息聚合的过程,会将周围的节点信息汇聚于中心节点,导致各个节点逐渐同化,这也是为什么图卷积无法像传统卷积一样实现深层卷积。
由于图注意力中存在计算节点特征的距离的操作,如果在图卷积之后进行注意力矩阵的计算,会由于图卷积聚合信息的能力,导致节点逐层同化,而使得网络性能下降。所以作者将注意力权重矩阵在进行图卷积之前计算好,并且利用权重矩阵来调整图卷积的邻接矩阵。
A ^ = D ~ − 1 / 2 A ~ D ~ − 1 / 2 ⨀ α (13) \hat A=\tilde D^{-1/2}\tilde A \tilde D^{-1/2} \bigodot \alpha\tag{13} A^=D~1/2A~D~1/2α(13)

其中, A ~ = A + I , D ~ = ∑ j A ~ i j \tilde A = A+I, \tilde D=\sum_{j}{\tilde A_{ij}} A~=A+I,D~=jA~ij ⨀ \bigodot 表示矩阵的逐点相乘。
在构造好邻接矩阵 A ^ \hat A A^后,就可以直接进行图卷积操作:
Z l + 1 = σ ( A ^ Z l Θ l ) (14) Z^{l+1}=\sigma(\hat AZ^l\Theta ^l)\tag{14} Zl+1=σ(A^ZlΘl)(14)

其中, Θ l \Theta^l Θl为图卷积层的训练参数。经过两层这样的图卷积后就可以得到关于节点的分类i结果了,利用多分类的交叉熵损失计算损失进行随机梯度下降更新训练参数:
L = − ∑ i ∈ y ∑ f = 1 F y i ( f ) l n z → i ( f ) (16) L=-\sum_{i\in y}\sum_{f=1}^{F}y_i(f)ln\overrightarrow z_i(f)\tag{16} L=iyf=1Fyi(f)lnz i(f)(16)

其中, i i i表示第 i i i个节点, y y y表示ground-truth的集合, F F F表示分类数目。

AGCN伪代码如下所示:
《Attention Graph Convolution Network for Image Segmentation in Big SAR Imagery Data》笔记_第2张图片

你可能感兴趣的:(深度学习,gcn)