
オートエンコーダーは、ラベルなしデータの効率的な符号化を学習するために使用される人工ニューラルネットワークの一種です(教師なし学習)。オートエンコーダーは、入力データを変換する符号化関数と、符号化された表現から入力データを復元する復号化関数の2つの関数を学習します。オートエンコーダーは、通常、次元削減のために、データセットの効率的な表現(符号化)を学習し、他の機械学習アルゴリズムで後続的に使用できる低次元の埋め込みを生成します。[ 1 ]
学習された表現が有用な特性を持つようにすることを目的とした変種が存在する。[ 2 ]例としては、後続の分類タスクの表現を学習するのに効果的な正則化オートエンコーダー(スパース、ノイズ除去、収縮オートエンコーダー) [ 3 ]、および生成モデルとして使用できる変分オートエンコーダー[ 4 ]などがある。オートエンコーダーは、顔認識[ 5 ]、特徴検出[ 6 ]、異常検出、単語の意味の学習[ 7 ] [ 8 ]など、多くの問題に適用されている。データ合成の観点からは、オートエンコーダーは入力(トレーニング)データに類似した新しいデータをランダムに生成するためにも使用できる。[ 6 ]
オートエンコーダーは、以下の構成要素によって定義されます。
2つの集合:符号化されたメッセージの空間; 復号化されたメッセージの空間。 通常そしてユークリッド空間、つまり、と
2つのパラメータ化された関数ファミリー:エンコーダファミリーパラメータ化デコーダファミリーパラメータ化。
いかなる場合でも私たちは通常、、そしてそれをコード、潜在変数、潜在表現、潜在ベクトルなどと呼ぶ。逆に、任意の私たちは通常、そして、それを(復号化された)メッセージと呼ぶ。
通常、エンコーダとデコーダの両方は多層パーセプトロン(MLP)として定義されます。例えば、1層MLPエンコーダの場合は:
どこは要素ごとの活性化関数です。は「重み」行列であり、これは「バイアス」ベクトルです。
オートエンコーダー自体は、単に2つの関数のタプルです。その品質を評価するには、タスクが必要です。タスクは、参照確率分布によって定義されます。以上、そして「再構成品質」関数、したがってどれだけと異なる。
これらを用いて、オートエンコーダーの損失関数を次のように定義できます。与えられたタスクに最適なオートエンコーダーすると最適なオートエンコーダーの探索は、あらゆる数学的最適化手法で行うことができますが、通常は勾配降下法が用いられます。この探索プロセスは「オートエンコーダーの学習」と呼ばれます。
ほとんどの場合、参照分布はデータセットによって与えられる経験分布に他ならない。、 となることによって
どこはディラック測度であり、品質関数は損失:、 そしてはユークリッドノルムです。すると、最適なオートエンコーダーを探す問題は、最小二乗最適化問題になります。
オートエンコーダーは、メッセージをコードにマッピングするエンコーダーと、コードからメッセージを復元するデコーダーという2つの主要な部分から構成されます。最適なオートエンコーダーは、可能な限り完璧に近い復元を実行します。「完璧に近い」とは、復元品質関数によって定義されます。。
コピー作業を完璧に実行する最も簡単な方法は、信号を複製することです。この動作を抑制するために、コード空間通常、メッセージ空間よりも次元数が少ない。
このようなオートエンコーダーは不完全と呼ばれます。これはメッセージを圧縮したり、次元を削減したりするものと解釈できます。[ 9 ] [ 10 ]
理想的な不完全オートエンコーダーの限界では、すべての可能なコードコード空間では、メッセージをエンコードするために使用されます。それは実際に分布に現れますデコーダーも完璧です。この理想的なオートエンコーダーは、デコーダーに任意のコードを入力することで、実際のメッセージと区別がつかないメッセージを生成するために使用できます。入手これは実際に配信に表示されるメッセージです。
コードスペースメッセージ空間よりも大きい次元(過剰)または等しい次元を持つ、あるいは隠れユニットに十分な容量が与えられている場合、オートエンコーダーは恒等関数を学習して役に立たなくなる可能性があります。しかし、実験結果では、過剰に完全なオートエンコーダーでも有用な特徴を学習できる可能性があることがわかりました。[ 11 ]
理想的な設定では、コード次元とモデル容量は、モデル化するデータ分布の複雑さに基づいて設定できます。これを行う標準的な方法は、基本的なオートエンコーダーに修正を加えることです。詳細は後述します。[ 2 ]

