前々回(第60回)、前回(第61回)と敵対的生成ネットワーク(GAN:Generative Adversarial Network)、DCGAN(Deep Convolutional Generative Adversarial Networks)を紹介しました。今回は、Variational Autoencoder(VAE)をご紹介します。

オートエンコーダ

VAEを説明する前に、まずはそのもとのアイデアであるオートエンコーダ(Autoencoder)について説明したいと思います。オートエンコーダは、日本語では自己符号化器と呼ばれるものです。ニューラルネットワークの一種で、入力データから次元を削減した特徴量を獲得することができます。教師データ無しで、訓練データのみで学習を行えます。つまり、画像一枚一枚に猫が写っているなどのタグを人手により付与する必要がありません。

図1を見ながら具体的に説明したいと思います。オートエンコーダはEncoderとDecoderで構成されています。Encoderでは、入力データの次元圧縮を行います。

Decoderでは、Encoderとは逆に次元圧縮されたデータから元の入力を再現しようとします。元の入力と出力が一致するように学習するため、中間層である潜在変数zは入力のデータの特徴量を可能な限り保持することになります。つまり、オートエンコーダの中間層を抽出することで、次元圧縮として用いることができます。

  • オートエンコーダの概略

    図1 オートエンコーダの概略

VAE

オートエンコーダのEncoderとDecoderを別々に使うことができます。Encoderは前述の通り、次元圧縮として用いることができます。一方、Decoderは未知の新しいデータを生成することに使うことができます。つまり生成モデルにも使うことができる訳です。

Variational Autoencoder[1]は、AEの潜在変数部分に確率分布を導入したモデルです(図2)。μはガウス分布の平均、Σはガウス分布の分散です。確率分布を導入することで、多様な潜在変数をサンプリングすることが可能となり、その結果様々な画像を出力ができます。

  • VAEの概要

    図2 VAEの概要

動画1の例では、VAEを手書き数字画像のデータセット(MNIST)で訓練し、得られた確率分布をもとに2次元状に潜在変数をサンプリングし、手書き数字画像を生成する過程を可視化したものです。学習が進むにつれて様々な手書き数字画像がより鮮明に生成できています。

動画1 VAEのネットワーク

また、VAEを顔画像データで訓練し、得られた確率分布をもとに2次元状に潜在変数をサンプリングし、顔画像を生成した結果が図3です。顔画像についても多様な画像が生成できていることが分かると思います。

  • VAEによる画像生成

    図3 VAEによる画像生成

未知のデータを創り出すことができる生成モデル、夢がありとても面白い分野だと思います。是非一度試してみて下さい!

参考文献

[1] Kingma, Diederik P and Welling, Max. Auto-Encoding Variational Bayes. In The 2nd International Conference on Learning Representations (ICLR), 2013.

著者プロフィール

樋口未来(ひぐち・みらい)
日立製作所 日立研究所に入社後、自動車向けステレオカメラ、監視カメラの研究開発に従事。2011年から1年間、米国カーネギーメロン大学にて客員研究員としてカメラキャリブレーション技術の研究に携わる。

日立製作所を退職後、2016年6月にグローバルウォーカーズ株式会社を設立し、CTOとして画像/映像コンテンツ×テクノロジーをテーマにコンピュータビジョン、機械学習の研究開発に従事している。また、東京大学大学院博士課程に在学し、一人称視点映像(First-person vision, Egocentric vision)の解析に関する研究を行っている。具体的には、頭部に装着したカメラで撮影した一人称視点映像を用いて、人と人のインタラクション時の非言語コミュニケーション(うなずき等)を観測し、機械学習の枠組みでカメラ装着者がどのような人物かを推定する技術の研究に取り組んでいる。

専門:コンピュータビジョン、機械学習