ホーム

Think

トピック

変分オートエンコーダー

変分オートエンコーダーとは
IBMのAIプラットフォームを探索する AI関連の最新情報の購読を申し込む
雲、円グラフ、グラフのピクトグラムのコラージュ

公開日:2024年6月12日
寄稿者:Dave Bergmann、Cole Stryker

変分オートエンコーダーとは

変分オートエンコーダー(VAE)は、機械学習(ML)で使用される生成モデルであり、トレーニング対象である入力データのバリエーションという形で新しいデータを生成します。これに加えて、ノイズ除去などの他のオートエンコーダーと共通のタスクも実行します。

すべてのオートエンコーダーと同様に、変分オートエンコーダーはディープラーニング・モデルであり、トレーニング・データから重要な潜在変数を分離することを学習するエンコーダーと、それらの潜在変数を使用して入力データを再構築するデコーダーで構成されています。

ただし、ほとんどのオートエンコーダー・アーキテクチャーは潜在変数の離散的かつ固定された表現をエンコードしますが、VAEはその潜在空間の連続的かつ確率的な表現をエンコードします。これにより、VAEは元の入力を正確に再構築するだけでなく、変分推論を使用して元の入力データに類似した新しいデータ・サンプルを生成することもできます。

変分オートエンコーダーのニューラル・ネットワーク・アーキテクチャーは、もともとDiederik P. KingmaとMax Wellingによる2013年の論文Auto-Encoding Variational Bayesで提案されました(リンクはibm.com外部にあります)。この論文では再パラメーター化法と呼ばれる、機械学習における重要な技術を広めました。これは、モデルの微分可能性、つまりモデルのパラメーターを最適化する能力を損なうことなく、ランダム性をモデルの入力として利用できる技術です。

VAEは、本記事を含め、画像生成の文脈でよく議論されていますが、異常検出1から新しい薬物分子の生成2まで、さまざまな人工知能(AI)アプリケーションで使用できます。(リンクはibm.com外部にあります)。

適切なAI基盤モデルの選択方法

ほとんどの組織が生成AIによる成果に何を期待しているか明確にしていますが、モデルの選択を誤ると、ビジネスに重大な影響を与えるおそれがあります。この電子書籍では、パフォーマンス要件とコスト、リスク、デプロイメント・ニーズ、利害関係者の要件のバランスが取れるよう、モデルを選択する際のフレームワークについて説明します。

潜在空間とは

VAEや他のタイプのオートエンコーダーを理解するうえで潜在空間という概念が重要になります。潜在空間とは、ある入力データ・セットの潜在変数の集合を指します。簡単に説明すると、潜在変数とは、多くの場合は直接観測できない、データの分布の仕方に影響を与える基礎的な変数です。

潜在変数の概念をイメージしやすくするために、通過する車両の重量を測定するセンサーを備えた橋を想像してください。当然のことながら、橋を使用する車両は、小型で軽量なオープンカーから重量のある大型トラックまで、さまざまです。カメラがないため、ある車両がオープンカー、セダン、バン、またはトラックであるかを検出する方法がありません。ただし、車両の種類がその車両の重量に大きな影響を与えることがわかっています。

したがって、この例には2つのランダム変数xzが含まれます。xは車両重量の直接観測可能な変数、zは車両タイプの潜在変数です。オートエンコーダーの主なトレーニング目標は、特定の入力の潜在空間を効率的にモデル化する方法を学ぶことです。

潜在空間と次元削減
オートエンコーダーは次元削減、つまり元の入力に含まれる意味のある情報を取得する、低次元空間へのデータの圧縮を通じて、潜在空間をモデル化します。

機械学習(ML)のコンテキストでは、数学的次元は物理世界における慣れ親しんだ空間次元ではなく、データの特徴量に対応します。たとえば、MNISTデータ・セットから取得した手書き数字の28x28ピクセルの白黒画像は、784次元のベクトルとして表すことができます。このベクトルでは、各次元が0(黒)から1(白)までの値の範囲を持つ個々のピクセルに対応しています。同じ画像のカラー版を2,352次元のベクトルとして表すこともできます。このベクトルでは、784ピクセルの各ピクセルについて、赤、緑、青(RGB)値に対応する3次元で表されます。

