用語集

オートエンコーダ

オートエンコーダーがどのようにデータを圧縮し、ノイズを低減し、高度なAI技術で異常検知や特徴抽出などを可能にしているかをご覧ください。

Ultralytics HUB で
を使ってYOLO モデルをシンプルにトレーニングする。

さらに詳しく

オートエンコーダーは、主に教師なし学習タスク、特に次元削減や 特徴抽出に使用される人工ニューラルネットワーク(NN)の一種である。その基本的な目的は、入力データの圧縮表現(エンコーディング)を学習することであり、一般的にはネットワーク自身の入力を再構築するように学習する。入力データを低次元の潜在空間にマップするエンコーダーと、この圧縮表現から元のデータを再構成するデコーダーの2つの主要部分から構成される。このプロセスにより、オートエンコーダは訓練データの最も顕著な特徴を捉えるようになる。

オートエンコーダの仕組み

オートエンコーダーの動作には、エンコードとデコードの2つの段階がある。

  1. エンコーダー:この部分は入力データ(画像やベクトルなど)を取り込み、潜在空間またはボトルネックと呼ばれる低次元表現に圧縮する。この圧縮により、ネットワークは意味のあるパターンを学習し、ノイズや冗長性を破棄する。エンコーダは一般的にいくつかの層からなり、ReLUや シグモイドのような活性化関数を使用することが多い。
  2. ボトルネック:オートエンコーダーの中心層で、入力データの圧縮された低次元表現が存在する。本質的な情報を捉える「コード」である。この層の次元数は重要なハイパーパラメータである。
  3. デコーダー:この部分はボトルネックから圧縮された表現を受け取り、元の入力データを可能な限り正確に再構成しようとする。デコーダーはエンコーダーの構造を反映するが、逆にデータをアップサンプリングして元の次元に戻す。

訓練では、入力データをネットワークに与え、連続データの場合は平均二乗誤差(MSE)、バイナリデータの場合はバイナリクロスエントロピーのような損失関数を使用して、出力(再構築されたデータ)と元の入力を比較します。この再構成誤差を最小化するために、バックプロパゲーションと Adamや SGDのような最適化アルゴリズムを用いてネットワークの重みを調整する。

オートエンコーダの種類

基本的なオートエンコーダーアーキテクチャにはいくつかのバリエーションがあり、それぞれが特定のタスクのために設計されている:

  • ノイズ除去オートエンコーダ:ノイズに汚染された入力のクリーンなバージョンを再構築するように訓練されている。そのため、画像のノイズ除去などのタスクに適しています。デノイジング・オートエンコーダーの詳細については、こちらをご覧ください。
  • スパースオートエンコーダ:ボトルネック層にスパースペナルティ(正則化の一種)を導入し、一度に数ノードしかアクティブにならないような表現をネットワークに学習させる。
  • 変分オートエンコーダ(VAE):潜在空間への確率的マッピングを学習する生成AIモデルで、学習データと同様の新しいデータサンプルを生成することができる。VAE論文を読む
  • 収縮オートエンコーダ:損失関数にペナルティ項を追加し、エンコーダーが入力の小さな変化にもロバストな表現を学習するように促す。

実世界での応用

オートエンコーダは、様々な機械学習(ML)アプリケーションで使用される汎用性の高いツールである:

  • 異常検出:データの正常なパターンを学習することで、オートエンコーダは異常値や異常を識別することができる。特定のデータポイントの再構成誤差が大きい場合、入力が学習データと大きく異なることを示唆し、金融における不正取引や製造における欠陥設備のような異常を示す可能性があります。異常検知についてさらに調べる
  • 画像圧縮とノイズ除去:オートエンコーダは画像のコンパクトな表現を学習し、効果的に圧縮を行うことができる。ノイズ除去オートエンコーダーは、特に画像からノイズを除去するために使用されます。これは、医療画像解析(MRIスキャンやCTスキャンの強調など)や古い写真の復元に役立ちます。医用画像ソリューションをご覧ください。
  • 次元削減: 主成分分析(PCA)と同様に、オートエンコーダーはデータの次元を削減するが、PCAでは不可能な複雑で非線形な関係を捉えることができる。これはデータの可視化や他のMLモデルの前処理として有用です。
  • 特徴学習:エンコーダ部分は、画像分類や 物体検出のような下流のタスクのための特徴抽出器として使用することができ、多くの場合、生データよりもロバストな特徴を提供する。一方 Ultralytics YOLOのようなモデルは特殊なバックボーンを使用しますが、オートエンコーダの原理は表現学習に役立ちます。

オートエンコーダと関連概念

  • PCA:どちらも次元を削減するが、PCAは線形変換に限定される。オートエンコーダはニューラルネットワークであるため、複雑な非線形マッピングを学習することができ、多くの場合、複雑なデータセットに対してより優れた表現を導くことができる。
  • GAN: Generative Adversarial Networks(GAN)は、主に非常に現実的な新しいデータを生成するために設計されている。VAE(オートエンコーダの一種)もデータを生成することができるが、その焦点は多くの場合、適切に構造化された潜在空間を学習することにある。
  • CNNとトランスフォーマー:オートエンコーダはアーキテクチャパターン(エンコーダ・デコーダ)を定義する。オートエンコーダーは、エンコーダーとデコーダーの構成要素として、画像データ用の畳み込みニューラルネットワーク(CNN)やシーケンシャルデータ用のトランスフォーマーなど、他のネットワークタイプを利用することが多い。

ツールと実装

オートエンコーダは、一般的なディープラーニング(DL)フレームワークを使用して実装することができる:

Ultralytics HUBのようなプラットフォームは、データ管理やモデルトレーニングを含む全体的なMLワークフローを容易にするが、教師なしオートエンコーダのトレーニングよりも、検出やセグメンテーションのような教師ありタスクに主眼を置いている。

すべて読む