![見出し画像](https://assets.st-note.com/production/uploads/images/169590702/rectangle_large_type_2_da88e1064565c3cadaf70d7ffe7f9547.png?width=1200)
VAE(変分オートエンコーダ)を理解しよう!生成AIがどのように画像を作っているのか?
前回の記事ではCNN(畳み込みニューラルネットワーク)について説明しましたね。今回は、その続きとしてVAE(Variational Autoencoder:変分オートエンコーダ)というモデルについてお話しします。
「生成AI」というと、画像生成モデルが特に注目されることが多いですが、その裏側でどのような技術が使われているかを知ると、AIに対する理解が深まります。さっそく、VAEがどんなものかを見ていきましょう!
VAEとは?
VAEは「データを確率分布として表現し、新たなデータを生成するモデル」です。画像生成や異常検知などに使われる手法で、オートエンコーダ(Autoencoder)を確率的なモデルに拡張したものです。
オートエンコーダとの違い
オートエンコーダ:入力データを「特徴ベクトル」に圧縮し、同じ情報をもとに再構築するモデル。
VAE(変分オートエンコーダ):入力データを「確率分布」として扱うことで、画像生成の際に新しいデータを生成可能にします。
VAEには以下の2つの機能があります。
新しい画像を生成する:入力画像から抽出した潜在変数を使い、新しい画像を生成できます。
入力画像に基づく再構築と調整:損失関数の調整によって、生成された画像が入力画像に近づくようにモデルを最適化します。
VAEの流れ
(1) 入力データをエンコーダに入力
画像をエンコーダに入力すると、その画像の特徴を数値として取り出します。具体的には「平均(μ)」と「標準偏差(σ2)」の2つの値です。
(2) 確率分布の作成
エンコーダが出力した「平均」と「標準偏差」を使って、正規分布を作成します。この分布は「画像の特徴がどのくらいの範囲でばらつくか」を表しています。
(3) 潜在変数のサンプリング
作成された確率分布からランダムに数値を取り出します。この取り出した値を「潜在変数(z)」と呼び、データ生成のために使います。
補足:再パラメータ化トリック
通常、ランダムなサンプリングはニューラルネットワーク内では微分できません。そこで「再パラメータ化トリック」という方法を使い、確率的な処理を微分可能な計算式に変換します。
再パラメータ化トリックの数式は次のようになります:
z=μ+σ⋅ϵ
ϵ:標準正規分布からランダムに取り出した値(平均0、分散1)
(4) デコーダによる再構築
エンコーダから渡された「潜在変数」を受け取ったデコーダは、これをもとに新しい画像を生成します。生成された画像は、入力された画像に「似ているけれど少し異なる」ものになります。
損失関数の役割
VAEの学習を進めるうえで重要な「損失関数」について説明します。VAEの損失関数は以下の2つの誤差を組み合わせたものです。
(1) 再構築誤差
入力画像と生成された画像の違いを測定する項目です。これにより、生成された画像が元の画像にどれだけ似ているかを評価します。一般的に平均二乗誤差(MSE)が使用されます。
(2) KLダイバージェンス
エンコーダが出力する確率分布が、理想の標準正規分布(平均0、分散1)にどれだけ近いかを測る項目です。この項目により、潜在空間が「滑らかな分布」になります。
損失関数全体は次のようになります:
LVAE=Eq(z∣x)[logp(x∣z)]−DKL(q(z∣x)∣∣p(z))
第1項:再構築誤差(生成した画像と入力画像の類似度を測定)
第2項:KLダイバージェンス(潜在空間を標準正規分布に近づける)
この損失関数を最小化することで、「元の画像に近い画像を生成する能力」と「潜在空間を理想的な分布に近づける能力」を同時に高めています。
4. VAEの応用例
VAEはさまざまな場面で活用されています。
画像生成:手書き数字の生成、顔画像の生成など。
異常検知:正常なデータから外れる画像を異常として検出。
データ補間:2つの異なる画像間を滑らかに補間した画像の生成。
5. まとめ
VAEは、入力画像を圧縮して潜在変数という「数値ベクトル」に変換し、そこから確率的にデータを生成するモデルです。再構築誤差とKLダイバージェンスという2つの要素を損失関数で調整しながら、理想的な分布に近づけることで「多様なデータ生成」を可能にしています。
VAEには主に以下の2つの機能があります:
新しい画像を生成する:潜在変数を用いて入力画像に似た、新しい画像を生成します。
入力画像に基づく再構築と調整:損失関数を最適化し、生成された画像が入力画像に近づくようにモデルを調整します。
このように、VAEは「画像生成」と「再構築のための調整」という2つの役割を担い、生成モデルとして多様な応用が可能です。
次回は、さらに高度な生成モデルである「GAN(Generative Adversarial Network)」についても触れていこうと思います。
もしこの記事が参考になったら、ぜひ「スキ」やコメントで感想を教えていただければ幸いです。