Advertisement
Advertisement

More Related Content

Slideshows for you(20)

Advertisement

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

  1. Facebook https://www.youtube.com /channel/UCo33DtDOIttjiK Kqn-YOHSw
  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. • • • • •
  4. ダートマス会議 第5世代プロジェクト チェスプログラムDeepBlue エキスパートシステム
  5. 𝑥1, 𝑥2, … , 𝑥 𝑛 𝑤1, 𝑤2, … , 𝑤 𝑛, 𝑏 𝑦 𝜎 𝑥 𝑥1 𝑥2 𝑥 𝑁 𝑦 … 𝑤1 𝑤2 𝑤 𝑁 𝑦 = 𝜎 ෍ 𝑛 𝑁 𝑤 𝑛 𝑥 𝑛 + 𝑏 1 1 + 𝑒−𝑥 シグモイド関数 ステップ関数 一定以上の刺激 発火
  6. 𝑥1 𝑥2 𝑦 𝑤1 𝑤2 𝑦 = 𝜎 𝑤1 𝑥1 + 𝑤2 𝑥2 + 𝑏 𝑥1, 𝑥2 𝑤1, 𝑤2, 𝑏 𝑦 𝜎 𝑥 𝑤1 𝑥1 + 𝑤2 𝑥2 + 𝑏 色 大きさ 境界は直線になる
  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. 𝑥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. 𝑤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. 𝒙(1) 𝐖(1) , 𝒃(1) , 𝐖(2) , 𝒃(2) 𝒚 𝜎 𝑥 𝒙(2) = 𝜎 𝐖(1) 𝒙(1) + 𝒃(1) 𝒚 = 𝜎 𝐖(2) 𝒙(2) + 𝒃(2) 𝒙(1) 𝒙(2) 𝒚
  11. https://playground.tensorflow.org/
  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. 𝐷 𝒘 ← 𝒘 + 𝛼 𝛻𝐽 𝐽 𝑑 = 𝑒2𝐽 = ෍ 𝑑=1 𝐷 𝐽 𝑑 𝒘 ← 𝒘 + 𝛼 𝛻𝐽 𝑑 データ データ 𝛼 𝑤1 𝑤2 𝑤1 𝑤2
  14. • • • • • • • • • • • • • • • • • • • •
  15. 学習データの読み込み ネットワーク構築 順伝搬 逆誤差伝搬 重み更新 停止判定 テストデータ読み込み 順伝搬 誤差の評価 学習 評価 バリデーション データ読み込み 順伝搬 誤差の評価 バリデーション
  16. • • • • • • • •
  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. 𝑔(𝑡) ∗ 𝑓(𝑡) = ෍ 𝜏 𝑔 𝜏 𝑓(𝑡 − 𝜏) 𝑔(𝑡) 𝑓(𝑡) 𝑔(𝑡) ∗ 𝑓(𝑡)
  19. 𝑾 𝑾 𝑔(𝑡) ∗ 𝑓(𝑡) = ෍ 𝜏=0 𝑁 𝑔 𝜏 𝑓(𝑡 − 𝜏) = 𝑔 0 , 𝑔 1 , … , 𝑔 𝑁 𝑓 𝑡 − 0 , 𝑓 𝑡 − 1 , … , 𝑓 𝑡 − 𝜏 𝑇 = 𝒘 𝑇 𝒙 𝑡 𝑾𝒙 𝑡 𝑾𝑿 𝑡
  20. 𝑔(𝑡) ∗ 𝑓(𝑡) = ෍ 𝜏=0 𝑁 𝑔 𝜏 𝑓(𝑡 − 𝜏) = 𝑔 0 , 𝑔 1 , … , 𝑔 𝑁 𝑓 𝑡 − 0 , 𝑓 𝑡 − 1 , … , 𝑓 𝑡 − 𝜏 𝑇 = 𝒘 𝑇 𝒙 𝑡 𝑾𝒙 𝑡 𝑾𝑿 𝑡 𝑾 𝑾
  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. • MLP Convolutions Pooling MLP 文字「A」
  23. 授業資料等:http://small-island.work/trial/ https://www.youtube.com/channel/UCo33DtDOIttjiKKqn-YOHSw
  24. 1 2 3 4 5 • • • • • • https://ja.wikipedia.org/wiki/%E4%B8%80%E7 %AD%86%E6%9B%B8%E3%81%8D
  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. 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. 1 2 3 4 5 ノード𝑖とノード𝑗に エッジがあれば1なければ0 𝟎 𝟎 𝟏 𝟎 𝟎 𝟎 𝟎 𝟏 𝟎 𝟎 𝟏 𝟎 𝟎 𝟏 𝟏 𝟎 𝟎 𝟏 𝟎 𝟏 𝟎 𝟏 𝟎 𝟏 𝟎 1 2 3 4 5 𝟎 𝟎 𝟎 𝟎 𝟎 𝟎 𝟎 𝟎 𝟎 𝟎 𝟏 𝟎 𝟎 𝟏 𝟎 𝟎 𝟎 𝟏 𝟎 𝟏 𝟎 𝟎 𝟎 𝟏 𝟎 (無効グラフでは隣接行列は対称になる)
  28. 𝑨 = 𝟎 𝟎 𝟎 𝟎 𝟎 𝟎 𝟎 𝟎 𝟎 𝟎 𝟏 𝟎 𝟎 𝟏 𝟎 𝟎 𝟎 𝟏 𝟎 𝟏 𝟎 𝟎 𝟎 𝟏 𝟎 1 3 4 5 𝑏𝑖,𝑗 𝑏𝑖,𝑗 = ෍ 𝑘 𝑎𝑖,𝑘 𝑎 𝑘,𝑗 𝑏𝑖,𝑗 𝑩 𝑩 = 𝑨 𝟐 2
  29. 𝑳 = 𝑫 − 𝑨 𝑨 = 𝟎 𝟎 𝟏 𝟎 𝟎 𝟎 𝟎 𝟏 𝟎 𝟎 𝟏 𝟎 𝟎 𝟏 𝟎 𝟎 𝟎 𝟏 𝟎 𝟏 𝟎 𝟏 𝟎 𝟏 𝟎 1 3 4 52 𝑫 = 𝟏 𝟎 𝟎 𝟎 𝟎 𝟎 𝟏 𝟎 𝟎 𝟎 𝟎 𝟎 𝟎 𝟎 𝟎 𝟎 𝟑 𝟎 𝟎 𝟎 𝟐 𝟎 𝟎 𝟎 𝟏 𝑳 = 𝟏 𝟎 − 𝟏 𝟎 𝟎 𝟎 𝟏 −𝟏 𝟎 𝟎 −𝟏 𝟎 𝟎 −𝟏 𝟎 𝟎 𝟑 −𝟏 𝟎 −𝟏 𝟐 −𝟏 − 𝟎 𝟏 𝟏
  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. 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. Zhang, Ziwei, Peng Cui, and Wenwu Zhu. "Deep learning on graphs: A survey." arXiv preprint arXiv:1812.04202 (2018).
  33. グラフニューラルネットワークで考える設定 (1/2) 名前: 年齢: エッジは向きが あってもなくてもよい ノードは情報を持っていてよい エッジは数種類あってもよい
  34. グラフニューラルネットワークで考える設定 (2/2) 化合物をグラフで表現する エッジは向きがない ノード(原子)は情報を持っている エッジ(結合)は数種類ある ノード情報: 原子名 混成軌道 … Wikipedia:nanoputian
  35. グラフにベクトルとして ノード情報(特徴量)がついてい る状況を考える エッジは有効・無効・複数種類 あってもよい 特徴量がない場合は「埋め込み」という方法を使う ・最初にランダムに特徴を与えて、特徴もデータから学習する ・各種グラフ埋め込み手法を利用する(node2vecなど)
  36. 𝑾 Graph Convolution は隣接したノード のベクトルに対してフィルタを掛 けて、足し合わせるという処理を 行う。 Convolution と同様に𝑊をフィルタ とみなすと、グラフ上のベクトル の特定のパターンにのみ値が大き くなるような関数を構成すること ができる。 同様の処理をすべてのノードに行う
  37. 𝑾 𝒚𝑖 = ෍ 𝑗 𝑎𝑖,𝑗 𝒙𝑗 𝑻 𝑾 1 2 3 4 5 ノード𝑖とノード𝑗に エッジがあれば1なければ0 𝑎𝑖,𝑗を要素とする行列𝑨を隣接行列と呼ぶ 𝒀 = 𝑨𝑿 𝑾 𝑨 = 𝟏 𝟎 𝟎 𝟎 𝟎 𝟎 𝟏 𝟎 𝟎 𝟎 𝟏 𝟎 𝟎 𝟏 𝟎 𝟎 𝟏 𝟏 𝟎 𝟏 𝟏 𝟎 𝟎 𝟏 𝟏
  38. 𝑾 1 2 3 4 5 二つ隣かどうかの0/1変数𝑏𝑖,𝑗 𝑏𝑖,𝑗 = ෍ 𝑘 𝑎𝑖,𝑘 𝑎 𝑘,𝑗 𝑏𝑖,𝑗を要素に持つ行列𝑩 𝑩 = 𝑨 𝟐 𝒀 = 𝑨𝑿𝑾 𝟏 + 𝑨 𝟐 𝑿𝑾 𝟐 実際には𝑨 𝟐が0でない部分を1に する処理が必要
  39. 𝑾 1 2 3 4 5 𝒀 = 𝑨 𝟏 𝑿𝑾 𝟏 + 𝑨 𝟐 𝑿𝑾 𝟐 𝑨 = 𝟏 𝟎 𝟎 𝟎 𝟎 𝟎 𝟏 𝟎 𝟎 𝟎 𝟏 𝟎 𝟎 𝟏 𝟎 𝟎 𝟏 𝟏 𝟎 𝟏 𝟏 𝟎 𝟎 𝟏 𝟏 𝑨 𝟏 = 𝟏 𝟎 𝟎 𝟎 𝟎 𝟎 𝟏 𝟎 𝟎 𝟎 𝟏 𝟎 𝟎 𝟎 𝟎 𝟎 𝟏 𝟏 𝟎 𝟏 𝟏 𝟎 𝟎 𝟏 𝟏 𝑨 𝟐 = 𝟏 𝟎 𝟎 𝟎 𝟎 𝟎 𝟏 𝟎 𝟎 𝟎 𝟎 𝟎 𝟎 𝟏 𝟎 𝟎 𝟏 𝟎 𝟎 𝟎 𝟏 𝟎 𝟎 𝟎 𝟏 エッジの種類は複数のグラフの重 ね合わせとして表現 同様に、複数グラフの入力も可能 エッジの種類で隣接行列を分解
  40. 1 3 4 5 𝑨 = 𝟏 𝟎 𝟎 𝟎 𝟎 𝟎 𝟏 𝟎 𝟎 𝟎 𝟏 𝟎 𝟎 𝟏 𝟎 𝟎 𝟏 𝟏 𝟎 𝟏 𝟏 𝟎 𝟎 𝟏 𝟏 2 𝑨 𝟐 = 𝟏 𝟎 𝟎 𝟎 𝟎 𝟎 𝟏 𝟎 𝟎 𝟎 𝟎 𝟎 𝟎 𝟎 𝟎 𝟎 𝟏 𝟏 𝟎 𝟎 𝟏 𝟎 𝟎 𝟏 𝟏 𝑨 𝟑 = 𝟏 𝟎 𝟎 𝟎 𝟎 𝟎 𝟏 𝟎 𝟎 𝟎 𝟏 𝟎 𝟎 𝟏 𝟎 𝟎 𝟏 𝟎 𝟎 𝟏 𝟏 𝟎 𝟎 𝟎 𝟏 𝒀 = 𝑨 𝟐 𝑿𝑾 𝟏 + 𝑨 𝟑 𝑿𝑾 𝟐 次数ごとに隣接行列を分解する。
  41. 1 3 4 5 𝑨 = 𝟏 𝟎 𝟎 𝟎 𝟎 𝟎 𝟏 𝟎 𝟎 𝟎 𝟏 𝟎 𝟎 𝟏 𝟎 𝟎 𝟏 𝟏 𝟎 𝟏 𝟏 𝟎 𝟎 𝟏 𝟏 2 𝑨 𝟏 𝟏 𝟏 𝟏 𝟏 = 𝟏 𝟏 𝟒 𝟑 𝟏
  42. 𝑾 1 3 4 5 𝒀 = 𝜎 𝑿𝑾 + 𝒃 ノード間の相互作用はなしで、 各特徴量を変換する 𝜎: 活性化関数 2
  43. 1 3 4 5 全ノードのベクトルを 足し合わせる 2 グラフ表現からベクトルに変換するため に利用 この層より後段は通常のNNが利用可能
  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. • Graph-centric • Node-centric • Link prediction
  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. 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. 𝑓( , ) Link prediction A C D EB GCNにより 得られるベクトル 入力グラフ 疑似負例 正例 𝑓( , )A CA B < スコア関数 成り立つようにスコア関数&GCNを学習 スコア関数の値が高いほどエッジのある可能性が高い (エッジがない&スコアが高い→未知のエッジの可能性が高い)
  49. Link prediction Link prediction の例:商品の推薦システム BNGCN Activation BNGCN Activation Graph fully-connected ユーザ 商品
  50. 𝑔(𝑡) ∗ 𝑓(𝑡) = ෍ 𝜏 𝑔 𝜏 𝑓(𝑡 − 𝜏) 𝑔(𝑡) 𝑓(𝑡) 𝑔(𝑡) ∗ 𝑓(𝑡) 𝐹 𝑔(𝑡) ∗ 𝑓(𝑡) = 𝐹 𝑔(𝑡)] 𝐹[𝑓(𝑡) 𝐹 𝐹 𝑓 𝑥 = න −∞ ∞ 𝑓 𝑥 𝑒 𝑖𝜔𝑥 𝑑𝑥 = 〈𝑓 𝑥 , 𝑒 𝑖𝜔𝑥〉 Δℎ 𝜔(𝑥) = 𝜆 𝜔ℎ 𝜔(𝑥) ℎ 𝜔 𝑥 = 𝑒 𝑖𝜔𝑥 𝜆 𝜔 = −𝜔2 ℎ 𝑥
  51. 𝑳 = 𝑫 − 𝑨 𝑨 𝑫 𝑳 = 𝑼𝚲𝐔 𝐓 ෝ𝒙 = 𝑼 𝑇 𝒙 𝒙 = 𝑼ෝ𝒙 𝑼 𝑑𝑖𝑎𝑔 𝒘 ෝ𝒙 = 𝑼𝑑𝑖𝑎𝑔 𝒘 𝑼 𝑇 𝒙 Δℎ 𝜔(𝑥) = 𝜆 𝜔ℎ 𝜔(𝑥) 𝐹 𝑓 𝑥 = 〈𝑓 𝑥 , ℎ 𝜔(𝑥)〉 𝐹 𝑔(𝑡) ∗ 𝑓(𝑡) = 𝐹 𝑔(𝑡)] 𝐹[𝑓(𝑡)𝑑𝑖𝑎𝑔 𝒘 : 𝒘を対角 要素に持つ行列 → 𝑼𝑔 𝒘 𝚲 𝑼 𝑇 𝒙 𝑳 = 𝑫−1/2 𝑫 − 𝐀 𝑫−1/2
  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. 1次近似 2次近似 元の変換(ランダムに生成したグラフ・特徴量でプロット) 3次近似 10次近似 https://colab.research.google.com/drive/1PwDQTy9trj2O4Dn-byrj9qF2jcA8Ul74コード
  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. ブロックを線でつなげることで、グラフィカルに処理を記述可能 前処理部分 学習・可視化部分 GCNモジュール
  56. https://colab.research.google.com/drive/1E9sCWQKWs2BO_i_zAudne-8nJQigYYLl
  57. Integrate gradients (IG) による可視化を実装済み Sundararajan, Mukund, Ankur Taly, and Qiqi Yan. "Gradients of counterfactuals." arXiv preprint arXiv:1611.02639 (2016). • ニューラルネットワークの アーキテクチャに依存しない Numberofatoms features 特徴量レベル貢献度 • グラフのノードの貢献度 • ノードの特徴量レベルの貢 献度 GCNを含むマルチモーダ ル・タスクマルチモーダル を可視化可能 • データサンプル・特徴量レベル での予測の貢献度を算出可能 赤い部分が予測により効いている 原子レベル貢献度 予測貢献度の可視化 グラフ・系列・ベクトルに対する可視化に統一的な仕組みで可視化が可能
  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. 特に化合物等を用いたグラフコンボリューションネットワークでは多くの疎行列に対する積計算が重要に なってくる (汎用的な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. 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:
Advertisement