オートエンコーダは、ラベルなしデータの効率的な符号化を学習するために使用される人工ニューラルネットワークの一種であり、教師なし学習の一形態である。これは、入力データを圧縮表現に変換する符号化関数と、その表現から元のデータを再構成する復号化関数の2つの関数を学習する。ネットワークは、入力とその再構成との間の差を最小化するように訓練され、それによりデータの本質的な構造を捉える低次元埋め込みを学習する。これらの埋め込みは、次元削減や他の機械学習アルゴリズムへの入力としてしばしば使用される。
オートエンコーダには、学習された表現をより有用にするために追加の制約を課す多くの変種がある。スパース、デノイジング、コントラクティブオートエンコーダなどの正則化オートエンコーダは分類タスクに効果的であり、変分オートエンコーダは訓練分布に類似した新しいデータサンプルを生成できる。応用には、顔認識、異常検知、特徴検出、単語の意味の学習が含まれる。
数学的原理
オートエンコーダは、符号化メッセージの空間 \(\mathcal{Z}\) と復号化メッセージの空間 \(\mathcal{X}\) の2つの集合によって形式的に定義され、通常は \(\mathcal{X} = \mathbb{R}^m\) と \(\mathcal{Z} = \mathbb{R}^n\) を持つユークリッド空間であり、ここで \(m > n\) である。また、符号化関数族 \(E_\phi: \mathcal{X} \to \mathcal{Z}\) と復号化関数族 \(D_\theta: \mathcal{Z} \to \mathcal{X}\) の2つのパラメータ化された関数族を含む。入力 \(x\) に対して、符号化器は潜在変数 \(z = E_\phi(x)\) を生成し、復号化器は再構成 \(x' = D_\theta(z)\) を出力する。符号化器と復号化器はどちらも通常は多層パーセプトロンであり、例えば1層の符号化器は \(\sigma(Wx + b)\) を計算する。ここで \(\sigma\) は活性化関数、\(W\) は重み行列、\(b\) はバイアスベクトルである。
オートエンコーダの訓練には、\(\mathcal{X}\) 上の参照確率分布 \(\mu_{ref}\) と再構成品質関数 \(d: \mathcal{X} \times \mathcal{X} \to [0, \infty]\) によって定義されるタスクが必要である。損失関数は期待再構成誤差 \(L(\theta, \phi) = \mathbb{E}_{x \sim \mu_{ref}}[d(x, D_\theta(E_\phi(x)))]\) である。目標は、この損失を最小化するパラメータ \(\theta\) と \(\phi\) を見つけることであり、通常はAdamや確率的勾配降下法の変種などの勾配ベースの最適化手法を使用する。
変種と正則化
いくつかのオートエンコーダ変種は、特定の特性を促進するために損失関数やアーキテクチャを変更する。スパースオートエンコーダは、隠れユニットの活性化にペナルティを追加し、スパース表現を促進する。デノイジングオートエンコーダは、入力にノイズを加え、クリーンな元のデータを再構成するようにネットワークを訓練し、表現をノイズに対してロバストにする。コントラクティブオートエンコーダは、符号化器のヤコビアンにペナルティを追加し、表現が小さな入力変化に鈍感であることを促進する。これらの正則化形式は、分類パイプラインでの特徴抽出にしばしば使用される。
変分オートエンコーダ(VAE)は確率論的アプローチを取り、潜在変数上の分布を学習し、生成的モデリングを可能にする。VAEは生成AIに影響を与えており、画像合成や創薬などの応用で使用されている。
応用
オートエンコーダは多くの領域で応用されている。コンピュータビジョンでは、顔認識や異常検知に使用され、再構成誤差が異常なパターンを強調する。自然言語処理では、単語埋め込みや意味表現の学習に役立つ。また、深層学習アーキテクチャの構成要素としても機能し、例えば画像セグメンテーション用のU-Netはオートエンコーダに類似した符号化器-復号化器構造を使用する。
産業では、オートエンコーダは不正検知、ネットワーク侵入検知、予知保全に展開されている。例えば、AWSやGoogle Cloudは、オートエンコーダベースの異常検知を組み込んだ機械学習サービスを提供している。MIT CSAILやスタンフォードAIラボなどの研究機関は、オートエンコーダの理論と応用の進展に貢献している。
他のモデルとの関係
オートエンコーダは、符号化器-復号化器モデルや、トランスフォーマーで使用される系列から系列へのアーキテクチャと密接に関連している。トランスフォーマーは翻訳などのタスクにマルチヘッドアテンションと位置エンコーディングを使用する一方、オートエンコーダは教師なし表現学習に焦点を当てている。一部の現代的な大規模言語モデルは、マスク言語モデリングなどの事前学習にオートエンコーダ類似の目的を組み込んでおり、これはテキスト上のデノイジングオートエンコーダと見なすことができる。
限界と拡張
基本的なオートエンコーダは、潜在空間が大きすぎる場合に恒等関数を学習する可能性があるため、ボトルネック層や正則化などの制約が必要である。過学習は懸念事項であり、ドロップアウトやバッチ正規化などの手法で対処される。拡張には、複数の層を貪欲に訓練するスタック型オートエンコーダや、計算コストを削減するためのモデルプルーニングが含まれる。ロバスト性と解釈可能性の向上に関する研究は続いており、OpenAIやGoogle DeepMindなどのグループが貢献している。