Pix2Pix(3/4)ノイズはどこへ消えた?

はぐれ弁理士 PA Tora-O です。前回(第2回)では、Pix2Pix の実施例について説明しました。改めて復習されたい方は、こちらのリンクから確認をお願いします。

ノイズの行方

前回の記事に掲載した図1と図2をもう一度見比べると、元祖GANやCGANにはあったノイズ{z}が、Pix2Pix では無くなっていることに気付きます。今回(第3回)は、「ノイズはどこへ消えた?」と題して、その理由について推論を交えながら解説します。今回の解説では、直感的に理解することが主目的であるため、技術的な厳密さを欠く部分もありますが、その点についてはご了承ください。

Zベクトルの機能的差異

まずは、元祖GANにおける{z}(以下、Zベクトル)の機能について図1に示します。詳細な説明については、以下の記事を参照してください。
GAN(3/4)GANの特徴

【図1】元祖GANにおけるZベクトルの機能

元祖GAN(Vanilla GAN)では、VAE(Variational Autoencoder)と同様に、学習データセットを潜在的空間上のZベクトルとして埋め込むことで、Zベクトルの指定を通じて、生成器が生成するデータを指定可能になります。つまり、Zベクトルは、生成データの源泉であるシード値として機能します。

これに対して、CGAN(Conditional GAN)の生成器には、上記のZベクトルに加えて、条件(Condition)が入力されます。この条件は、「ラベル」のようなデータ量が少ない情報であったり、「画像」のようなデータ量が多い情報であったりします。以下、各生成モデルにおける入力情報の内訳を図2に示します。

【図2】各モデルにおける入力情報の内訳

このバーグラフは、生成モデルにかかわらず、Zベクトルのサイズが一定(概ね、成分数が100個)であると仮定して作成しました。上側のモデルほどZベクトルが占める割合が高く、下側のモデルほどZベクトルが占める割合が低くなっています。特に、画像データを条件とするCGANでは、入力情報として画像が「主たる情報」、Zベクトルが「従たる情報」に逆転しています。言い換えれば、Zベクトルは、画像データを入力する際に、外的に付与される揺らぎ因子、つまり、外的ノイズ(External Noise)として機能します。

このように、「条件の有無」や「条件データ量の多少」によって、Zベクトルの機能やその影響度が異なっていると言えます。

代替手段

上記した外的ノイズは、学習データセットに対する頑健性(Robustness)を高め、生成器による汎化性能を向上させる方向に作用します。ところが、例えば、100画素×100画素×3chを有する画像の方が入力データ量として支配的であるため、外的にノイズを付加した影響が小さくなり、思ったほどの成果が得られない場合があります。そこで、Pix2Pix では、生成器の汎化性能を高めるべく、学習時にお馴染みの技術を導入しています。

【図3】ドロップアウトの模式図

そうです、ドロップアウトです。生成器の目線を基準にした場合、Zベクトルが外的ノイズであるならば、ドロップアウトは内的ノイズ(Internal Noise)を付与する手法とも言えます。なお、ドロップアウトの事例検討は、以下のリンクからアクセスできます。
事例#001 ドロップアウト

まとめ

Q:ノイズ(Zベクトル)はどこへ消えた?
A:Zベクトルは、元祖GANでは生成データの源泉として機能するが、CGANでは生成器に汎化性能を獲得させるための外的ノイズとして機能する。一方、内的ノイズの付与技術とも言えるドロップアウトによっても上記した獲得効果が確認されたので、pix2pixでは、設計上の観点からZベクトルの入力機構を省略した。(148文字)

 

以上、今回(第3回)は、pix2pix におけるZベクトル設計について、概略的に解説しました。テーマ最終回(第4回)は、想定されるクレーム骨子を作成しつつ、過去3回分の総括を行います。

↓ブログランキングに参加しています。よろしければ1クリックお願いします。

にほんブログ村 士業ブログ 弁理士へ
にほんブログ村

にほんブログ村 IT技術ブログ IT技術メモへ
にほんブログ村