潜在変数と潜在空間
定義
データ集合が与えられているとする。このデータ集合を定義域とする関数をエンコーダーという。
エンコーダーの値域 ()を潜在空間latent spaceと呼び、潜在空間の要素を潜在変数latent variableまたは特徴ベクトルfeature vectorという。
関数について、
説明
エンコーダーの役割の一つはデータを圧縮することであるため、潜在空間の次元はデータ集合より小さいことが一般的だ。情報理論の文脈では必ず小さくなければならないが、機械学習およびディープラーニングでは性能が良ければ良しとされるため、潜在変数の次元がデータと同じか大きくても問題はない。もちろん大抵の場合は小さくまたは同じ方が良い。
情報理論や暗号論の文脈と異なり、機械学習ではエンコーダーにもう一つの重要な役割が求められる。それはデータの特徴を抽出することである。したがって、データをニューラルネットワークに入力して出力を得る過程自体を特徴抽出feature extractionまたは埋め込みと呼ぶ。ディープラーニングでエンコーダーの関数値に意味を付与し、特徴抽出に注力する理由は人工ニューラルネットワークがブラックボックスアルゴリズムだからだ。エンコーダーの原理や構造が明示的な伝統的技法とは異なり、人工ニューラルネットワークで作られたエンコーダーはその原理や過程を正確に知ることができない。だからこそエンコーダーの出力にデータから抽出されたデータの潜在的特徴という意味を付与するのである。
この意味は結局人が付与するものであり、数学的には情報理論の文脈でも機械学習の文脈でもエンコーダーの役割は同じだ。ただし圧縮のみを目的とするなら、圧縮されたデータ、つまりエンコーダーの関数値がどのような形をしているかは関係ない。しかし機械学習ではエンコーダーの出力がデータの特徴を良く保存する必要があるため、エンコーダーの出力はデータの特徴を良く示す形でなければならない。例えば、画像データをエンコードする際に、エンコーダーの出力は画像の色や形、位置などをよく示す形であるべきである。例えばダンベル、カップ、ダルメシアンの写真に対する特徴ベクトルが次の画像のように見えるならば良いものである。(以下の画像でうっすらとダンベル、カップ、ダルメシアンが見えるかもしれない)1
または、以下のように関心がある対象や重要な対象の位置、輪郭が良く現れているのも良い。
Simonyan, Karen, Andrea Vedaldi, and Andrew Zisserman. “Deep inside convolutional networks: Visualising image classification models and saliency maps.” arXiv preprint arXiv:1312.6034 (2013). ↩︎