Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ディープラーニング入門 ~ 画像処理・自然言語処理について ~

991 views

Published on

これからディープラーニングを学ぶ方のための資料を作りました。応用先としては画像処理・自然言語処理に絞って解説を行っています。

Published in: Technology
  • Hello! Get Your Professional Job-Winning Resume Here - Check our website! https://vk.cc/818RFv
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

ディープラーニング入門 ~ 画像処理・自然言語処理について ~

  1. 1. © 2017 NTT DATA Mathematical Systems Inc. ディープラーニング 入門 株式会社NTTデータ数理システム 2017 年度版 大槻 兼資
  2. 2. 2© 2017 NTT DATA Mathematical Systems Inc. 2  イントロ  ディープラーニングとは  ディープラーニングの特徴  ディープラーニングの構成要素  ディープラーニングのチューニング技法  ディープラーニングを用いた画像処理  ディープラーニングを用いた自然言語処理  ディープラーニングを用いたマルチモーダル学習 内容
  3. 3. 3© 2017 NTT DATA Mathematical Systems Inc. 3  イントロ  ディープラーニングとは  ディープラーニングの特徴  ディープラーニングの構成要素  ディープラーニングのチューニング技法  ディープラーニングを用いた画像処理  ディープラーニングを用いた自然言語処理  ディープラーニングを用いたマルチモーダル学習 内容
  4. 4. 4© 2017 NTT DATA Mathematical Systems Inc. 4  機械学習の一手法 ディープラーニングとは 機械学習 ディープラーニング データの背後に潜むパターンを推測 データの理解・未来の予測が目標 脳を模した機械学習手法 画像認識、音声認識、自然言語処理、強化学習 などでブレイクスルーを起こす
  5. 5. 5© 2017 NTT DATA Mathematical Systems Inc. 5  多層のニューラルネットワークを用いて学習  入力層は入力データを受け取る  出力層は出力値を出力 ディープラーニングとは https://www1.doshisha.ac.jp/~mjin/R/Chap_23/23.html 頂点 (ニューロン のモデル化) 辺 (シナプス のモデル化) 0.04: クラス 1 への分類確率 0.83: クラス 2 への分類確率 0.09: クラス n への分類確率 典型的な出力形式例: (n クラス分類の場合)
  6. 6. 6© 2017 NTT DATA Mathematical Systems Inc. 6  画像認識コンペ ILSVRC  2012年、トロント大学の Hinton らの率いるチームが優勝 (AlexNet)  AlphaGO  Google DeepMind による囲碁AI  2016年、トップ棋士イ・セドルに4:1で勝利 注目のきっかけ 圧倒的改善! 年 1位チームの精度 備考 2010 28.2% 2011 25.8% 2012 16.4% AlexNet 2013 11.7% 2014 6.67% GoogleNet (2位: VGG) 2015 3.56% ResNet, ヒト超え! ヒト 5.1% http://www.popularmechanics.com/technology/a19863/ googles-alphago-ai-wins-second-game-go/
  7. 7. 7© 2017 NTT DATA Mathematical Systems Inc. 7  1943年: ニューロン素子モデル登場  1958年: パーセプトロン登場  1986年: 誤差逆伝播法  多層のニューラルネットワークの学習法!  2006年: 層ごとの事前学習  高い汎化能力! ニューラルネットワークのブームと冬の時代 McCulloch--Pitts Rosenblatt 過学習問題, 勾配消失問題などがあって 再び冬の時代, SVMなどの盛り上がり Rumelhart (1層の)単純パーセプトロンは 線形分離不可能なパターンを識別不能問題 いう問題を克服できず…冬の時代へ Hinton, Bengio, LeCun ら ※ 現在では Dropout といったテクニックや、ReLU といった活性化関数、GPU などのハードウェアの進歩、 また大量のデータから学習ができるようになったことなどもあり、事前学習はあまり使われなくなった
  8. 8. 8© 2017 NTT DATA Mathematical Systems Inc. 8  線形モデル, 線形分離不可能なパターン  線形モデル: 線形回帰, ロジスティック回帰, SVM  過学習, 勾配消失問題 キーワード 線形分離可能 線形分離不可能
  9. 9. 9© 2017 NTT DATA Mathematical Systems Inc. 9  ニューロン  単純パーセプトロン (1層のニューラルネット) 単純パーセプトロンは線形分類のみ 𝒙 𝟏 𝒙 𝟐 𝒙 𝟑 𝒛 𝒘 𝟏 𝒘 𝟐 𝒘 𝟑 𝒛 = 𝒇(𝒘 𝟏 𝒙 𝟏 + 𝒘 𝟐 𝒙 𝟐 + 𝒘 𝟑 𝒙 𝟑 + 𝒃) 𝒇: 活性化関数 𝒙 𝟏 𝒙 𝟐 𝒙 𝟑 𝒛 𝟏 𝒛 𝟐 𝒘 𝟏𝟏 𝒘 𝟏𝟐 𝒘 𝟏𝟑 𝒘 𝟐𝟏 𝒘 𝟐𝟐 𝒘 𝟐𝟑 𝒛 𝟏 𝒛 𝟐 = 𝒇 𝒘 𝟏𝟏 𝒘 𝟏𝟐 𝒘 𝟏𝟑 𝒘 𝟐𝟏 𝒘 𝟐𝟐 𝒘 𝟐𝟑 𝒙 𝟏 𝒙 𝟐 𝒙 𝟑 + 𝒃 𝟏 𝒃 𝟐 𝒇 を softmax として損失関数を categorical cross entropy にとると ロジスティック回帰 ・・・ 多クラスにも拡張可 𝑧𝑖 = 𝑓 𝑢𝑖 = exp 𝑤𝑖 T 𝑥 + 𝑏𝑖 exp(𝑤𝑗 T 𝑥 + 𝑏𝑗 )𝑗 softmax データ 𝑥 がクラス 𝑖 に属する条件付き確 率 𝑝 𝐶𝑖|𝑥 をモデル 化 バイアス
  10. 10. 10© 2017 NTT DATA Mathematical Systems Inc. 10  1層から多層にすると非線形へ  それどころか万能近似性を有する!  3層 (隠れ層1層) でも成立  実際上は隠れ層数を増やしたり、 各隠れ層のニューロン数を増やしたりする  モデルの表現力の高さは過学習問題と表裏一体 ディープニューラルネットワークへ 線形分離可能 線形分離不可能 𝒙 𝟏 𝒙 𝟐 𝒙 𝟑 𝒛 𝟏 𝒛 𝟐 任意の連続関数に 対して任意の精度 で近似できる
  11. 11. 11© 2017 NTT DATA Mathematical Systems Inc. 11  過学習とは  学習データには適合するが、未知データに適合しない状況  複雑なモデルほど、より多くの学習データを必要とする 過学習について http:/scikit-learn.org/stable/auto_examples/model_selection/plot_underfitting_overfitting.html/
  12. 12. 12© 2017 NTT DATA Mathematical Systems Inc. 12  過学習とは  学習データには適合するが、未知データに適合しない状況  複雑なモデルほど、より多くの学習データを必要とする モデルの表現力と過学習 表現力 低 (単純) 高 (複雑) 線形モデルなど ディープニューラルネットなど より優れたモデルの可能性を秘めて いるが、過学習しやすくなる (対策) • うまい正則化 (Dropout など) • 大量のデータで学習
  13. 13. 13© 2017 NTT DATA Mathematical Systems Inc. 13  カーネルSVM  カーネルトリックを用いて線形モデルな SVM を非線形分類可能に  低バリアンスで汎化性能高め (過学習を抑えやすい)  ランダムフォレスト  メジャーでお手軽  分散させやすい  勾配ブースティング  いわゆる XGBoost  Kaggle などでデファクトになった強力な分類器  チューニングコスト低め その他の非線形分類器たち
  14. 14. 14© 2017 NTT DATA Mathematical Systems Inc. 14  大量のデータを活かせる  モデルの表現力が高く過学習しやすい一方 大量のデータがあれば活かせる  特徴量の自動獲得  画像, 音声, テキストといった生モノに強い  ex. Googleの猫 (猫に反応するニューロン) ディープラーニングの強み https://googleblog.blogspot.jp/2012/06/using -large-scale-brain-simulations-for.html https://www.slideshare.net/ExtractConf/a ndrew-ng-chief-scientist-at-baidu/30 http://www.deeplearningbook.org/contents /intro.html
  15. 15. 15© 2017 NTT DATA Mathematical Systems Inc. 15  過学習しやすい  大量の学習データが必要  機械学習しようとするときにいつも悩む  膨大な計算機リソースが必要  チューニングが難しい  特徴量を自動獲得する反面、ブラックボックスでもあり 人間が持っている知識を組み込みづらい ディープラーニングの代償
  16. 16. 16© 2017 NTT DATA Mathematical Systems Inc. 16  イントロ  ディープラーニングとは  ディープラーニングの特徴  ディープラーニングの構成要素  ディープラーニングのチューニング技法  ディープラーニングを用いた画像処理  ディープラーニングを用いた自然言語処理  ディープラーニングを用いたマルチモーダル学習 内容
  17. 17. 17© 2017 NTT DATA Mathematical Systems Inc. 17  モデル  ニューラルネットワークモデル (ネットワーク構造, 層数, 活性化関数)  損失関数 (モデルの予測結果が、正解にどれだけ近いかを示すもの)  学習 (確率的勾配降下法)  学習率  ミニバッチサイズ  Optimizer ディープラーニングの構成要素
  18. 18. 18© 2017 NTT DATA Mathematical Systems Inc. 18  ニューロン  (単純)パーセプトロン ニューロンとパーセプトロン 𝒙 𝟏 𝒙 𝟐 𝒙 𝟑 𝒛 𝒘 𝟏 𝒘 𝟐 𝒘 𝟑 𝒛 = 𝒇(𝒖) 𝒇: 活性化関数 𝒙 𝟏 𝒙 𝟐 𝒙 𝟑 𝒖 𝟏 𝒖 𝟐 𝒘 𝟏𝟏 𝒘 𝟏𝟐 𝒘 𝟏𝟑 𝒘 𝟐𝟏 𝒘 𝟐𝟐 𝒘 𝟐𝟑 𝒛 𝟏 𝒛 𝟐 = 𝒇 𝒖 𝟏 𝒖 𝟐 𝒖 𝟏 𝒖 𝟐 = 𝒘 𝟏𝟏 𝒘 𝟏𝟐 𝒘 𝟏𝟑 𝒘 𝟐𝟏 𝒘 𝟐𝟐 𝒘 𝟐𝟑 𝒙 𝟏 𝒙 𝟐 𝒙 𝟑 + 𝒃 𝟏 𝒃 𝟐 𝒛 𝟏 𝒛 𝟐 𝒖 𝒖 = 𝒘 𝟏 𝒙 𝟏 + 𝒘 𝟐 𝒙 𝟐 + 𝒘 𝟑 𝒙 𝟑 + 𝒃 バイアス ベクトルと行列を用いて 𝒖 = 𝑾𝒙 + 𝒃 𝒛 = 𝒇(𝒖)
  19. 19. 19© 2017 NTT DATA Mathematical Systems Inc. 19  ReLU  中間層における活性化関数として現在デファクト  sigmoid  勾配消失問題等により中間層では使われなくなった  出力層では使われる (ロジスティック回帰っぽくなる)  tanh  中間層では使われなくなった 中間層の活性化関数 𝒇 𝒖 = 𝐦𝐚𝐱(𝒖, 𝟎) 𝒇 𝒖 = 𝟏 𝟏 + 𝒆−𝒖 https://techblog.yahoo.co.jp/javascript/deep-learning-with-javascript/ 𝒇 𝒖 = 𝐭𝐚𝐧𝐡 𝒖
  20. 20. 20© 2017 NTT DATA Mathematical Systems Inc. 20  sigmoid  出力値は確率を表す (ロジスティック回帰っぽく)  softmax  多クラス分類問題でよく使う (多クラスロジスティック回帰っぽく)  恒等写像  回帰問題の出力層でよく使う 出力層の活性化関数 𝒇 𝒖 = 𝟏 𝟏 + 𝒆−𝒖 𝒇 𝒖 = 𝒖 𝒖 𝟏 𝒖 𝟐 𝒖 𝟑 𝒛 𝟏 = 𝐞𝐱𝐩 𝒖 𝟏 𝐞𝐱𝐩 𝒖 𝟏 + 𝐞𝐱𝐩 𝒖 𝟐 + 𝐞𝐱𝐩(𝒖 𝟑) 𝐬𝐨𝐟𝐭𝐦𝐚𝐱 𝒛 𝟐 = 𝐞𝐱𝐩 𝒖 𝟐 𝐞𝐱𝐩 𝒖 𝟏 + 𝐞𝐱𝐩 𝒖 𝟐 + 𝐞𝐱𝐩(𝒖 𝟑) 𝒛 𝟑 = 𝐞𝐱𝐩 𝒖 𝟑 𝐞𝐱𝐩 𝒖 𝟏 + 𝐞𝐱𝐩 𝒖 𝟐 + 𝐞𝐱𝐩(𝒖 𝟑) 𝒛 𝟏 + 𝒛 𝟐 + 𝒛 𝟑 = 𝟏, 𝟎 ≤ 𝒛𝒊 ≤ 𝟏 データ 𝑥 がクラス 𝑖 に属する 条件付き確率 𝑝 𝐶𝑖|𝑥 をモデル化 入力 𝒙
  21. 21. 21© 2017 NTT DATA Mathematical Systems Inc. 21  二値分類  損失関数: binary cross entropy  多クラス分類  損失関数: categorical cross entropy 損失関数 part1 𝒖 𝐬𝐢𝐠𝐦𝐨𝐢𝐝 𝒛 = 𝟏 𝟏 + 𝒆−𝒖 𝒖 𝟏 𝒖 𝟐 𝒖 𝟑 𝒛 𝟏 = 𝐞𝐱𝐩 𝒖 𝟏 𝐞𝐱𝐩 𝒖 𝟏 + 𝐞𝐱𝐩 𝒖 𝟐 + 𝐞𝐱𝐩(𝒖 𝟑) 𝐬𝐨𝐟𝐭𝐦𝐚𝐱 𝒛 𝟐 = 𝐞𝐱𝐩 𝒖 𝟐 𝐞𝐱𝐩 𝒖 𝟏 + 𝐞𝐱𝐩 𝒖 𝟐 + 𝐞𝐱𝐩(𝒖 𝟑) 𝒛 𝟑 = 𝐞𝐱𝐩 𝒖 𝟑 𝐞𝐱𝐩 𝒖 𝟏 + 𝐞𝐱𝐩 𝒖 𝟐 + 𝐞𝐱𝐩(𝒖 𝟑) 入力 𝒙 入力 𝒙 𝑥𝑖, 𝑦𝑖 𝑖=1,…,𝑛 : 学習データ 𝑙 𝑤 : 損失関数 𝑦 = 1 のとき 𝒍 𝒘 = 𝐥𝐨𝐠 𝒛(𝒙; 𝒘) 𝑦 = 0 のとき 𝒍 𝒘 = 𝐥𝐨𝐠(𝟏 − 𝒛(𝒙; 𝒘)) これを各 𝑥𝑖, 𝑦𝑖 𝑖=1,…,𝑛 に対して総和 𝑦 = 𝑘 のとき 𝒍 𝒘 = 𝐥𝐨𝐠 𝒛 𝒌(𝒙; 𝒘) これを各 𝑥𝑖, 𝑦𝑖 𝑖=1,…,𝑛 に対して総和
  22. 22. 22© 2017 NTT DATA Mathematical Systems Inc. 22  回帰  損失関数: 二乗誤差 損失関数 part2 𝒖 活性化 𝒛入力 𝒙 𝑥𝑖, 𝑦𝑖 𝑖=1,…,𝑛 : 学習データ 𝑙 𝑤 : 損失関数 𝒍 𝒘 = (𝒚 − 𝒛(𝒙; 𝒘)) 𝟐 これを各 𝑥𝑖, 𝑦𝑖 𝑖=1,…,𝑛 に対して総和
  23. 23. 23© 2017 NTT DATA Mathematical Systems Inc. 23  モデル  ニューラルネットワークモデル (ネットワーク構造, 層数, 活性化関数)  損失関数 (モデルの予測結果が、正解にどれだけ近いかを示すもの  学習 (確率的勾配降下法)  学習率  ミニバッチサイズ  Optimizer ディープラーニングの構成要素 (再掲)
  24. 24. 24© 2017 NTT DATA Mathematical Systems Inc. 24  損失関数は例えば回帰問題では  勾配降下法: 関数の最小値を求める一般的なテク 勾配降下法 𝑥𝑖, 𝑦𝑖 𝑖=1,…,𝑛 : 学習データ 𝑙𝑖 𝑤 : 損失関数 𝐌𝐢𝐧𝐢𝐦𝐢𝐳𝐞 𝒘: 𝑳 𝒘 = 𝒍𝒊(𝒘) 𝒏 𝒊=𝟏 = 𝒚𝒊 − 𝒛𝒊 𝒙; 𝒘 𝟐 𝒏 𝒊=𝟏 • 初期値 𝒘 𝟎 を用意 • 更新式 𝒘 𝒕+𝟏 = 𝒘 𝒕 − 𝝐 𝛁𝑳(𝒘 𝒕 ) に従って 重みを更新していく 学習率
  25. 25. 25© 2017 NTT DATA Mathematical Systems Inc. 25  勾配降下法の更新式を書き直すと  確率的勾配降下法  毎回 𝑛 個のデータのうちの 𝐾 個をサンプリング (𝑖1, 𝑖2, … , 𝑖 𝐾)  望まない局所極小解から抜け出せなくなるリスクを軽減  学習途中でデータを追加できる 確率的勾配降下法 (SGD) 𝒘 𝒕+𝟏 = 𝒘 𝒕 − 𝝐 𝜵𝒍𝒊(𝒘) 𝒏 𝒊=𝟏 𝑥𝑖, 𝑦𝑖 𝑖=1,…,𝑛 : 学習データ 𝑙𝑖 𝑤 : 損失関数 1回の更新で 𝑛 個の全データ必要 ミニバッチサイズ 𝒘 𝒕+𝟏 = 𝒘 𝒕 − 𝝐 𝜵𝒍𝒊 𝒌 (𝒘) 𝑲 𝒌=𝟏 1回の更新では 𝑛 個のデータのうち、 𝑘 個のみを使用
  26. 26. 26© 2017 NTT DATA Mathematical Systems Inc. 26  学習率  小さすぎると学習に時間がかかる  大きすぎると loss が下がりにくくなる  ミニバッチサイズ  10~100程度とすることが多い  多クラス分類問題の場合、クラス数より多くしたい  ただし、クラス数が多すぎる場合は10~100程度に  Optimizer: SGDの亜種たち  AdaGrad  AdaDelta  Adam  RMSprop チューニングパラメータ 𝒘 𝒕+𝟏 = 𝒘 𝒕 − 𝝐 𝜵𝒍𝒊 𝒌 (𝒘) 𝑲 𝒌=𝟏 ミニバッチサイズ 学習率
  27. 27. 27© 2017 NTT DATA Mathematical Systems Inc. 27  イントロ  ディープラーニングとは  ディープラーニングの特徴  ディープラーニングの構成要素  ディープラーニングのチューニング技法  ディープラーニングを用いた画像処理  ディープラーニングを用いた自然言語処理  ディープラーニングを用いたマルチモーダル学習 内容
  28. 28. 28© 2017 NTT DATA Mathematical Systems Inc. 28  データを分割 (7 : 3 くらいに)  学習用データ: モデルの学習  テスト用データ: 実際にうまく分類できるかなどの評価  ハイパーパラメータチューニング  テスト用データに対する精度が最も高くなるようにパラメータ調整した くなる (反則!!!)  チューニングのために validation データを確保することも  学習データ  Validationデータ  テストデータ データの扱い
  29. 29. 29© 2017 NTT DATA Mathematical Systems Inc. 29  2 つの誤差  経験損失: 学習データに対する推論の正解とのズレ  期待損失: 未知のデータに対する推論の正解とのズレ (の期待値)  経験損失を小さくする ことで期待損失を小さくしたい  期待損失は実際は計算できないので、テスト誤差を近 似的に期待損失と考える 機械学習の目的: 期待損失の最小化 過学習とは、経験損失は小さいが 期待損失が大きい状態
  30. 30. 30© 2017 NTT DATA Mathematical Systems Inc. 30  上手くいっていない状況を把握  Underfit? / Overfit? / そもそもデータの限界?  学習データに対してもダメなとき  とにかくまずは過学習させちゃう!  Optimizer, 学習率, ミニバッチサイズ, モデルをより複雑に  学習データに対してはOKでテストデータはダメなとき  正則化  学習データの増やし方  モデルそのものの改善  モデル規模の適性化 ディープラーニングのチューニング
  31. 31. 31© 2017 NTT DATA Mathematical Systems Inc. 31  Underfit?  Overfit (過学習)?  データがそもそも悪い? (ノイズが大きい) 状況把握 https://www.coursera.org/learn/machine-learning/lecture/yCAup/diagnosing-bias-vs-variance
  32. 32. 32© 2017 NTT DATA Mathematical Systems Inc. 32  学習データに対してフィットしないと何も始まらない  この状況で学習データ増やしても改善しない  過学習させてでもフィットさせよう!  学習率の調整!!!  Optimizers を変えてみる  モデルをもっと複雑にしてみる  ミニバッチサイズを変えてみる Underfit  経験損失 (学習データとのズレ) が小さくなっていない  学習データに対しても正しく推定できない
  33. 33. 33© 2017 NTT DATA Mathematical Systems Inc. 33  Early Stopping  各種正則化  モデルの規模の適性化  モデルの改善  学習データを増やす  学習データを正規化  学習データの水増し  学習データの質を疑う Overfit (過学習)  経験損失 (学習データとのズレ) は十分に小さい  期待損失 (未知データとのズレ) は大きい https://www.altus5.co.jp/blog/machine-learning/2016/11/28/over-learning/
  34. 34. 34© 2017 NTT DATA Mathematical Systems Inc. 34  過学習する前に学習を打ち切る  テスト誤差が最小になる点を Early Stopping https://www.altus5.co.jp/blog/machine-learning/2016/11/28/over-learning/
  35. 35. 35© 2017 NTT DATA Mathematical Systems Inc. 35  重みの L2 / L1 正則化  Dropout  Batch Normalization  2015年あたりに提案された強力な正規化層 各種正則化 model = Sequential() model.add( Conv2D(32, kernel_size = (3, 3), activation = ‘relu’, input_shape = input_shape) ) model.add( MaxPooling2D(pool_size = (2, 2)) ) model.add( Dropout(0.25) ) model.add( Flatten() ) model.add( Dense(128, activation = ‘relu’, W_regularizer = l2(0.0001)) ) model.add( Dense(num_classes, activation = ‘softmax’) ) Keras での例
  36. 36. 36© 2017 NTT DATA Mathematical Systems Inc. 36  モデルをシンプルにする  層数を減らすなど  モデル圧縮技術  一度あるモデルで学習したあと、ネットワークの削ってもいい箇所を見 出し、削ったネットワークを用いて再学習  ネットワークが小さくなるだけでなく精度も上がったり モデルの規模の適性化
  37. 37. 37© 2017 NTT DATA Mathematical Systems Inc. 37  現在最先端の研究でしのぎを削っている 「よりよい ネットワークを考えました」 選手権そのもの  より性能がよいと知られているモデルを使う  ResNet  より性能が出ると知られている機構を取り入れる  Attention  Bi-directional LSTM  Batch Normalization  Pointer Networks モデルの改善
  38. 38. 38© 2017 NTT DATA Mathematical Systems Inc. 38  単純に精度が上がることが期待できる とはいえ...  学習データを新たに収集するのは大きな負担  モデルの改善や、学習データの水増しなどの方が重要 であることも多い 学習データを増やす
  39. 39. 39© 2017 NTT DATA Mathematical Systems Inc. 39 画像での例  入力セルの値の平均が0、分散が1になるように テキストでの例  固有名詞など、低頻出単語は unk などのマクロ置換  文中の数値などは num などのマクロ置換する  顔文字などノイズは削る、()などの記号の書式を統一 学習データの正規化 けんちょんは(精神年齢)17歳なの~~ん(⋈◍>◡<◍)。✧♡ unkは(精神年齢)num歳なのーん
  40. 40. 40© 2017 NTT DATA Mathematical Systems Inc. 40  画像にノイズを加えたものを新たなデータに  画像を少し変形をしたものを新たなデータに  左右反転  平行移動  拡大縮小  回転  濃淡を変える  色を少し変える  GAN などで生成した画像を新たなデータに  進行中の研究課題 学習データの水増し (画像編)
  41. 41. 41© 2017 NTT DATA Mathematical Systems Inc. 41  同じ意味の似た言い回しの文を新たに作る  文章要約タスクでは、(元文章, 要約文) のペアに対し て (要約文, 要約文) のペアを新たなデータに 学習データの水増し (テキスト編) 何歳ですか? / 17歳です 何歳なの? / 17歳です 何歳? / 17歳です 何歳でしょうか? / 17歳です
  42. 42. 42© 2017 NTT DATA Mathematical Systems Inc. 42  特に人手で頑張って作ったデータでは誤りも多くある  データに偏りがある場合も多い  場合によってはノイズの大きいデータは省いたり、デー タの正規化を頑張ったりする 学習データの質を疑う
  43. 43. 43© 2017 NTT DATA Mathematical Systems Inc. 43  イントロ  ディープラーニングとは  ディープラーニングの特徴  ディープラーニングの構成要素  ディープラーニングのチューニング技法  ディープラーニングを用いた画像処理  ディープラーニングを用いた自然言語処理  ディープラーニングを用いたマルチモーダル学習 内容
  44. 44. 44© 2017 NTT DATA Mathematical Systems Inc. 44  画像処理: CNN (Convolutional Neural Networks)  自然言語処理: RNN (Recurrent Neural Networks)  マルチモーダル: これらを組み合わせたり 定番手法
  45. 45. 45© 2017 NTT DATA Mathematical Systems Inc. 45  イントロ  ディープラーニングとは  ディープラーニングの特徴  ディープラーニングの構成要素  ディープラーニングのチューニング技法  ディープラーニングを用いた画像処理  ディープラーニングを用いた自然言語処理  ディープラーニングを用いたマルチモーダル学習 内容
  46. 46. 46© 2017 NTT DATA Mathematical Systems Inc. 46  1958年、猫の視覚野に特定の傾きをもつ線分を見せ たときにだけ反応する細胞の発見 (単純型細胞)  単純型細胞で検知した情報を取りまとめて、線分の位 置がずれたりしたものも検出 (複雑型細胞)  さらにこれらの細胞が多層に なって複雑なパターン検出  この階層仮説がヒントに なって CNN が誕生! Hubel--Wiesel の階層仮説 瀧雅人「これならわかる深層学習入門」より 単純型 複雑型
  47. 47. 47© 2017 NTT DATA Mathematical Systems Inc. 47  1958年: Hubel--Wiesel の階層仮説  1979年: Fukushima のネオコグニトロン  単純型細胞と複雑型細胞に対応したユニットを導入  1989年: LeCun らの CNN  現在の CNN とほとんど同じもの  CNN に誤差逆伝播法を適応して高い性能を実現!  2012年: Hinton らが CNN を用いてコンペ優勝  画像認識コンペ ILSVRC Convolutional Neural Networks の歴史
  48. 48. 48© 2017 NTT DATA Mathematical Systems Inc. 48  Convolutional Layer: 単純型細胞に対応  局所的なパターンを抽出  Pooling Layer: 複雑型細胞に対応 (Subsampling)  微小な平行移動に対して不変な特徴を得る Convolutional Neural Networks LeCun et al., Gradient-Based Learning Applied to Document Recognition, 1998.
  49. 49. 49© 2017 NTT DATA Mathematical Systems Inc. 49 Keras での例 model = Sequential() model.add( Conv2D(6, kernel_size = (5, 5), activation = ‘relu’, input_shape = (1, 32, 32)) ) model.add( MaxPooling2D(pool_size = (2, 2)) ) model.add( Conv2D(16, kernel_size = (5, 5), activation = ‘relu’) ) model.add( MaxPooling2D(pool_size = (2, 2)) ) model.add( Dropout(0.25) ) model.add( Flatten() ) model.add( Dense(120, activation = ‘relu’)) ) model.add( Dense(84, activation = ‘relu’)) ) model.add( Dropout(0.5) ) model.add( Dense(10, activation = ‘softmax’) ) LeCun et al., Gradient-Based Learning Applied to Document Recognition, 1998.
  50. 50. 50© 2017 NTT DATA Mathematical Systems Inc. 50  画像認識コンペ ILSVRC  2012年、トロント大学の Hinton らの率いるチームが優勝 (AlexNet)  AlphaGO  Google DeepMind による囲碁AI  2016年、トップ棋士イ・セドルに4:1で勝利 CNN の活躍 圧倒的改善! 年 1位チームの精度 備考 2010 28.2% 2011 25.8% 2012 16.4% AlexNet 2013 11.7% 2014 6.67% GoogleNet (2位: VGG) 2015 3.56% ResNet, ヒト超え! ヒト 5.1% http://www.popularmechanics.com/technology/a19863/ googles-alphago-ai-wins-second-game-go/
  51. 51. 51© 2017 NTT DATA Mathematical Systems Inc. 51  2012年度 ILSVRC 優勝、16.4%  8層、ディープラーニングブームの火付け役 AlexNet (トロント大学, Hintonら)
  52. 52. 52© 2017 NTT DATA Mathematical Systems Inc. 52  2014年度 ILSVRC 優勝、6.67%  22層 GoogleNet Inception
  53. 53. 53© 2017 NTT DATA Mathematical Systems Inc. 53  2014年度 ILSVRC 準優勝、7.32%  19層 VGG (オックスフォード大)
  54. 54. 54© 2017 NTT DATA Mathematical Systems Inc. 54  2015年度 ILSVRC 優勝、3.56%  152層!!!  層をまたぐスキップ構造が特徴 ResNet (Microsoft Research)
  55. 55. 55© 2017 NTT DATA Mathematical Systems Inc. 55  物体認識 (ここまで)  画像が表すものは何か  物体検出  画像から物体の位置も特定  セグメンテーション  画像のピクセルごとにどのクラスに属するかを出力 最近は...  画像生成、画像ドメイン変換  GAN の爆発的流行 画像処理タスク
  56. 56. 56© 2017 NTT DATA Mathematical Systems Inc. 56 物体認識 Krizhevsky et al., ImageNet Classification with Deep Convolutional Neural Networks, 2012.
  57. 57. 57© 2017 NTT DATA Mathematical Systems Inc. 57 物体検出 He et al., Mask R-CNN, 2017.  画像から物体の位置も特定
  58. 58. 58© 2017 NTT DATA Mathematical Systems Inc. 58 テキスト検出 Wang et al., End-to-End Text Recognition with Convolutional Neural Networks, 2012. Alsharif and Pineau., End-to-End Text Recognition with Hybrid HMM Maxout Models, 2013.
  59. 59. 59© 2017 NTT DATA Mathematical Systems Inc. 59 セグメンテーション Badrinarayanan et al., SegNet: A Deep Convolutional Encoder-Decoder Architecture for Robust Semantic Pixel-Wise Labelling, 2015.  画像のピクセルごとにどのクラスに属するかを出力
  60. 60. 60© 2017 NTT DATA Mathematical Systems Inc. 60  2014年、GAN (Goodfellow et al., Generative Adversarial Networks) が発表されて以来爆発的流行  Generator と Discriminator を戦わせて学習  本物と見分けられない偽札作りと、取締り警察との戦いに例えられる 画像生成 Radford et al., Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks, 2015. DCGAN による画像生成
  61. 61. 61© 2017 NTT DATA Mathematical Systems Inc. 61 GAN を利用して画像変換  人の顔をアニメ絵っぽく変換  VAE-GAN など、GAN を利用したドメイン変換は流行 中のホットトピック Tagiman et al., UNSUPERVISED CROSS-DOMAIN IMAGE GENERATION, 2016.
  62. 62. 62© 2017 NTT DATA Mathematical Systems Inc. 62 CycleGAN  「馬をシマウマに、シマウマを馬に」 といった変換 Zhu et al., Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks, 2017.
  63. 63. 63© 2017 NTT DATA Mathematical Systems Inc. 63 pix2pix  ピクセルごとに画像変換する GAN  一世を風靡した PaintsChainer は少し改変したもの Isola et al., Image-to-Image Translation with Conditional Adversarial Networks, 2016. Paint Chainer (https://qiita.com/taizan/items/cf77fd37ec3a0bef5d9d)
  64. 64. 64© 2017 NTT DATA Mathematical Systems Inc. 64 超高解像度な画像生成  そして2017年、高解像度な画像生成が飛躍的進化  画像ラベルマップから高解像度の画像合成!!! Wang et al., High-Resolution Image Synthesis and Semantic Manipulation with Conditional GANs, 2017.
  65. 65. 65© 2017 NTT DATA Mathematical Systems Inc. 65  イントロ  ディープラーニングとは  ディープラーニングの特徴  ディープラーニングの構成要素  ディープラーニングのチューニング技法  ディープラーニングを用いた画像処理  ディープラーニングを用いた自然言語処理  ディープラーニングを用いたマルチモーダル学習 内容
  66. 66. 66© 2017 NTT DATA Mathematical Systems Inc. 66  長さ 𝑇 の時系列データ 𝑥1, 𝑥2, … , 𝑥 𝑇 を扱う  代表例はテキスト  This is an apple.  𝑥1 = “This”, 𝑥2 = “is”, 𝑥3 = “an”, 𝑥4 = “apple  文脈をとらえたい  This is an と来たら、次は形容詞か名詞  RNN (Recurrent Neural Networks) がよく使われる  CNN を使うこともある テキストは系列データ
  67. 67. 67© 2017 NTT DATA Mathematical Systems Inc. 67  ループを持つニューラルネット  𝑧 𝑡 = 𝑓 𝑊in 𝑥 𝑡 + 𝑊𝑠 𝑡−1 , 𝑦 𝑡 = 𝑊out 𝑠 𝑡 Recurrent Neural Networks 𝑊in 𝑥𝑡 𝑦𝑡 𝑠𝑡−1 出力 入力 中間出力 𝑠𝑡 𝑊 𝑊out
  68. 68. 68© 2017 NTT DATA Mathematical Systems Inc. 68  ループを展開  𝑧 𝑡 = 𝑓 𝑊in 𝑥 𝑡 + 𝑊𝑠 𝑡−1 , 𝑦 𝑡 = 𝑊out 𝑠 𝑡 Recurrent Neural Networks 𝑊in 𝑊in 𝑊in 𝑦𝑡−1 𝑦𝑡 𝑦𝑡+1 𝑊in 𝑥𝑡 𝑦𝑡 𝑠𝑡−1 出力 入力 中間出力 𝑠𝑡 𝑊 𝑊out 𝑊out𝑊out𝑊out 𝑊 is an apple.
  69. 69. 69© 2017 NTT DATA Mathematical Systems Inc. 69  RNN の大きな弱点  文章が長いと、最初の方のことを忘れたり、最初の方のことの情報が 強すぎて後の方のことが頭に入ってこなかったり 改良された亜種たち  LSTM (Long Short-Term Memory)  GRU (Gated Recurrent Unit) RNN の亜種たち
  70. 70. 70© 2017 NTT DATA Mathematical Systems Inc. 70  忘却ゲートを用意して情報伝達量を調整する  短期記憶メモリのようなものを用意する LSTM Graves, Generating Sequence with Recurrent Neural Networks, 2014.
  71. 71. 71© 2017 NTT DATA Mathematical Systems Inc. 71  最後のベクトル 𝑦fin に softmax かけて文書分類など RNN の初期の使い方の一例 𝑊in 𝑊in 𝑊in 𝑦𝑡−1 𝑦𝑡 𝑦𝑡+1 𝑊in 𝑥𝑡 𝑦𝑡 𝑠𝑡−1 出力 入力 中間出力 𝑠𝑡 𝑊 𝑊out 𝑊out𝑊out𝑊out 𝑊 is an 𝑦fin 𝑥fin 𝑊in 𝑊out apple. <eos> 入力文の終わりを表す
  72. 72. 72© 2017 NTT DATA Mathematical Systems Inc. 72  記事のトピック分類など  {政治, 技術, 国内} の 3 クラス分類を判別 Keras での例 EMBEDDING_DIM = 256 # 埋め込みベクトルサイズ MAX_LENGTH = 100 # 入力される文章の長さ (の最大値) NUM_VOCAB = 1000 # 語彙数 # 2 層の GRU model = Sequential() model.add( Embedding(NUM_VOCAB, EMBEDDING_DIM, input_shape = (MAX_LENGTH,)) ) model.add( GRU(EMBEDDING_DIM, return_sequences = True) ) # y_1, y_2, ..., y_fin を次の層へ model.add( GRU(EMBEDDING_DIM, return_sequences = False) ) # y_fin のみを取り出す model.add( Dropout(0.25) ) model.add( Dense(3, activation = ‘softmax’) )
  73. 73. 73© 2017 NTT DATA Mathematical Systems Inc. 73  文章の特徴抽出  履歴情報を用いたレコメンデーション  音声認識  古くから深層学習が成功していた分野で、RNN が基盤技術として用いら れることも多いです  曲生成、演奏  最新の Deep Voice 3 については CNN ベース  文章生成  言語モデル構築から小説生成まで  参考記事: http://karpathy.github.io/2015/05/21/rnn-effectiveness/  お絵描き、演奏  Sketch RNN https://experiments.withgoogle.com/ai/sketch-rnn-demo  Performance RNN https://magenta.tensorflow.org/performance-rnn その他の RNN の使い道
  74. 74. 74© 2017 NTT DATA Mathematical Systems Inc. 74  分類だけでない!系列データから系列データへの学習  さらに踏み込んで 「なんらかのデータをベクトルに埋め込んだもの」 か ら系列データへの学習も (マルチモーダルへの道)  機械翻訳 (日本語から英語へ)  対話 (言われたことから発話へ)  文章要約 (オリジナル文から要約文へ)  Question Answering (質問文から応答文へ)  画像キャプション生成 (画像から画像キャプションへ)  Visual Question Answering (画像を見て応答)  人間の話し言葉を理解して対話 さらなる RNN の現代的な使い方
  75. 75. 75© 2017 NTT DATA Mathematical Systems Inc. 75  まず RNN を用いて元の文章をベクトルに埋め込む  埋め込まれたベクトルをコンテキストに持ちながら再び RNN を回して 「次の単語を予測する」 を繰り返す Sequence to Sequence 学習 Sutskever et al., Sequence to Sequence Learning with Neural Networks, 2014.
  76. 76. 76© 2017 NTT DATA Mathematical Systems Inc. 76  seq2seq を機械翻訳に応用  昨年末 Google 翻訳がこれになって話題に 機械翻訳 Google’s Neural Machine Translation System: Bridging the Gap between Human and Machine Translation, 2016.
  77. 77. 77© 2017 NTT DATA Mathematical Systems Inc. 77  seq2seq を対話に応用  Microsoft の女子高生AI りんななども 対話 Vinyals et al., A Neural Conversational Model, 2015. http://www.itmedia.co.jp/mobile/articles/1606/12/news005.html
  78. 78. 78© 2017 NTT DATA Mathematical Systems Inc. 78  seq2seq を文章要約に応用  機械翻訳が成熟し始めた今、かなりのホットトピック 文章要約 Nallapati et al., Abstractive Text Summarization Using Sequence-to-Sequence RNNs and Beyond, 2015.
  79. 79. 79© 2017 NTT DATA Mathematical Systems Inc. 79  seq2seq はコンテキストベクトルがあればいいので、 元系列が文章でなくてもいい 画像キャプション生成 (マルチモーダル) Vinyals et al., Show and Tell: A Neural Image Caption Generator, 2014.
  80. 80. 80© 2017 NTT DATA Mathematical Systems Inc. 80 画像キャプション生成 (マルチモーダル) Vinyals et al., Show and Tell: A Neural Image Caption Generator, 2014.
  81. 81. 81© 2017 NTT DATA Mathematical Systems Inc. 81 比較的最近の自然言語処理のトレンド Attention Bahdana, ICLR 2015 Memory Networks Sukhbaatar et al., NIPS 2015 Pointer Networks Vinyals et al., NIPS 2015 QA 系 組合せ最適化系 これらを基にした自然言語処理系 研究が爆発的流行 Seq2Seq Sutskever, NIPS 2014
  82. 82. 82© 2017 NTT DATA Mathematical Systems Inc. 82 Attention … 質問文 Before … 回答文 (途中) 次 の 単 語 個 私は20 君の年齢は幾つですか? After Bahdanau et al., Neural Machine Translation by Jointly Learning to Align and Translate, 2014.
  83. 83. 83© 2017 NTT DATA Mathematical Systems Inc. 83 Attention … 質問文 Before … 回答文 (途中) 次 の 単 語 個 私は20 君の年齢は幾つですか? … After … 回答文 (途中) 次 の 単 語 歳 私は20 質問文 君の年齢は幾つですか? Bahdanau et al., Neural Machine Translation by Jointly Learning to Align and Translate, 2014. ・ 質問文の強く着目する箇所を学習 ・ 回答文の流れで時間変化
  84. 84. 84© 2017 NTT DATA Mathematical Systems Inc. 84 比較的最近の自然言語処理のトレンド Attention Bahdana, ICLR 2015 Memory Networks Sukhbaatar et al., NIPS 2015 Pointer Networks Vinyals et al., NIPS 2015 QA 系 組合せ最適化系 これらを基にした自然言語処理系 研究が爆発的流行 Seq2Seq Sutskever, NIPS 2014
  85. 85. 85© 2017 NTT DATA Mathematical Systems Inc. 85  Memory Networks 研究の源流  外部メモリ的 (Attention は内部メモリ的)  ソートアルゴリズムなどが学習できた Neural Turing Machine メモリ全体から attention 𝒓 𝒕 ← 𝒘 𝒕 𝒊 𝑴𝒕(𝒊) 𝑵 𝒊=𝟏 チューリングマシンのテープ 𝑴 𝒕(𝒊): 𝑵 個の 𝑴 次元ベクトル ※通常のチューリングマシンでは 読み込むテープの箇所は1か所 なんらかのニューラルネットワーク で重み 𝒘 𝒕 𝒊 を生成 書き込み (LSTM を模倣) 𝑴 𝒕 𝒊 ← 𝑴 𝒕−𝟏 𝒊 𝟏 − 𝒘 𝒕 𝒊 𝒆 𝒕 + 𝒘 𝒕 𝒊 𝒂 𝒕 ※ 𝑴𝒕−𝟏 𝒊 𝟏 − 𝒘 𝒕 𝒊 𝒆 𝒕 で前回の記憶 を少し忘れさせて、今回の記憶として 𝒘 𝒕 𝒊 𝒂 𝒕 を加算 ※ 実際に出力するのは 𝒘 𝒕 𝒊 を更新するためのベクトル Graves et al., Neural Turing Machines, 2014.
  86. 86. 86© 2017 NTT DATA Mathematical Systems Inc. 86  ごく簡単な QA がこなせる  下の図は一層版, 多層化できる  RNN っぽくなる (広域メモリ付き) End-To-End Memory Networks Sukhbaatar et al., End-To-End Memory Networks, 2015. Input の各列 𝒎𝒊 は 各入力文を情報記憶用 に埋め込んだベクトル ① 質問文 𝒒 を、Input のどの入力 文を重点的に見るべきかを示す ベクトル 𝒑 へ変換 Input の各列 𝒄𝒊 は 各入力文を答え生成用 に埋め込んだベクトル ② 𝒑 による attention ③ 𝒐 に埋め込まれた 答え情報を形にする
  87. 87. 87© 2017 NTT DATA Mathematical Systems Inc. 87  Before: 文章は文の集まり  After : 文章は文の流れ (ヒントになる文章を順次推定) Dynamic Memory Networks Kumar et al., Ask Me Anything: Dynamic Memory Networks for Natural Language Processing, 2015.
  88. 88. 88© 2017 NTT DATA Mathematical Systems Inc. 88  今までの Attention: 一方向  「質問文」 を読んで、「文章」 のどこが大事か  進化した Co-Attention: 双方向  「質問文」 を読んで、「文章」 のどこが大事か  「文章」 を読みながら、「質問文」 の聞き所を掴む Dynamic Coattention Networks Xiong et al., Ask Me Anything: Dynamic Memory Networks for Natural Language Processing, 2016.
  89. 89. 89© 2017 NTT DATA Mathematical Systems Inc. 89 比較的最近の自然言語処理のトレンド Attention Bahdana, ICLR 2015 Memory Networks Sukhbaatar et al., NIPS 2015 Pointer Networks Vinyals et al., NIPS 2015 QA 系 組合せ最適化系 これらを基にした自然言語処理系 研究が爆発的流行 Seq2Seq Sutskever, NIPS 2014
  90. 90. 90© 2017 NTT DATA Mathematical Systems Inc. 90  「入力列の中から、順番に適切なものを Attention し て選んでいく」 というフレームワーク  元々は、組合せ最適化問題を解かせるために誕生  現在では、NLP 系で盛んに使われる技術に!! Pointer Networks Vinyals et al., Pointer Networks, 2015.
  91. 91. 91© 2017 NTT DATA Mathematical Systems Inc. 91  「入力列の中から、順番に適切なものを Attention し て選んでいく」 というフレームワーク  元々は、組合せ最適化問題を解かせるために誕生  現在では、NLP 系で盛んに使われる技術に!! Pointer Networks Vinyals et al., Pointer Networks, 2015.
  92. 92. 92© 2017 NTT DATA Mathematical Systems Inc. 92  自然言語処理タスクにおいて unk や固有名詞に強く!  従来の seq2seq (with attention) に元の文章からの単 語抜き出し機構を追加  もっと一般に 「データベースを参照した対話」 にも cf. A Neural Knowledge Language Model (Ahn et al., arXiv 2016) Pointing the Unknown Words Gulcehre et al., Pointing the Unknown Words, 2016.
  93. 93. 93© 2017 NTT DATA Mathematical Systems Inc. 93  “Pointing the Unknown Words” を先駆けとして、 seq2seq と pointer-networks を組合せるテクが流行  文章要約において強力  データベース参照しながらのチャットボットにも使えそう Pointer-Generator See et al., Get To The Point: Summarization with Pointer-Generator Networks, 2017. sigmoid で分岐など
  94. 94. © 2017 NTT DATA Mathematical Systems Inc.

×