数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部...

44
dots.DeepLearning #01 # dotsdl 2016/12/21 dots.DeepLearning#01

Transcript of 数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部...

Page 1: 数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!

dots.DeepLearning #01# dotsdl

2016/12/21 dots.DeepLearning#01

Page 2: 数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!

自己紹介• 名前• 舛岡英人 (@hidetomasuoka)

• 略歴• 産業能率大学 経営情報学部 卒業• 株式会社ソピア(現アクセンチュア)入社

• 中小企業向け ERP のスクラッチ開発を提案からサポートまですべてを担当• 株式会社 Preferred Infrastructure 入社

• 各製品の提案からサポートまですべてを担当• 株式会社 Intimate Merger に出向

• 株式会社 レトリバ創業メンバー

Page 3: 数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!

自己紹介• 名前• 舛岡英人 (@hidetomasuoka)

• 略歴• 産業能率大学 経営情報学部 卒業• 株式会社ソピア(現アクセンチュア)入社

• 中小企業向け ERP のスクラッチ開発を提案からサポートまですべてを担当• 株式会社 Preferred Infrastructure 入社

• 各製品の提案からサポートまですべてを担当• 株式会社 Intimate Merger に出向

• 株式会社 レトリバ創業メンバー

ほぼほぼ文系!

Page 4: 数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!

自己紹介• 社外活動• PyConJP 2016 スタッフ

• 招待講演担当• Chainer OSS 活動

• community イベントのリード

Page 5: 数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!

コミュニティを立ち上げた背景• Chainer Meetup を 4 回運営してきて、様々な人が参加してくれた。• が、全員を満足できる勉強会を運営することができなかった

Page 6: 数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!

なぜみんな満足できないのか?• 参加者の前提知識がばらばら• 前提知識を定義することが難しい• Deep Learning を知ってるとは?

• Deep Learning の事例を話すとデータ依存だったりするので、ふんわりした話になる• フレームワークの話ではなく Deep Learning の話しかしてない• もっとディープな話がしたいが、だれができるかわからない

Page 7: 数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!

対象を大きく分けることにした• Chainer Meetup• Chainer を使ってる人• 自分でネットワークを書いたり実験を回すことができる人• 数式がでてきてもコワくない人

• dots.DeepLearning 部• Deep Learning をこれから勉強する人• 数式が多少わからなくても OK• フレームワークの縛りは無し

Page 8: 数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!

dots.DeepLearning 部• Deep Learning でできること、できないことをみんなでシェアする場• Deep Learning の知識を自信持って他の人に話せるように勉強する場• 自分の目的にあったフレームワークやネットワーク例を選べるようになること

Page 9: 数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!

いまある機械学習のイメージ東洋経済オンライン文系エンジニアに「機械学習」は難しすぎる!ディープラーニングは難しい数式がいっぱい

http://toyokeizai.net/articles/-/132197

Page 10: 数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!

実際…

Page 11: 数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!

数式が理解できなくても Deep Learningができるのか• (ある程度は ) できます!• 自分でネットワークを書いたり、チューニングをする段階では絶対に必要• まず、数式を理解するのではなく、 Deep Learning に触れながら必要な数式を理解する

Page 12: 数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!

ディープラーニングブームの背景

Page 13: 数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!

機械学習の典型的なプロセス

13

(0, 1, 2.5, -1, …)(1, 0.5, -2, 3, …)(0, 1, 1.5, 2, …)

特徴ベクトル

グラフィカルモデル

分類 / 回帰SVM/LogReg/PACW/ALOW/Naïve Bayes/CNB/DT

RF/ANN…

クラスタリングK-means/Spectral Clustering/MMC/L

SI/LDA/GM…

構造分析HMM/MRF/CRF…

分野に依存しない抽象化データ 様々な手法理論を適用

機械学習

文書

画像 センサー

行動履歴

様々な様式の生データ

特徴抽出

Page 14: 数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!

文章からの特徴抽出• 例:固有名詞を取り出してニュース記事の特徴とする

14

2020年の東京五輪・パラリンピックの主会場となる新国立競技場をめぐり、安倍晋三首相は、総工費が2520億円に膨らんだ建設計画を見直す考えを17日に表明する方向で最終調整に入った。競技場を19年のラグビーワールドカップ(W杯)の主会場にする計画は断念する。同日、東京五輪・パラリンピック組織委員会会長の森喜朗元首相と会談し、計画見直しへの協力を求める方針だ。

