Deep learning

30
2012/11/09 Deep Learning 株式会社ウサギィ 五木田 和也 12119日金曜日

description

機械学習×プログラミング勉強会 vol.2 http://atnd.org/events/33182 で発表した資料

Transcript of Deep learning

Page 1: Deep learning

2012/11/09

Deep Learning

株式会社ウサギィ五木田 和也

12年11月9日金曜日

Page 2: Deep learning

自己紹介

✤ 株式会社ウサギィのエンジニア

✤ 機械学習、自然言語処理、組合せ最適化

✤ iPhone, Android, Rails

✤ なぜか備品管理やデザインもやっている

✤ Twitter ID: @kazoo04

12年11月9日金曜日

Page 3: Deep learning

今日の話

✤ Deep Learning (初級編)

✤ わたしが知ってる範囲で(まだよくわかってないです><)

✤ 普及して欲しい

✤ 興味あったけど調べるの面倒くさくて諦めた人向け

12年11月9日金曜日

Page 4: Deep learning

Deep Learning とは

✤ (私の周りだと)注目されはじめたのは画像認識

✤ Googleのネコ認識 (Youtube から学習)

✤ ILSVRC 2012 etc

12年11月9日金曜日

Page 5: Deep learning

General Object Recognition

✤ 制約のない実世界の画像に対して、その中に含まれる物体を一般的な名称で認識すること。

“Eiffel Tower”“Camel”12年11月9日金曜日

Page 6: Deep learning

それまでの一般物体認識

12年11月9日金曜日

Page 7: Deep learning

ところが…

12年11月9日金曜日

Page 8: Deep learning

Deep Learning

12年11月9日金曜日

Page 9: Deep learning

Deep Learning

12年11月9日金曜日

Page 10: Deep learning

それまでの画像認識(再掲)

12年11月9日金曜日

Page 11: Deep learning

Deep Learning (イメージ)

12年11月9日金曜日

Page 12: Deep learning

それまでの一般物体認識

( ^o^) < 学習器を改良していこう!

( ˘⊖˘) 。o(待てよ、これからは特徴抽出に力を入れるべきだな)

