本文へ移動

G検定(ジェネラリスト検定)

さいくるがん

CycleGAN

CycleGAN

Cycle-Consistent Generative Adversarial Network

CycleGANは、位置合わせされた画像ペアが無くても、2つの写像と2つの識別器、そしてサイクル一貫性損失を使って、あるドメインの画像を別のドメインへ変換できる手法です。

詳しい説明

ペアの無いデータで画像変換を学ぶ手法

画像から画像への変換(image-to-image translation)は、入力画像と出力画像の対応関係を学習する、画像認識とグラフィックスの分野の問題の一群です。Pix2Pixのような従来の画像変換の手法は、位置合わせされた画像のペアを訓練データとして使うことを前提としていました。しかし多くのタスクでは、ペアになった訓練データは手に入りません。CycleGANは、ペアの例が無い状況でも、元のドメインXの画像をターゲットのドメインYの画像へ変換することを学習する手法として提案されました。

順序の無い2つの画像集合XとYが与えられれば、CycleGANは一方から他方へ、また逆方向へも、画像を自動で変換することを学習します。論文では、モネの絵画とFlickrの風景写真、ImageNetのシマウマと馬、Flickrの夏と冬のヨセミテの写真といった組み合わせが示されています。ペアの訓練データが存在しないタスクとして、作品集の画風の変換(collection style transfer)、物体の変形、季節の変換、写真の質の向上などの結果が示されています。

2つの写像と2つの識別器

CycleGANは、XからYへの写像Gと、その逆のYからXへの写像Fという2つの写像を持ちます。さらに2つの識別器を導入します。D_Xは画像xと、変換された画像F(y)を見分けようとします。同じようにD_Yは画像yと、変換された画像G(x)を見分けようとします。

目的関数は2種類の項から成ります。1つは、生成された画像の分布をターゲットドメインのデータ分布に合わせるための敵対的損失です。もう1つは、学習された写像GとFが互いに矛盾しないようにするためのサイクル一貫性損失です。

サイクル一貫性損失が必要な理由

敵対的な学習は、理論上は、ターゲットドメインのYやXと同じ分布の出力を作るGとFを学習できます。ところが十分な表現力を持つネットワークは、同じ入力画像の集合を、ターゲットドメインの画像のどんなランダムな並べ替えにも対応づけられてしまいます。そのため敵対的損失だけでは、個々の入力x_iを望ましい出力y_iへ対応づけることを保証できません。ペアの無い条件では、写像に対する制約が大きく不足しているのです。

そこで、取りうる写像関数の範囲をさらに狭めるため、学習する写像はサイクル一貫性を持つべきだと考えます。ドメインXの各画像xについて、xをGで変換してG(x)とし、それをFで戻したF(G(x))は、元のxにほぼ一致するべきです。これを前向きのサイクル一貫性と呼びます。同じようにドメインYの各画像yについて、yをFで変換し、Gで戻したG(F(y))はyにほぼ一致するべきです。これが後ろ向きのサイクル一貫性です。

この振る舞いを促すのがサイクル一貫性損失で、L_cyc(G,F) = E[||F(G(x)) - x||_1] + E[||G(F(y)) - y||_1] と表されます。F(G(x))とxの差のL1ノルムの期待値と、G(F(y))とyの差のL1ノルムの期待値を足したものです。

試験で問われること

G検定

  • Pix2Pixのような従来の画像変換手法と比べて、CycleGANは訓練データについてどのような前提を不要にした手法か説明できますか。
  • CycleGANが持つ2つの写像GとF、2つの識別器D_XとD_Yが、それぞれ何から何への変換を担い、何と何を見分けるのかを説明できますか。
  • 敵対的損失だけでは個々の入力を望ましい出力へ対応づける保証にならない理由と、それを補うサイクル一貫性損失の役割を説明できますか。
  • 前向きのサイクル一貫性と後ろ向きのサイクル一貫性の違い、およびサイクル一貫性損失がどの差のL1ノルムの和として定義されるかを説明できますか。

最終更新日: 2026/09/23