女装したら本当に女性らしくなっているかをVAEを使って調べてみた

Pocket

boy2girl

はじめに

こんにちは。はんぺんです。

前回の投稿から随分と長い時間がたってしましました。

今回は女装したら本当に女性らしくなっているかを、VAEを使って調べてみました。

VAEの説明

VAEの正式名称はVariational Autoencoderで、いわゆる教師なし学習に区分されます。

Encoderが入力された画像から潜在変数Zへの変換を行い、Decoderでが潜在変数を入力として元画像を復元します。

出典:混合分布を隠れ変数とするVAEの論文を読む

VAEではこの潜在変数zに確率分布z~N(0, 1)を仮定していることが通常のAutoencoderとの違いになります。

潜在変数zは入力した画像の特徴を圧縮した情報で、いわば画像の重要な情報を持つエッセンスのようなものです。

今回は男性と女性の顔では潜在変数に違いが出るのではないかと考え、女装の有無をの画像を用いて潜在変数の比較を試みました。

VAEの説明は詳しくはここがわかりやすかったです。

AutoEncoder, VAE, CVAEの比較 〜なぜVAEは連続的な画像を生成できるのか?〜

学習

使用したデータ

学習データにはCelebAを選び、学習には5997枚の画像を用いました。

画像に付与されているラベルを元に、Maleが1の画像を男性、0の画像を女性として区別しました。

学習自体には性別の情報は必要ありませんが、可視化の際にそれを用います。

ネットワーク

EncoderとDecoderには3層のMLPを用いました。

Netronで可視化しました。

評価

生成した画像

こちらが潜在変数zから生成した画像になります。潜在変数zの次元はネットワークを生成する際に指定をすることができます。

潜在変数の次元数が大きいほどそれだけ表現力が増しますが、今回は可視化の際に解釈しやすくするために、2次元に設定しました。

左上が女性的、右上が中性的、中央下が男性的な画像が生成されていることが見受けられます。

次にこちらが学習データの潜在変数を可視化したものが以下になります。

赤色が女性で青色が男性の画像の潜在変数プロットしており、青い星が男性の、黄色い星が女性の潜在変数の平均になります。

先ほどの生成した画像と比較して、左上が女性で下が男性という感覚にも合っています。

GIF生成

次に、潜在変数の線にによって、生成される画像がどのように変わっていくかをGif動画にしてみてみようと思います。

矢印で示している通り、左上の男性的〜中性的〜女性的という主観の元、潜在変数から生成した画像からGIFを生成してみました。

生成された動画がこちらになります。たった2次元の潜在変数によってここまで表現が変わることに、純粋に驚きました。

女装の有無での潜在変数の比較

では本題の女装によって潜在変数zの値に違いが見られるのかを確認したいとお思います。

以下の画像で比較を行いました。

左が女装無しで右が女装した時の画像になります。

施した化粧はBBクリーム、チーク、アイシャドウ、アイライン、マスカラ、つけまつげといったベーシックな内容で、いわゆるナチュラルメイクを行なっております。

それぞれの画像から導き出された潜在変数は女装無しで(3.20, 1.48)、女装ありで(2.27, 2.01)でした。

これがどういった値になるかですが、先ほどの学習データの洗剤空間にプロットしたところ、このような結果になりました。

青色の星が女装無し、黄色の星が女装ありの画像の潜在変数を示したものになります。

左上が女性らしいという解釈ですので、女装をしたことで潜在変数上でもより女性に近づいたといえます。

次に潜在変数から生成した顔画像のマトリックス上ではどのような差があるかを見てみました。

生成した顔のマトリックスで考えると、(3.0, 1.0)から(2.0, 2.0)に近づいたと言え、こちらからも多少の女性らしさを獲得していると考えられます。

以上より、女装をすることで多少は女性らしくなっていると言えるのではないでしょうか。

さいごに

いかがでしたでしょうか。

今回は女装したら本当に女性らしくなっているかを、VAEを使って調べてみました。

2次元の潜在変数での比較において、女装無しで(3.20, 1.48)、女装ありで(2.27, 2.01)と、多少の女性らしさの獲得したことを見受けられました。

可視化・分析のしやすさを考え潜在変数の次元は2としましたが、次は次元数を増やして行うなどやっていこうと思います。

最後まで読んでいただきありがとうございました。

参考

本記事のGit

詳説ディープラーニング(生成モデル編)

Variational Autoencoder徹底解説

混合分布を隠れ変数とするVAEの論文を読む

スポンサーリンク














コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください