国際的な実践:
論文アドレスhttps://arxiv.org/pdf/2206.00272.pdf git アドレスhttps://github.com/huawei-noah/Efficient-AI-Backbones/tree/master/vig_pytorch 以前の GNN と CNN の組み合わせとの比較 画像処理アルゴリズムでは、ViG は革新的に特徴抽出に GNN を直接使用します。ViT と同様に、グラフ構造を構築するために CNN によって抽出された特徴を使用する必要がなくなりました。ViT については、以下を参照してください。
[セルフアテンション ニューラル ネットワーク] トランスフォーマー アーキテクチャhttps://blog.csdn.net/weixin_37878740/article/details/129343613?spm=1001.2014.3001.5501 ViT の 3 番目のセクションでは、両者とも非常に優れた特性を持っているのは偶然です。アイデアの類似性。
I. 概要
ViG は 2 つのモジュールで構成されます
①Grapherモジュール:グラフ畳み込みを利用してグラフ情報の集約と更新を実現します。
②FFNモジュール:2つの全結合層を使用してノード特徴の変換を実現
画像タスクの場合、CNNは空間位置によってのみピクセル/パッチを並べ替えることができますが、Transformer ではグリッド構造がシーケンス構造に変換されますが、これは明らかに十分な柔軟性がありません。一方、GNN ではノードは自由に接続でき、制約はありません。局所的な空間構造による。
画像をグラフ構造で表現すると、次のような利点があります。
① グラフは一般化されたデータ構造であり、グリッド構造もシーケンス構造も特殊なグラフとみなすことができるため、グラフの方が一般化能力に優れています。
②画像内の物体は必ずしも正四角形であるとは限らず、表現力を高めるためにグラフをモデリングに使用しています。
③ オブジェクトは部品の組み合わせとみなすことができます (グラフ構造はこの接続をよりよく表現します)
しかし、グラフでグラフ構造を構築するにはいくつかの問題があり、その最大の特徴はデータ量が膨大になることであり、各ピクセルをノードとみなすと、多数のノードと接続がもたらされることになります。グラフ構造。論文では、画像はいくつかのパッチに分割され、これらのパッチは後続のグラフ構造の構築に使用されます。
2. ネットワーク構造
1. 画像のグラフ構造
①画像を N 個のパッチに分割します。
②各パッチを固有ベクトルに変換し、結合して固有ベクトルの行列を取得します。
これらの固有ベクトルは、順序付けされていないノードのセットとして見ることができ、 として表されます。
③ 各ノードについて、K 個の最近傍ノードを見つけます。これらの近傍ノードのセットは として示され、セット全体の近傍ノードにから までのエッジを追加します。
④最後に、ノード集合とエッジ集合からグラフ構造を取得できます。
2. グラフの畳み込み
隣接するノードの特徴を集約してノード間の情報交換を実現するため に使用され、その対象となるのが上記のグラフです。
①情報集約
, ここで、 と は学習可能な重みです。
この操作をノード レベルに調整すると、次のように表現できます。
、ここで、 はノードの隣接ノードのセットです。
関数 g( ) は最大の畳み込みです。
関数 h( ) は次のように表されます。
このプロセスではバイアスが省略されるため、式全体は次のように書くこともできます。
②多重アップデートの仕組み
集約された特徴をh 個のヘッド ( ) に分割し、これらのヘッドを異なる重みで更新します。すべてのヘッドが更新され、結果の値が連結されます。マルチヘッド更新により、モデルは複数の表現部分空間内の情報を更新できるようになり、特徴の多様性にとって有益です。
3. ViGモジュール
複数のグラフ畳み込み層を備えた GCN では、スムーズな遷移が 発生し、視覚的なパフォーマンスの低下につながります (多様性の低下によって引き起こされます)。この問題を軽減するために、ViG では、より多くの特徴変換と非線形アクティベーションが導入されています。
非線形活性化を備えたこの GCN を、この文書ではGrapher モジュール と呼びます。入力 の場合、Grapher モジュールは次のように表すことができます。ここで、活性化関数は通常ReLuまたはGReLuを採用し、バイアスは通常省略されます。
4. FFNネットワーク(フィードフォワードネットワーク)
FFN ネットワークは、完全に接続された 2 つの層で構成される多層パーセプトロンです。次のように記録できます。
、 ここで、 は2 つの完全に接続された層の重みであり、バイアス項は通常省略されます。ViG ネットワークでは、各完全接続層とグラフ畳み込み層の後にバッチ正規化が行われます。
3. ネットワークパラメータの設定
ViG には、等方性アーキテクチャ(ViT に類似) とピラミッド アーキテクチャ(ResNet に類似) の 2 つのアーキテクチャがあります。
1. 等方性構造
ネットワーク全体のサイズと形状は同じですが、本稿ではモデルサイズの異なる 3 つのネットワーク ( ViG-Ti、ViG-S、ViG-B ) を構築します。ノード数 N=196、隣接ノード数 k は 9 ~ 18 (受容野の拡張に使用)、ヘッド数 h は 4 に設定され、性能とサイズは次のとおりです。
2. ピラミッド構造
ピラミッド構造は層を重ねるほどマルチスケールの特徴が得られます.本稿では4種類のピラミッド構造のViGを設計しました.詳細は下表を参照してください.
表中、Dは特徴サイズ、EはFFNの隠れ次元の比率、KはGCNの受容野、H×Wは画像サイズを表します。
位置エンコーディング: 各ノードに位置情報を追加するために、次の式によってエンコーディング ベクトルがノード フィーチャに追加されます。ノード i とノード j の間の相対距離が構築グラフのフィーチャ距離に追加されます (参照) ViTへ)。
4. 視覚化
この図から、浅い層では、色やテクスチャなどの低レベルの局所的な特徴に基づいて隣接ノードが選択される傾向があることが明確にわかります。深い層では、中央ノードの近隣ノードはよりセマンティックであり、同じカテゴリに属します。