読むだけでちょっと賢くなる、架空のまとめスレ

【疑問】入力をそのまま出力するオートエンコーダ、何の役に立つん?積層オートエンコーダと事前学習【G検定】

11レスカテゴリ:AI・機械学習
1: 名無しさん

オートエンコーダは入力と同じものを出力するように学習するらしい
答えを丸写しするだけやん。何がうれしいん?

2: 名無しさん

前提のおさらい。多層パーセプトロンは、入力層・隠れ層・出力層をつないで、出力と正解の誤差が小さくなるように重みを学習する

3: 名無しさん

>>1
ポイントは、真ん中の隠れ層を入力より小さくすること
784画素の画像を32次元に縮めて(エンコーダ)、そこから784画素に戻す(デコーダ)。32次元に 分の1に詰めてもとに戻せるなら、その32個の数に画像の大事な特徴が入ってる

4: 名無しさん

>>3
丸写しできん幅に絞るから、どこを残すかを学ぶしかない。正解のラベルは要らん。入力そのものが正解

5: 名無しさん

>>3
学習は、入力と出力の差を小さくする。入力 (1, 0, 1)、復元が (0.9, 0.1, 0.8) なら、平均二乗誤差は

6: 名無しさん

>>3
それって主成分分析と同じことちゃうの?次元を減らしてるだけやん

7: 名無しさん

>>6
活性化関数を使わない線形のオートエンコーダを平均二乗誤差で学習すると、主成分分析と同じ空間を見つけることが知られてる
活性化関数を入れて層を深くすれば、曲がった関係も表せる。そこが主成分分析より広いところ

8: 名無しさん

積層オートエンコーダは、オートエンコーダを何段も重ねたもの
1段目で入力を縮めて、その縮めた表現を入力にして2段目を学習して、と1層ずつ順番に学ぶ

9: 名無しさん

>>8
なんで1層ずつ学ぶん?全部まとめて学習したらええやん

10: 名無しさん

>>9
昔は深いネットワークをまとめて学習すると、勾配消失でうまくいかんかった。そこで、1層ずつオートエンコーダで初期値を作っておいて(事前学習)、最後に全体を正解つきデータで調整(ファインチューニング)した
ヒントンらの2006年の論文あたりから広まった、ディープラーニングの初期のやり方

11: 名無しさん

>>10
今はReLUや正規化、スキップ結合のおかげで、この事前学習なしでも深いネットワークを学習できる。ただ「ラベルなしデータで先に学んでおく」という考え方自体は、今の事前学習モデルにも引きつがれてる

管理人のひとこと