| ILSVRC 2012 | ┗(☋` )┓三

( Hinton )☛ Deep Learning使ったら生の画像だけで1位になれたぞ

▂▅▇█▓▒░(’ω’)░▒▓█▇▅▂ うわあああああああああああ

12年11月9日金曜日

Page 13: Deep learning

Deep Learning …の前に

✤ Deep Learningの厳密な定義がよくわからん

✤ Deep Learningは特定のアルゴリズムというよりは考え方/アプローチに近いので、実装するときはいろいろな方法があります(?)

✤ 今回は、Hinton(2012)の、”Deep Boltzmann Machine” ベース。

12年11月9日金曜日

Page 14: Deep learning

Deep Learning の概要

✤ 事前にうまく特徴抽出してくれる教師なしニューラルネットワークをたくさん繋げて多層にしたもの

✤ 事前に用意してから→Pre-training

✤ うまく特徴抽出→ Auto-encoder

✤ 教師なしニューラルネット → Restricted Boltzmann Machine (RBM)

✤ 多層にしたもの → Deep Boltzmann Machines (多層BM, DBM)

12年11月9日金曜日

Page 15: Deep learning

Backpropagation

✤ 3種類の層からなるニューラルネットワーク

これだけでも任意の非線形関数を近似する能力がある

(ノード数が十分あれば)

12年11月9日金曜日

Page 16: Deep learning

Backpropagation(多層)

✤ 多層にしたら表現能力が増えそうな感じがする(後述)

✤ 下(入力層に近い)層で抽出した特徴を、さらに重み付けしていく

12年11月9日金曜日

Page 17: Deep learning

Richard Socher, Yoshua Bengio and Chris ManningDeep Learning for NLP (without Magic), ACL 2012

12年11月9日金曜日

Page 18: Deep learning

Richard Socher, Yoshua Bengio and Chris ManningDeep Learning for NLP (without Magic), ACL 2012

Layer3

Layer2

Layer1

12年11月9日金曜日

Page 19: Deep learning

Backpropagation(多層)

✤ これはうまくいかない

✤ 時間がかかる(効率が悪い)

✤ Vanishing Gradient Problem

✤ 浅い層に行くほど誤差信号がうまく伝播しない

✤ 過学習や局所解に陥るのとはまた別の問題

12年11月9日金曜日

Page 20: Deep learning

イメージ

Restricted Boltzmann Machine (RBM)をたくさん繋げたものがDeep Boltzmann Machines (DBM)

DBM

RBM RBM RBM

12年11月9日金曜日

Page 21: Deep learning

Restricted Boltzmann Machine

✤ 制約付きボルツマンマシン

✤ こいつを Auto encoder として使う(他のアルゴリズムでも良いが)

Restricted Boltzmann MachineBoltzmann Machine

✤ Contrastive Divergence 法 で高速に計算できる

12年11月9日金曜日

Page 22: Deep learning

RBMの学習

同じ結果になるように、繰り返し調整していく

あと、Hidden層がなるべく sparse になるように制約を入れる

12年11月9日金曜日

Page 23: Deep learning

RBMはなにがしたいのか?

✤ 元の入力を圧縮して、逆変換した時の誤差が最小になるようにする

✤ その結果、入力情報をもっともよく表現できるような関数が得られる

✤ 画像ならエッジ(とそれをさらに組み合わせたパターン)

✤ PCAに似ているけど、より自由度が高い

12年11月9日金曜日

Page 24: Deep learning

Deep Boltzmann Machines

✤ まずは1層だけ(普通のRBM)を学習する

✤ 簡易のため、RBMを層状に示してあります

1段目

各層のノードの数は問題による(研究者の勘とチューニング)

12年11月9日金曜日

Page 25: Deep learning

Deep Boltzmann Machines

✤ 1層ずつRBMを追加していく

学習済みの層は弄らないで新しい層だけ調整する

2段目

3段目

1層目の出力を入力にして2層目を学習する

12年11月9日金曜日

Page 26: Deep learning

Deep Boltzmann Machines

✤ 1層ずつ確定させていく

✤ 新しく追加した層以外は変更しない

3段目

4段目

5段目

✤ Super Vision での例

✤ 学習データ15万枚 (1000カテゴリ)

✤ 65万ニューロン(5層)

12年11月9日金曜日

Page 27: Deep learning

Deep Learningでの教師あり学習

✤ DBMが出来上がったあとにやる (Fine-training)

✤ いろいろある

✤ Backpropagationで微調整する

✤ Deep Learning の出力を入力にしてSVM

12年11月9日金曜日

Page 28: Deep learning

Deep Learningのポイント

1. Pre-training

教師あり学習(Fine-training)の前に、予め教師なし学習をする

2. Auto-encoder

Pre-training のとき、少ない変数で入力情報をうまく説明できるような関数を学習する。イメージとしては主成分分析見たいな感じ。RBMとか使う。

3. Deep Boltzmann Machines (DBM)

Pre-training した層(RBM)を何段も繋げていって、多層ニューラルネットワークを構築する

12年11月9日金曜日

Page 29: Deep learning

デメリット

✤ 決めなければならないパラメータが多い

✤ 中間層の数

✤ 学習の繰り返し回数

✤ RBMの層をどれくらい繋げるか

✤ RBMのパラメータ

✤ 遅い(ネットワークがデカイので)

12年11月9日金曜日

Page 30: Deep learning

まとめ

✤ Deep Leaningすごいっていうのを伝えたかった

✤ 多層ニューラルネットの問題点をうまく回避している

✤ これから色々なところで使われることになりそう

✤ 特徴量の設計が難しい問題とか?

✤ 詳しくはWebで

12年11月9日金曜日