✅
条件付きGAN
はじめに
概要
- シラバス:E資格2024#2
- 条件付きGANとCycleGANを勉強する
キーワード
条件付きGAN, CycleGAN, 循環一貫性損失
学習内容
条件付きGAN(Conditional GAN, CGAN)
- 通常のGANに「条件(ラベルや属性)」を加えて制御可能にしたもの
- 「○○な画像を生成して!」と指定できるGAN
要素 | 通常のGAN | 条件付きGAN(cGAN) |
---|---|---|
入力(Generator) | ノイズ |
ノイズ |
入力(Discriminator) | 画像 |
画像 |
目的 | 「本物っぽい画像を作る」 | 「条件に合った本物っぽい画像を作る」 |
損失関数
- 生成器Gは、条件yに基づいた画像を生成
- 識別器Dは、画像と条件の組が「本物か偽物か」を判定
CycleGAN
- ペアの対応がない画像同士のドメイン変換(例:馬⇄シマウマ、写真⇄絵画)を可能にする画像変換用のGANモデル
- 対応ペアなしで「AのスタイルをBに変換」「BをAに戻す」を学習するGAN
- 通常の画像変換モデルでは、「入力画像と変換後画像」のペアが必要。でも現実には、写真の「馬」と対応する「シマウマ画像」は存在しない。CycleGANは、こうした「非ペア画像」の変換を可能にする。
構造
CycleGANは、2つのGeneratorと2つのDiscriminatorを持つ
ネットワーク | 役割 |
---|---|
ドメインAの画像をドメインBへ変換 | |
ドメインBの画像をドメインAへ変換 | |
「Bの画像」と「G(A)」を判別 | |
「Aの画像」と「F(B)」を判別 |
循環一貫性損失(Cycle Consistency Loss)
- 損失関数で、「変換して元に戻したら、元の画像に戻るはず」という制約を数式的に表現したもの
- 「A→B→A」や「B→A→B」と変換しても、元の画像に近くなければダメというペナルティ
- なぜ必要か
- 変換先の画像と正解画像が対応していないので、正解との比較ができない
- 単に「本物っぽい画像を生成する」だけだと、意味を持たない変換(例:入力画像と無関係な出力)が学習される恐れがある
- 「変換して戻すと元に近くなるようにしろ」という制約を加えるのが循環一貫性損失である
目的と効果
目的 | 説明 |
---|---|
内容保存 | 変換後も、入力の構造や意味が保持されるようにする |
安定学習 | 本物に似せるだけでなく、意味のある変換を学習できる |
ペアなし学習を可能に | 正解画像がなくても、一貫性に基づいた間接的な教師信号を得られる |
Discussion