自己符号化器(オートエンコーダー)とは?仕組み・種類・応用をわかりやすく解説

自己符号化器(オートエンコーダー)とは?仕組み・種類・応用をわかりやすく解説

AIの初心者

「自己符号化器」とは、どのような仕組みなのですか?

AI専門家

データをいったん少ない情報へ変換し、そこから元のデータを復元するように学ぶニューラルネットワークだよ。手書き数字なら、形の特徴を凝縮してから元の画像に近づけるんだ。

AIの初心者

元に戻す練習が、なぜ役に立つのでしょうか?

AI専門家

限られた情報から復元させると、データに共通する重要な特徴を学べるからだよ。その特徴は、次元削減、ノイズ除去、異常検知などに活用できるんだ。

Autoencoderとは。

自己符号化器(オートエンコーダー)は、入力を圧縮した表現へ変換し、そこから入力を再構成するニューラルネットワークです。「自動符号化器」と呼ばれることもあります。この記事では、基本構造、学習方法、代表的な種類、PCAとの違い、次元削減・異常検知・画像生成への応用を順に解説します。

自己符号化器(オートエンコーダー)とは

入力データを潜在表現へ圧縮して復元する自己符号化器の概念図

自己符号化器とは、入力データをいったん少ない情報へ変換し、その情報から元のデータを再構成するように学習するニューラルネットワークです。英語ではAutoencoderといい、オートエンコーダー、自動符号化器とも呼ばれます。

たとえば、28×28画素の手書き数字画像には784個の画素値があります。自己符号化器は、それを数十個程度の値で表される特徴へ変換し、その特徴だけを手掛かりに784画素の画像を復元します。圧縮された特徴は「潜在表現」「潜在変数」「潜在ベクトル」などと呼ばれます。

入力と出力を同じにするだけなら、単純にコピーすればよいように見えるでしょう。しかし、途中の層を狭くしたり、使えるニューロンを制限したり、入力にノイズを加えたりすると、丸写しは難しくなります。その制約の中で復元誤差を小さくしようとすることで、輪郭、色、形、センサー値の相関といった復元に役立つ特徴を学びます。

自己符号化器は一般に教師なし学習の手法として紹介されます。人がクラス名を付けたラベルを必要としないためです。一方、入力データ自体から正解信号を作るという意味では、自己教師あり学習の一種とも捉えられます。入力と正解が同じであっても、学習時には明確な復元目標があります。

要素 役割 画像を例にしたイメージ
入力 学習対象となる元データ 手書き数字の画素値
潜在表現 復元に必要な特徴を凝縮した表現 線の傾き、丸み、太さなどを表す数値
出力 潜在表現から再構成したデータ 元画像に近い手書き数字

自己符号化器の構造と学習の仕組み

\(\text{入力 }x \rightarrow \text{符号化 }z=f_{\theta}(x) \rightarrow \text{復号 } \hat{x}=g_{\phi}(z)\)

エンコーダーと潜在空間とデコーダーで構成される自己符号化器

自己符号化器は、主にエンコーダー(符号化器)、潜在空間、デコーダー(復号化器)の3部分で構成されます。エンコーダーは入力\(x\)を潜在表現\(z\)へ変換し、デコーダーは\(z\)から復元データ\(\hat{x}\)を作ります。\(\theta\)と\(\phi\)は、それぞれのネットワークが学習する重みなどのパラメータです。

潜在空間は、元データより情報量の少ない「ボトルネック」として設計されることがあります。画像であれば、画素をそのまま覚える代わりに、複数の画像へ共通する特徴を組み合わせて表す必要が生じます。ただし、潜在層を狭くしない構成でも、スパース性やノイズ除去など別の制約によって有用な表現を学ばせられます。

学習では、入力と復元結果の差を表す再構成損失を計算します。連続値のデータでは、平均二乗誤差(MSE)がよく使われます。

\(L_{\mathrm{rec}}=\frac{1}{n}\sum_{i=1}^{n}(x_i-\hat{x}_i)^2\)

損失が大きければ、誤差逆伝播法でエンコーダーとデコーダーのパラメータを更新します。この処理を多くのデータで繰り返し、未知データでも復元できる特徴表現を目指します。画素値を確率として扱う設計では二値交差エントロピーなどを使うこともあり、損失関数はデータの性質と出力層に合わせて選ぶ必要があります。

