1.序言
最近读论文看到很多论文提到了耦合与解耦合的概念,实在不懂,就细细看了一下,下面是我的理解,如有不对欢迎指出。本文参考论文:
Cheng K, Zhang Y, Cao C, et al. Decoupling gcn with dropgraph module for skeleton-based action recognition[C]//Computer Vision–ECCV 2020: 16th European Conference, Glasgow, UK, August 23–28, 2020, Proceedings, Part XXIV 16. Springer International Publishing, 2020: 536-553.
2.GCN中的耦合聚集
关于GCN的过程理解可以参考我的博客 清晰图解,一图看懂图卷积GCN、时空图卷积ST-GCN ;在GCN中,我们可以看到特征之间的计算是通过邻接矩阵来实现的,所有的通道都使用同一个邻接矩阵,即对于所有的特征,都使用同一种模式加到一个节点上。如下图所示:绿色的块代表邻接矩阵,蓝色的代表输入特征,将特征分解成不同通道的话,每一个通道都使用同一个邻接矩阵。这被称为GCN的耦合聚集(coupling aggregation)
论文原话:特征X的所有通道共享一个邻接矩阵A(用相同的颜色绘制),这意味着所有通道共享相同的聚合内核。我们称之为耦合聚集。现有的基于GCN的骨架动作识别方法都采用了耦合聚合,如ST-GCN 、非局部自适应GCN 、AS-GCN 、Directed-GNN。我们统称它们为耦合图卷积。
3.CNN中的解耦合
首先我们要弄懂一个逻辑,对于一个3通道的RGB图像而言,用5个3×3的卷积核去卷,卷积的参数为5×3×3×3,即5个卷积核,3个原通道,3×3的卷积参数,这说明:对于CNN而言,每个通道的卷积核参数是不一样的,3*3的卷积核在第一层通道卷完后,再以不同的9个参数卷第二层第三层,然后将三层相同位置的值相加,得到最终的一层输出,这样再叠加5次,得到最后的5个通道输出。我们验证一下:
可以看到,对于2个通道的输入(为了与后面的3×3卷积参数分开特地设置维度为2)而言,卷积核的参数为5×2×3×3
注意这里只讨论了weights,对于bias每个滤波器只有一个,如这里我们用5个卷积核去卷(out_channels = 5,也就是filter = 5),就有五个bias,对于其中一个filter而言,先将原来输入的所有通道都乘上对应的weights然后按通道相加,给结果加上一个bias成为该卷积核最后的卷积输出。
对于CNN而言,卷积核的参数相当于之前的邻接矩阵,表示特征怎样聚合在一起。那么,对于一个输入图像而言,每个通道都有不同的卷积参数,最后叠加在一起,如下图所示,不同的颜色代表不同的通道参数不一致,C为输入通道, C ′ C^{'} C′为输出通道,即卷积核个数。每个通道都有不同的参数,这被称为解耦聚集(decoupling aggregation)
论文原话:CNN是GCN的灵感来源,它不采用耦合聚合。如上图所示,不同的通道具有独立的空间聚集核,以不同的颜色显示。我们称这种机制为解耦聚合。解耦聚集机制可以大大提高空间聚集能力,这对于CNN的成功至关重要。
该论文认为GCN只使用相同的邻接矩阵不利于模型学习,因此以CNN的解耦合为灵感修改了GCN的邻接矩阵。
如下图所示:
4.联系方式
有问题欢迎联系:1759412770@qq.com,尽量发邮件