AIの深層生成モデルにおける「オートエンコーダ」について。
目次
オートエンコーダの基本
- 「オートエンコーダ」とは、可視層と隠れ層の2層からなるネットワーク
- うち可視層は、入力層と出力層がセットになったもの
- 「可視層(入力層)」→「隠れ層」→「可視層(出力層)」の順に伝播し、出力される
- 入力と出力が同じになるが、この学習により、隠れ層に情報が圧縮(要約)されることになる
- ポイント:入力層(可視層)の次元よりも、隠れ層の次元を小さくしておく
- 「エンコード(encode)」:入力層→隠れ層
- 「デコード(decode)」:隠れ層→出力層
- 教師なし学習
積層オートエンコーダ
- 「積層オートエンコーダ(stacked autoencoder)」→オートエンコーダを積み重ねたもの(ディープオートエンコーダ)
- ジェフリー・ヒントン(ディープラーニングの祖)が考えたもの
- オートエンコーダを順に学習させ、それを積み重ねていく
- 「事前学習(pre-training)」→順番に学習していくことで、それぞれで隠れ層の重みが調整され、全体的に重みが調整されたネットワークができる
※現在では、「事前学習」は転移学習の文脈で用いられることが多い
変分オートエンコーダ
- 「変分オートエンコーダ(Variational Auto-Encoder,VAE)」→オートエンコーダを活用し、入力データを圧縮表現するのではなく、統計分布(平均と分散で表現)に変換する
- 入力データは、統計分布のある1つの点になる
- エンコーダが、入力データを統計分布のある1点となる潜在変数に変換する
- デコーダが、統計分布からランダムにサンプリングした1点に復元することで新データを生成する
- 「VQ-VAE」→潜在変数を連続値ではなく離散値にしたもの
- 「info VAE」→潜在変数とデータの相関を高めることで生成の精度を上げたもの
- 「β-VAE」→VAEの目的関数において正則化を工夫することで画像の特徴を潜在空間上でうまく分離し、画像生成を使いやすくしたもの