ディープラーニングの概要と学習の仕組みについて。
目次
AI・ディープラーニングの全体像
- 人工知能
- 機械学習
- ディープラーニングの基本・応用
- ディープラーニングの研究
- AIプロジェクト
- AI社会実装に伴う法律・倫理
オートエンコーダ
概要
- 「オートエンコーダ(自己符号化器;Autoencoder)」→ニューラルネットワークの一種
- 2006年、ジェフリー・ヒントン教授によって提唱される
- 入力データに「次元削減」を施し、重要な「特徴」を抽出する
- ニューラルネットワークの隠れ層に潜む勾配消失問題を解消するために設計され、技術の発展に寄与してきた
オートエンコーダの仕組み
- 入力層→隠れ層→出力層
- 入力層と出力層をともに「可視層」と呼ぶこともある
- 入力データ→入力層→「次元削減」により圧縮、重要な情報のみ抽出→出力層(入力層と同じデータになるよう「復元」)→出力
- 一度データを圧縮しても出力層で復元できるには、重要度の高い特徴量だけを隠れ層で抽出する必要あり
- 隠れ層の次元(ノードの数)は入力層と出力層よりも少ない
- 入力と出力が同じデータになるよう、あえて隠れ層の次元を小さくし、データを適切に”情報圧縮”する方法を学習する
オートエンコーダの成果
- 「事前学習」→ニューラルネットワークの初期値として、オートエンコーダで事前に学習させたパラメータ値を用いることは、勾配消失を防止する効果がある
- オートエンコーダによる情報圧縮は、過学習の防止にも効果的
オートエンコーダを用いた事前学習
- 「事前学習」→オートエンコーダを用いて、ニューラルネットワークの重みの初期値をあらかじめ推定すること
- 初期値をランダムに設定するよりも、オートエンコーダによるデータの特徴を捉えるための適切なパラメータ値があったほうが、勾配消失問題が抑えられ、層を深くしたとしても学習が比較的うまく進む
- 複数のオートエンコーダを積み重ね、順番に学習させる「積層オートエンコーダ(Stacked Autoencoder)」が使われる
- 「ファインチューニング」→積層エンコーダの終端に、特定のタスクに合った出力をするために層を追加し、その層の重みを学習すること
※分類問題に対してはロジスティック回帰層、回帰問題については線形回帰層を追加する
その後のオートエンコーダの使い道
- 層ごとに事前学習を行う過程は、計算コストが大きい
- 2010年代に入ってアルゴリズムが継続的に改良されていく→事前学習を行わなくとも問題にならなくなった
- その後、オートエンコーダはニューラルネットワークの学習には直接使用されなくなっていく
- 現在では、オートエンコーダは、「画像からノイズを除去」するために使われる
- ノイズを混ぜた画像を入力し、正解となる元画像を与えて学習させる→ノイズをノイズとして認識
→データ圧縮時にノイズを除去できるようになる - 画像認識モデルなどの学習に使われる
- 異常検知にも使われる(入力値に異常がある場合、入力値と出力値の誤差が生じ、異常発生を認識する)