5-8-2 代表的なオートエンコーダの発展形

前の章では、オートエンコーダを、入力をいったん小さく圧縮し、そこから元のデータをできるだけ再現するモデルとして見てきました。
これはとても大事な出発点です。
でも研究が進むにつれて、人々はこう考えるようになりました。
ただ再現できるだけで十分なのだろうか。
もっと意味のある圧縮はできないだろうか。
その圧縮された表現から、新しいデータを生み出すことはできないだろうか。
こうして、オートエンコーダは少しずつ発展していきます。

積層オートエンコーダ

まず出てくるのが、積層オートエンコーダです。
これは、オートエンコーダを一段だけで終わらせるのではなく、何層か重ねて使う考え方です。

たとえば旅の荷物を整理するときも、いきなり全部を一つの小箱に詰めるのではなく、

・まず服をまとめる
・次に本やノートをまとめる
・さらに全体をもう一度整理する

というふうに、段階を分けて整理したほうが、うまくまとまることがありますよね。

積層オートエンコーダもそれに似ています。
各層が少しずつ特徴を学び、その結果を次の層へ渡すことで、より深い特徴表現を作っていくのです。
これは、ディープラーニングの初期には、事前学習の方法としても重要でした。
いきなり深いネットワーク全体を学習するのではなく、層ごとに少しずつ「データの特徴」を学んでから、本番のタスクへ進む。その流れの中で、積層オートエンコーダは大きな役割を果たしました。

変分オートエンコーダ(VAE)

基本のオートエンコーダは、入力を圧縮して再現することはできます。
でも、その圧縮された表現が、どんな並び方をしているかまでは、必ずしも整っていません。

たとえるなら、小さな箱の中に荷物は入ったけれど、並べ方に規則がなく、あとから新しい荷物を似た場所に置こうとしても、うまくいかない感じです。

そこで生まれたのが、変分オートエンコーダVAE: Variational Autoencoder)です。
VAEでは、圧縮された表現が、なめらかで整った空間になるように学習することを目指します。
これはとても大事な違いです。
たとえば顔のデータを圧縮したとき、

・似た顔どうしは近く
・違う顔は少し離れて
・途中の場所にも、それなりに意味のある顔が対応する

ように、潜在空間が地図のように整っていると、その空間から新しいデータを作りやすくなります。
つまりVAEは、ただ圧縮するだけでなく、生成にも向いた潜在空間を学ぶモデルなのです。

β-VAE

VAEが生まれると、さらに次の問いが出てきました。
圧縮された表現の中で、特徴をもっときれいに分けられないだろうか。

たとえば顔のデータなら、

・髪の長さ
・表情
・顔の向き
・明るさ

のような特徴が、ごちゃごちゃに混ざるのではなく、できるだけ分かれて表現されると嬉しいことがあります。
この発想から出てきたのが、β-VAEです。
β-VAEは、VAEの考え方を受け継ぎつつ、潜在表現をより整理されたものにしようとするモデルです。

たとえるなら、旅の荷物を小箱に詰めるとき、

・服は服の場所
・本は本の場所
・洗面道具は洗面道具の場所

と、なるべく分かれて入るようにしたい、という感じです。
β-VAEでは、潜在空間の中で特徴がより独立して分かれやすいように学習が進むことがあります。
そのため、データの中にある意味の軸を見つけやすいモデルとして知られています。

infoVAE

ここでまた別の悩みも出てきます。
潜在空間をきれいに整えようとしすぎると、今度は入力データの大事な情報まで薄れてしまうことがあるのです。

たとえるなら、荷物を美しく整理しようとしすぎて、必要なものまで抜いてしまう感じです。

そこで考えられたのが、infoVAEです。
名前の “info” は information、つまり情報を表しています。
infoVAEは、潜在空間を整えつつ、元データの大事な情報もきちんと保とうという方向の工夫です。
つまり、ただ並びがきれいなだけではない、元のデータらしさもちゃんと残したい、という考え方を強めたモデルだと言えます。
VAEが「きれいな地図」を作ろうとしたのに対して、infoVAEは、地図をきれいにしながら、そこに載っている中身も薄れすぎないようにすることを目指したモデルなのです。

VQ-VAE

さらに発展の方向はもう一つありました。
VAE系では、潜在空間はなめらかな連続値として表されることが多いです。
でも世の中には、連続的に変わるよりも、いくつかの部品や記号の組み合わせで考えたほうがわかりやすいものもあります。

たとえば言葉は、完全な連続値というより、単語や音のような離れた部品として扱うほうが自然な場面があります。