2020年の東京五輪・パラリンピックの主会場となる新国立競技場をめぐり、安倍晋三首相は、総工費が2520億円に膨らんだ建設計画を見直す考えを17日に表明する方向で最終調整に入った。競技場を19年のラグビーワールドカップ(W杯)の主会場にする計画は断念する。同日、東京五輪・パラリンピック組織委員会会長の森喜朗元首相と会談し、計画見直しへの協力を求める方針だ。単語 頻度東京五輪 2パラリンピック 2新国立競技場 1安倍晋三 1・・・ ・・・

機械学習アルゴリズム

文章からの固有名詞の抽出は固有表現抽出( Named Entity Recognition; NER )という

Page 15: 数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!

画像からの特徴抽出• 例: Histogram of Gradient (HoG 特徴量 )

http://www.vlfeat.org/overview/hog.html

機械学習アルゴリズム

各ピクセルでの勾配を小ブロック(セル)単位でまとめてヒストグラム化

各セルでのヒストグラムを(正規化して)すべてまとめる

Page 16: 数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!

精度をあげるのが職人技•精度をあげるためには特徴抽出が重要•特徴抽出は難しい• タスクごとに最適な特徴抽出方法は異なる• 機械学習コンテストは最後は特徴抽出のチューニング勝負

• これまで様々な特徴抽出方法が研究されてきた• 自然言語: n-gram/BoW 画像: SIFT/SURF/HOG/PHOW/BoVW• その他にも様々なヒューリスティックが存在

•精度をあげるにはデータに合わせたチューニングが必要

Page 17: 数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!

17

2012 年画像認識コンテストでDeep Learning を用いたチームが優勝

→ILSVRC2012優勝チーム Supervison の結果 [Krizhevsky+ ‘12]

衝撃的な出来事• 限界と思われた認識エラーを 4割も減らした (26%→16%)• 特徴抽出を行わず、生の画素を NN に与えた翌年の同コンテストの上位チームはほぼ Deep Learning ベースの手法

Page 18: 数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!

