Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

グラフニューラルネットワーク入門

5,233 views

Published on

https://math-coding.connpass.com/event/147508/ Math&coding#6 の発表資料

Published in: Engineering
  • Be the first to comment

グラフニューラルネットワーク入門

  1. 1. Facebook https://www.youtube.com /channel/UCo33DtDOIttjiK Kqn-YOHSw
  2. 2. Back-end: Graph Convolution Visualization CUDA GPU acceleration Multi-task/multi-modal model support Utility (CV, Feature extraction) Hyper parameter optimization Algorithms Command-line tools User interface: グラフニューラルネットワーク用ライブラリ 様々なレベルの人がグラフニューラルネットワークを含む深層学習を利用可能 になることを目指したツール群 kGCN: Graph Convolutional Network tools for life science Github: https://github.com/clinfo/kGCN
  3. 3. • • • • •
  4. 4. ダートマス会議 第5世代プロジェクト チェスプログラムDeepBlue エキスパートシステム
  5. 5. 𝑥1, 𝑥2, … , 𝑥 𝑛 𝑤1, 𝑤2, … , 𝑤 𝑛, 𝑏 𝑦 𝜎 𝑥 𝑥1 𝑥2 𝑥 𝑁 𝑦 … 𝑤1 𝑤2 𝑤 𝑁 𝑦 = 𝜎 ෍ 𝑛 𝑁 𝑤 𝑛 𝑥 𝑛 + 𝑏 1 1 + 𝑒−𝑥 シグモイド関数 ステップ関数 一定以上の刺激 発火
  6. 6. 𝑥1 𝑥2 𝑦 𝑤1 𝑤2 𝑦 = 𝜎 𝑤1 𝑥1 + 𝑤2 𝑥2 + 𝑏 𝑥1, 𝑥2 𝑤1, 𝑤2, 𝑏 𝑦 𝜎 𝑥 𝑤1 𝑥1 + 𝑤2 𝑥2 + 𝑏 色 大きさ 境界は直線になる
  7. 7. 𝑥1 𝑥2 𝑦 𝑤1 𝑤2 𝑦 = 𝜎 𝑤1 𝑥1 + 𝑤2 𝑥2 + 𝑏 𝑥1, 𝑥2 𝑤1, 𝑤2, 𝑏 𝑦 𝜎 𝑥 𝒙 𝟏 𝒙 𝟐 𝒚 0 0 0 0 1 0 1 0 0 1 1 1 𝑤1 = 1 𝑤2 = 1 𝑏 = −1.5 0 1 𝑤1 𝑤2, 𝑏 𝑥1 𝑥2
  8. 8. 𝑥1 𝑥2 𝑦 𝑤1 𝑤2 𝑦 = 𝜎 𝑤1 𝑥1 + 𝑤2 𝑥2 + 𝑏 𝑥1, 𝑥2 𝑤1, 𝑤2, 𝑏 𝑦 𝜎 𝑥 𝒙 𝟏 𝒙 𝟐 ෝ𝒚 0 0 0 0 1 0 1 0 0 1 1 1 1 1 + 𝑒−𝑥 𝜎′ 𝑥 = 𝜎 𝑥 1 − 𝜎 𝑥 𝑤1, 𝑤2, 𝑏 min 𝑤1,𝑤2,𝑏 1 2 ෍ 𝑖 𝑒𝑖 2 𝑒𝑖 = 𝑦 𝑥1 (𝑖) , 𝑥2 (𝑖) − ො𝑦(𝑖) 𝑖
  9. 9. 𝑤1← 𝑤1 − 𝛼 𝜕𝑒2 𝜕 𝑤1 𝑤2← 𝑤2 − 𝛼 𝜕𝑒2 𝜕 𝑤2 𝛼 0 1 𝑤1 𝑤2 𝑤1 𝑥1 + 𝑤2 𝑥2 + 𝑏 𝑥1 𝑥2 𝑥1 𝑥2 min 𝑤1,𝑤2,𝑏 1 2 ෍ 𝑖 𝑒𝑖 2 𝑒 = 𝑦 − ො𝑦 𝑦 = 𝜎 𝑤1 𝑥1 + 𝑤2 𝑥2 + 𝑏
  10. 10. 𝒙(1) 𝐖(1) , 𝒃(1) , 𝐖(2) , 𝒃(2) 𝒚 𝜎 𝑥 𝒙(2) = 𝜎 𝐖(1) 𝒙(1) + 𝒃(1) 𝒚 = 𝜎 𝐖(2) 𝒙(2) + 𝒃(2) 𝒙(1) 𝒙(2) 𝒚
  11. 11. https://playground.tensorflow.org/
  12. 12. 𝒙(1) 𝐖(1) , 𝒃(1) , 𝐖(2) , 𝒃(2) 𝒚 𝜎 𝑥 𝒙(2) = 𝜎 𝐖(1) 𝒙(1) + 𝒃(1) 𝒚 = 𝜎 𝐖(2) 𝒙(2) + 𝒃(2) 𝒚 min 𝐖(1),𝒃(1),𝐖(2),𝒃(2) 1 2 𝒆2 𝜕 𝒆2 𝜕𝑤11 (1) = 𝒆 𝑇 ⋅ 𝜕 𝒚 𝜕𝑥1 2 ⋅ 𝜕 𝑥1 (2) 𝜕𝑤11 (1) :𝑤11 1 ← 𝑤11 1 + 𝛼 1 2 𝜕𝒆2 𝜕𝑤11 1 ・𝒆 = ෝ𝒚 − 𝒚 ・ෝ𝒚 𝑤11 (1) 𝑥1 (2) 𝑤11 (2) 𝜕 𝒆2 𝜕𝑤11 (2) = 𝒆 𝑇 ⋅ 𝜕 𝒚 𝑤11 (2)
  13. 13. 𝐷 𝒘 ← 𝒘 + 𝛼 𝛻𝐽 𝐽 𝑑 = 𝑒2𝐽 = ෍ 𝑑=1 𝐷 𝐽 𝑑 𝒘 ← 𝒘 + 𝛼 𝛻𝐽 𝑑 データ データ 𝛼 𝑤1 𝑤2 𝑤1 𝑤2
  14. 14. • • • • • • • • • • • • • • • • • • • •
  15. 15. 学習データの読み込み ネットワーク構築 順伝搬 逆誤差伝搬 重み更新 停止判定 テストデータ読み込み 順伝搬 誤差の評価 学習 評価 バリデーション データ読み込み 順伝搬 誤差の評価 バリデーション
  16. 16. • • • • • • • •
  17. 17. • MLP 0.5 1.0 0.7 …… 0.8 0.3 0.2 …… 0.5 0.2 0.8 …… : : : : : : …… 0.8 0.7 0.5 0.8 Kernel (filter) Feature map (image) 1.74 1.6 …… 1.6 1.12 …… : : : : …… 0.5 × 0.8 + 1.0 × 0.7 + 0.8 × 0.5 + 0.3 × 0.8 Feature map
  18. 18. 𝑔(𝑡) ∗ 𝑓(𝑡) = ෍ 𝜏 𝑔 𝜏 𝑓(𝑡 − 𝜏) 𝑔(𝑡) 𝑓(𝑡) 𝑔(𝑡) ∗ 𝑓(𝑡)
  19. 19. 𝑾 𝑾 𝑔(𝑡) ∗ 𝑓(𝑡) = ෍ 𝜏=0 𝑁 𝑔 𝜏 𝑓(𝑡 − 𝜏) = 𝑔 0 , 𝑔 1 , … , 𝑔 𝑁 𝑓 𝑡 − 0 , 𝑓 𝑡 − 1 , … , 𝑓 𝑡 − 𝜏 𝑇 = 𝒘 𝑇 𝒙 𝑡 𝑾𝒙 𝑡 𝑾𝑿 𝑡
  20. 20. 𝑔(𝑡) ∗ 𝑓(𝑡) = ෍ 𝜏=0 𝑁 𝑔 𝜏 𝑓(𝑡 − 𝜏) = 𝑔 0 , 𝑔 1 , … , 𝑔 𝑁 𝑓 𝑡 − 0 , 𝑓 𝑡 − 1 , … , 𝑓 𝑡 − 𝜏 𝑇 = 𝒘 𝑇 𝒙 𝑡 𝑾𝒙 𝑡 𝑾𝑿 𝑡 𝑾 𝑾
  21. 21. 0.5 1.0 0.7 0.6 0.8 0.3 0.2 0.4 0.5 0.2 0.8 0.1 0.3 0.1 0.5 0.2 0.8 0.7 0.5 0.8 max Max pooling
  22. 22. • MLP Convolutions Pooling MLP 文字「A」
  23. 23. 授業資料等:http://small-island.work/trial/ https://www.youtube.com/channel/UCo33DtDOIttjiKKqn-YOHSw
  24. 24. 1 2 3 4 5 • • • • • • https://ja.wikipedia.org/wiki/%E4%B8%80%E7 %AD%86%E6%9B%B8%E3%81%8D
  25. 25. https://www.amazon.co.jp/FAZHEN- %E3%83%9A%E3%83%B3%E3%82%AE%E3%83%B3%E3%82%AF%E3%83%A9%E3%83%83 %E3%82%B7%E3%83%A5%E3%82%A2%E3%82%A4%E3%82%B9%E3%82%B2%E3%83%BC %E3%83%A0-
  26. 26. https://ja.wikipedia.org/wiki/%E8%A4%87%E9%9B%91%E3%83%8D%E3%83 %83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF
  27. 27. 1 2 3 4 5 ノード𝑖とノード𝑗に エッジがあれば1なければ0 𝟎 𝟎 𝟏 𝟎 𝟎 𝟎 𝟎 𝟏 𝟎 𝟎 𝟏 𝟎 𝟎 𝟏 𝟏 𝟎 𝟎 𝟏 𝟎 𝟏 𝟎 𝟏 𝟎 𝟏 𝟎 1 2 3 4 5 𝟎 𝟎 𝟎 𝟎 𝟎 𝟎 𝟎 𝟎 𝟎 𝟎 𝟏 𝟎 𝟎 𝟏 𝟎 𝟎 𝟎 𝟏 𝟎 𝟏 𝟎 𝟎 𝟎 𝟏 𝟎 (無効グラフでは隣接行列は対称になる)
  28. 28. 𝑨 = 𝟎 𝟎 𝟎 𝟎 𝟎 𝟎 𝟎 𝟎 𝟎 𝟎 𝟏 𝟎 𝟎 𝟏 𝟎 𝟎 𝟎 𝟏 𝟎 𝟏 𝟎 𝟎 𝟎 𝟏 𝟎 1 3 4 5 𝑏𝑖,𝑗 𝑏𝑖,𝑗 = ෍ 𝑘 𝑎𝑖,𝑘 𝑎 𝑘,𝑗 𝑏𝑖,𝑗 𝑩 𝑩 = 𝑨 𝟐 2
  29. 29. 𝑳 = 𝑫 − 𝑨 𝑨 = 𝟎 𝟎 𝟏 𝟎 𝟎 𝟎 𝟎 𝟏 𝟎 𝟎 𝟏 𝟎 𝟎 𝟏 𝟎 𝟎 𝟎 𝟏 𝟎 𝟏 𝟎 𝟏 𝟎 𝟏 𝟎 1 3 4 52 𝑫 = 𝟏 𝟎 𝟎 𝟎 𝟎 𝟎 𝟏 𝟎 𝟎 𝟎 𝟎 𝟎 𝟎 𝟎 𝟎 𝟎 𝟑 𝟎 𝟎 𝟎 𝟐 𝟎 𝟎 𝟎 𝟏 𝑳 = 𝟏 𝟎 − 𝟏 𝟎 𝟎 𝟎 𝟏 −𝟏 𝟎 𝟎 −𝟏 𝟎 𝟎 −𝟏 𝟎 𝟎 𝟑 −𝟏 𝟎 −𝟏 𝟐 −𝟏 − 𝟎 𝟏 𝟏
  30. 30. Δ𝑢 = 𝜕2 𝑢 𝜕𝑥2 + 𝜕2 𝑢 𝜕𝑦2 + 𝜕2 𝑢 𝜕𝑧2 𝑥 𝑛+1 = 𝑥 𝑛 + ℎ𝑥 𝑛 ′ + 1 2 ℎ2 𝑥 𝑛 ′′ + O ℎ3 𝑥 𝑛+1 + 𝑥 𝑛−1 = 2𝑥 𝑛 + ℎ2 𝑥 𝑛 ′′ + O ℎ3 𝑥 𝑛𝑥 𝑛−1 𝑥 𝑛+1 𝑥 𝑛−1 = 𝑥 𝑛 − ℎ𝑥 𝑛 ′ + 1 2 ℎ2 𝑥 𝑛 ′′ + O ℎ3 𝑥 𝑛 ′′ = 𝑥 𝑛+1 − 2𝑥 𝑛 + 𝑥 𝑛−1 ℎ2 + O ℎ ℎℎ 𝑳 = 𝑫 − 𝑨 1 32 𝑳 = 𝟏 −𝟏 𝟎 −𝟏 𝟐 −𝟏 − 𝟎 𝟏 𝟏 𝑦1 𝑦2 𝑦3 = 𝑳 𝑥1 𝑥2 𝑥3 𝑦2 = −𝑥1 + 2𝑥2 − 𝑥3
  31. 31. https://www.amazon.co.jp/FAZHEN- %E3%83%9A%E3%83%B3%E3%82%AE%E3%83%B3%E3%82%AF%E3%83%A9%E3%83%83 %E3%82%B7%E3%83%A5%E3%82%A2%E3%82%A4%E3%82%B9%E3%82%B2%E3%83%BC %E3%83%A0-
  32. 32. Zhang, Ziwei, Peng Cui, and Wenwu Zhu. "Deep learning on graphs: A survey." arXiv preprint arXiv:1812.04202 (2018).
  33. 33. グラフニューラルネットワークで考える設定 (1/2) 名前: 年齢: エッジは向きが あってもなくてもよい ノードは情報を持っていてよい エッジは数種類あってもよい
  34. 34. グラフニューラルネットワークで考える設定 (2/2) 化合物をグラフで表現する エッジは向きがない ノード(原子)は情報を持っている エッジ(結合)は数種類ある ノード情報: 原子名 混成軌道 … Wikipedia:nanoputian
  35. 35. グラフにベクトルとして ノード情報(特徴量)がついてい る状況を考える エッジは有効・無効・複数種類 あってもよい 特徴量がない場合は「埋め込み」という方法を使う ・最初にランダムに特徴を与えて、特徴もデータから学習する ・各種グラフ埋め込み手法を利用する(node2vecなど)
  36. 36. 𝑾 Graph Convolution は隣接したノード のベクトルに対してフィルタを掛 けて、足し合わせるという処理を 行う。 Convolution と同様に𝑊をフィルタ とみなすと、グラフ上のベクトル の特定のパターンにのみ値が大き くなるような関数を構成すること ができる。 同様の処理をすべてのノードに行う
  37. 37. 𝑾 𝒚𝑖 = ෍ 𝑗 𝑎𝑖,𝑗 𝒙𝑗 𝑻 𝑾 1 2 3 4 5 ノード𝑖とノード𝑗に エッジがあれば1なければ0 𝑎𝑖,𝑗を要素とする行列𝑨を隣接行列と呼ぶ 𝒀 = 𝑨𝑿 𝑾 𝑨 = 𝟏 𝟎 𝟎 𝟎 𝟎 𝟎 𝟏 𝟎 𝟎 𝟎 𝟏 𝟎 𝟎 𝟏 𝟎 𝟎 𝟏 𝟏 𝟎 𝟏 𝟏 𝟎 𝟎 𝟏 𝟏
  38. 38. 𝑾 1 2 3 4 5 二つ隣かどうかの0/1変数𝑏𝑖,𝑗 𝑏𝑖,𝑗 = ෍ 𝑘 𝑎𝑖,𝑘 𝑎 𝑘,𝑗 𝑏𝑖,𝑗を要素に持つ行列𝑩 𝑩 = 𝑨 𝟐 𝒀 = 𝑨𝑿𝑾 𝟏 + 𝑨 𝟐 𝑿𝑾 𝟐 実際には𝑨 𝟐が0でない部分を1に する処理が必要
  39. 39. 𝑾 1 2 3 4 5 𝒀 = 𝑨 𝟏 𝑿𝑾 𝟏 + 𝑨 𝟐 𝑿𝑾 𝟐 𝑨 = 𝟏 𝟎 𝟎 𝟎 𝟎 𝟎 𝟏 𝟎 𝟎 𝟎 𝟏 𝟎 𝟎 𝟏 𝟎 𝟎 𝟏 𝟏 𝟎 𝟏 𝟏 𝟎 𝟎 𝟏 𝟏 𝑨 𝟏 = 𝟏 𝟎 𝟎 𝟎 𝟎 𝟎 𝟏 𝟎 𝟎 𝟎 𝟏 𝟎 𝟎 𝟎 𝟎 𝟎 𝟏 𝟏 𝟎 𝟏 𝟏 𝟎 𝟎 𝟏 𝟏 𝑨 𝟐 = 𝟏 𝟎 𝟎 𝟎 𝟎 𝟎 𝟏 𝟎 𝟎 𝟎 𝟎 𝟎 𝟎 𝟏 𝟎 𝟎 𝟏 𝟎 𝟎 𝟎 𝟏 𝟎 𝟎 𝟎 𝟏 エッジの種類は複数のグラフの重 ね合わせとして表現 同様に、複数グラフの入力も可能 エッジの種類で隣接行列を分解
  40. 40. 1 3 4 5 𝑨 = 𝟏 𝟎 𝟎 𝟎 𝟎 𝟎 𝟏 𝟎 𝟎 𝟎 𝟏 𝟎 𝟎 𝟏 𝟎 𝟎 𝟏 𝟏 𝟎 𝟏 𝟏 𝟎 𝟎 𝟏 𝟏 2 𝑨 𝟐 = 𝟏 𝟎 𝟎 𝟎 𝟎 𝟎 𝟏 𝟎 𝟎 𝟎 𝟎 𝟎 𝟎 𝟎 𝟎 𝟎 𝟏 𝟏 𝟎 𝟎 𝟏 𝟎 𝟎 𝟏 𝟏 𝑨 𝟑 = 𝟏 𝟎 𝟎 𝟎 𝟎 𝟎 𝟏 𝟎 𝟎 𝟎 𝟏 𝟎 𝟎 𝟏 𝟎 𝟎 𝟏 𝟎 𝟎 𝟏 𝟏 𝟎 𝟎 𝟎 𝟏 𝒀 = 𝑨 𝟐 𝑿𝑾 𝟏 + 𝑨 𝟑 𝑿𝑾 𝟐 次数ごとに隣接行列を分解する。
  41. 41. 1 3 4 5 𝑨 = 𝟏 𝟎 𝟎 𝟎 𝟎 𝟎 𝟏 𝟎 𝟎 𝟎 𝟏 𝟎 𝟎 𝟏 𝟎 𝟎 𝟏 𝟏 𝟎 𝟏 𝟏 𝟎 𝟎 𝟏 𝟏 2 𝑨 𝟏 𝟏 𝟏 𝟏 𝟏 = 𝟏 𝟏 𝟒 𝟑 𝟏
  42. 42. 𝑾 1 3 4 5 𝒀 = 𝜎 𝑿𝑾 + 𝒃 ノード間の相互作用はなしで、 各特徴量を変換する 𝜎: 活性化関数 2
  43. 43. 1 3 4 5 全ノードのベクトルを 足し合わせる 2 グラフ表現からベクトルに変換するため に利用 この層より後段は通常のNNが利用可能
  44. 44. BNGCN Activation BNGCN Activation Graph fully-connected graph gathering MLP 1. GCN+Activation+Batch Normalization の組み合わせを セットにして、何層か詰む 2. Graph fully-connected 層を必要に応じて挟む 3. Graph gathering 層を挟んでグラフからベクトルに変換 4. MLPで予測対象のラベルを出力
  45. 45. • Graph-centric • Node-centric • Link prediction
  46. 46. Graph-centric vs Node-centric Class 2 Class 1 Class 1 Class 1 Class 2 Class 1 Node-centric: ノードにラベルがついているGraph-centric: グラフにラベルがついている GCN はGraph-centric と Node-centricの両方に対応できる。 SNSのデータなどはNode-centricな方が自然な場合がある
  47. 47. Graph-centric vs Node-centric Graph-centric の例 BNGCN Activation BNGCN Activation Graph fully-connected graph gathering MLP O OH NH2OO NH ・水溶性予測 ・毒性予測Node-centric の例 BNGCN Activation BNGCN Activation Graph fully-connected Class 2 Class 1 SNSネットワーク ・ボット検出 ・潜在顧客検出
  48. 48. 𝑓( , ) Link prediction A C D EB GCNにより 得られるベクトル 入力グラフ 疑似負例 正例 𝑓( , )A CA B < スコア関数 成り立つようにスコア関数&GCNを学習 スコア関数の値が高いほどエッジのある可能性が高い (エッジがない&スコアが高い→未知のエッジの可能性が高い)
  49. 49. Link prediction Link prediction の例:商品の推薦システム BNGCN Activation BNGCN Activation Graph fully-connected ユーザ 商品
  50. 50. 𝑔(𝑡) ∗ 𝑓(𝑡) = ෍ 𝜏 𝑔 𝜏 𝑓(𝑡 − 𝜏) 𝑔(𝑡) 𝑓(𝑡) 𝑔(𝑡) ∗ 𝑓(𝑡) 𝐹 𝑔(𝑡) ∗ 𝑓(𝑡) = 𝐹 𝑔(𝑡)] 𝐹[𝑓(𝑡) 𝐹 𝐹 𝑓 𝑥 = න −∞ ∞ 𝑓 𝑥 𝑒 𝑖𝜔𝑥 𝑑𝑥 = 〈𝑓 𝑥 , 𝑒 𝑖𝜔𝑥〉 Δℎ 𝜔(𝑥) = 𝜆 𝜔ℎ 𝜔(𝑥) ℎ 𝜔 𝑥 = 𝑒 𝑖𝜔𝑥 𝜆 𝜔 = −𝜔2 ℎ 𝑥
  51. 51. 𝑳 = 𝑫 − 𝑨 𝑨 𝑫 𝑳 = 𝑼𝚲𝐔 𝐓 ෝ𝒙 = 𝑼 𝑇 𝒙 𝒙 = 𝑼ෝ𝒙 𝑼 𝑑𝑖𝑎𝑔 𝒘 ෝ𝒙 = 𝑼𝑑𝑖𝑎𝑔 𝒘 𝑼 𝑇 𝒙 Δℎ 𝜔(𝑥) = 𝜆 𝜔ℎ 𝜔(𝑥) 𝐹 𝑓 𝑥 = 〈𝑓 𝑥 , ℎ 𝜔(𝑥)〉 𝐹 𝑔(𝑡) ∗ 𝑓(𝑡) = 𝐹 𝑔(𝑡)] 𝐹[𝑓(𝑡)𝑑𝑖𝑎𝑔 𝒘 : 𝒘を対角 要素に持つ行列 → 𝑼𝑔 𝒘 𝚲 𝑼 𝑇 𝒙 𝑳 = 𝑫−1/2 𝑫 − 𝐀 𝑫−1/2
  52. 52. 𝑼𝑔 𝒘 𝚲 𝑼 𝑇 𝒙 𝑔 𝒘 𝚲 ≅ ෍ 𝑘=0 𝐾 𝑤′ 𝑘 𝑇k(෩𝚲) 𝑼𝑇k ෩𝚲 𝑼 𝑇 = 𝑇k ෨𝑳 ෍ 𝑘=0 𝐾 𝑤′ 𝑘 𝑇k(𝑳)𝒙 𝑇k: k 多項式(チェビシェフ多項式による近似) 𝑇0 𝑥 = 1 𝑇1 𝑥 = 𝑥 𝑇k 𝑥 = 2𝑥𝑇k−1 𝑥 − 𝑇k−2 𝑥 𝑤′0 𝒙 + 𝑤′ 1 𝑳 − 𝑰 𝑥 = 𝑤′0 𝒙 − 𝑤′ 1 𝑫−1/2 𝑨𝑫−1/2 𝒙 𝐾 = 1とすると ෩𝚲:固有値を−1~1にノーマライズしたもの 𝑳 = 𝑫−1/2 𝑫 − 𝐀 𝑫−1/2 = 𝐼 − 𝑫−1/2 𝑨𝑫−1/2 𝑾 𝑰 + 𝑫−1/2 𝑨𝑫−1/2 𝒙 = 𝑾෩𝑨 𝒙 ෩𝑨 = 𝑰 + 𝑫−1/2 𝑨𝑫−1/2 Re-normalization:
  53. 53. 1次近似 2次近似 元の変換(ランダムに生成したグラフ・特徴量でプロット) 3次近似 10次近似 https://colab.research.google.com/drive/1PwDQTy9trj2O4Dn-byrj9qF2jcA8Ul74コード
  54. 54. Back-end: Graph Convolution Visualization CUDA GPU acceleration Multi-task/multi-modal model support Utility (CV, Feature extraction) Hyper parameter optimization Algorithms Command-line tools User interface: グラフニューラルネットワーク用ライブラリ 様々なレベルの人がグラフニューラルネットワークを含む深層学習を利用可能 になることを目指したツール群 kGCN: Graph Convolutional Network tools for life science Github: https://github.com/clinfo/kGCN
  55. 55. ブロックを線でつなげることで、グラフィカルに処理を記述可能 前処理部分 学習・可視化部分 GCNモジュール
  56. 56. https://colab.research.google.com/drive/1E9sCWQKWs2BO_i_zAudne-8nJQigYYLl
  57. 57. Integrate gradients (IG) による可視化を実装済み Sundararajan, Mukund, Ankur Taly, and Qiqi Yan. "Gradients of counterfactuals." arXiv preprint arXiv:1611.02639 (2016). • ニューラルネットワークの アーキテクチャに依存しない Numberofatoms features 特徴量レベル貢献度 • グラフのノードの貢献度 • ノードの特徴量レベルの貢 献度 GCNを含むマルチモーダ ル・タスクマルチモーダル を可視化可能 • データサンプル・特徴量レベル での予測の貢献度を算出可能 赤い部分が予測により効いている 原子レベル貢献度 予測貢献度の可視化 グラフ・系列・ベクトルに対する可視化に統一的な仕組みで可視化が可能
  58. 58. The performance of this method was examined using a simple dataset (water solubility) with binary labels of solubility(High/Low) Water solubility prediction model 0037-2-pentanol 0038-2,2-dimethyl -1-propanol 0043-1,2-benzenediol 0048-cyclohexanone 0051-succinic_acid 0067-2,5-dimethylpyridine 0068-nicotinic_acid 0073-arecoline 0078-caffeine 0079-piperazine IG-based visualization consistent with chemical intuition like hydrophilic groups Number of training compounds: 623 Number of predicting compounds: 142 Number of features: 75 Training using a GCN (single-modal) Solubility=High
  59. 59. 特に化合物等を用いたグラフコンボリューションネットワークでは多くの疎行列に対する積計算が重要に なってくる (汎用的なGPUの高速計算ライブラリの多くはこれに対応していない)  人工的なベンチマークを用いて評価  7~8倍の計算の高速化 (特徴量が極端に多くない場合) Batched sparse matrix multiplication(BatchedSpMM)を用いた グラフコンボリューションネットワークの高速計算 複数の行列に対する(Batched)疎行列積計算ライブラリ(sparse matrix multiplication)を開発 TensorFlow経由で容易に呼び出し可能 Nagasaka, et al. "Batched sparse matrix multiplication for accelerating graph convolutional networks." CCGRID. 2019
  60. 60. kGCNプラットフォームの開発 https://github.com/clinfo/kGCN オープンソースプロジェクトとして公開 ロードマップ 今年度 ・ベイズ最適化 ・能動学習 ・オンライン学習 ・GCN以外の手法追加 来年度 ・生成モデル ・転移学習 ・メタラーニング Back-end: Graph Convolution Visualization CUDA GPU acceleration Multi-task/multi-modal model support Utility (CV, Feature extraction) Hyper parameter optimization Algorithms Command-line toolsUser interface:

×