しかし、すべての次元に有用な情報が含まれているわけではありません。数字そのものは画像のごく一部なので、入力空間のほとんどは背景ノイズです。関連情報を含む次元(潜在空間)のみにデータを圧縮することで、多くのMLタスクやアルゴリズムの精度、効率、有効性を向上させることができます。

オートエンコーダーとは

VAEは、オートエンコーダーのより大きなカテゴリーのサブセットの一種で、データ圧縮、画像ノイズ除去、異常検出、顔認識などのタスクにおいて、ディープラーニングでよく使用されるニューラル・ネットワーク・アーキテクチャーです。

オートエンコーダーは自己教師型システムで、次元削減を用いて入力データを圧縮(またはエンコード)し、圧縮した表現を使用してもとの入力内容を正確に再構築(またはデコード)することがトレーニングの目標です。

基本的にオートエンコーダーの機能は、データの中で最も目立つ情報(潜在変数)を効果的に抽出し、無関係なノイズを排除することです。さまざまな種類のオートエンコーダーを区別するのは、情報を抽出するために採用している手法と、各手法における最適なユースケースです。

トレーニングでは、エンコーダー・ネットワークがトレーニング・データ・セットの入力データを「ボトルネック」を通過させてからデコーダーに渡します。次に、デコーダー・ネットワークは、潜在変数のベクトルのみを使用して、元の入力を再構成を行います。

各トレーニング・エポックの後、勾配降下法などの最適化アルゴリズムを使用して、元の入力データの内容とデコーダーが出力した内容の差が最小限になるよう、モデルの重みを調整します。最終的に、エンコーダーは正確な再構成に最も有効な情報を通過させることを学習し、デコーダーはその情報を効果的に再構築することを学習します。

これは最も直感的にわかりやすいデータ圧縮タスクに適していますが、ラベルなしデータの正確な潜在表現を効率的にエンコードする機能により、オートエンコーダーはさまざまな用途に使用できます。たとえば、オートエンコーダーを使用して、破損したオーディオファイルの復元、グレースケール画像の色付け、人間には判別が困難な異常(不正行為によるものなど)の検出を行うことができます。

オートエンコーダーの構造

さまざまな種類のオートエンコーダーは、特定の目標やデータ・タイプにより適合するよう、アーキテクチャーの特定の側面を追加または変更しますが、すべてのオートエンコーダーには共通した3つの重要な構造要素があります。

エンコーダーは、入力データxの潜在変数を抽出し、それらをベクトル潜在空間zの形式で出力します。典型的な「vanilla」オートエンコーダーでは、エンコーダーの各後続層に含まれるノードの数は、徐々に少なくなっていきます。データが各エンコーダー層を通過する際、より少ない次元にデータを「押し込む」プロセスを通じて圧縮されます。

他のオートエンコーダーのバリエーションでは、次元削減を達成するために、正則化項を代わりに使用します。たとえば、各層で活性化されるノードの数にペナルティを課すことでスパース性を強制する関数などです。

ボトルネック、つまり「コード」は、エンコーダー・ネットワークの出力層とデコーダー・ネットワークの入力層の両方です。ボトルネックには潜在空間が含まれています。つまり入力データの完全に圧縮された、より低次元の埋め込みです。デコーダーが入力データを単純にコピーまたは記憶できないようにするには、十分な数のボトルネックが必要です。単純なコピーや記憶は、表面的にはトレーニング・タスクを満たしますが、実際にはオートエンコーダーの学習の妨げになります。

デコーダーは、基本的にはエンコーダーを逆転させることで、潜在表現を使用し元の入力を再構築します。典型的なデコーダー・アーキテクチャーでは、後続の各層に含まれるアクティブなノードの数は徐々に増えていきます。

多くのオートエンコーダーのエンコーダー・ネットワークおよびデコーダー・ネットワークは、標準的な多層パーセプトロン(MLP)から構築されていますが、オートエンコーダーは特定の種類のニューラル・ネットワークに限定されません。

コンピューター・ビジョンタスクに使用されるオートエンコーダーは、多くの場合、畳み込みニューラル・ネットワーク(CNN)のため、畳み込みオートエンコーダーと呼ばれます。Transformer(トランスフォーマー)アーキテクチャーから構築されたオートエンコーダーは、コンピューター・ビジョン3や音楽4など、さまざまな分野で使用されています。

