CycleGANとは?ディープラーニングで馬をシマウマに変換する仕組みの解説
この記事で学ぶこと
CycleGANは馬の画像からシマウマの画像へ変換したり、その逆方向(シマウマから馬)の変換をするデモで有名です。今回はこのCycleGANの仕組みを解説します。
しかし、pix2pixでも似たようなことが可能でした。CycleGANでは何が異なるのでしょうか?
実は、CycleGANはpix2pixでの幾つかの不都合を解決しており、それらの問題点を知ることでCycleGANの仕組みが理解しやすくなります。
以下に詳しく説明します。
pix2pixの不都合な真実
訓練用のペア画像が必要
pix2pixでは「画像から画像への翻訳」と称して、画像の内容を違うスタイルに変換することが可能です。例えば、スケッチ画像から写真のような画像を生成できます。
しかし、pix2pixは教師あり学習を使うので、訓練用に2つの画像をペアにしたものをたくさん用意する必要がありました。
画像変換用のデータセットで入力画像と正解画像が1対1になっているものがそんなにたくさん存在するわけでもありません。未知の画像変換を実現したくとも、訓練そのものよりもデータを集めることの方が大変になります。
教師あり学習では共通の悩みどころではありますが、pix2pixに存在する不都合の一つ目です。
一方向の画像生成
pix2pixでは生成ネットワークを一つだけ訓練します。
たとえば、白黒のスケッチからカラーの画像を生成するネットワークを訓練したとします。
カラー画像から白黒のスケッチへの逆変換をするためには、新たにpix2pixの訓練をする必要があります。
同じデータセットを使って2度訓練を繰り返すことになります。両方向の画像変換のために2つの生成ネットワークを同時に訓練したほうが効率的です。
まとめると、pix2pixでは教師ありデータを集めるのが大変なのと、両方向の生成ネットワークを作る際に倍の時間がかかるといった不都合があります。
その一方で、CycleGANは教師なし学習で2つの生成ネットワークを同時に訓練できる仕組みになっています。
この記事が気に入ったらサポートをしてみませんか?