G検定(ジェネラリスト検定)
ぴくすーぴくす
Pix2Pix
Pix2Pix
Pix2Pixは、条件付きGANを使って画像から画像への変換問題を汎用的に解く手法で、変換の対応づけと、それを訓練する損失関数の両方を学習します。
詳しい説明
画像から画像への変換という課題
画像処理、コンピュータグラフィックス、コンピュータビジョンの多くの問題は、入力画像を対応する出力画像へ変換する問題として捉えられます。ひとつの概念を英語でもフランス語でも表せるのと同じように、ひとつのシーンもRGB画像、勾配場、エッジマップ、意味ラベルマップなど、さまざまな表現で描けます。Pix2Pixの論文は自然言語の自動翻訳になぞらえて、十分な訓練データがあることを前提に、あるシーンの1つの表現を別の表現へ変換するタスクを画像から画像への自動変換と定義しました。
条件付きGANで損失関数も学習する
Pix2Pixの中心にあるのは、条件付き敵対的ネットワーク(条件付きGAN)をこの課題全般に対する汎用的な解決策として使うという考え方です。このネットワークは入力画像から出力画像への対応づけを学習するだけでなく、その対応づけを訓練するための損失関数も学習します。そのため、従来なら問題ごとにまったく異なる損失の設計が必要だった課題を、同じ汎用的な手法で扱えます。論文では、ラベルマップから写真を合成する、エッジマップから物体を復元する、画像に色をつける、といったタスクでの有効性が示されています。
通常のGANはランダムノイズベクトルzから出力画像yへの対応づけを学習します。これに対して条件付きGANは、観測画像xとランダムノイズベクトルzからyへの対応づけを学習します。条件付きGANの目的関数は、L_cGAN(G,D) = E[log D(x,y)] + E[log(1 - D(x, G(x,z)))] と表されます。識別器Dは本物の組(x,y)と、生成器Gが作った組(x, G(x,z))を見分けようとします。
さらにPix2Pixでは、GANの目的関数に従来型の損失を混ぜます。先行研究ではL2距離がよく使われていましたが、L1距離のほうがぼやけを生みにくいため、L1距離による損失 L_L1(G) = E[||y - G(x,z)||_1] を採用しました。最終的な目的関数は G* = arg min_G max_D L_cGAN(G,D) + λ L_L1(G) で、λは2つの損失の重みを調整する係数です。
生成器のU-Netと識別器のPatchGAN
この分野の従来の手法の多くは、エンコーダデコーダ型のネットワークを使っていました。入力を段階的にダウンサンプリングしてボトルネック層まで圧縮し、そこから逆の処理で出力へ戻す構造です。しかし画像変換の多くの問題では、入力と出力の間で低レベルの情報が大量に共有されており、その情報をネットワークの中で直接受け渡せることが望まれます。そこでPix2Pixは生成器に、エンコーダとデコーダの鏡写しの位置にある層どうしをスキップ接続でつないだU-Netベースの構造を使いました。
識別器には、PatchGANと呼ばれる畳み込み分類器を使います。PatchGANは画像全体ではなく、画像パッチの大きさでの構造だけにペナルティを課します。パラメータが少なく、動作が速く、任意の大きさの画像に適用できるという利点があり、論文ではパッチの大きさを変えたときの効果も調べています。
なお、Pix2Pixは入力と出力が対になった訓練データを前提とします。対になったデータが無い場合に対応した発展形はCycleGANとして別に扱われます。
試験で問われること
G検定
- Pix2Pixが条件付きGANを画像から画像への変換の汎用的な解決策とみなせる理由を、損失関数も学習するという点から説明できますか。
- 通常のGANと条件付きGANとで、生成器が何から何への対応づけを学習するかの違いを説明できますか。
- Pix2Pixの目的関数で、GANの損失にL2ではなくL1距離の損失を加える理由は何ですか。
- 生成器に使われるU-Netのスキップ接続と、識別器に使われるPatchGANがそれぞれどのような利点を持つかを説明できますか。
最終更新日: 2026/09/23