学習後は、目的によって利用部分が変わります。次元削減や特徴抽出ではエンコーダーが出す\(z\)を使い、ノイズ除去ではデコーダーまで通した\(\hat{x}\)を使います。異常検知では、入力と復元結果の差を異常度として利用します。

自己符号化器の主な種類

標準型やスパース型やノイズ除去型やVAEなど自己符号化器の種類

自己符号化器には、学ばせたい特徴や用途に応じた複数の種類があります。単に層を狭くするだけでなく、損失関数や入力の作り方へ制約を加える点が違いです。

種類 主な仕組み 向いている用途
標準的な自己符号化器 入力と同じデータを再構成する基本形 特徴学習、仕組みの検証
アンダーコンプリート自己符号化器 潜在層の次元を入力より小さくする 次元削減、データ圧縮
スパース自己符号化器 一度に活性化するニューロンを少数に制限する 特徴の分離、表現学習
ノイズ除去自己符号化器 汚した入力から元のきれいなデータを復元する ノイズ除去、頑健な特徴抽出
変分自己符号化器(VAE) 潜在変数を確率分布として学習する 画像生成、潜在空間の補間

アンダーコンプリート型は元記事でいう「低次元自己符号化器」に相当します。潜在次元が小さいほどよいわけではなく、小さすぎると必要な情報まで失われて復元品質が下がります。逆に容量が大きすぎて制約が弱いと、入力のコピーに近い恒等写像を覚え、有用な特徴が得られないことがあります。

スパース型は、潜在層が広くても利用するニューロンを絞ることで特徴を学びます。ノイズ除去型は、ノイズを含む入力と元のきれいなデータの組み合わせを使います。VAEは通常の自己符号化器と目的関数が異なり、生成しやすい連続的な潜在空間を作る点が特徴です。

次元削減に使う方法とPCAとの違い

高次元のデータを低次元の潜在表現へ整理する次元削減

顧客データやセンサーデータの項目数、画像の画素数が増えると、計算量が大きくなり、データの全体像も捉えにくくなります。自己符号化器で学習したエンコーダーへデータを通せば、元データを低次元の潜在ベクトルへ変換できます。このベクトルは、可視化、クラスタリング、分類モデルの入力、類似検索などに利用できます。

次元削減の代表的な比較対象が主成分分析(PCA)です。PCAは、データの分散を大きく保つ線形な軸を計算します。自己符号化器はニューラルネットワークに活性化関数を使うことで、曲線的で非線形な構造も表現できます。そのため、複雑な画像や時系列データでは自己符号化器が有利になる場合があります。

比較項目 PCA 自己符号化器
表現 線形 構成次第で非線形
学習負荷 比較的小さい モデル設計と反復学習が必要
再現性 同じ条件なら安定しやすい 初期値や学習条件の影響を受ける
柔軟性 基本的な次元削減に扱いやすい 画像や時系列向けの構造を組み込める

自己符号化器を選べば常にPCAを上回るわけではありません。データが少ない、関係がほぼ線形、結果の説明しやすさや計算の軽さを重視する場合は、PCAが有力です。まずPCAを基準モデルにし、検証データ上の復元誤差や後段タスクの精度を比較すると判断しやすくなります。

ノイズ除去への応用

ノイズ除去自己符号化器では、ノイズを加えたデータを入力し、ノイズを加える前のデータを正解として学習します。画像ならランダムな点や欠損を含む画像から元画像を復元させ、音声なら背景雑音を含む波形から元の波形に近づけます。

入力をそのまま出力するだけでは損失を下げられないため、モデルはデータに共通する形や構造を手掛かりに復元する必要があります。この学習は、ノイズに左右されにくい頑健な潜在表現の獲得にも役立ちます。

実務では、学習時に加えたノイズと本番データの乱れが大きく異なると、期待どおりに除去できません。また、細かな模様や小さな傷までノイズとして消す可能性があります。PSNRやSSIMのような数値評価だけでなく、業務上必要な情報が保持されているかも確認します。

異常検知に使う仕組み

\(s(x)=\frac{1}{n}\sum_{i=1}^{n}(x_i-\hat{x}_i)^2\)

自己符号化器の復元誤差で正常データと異常データを見分ける仕組み

