2012/11/09
Deep Learning
株式会社ウサギィ五木田 和也
12年11月9日金曜日
自己紹介
✤ 株式会社ウサギィのエンジニア
✤ 機械学習、自然言語処理、組合せ最適化
✤ iPhone, Android, Rails
✤ なぜか備品管理やデザインもやっている
✤ Twitter ID: @kazoo04
12年11月9日金曜日
今日の話
✤ Deep Learning (初級編)
✤ わたしが知ってる範囲で(まだよくわかってないです><)
✤ 普及して欲しい
✤ 興味あったけど調べるの面倒くさくて諦めた人向け
12年11月9日金曜日
Deep Learning とは
✤ (私の周りだと)注目されはじめたのは画像認識
✤ Googleのネコ認識 (Youtube から学習)
✤ ILSVRC 2012 etc
12年11月9日金曜日
General Object Recognition
✤ 制約のない実世界の画像に対して、その中に含まれる物体を一般的な名称で認識すること。
“Eiffel Tower”“Camel”12年11月9日金曜日
それまでの一般物体認識
12年11月9日金曜日
ところが…
12年11月9日金曜日
Deep Learning
12年11月9日金曜日
Deep Learning
12年11月9日金曜日
それまでの画像認識(再掲)
12年11月9日金曜日
Deep Learning (イメージ)
12年11月9日金曜日
それまでの一般物体認識
( ^o^) < 学習器を改良していこう!
( ˘⊖˘) 。o(待てよ、これからは特徴抽出に力を入れるべきだな)
| ILSVRC 2012 | ┗(☋` )┓三
( Hinton )☛ Deep Learning使ったら生の画像だけで1位になれたぞ
▂▅▇█▓▒░(’ω’)░▒▓█▇▅▂ うわあああああああああああ
12年11月9日金曜日
Deep Learning …の前に
✤ Deep Learningの厳密な定義がよくわからん
✤ Deep Learningは特定のアルゴリズムというよりは考え方/アプローチに近いので、実装するときはいろいろな方法があります(?)
✤ 今回は、Hinton(2012)の、”Deep Boltzmann Machine” ベース。
12年11月9日金曜日
Deep Learning の概要
✤ 事前にうまく特徴抽出してくれる教師なしニューラルネットワークをたくさん繋げて多層にしたもの
✤ 事前に用意してから→Pre-training
✤ うまく特徴抽出→ Auto-encoder
✤ 教師なしニューラルネット → Restricted Boltzmann Machine (RBM)
✤ 多層にしたもの → Deep Boltzmann Machines (多層BM, DBM)
12年11月9日金曜日
Backpropagation
✤ 3種類の層からなるニューラルネットワーク
これだけでも任意の非線形関数を近似する能力がある
(ノード数が十分あれば)
12年11月9日金曜日
Backpropagation(多層)
✤ 多層にしたら表現能力が増えそうな感じがする(後述)
✤ 下(入力層に近い)層で抽出した特徴を、さらに重み付けしていく
12年11月9日金曜日
Richard Socher, Yoshua Bengio and Chris ManningDeep Learning for NLP (without Magic), ACL 2012
12年11月9日金曜日
Richard Socher, Yoshua Bengio and Chris ManningDeep Learning for NLP (without Magic), ACL 2012
Layer3
Layer2
Layer1
12年11月9日金曜日
Backpropagation(多層)
✤ これはうまくいかない
✤ 時間がかかる(効率が悪い)
✤ Vanishing Gradient Problem
✤ 浅い層に行くほど誤差信号がうまく伝播しない
✤ 過学習や局所解に陥るのとはまた別の問題
12年11月9日金曜日
イメージ
Restricted Boltzmann Machine (RBM)をたくさん繋げたものがDeep Boltzmann Machines (DBM)
DBM
RBM RBM RBM
12年11月9日金曜日
Restricted Boltzmann Machine
✤ 制約付きボルツマンマシン
✤ こいつを Auto encoder として使う(他のアルゴリズムでも良いが)
Restricted Boltzmann MachineBoltzmann Machine
✤ Contrastive Divergence 法 で高速に計算できる
12年11月9日金曜日
RBMの学習
同じ結果になるように、繰り返し調整していく
あと、Hidden層がなるべく sparse になるように制約を入れる
12年11月9日金曜日
RBMはなにがしたいのか?
✤ 元の入力を圧縮して、逆変換した時の誤差が最小になるようにする
✤ その結果、入力情報をもっともよく表現できるような関数が得られる
✤ 画像ならエッジ(とそれをさらに組み合わせたパターン)
✤ PCAに似ているけど、より自由度が高い
12年11月9日金曜日
Deep Boltzmann Machines
✤ まずは1層だけ(普通のRBM)を学習する
✤ 簡易のため、RBMを層状に示してあります
1段目
各層のノードの数は問題による(研究者の勘とチューニング)
12年11月9日金曜日
Deep Boltzmann Machines
✤ 1層ずつRBMを追加していく
学習済みの層は弄らないで新しい層だけ調整する
2段目
3段目
1層目の出力を入力にして2層目を学習する
12年11月9日金曜日
Deep Boltzmann Machines
✤ 1層ずつ確定させていく
✤ 新しく追加した層以外は変更しない
3段目
4段目
5段目
✤ Super Vision での例
✤ 学習データ15万枚 (1000カテゴリ)
✤ 65万ニューロン(5層)
12年11月9日金曜日
Deep Learningでの教師あり学習
✤ DBMが出来上がったあとにやる (Fine-training)
✤ いろいろある
✤ Backpropagationで微調整する
✤ Deep Learning の出力を入力にしてSVM
12年11月9日金曜日
Deep Learningのポイント
1. Pre-training
教師あり学習(Fine-training)の前に、予め教師なし学習をする
2. Auto-encoder
Pre-training のとき、少ない変数で入力情報をうまく説明できるような関数を学習する。イメージとしては主成分分析見たいな感じ。RBMとか使う。
3. Deep Boltzmann Machines (DBM)
Pre-training した層(RBM)を何段も繋げていって、多層ニューラルネットワークを構築する
12年11月9日金曜日
デメリット
✤ 決めなければならないパラメータが多い
✤ 中間層の数
✤ 学習の繰り返し回数
✤ RBMの層をどれくらい繋げるか
✤ RBMのパラメータ
✤ 遅い(ネットワークがデカイので)
12年11月9日金曜日
まとめ
✤ Deep Leaningすごいっていうのを伝えたかった
✤ 多層ニューラルネットの問題点をうまく回避している
✤ これから色々なところで使われることになりそう
✤ 特徴量の設計が難しい問題とか?
✤ 詳しくはWebで
12年11月9日金曜日
Top Related