そこで出てきたのがVQ-VAE(Vector Quantized VAE)です。
VQ-VAEでは、潜在表現を、連続した値ではなく、限られた「コード」や「部品」の中から選ぶ形で表すという発想を取ります。

たとえるなら、荷物を自由に詰めるのではなく、あらかじめ用意された収納ボックスの中から

・この箱
・あの箱
・その箱

というふうに選んで整理する感じです。
つまりVQ-VAEは、潜在表現を辞書の中の記号のように扱うモデルです。
そのため、離散的な表現がほしいとき、音声や画像の生成で安定した表現を使いたいときなどに注目されてきました。

まとめ

積層オートエンコーダ
→ オートエンコーダを重ねて、段階的に特徴を学ぶ
→ 事前学習にも使われた

VAE
→ 圧縮された表現を、なめらかで生成しやすい潜在空間に整える

β-VAE
→ 潜在空間の特徴を、より分かれて整理しやすくする

infoVAE
→ 潜在空間を整えつつ、元データの情報もきちんと残そうとする

VQ-VAE
→ 潜在表現を、連続値ではなく離散的なコードとして扱う

最初のオートエンコーダは、入力を再現することが中心でした。
でも発展形では、

・よりよい特徴表現を学ぶ
・潜在空間を整える
・新しいデータを生成する
・離散的な表現を使う

といった方向へ広がっていきました。
つまりオートエンコーダは、単なる「圧縮モデル」ではなく、表現学習や生成モデルへつながる大きな入口でもあったのです。

「潜在空間」という言葉は、ひんやりした、不思議な響きを持っています。

潜在。
まだ表には出ていないもの。
見えてはいないけれど、たしかにそこにあるもの。
だから潜在空間とは、データの奥にひそむ特徴たちが、静かに並べられている場所だと思うと、イメージしやすいかもしれません。

古い家の屋根裏部屋を想像してみてください。
そこには、旅先から持ち帰った小箱や、昔の手紙や、色あせた写真が並んでいます。
外から見れば、ただの箱です。けれど、しまい方にはなんとなく意味があります。
似た季節の思い出は近くに置かれ、家族にまつわるものは同じ棚に寄せられ、遠い旅の記憶は、少し離れた場所にまとめられている。
誰かがきちんと名前を書いたわけではないのに、部屋の中には、「似ているものは近く、違うものは遠く」という秩序が生まれている。
潜在空間は、それに少し似ています。

画像や文章や音声のデータは、モデルの中でそのまま保存されるのではなく、特徴の近さにしたがって、見えない部屋の中へそっと並べられていく。その場所が、潜在空間です。

ここでいう「潜在」とは、まだ表面には現れていないけれど、内側にひそんでいるものという意味です。
顔の画像を見たとき、私たちはただの数字の集まりを見ているわけではありません。

そこには、

・目の形
・表情のやわらかさ
・顔の向き
・雰囲気の近さ

のような、言葉にしきれない特徴がひそんでいます。
潜在空間は、そうした特徴が、目に見えないかたちで整理されている場所です。
だからそれは、写真そのものを置く部屋ではなく、写真の「らしさ」が住んでいる部屋なのかもしれません。

VAEでは、この潜在空間が特に大切になります。
なぜならVAEは、ただ元のデータを再現するだけではなく、潜在空間そのものを、なめらかで意味のある地図のように整えようとするからです。
たとえば、似た顔は近くに置かれ、少し違う顔は少し離れて置かれる。
そのあいだには、まだ見ぬ「中間の顔」が眠っているかもしれない。
VAEでは、その地図の上を歩くことで、新しいデータを生み出すことができます。

それはまるで、屋根裏部屋の箱を開けて思い出を取り出すだけではなく、まだ開けたことのない箱の置かれた場所から、新しい記憶の気配を想像することに少し似ています。
つまりVAEにとって潜在空間は、ただの収納場所ではありません。
そこは、意味が並び、似かよいものが呼び合い、まだ形になっていない可能性が眠っている場所なのです。

哲学的に言えば、潜在空間とは、「もの」そのものが置かれた場所ではなく、ものともののあいだにある、似ているという気配が並べられた場所なのかもしれません。
目に見える形は違っていても、どこかで通じ合うものは近くに置かれる。
逆に、表面は似ていても、本質が遠ければ、離れていく。

潜在空間は、AIが世界の奥にあるそうした関係を、自分なりの地図に描きなおしていく場所なのです。

next ▶ データ拡張とは何か