機械学習におけるエンコーダとデコーダ
定義
データ集合が与えられたとする。機械学習の文脈でエンコーダencoder, 符号化器とは、適当な集合()について次のような関数を指す。
次のようなをデコーダdecoder, 復号器と言う。
説明
情報理論の文脈でエンコーダの役割は情報を圧縮することに焦点を当てる。圧縮の目的は通信内容のセキュリティのために暗号を作るためや、ストレージを効率的に使用するためかもしれない。
機械学習の文脈でもエンコーダは情報を圧縮する役割を果たす。データの次元が低くなるとメモリーを節約し計算時間が短縮されるためである。情報理論とは異なり、機械学習におけるエンコーダはもう一つ重要な役割を持つ。それはデータの特徴抽出である。エンコーダは入力されたデータからデータが持つ潜在的な特徴を出力する関数である。したがってエンコーダの出力を潜在変数latent variableや特徴ベクトルfeature vectorと呼ぶこともあり、エンコーダにデータを入力して出力を得る過程を特徴抽出feature extractionと言う。エンコーダはデータの次元を下げつつ、データが持つ特徴をよく保ち、抽出することが重要である。逆にデコーダはエンコーダが出力した潜在変数を元のデータに復元する役割を担う。
機械学習でエンコーダの出力に意味を与え、データの特徴を抽出することにこだわる理由は、人工ニューラルネットワークがブラックボックスアルゴリズムだからである。従来の暗号や圧縮技術ではエンコーダの構造や原理が明示的で、どのように動作するかを知ることができるため、その出力がどのような形になっているかは関心がない。しかしディープラーニングでは人工ニューラルネットワークはただ損失関数が小さくなる方向に最適化されたものであるため、圧縮原理を正確に理解したり、明確に説明することができない。したがって抽出された特徴ベクトルを可視化したりクラスタリングしたりして、その意味がうまく保たれているかどうかを確認するのである。