Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
DeepGCNs: Can GCNs Go as Deep as CNNs?
shimacos
November 21, 2019
Research
2
630
DeepGCNs: Can GCNs Go as Deep as CNNs?
ICCV'19 で提案された 'DeepGCNs: Can GCNs Go as Deep as CNNs?' についてエルピクセルのLT会で発表しました。
shimacos
November 21, 2019
Tweet
Share
More Decks by shimacos
See All by shimacos
Kaggle Feedback Prizeコンペ 反省会
shimacos
4
1.6k
BQMLことはじめ
shimacos
2
1k
結局Kaggleって何を得られるの?
shimacos
1
2.1k
KDD2020 論文紹介
shimacos
0
1k
「Deep Fake Detection Challenge」が辛かったお話
shimacos
6
1.9k
Pytorchで始めるはじめてのTPU
shimacos
20
7k
MLPシリーズ「強化学習」輪読会 #5
shimacos
1
230
Graph Neural Networksを完全に理解したい
shimacos
11
4.2k
Other Decks in Research
See All in Research
PLDI '21論文読み会: Cyclic Program Synthesis
ideininc
0
810
第15回チャンピオンズミーティング・キャンサー杯ラウンド2集計 / Umamusume Cancer 2022 Round2
kitachan_black
0
510
Navigation for a team of agents
kei18
0
370
第14回チャンピオンズミーティング・ジェミニ杯ラウンド2集計 / Umamusume Gemini 2022 Round 2
kitachan_black
0
860
Celebrate UTIG: Staff and Student Awards 2022
utig
0
240
PLDI '21論文読み会: AKG: Automatic Kernel Generation for Neural Processing Units using Polyhedral Transformations
ideininc
0
840
Crescent Street Bike Lane Presentation
wolframalexa
0
140
より良いTransformerをつくる
butsugiri
22
7.6k
アノテーションのバイアス排除に関する2020年代の研究動向
kuri8ive
1
480
NFTの楽しみかた
shunichiro
1
220
Structure of NLP Papers
ukyh
2
130
[IJCAI-ECAI 2022] Evaluation Methods for Representation Learning: A Survey
nzw0301
0
170
Featured
See All Featured
Three Pipe Problems
jasonvnalue
89
8.7k
A designer walks into a library…
pauljervisheath
196
16k
It's Worth the Effort
3n
172
26k
Automating Front-end Workflow
addyosmani
1351
200k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
11
4.9k
jQuery: Nuts, Bolts and Bling
dougneiner
56
6.4k
Ruby is Unlike a Banana
tanoku
91
9.3k
The World Runs on Bad Software
bkeepers
PRO
57
5.4k
Building Better People: How to give real-time feedback that sticks.
wjessup
344
17k
What's in a price? How to price your products and services
michaelherold
229
9.4k
Adopting Sorbet at Scale
ufuk
63
7.6k
Thoughts on Productivity
jonyablonski
44
2.4k
Transcript
DeepGCNs: Can GCNs Go as Deep as CNNs? [ICCV 2019,
Gunhao Li +] #8【画像処理 & 機械学習】論⽂LT会! @エルピクセル株式会社 2019/11/21 Naoto Shimakoshi
自己紹介 2 • 名前 • 島越 直⼈ (シマコシ ナオト) •
よくトリゴエと間違えられますがシマコシです。 • Twitter • @nt_4o54 • 経歴 • ⼤学時代は⽣体信号から睡眠段階を判別するシステムをDeepで作ってました。 • 社会⼈になってからは、タクシーの位置情報データを⽤いた機械学習プロジェクト に関わってます。 • Kaggle • @shimacos • 最近、Kaggle Masterになりました。
Graph Convolutional Network (GCN) • Convolutional Neural Networkはnon-Euclidean dataを上⼿く扱えない •
要するに隣り合うもの同⼠の距離や結合の違いを考慮できない • グラフデータに対する需要の⾼まり • CV領域でも関⼼が⾼まっている • Semantic relations between objects • Human joints for action recognition • 3D point cloud processing 3 Graph に対して畳み込みを⾏うGraph Convolutional Network の登場
DeepGCNs: Can GCNs Go as Deep as CNNs? • Challenges
• ⼤規模グラフに対してGCNを適⽤した先⾏研究は、3-6層のものが多い • 層を深くしすぎると受容野が広がりすぎて勾配消失が起きやすい • Contributions • CNNで⽤いられている⼿法をGCNに適⽤することで56層 ( ! ) のGCNを提案 • 3次元点群のSegmentation TaskにおいてSoTAを3.7%更新 • 著者によるgithub実装 • Tensorflow : http://github.com/lightaime/deep_gcns • Pytorch : https://github.com/lightaime/deep_gcns_torch 4
• 点群データのSegmentationには以下のような課題が存在 • 単純にVoxelで処理をしようとすると物体の凹凸表現が⽋損する • 点群データは頂点のindexに意味がない • 回転しても等価 • Augmentationで対応することも考えられるが組み合わせが無数で現実的でない
• 点群をGraphとして考えると上記のようなことを意識しなくてもよい 何故点群データにGCN? 5 1 2 3 4 5 2 3 4 5 1
GCNの層を深くするにはどうしたらいいか? • CNNの場合は? • ResNet / DenseNet (勾配消失問題を解決) • Dilated
Convolutional Network • Poolingで失われる空間的情報を削減 6 [1] https://arxiv.org/pdf/1512.03385.pdf [2] https://arxiv.org/pdf/1608.06993.pdf [3] https://arxiv.org/pdf/1511.07122.pdf [1] [2] [3]
CNNの概念をGCNに単純に応用 | Dilated Conv 7 • ⼀般的なGCNの定式化 ( : グラフ,
: 重み, : レイヤーインデックス) 周辺ノードをどのようにAggregateするか
CNNの概念をGCNに単純に応用 | Dilated Conv 8 • ⼀般的なGCNの定式化 ( : グラフ,
: 重み, : レイヤーインデックス) Aggregateされた特徴を使って中⼼ノードをどのように更新するか
CNNの概念をGCNに単純に応用 | Dilated Conv 9 • ⼀般的なGCNの定式化 ( : グラフ,
: 重み, : レイヤーインデックス) • Aggregate Function ( ) = Dilated k-NN function ( : 中⼼ノード, : 近傍ノード) • 近傍ノードを特徴空間上で距離が近い順にd個間隔を空けてk個選択
• ⼀般的なGCNの定式化 ( : グラフ, : 重み, : レイヤーインデックス) •
Aggregate Function ( ) = Dilated k-NN function ( : 中⼼ノード, : 近傍ノード) • 近傍ノードを特徴空間上で距離が近い順にd個間隔を空けてk個選択 • Update function = MLP • Aggregateされた特徴と中⼼ノードの特徴をconcatさせてMLPに⼊⼒ CNNの概念をGCNに単純に応用 | Dilated Conv 10
• ⼀般的なGCNの定式化 ( : グラフ, : 重み, : レイヤーインデックス) •
Aggregate Function ( ) = Dilated k-NN function ( : 中⼼ノード, : 近傍ノード) • 近傍ノードを特徴空間上で距離が近い順にd個間隔を空けてk個選択 • Update function = MLP • Aggregateされた特徴と中⼼ノードの特徴をconcatさせてMLPに⼊⼒ CNNの概念をGCNに単純に応用 | Dilated Conv 11 論⽂の誤植!! 正しくは、concatさせてMLPに ⼊⼒した結果のmaxを取る (github実装参照)
Blockの中⾝でしていることは同じ • ResGCN / DenseGCN • ResGCN-56とDenseGCN-28まで構築 12 CNNの概念をGCNに単純に応用 |
ResNet / DenseNet
Result 13 • S3DISデータセットで実験 • 室内データのセグメンテーションを⾏うデータセット • Ablation studyでは、 ResGCN-28
> ResDense-28, ResGCN-56 > ResGCN-28 • mIOUでSoTAより3.7%改善 (何故かResGCN-56では⽐較していない) • GPUリソースの問題で詳細には試せなかったが、ResGCN-151まで構築してResGCN-28 と似たような結果が得られたらしい。(Over Smoothingしてる?)
個人的感想 • 層を深くできたのは、Residual Connectionの寄与も⼤きいかもしれないが、Aggregateに Max poolingを⽤いてるのが⼤きい? • 結局周辺ノードと⾔いつつ1ペアの情報しかAggregateされてなくない? • 周辺ノードの重み付け和などにすると、層を深くするにつれて受容野が広がってしまい、
勾配消失してしまいそう • 層を深くしても同じパラメータで実験しているっぽいので伸びしろありそう • 3次元点群だけでなく、他の⼤規模グラフに対しても利⽤できそう • エッジが明⽰的に与えられているグラフだとAggregateに⼯夫の余地あり 14
参考 • Dynamic Graph CNN for Learning on Point Clouds
• 点群DNN、3D DNN⼊⾨ -3DYOLO, VoxelNet, PointNet, FrustrumPointNetなどなど • 点群×ディープラーニング【⼊⾨】 15