主成分分析(PCA)などの他の次元削減アルゴリズムとの比較において、オートエンコーダーの主要なメリットはオートエンコーダーが異なる変数間の非線形関係をモデル化できることです。そのため、オートエンコーダー・ニューラル・ネットワークのノードは通常、非線形活性化関数を使用します。

多くのオートエンコーダー・アプリケーションでは、デコーダーはエンコーダーの最適化を支援するためだけに使用されるため、トレーニング後に破棄されます。変分オートエンコーダーでは、デコーダーは破棄されず、新しいデータ・ポイントを生成するために使用されます。

変分オートエンコーダーの仕組み

VAEと他のオートエンコーダーとの違いは、潜在空間をエンコードする独自の方法と、確率的エンコードを適用できるさまざまなユースケースにあります。

離散的な潜在変数の1つのベクトルをエンコードする決定論的モデルであるほとんどのオートエンコーダーとは異なり、VAEは確率的モデルです。VAEは、トレーニング・データの潜在変数を固定した離散値zとしてエンコードするのではなく、確率分布p(z)として表される連続的な可能性の範囲としてエンコードします。

ベイズ統計では、この潜在変数の学習された可能性の範囲は事前分布と呼ばれます。新しいデータ・ポイントを合成する生成プロセスである変分推論では、この事前分布が事後分布、つまりp(z|x)の計算に使用されます。言い換えると、潜在変数zの与えられたときの、観測可能な変数xの値です。

トレーニング・データの潜在属性ごとに、VAEは2つの異なる潜在ベクトル(平均のベクトル「μ」と標準偏差のベクトル「σ」)をエンコードします。本質的に、これら2つのベクトルは、各潜在変数の可能性の範囲と、各可能性の範囲内での期待される分散を表します。

このエンコードされた可能性の範囲内からランダムにサンプリングすることで、VAEは、元のトレーニング・データに似つつも、独自の特徴を持った新しいデータ・サンプルを合成できます。原理自体はどちらかというと直感的なものですが、この方法論を実践するには、標準的なオートエンコーダー手法をさらに改変する必要があります。

VAEの機能を説明するために、次の概念について改めて見ていきましょう。

  • 再構成損失

  • カルバック・ライブラー(KL)情報量

  • 変分下限(ELBO)

  • 再パラメーター化法
再構成損失

すべてのオートエンコーダーと同様に、VAEは再構成損失再構成誤差とも呼ばれる)をトレーニングの主要な損失関数として使用します。再構成誤差は、元の入力データと、デコーダーによって再構成されたデータ出力との差(または「損失」)を測定します。クロスエントロピー損失や平均二乗誤差(MSE)を含む複数のアルゴリズムを、再構成損失関数として使用できます。

前述したように、オートエンコーダー・アーキテクチャーは、元の入力データのサブセットのみがデコーダーに通過できるボトルネックを作成します。通常、モデル・パラメーターのランダム化された初期化から始まるトレーニングの開始時点では、データのどの部分をより重視するべきか、エンコーダーはまだ学習していません。結果として、最初は最適とは言えない潜在表現が出力され、デコーダーが出力する元のデータの再構成はかなり不正確、または不完全です。

エンコーダー・ネットワークとデコーダー・ネットワークのパラメーターにおいて、なんらかの勾配降下法を用いて再構成誤差を最小化することで、オートエンコーダー・モデルの重みは、より有用な潜在空間のエンコード(つまりより正確な再構成)をもたらすよう調整されます。数学的には、再構成損失関数の目標はpθ(z|x)を最適化することです。ここで、θは、潜在変数zが与えられた場合に入力xを正確に再構築させるモデル・パラメーターを表します。

再構成損失だけでも、ほとんどのオートエンコーダーを最適化するのに十分です。オートエンコーダーの唯一の目標は、正確な再構成に有益な入力データの圧縮表現を学習することです。

しかし、変分オートエンコーダーの目的は、元の入力を再構築することではありません。元の入力に類似した新しいサンプルを生成することです。そのため、追加の最適化項が必要です。

カルバック・ライブラー情報量

