オートエンコーダ (G検定)

オートエンコーダ

1. 定義と概要

オートエンコーダ(自己符号化器)とは、入力データを一度圧縮し、そこから元のデータに近い形へ復元するように学習するニューラルネットワークの一種です。構造は3つの要素からなり、それぞれの役割は次のように整理されます。

構成要素 役割
エンコーダ(入力データを圧縮して重要な特徴だけを取り出す部分) 入力を圧縮して低次元の特徴量(データの特徴を数値で表したもの)に変換する
潜在変数(中間層やボトルネック層とも呼ばれる、圧縮した後のデータ表現) 圧縮後の低次元表現そのものにあたる
デコーダ(圧縮されたデータを元の形に近づけて復元する部分) 潜在変数から元のデータに近い形へ復元する

出力の正解として入力データそのものを使うため、正解ラベルを人が用意する必要がありません。データの構造そのものから学習する教師なし学習(正解ラベルを使わず、データそのものの構造から学習する方式)に分類されます。代表的な用途は、次元削減(データの特徴を保ったまま、扱う数値の数を減らすこと)、ノイズ除去(データに紛れ込んだ不要な乱れを取り除くこと)、異常検知(通常とは異なるデータを見つけ出すこと)の3つです。

層を深くしたニューラルネットワークは、誤差が逆伝播する過程で勾配が徐々に薄まり、学習が進みにくくなる勾配消失問題(層が深いネットワークで誤差の伝わりが徐々に弱まり、学習がうまく進まなくなる現象)を起こしやすい性質があります。そのため2000年代半ばまでは、深い層の学習が難しいという課題を抱えていました。

2000年代後半には、制限付きボルツマンマシン(データの特徴をとらえる確率分布を学習する、オートエンコーダとは別の仕組みのモデル)を使い、層ごとに事前学習(本番の学習の前に、重みをあらかじめ調整しておく処理)する手法が広まりました。積層オートエンコーダ(オートエンコーダを何層にも重ねた構造)でもこの考え方が使われ、深いネットワークの学習を後押ししました。

その後、勾配消失を緩和するReLU関数(層が深くても勾配が消えにくい活性化関数。各層で入力を変換して次の層へ渡す関数)が普及します。また、学習時に一部のニューロンをランダムに無効にして過学習(学習データに適合しすぎて、未知のデータへの対応力が落ちる状態)を防ぐドロップアウトも広がりました。

こうした技術の普及によって事前学習としての役割は薄れましたが、次元削減・ノイズ除去・異常検知といった実用面での価値は現在も生き続けています。

2. 試験対策ポイント

構造の3要素であるエンコーダ・潜在変数・デコーダと、正解ラベルを使わずに学習する教師なし学習に分類される点は、オートエンコーダを理解するうえでの土台になります。この3要素の役割を混同すると、後述する他の手法との違いも見えにくくなるため、まず押さえておきたい論点です。

積層オートエンコーダによる事前学習と、勾配消失問題・ReLU関数との関係は、深層学習の歴史の流れとして押さえておきたいポイントです。層を深くするほど学習が難しくなるという壁を、1層ずつ順番に学習させる積層オートエンコーダの事前学習が乗り越え、その後ReLU関数などの技術が普及したことで、事前学習に頼らず深い層を直接学習できるようになったという流れになります。

代表的な応用として、ノイズ除去(デノイジング。画像などに混じった余分なノイズを取り除く処理)と、その延長にある異常検知(正常なデータとの違いから異常を見つけ出す処理)の関係も見ておきたいところです。正常なデータだけで学習したオートエンコーダに未知のデータを通すと、正常なパターンとの違いが復元誤差として表れ、その大きさから異常を判定する仕組みです。

発展形である積層オートエンコーダ、変分オートエンコーダ(VAE)、主成分分析(PCA)との違いは取り違えやすく、次の節で整理します。変分オートエンコーダ(VAE)とは、圧縮したデータを確率的に扱うことで新しいデータを作り出せる発展形を指します。主成分分析(PCA)とは、データのばらつきが最も大きい方向を軸にして次元を圧縮する統計的な手法です。

3. 関連概念との比較・相違点

オートエンコーダと混同されやすい3つの手法は、それぞれ別の軸で区別されます。中心となる違いは次のとおりです。

