オートエンコーダとは?仕組み・種類・活用例を初心者向けに解説

AIの初心者
「オートエンコーダ」は、簡単に言うとどのようなものですか?

AI専門家
データをいったん小さな表現にまとめ、そこから元のデータを復元するニューラルネットワークです。荷物を小さな箱に詰め、必要なものを取り出せるようにするイメージに近いですね。

AIの初心者
なぜ、わざわざ元のデータへ戻すのでしょうか?

AI専門家
うまく復元するには、データに共通する重要な特徴をつかむ必要があるからです。圧縮と復元を繰り返すことで、ノイズや細部ではなく、役立つ特徴表現を学べます。
オートエンコーダとは。
オートエンコーダ(自動符号化器)は、入力データをいったん潜在表現へ変換し、その潜在表現から元の入力を再構成するニューラルネットワークです。正解ラベルを直接与えなくても、入力そのものを復元目標として特徴を学べるため、表現学習、次元削減、ノイズ除去、異常検知などに利用されます。

オートエンコーダとは
オートエンコーダは、入力と同じ内容を出力できるように学習するニューラルネットワークです。一見すると、単にデータをコピーしているように見えます。しかし、ネットワークの途中に情報の通り道を狭くした部分を設けたり、学習に制約を加えたりすると、そのまま丸写しすることが難しくなります。その結果、復元に必要な特徴を選んで表現するようになります。
一般的な構成は、次の3要素です。
- エンコーダ:入力データを、より扱いやすい潜在表現へ変換する
- 潜在表現(潜在変数・潜在ベクトル):入力の特徴を凝縮して保持する
- デコーダ:潜在表現から入力に近いデータを再構成する
たとえば画像を入力した場合、エンコーダは画素をそのまま保存するのではなく、輪郭、明暗、形状など復元に役立つパターンを潜在表現へまとめます。デコーダはその情報を使って画像を作り直します。
ただし、ここでいう「圧縮」はJPEGやZIPのような汎用ファイル圧縮と同じではありません。オートエンコーダが学ぶのは、主に特定のデータ分布に適した特徴表現です。未知の種類のデータまで同じ品質で圧縮・復元できるとは限りません。
オートエンコーダの仕組みと学習方法
\(x \rightarrow z=f_{\theta}(x) \rightarrow \hat{x}=g_{\phi}(z)\)入力を\(x\)、潜在表現を\(z\)、復元結果を\(\hat{x}\)とすると、エンコーダ\(f_{\theta}\)が入力を潜在表現へ変換し、デコーダ\(g_{\phi}\)が潜在表現から入力を復元します。学習では、入力と復元結果の差である復元誤差を小さくするように、両方のネットワークの重みを更新します。
\(L=\frac{1}{N}\sum_{i=1}^{N}\lVert x_i-\hat{x}_i\rVert^2\)上式は、連続値のデータでよく使われる平均二乗誤差の一例です。画像の画素値やセンサー値などで、入力と出力のずれを測ります。データの種類によっては、二値交差エントロピーや知覚損失など別の損失関数を選ぶこともあります。
- 画像や数値データをエンコーダへ入力する
- エンコーダが入力を潜在表現へ変換する
- デコーダが潜在表現から入力を復元する
- 入力と復元結果の誤差を計算する
- 誤差が小さくなるように重みを更新し、繰り返し学習する
潜在次元を小さくすれば情報を強く絞り込めますが、小さすぎると必要な情報まで失われます。反対に大きすぎると、入力をほぼそのまま写すだけになり、役立つ特徴を学べない場合があります。潜在次元は、復元品質だけでなく、分類や異常検知など最終目的の性能も見て調整することが大切です。
次元削減とは?PCAとの違い

次元削減とは、データの重要な情報をできるだけ保ちながら、データを表す変数の数を減らすことです。たとえば、年齢、地域、閲覧履歴、購入履歴など数百項目の顧客データを、購買傾向を表す少数の特徴へまとめれば、可視化やクラスタリングがしやすくなります。
画像なら、縦横の各画素がそれぞれ変数に相当するため、元の次元数は非常に大きくなります。オートエンコーダは、その画像群に共通する構造を学び、より少ない潜在変数で表現できます。工場のセンサーデータや音声データでも、同じ考え方を利用できます。
代表的な次元削減手法であるPCA(主成分分析)と比べると、次のような違いがあります。
| 比較項目 | PCA | オートエンコーダ |
|---|---|---|
| 変換 | 基本的に線形 | 活性化関数により非線形な関係も学習可能 |
| 学習と計算 | 比較的軽く、結果を再現しやすい | 構造設計や学習時間、ハイパーパラメータ調整が必要 |
| 解釈 | 主成分の寄与率を確認できる | 潜在変数の意味が明確でないことが多い |
| 向く場面 | 線形な傾向の把握、可視化、軽量な前処理 | 画像など複雑で非線形な構造を持つデータ |
まずPCAを基準として試し、非線形な構造を捉える必要がある場合にオートエンコーダを検討すると、効果と計算コストを比較しやすくなります。なお、線形活性化を使う単純なオートエンコーダには、PCAと近い部分があります。
表現学習と過学習の関係

