AI

オートエンコーダとVAE|生成AIの入口

AI

ここからは画像を「見分ける」側から「作る」側に移ります。その入口にあたるのが、入力をいったん圧縮してから元に戻すオートエンコーダです。

こんにちは、zawato(@zawato7)です!

本記事はディープラーニング入門ロードマップの第25回です。ここから生成AIのパートに入り、モデルがデータそのものを作り出す話へ移ります。

この記事でわかること
  • エンコーダとデコーダで何をしているのか
  • 次元圧縮・異常検知・事前学習という使い道
  • VAEの潜在変数とKLダイバージェンスの役割

 

 

オートエンコーダは入力と同じものを出力させて学習する

オートエンコーダ(AutoEncoder)は、入力データをいったん小さく圧縮し、そこから元のデータを復元するように学習させるニューラルネットワークです。入力自身が正解になる、少し変わった形です。真ん中が細くくびれた砂時計のような構造をイメージしてください。

部分やっていること
エンコーダ(前半)入力を少ない次元に圧縮する
中間の層圧縮された表現を保持する(ここが最も細い)
デコーダ(後半)圧縮された表現から元のサイズに復元する

細い部分を通す以上、情報を素通しさせることはできません。だからネットワークは「復元に本当に必要な特徴は何か」を自分で見つけることになります。人が正解ラベルを用意しないので、教師なし学習に分類されます。

 

 

次元圧縮・異常検知・事前学習という3つの使い道

復元そのものより、途中でできる圧縮表現と「うまく復元できるかどうか」のほうが実用的です。G検定では次の3つの用途が問われます。

用途仕組み
次元圧縮エンコーダの出力だけ取り出せば、少ない次元の特徴量として使える
異常検知学習した種類のデータはきれいに戻るが、見たことのないデータは戻らない性質を利用する
事前学習層ごとに学習した重みを、深いネットワークの初期値として流用する

正常な製品画像だけで学習させておけば、正常品は元通りに戻る一方、傷のある製品は復元が崩れます。この復元誤差の大きさを、そのまま異常の度合いとして使えます。

事前学習は歴史的な用途です。層を深くすると学習が進まなかった時代、重みの初期値の決め方が課題でした。そこで1層ずつオートエンコーダとして学習させ、得られた重みを初期値に使いました。今は活性化関数や初期値の工夫が整い、この手順はあまり踏まれません。

 

 

VAEは潜在変数を確率分布として扱う

VAE(変分オートエンコーダ/Variational AutoEncoder)は、真ん中の潜在変数を1つの点ではなく、平均と分散を持つ確率分布として表すオートエンコーダです。この違いが、圧縮の道具を生成の道具に変えます。

普通のオートエンコーダでは、1枚の画像が圧縮空間の1つの点に対応します。点と点のあいだを指定しても、意味のあるデータが出てくる保証はありません。

VAEは1枚の画像を「このあたり」という広がりのある分布として学習し、そこから値を1つ引いてデコーダに渡します。少しずれた値でも同じ画像に戻るよう鍛えられるため、圧縮空間が隙間なく埋まり、値を少しずつ動かせば出力も少しずつ変わるなめらかな生成ができます。

比較オートエンコーダVAE
潜在変数の形1つの点(数値の並び)確率分布(平均と分散)
主な目的圧縮・復元新しいデータの生成
途中の値意味のある出力になる保証がない連続的に変化する出力が得られる

 

 

KLダイバージェンスとVAEの発展形

KLダイバージェンス(カルバック・ライブラー情報量)は2つの確率分布のずれを測る指標で、VAEの損失関数に使われます。VAEの損失は「どれだけ正確に復元できたか」と「潜在変数の分布が想定した分布からどれだけずれているか」を足し合わせた形で、後半をKLダイバージェンスが担当します。

試験で狙われるのが非対称性です。2つの分布を入れ替えると値が変わるため、厳密には距離ではありません。

VAEには発展形がいくつかあり、名前と特徴のセットで問われます。

手法特徴
VQ-VAE潜在変数を連続値ではなく離散的な値に置き換えた
info VAE潜在変数と元データの相関を高めて精度を改善した
β-VAE正則化の掛け方を工夫して生成画像の品質を高めた

β-VAEの「正則化」は、過学習対策で出てきた正則化と同じ発想で、損失に加える項の重みを調整してモデルの振る舞いを制御します。

 

 

まとめ

  • オートエンコーダはエンコーダで圧縮しデコーダで復元するネットワーク。入力自身が正解になるため教師なし学習に分類される
  • 用途は次元圧縮・異常検知・事前学習の3つ。異常検知は復元誤差の大きさを手がかりにする
  • VAEは潜在変数を平均と分散を持つ確率分布として扱い、なめらかな生成を可能にする。損失関数には非対称なKLダイバージェンスが使われる

 

 

よくある質問

Q. オートエンコーダは教師あり学習ですか、教師なし学習ですか?
A. 教師なし学習に分類されます。入力そのものを正解として使うため、人がラベルを付ける作業が発生しないからです。

Q. オートエンコーダと主成分分析は何が違いますか?
A. どちらも次元圧縮に使えますが、主成分分析は直線的な圧縮しかできないのに対し、オートエンコーダは活性化関数を挟むため複雑な圧縮も学習できます。

Q. VAEとGANはどちらも生成に使えますが違いは何ですか?
A. VAEは元のデータを復元する形で学習するのに対し、GANは生成する側と本物か偽物かを見分ける側を競わせて学習します。VAEの出力はややぼやけやすく、GANのほうが輪郭のはっきりした画像が得やすいとされます。

Q. KLダイバージェンスは距離と考えてよいですか?
A. 距離ではありません。2つの分布を入れ替えると値が変わる非対称な指標で、この点が試験でも問われます。

 

 

コメント