DeepGCNs: Making GCNs Go as Deep as CNNs
  Convolutional Neural Networks (CNNs) have been very successful at solving a
variety of computer vision tasks such as object classification and detection,
semantic segmentation, activity understanding, to name just a few. One key
enabling factor for their great performance has been the ability to train very
deep networks. Despite their huge success in many tasks, CNNs do not work well
with non-Euclidean data, which is prevalent in many real-world applications.
Graph Convolutional Networks (GCNs) offer an alternative that allows for
non-Eucledian data input to a neural network. While GCNs already achieve
encouraging results, they are currently limited to architectures with a
relatively small number of layers, primarily due to vanishing gradients during
training. This work transfers concepts such as residual/dense connections and
dilated convolutions from CNNs to GCNs in order to successfully train very deep
GCNs. We show the benefit of using deep GCNs (with as many as 112 layers)
experimentally across various datasets and tasks. Specifically, we achieve very
promising performance in part segmentation and semantic segmentation on point
clouds and in node classification of protein functions across biological
protein-protein interaction (PPI) graphs. We believe that the insights in this
work will open avenues for future research on GCNs and their application to
further tasks not explored in this paper. The source code for this work is
available at https://github.com/lightaime/deep_gcns_torch and
https://github.com/lightaime/deep_gcns for PyTorch and TensorFlow
implementation respectively.
