Microsoft のエンジニアが PyTorch を使用してグラフ アテンション ネットワークを実装し、驚くべき視覚効果を実現

Microsoft のエンジニアが PyTorch を使用してグラフ アテンション ネットワークを実装し、驚くべき視覚効果を実現

最近、グラフアテンションネットワークの視覚化に関するプロジェクトが多くの研究者の関心を集めており、開始からわずか 1 日で 200 を超えるスターを獲得しました。このプロジェクトは、わかりやすい視覚化を含む、PyTorch で実装された Graph Attention Networks (GAT) に関するものです。

プロジェクトアドレス: https://github.com/gordicaleksa/pytorch-GAT

プロジェクトを正式に紹介する前に、まずグラフ ニューラル ネットワーク (GNN) について説明しましょう。 GNN は、グラフ情報を処理するためのディープラーニングに基づく手法の一種です。 GNN は、その優れたパフォーマンスと解釈可能性により、最近広く使用されるグラフ分析手法となっています。計算生物学、計算薬理学、推奨システムなどで広く使用されています。

GNN はグラフ構造にディープラーニングを適用します。グラフ畳み込みネットワーク GCN はグラフ上で畳み込み演算を実行できますが、GCN にはいくつかの欠陥があります。そのため、3年前、BengioチームはGCNの問題を解決するためにGraph Attention Network (GAT)を提案しました。

GAT は空間 (畳み込み) GNN の代表です。 CNN はコンピューター ビジョンの分野で大きな成功を収めたため、研究者はそれをグラフィックスに拡張することを決定し、GAT が誕生しました。

現在、誰かが PyTorch を使用して GAT 視覚化を実装しました。このプロジェクトがどのように実施されたかを見てみましょう。

視覚化

コーラの視覚化

GNN に関しては、Cora データセットを導入する必要があります。 Cora データセットは多くの機械学習論文で構成されており、近年のグラフディープラーニングで人気のデータセットです。 Cora のノードは研究論文を表し、リンクはこれらの論文間の引用を表します。プロジェクト作成者は、Cora を視覚化し、基本的なネットワーク分析を行うためのユーティリティを追加しました。 Cora は以下のとおりです。

ノードのサイズは、そのランク(つまり、インバウンド エッジとアウトバウンド エッジの数)に対応します。エッジの厚さは、エッジの「人気」や「接続性」にほぼ対応します。以下は、Cora 上のランク (インバウンド エッジとアウトバウンド エッジの数) の分布を示すグラフです。

無向グラフを扱っているため、インレベルとアウトレベルのグラフは同じです。下のグラフ(順位分布)では、[2, 4]の範囲に興味深いピークが発生していることがわかります。これは、ほとんどのノードには少数のエッジがあるが、169 個のエッジを持つノードが 1 つあることを意味します (大きな緑色のノード)。

注意の視覚化

トレーニングされた GAT モデルを使用すると、特定のノードによって学習された注意を視覚化できます。次の図に示すように、ノードはアテンションを使用して周囲のノードを集約する方法を決定します。

これは、最も多くのエッジを持つ Cora ノードの 1 つです (参照)。色は同じクラスのノードを示します。

エントロピーヒストグラム

GAT が Cora で注意パターンを学習しない (つまり、一定の注意を学習している) ことを理解する別の方法は、ノード近傍の注意重みを確率分布として見て、エントロピーを計算し、各ノード近傍に情報を蓄積することです。

GAT の注目分布は偏っていると予想されます。オレンジ色のヒストグラムは理想的な均一分布であり、水色のヒストグラムは学習した分布であり、まったく同じであることがわかります。

Cora 埋め込み空間 (t-SNE) の解析

GAT の出力テンソルの形状は = (2708, 7) です。ここで、2708 は Cora のノード数、7 はクラスの数です。 t-SNE を使用してこれらの 7 次元ベクトルを 2D に投影すると、次のようになります。

使い方

方法 1: Jupyter Notebook

Anaconda コンソールから Jupyter Notebook を実行するだけで、デフォルトのブラウザでセッションが開きます。開始するには、注釈付き GAT.ipynb を開きます。

注意: win32api のインポート中に DLL のロードに失敗しました: 指定されたモジュールが見つかりませんでした。その場合は、pip uninstall pywin32 または pip install pywin32 を実行するか、pywin32 をインストールしてください。

方法2: 好みのIDEを使用する

選択した IDE を使用している場合は、Python 環境とセットアップ セクションを接続するだけで済みます。

トレーニングGAT

CoraでGATをトレーニングするために必要なものはすべてすでにセットアップされており、実行するにはpython training_script.pyを呼び出すだけです。