変分推論、つまりトレーニングされたモデルによる新しいサンプルの生成を目的とする場合、再構成の損失だけでは潜在空間のエンコードが不規則になり、トレーニング・データに過剰適合し、新しいサンプルに対する汎化性能が低くなる可能性があります。そのため、VAEには、カルバック・ライブラー情報量(またはK情報量)という別の正則化法が組み込まれています。

画像を生成するために、デコーダーは潜在空間からサンプリングします。トレーニング・データの元の入力を表す潜在空間内の特定の点からサンプリングすると、それらの元の入力が複製されます。新しい画像を生成するために、変分オートエンコーダーは、元のデータ・ポイントの潜在空間の任意の場所からサンプリングできなければなりません。これを可能にするためには、潜在空間は2種類の規則性を備えている必要があります。

  • 連続性:潜在空間の近くのポイントは、デコード時に同様のコンテンツを生成するはずです。
  • 完全性:潜在空間からサンプリングされた点は、デコードされたときに意味のある内容をもたらすはずです。

潜在空間において連続性と完全性の双方を実装する簡単な方法は、潜在空間がガウス分布と呼ばれる標準正規分布に従うようにすることです。しかし、再構成損失のみを最小化しても、潜在空間を特定の方法で組織化するようモデルを導けません。理由としては、「中間」の空間が元のデータ・ポイントの正確な再構築に関係していないからです。ここで役に立つのがKL情報量正則化項です。

KL情報量は、2つの確率分布を比較するために使用される指標です。潜在変数の学習された分布と、値が0から1までの単純なガウス分布との間のKL情報量を最小化すると、潜在変数の学習されたエンコードが正規分布に従うようになります。これにより、潜在空間の任意の点をスムーズに補間できるため、新しい画像を生成できます。

変分下限(ELBO)

変分推論にKL情報量を使うことの障害のひとつは、方程式の分母が手に負えない、つまり直接計算するには理論上、無限の時間を要することです。この問題を回避し、両方の主要な損失関数を統合するために、VAEはKL情報量を直接最小化する代わりに、変分下限(ELBO)を最大化することで、KL情報量の最小化を近似します。

統計用語では、「evidence lower bound(変分下限)」の「evidence」は、見かけ上、VAEが再構築の責任を負う観測可能な入力データであるp(x)を指します。入力データ内のこれらの観測可能な変数は、オートエンコーダーによって発見された潜在変数の「evidence(証拠)」です。「下限」とは、与えられた分布の対数尤度の下限推定値を指します。実際の対数尤度はELBOより高い場合があります。

VAEの文脈では、変分下限とは、特定の事後分布(言いかえるとKL情報量損失項と再構築損失の両方に条件付けられたオートエンコーダーの特定の出力)がトレーニング・データの「evidence(証拠)」に適合する尤度の下限推定値を指します。したがって、変分推論のモデルをトレーニングすることは、ELBOを最大化すると表現できます。

再パラメーター化法

これまで述べてきたように、変分推論の目的は、トレーニング・データxのランダムな変形の形で新しいデータを出力することです。一見すると、これは比較的簡単に思えます。潜在変数zのランダムな値を選択する関数ƒを使用し、デコーダーはこのランダム値を使用して、xの近似再構成を生成します。

ただし、ランダム性固有の特性として、最適化されない点が挙げられます。「最良の」ランダムというものは存在しません。定義上、ランダム値のベクトルには導関数がありません。つまり、結果のモデル出力にいかなるパターンを表現する勾配も存在しません。そのため、ランダム値のベクトルは、あらゆる形式の勾配降下法を使用してもバックプロパゲーションによる最適化はできません。これは、前述のランダム・サンプリング・プロセスを使用するニューラル・ネットワークが、そのタスクを実行するための最適なパラメーターを学習できないことを意味します。

この制約を回避するために、VAEは再パラメーター化法を使用します。再パラメーター化法では、新しいパラメーターεが導入されます。これは、0から1の間の正規分布から選択されたランダムな値です。

次に、潜在変数zz=μx+εσxとして再パラメーター化します。簡単に説明すると、変数の平均(μで表されます)から始めて、標準偏差(σ)のランダムな倍数(εで表されます)でシフトさせることにより、潜在変数zの値を選択します。この特定のzの値を条件として、デコーダーは新しいサンプルを出力します。

