ディープラーニングの詳細な説明などは専門家の説明を読んでもらうとして,
人工知能を専門分野としておらず,既存技術に人工知能を組み合わせたい人に向けた記事です.
ディープラーニングをはじめとする人工知能技術は性質上,
big dataとよばれる巨大なサンプルデータが必要です.
そのため,
大量の画像サンプルデータをとることができる既存技術とは相性が良い事が知られています.
画像生成技術は,
大量の画像サンプルデータからある特徴量を抽出して,
サンプルにない画像を生成する事ができるようになりました.
VAEとはVariational auto encoderと呼ばれるもので,
ある画像を学習させた時に,その画像の特徴量を学習して酷似した画像を生成します.
例えば,
犬の写真を10000枚学習させた時、
犬っぽい写真を生成する事ができます.
これに,条件をつけて画像生成を行う事ができるのが,
Conditional VAEです.
例えば.
犬の写真を10000枚,猫の写真を10000枚,うさぎの写真を10000枚学習させた時、
犬の写真群には「犬」という条件を,猫の写真群には「猫」という条件を,うさぎの写真群には「うさぎ」という条件を付与します.
画像生成の際に,
「犬」という条件を入力すると犬っぽい画像が生成されますし,別の条件を入力するとそれに対応した画像が生成されます.
このConditional VAEを実装するために,
かなりの時間を浪費してしまったので,
システムの詳しい原理はすっとばしてConditional VAEを使ってみたい人に向けてコードを公開しました.