比較対象 違いの軸 要点
主成分分析(PCA) 線形か非線形か PCAは線形な次元削減の手法で、オートエンコーダは非線形な次元削減にも対応できる
積層オートエンコーダ 単層か多層か 通常のオートエンコーダは1組のエンコーダとデコーダ、積層オートエンコーダは複数を重ねた多層構造
変分オートエンコーダ(VAE) 決定論的な復元か確率的な生成か 通常のオートエンコーダは入力の再構成に特化し、VAEは新しいデータを生成できる

主成分分析(データのばらつきが最も大きい方向を軸にして次元を圧縮する統計的な手法。PCAとも呼ばれます)は、データのばらつきが最も大きい方向を軸に据えます。これに対してオートエンコーダは、活性化関数の選び方次第で非線形な次元削減にも対応できます。

ただし、エンコーダとデコーダが共に線形関数で、損失関数(予測と正解のずれを数値にする式)に二乗誤差(ずれを2乗して合計する測り方)を使う場合には、線形オートエンコーダの最適解は主成分分析の解と一致することが知られています。線形か非線形かという軸は、両者を取り違えやすい典型のひとつです。

積層オートエンコーダは、複数のオートエンコーダを何層にも重ね、1層ずつ順番に学習させる多層構造です。深いネットワークの事前学習として使われてきた経緯があり、詳しい仕組みは別のテーマとして扱われます。

変分オートエンコーダ(VAE)との違いでは、通常のオートエンコーダが入力の再構成に特化した決定論的な写像(同じ入力からは必ず同じ出力が得られる対応づけ)である点が起点になります。一方VAEは潜在変数を確率分布として扱い、そこからのサンプリング(確率分布にしたがって値を取り出すこと)によって、学習データには無い新しいデータを生成できる生成モデルです。復元に徹するか、新しいデータを生み出せるかが両者の分かれ目になります。

4. ビジネス・実務での活用シナリオ

製造業では、正常な製品画像だけでオートエンコーダを学習させ、入力と出力の誤差である復元誤差の大きさから傷や欠陥を検知する外観検査に使われています。欠陥品の画像を大量に集めなくても、正常な画像だけで運用を始められる点が実務上の利点です。異常事例が少ない現場でも、検査体制の立ち上げにつながります。

金融の分野では、通常の取引パターンで学習させたオートエンコーダに実際の取引データを通し、復元誤差が大きい取引を不正利用の疑いとして検知する用途があります。既知の不正パターンをあらかじめ定義しなくても、正常な取引からのずれを手がかりに異常を洗い出せる仕組みです。

医療の現場では、医療画像のノイズ除去や、大量の画像データを低次元の特徴量に圧縮して解析を補助する用途に使われています。画像を圧縮した状態で扱えるため、後続の解析やデータ管理の負荷を抑えられる点が現場での意義です。

5. 要点まとめ

  • オートエンコーダは、入力を圧縮するエンコーダと元の形に近づけて復元するデコーダから構成されるニューラルネットワークで、教師なし学習に分類され、次元削減・ノイズ除去・異常検知に使われます。
  • 主成分分析(PCA)は線形な次元削減であるのに対し、オートエンコーダは非線形な次元削減にも対応できるという違いがあります。
  • 積層オートエンコーダは多層に重ねた事前学習向けの構造、変分オートエンコーダ(VAE)は潜在変数を確率分布として扱い新しいデータを生成できる発展形という位置づけの違いがあります。

6. 確認問題

問1オートエンコーダは、入力データを圧縮するエンコーダと、圧縮された表現(潜在変数)から元のデータに近い形を復元するデコーダから構成される。

解答・解説をみる

○ 正しい

エンコーダ・潜在変数・デコーダの3要素で構成される基本構造そのものの記述であり、正しい内容です。この3要素は教師なし学習という分類ともあわせて理解しておきたい関係にあります。

問2主成分分析(PCA)は非線形な次元削減が可能であるのに対し、オートエンコーダは線形な次元削減しかできない。

解答・解説をみる

× 誤り

正しくは逆で、PCAは線形な次元削減の手法であり、オートエンコーダは活性化関数の選び方次第で非線形な次元削減にも対応できます。線形・非線形の対応関係は取り違えやすい典型です。

問3変分オートエンコーダ(VAE)は、潜在変数を確率分布として扱うことで、通常のオートエンコーダには無い新しいデータの生成が可能である。

解答・解説をみる

○ 正しい

通常のオートエンコーダが入力の再構成に特化した決定論的な写像であるのに対し、VAEは確率分布からのサンプリングによって新しいデータを生成できる生成モデルです。復元と生成という役割の違いにあたります。