変分オートエンコーダー(VAE)は、変分ベイズ法の一種です。基本的なオートエンコーダーと構造的に類似しているものの、VAEは異なる目的と数学的な定式化に基づいて設計されています。この場合、潜在空間は固定ベクトルではなく、分布の混合によって構成されます。
入力データセットが与えられた場合未知の確率関数によって特徴付けられる多変量潜在符号化ベクトル目的は、データを分布としてモデル化することです。、 とネットワークパラメータのセットとして定義され、。
神経科学におけるスパースコーディング仮説 に触発されたスパースオートエンコーダー(SAE)はオートエンコーダーの変種であり、コードがメッセージはスパースコードになる傾向があるため、ほとんどのエントリではゼロに近い。スパースオートエンコーダーは、入力よりも多くの(少ないのではなく)隠れユニットを含む可能性があるが、同時にアクティブになることができる隠れユニットはごく少数である。[ 12 ]スパース性を促進すると、分類タスクのパフォーマンスが向上する。[ 13 ]

スパース性を強制するには主に2つの方法があります。1つは、潜在コードの上位k個のアクティベーション以外をすべてゼロにクランプする方法です。これはkスパースオートエンコーダーです。[ 13 ]
k-スパースオートエンコーダーは、標準オートエンコーダーの潜在層に以下の「k-スパース関数」を挿入します。どこもし上位 k 位にランクインし、それ以外は 0 です。
逆伝播簡単です: グラデーションを 0 に設定しますエントリ、グラデーションはエントリ。これは基本的に一般化されたReLU関数です。[ 13 ]
もう1つの方法は、k-スパースオートエンコーダーの緩和版です。スパース性を強制する代わりに、スパース性正則化損失を追加し、最適化します。どこどの程度の疎性を強制したいかを測定します。[ 14 ]
オートエンコーダーアーキテクチャは層。スパース性正則化損失を定義するには、「望ましい」スパース性が必要です。各層ごとに、重み各スパース性をどの程度強制するか、および関数2つのスパース性がどの程度異なるかを測定する。
各入力に対して各層における活性化の実際のスパース性なれどこ活性化はの 番目のニューロン入力時の-番目の層。
入力時のスパース性損失1層の場合、そしてオートエンコーダー全体のスパース性正則化損失は、スパース性損失の期待加重和です。通常、その機能はは、 [ 13 ] [ 14 ] [ 15 ] [ 16 ]のように、Kullback–Leibler (KL) ダイバージェンスのいずれかです。
またはL1損失としてまたはL2損失として、。
あるいは、スパース性正則化損失は「望ましいスパース性」を参照することなく、可能な限りスパース性を強制的に高めることで定義することもできます。この場合、スパース性正則化損失は次のように定義できます。どこ活性化ベクトルはオートエンコーダーの 番目の層。正規化通常はL1ノルム(L1スパースオートエンコーダーを与える)またはL2ノルム(L2スパースオートエンコーダーを与える)です。

