ヒントンのカプセルネットワークを理解する。 パートIV:CapsNet Architecture

正しいラベルが1であると仮定すると、最初のDigitCapが数字1の存在をエンコードする責任があることを意味します。 このDigitCapの損失関数の場合、T_Cは1になり、残りの9つのDigitcapすべての場合、T_Cは0になります。 T_Cが1の場合、損失関数の最初の項が計算され、2番目の項がゼロになります。 この例では、最初のDigitCapの損失を計算するために、このDigitCapの出力ベクトルを取得し、0.9に固定されているm+から減算します。 次に、結果の値がゼロより大きい場合にのみ保持し、それを二乗します。 それ以外の場合は、0を返します。 つまり、正しいDigitCapが0.9より大きい確率で正しいラベルを予測する場合、損失はゼロになり、確率が0.9より小さい場合はゼロ以外になります。

正しく、不正確なDigitCapのための損失機能価値。 赤いグラフは、緑色のグラフと比較して垂直に”押しつぶされている”ことに注意してください。 これは、式のラムダ乗数によるものです。 出典:著者。

正しいラベルと一致しないDigitCapsの場合、T_Cはゼロになるため、2番目の項が評価されます((1—T_C)部分に対応します)。 この場合、不一致のDigitCapが0.1未満の確率で誤ったラベルを予測し、0.1以上の確率で誤ったラベルを予測した場合、損失はゼロになることがわかります。

最後に、式には、トレーニング中の数値安定性のためのラムダ係数が含まれています(その値は0.5に固定されています)。 この損失関数にはL2ノルムがあり、著者らは明らかにこのノルムがよりうまくいくと考えているため、式の2つの項には2乗があります。

CapsNetデコーダアーキテクチャ。 出典:元の紙。

Decoderは、正しいDigitCapから16次元ベクトルを取得し、それを数字のイメージにデコードすることを学習します(トレーニング中に正しいDigitCapベクトルのみを使用し、不 デコーダは正則化器として使用され、正しいDigitCapの出力を入力として受け取り、28×28ピクセルの画像を再作成することを学習し、損失関数は再構築された画像と入力画像との間のユークリッド距離である。 デコーダーは、元の画像を再構築するために有用な機能を学習するためにカプセルを強制します。 再構成された画像が入力画像に近いほど、より良好になります。 再構成された画像の例は、下の画像で見ることができます。

一番上の行:元の画像。 一番下の行: 再構成された画像。 出典:元の紙。

レイヤー4。 完全に接続された#1

入力:16×10。
出力:512
パラメータの数:82432。

下位レベルの各出力は重み付けされ、入力として完全に接続された層の各ニューロンに向けられます。 各ニューロンにはバイアス項もあります。 この層のためにすべてこの層の512のニューロンのそれぞれに指示される16×10の入力がある。 したがって、(16×10+1)x512のトレーニング可能なパラメータがあります。

次の二つの層の計算は同じです: パラメータの数=(入力の数+バイアス)x層内のニューロンの数。 これが、完全に接続されたレイヤ2および3についての説明がない理由です。

レイヤー5。 完全に接続された#2

入力:512。
出力:1024
パラメータの数:525312。

レイヤー6。 完全に接続された#3

入力:1024。
出力:784(再整形後に28×28デコードされた画像が返されます)。
パラメータの数:803600。

ネットワーク内のパラメータの総数:8238608。

コメントを残す

メールアドレスが公開されることはありません。