PR-GNN
原文链接:https://arxiv.org/pdf/2007.14589.pdf
作者提出PR-GNN,一种端到端的能够解释fMRI的ROI的图神经网络。通过将fMRI生成的图输入PR-GNN,产生输出预测和解释的结果。由于PR-GNN模型具有可解释性,在分类性能上比其他方法更优越,同时还能检测出显著的大脑区域用于执行分类。新提出的loss 函数能够使用相同的方法进行individual-level(较小的 λ 2 λ_2 λ2)和gropu-level(较大的 λ 2 \lambda_2 λ2)的biomakers,结果揭示从样本中识别出ASD以及ASD的显著ROI。
目前,节点pooling的策略主要是两种方法:
- 节点poling的策略:基于聚类的pooling,基于图拓扑将节点聚类到一个super node;
- 基于ranking的pooling,给每个节点分配一个score,保留top rank的节点;
现有方法的池化方法将其应用于显着的大脑ROI分析时具有下列问题:
- 丢弃的节点和其余节点的排名得分可能无法明显区分,这不适合于识别显着且具有代表性的区域生物标记;
- 同一组中不同图中的节点的排名可能完全不同(通常是由于过度拟合造成的);
图神经网络用于脑网络分析
PR-GNN的结构如上图所示,GATConv作为节点的卷积层,分别验证了基于ranking的池化方法SAGEPooling与TopKPooling作为节点的池化层。
符号和问题定义
根据 T 1 T1 T1 sMRI将大脑划分为 N N N个ROI
符号 | 含义 | 符号 | 含义 |
---|---|---|---|
G = ( V , ε ) G=(V,ε) G=(V,ε) | 无向有权图 | V = { v 1 , . . . , v n } V=\{v_1,...,v_n\} V={v1,...,vn} | 顶点集 |
ε ε ε | 边集 | H = [ h 1 , . . . , h N ] T H=[h_1,...,h_N]^T H=[h1,...,hN]T | 特征矩阵 |
h i h_i hi | 节点 v i v_i vi的特征向量 | e i j e_{ij} eij | 节点 i i i与节点 j j j的连接强度 |
E = [ e i j ] ∈ R N × N E=[e_{ij}]\in \mathbb{R}^{N \times N} E=[eij]∈RN×N | 邻接矩阵 |
图卷积Block
符号 | 含义 | 符号 | 含义 |
---|---|---|---|
h i ( l ) h_i^{(l)} hi(l) | 节点 i i i在第 l l l层的特征 | H ( l ) = [ h 1 ( l ) , . . . , h N ( l ) ( l ) ] T H^{(l)}=[h_1^{(l)},...,h_{N^{(l)}}^{(l)}]^T H(l)=[h1(l),...,hN(l)(l)]T | 第 l l l层节点的数量 N ( l ) N^{(l)} N(l) |
用于节点表示的前向更新的传播模型的计算公式如下
注意力系数 α i j \alpha_{ij} αij的计算公式如下
N
(
i
)
N(i)
N(i)表示节点
v
i
v_i
vi的邻接节点的索引,
Θ
(
l
)
∈
R
d
(
l
+
1
)
×
d
(
l
)
\Theta ^{(l)}\in \mathbb{R}^{d(l+1)\times d{(l)}}
Θ(l)∈Rd(l+1)×d(l)和
a
(
l
)
∈
R
2
d
(
l
+
1
)
a^{(l)} \in \mathbb{R}^{2d(l+1)}
a(l)∈R2d(l+1)表示模型的参数。
节点池化层
根据在TopKPooling(可参考这里)以及SAGEPooling中的重要性分数
s
(
l
)
=
[
s
1
(
l
)
]
s^{(l)}=[s^{(l)}_1]
s(l)=[s1(l)]确定保留哪些节点,两种方式的计算公式如下:
ϕ
i
θ
\phi ^{\theta}_i
ϕiθ根据等式
(
1
)
(1)
(1)计算,
w
(
l
)
∈
R
d
(
l
)
w^{(l)}\in\mathbb{R}^{d^{(l)}}
w(l)∈Rd(l)以及
θ
(
l
)
∈
R
1
×
d
(
l
)
\theta^{(l)} \in \mathbb{R}^{1\times d(l)}
θ(l)∈R1×d(l)是模型的参数,
θ
(
l
)
\theta^{(l)}
θ(l)不同于等式
(
1
)
(1)
(1)中的
Θ
(
l
)
\Theta^{(l)}
Θ(l)输出的
ϕ
i
θ
\phi ^{\theta}_i
ϕiθ是标量。
根据分数向量
s
(
l
)
s^{(l)}
s(l)找到对应的
k
(
l
)
k^{(l)}
k(l)个最大的元素的索引,通过索引操作取出第i行第j列的元素
(
⋅
)
i
,
j
(·)_{i,j}
(⋅)i,j,分数较小的节点将保留较少的特征。
最后,通过展平操作将图的信息转换为向量形式,假定最后一层是
L
L
L,将
N
N
N个节点的特征进行求平均
z
=
m
e
a
n
{
h
i
(
L
)
:
i
=
1
,
.
.
.
,
N
(
L
)
}
z=mean\{h_i^{(L)}:i=1,...,N^{(L)}\}
z=mean{hi(L):i=1,...,N(L)},将
z
z
z送入MLP进行最终的预测。
提出的正则化
Distance Loss
为了克服现有方法基于ranking scores的局限性,由于丢弃的节点和保留的节点的ranking scores可能无法区分,因此提出了两个距离损失来鼓励这种差异。
在引入他们之前,我们以降序的方式,将第m个的实例分数进行排列,表示为
s
^
m
(
l
)
=
[
s
^
m
,
1
(
l
)
]
\hat{s}^{(l)}_{m}=[\hat{s}^{(l)}_{m,1}]
s^m(l)=[s^m,1(l)],将
t
o
p
K
topK
topK个元素表示为
a
m
,
i
(
l
)
=
s
^
m
,
i
(
l
)
,
i
=
1
,
.
.
.
.
,
k
(
l
)
a^{(l)}_{m,i}=\hat{s}_{m,i}^{(l)},i=1,....,k^{(l)}
am,i(l)=s^m,i(l),i=1,....,k(l),剩余的元素表示为
b
m
,
j
(
l
)
=
s
^
m
,
j
+
k
(
l
)
(
l
)
,
j
=
1
,
.
.
.
.
,
N
(
l
)
−
k
(
l
)
b_{m,j}^{(l)}=\hat{s}_{m,j+k^{(l)}}^{(l)},j=1,....,N^{(l)}-k^{(l)}
bm,j(l)=s^m,j+k(l)(l),j=1,....,N(l)−k(l)。作者对所有M个训练的实例应用两种约束。
MMD Loss
最大平均差异损失(Maximum mean discrepancy loss )是在生成对抗网络(GANs)中提出的,用于量化真实样本与生成样本之间得分的差异,为池化层定义MMD损失
BCE Loss
理想的对于选择的节点,分数应该接近1,对于未选择的节点,分数应该接近0,Binary cross entropy loss计算公式如下
Group-Level Consistency Loss
等式 ( 4 ) (4) (4)中的 s ( l ) s^{(l)} s(l)通过 H ( l ) H^{(l)} H(l)计算得到。由于 H ( l ) H^{(l)} H(l)来自不同的实例, s ( l ) s^{(l)} s(l)的实例ranking非常不同。作者为了找到一个公共biomaker用于特定的神经预测任务。因此通过添加正则化,强制向量 s ( l ) s^{(l)} s(l)在第一池层中提取不同组级别生物标记的不同输入实例相似。作者将这种新的正则化方法称为GLC(group-level consistency),仅将其应用于第一池层,因为来自不同实例的后续层中的节点可能不同。
分数矩阵 S c ( 1 ) = [ s 1 , c ( 1 ) , . . . , s M c , c ( 1 ) ] T ∈ R M c × N S^{(1)}_c=[s_{1,c}^{(1)},...,s^{(1)}_{M_c,c}]^T \in \mathbb{R}^{M^c \times N} Sc(1)=[s1,c(1),...,sMc,c(1)]T∈RMc×N
使用欧式距离计算 s i , c s_{i,c} si,c与 s j , c s_{j,c} sj,c(欧式距离凸性和计算效率的优势)
Cross entropy loss
L
c
e
L_{ce}
Lce用于最终的预测损失,最终的损失函数为:
其中λ是可调超参数,l表示第G个GNN块,L表示GNN块的总数,Dist为MMD或BCE。
实验
将前10%偏相关(正数)转换为稀疏连接矩阵, 皮尔逊相关和偏相关用来
度量功能磁共振成像的连通性。 我们通过使用一种度量(皮尔森或者偏相关)建立边的连接,使用另一种度量建立节点的特征。
实施细则
模型有两个卷积层以及两个池化层构成如图2所示,参数
d
(
0
)
=
84
d^{(0)}=84
d(0)=84,
d
(
1
)
=
16
d^{(1)}=16
d(1)=16,
d
(
2
)
=
16
d^{(2)}=16
d(2)=16。作者设计一个3层的MLP每层分别有16,8,2神经元,将图展平输入并预测ASD与HD。池化层保持前50%(
k
(
l
)
=
0.5
N
(
l
)
k^{(l)}=0.5N^{(l)}
k(l)=0.5N(l))重要的节点,将数据随机分成5折,Adam作为优化器,学习率
l
r
=
0.001
lr=0.001
lr=0.001,迭代次数
E
P
O
C
H
=
100
EPOCH=100
EPOCH=100,
20
E
P
C
O
H
20EPCOH
20EPCOH学习率衰减一半,BCE loss与MMD loss保持一致
σ
=
5
\sigma=5
σ=5,
根据等式
(
7
)
(7)
(7)的损失函数调整
λ
1
\lambda_1
λ1与
λ
2
\lambda_2
λ2,不同的
λ
\lambda
λ对应的结果如下
λ 1 λ_1 λ1鼓励在合并后为选定和未选定的节点提供更多可分离的节点重要性分数;
λ 2 λ_2 λ2控制同一类内实例的所选节点的相似性。
图3显示了两个池化层的节点池化得分的分布在不同的pooling layers和distance loss,其中 λ 1 = 0.1 λ_1=0.1 λ1=0.1 和 λ 2 = 0 λ_2 = 0 λ2=0
前50%的重要节点的score靠近1,不重要的节点的分数靠近0(对于使用SAGE的方法第二个pooling层而言),不太明显,即解释为什么SAGE的准确性低于TopK)。具有更高的分数是由于pooling层中选定的重要节点。 然后作者将 λ 1 λ_1 λ1 从0更改为1来研究 λ 2 λ_2 λ2对精度的影响,其中 λ 1 λ_1 λ1固定为0.1。 如果没有 L G L C L_GLC LGLC,则模型容易过拟合,而较大的 L G L C L_GLC LGLC可能会导致对训练集欠拟合。 如表1中的结果所示,当 λ 2 λ_2 λ2从0增加到0.1时,精度增加;如果将 λ 2 λ_2 λ2增加到1,则精度下降(TopK + MMD除外)。 对于以下baseline比较实验,我们将 λ 1 − λ 2 λ_1-λ_2 λ1−λ2设置为0.1-0.1。
模型比较
通过将 PR-GCN与SVM、RF、MLP、BrainNetCNN以及Li等人提出的模型进行比较
为了将与非GNN的模型进行客观的比较,由于偏相关系数只能作为在GNN中的消息传递层,作者将皮尔森相关系数以Embedding的方式(节点的特征)作为输入。
较大的 λ 2 \lambda_2 λ2导致群体级解释,较小的 λ 2 \lambda_2 λ2导致个体级解释
- 当 λ 2 = 0 λ_2 = 0 λ2=0时,图 ( a ) (a) (a)中只有一个发重叠的区域;
- 在图 ( b ) 、 ( c ) (b)、(c) (b)、(c)中,存在较多的重叠区域; ( b ) (b) (b)中有两个重叠区域,在 ( c ) (c) (c)中有四个重叠区域;
- 将所有病例经过 F i r s t P o o l i n g First Pooling FirstPooling层之后的节点重要性得分进行平均,得到背侧纹状体、丘脑和额回是识别ASD最显著的 R O I ROI ROI。这些 R O I ROI ROI参与社会沟通、感知和执行等神经功能相关,这些功能在ASD中缺失的比较明显。