目次
5. 周波数領域での畳み込みニューラル ネットワークのグラフ化
最近、引用数が非常に多い記事を目にしました。これは、グラフ畳み込みネットワークを使用してハイパースペクトル画像分類タスクを処理します。この論文は昨年 7 月にリリースされ、これまでに 300 以上の引用があります。これはハイパースペクトル分類分野に関するものです。非常に高速で非常に高いデータです。グラフ畳み込みニューラル ネットワークに触れた後、ほとんどの情報が中間の式の部分を数学的推論で説明しようとしており、このネットワークの全体的な理解、把握、使用に一定の障害が生じていることがわかりました。このネットワークをよりマクロな観点から理解してから、ゆっくりと数学的な内容を追加して、このネットワークをスムーズに理解して学習できるように努めてください。
1. CNNとGCNの関係
従来のデータ構造を持つデータ セットの場合、写真、ビデオ、オーディオなど、すべてユークリッド空間に属し、不規則な形状の行列に変換できます。このようなデータ構造は、畳み込みによって処理できます。これも非常に規則的な行列です。
しかし、社会関係ネットワーク、交通ネットワーク図、化学分子構造など、非ユークリッド空間のデータ構造では、この種の畳み込みは実現できません。
各データ ノードには、異なるノードを接続する N 個のエッジがあり、これらの N 個は同じではありません。明らかに、これらのデータ構造では従来の畳み込み処理を実行できません。サイズがいつでも不規則に変化する可能性のある畳み込みカーネルを見つけることさえできないからです。では、この種のデータの特徴を畳み込みによって学習したい場合はどうすればよいでしょうか? このとき、この記事の主役であるグラフ畳み込みニューラル ネットワークである GCN が提案されています。この種のネットワークには、1. コンピュータで処理できること(行列などの規則的なデータ構造にするため)、2. 各ノードの情報を保持することに加えて、隣接するノードの情報も含まれる必要があります。
2.「絵」についての予備知識
グラフニューラルネットワーク(GNN)は、前述の人間関係ネットワークや化学分子構造などのデータ構造の一種である「グラフ」を処理します。このグラフを次のグラフのように要約します。矢印のないこのグラフを無向グラフと呼びます。これは、2 つのノード間の双方向通信を意味します。GNN では、ほとんどこの種の無向グラフのみが使用されます。矢印のあるもう 1 つの一方向構造を有向グラフと呼びます。
2.1 で表されるグラフには 4 つのノードがあります。「グラフ」ではこのようなノードを頂点と呼び、頂点間の接続をエッジと呼びます。次数は頂点によって接続されるエッジの数を示します、2.1 など、グラフには 4 つの頂点 V1、V2、V3、V4 が含まれており、V3 の次数は 2、V1 の次数は 3、V2 の次数は 1... です。互いに直接接続されている頂点は 1 次隣接頂点と呼ばれます。V2、V3、V4 は V1 の 1 次隣接頂点と呼ばれ、中間に少なくとも 1 つの頂点がある頂点は 2 次隣接頂点と呼ばれます。 、V4 は V2 の 2 次隣接頂点など、高次の隣接頂点を持ちます。
グラフの基本的な定義を含む
私たちは、グラフの構造がどんなに奇妙であっても、最終的にはコンピューターに送信されて処理されるだろうと考え始め、このグラフを表すための規則的な構造、たとえばそれを表すための行列を見つけたいと考えました。処理のためにコンピュータに送信できること。この行列は少なくとも 2 つの部分から構成される必要があり、まず各頂点間の関係、つまり接続の有無を表現できる必要があり、さらにその接続の強さを考慮する必要があります。次に、各ノード自体の情報、つまりノード自体が誰であるかを特徴付ける情報を含める必要があります。
上記の 2 つのガイドラインに従って、最初の条件を満たすことを段階的に実現します。つまり、各頂点間の関係を表すために、「隣接行列」の概念が導入されます。隣接行列が何を行うかを見てみましょう。 。2.1 を例にとると、各頂点間の関係を表現したいとします。つまり、V1 と (V1、V2、V3、V4) と V2 と (V1、V2、V3、V4) の関係を表現する必要があります。 V4とみんなの関係まで続きます。2 次元が必要であることを理解するのは難しくありません。
V1 | v2 | V3 | V4 | |
V1 | 0 | 1 | 1 | 1 |
v2 | 1 | 0 | 0 | 0 |
V3 | 1 | 0 | 0 | 1 |
V4 | 1 | 0 | 1 | 0 |
上の表は、Vi から Vj までの関係を示しています。直接接続されている頂点の関係を 1、直接接続されていない頂点の関係を 0 とみなして、隣接行列 A を取得します。これは非常に良い関係を表現できます。各頂点の間。さらに、各エッジ付近のエッジの強さと弱さをマークできれば、単に (0, 1) を使用して表すのではなく、この行列をさらに改善することができます。図2.2と以下の表
V1 | v2 | V3 | V4 | |
V1 | 0 | 2 | 5 | 6 |
v2 | 2 | 0 | 0 | 0 |
V3 | 5 | 0 | 0 | 3 |
V4 | 6 | 0 | 3 | 0 |
ここまでで、最初の問題は解決されました。隣接行列 A を通じて、グラフ内の頂点間の関係を適切に特徴付けることができました。次に、各頂点の特性を特徴付けるという 2 番目の問題を解決する必要があります。
たとえば、V1 は人であり、彼の個人情報の一部がこの頂点に格納されており、この情報は特定のエンコード方法によって数値 (埋め込み) として表されます。V1 の名前が 239、性別が 2 であるとします。 、身長は 239、身長は 175、体重は 120。V2 の場合、名前は 542、性別は 1、身長は 168、体重は 100 です。類推すると、すべての Vis はエンコードされており、i V1 のようなベクトルが得られます。ベクトルは H1 (239, 2, 175, 120)、V2 のベクトルは H2 (542, 1, 168, 100) です。このベクトルを対応する頂点の信号と呼びます。その後、取得された i 列のベクトルが行列 H (H1, H2, H3, H4) ⊺ に連結されます。ここで、H は 1 つの列で表されるブロック行列です。
H1 | 239 | 2 | 175 | 120 |
H2 | 542 | 1 | 168 | 100 |
H3 | 937 | 2 | 188 | 150 |
H4 | 365 | 1 | 163 | 90 |
A 行列の最初の行 A1 を取得し、A1 に H を掛けます。つまり、次のようになります。
この結果は、V1 の隣接ノードの信号の重み付けされた合計であることがわかります。ここで、重みは A によって提供される関係の強さの値ですが、この重みは正規化されていません。ノードの隣接頂点の関係値が多いほど結果は大きくなりますが、この状況を回避するために、重みを関係値の合計で割るという正規化操作を実行しました。ノードのすべてのエッジの関係値と、これらのエッジの関係値の合計が 1 になる、本当の意味の「重み」になります。次に、必要な数学的プロセスは、A の各行を行の合計で割ることです。ここで、新しい行列 D を導入します。これは対角行列であり、各行の対角線上の要素は、A のこの行の要素の合計、つまり頂点の次数になります。
13 | 0 | 0 | 0 |
0 | 2 | 0 | 0 |
0 | 0 | 8 | 0 |
0 | 0 | 0 | 9 |
操作を実行します。つまり、A の各関係値を正規化して重みに変換すると、結果は次のようになります。
0 | 2/13 | 5/13 | 6/13 |
2/2 | 0 | 0 | 0 |
5/8 | 0 | 0 | 3/8 |
6/9 | 0 | 3/9 | 0 |
このとき、 を実行、つまりi 行目と H を掛けて(i を 1 行目である 1 に設定)、
すべての行が同じ演算を実行すると、各行の次元は同じになり、特定の行の計算結果が特に誇張されることはありません。このとき結果はどうなるか考えてみましょう、これはある頂点を中心とするすべての頂点の信号を関係性(重み)に従って加算(集約)することと等価であり、この結果は周囲のノードが自身に及ぼす影響を表すことができます。行列演算により、データ構造は非常に規則的になり、コンピュータを演算に使用できるようになります。
3. グラフ畳み込みネットワーク (GCN)
この時点で、次の 2 つの質問について考える必要があります。
まず、この影響には、オブジェクトが次のようなものに耐える必要があります。
例えば、私には友達が5人いますが、人間関係が良い人、普通の人、悪い人がいて、学習能力も異なります。この5人の友達ができたら、私の成績はどうなるのか知りたいです。のように見える。この例では、私が対象であり、5 人の友人の影響を受け、最終的にこの 5 人の友人ができたことによる結果を表現する必要があり、それが最終的に計算したいことです。先ほどの計算では、次のような「私」の参加が明らかに抜けています。
V2、V3、V4 の信号 H1、H2、H3 はすべて重み付けされて合計されており、V1 の信号 H1 については情報がありません (つまり、「I」がありません) ことがわかります。私が校長であると仮定しますが、彼らはそうではありません。それは私には何の影響もありません。あるいは、私は勉強に大きな違いをもたらしました。そして、彼らと友達になることで私は大きく成長しました。この場合、「」を表したいとします。友達を作ることの結果」を考えると、「私」の情報が必須なので、友達を作る必要があります。隣接行列 A を少し改良し、「私」の情報を追加して新しい行列を作成します。
同時に D もそれに応じて変化し、
このうち、I は単位行列です。 このように、新しい計算式は次のようになります。このように、「I」の情報を考慮して重み付けを行う必要があります。 私の情報の割合は、理論的には次のように設定できます。それは私自身、つまり
このうち、a は強度パラメータであり、当然 D もそれに応じて変更する必要があります。しかし、実際には、この問題を考慮する必要はありません。「結果」の次元と「スコア」の次元が一致している必要はない、つまり、結果をスコアで測定する必要がないからです。は新しい次元評価指標とみなすことができます。この指標では、「私」の重みは度値の 1/10 のみを占め、「私」の情報のみを考慮すればよいため、この結果は次のようになります。物理的な意味がある、つまり、それらは私にとって物理的な意味を持っています。 影響の「結果」、言い換えれば、それらの影響を受けて私がどうなったか。このときふと、この結果はある意味「新しい自分」ではないことに気づきました?このような計算の後、すべての頂点が新しい自己になるので、別のグラフが得られます。新しいグラフでは、全員の間の関係は (エッジや関係の値に関係なく) 変化せず、新しいグラフを再計算できます。順番。ただし、この時点では、新しい I には、I に直接接続されている元の頂点の情報が既に含まれており、例のように、新しい V1 には、古い (V1、V2、V3、V4) の情報が既に含まれており、新しい V4 の情報が含まれています。 (V1、V3、V4) の情報も含まれていますが、最初の計算では、V4 と V2 が直接接続されていないため、V4 には V2 の情報が含まれていないことに注意してください。その後、V4 による 2 回目の影響が発生します。新しい V1 には元の V2 の情報が含まれており、新しい V4 は新しい V1 を通じて元の V2 の情報の一部を取得できるという側面があります。その後、わずか 1 回の計算 (または呼び出し) で次のことがわかりました。 1 回の送信), 1 次隣接頂点の情報のみが相互作用します。2 回目の伝播の後、2 次隣接頂点間の情報も相互作用します。類推により、N 回の伝播後、 N 次の隣接頂点も発生します。これにより、頂点間の相互作用の結果を表す行列の計算が可能になります。
第 2 に、関係値は一般に 2 つの頂点信号間のユークリッド距離によって取得されます。これはこれら 2 つの頂点にのみ関連し、2 次の隣接信号とは関係がありませんが、明らかに隣接する頂点の隣接信号とは関係がありません。いくつかあるはずですが、2 次隣人の影響をどのように考慮すればよいでしょうか?
たとえば、私の名前は V2 で、自閉症患者です。クラスには 4 人います。私たち自身の信号が社会的能力の値です。私は V1 しか知りません。V1 のことを知っているのは、彼とチャットできるからではありませんが、 V1 はシェニウなので、誰もが V1 を知っています。この例では、1 回の伝播後に V2 によって形成される新しい V2 を考慮すると、計算され、結果は=(1/3)×(2×H1 + 1×H2 + 0×H3 + 0×H4) =2 となります。 /3 H1 + 1/3H2 , 新しい V2 信号のほとんどは、現時点では元の V1 信号から来ていることがわかります。もちろん、これは不可能です。社会的恐怖を一度経験した後に、どうすれば社交的な牛に変えることができますか?明らかに、伝播にはまだ問題があります。2 次隣接と 1 次隣接の両方を考慮したいと思います。2 次隣接と 1 次隣接の間に大きな差がある場合, 「この影響を減衰させて、できるだけ自分自身のシグナルを作りたいと思っています。他の人のシグナルからできる限り分離すると、2 つのアイデアが簡単に得られます。1 つは、コミュニケーションにおいてできるだけ自分の比重を保つことです」 、そして他の人の重みを減らす、つまりそれに対処する、そして2番目は「私」に信号を与えることです。伝播によれば、特定の線形変化があり、つまり、秒間の数の差が大きくなるほど、 -次数隣人と一次隣人であればあるほど、自分の信号が小さくなり、他の人と区別できるようになり、自分自身の独立した特性を持つこともできます。つまり、信号が特に小さいということです。GCN では 2 番目の考え方に従い、数学における新しい伝播プロセスは次のように表現されます。
D と D は両方とも対角行列なので、一連の初等変換を経た単位行列とみなすこともできますし、単純に乗算の初等変換を行うこともできます。A を左から 1 倍、右から 1 倍します。左側の乗算はA の行基本変換を実行することと同等であり、右側の乗算は A に対して列基本変換を実行することと同等です。この場合、それは次の操作 とみなすことができます。
このように、1 次隣接頂点 j の次数 (エッジの数、つまり 1 次隣接頂点の数) が非常に大きい場合、信号は 1 回の伝播後に非常に小さくなります。 V2 の場合:
なぜなら、新しい V2 の信号が減衰されていることがわかります。減衰係数は、明らかに、i=j の場合にのみ、重みの合計が 1 に等しく、他の場合は <1 であり、減衰係数が大きいほど、 iとjの差が大きいほど減衰率は減衰します。上記で 2 番目の問題も解決されました。
これまでのところ、グラフの行列表現を解決しました。この行列には、独自の信号が含まれているだけでなく、各頂点間の関係も含まれており、伝播の各層で新しい信号が生成されます。これらの新しい信号は、CNN の Y = に相当します。 XW+ b の各層は X です。これを CNN と比較できます。前の各伝播によって得られた値が各層の特徴であると言えます。グラフを使用して畳み込みニューラル ネットワークを学習させたい場合は、次のものが必要です情報を取得できるデータを追加します。トレーニング パラメーター行列 W と b は、活性化関数を介して、畳み込みニューラル ネットワーク CNN に完全に対応するため、最終的な順伝播式が得られます。
以上がグラフ畳み込みニューラルネットワークの伝播式の詳細な説明です。このうち、固定されており、すべての層は変化しません。後は、CNN とまったく同じで、全結合層の構築、損失関数、バックプロパゲーション、パラメータの更新です。
4. ハイパースペクトル画像分類のためのネットワーク最適化
ネットワーク全体の伝播が導入されていますが、どのような機能を実現しているのでしょうか?次の 2 つの側面に分けて検討します。
1. いいえ/半教師あり: つまり、サンプルを入力するときに、ラベルのないサンプル (頂点とその信号) を一緒にネットワークに入力します。ネットワークが伝播するたびに、これらのラベルのない頂点の信号を受信できます。近くにある信号が新たな特徴を形成し、次の層の「新しい自分」となります。これは実際には「朱に近いものは赤、墨に近いものは黒」という送信方法です。何度か送信すると、クラスタリングの効果、つまり、特定の頂点の信号はますます似てきますが、クラスタリングの効果を達成するために元の情報の一部を保持します。 2. 監督: これは、本書の冒頭で述べたハイパースペクトル画像分類です
。この記事で使用されているアイデアは、従来の GCN が半教師ありモードと教師なしモードを採用しているというものです。入力時には、ラベルなしのテスト セットがネットワークに入力され、テスト セットはラベル付きのテスト セットの情報にゆっくりと「感染」します。頂点は徐々に類似してクラスターを形成し、トレーニング中にトレーニング セットのみを使用すると予想され、テスト中にネットワークを再トレーニングすることなく新しいサンプル ラベルを予測できます。そこで私たちは CNN のアイデアを真似して、次の 3 つの変更を加えました。
まず、softmax 分類関数を追加します。
2 番目に、計算量を削減します。計算量は、毎回入力するサンプル サイズに関係します。たとえば、ハイパースペクトル データの場合、UP データ セットには 4w 以上のサンプルがあり、サンプルあたりのバンド数は 103 (信号)この例では、GCN を直接使用する場合、すべてのサンプルを入力する必要があり、D と A は 40000×40000 行列、H は 40000×103 行列、W は 103×103 行列、計算量は (40000 * 103 * 103) であり、CNN で毎回更新される行列はほぼ 3×3 や 5×5 を複数積み上げており、サンプル サイズが非常に大きいため、CNN に比べて非常にメモリを大量に消費します。これによると、上記の文献は、この問題を解決するアイデアを提供しており、cnn でのバッチ処理の方法によれば、ハイパースペクトル画像のトレーニング セットが異なる小領域にランダムに分割され、各小領域で 10 個のピクセルがランダムに選択されます。ポイントして画像を生成し、ポイントを複数回選択して、この小さな領域内のすべての有効なピクセルが選択されていることを確認してから、この小さな領域内のすべての画像をバッチに作成します。このようにすると、各Hは10×103となり、計算量は(10×103×103)となり、計算量が大幅に削減されます。
3 番目に、トレーニングされていないサンプルをサポートし、トレーニングされたネットワークを通じて直接予測します。第 2 回の記事で、トレーニング セットをバッチで分割し、ネットワークをトレーニングすることができましたが、現時点では、テスト セットのデータをトレーニング セットの方法に従って領域に分割し、グラフを生成するだけです。生成されたグラフ これは、トレーニングされたネットワークにフィードすることによって実現されます。トレーニングされていないサンプルも、トレーニングされたネットワークによって予測できます。
では、CNN にとって GCN の利点は何でしょうか? 各頂点の信号をサンプルの入力とみなすと、GCN はこのような機能を実現できます。空間情報が非ヨーロッパ空間に分布している場合、つまり規則的な隣接関係がない場合、各頂点間の関係は入力サンプル ネットワークでは関係とその強さを考慮できます。通常、CNNで入力されたサンプル間の相関情報はネットワークに入力されません。ハイパースペクトルでは、3D-CNN と 2D-CNN によって空間情報が追加されていますが、元のハイパースペクトル データの空間情報抽出は 1 つのパッチ内のみであり、このパッチにはさまざまな地上物体が含まれる場合があり、パッチのラベルは 1 つだけです。中心点のピクセルラベルで決まるため、中心点付近のいくつかのピクセルがラベルと異なる場合、パッチはよく似ているがラベルが異なるという状況が発生し、学習の難易度が高くなります。改良された GCN では、入力はもはやパッチではなく、より遠くの情報を含むグラフであるため、グラフ内の各信号点も特定の領域でランダムに選択され、異なるラベル (パッチ) を持つグラフの出現を回避します。問題が発生するため、生成される予測結果グラフでは境界がより明確になります。
5. 周波数領域での畳み込みニューラル ネットワークのグラフ化
本来はここで問題は終わりでしたが、一部の大物はグラフ畳み込みニューラル ネットワークを説明するために周波数領域のアイデアを使用することを提案しました。周波数領域の積は空気領域の畳み込みに対応するためです。明らかに畳み込みよりも積の方が計算しやすいため、畳み込み対象の信号と畳み込みカーネルをフーリエ変換またはラプラス変換し、周波数領域に変換して乗算し、空間領域に戻すことで得られる結果が得られます。このときの空間領域の畳み込み結果、つまり
ここで、F[・]はフーリエ変換またはラプラス変換です。
考え方は良いのですが、式中の(g,f)は全て関数であり、フーリエ級数があるので変換するのは当然ですが、グラフ構造の形ではフーリエ変換とは何でしょうか?
次に、フーリエ変換の本質を探る必要がありますが、まず従来のフーリエ級数を見てみましょう。
ここで、F(w) は各塩基の係数 Cn を求めるだけであることがわかります。この方法は、f(x) と塩基の共役を乗算して積分し、f(x) と塩基を対応付けることです。連続から離散 ここでは、対応する要素を乗算して加算するだけではなく、2 つのベクトルの内積を計算するだけではありませんか? このドット積を通じて、特定の w の下での F(w) の値を決定でき、異なる w の下でドット積を数回実行することで F(w) を取得できます。要約しましょう。伝統的なフーリエ変換を求める本質は、直交基底の内積の係数 Cn を求めることです。
図では、畳み込み計算に参加する必要があるのは各層の信号であり、そこには「f(x)」があり、必要なのは直交基底のセットを見つけることだけです。従来のフーリエ変換は関数に対して行われますが、関数を離散化すると一次元配列になるため、基底はwに関する一次元関数となり、頂点ごとにフーリエ変換を行う必要があります。それらの間の相互影響を考慮する必要がある場合、探している直交基底のセットには少なくとも隣接行列の情報が含まれている必要があります。では、従来のフーリエ変換の直交基底の要件は何でしょうか? ここには数学的な結論が散りばめられていますが、これを基底関数として使用できる理由は、ラプラシアン演算子の特性方程式を満たしており、w が特性値に関連しているためです。特性方程式の定義を見てみましょう。
ここで、A は変換、V は固有ベクトル、λ は固有値です。満足:
その中には、ラプラシアン演算子、つまり 2 次微分演算子があります。この式では、変換規則 A が固有ベクトル V (ただし、配列ではなく要素が 1 つだけあります) であり、 固有値 λ であることがわかります。そのため、ラプラス特性方程式を満たすため、これを次のように選択します。基礎。
次に、各信号のフーリエ変換を計算します。隣接行列 A の情報を含む「ラプラス行列」も見つけることができますか。その場合、その固有ベクトルを見つけるだけで十分ですが、この固有ベクトルのセットは正しく交差している必要があります。の場合、見つけたラプラシアン行列が実対称行列であり、その固有ベクトルが直交しており、この基底のセットが正規化後の直交基底のセットであることが最適です。
ここで、グラフ構造にそのような行列は存在するのかという疑問が生じます。答えは「はい」です。この行列はラプラシアン行列 L と呼ばれ、アルゴリズムは L = D - A、D は次数行列、A は隣接行列です。なんと簡潔で、L はラプラシアン演算子の関数 (グラフ構造で 2 次導関数を求める) をどのように実現するのでしょうか。清華大学の偉い人がこの内容を非常にうまく書いており、シンプルかつ簡単な方法で説明していることがわかりました。ラプラシアン行列の意味と直感が説明され、非常に適切な例が紹介されており、GCN の初心者が読むのに非常に適しています。ポータル。
このラプラシアン行列を使用すると、その固有ベクトルを取得でき、この一連の直交基底 U を形成し、特定の信号 f に対してフーリエ変換を実行して U の内積形式を取得できます。つまり、F[ ] はフーリエ変換です。 、逆変換はf になり、U は直交行列であるため、左辺と右辺に同時に U を掛けることができ、逆変換の式は次のようになります。
ここで、信号 f とコンボリューション カーネル h を操作します。すると、は対応する要素の乗算を表し、次のように書き換えることができます。 ここで、は h のフーリエ変換された要素、n は信号の次元、そしてはf の Fu 変換された要素は diag( ) = に書き換えられるので、次のようになります。
このとき、この式で w を 2 倍にすれば上記の関係が成り立つため、U の列数は無限に多くなり得ることが分かりました。その場合、固有ベクトルは無限に存在し、その計算コストは1 つまたは 2 つの低周波成分を使用して U 全体を置き換えるか、近似します。これに基づいて、いくつかの近似が行われます。基本周波数のみの場合、次と完全に等しい伝播式が得られます。近似による時間領域:
近似処理では、コンボリューションカーネル h の定義が変更され、途中の数学的処理が省略されています。興味がある場合は、ポータルのリンクを使用して、某清華大学がまとめたより詳細な説明を参照してください。大学の上司。