首页 > 其他分享 >Cluster-GCN An Efficient Algorithm for Training Deep Convolution Networks

Cluster-GCN An Efficient Algorithm for Training Deep Convolution Networks

时间:2023-04-27 16:58:56浏览次数:44  
标签:采样 Training Convolution Algorithm 结点 GCN cdots batch mathcal

目录

Chiang W., Liu X., Si S., Li Y., Bengio S. and Hsieh C. Cluster-GCN: An efficient algorithm for training deep and large graph convolutional networks. KDD, 2019.

以往的 GraphSage, FastGCN 等方法, 虽然能够实现 mini-batch 的训练, 但是他们所采样的方式效率是很低: 所采样的点之间往往可能具有很少的边, 导致整体的结果非常稀疏. 本文提出了一种高效的采样方式, 首先将所有的点聚类, 再采样.

符号说明

  • \(G = (\mathcal{V, E}, A)\), 图;
  • \(|\mathcal{V}| = N\);
  • \(X \in \mathbb{R}^{N \times F}\), 特征矩阵;
  • GCN 的每一层可以表述为:

    \[Z^{(l+1)} = A' X^{(l)} W^{(l)}, \: X^{(l+1)} = \sigma(Z^{(l+1)}), \]

    其中 \(A'\) 是 normalized 邻接矩阵.
  • 最后的损失可以表述为

    \[\tag{1} \mathcal{L} = \frac{1}{|\mathcal{Y}_L|} \sum_{i \in \mathcal{Y}_L} \text{loss}(y_i, z_i^L), \]

    其中 \(\mathcal{Y}_L\) 表示所有打了标签的结点的集合.

Motivation

  • (1) 是一个整体的在所有的打过标签的结点上的损失, 这在应对特别大规模的数据的时候就很麻烦了, 所以我们更希望的是采用 mini-batch 的方式:

    \[\mathcal{L} = \frac{1}{|\mathcal{B}|} \sum_{i \in \mathcal{B}} \text{loss}(y_i, z_i^L). \]

  • 但是有一个问题, 就是图的聚合操作, 需要用到所选的结点邻居, 所以, 即使 \(|\mathcal{B}|\) 本身很小, 为了精准地计算 \(z^L\), 所需的结点也是很多的 (随着层数指数增长). 所以我们只能采样一批点, 然后在较小的邻接矩阵 \(\hat{A}\) 上做聚合操作.

  • 倘若我们采用随机采样的方式, 就容易导致采样的点之间的 edges 很少 (因为我们很难保证恰好采样到那些关系比较紧密的结点). 假设采样的点为 \(\mathcal{B}\), 实际上就是 \(\|A_{\mathcal{B, B}}\|_0\) 很小, 这会使得训练效率异常低下.

Cluster-GCN

  • 本文的思想很简单, 希望通过聚类, 先将结点切分为多个紧密联系的群体 (通过聚类算法 METIS):

    \[[\mathcal{V}_1, \cdots, \mathcal{V}_c], \]

    则我们同样得到 \(c\) 个子图:

    \[[\{\mathcal{V}_1, \mathcal{E}_1, A_{11}\}, \cdots, \{\mathcal{V}_c, \mathcal{E}_c, A_{cc}\}]. \]

  • 于是乎, 在实际上训练的时候, 我们可以直接选择某个子图 \(G_i\) 作为一个 batch 用于训练.

  • 这种做法, 实际上相当于用

    \[\bar{A} = \left[ \begin{array}{ccc} A_{11} & \cdots & 0 \\ \vdots & \ddots & \vdots \\ 0 & \cdots & A_{cc} \\ \end{array} \right] \]

    去逼近 \(A\), 由于我们舍去了很多 Links, 必然会导致性能的下降.

  • 故本文在实际中, 会选择一个 (比预想) 较大的 \(c\), 然后每次采样的时候, 从中选择 \(q\) 个 clusters 作为一个 batch.

代码

Official

PyTorch

标签:采样,Training,Convolution,Algorithm,结点,GCN,cdots,batch,mathcal
From: https://www.cnblogs.com/MTandHJ/p/17358798.html

相关文章

  • Spatiotemporal Remote Sensing Image Fusion Using Multiscale Two-Stream Convoluti
    SpatiotemporalRemoteSensingImageFusionUsingMultiscaleTwo-StreamConvolutionalNeuralNetworksabstract地表反射率图像的渐变和突变是现有STF方法的主要挑战。(Gradualandabruptchangesinlandsurfacereflectanceimagesarethemainchallengesinexisting......
  • 论文解读(VAT)《Virtual Adversarial Training: A Regularization Method for Supervise
    论文信息论文标题:VirtualAdversarialTraining:ARegularizationMethodforSupervisedandSemi-SupervisedLearning论文作者:TakeruMiyato,S.Maeda,MasanoriKoyama,S.Ishii论文来源:2020ECCV论文地址:download 论文代码:download视屏讲解:click1前言提出问题:在......
  • 论文解读《Do We Need Zero Training Loss After Achieving Zero Training Error?》
    论文信息论文标题:DoWeNeedZeroTrainingLossAfterAchievingZeroTrainingError?论文作者:TakashiIshida,I.Yamane,TomoyaSakai,GangNiu,M.Sugiyama论文来源:2020ICML论文地址:download 论文代码:download视屏讲解:click1简介训练模型的时候,需要将训练损失降......
  • algorithm:算法库
    #include<algorithm>usingnamespacestd;//常用函数sort(begin,end);//对区间进行排序reverse(begin,end);//对区间进行翻转rotate(begin,middle,end);//将区间按照middle为界旋转unique(begin,end);//去除区间中相邻的重复元素min_element(begin,end);//找到......
  • A Comparison and Evaluation of Multi-View Stereo Reconstruction Algorithms
    介绍多视图立体重建是计算机视觉领域中一个非常重要的研究方向,它可以应用于三维建模、虚拟现实、机器人导航等多个领域。然而,目前多视图立体重建领域存在着很多问题和挑战,例如精度不高、完整性不足等。因此,作者希望通过本文对当前主流算法进行比较和评估,为该领域的进一步发展提供......
  • 猛读论文13 |【CVPR 2022 UDA】Unleashing Potential of Unsupervised Pre-Training w
    动机解决(1)对比学习管道中的增强通常会扭曲人物图像中的判别线索(2)细粒度的局部特征人物图像尚未得到充分探索。 思路    方法 ......
  • 迁移学习(PAT)《Pairwise Adversarial Training for Unsupervised Class-imbalanced Dom
    论文信息论文标题:PairwiseAdversarialTrainingforUnsupervisedClass-imbalancedDomainAdaptation论文作者:WeiliShi,RonghangZhu,ShengLi论文来源:KDD2022论文地址:download 论文代码:download视屏讲解:click1摘要提出问题:类不平衡问题;解决方法:提出了一......
  • Layer-Dependent Importance Sampling for Training Deep and Large Graph Convolutio
    目录概符号说明MotivationLADIES代码ZouD.,HuZ.,WangY.,JiangS.,SunY.andGuQ.Layer-dependentimportancesamplingfortrainingdeepandlargegraphconvolutionalnetworks.NIPS,2019.概本文在以往的mini-batch的快速算法上进行了改进.符号说明\(\m......
  • CodeForces - 368C Sereja and Algorithm (找规律&模拟)
    CodeForces-368CSerejaandAlgorithmTimeLimit: 1000MS MemoryLimit: 262144KB 64bitIOFormat: %I64d&%I64uSubmit StatusDescriptionSerejalovesallsortsofalgorithms.Hehasrecentlycomeupwithanewalgorithm,whichreceiv......
  • LeetCode:Search Algorithm
    LeetCode:SearchAlgorithm1\FirstuniquecharAlgorithmDesign利用字符数量的有限性,通过数组来映射(避免Hash_map的高复杂度)注意数组声明为intA[26]而不是charA[26];if(s=="")return''; intA[26]={0,0}; for(inti=0;i<s.length();i++){ A[s[i]-......