Neural Net ブーム• 様々なコンペティションで DL が既存手法を凌駕• 16%(‘12) → 11%(‘13) → 6.6%(’14) → 4.8%('15) → 2.9%

('16)• 各企業が DL研究者の獲得競争• Google/FaceBook/Microsoft/Baidu

• 実サービスも DL ベースに置き換えられる• Siri/Google 画像検索

GoogLeNet のアーキテクチャ↓http://research.google.com/archive/unsupervised_icml2012.html

Google Brain による猫認識↑[Le, Ng, Jeffrey+ ’12]

Page 19: 数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!

音声認識の分野では

10 年間の停滞していたが、DL登場により劇的に精度が向上した

Page 20: 数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!

ニューラルネットワークが利用されたタスクデータ 画像タスク カテゴリ

分類顔検出 生成 ゲーム AI シーン認識

動画 画像 +自然言語

音声 + 動画カテゴリ分類

動作認識 キャプション生成

表現学習 音声認識

自然言語 音声 化合物表現学習 翻訳 質問応答 会話検出 QSAR

( 活性予測 )

応用分野音声検索画像キュレーションe コマース自動運転ロボティックス医療画像マーケティング

Page 21: 数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!

ディープラーニング導入

Page 22: 数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!

x1

xN

・・・・・・

h1

hH

・・・・

ニューラルネットワーク(多層パーセプトロン)

kM

k1

yM

y1

ForwardBackward

・・ ・・

入力層 隠れ層 出力層文書

画像

センサー

チューリップ

異常確率 50%

カテゴリ:政治

Page 23: 数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!

Forward Propagation (順伝播)• 入力層(グレー)に値を与え、順方向に計算を進める• Forward計算の過程で損失

(Loss) とエラーを計算する• 通常エラーは計算グラフの最後のユニット(緑)での値を指す• 計算グラフの途中の値をエラーに加えても良い

• Loss は各ユニットの値や各レイヤーのパラメータの関数になっている

Forward

Page 24: 数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!

Backward Propagation (誤差逆伝播)•計算グラフの末端のユニット(緑)にエラーを与え、逆方向に計算を進める• Backward の過程で各パラメータについてのエラーを計算する

Backward

Page 25: 数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!

x1

xN

・・・・・・

h1

hH

・・・・

ニューラルネットワーク(多層パーセプトロン)

kM

k1

yM

y1

ForwardBackward

・・ ・・

入力層 隠れ層 出力層文書

画像

センサー

チューリップ

異常確率 50%

カテゴリ:政治

Page 26: 数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!

実際は

Page 27: 数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!

ディープラーニングの応用例Deep Q Network* (深層学習で強化学習)

* Mnih, Volodymyr, et al. "Human-level control through deep reinforcement learning." Nature 518.7540 (2015): 529-533.** Caffe で Deep Q-Network を実装して深層強化学習してみた http://d.hatena.ne.jp/muupan/20141021/1413850461*** PFI インターン 2014 最終発表 http://www.ustream.tv/recorded/5315339927

Page 28: 数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!

ディープラーニングの応用例画像生成• 文字を”描く“ニューラルネット• 入力と同じ「雰囲気」の数字が出力されている。同じ数字でも、最左画像と生成画像は異なる事に注意

入力 生成結果

Kingma, Diederik P., et al. "Semi-supervised learning with deep generative models." Advances in Neural Information Processing Systems. 2014. の実験を弊社で再現

•絵を”描く“ニューラルネットhttp://soumith.ch/eyescream/

Page 29: 数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!

典型的な Neural Network(多層パーセプトロン)

x1

xN

・・・・・・

h1

hH

・・・・

kM

k1

yM

y1

f1f2 f3

W2/b2W1/b1

tM

t1

損失関数で評価正解ラベル入力

ForwardBackward

出力

・・ ・・ ・・ 学習すべきパラメータ• W1:1層目のパラメータ行列• b1:1層目のバイアス項 • W2:2層目のパラメータ行列• b2:2層目のバイアス項

Forward更新式• h = f1(x) = Sigmoid(W1x+b1)• k = f2(h) = Sigmoid(W2h+b2)• y = f3(k) = SoftMax(k) f3i(k) = exp(ki)/Σ_{j} exp(kj)

Page 30: 数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!

DeepLearning フレームワークの構成要素変数( n次元配列)層計算グラフ最適化アルゴリズム

順伝播逆伝播

ニューラルネット変数 層

正解データも入力の一部とみなすと見通しが良い

途中で分岐してもよい(一般にはDAG)

Page 31: 数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!

minibatch j

訓練の流れEpoch 1

Epoch N

Epoch 2

Epoch i

Epoch i

全訓練データをシャッフルminibatch 1

Forward

minibatch 2

パラメータ更新

時刻• Epoch (Iteration) :全訓練データを 1巡する事→ 各訓練データは Net に N 回与える• Solver : Net を訓練するモジュール• minibatch :少数の訓練データをまとめたもの

31

パラメータ更新

minibatch jBackward

Page 32: 数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!

Deep Learning フレームワーク

出展 : http://www.slideshare.net/NVIDIAJapan/ss-64265095

Page 33: 数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!

Deep Learning フレームワーク

出展 : http://www.slideshare.net/NVIDIAJapan/ss-64265095

Page 34: 数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!

フレームワーク戦争• 各研究機関・企業が Deep Learning のフレームワークを作成して、オープンソフトウェアとして公開している。• まだまだ、試行錯誤を続けないといけない分野なので、オープンソフトウェアとして公開をして、ソフトウェアとしてのスピードを高めている。

Page 36: 数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!

第 1 回のテーマ• 事例を聞いてみる!•つらいとこや自分できる所をしる!

Page 37: 数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!

まとめ• 部活動立ち上げの背景• ディープラーニングブームの背景• ディープラーニングの概要

Page 38: 数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!

ディープラーニング学ぶにはどうするか?

Page 39: 数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!

ディープラーニングを学ぶことができるサイト• Chainer• http://docs.chainer.org/en/stable/tutorial/index.html• https://github.com/hido/chainer-handson

• NVIDIA • https://nvidia.qwiklab.com/tags/Deep%20Learning

• Google• https://www.tensorflow.org/versions/r0.11/tutorials/index.html

Page 40: 数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!

NVIDIA の DeepLearning コース

出展 : http://www.slideshare.net/NVIDIAJapan/ss-64265095

Page 41: 数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!

AWS等で Deep Learning 使う場合• NVIDIA が提供する AMI で学習することをおすすめします!• CUDA のインストールではまります…

Page 42: 数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!

AWS等で Deep Learning 使う場合

Page 43: 数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!

AWS等で Deep Learning 使う場合• また NVIDA Docker を使う• https://github.com/NVIDIA/nvidia-docker

Page 44: 数式がわからなくたってDeep Learningやってみたい!人集合- dots. DeepLearning部 発足!

今後の勉強会•ハンズオン形式と発表形式の 2 パターンで行うことを考えています。•ハンズオン• 各フレームワークのチュートリアルをみんなでやってみる

• 発表形式• ハンズオンなどで得た知見を発表する場