オートエンコーダ

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索
ニューラルネットワーク > オートエンコーダ

オートエンコーダ(自己符号化器、: autoencoder)とは、機械学習において、ニューラルネットワークを使用した次元圧縮のためのアルゴリズム2006年ジェフリー・ヒントンらが提案した[1]。線形の次元圧縮としては主成分分析があるが、オートエンコーダはニューラルネットワークを使用する。

概要[編集]

AutoEncoder.png

オートエンコーダは3層ニューラルネットにおいて、入力層と出力層に同じデータを用いて教師あり学習させたものである。バックプロパゲーションの特殊な場合と言える。学習は、バックプロパゲーションで行うため非線形最適化問題となる。中間層と出力層の活性化関数はそれぞれ任意に選ぶことができる。教師データが実数値で値域がない場合、出力層の活性化関数は恒等写像が選ばれる(つまり何も変化させない)ことが多い。中間層の活性化関数も恒等写像を選ぶと結果は主成分分析とほぼ一致する。

スパース・オートエンコーダ[編集]

スパース・オートエンコーダ: sparse autoencoder)とは、フィードフォワードニューラルネットワークの学習において汎化能力を高めるため、正則化項を追加したオートエンコーダのこと。ただし、ネットワークの重みではなく、中間層の値自体を0に近づける。

ディープ・オートエンコーダ[編集]

Stacked Autoencoders.png

中間層が2層以上あるニューラルネットワークをディープ・ニューラルネットワーク: deep neural network)と呼ぶが、バックプロパゲーションでは、中間層が2層以上ある場合、通常、不適切な極小解に収束してしまうため、うまく行かない。なので、中間層を2層以上積み上げる場合は、まず、中間層1層だけで作り、次に、出力層を取り除き、中間層を入力層と見なし、もう1層積み上げる。これを繰り返して作る方法をジェフリー・ヒントンらが2006年に提案した。積層自己符号化器: stacked autoencoder)とも言う。

ジェフリー・ヒントンらの2006年の論文では、画像の次元を 2000 → 1000 → 500 → 30 と圧縮し、30 → 500 → 1000 → 2000 と復元した事例が紹介されている[1]

Denoising AutoEncoder[編集]

入力層のデータにノイズを加えて学習させたもの。制約付きボルツマンマシンと結果がほぼ一致する。ノイズは確率分布が既知であればそれに従ったほうが良いが、未知である場合は一様分布で良い。

Contractive AutoEncoder[編集]

Saturating AutoEncoder[編集]

Nonparametrically Guided AutoEncoder[編集]

Unfolding Recursive AutoEncoder[編集]

参照[編集]

  1. ^ a b Geoffrey E. Hinton; R. R. Salakhutdinov (2006-07-28). “Reducing the Dimensionality of Data with Neural Networks”. Science 313 (5786): 504-507. http://www.cs.toronto.edu/~hinton/science.pdf.