Deep learning5. Deep Learningとは何か
• 7層、8層と深いニューラルネットワーク
– ニューラルネットとは脳の神経系を計算機上で模したもの
– ひとつひとつのレイヤー間で学習を行うのが特徴
• 生の入力信号から特徴抽出と識別を行える機械学習
– Hand-craftedな特徴量用いず、統計的に特徴量を学習する
– 今までの手法(SIFT、HOG)では特徴量の抽出はまさに職人芸だっ
た
Input層 Hidden層 Output層
ニューラルネットワークの例
7. Deep Learningの定義
• 私が知る限りでは以下を満足する機械学習システム
1. 高位の問題の解決が目的であること
2. 多層構造であること
3. 階層的処理であること
• 実装には様々なアルゴリズムがある
– Deep Belief Network
– Deep Boltzmann Machine
– Deep Neural Network
– Stacked (Denoising) Auto-Encoder
※ただし,これらが本当に正しい定義なのかはわからない
11. レイヤーの種類
• Auto-Encoder
– Sparse Auto-Encoder
– Denoising Auto-Encoder
– Contractive Auto-Encoder
– Predictive Sparse Decomposition
• Restricted Boltzmann Machine(RBM)
12. レイヤーの種類
• Auto-Encoder
– 恒等写像を学習する教師なし学習器の一種
– Encoder,Decoder,Representationの3つで構成される
– EncoderとDecoderの合成写像を再現するような学習を行う
• 入力と出力の誤差が最小になるように学習する
• すると,入力データを適切な表現に写像するAuto-Encoderが得られる
Input OutputRepresentation
encoder decoder
error
¢xnxn
13. レイヤーの種類
• Denoising Auto-Encoder
– Auto-Encoderに対して正規化を行った亜種
– 入力情報を意図的に損傷(ノイズを加える)させ、それを復元させ
るような訓練をする
– 実験結果は非常によい
“Stacked Denoising Autoencoders”, Learning Useful Representations in a Deep Network with a Local Denoising Criterion
15. Deep Architectures
• Deep Belief Networks
– Deep Learningの最初のモデル
– Greedy layre-wise学習
– Pre-training時は,各層をRBMと見なして学習する
• Deep Boltzmann Machine
– DBNから変換できる
– RBMを複数積み上げたネットワーク
• Stacked Auto-Encoder
– DBNの後に考案される
– 各層にAuto-Encoderを用いる
– DBNには性能で劣る
• Stacked Denoising Auto-Encoder
– Stacked Auto-Encoderの改良版
– 各層にDenoising Auto-Encoderを用いる
レイヤーに
RBMを用いる
レイヤーに
Auto-Encoder系を用いる
19. まとめ
• Deep Learningすごい! 一番好きな機械学習です!
• 技術のポイント
– 恒等写像を作り,情報をほぼ可逆圧縮させる
– 階層構造を作り,教師無し学習(Pre-training)を繰り返す
– 1層ずつ学習を確定させていく
– 最後に教師あり学習(Fine-training)でネットワーク全体を微調
整する
• 課題点
– ネットワークが巨大なため遅い
– 層・ノード数の決定が勘と経験と試行錯誤しかない
• これのノウハウがないから,あまり普及していない?
• 遺伝的アルゴリズムとかで決定してみると面白いかも
– まだまだ謎が多い