さらに、次のこともできます。

グラフデータを視覚化するには、--should_visualize を追加します。

データのテストセクションで GAT を評価するには、--should_test を追加します。

--enable_tensorboard を追加しました - メトリック (精度、損失) の保存を開始します

コード セクションには適切なコメントが付いているため、トレーニング自体がどのように実行されるかを理解できます。

スクリプトは次のようになります。

checkpoint*.pthモデルをmodels/checkpoints/にダンプします。

最終的な*.pthモデルをmodels/binaries/にダンプします。

メトリクスはruns/に保存され、Anacondaでtensorboard --logdir=runsを実行するだけで視覚化できます。

定期的にトレーニングメタデータをコンソールに書き込む

コンソールで tensorboard --logdir=runs を呼び出し、ブラウザに http://localhost:6006/ URL を貼り付けることで、トレーニング中にメトリックを視覚化できます。

視覚化ツール

t-SNE 埋め込みを視覚化する場合は、visualize_gat_properties 関数のコメントに従って、visualization_type を次のように設定します。

VisualizationType.ATTENTION - ノードの周囲の注目を視覚化する場合

VisualizationType.EMBEDDING - 埋め込みを視覚化する場合(t-SNE経由)

VisualizationType.ENTROPY - エントロピーヒストグラムを視覚化する場合

すると、優れた視覚化効果チャートが得られます (VisualizationType.ATTENTION はオプション)。

ハードウェア要件

GAT には非常に強力なハードウェア リソースは必要ありません。特に Cora のみを実行する場合は、2GB を超える GPU で十分です。

GAT のトレーニングには、RTX 2080 GPU で約 10 秒かかります。

1.5 GB の VRAM メモリが予約されています (PyTorch のキャッシュ オーバーヘッド。実際のテンソルに割り当てられるメモリははるかに少ないです)。

モデル自体はわずか 365 KB です。

ビデオリンク: https://v.qq.com/x/page/v3225t65a0q.html?start=8

<<:  健康コードがないと旅行するのは難しいですか?顔認識により健康コードのバリアフリー利用が可能に

>>:  人工筋肉における大きな進歩がサイエンス誌に掲載されました!複数の国の科学者が共同で新たな駆動メカニズムを実現

ブログ    
ブログ    
ブログ    

推薦する

ビジネスリーダーがAIを導入する際に指針となる5つの基本原則

たとえば、私が 25 年以上携わってきた市場調査業界を考えてみましょう。 AI は、さまざまな方法で...

NvidiaはArmの買収を断念すると報じられており、400億ドルの買収は危うい状況にある

Nvidia が Arm を 400 億ドルで買収する計画だというニュースを覚えていますか?この記事...

COVID-19パンデミックの中、米国の産業界ではロボットがアメリカ人の雇用を急速に置き換えている

海外メディアの報道によると、アマゾンはこのほど、米カリフォルニア州の倉庫の管理者が新型コロナウイルス...

機械学習におけるラベル漏洩とそれがモデルのパフォーマンスに与える影響について紹介します

優れた、またはほぼ優れたモデルのパフォーマンスに圧倒されていますか? あなたの幸せは裏切られています...

6 つの大きな障害に直面していますが、AI イノベーションはそれらをうまく克服できるでしょうか?

現状では、人工知能業界は消費者からの需要が大きく、投資家からの関心も高く、非常に活況を呈しているよう...

...

クラウドAI市場は2028年までに2,700億ドルに達すると予想

デジタル時代の到来により前例のない進歩がもたらされ、人工知能(AI)はさまざまな業界でイノベーション...

ホーキング博士が亡くなりました。彼が残した5つの予言をぜひ読んでみてください

ガーディアン紙、BBC、スカイニュースチャンネルなど複数の外部情報源によると、英国の物理学者スティー...

...

...

Adobe、Adobe Experience Platform モバイル パッケージをリリース

中国、北京 — 2019 年 11 月 26 日 — Adob​​e は先日、新しいモバイル パッ...

...

アリババ・ダモ・アカデミーは、電力網の負荷を正確に予測するための新しい時系列予測モデルを提案している。

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

ポストパンデミックの時代に、伝統的なオフィスビルは時代遅れになるのでしょうか?

新型コロナウイルスの世界的大流行が続く中、従業員にリモートワークを奨励する企業が増えています。従来の...

言語モデルは時間をどのように認識するのでしょうか?時間ベクトルについてさらに詳しく

言語モデルは正確にはどのようにして時間を認識するのでしょうか?言語モデルの時間認識をどのように利用す...