自己符号化器による異常検知では、主に正常データを使って学習します。正常パターンに近い入力はうまく復元できる一方、学習時にほとんど見なかった異常パターンは復元しにくいと期待できます。上式の\(s(x)\)のような復元誤差を異常スコアとし、しきい値を超えたデータを調査対象にします。

たとえば、工場設備の正常な振動データを学習させれば、摩耗や故障で波形が変わったときに復元誤差が増える可能性があります。ほかにも、クレジットカード利用の不正候補、ネットワーク通信の侵入兆候、製品画像の欠陥候補などへ応用できます。異常例が少なく、すべての異常パターンを事前に列挙できない場面で特に有用です。

ただし、復元誤差が大きいだけで異常と断定はできません。正常データの中にも季節変動や利用者ごとの差があり、入力分布が変われば誤検知が増えます。しきい値は正常・異常を含む検証データや許容する見逃し率を基に決め、適合率、再現率、ROC-AUC、PR-AUCなどで評価します。

モデルの表現力が強すぎると、異常データまで上手に復元して見逃すこともあります。潜在次元、正則化、学習データの混入率を調整し、特徴量ごとの誤差や元データも人が確認できる運用にすると、判断根拠を追いやすくなります。

VAEによる画像生成

\(z=\mu+\sigma\odot\epsilon,\quad \epsilon\sim\mathcal{N}(0,I)\)

変分自己符号化器(VAE)は、1つの入力を潜在空間の1点へ直接変換する代わりに、平均\(\mu\)と標準偏差\(\sigma\)で表される確率分布へ変換します。その分布から潜在変数\(z\)をサンプリングし、デコーダーで画像などを生成します。

学習では再構成損失に加えて、潜在分布を標準正規分布へ近づけるKLダイバージェンスを使います。これにより潜在空間の隙間が減り、近い位置から似た特徴のデータを生成しやすくなります。顔画像を学習した場合、潜在空間の異なる点を選ぶことで、学習データの単純なコピーではない顔を生成できます。

通常の自己符号化器は再構成や特徴抽出が中心ですが、VAEは潜在空間から新しいデータをサンプリングできる生成モデルです。デザイン案の生成、データ拡張、欠損補完、異常検知などに使われます。一方、再構成の正確さと潜在分布の整形を同時に求めるため、出力がぼやける場合があります。高精細画像の生成では、拡散モデルなど別の生成手法と組み合わせたり、用途に応じて比較したりすることが大切です。

自己符号化器を使うときの注意点

自己符号化器の潜在表現は、学習データ、ネットワーク構造、損失関数、正則化の影響を強く受けます。導入時は次の点を確認しましょう。

  • 前処理をそろえる:学習時と推論時で、画像サイズ、標準化、欠損処理、カテゴリ変数の扱いを一致させます。
  • データ漏洩を防ぐ:学習前に訓練・検証・テストへ分割し、異常検知では評価対象の情報が正常学習データへ混ざらないようにします。
  • 容量を検証する:モデルが小さすぎると重要情報を失い、大きすぎると恒等写像に近づきます。潜在次元や正則化を比較します。
  • 復元品質だけで選ばない:次元削減なら後段タスクの精度、異常検知なら検出指標、ノイズ除去なら必要情報の保持も評価します。
  • 分布変化を監視する:設備の更新、季節、利用者層の変化により、正常データの特徴も変わります。しきい値とモデルを定期的に再評価します。

また、潜在変数の各軸が「色」「形」のように人間が理解できる意味を持つとは限りません。潜在空間の可視化や入力の摂動実験を行い、モデルが何を手掛かりにしているかを確認すると、実務での誤解を減らせます。

まとめ

自己符号化器は、エンコーダーで入力を潜在表現へ変換し、デコーダーで元のデータを再構成するニューラルネットワークです。復元誤差を小さくする過程で特徴を学び、次元削減、ノイズ除去、異常検知などに利用できます。VAEのように潜在変数を確率分布として扱えば、新しいデータの生成にも応用できます。

一方で、有用な特徴が自動的に保証されるわけではありません。PCAなどの基準手法と比較し、潜在次元、損失関数、学習データ、しきい値を用途に合わせて検証することが重要です。まずは小さなデータで入力・潜在表現・復元結果を並べて確認すると、仕組みと活用上の判断ポイントをつかみやすくなります。

更新履歴

日付 内容
2025年1月31日 初回公開
2026年7月23日 学習の式とPCA比較を補い、異常検知とVAEの判断点を追記