ノイズ除去オートエンコーダー(DAE)は、再構成基準を変更することで良好な表現を実現しようとします。[ 2 ] [ 3 ]
DAE(分散オートエンコーダー)は、元々はMark A. Kramerによって「ロバストオートアソシエーションネットワーク」と呼ばれていましたが[ 17 ]、トレーニング中に標準的なオートエンコーダーの入力を意図的に破損させることでトレーニングされます。ノイズプロセスは確率分布によって定義されます。関数についてつまり、関数メッセージを受け取る、ノイズの多いバージョンに劣化させる. 機能確率分布に従ってランダムに選択される。。
与えられたタスクDAEを学習させる問題は、以下の最適化問題である。つまり、最適なDAEは、ノイズのあるメッセージを受け取り、ノイズのない元のメッセージを復元しようとするものであり、これが「ノイズ除去」という名前の由来である。
通常、ノイズ処理これはトレーニングおよびテスト時のみに適用され、下流での使用時には適用されません。
DAEの使用は、以下の2つの仮定に基づいています。
騒音発生プロセスの例としては、以下のようなものがある。
収縮型オートエンコーダー(CAE)は、標準的なオートエンコーダーの損失に収縮型正則化損失を追加します。どここれは、どの程度の収縮性を強制したいかを測定するものです。収縮正則化損失自体は、入力に対するエンコーダー活性化のヤコビ行列のフロベニウスノルムの期待値の二乗として定義されます。何を理解するか対策、事実に留意するメッセージ、そしてわずかな変動その中に。したがって、もしが小さいということは、メッセージのごく一部がそのコードのごく一部に対応することを意味します。これは望ましい特性であり、メッセージのわずかな変化がコードのわずかな変化、あるいは変化ゼロにつながることを意味します。これは、2枚の絵が完全に同じでなくても同じように見えるのと似ています。
DAEはCAEの極限として理解できます。ガウス型入力ノイズが小さい極限では、DAEは再構成関数が小さくても有限サイズの入力摂動に耐えるようにし、一方CAEは抽出された特徴が極限の入力摂動に耐えるようにします。
最小記述長オートエンコーダー(MDL-AE)は、従来のオートエンコーダーの高度なバリエーションであり、情報理論、特に最小記述長(MDL)原理を活用しています。MDL原理は、データセットにとって最適なモデルは、モデルとデータを組み合わせたエンコーディングが最短になるモデルであると提唱しています。オートエンコーダーの文脈では、この原理は、学習された表現がコンパクトであるだけでなく、解釈可能で、再構築に効率的であることを保証するために適用されます。
MDL-AEは、潜在表現のサイズ(コード長)と元のデータの再構成における誤差を含む、データの総記述長を最小化することを目指します。目的関数は次のように表すことができます。 、 どこは圧縮された潜在表現の長さを表し、は再構成誤差を表す。[ 18 ]
具体的なオートエンコーダーは、離散的な特徴選択のために設計されています。[ 19 ]具体的なオートエンコーダーは、潜在空間がユーザー指定の数の特徴のみで構成されるように強制します。具体的なオートエンコーダーは、カテゴリ分布の連続的な緩和を使用して、勾配が特徴選択層を通過することを可能にし、標準的なバックプロパゲーションを使用して、再構成損失を最小化する最適な入力特徴のサブセットを学習できるようにします。

オートエンコーダーは、多くの場合、単層のエンコーダーと単層のデコーダーで学習されますが、多層(ディープ)エンコーダーとデコーダーを使用すると多くの利点があります。[ 2 ]
ジェフリー・ヒントンは、多層ディープオートエンコーダーをトレーニングするためのディープビリーフネットワーク技術を開発しました。彼の手法では、隣接する2つの層の各セットを制限付きボルツマンマシンとして扱い、事前トレーニングで良い解を近似し、その後バックプロパゲーションを使用して結果を微調整します。[ 10 ]
研究者たちは、共同トレーニング(つまり、最適化する単一のグローバル再構築目標とともにアーキテクチャ全体を一緒にトレーニングすること)がディープオートエンコーダーにとってより良いかどうかについて議論してきた。[ 21 ] 2015年の研究では、共同トレーニングは、レイヤーごとの方法と比較して、分類のためのより代表的な特徴とともに、より良いデータモデルを学習することが示された。[ 21 ]しかし、彼らの実験では、共同トレーニングの成功は、採用された正則化戦略に大きく依存することが示された。[ 21 ] [ 22 ]
(Oja, 1982) [ 23 ]は、 PCA は恒等活性化関数を持つ 1 つの隠れ層を持つニューラル ネットワークと同等であると指摘した。オートエンコーディングの用語では、入力から隠れ層へのモジュールはエンコーダーであり、隠れ層から出力へのモジュールはデコーダーである。その後、(Baldi and Hornik, 1989) [ 24 ]および (Kramer, 1991) [ 9 ]は、PCA をオートエンコーダーに一般化し、この手法を「非線形 PCA」と呼んだ。
1980年代にニューラルネットワークが復活した直後、1986年にニューラルネットワークを「自己連想モード」にすることが提案されました[ 25 ] 。これはその後、音声については(Harrison, 1987) [ 26 ]と(Elman, Zipser, 1988) [ 27 ]で、画像については(Cottrell, Munro, Zipser, 1987) [ 28 ]で実装されました。[ 29 ] (Hinton, Salakhutdinov, 2006) [ 30 ]では、ディープビリーフネットワークが開発されました。これらは、エンコーダーとデコーダーのペアとして制限付きボルツマンマシンのペアをトレーニングし、次に最初のペアの潜在表現に基づいて別のペアをトレーニングし、これを繰り返します。[ 31 ]
AE の最初の応用は 1990 年代初頭に遡ります。[ 2 ] [ 32 ] [ 18 ]最も伝統的な応用は次元削減または特徴学習でしたが、この概念はデータの生成モデルの学習に広く使用されるようになりました。[ 33 ] [ 34 ] 2010 年代の最も強力なAI のいくつかは、 Stable Diffusionの VAE 、 DALL-E 1のような Transformer ベースの画像生成器の離散 VAEなど、より大きな AI システムのコンポーネントとしてオートエンコーダー モジュールを含んでいました。
初期の頃、用語が不明確だったため、オートエンコーダーはアイデンティティマッピング[ 24 ] [ 9 ]、オートアソシエーション[ 35 ] 、自己教師ありバックプロパゲーション[ 9 ]、またはディアボロネットワーク[ 36 ] [ 11 ]とも呼ばれていました。
オートエンコーダの主な用途は次元削減と情報検索(または連想記憶)の2つですが[ 2 ] 、現代的なバリエーションは他のタスクにも適用されています。

次元削減は、ディープラーニングの最初の応用例の1つでした。[ 2 ]
ヒントンの 2006 年の研究では、[ 10 ] RBMのスタックを使用して多層オートエンコーダを事前学習し、その重みを使用して、30 個のニューロンのボトルネックに達するまで徐々に小さな隠れ層を持つディープオートエンコーダを初期化しました。結果として得られた 30 次元のコードは、主成分分析 (PCA) の最初の 30 個のコンポーネントと比較して再構成誤差が小さく、データ クラスターを明確に分離する、質的に解釈しやすい表現を学習しました。[ 2 ] [ 10 ]
次元削減は、分類などのタスクのパフォーマンスを向上させることができます。[ 2 ]実際、次元削減の特徴は、意味的に関連する例を互いに近くに配置することです。[ 38 ]

線形活性化関数を使用する場合、または単一のシグモイド隠れ層のみを使用する場合、オートエンコーダーの最適解は主成分分析(PCA)と密接に関連しています。[ 29 ] [ 39 ]単一の隠れ層を持つオートエンコーダーの重みは、サイズが(どこ(入力のサイズより小さい)最初のベクトルが張るベクトルと同じベクトル部分空間を張る主成分であり、オートエンコーダの出力はこの部分空間への直交射影です。オートエンコーダの重みは主成分とは等しくなく、一般に直交していませんが、特異値分解を使用して主成分を復元することができます。[ 40 ]
しかし、オートエンコーダーの可能性は非線形性にあり、PCAと比較してより強力な一般化を学習し、情報損失を大幅に低減して入力を再構築することを可能にする。[ 10 ]
情報検索は、次元削減によって特に恩恵を受け、特定の種類の低次元空間では検索がより効率的になります。オートエンコーダは、 2007 年にSalakhutdinovと Hintonによって提案された意味ハッシュに実際に適用されました。 [ 38 ]アルゴリズムをトレーニングして低次元バイナリコードを生成することで、すべてのデータベースエントリをバイナリコードベクトルをエントリにマッピングするハッシュテーブルに格納できます。このテーブルは、クエリと同じバイナリコードを持つすべてのエントリを返すか、クエリエンコーディングからいくつかのビットを反転させることでわずかに類似性の低いエントリを返すことで、情報検索をサポートします。
オートエンコーダのもう 1 つの応用例は異常検出です。[ 17 ] [ 41 ] [ 42 ] [ 43 ] [ 44 ] [ 45 ]前述の制約の下でトレーニング データ内の最も顕著な特徴を再現することを学習することで、モデルは最も頻繁に観測される特性を正確に再現することを学習するように促されます。異常に直面すると、モデルは再構成性能を悪化させる必要があります。ほとんどの場合、正常なインスタンスを含むデータのみがオートエンコーダのトレーニングに使用されます。その他の場合、異常の頻度は観測セットに比べて小さいため、学習された表現への寄与は無視できます。トレーニング後、オートエンコーダは「正常」なデータを正確に再構成しますが、見慣れない異常なデータではそうしません。[ 43 ]再構成誤差 (元のデータとその低次元再構成の間の誤差) は、異常を検出するための異常スコアとして使用されます。[ 43 ] 通常、これは検証セットにおいて再構成誤差の経験的分布が記録され、その後(例えば)経験的95パーセンタイルが閾値として扱われる異常なデータポイントにフラグを立てる:閾値は経験的分位点推定値であるため、この閾値を「正しく」設定することには本質的な困難が伴います。多くの場合、経験的分位点の分布は漸近的に正規分布になります。と分位点における確率密度。これは、極端な分位点を考慮すると分散が増加することを意味します(なぜなら(ただし、その値は小さい)。これは、閾値が検証セットから推定されるため、閾値の適切な選択には潜在的に大きな不確実性があることを意味します。
しかし、最近の文献では、特定のオートエンコーディングモデルは、直感に反して、異常な例を再構築するのに非常に優れており、その結果、異常検出を確実に実行できないことが示されています。[ 46 ] [ 47 ] 直感的には、これは、PCAに関連する1層のオートエンコーダーを考慮することで理解できます。この場合も、データ領域から遠く離れているが主成分軸上にある点については、完全な再構築が可能です。
オートエンコーダーによってフラグが立てられた異常が真の異常であるかどうかを分析するのが最善です。この意味で、バイナリ分類器の評価におけるすべての指標を考慮することができます。教師なし(自己教師あり)学習設定に伴う根本的な課題は、まれなイベントのラベルが存在しないこと(この場合、まずラベルを収集する必要があり、データセットは不均衡になります)、または異常を示すラベルが非常にまれであるため、これらのパフォーマンス推定値の信頼区間が広くなることです。
オートエンコーダーの特性は画像処理において有用である。
一例として、非可逆画像圧縮では、オートエンコーダが他の手法を凌駕し、JPEG 2000と同等の性能を発揮することが証明されている。[ 48 ] [ 49 ]
画像前処理におけるオートエンコーダーのもう1つの有用な応用例は、画像ノイズ除去である。[ 50 ] [ 51 ] [ 52 ]
オートエンコーダは、医用画像処理などのより要求の厳しいコンテキストで利用されており、画像ノイズ除去[ 53 ]や超解像[ 54 ] [ 55 ]に使用されています。画像支援診断では、乳がん検出[ 56 ]や、アルツハイマー病の認知機能低下とMRIでトレーニングされたオートエンコーダの潜在的特徴との関係をモデル化するためにオートエンコーダを適用した実験が行われています[ 57 ]。
最近、スタック型オートエンコーダーフレームワークがソーシャルメディア投稿の人気を予測する上で有望な結果を示しており[ 60 ] 、これはオンライン広告戦略に役立つ。
オートエンコーダは機械翻訳に適用されており、これは通常ニューラル機械翻訳(NMT)と呼ばれています。 [ 61 ] [ 62 ]従来のオートエンコーダとは異なり、出力は入力と一致しません。別の言語になります。NMTでは、テキストは学習手順にエンコードされるシーケンスとして扱われ、デコーダ側ではターゲット言語のシーケンスが生成されます。言語固有のオートエンコーダは、中国語の分解機能など、さらに言語的特徴を学習手順に組み込みます。[ 63 ]より効果的なトランスフォーマーネットワークが利用可能になったため、機械翻訳はオートエンコーダを使用して行われることはまだまれです。
通信システムにおけるオートエンコーダは、チャネル障害に対する耐性の高い表現にデータをエンコードするのに役立つため重要です。これは、エラーを最小限に抑えながら情報を伝送するために不可欠です。さらに、AEベースのシステムは、エンドツーエンドの通信パフォーマンスを最適化できます。このアプローチは、現実世界のチャネルの複雑な動作を正確にモデル化することの固有の難しさなど、通信システムの設計におけるいくつかの制限を解決できます。[ 64 ]