表現学習とは、人が特徴量を一つずつ設計する代わりに、モデルがデータから有用な特徴表現を学ぶ考え方です。オートエンコーダでは、入力の復元に必要な情報が潜在空間へまとめられます。顔画像であれば、単一の潜在変数が必ず「目」や「鼻」に対応するわけではなく、輪郭、向き、表情、明るさなどが組み合わさった抽象的な特徴になることがあります。
元記事では、隠れ層のノード数を少なくすると過学習を抑えやすいと説明していました。これは、情報量を制限するボトルネックによって、訓練データの細かなノイズを丸暗記しにくくなるためです。一方で、潜在次元を小さくするだけで過学習が必ず防げるわけではありません。
モデルが大きすぎる、学習データが少ない、訓練を続けすぎるといった条件では、オートエンコーダ自体も過学習します。また、潜在層が入力より大きい過完備な構造でも、スパース性やノイズ付加などの制約があれば有用な特徴を学べます。逆に、制約がなければ恒等写像に近い動作を覚える可能性があります。
対策としては、検証データによる早期終了、重み減衰、ドロップアウト、データ拡張、雑音除去学習などを組み合わせます。訓練データの復元誤差だけでなく、検証データの誤差や下流タスクの性能も確認しましょう。
代表的なオートエンコーダの種類

オートエンコーダには、学ばせたい特徴や利用目的に応じた複数の派生型があります。代表的な4種類を整理すると、次のようになります。
| 種類 | 仕組み | 主な目的 |
|---|---|---|
| アンダーコンプリート・オートエンコーダ | 潜在次元を入力次元より小さくする | 次元削減、特徴抽出 |
| スパース・オートエンコーダ | 一度に活動する潜在ユニットを少数に制限する | 疎で特徴的な表現の学習 |
| 雑音除去オートエンコーダ | ノイズを加えた入力から、元のきれいなデータを復元する | ノイズに頑健な特徴、画像の補正 |
| 変分オートエンコーダ(VAE) | 潜在表現を確率分布として学習する | データ生成、潜在空間の連続的な操作 |
アンダーコンプリート型は、元記事で「縮退自動符号化器」と説明されていた考え方に相当します。潜在層を狭くして情報を選別させる、基本的な構成です。スパース型は潜在次元そのものが大きくても、活動する要素を限定して表現を制約します。
雑音除去型では、入力へ意図的にノイズや欠損を加え、ノイズのない元データを正解として学習します。単なるコピーではなく、データの規則性を使って補う必要があるため、変化に強い特徴を学びやすくなります。
VAEは通常のオートエンコーダと異なり、潜在空間を確率分布として整えます。その分、通常型より復元がぼやける場合はありますが、潜在空間からサンプルを取り、新しいデータを生成しやすい点が特徴です。高精度な復元が目的なのか、生成可能な潜在空間が必要なのかで選び分けます。
オートエンコーダの主な活用例

ノイズ除去では、ノイズを含む画像や信号を入力し、元のきれいなデータを復元します。ただし、学習時に想定していない種類や強さのノイズには対応できない場合があります。実際の利用環境に近いノイズを用意することが重要です。
異常検知では、主に正常データで学習させます。正常な入力は上手に復元できる一方、学習していない異常な入力は復元しにくいという仮定を置き、復元誤差が大きいデータを異常候補とします。設備センサー、不正利用、製品外観などで使われます。
ただし、複雑なモデルは異常データまで上手に復元してしまうことがあります。また、復元誤差をどこから異常とするかは自動的には決まりません。正常と異常を含む検証データを使い、見逃しと誤検知のコストを考慮して閾値を決めます。
特徴抽出では、学習済みエンコーダが出力する潜在表現を、分類、クラスタリング、検索など別の処理へ入力します。元データより次元が小さければ計算を軽くできる可能性がありますが、目的タスクに必要な情報が残っているかを評価する必要があります。
データ生成には、主にVAEを利用します。学習した潜在分布から値をサンプリングし、デコーダへ通すことで、学習データと似た性質を持つ新しい候補を生成します。通常のオートエンコーダの潜在空間は空白や不連続な領域を含むことがあり、任意の潜在値から自然なデータを生成できるとは限りません。
実務・学習で押さえたい注意点
- 前処理をそろえる:訓練時と推論時で正規化や画像サイズが違うと、復元誤差を正しく比較できません。
- データ漏洩を防ぐ:評価データを含めて前処理や学習を行うと、実際より性能が高く見えます。データ分割後に処理を設計します。
- 復元品質だけで判断しない:見た目がきれいでも、分類や異常検知に必要な特徴が潜在表現へ残っているとは限りません。
- 単純な基準手法と比較する:PCA、移動平均、ルールベースの閾値などでも目的を達成できる場合があります。
- データ変化を監視する:運用中に入力の分布が変わると、復元誤差や異常判定の基準もずれます。
学習を始めるときは、小さなネットワークと低解像度のデータで動作を確かめ、PCAなどの基準手法と比較するのがおすすめです。その後、潜在次元、層数、損失関数、正則化を一つずつ変更すると、何が性能へ影響したかを追いやすくなります。
まとめ
オートエンコーダは、入力をエンコーダで潜在表現へ変換し、デコーダで復元するニューラルネットワークです。復元誤差を小さくする学習を通じて、データの重要な特徴を捉えます。
次元削減や表現学習に加え、ノイズ除去、異常検知、特徴抽出へ応用できます。生成を目的とする場合はVAEが有力です。一方、圧縮すれば必ず過学習を防げるわけではなく、潜在次元、正則化、評価データ、異常判定の閾値などを目的に合わせて設計する必要があります。まずはPCAなどの単純な方法を基準にし、非線形な特徴を学ぶ価値がある場面でオートエンコーダを選ぶとよいでしょう。
更新履歴
| 日付 | 内容 |
|---|---|
| 2025年2月2日 | 初回公開 |
| 2026年7月23日 | 復元誤差の仕組み、PCAとの比較、異常検知の設計上の注意を追記 |