ランダム値εはオートエンコーダー・モデルのパラメータに由来せず、関係もないため、バックプロパゲーション中は無視することができます。モデルはELBOを最大化するために、何らかの勾配降下法を通じて更新されます。最もよく使用される勾配降下法は、Kingmaが開発した勾配ベースの最適化アルゴリズムであるAdamです。(リンクはibm.com外部にあります)

条件付きVAE(CVAE)

従来の「vanilla」変分オートエンコーダーの欠点の1つは、オートエンコーダーによって生成された特定の出力をユーザーが制御できないことです。たとえば、前述のMNISTデータ・セットでトレーニングされた従来のVAEは、0から9までの手書きの数字の新しいサンプルを生成しますが、出力を4と7のみに制限することはできません。

名前のとおり、条件付きVAE(CVAE)は、トレーニング・データのバリエーションをランダムに生成するだけでなく、特定の入力によって条件付けられた出力を可能にします。これは、従来のオートエンコーダーのこれまでの教師なしトレーニングの目標に加えて、教師あり学習(または半教師あり学習)の要素を組み込むことによって実現されます。

特定の変数のラベル付き例によってモデルをさらにトレーニングすることで、それらの変数をデコーダーの出力の条件付けに使用できます。例えば、CVAEをまずは顔画像の大規模なデータ・セットを用いてトレーニングし、次に「ひげ」の潜在エンコードを学習する教師あり学習を用いてトレーニングすることで、CVAEはひげを生やした顔の新しい画像を出力できるようになります。

変分オートエンコーダー(VAE)と敵対的生成ネットワーク(GAN)の比較

VAEは、敵対的生成ネットワーク(GAN)とよく比較されます。GANは、特に画像のトレーニング・データに似たサンプルを生成するために使用される、別のモデル・アーキテクチャーです。

VAEと同様、GANは、2つのニューラル・ネットワークを組み合わせた共同アーキテクチャーです。1つはトレーニング・データ・セットの画像に類似した画像サンプルを出力する生成ネットワークで、もう1つは特定の画像がトレーニング・データ由来の「本物」の画像か、生成ネットワーク由来の「偽」の画像であるかを判断する識別ネットワークです。

2つのネットワークは、ゼロサムゲームで敵対的にトレーニングされます。識別器からのフィードバックは、識別器が本物のサンプルと偽のサンプルを識別できなくなるまで、ジェネレーターの出力を改善するために使用されます。

画像合成の場合、両者には長所と短所があります。GANはより鮮明な画像を生成しますが、2つの複合モデル間の敵対的なトレードオフのため、トレーニングが不安定になります。VAEはトレーニングしやすいですが、トレーニング・データの「平均的な」特徴から画像を生成するという性質上、よぼやけた画像を生成する傾向があります。

VAE-GAN
VAE-GANは、その名のとおり、変分オートエンコーダー(VAE)と敵対的生成ネットワーク(GAN)の間のハイブリッドです。VAEモデルの再構成損失項を識別ネットワークに置き換えることで、VAEで生成された画像のぼやけを低減します。

関連ソリューション
IBM watsonx.ai™

基盤モデル、生成AI、機械学習のトレーニング、検証、チューニング、デプロイが容易になり、少量のデータを使用して、短時間でAIアプリケーションを開発できます。

watsonx.aiの詳細はこちら

参考情報 オートエンコーダーとは

さまざまな種類のオートエンコーダーと、データを効率的にエンコードする機能を幅広いユースケースに活用する方法についての詳細はこちら。

次元削減

予測変数の数を減らしながら複雑なデータ・セットの重要な特徴を維持する、その他の次元削減の手法についての詳細はこちら。

生成AIとは

ユーザーのプロンプトやリクエストに応じて、テキスト、画像、動画、音声、ソフトウェアコードなどのオリジナルコンテンツを作成できるモデルについての詳細はこちら。

次のステップ

AI開発者向けの次世代エンタープライズ・スタジオであるIBM watsonx.aiを使用して、生成AI、基盤モデル、機械学習機能をトレーニング、検証、チューニング、デプロイしましょう。わずかなデータとわずかな時間でAIアプリケーションを構築できます。

watsonx.aiの詳細はこちら デモの予約
脚注
  翻译: