© 2017 NTT DATA Mathematical Systems Inc.
ディープラーニング
入門
株式会社NTTデータ数理システム
2017 年度版
大槻 兼資
2© 2017 NTT DATA Mathematical Systems Inc.
2
 イントロ
 ディープラーニングとは
 ディープラーニングの特徴
 ディープラーニングの構成要素
 ディープラーニングのチューニング技法
 ディープラーニングを用いた画像処理
 ディープラーニングを用いた自然言語処理
 ディープラーニングを用いたマルチモーダル学習
内容
3© 2017 NTT DATA Mathematical Systems Inc.
3
 イントロ
 ディープラーニングとは
 ディープラーニングの特徴
 ディープラーニングの構成要素
 ディープラーニングのチューニング技法
 ディープラーニングを用いた画像処理
 ディープラーニングを用いた自然言語処理
 ディープラーニングを用いたマルチモーダル学習
内容
4© 2017 NTT DATA Mathematical Systems Inc.
4
 機械学習の一手法
ディープラーニングとは
機械学習
ディープラーニング
データの背後に潜むパターンを推測
データの理解・未来の予測が目標
脳を模した機械学習手法
画像認識、音声認識、自然言語処理、強化学習
などでブレイクスルーを起こす
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© 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© 2017 NTT DATA Mathematical Systems Inc.
7
 1943年: ニューロン素子モデル登場
 1958年: パーセプトロン登場
 1986年: 誤差逆伝播法
 多層のニューラルネットワークの学習法!
 2006年: 層ごとの事前学習
 高い汎化能力!
ニューラルネットワークのブームと冬の時代
McCulloch--Pitts
Rosenblatt
過学習問題, 勾配消失問題などがあって
再び冬の時代, SVMなどの盛り上がり
Rumelhart
(1層の)単純パーセプトロンは
線形分離不可能なパターンを識別不能問題
いう問題を克服できず…冬の時代へ
Hinton, Bengio, LeCun ら
※ 現在では Dropout といったテクニックや、ReLU といった活性化関数、GPU などのハードウェアの進歩、
また大量のデータから学習ができるようになったことなどもあり、事前学習はあまり使われなくなった
8© 2017 NTT DATA Mathematical Systems Inc.
8
 線形モデル, 線形分離不可能なパターン
 線形モデル: 線形回帰, ロジスティック回帰, SVM
 過学習, 勾配消失問題
キーワード
線形分離可能 線形分離不可能
9© 2017 NTT DATA Mathematical Systems Inc.
9
 ニューロン
 単純パーセプトロン (1層のニューラルネット)
単純パーセプトロンは線形分類のみ
𝒙 𝟏
𝒙 𝟐
𝒙 𝟑
𝒛
𝒘 𝟏
𝒘 𝟐
𝒘 𝟑
𝒛 = 𝒇(𝒘 𝟏 𝒙 𝟏 + 𝒘 𝟐 𝒙 𝟐 + 𝒘 𝟑 𝒙 𝟑 + 𝒃)
𝒇: 活性化関数
𝒙 𝟏
𝒙 𝟐
𝒙 𝟑
𝒛 𝟏
𝒛 𝟐
𝒘 𝟏𝟏
𝒘 𝟏𝟐
𝒘 𝟏𝟑
𝒘 𝟐𝟏
𝒘 𝟐𝟐
𝒘 𝟐𝟑
𝒛 𝟏
𝒛 𝟐
= 𝒇
𝒘 𝟏𝟏 𝒘 𝟏𝟐 𝒘 𝟏𝟑
𝒘 𝟐𝟏 𝒘 𝟐𝟐 𝒘 𝟐𝟑
𝒙 𝟏
𝒙 𝟐
𝒙 𝟑
+
𝒃 𝟏
𝒃 𝟐
𝒇 を softmax として損失関数を categorical cross entropy にとると
ロジスティック回帰 ・・・ 多クラスにも拡張可
𝑧𝑖 = 𝑓 𝑢𝑖 =
exp 𝑤𝑖
T
𝑥 + 𝑏𝑖
exp(𝑤𝑗
T
𝑥 + 𝑏𝑗 )𝑗
softmax
データ 𝑥 がクラス 𝑖
に属する条件付き確
率 𝑝 𝐶𝑖|𝑥 をモデル
化
バイアス
10© 2017 NTT DATA Mathematical Systems Inc.
10
 1層から多層にすると非線形へ
 それどころか万能近似性を有する!
 3層 (隠れ層1層) でも成立
 実際上は隠れ層数を増やしたり、
各隠れ層のニューロン数を増やしたりする
 モデルの表現力の高さは過学習問題と表裏一体
ディープニューラルネットワークへ
線形分離可能
線形分離不可能
𝒙 𝟏
𝒙 𝟐
𝒙 𝟑
𝒛 𝟏
𝒛 𝟐 任意の連続関数に
対して任意の精度
で近似できる
11© 2017 NTT DATA Mathematical Systems Inc.
11
 過学習とは
 学習データには適合するが、未知データに適合しない状況
 複雑なモデルほど、より多くの学習データを必要とする
過学習について
http:/scikit-learn.org/stable/auto_examples/model_selection/plot_underfitting_overfitting.html/
12© 2017 NTT DATA Mathematical Systems Inc.
12
 過学習とは
 学習データには適合するが、未知データに適合しない状況
 複雑なモデルほど、より多くの学習データを必要とする
モデルの表現力と過学習
表現力
低
(単純)
高
(複雑)
線形モデルなど ディープニューラルネットなど
より優れたモデルの可能性を秘めて
いるが、過学習しやすくなる
(対策)
• うまい正則化 (Dropout など)
• 大量のデータで学習
13© 2017 NTT DATA Mathematical Systems Inc.
13
 カーネルSVM
 カーネルトリックを用いて線形モデルな SVM を非線形分類可能に
 低バリアンスで汎化性能高め (過学習を抑えやすい)
 ランダムフォレスト
 メジャーでお手軽
 分散させやすい
 勾配ブースティング
 いわゆる XGBoost
 Kaggle などでデファクトになった強力な分類器
 チューニングコスト低め
その他の非線形分類器たち
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© 2017 NTT DATA Mathematical Systems Inc.
15
 過学習しやすい
 大量の学習データが必要
 機械学習しようとするときにいつも悩む
 膨大な計算機リソースが必要
 チューニングが難しい
 特徴量を自動獲得する反面、ブラックボックスでもあり
人間が持っている知識を組み込みづらい
ディープラーニングの代償
16© 2017 NTT DATA Mathematical Systems Inc.
16
 イントロ
 ディープラーニングとは
 ディープラーニングの特徴
 ディープラーニングの構成要素
 ディープラーニングのチューニング技法
 ディープラーニングを用いた画像処理
 ディープラーニングを用いた自然言語処理
 ディープラーニングを用いたマルチモーダル学習
内容
17© 2017 NTT DATA Mathematical Systems Inc.
17
 モデル
 ニューラルネットワークモデル (ネットワーク構造, 層数, 活性化関数)
 損失関数 (モデルの予測結果が、正解にどれだけ近いかを示すもの)
 学習 (確率的勾配降下法)
 学習率
 ミニバッチサイズ
 Optimizer
ディープラーニングの構成要素
18© 2017 NTT DATA Mathematical Systems Inc.
18
 ニューロン
 (単純)パーセプトロン
ニューロンとパーセプトロン
𝒙 𝟏
𝒙 𝟐
𝒙 𝟑
𝒛
𝒘 𝟏
𝒘 𝟐
𝒘 𝟑 𝒛 = 𝒇(𝒖)
𝒇: 活性化関数
𝒙 𝟏
𝒙 𝟐
𝒙 𝟑
𝒖 𝟏
𝒖 𝟐
𝒘 𝟏𝟏
𝒘 𝟏𝟐
𝒘 𝟏𝟑
𝒘 𝟐𝟏
𝒘 𝟐𝟐
𝒘 𝟐𝟑
𝒛 𝟏
𝒛 𝟐
= 𝒇
𝒖 𝟏
𝒖 𝟐
𝒖 𝟏
𝒖 𝟐
=
𝒘 𝟏𝟏 𝒘 𝟏𝟐 𝒘 𝟏𝟑
𝒘 𝟐𝟏 𝒘 𝟐𝟐 𝒘 𝟐𝟑
𝒙 𝟏
𝒙 𝟐
𝒙 𝟑
+
𝒃 𝟏
𝒃 𝟐
𝒛 𝟏
𝒛 𝟐
𝒖
𝒖 = 𝒘 𝟏 𝒙 𝟏 + 𝒘 𝟐 𝒙 𝟐 + 𝒘 𝟑 𝒙 𝟑 + 𝒃
バイアス
ベクトルと行列を用いて
𝒖 = 𝑾𝒙 + 𝒃
𝒛 = 𝒇(𝒖)
19© 2017 NTT DATA Mathematical Systems Inc.
19
 ReLU
 中間層における活性化関数として現在デファクト
 sigmoid
 勾配消失問題等により中間層では使われなくなった
 出力層では使われる (ロジスティック回帰っぽくなる)
 tanh
 中間層では使われなくなった
中間層の活性化関数
𝒇 𝒖 = 𝐦𝐚𝐱(𝒖, 𝟎)
𝒇 𝒖 =
𝟏
𝟏 + 𝒆−𝒖
https://techblog.yahoo.co.jp/javascript/deep-learning-with-javascript/
𝒇 𝒖 = 𝐭𝐚𝐧𝐡 𝒖
20© 2017 NTT DATA Mathematical Systems Inc.
20
 sigmoid
 出力値は確率を表す (ロジスティック回帰っぽく)
 softmax
 多クラス分類問題でよく使う (多クラスロジスティック回帰っぽく)
 恒等写像
 回帰問題の出力層でよく使う
出力層の活性化関数
𝒇 𝒖 =
𝟏
𝟏 + 𝒆−𝒖
𝒇 𝒖 = 𝒖
𝒖 𝟏
𝒖 𝟐
𝒖 𝟑
𝒛 𝟏 =
𝐞𝐱𝐩 𝒖 𝟏
𝐞𝐱𝐩 𝒖 𝟏 + 𝐞𝐱𝐩 𝒖 𝟐 + 𝐞𝐱𝐩(𝒖 𝟑)
𝐬𝐨𝐟𝐭𝐦𝐚𝐱 𝒛 𝟐 =
𝐞𝐱𝐩 𝒖 𝟐
𝐞𝐱𝐩 𝒖 𝟏 + 𝐞𝐱𝐩 𝒖 𝟐 + 𝐞𝐱𝐩(𝒖 𝟑)
𝒛 𝟑 =
𝐞𝐱𝐩 𝒖 𝟑
𝐞𝐱𝐩 𝒖 𝟏 + 𝐞𝐱𝐩 𝒖 𝟐 + 𝐞𝐱𝐩(𝒖 𝟑)
𝒛 𝟏 + 𝒛 𝟐 + 𝒛 𝟑 = 𝟏, 𝟎 ≤ 𝒛𝒊 ≤ 𝟏
データ 𝑥 がクラス 𝑖 に属する
条件付き確率 𝑝 𝐶𝑖|𝑥 をモデル化
入力 𝒙
21© 2017 NTT DATA Mathematical Systems Inc.
21
 二値分類
 損失関数: binary cross entropy
 多クラス分類
 損失関数: categorical cross entropy
損失関数 part1
𝒖 𝐬𝐢𝐠𝐦𝐨𝐢𝐝 𝒛 =
𝟏
𝟏 + 𝒆−𝒖
𝒖 𝟏
𝒖 𝟐
𝒖 𝟑
𝒛 𝟏 =
𝐞𝐱𝐩 𝒖 𝟏
𝐞𝐱𝐩 𝒖 𝟏 + 𝐞𝐱𝐩 𝒖 𝟐 + 𝐞𝐱𝐩(𝒖 𝟑)
𝐬𝐨𝐟𝐭𝐦𝐚𝐱 𝒛 𝟐 =
𝐞𝐱𝐩 𝒖 𝟐
𝐞𝐱𝐩 𝒖 𝟏 + 𝐞𝐱𝐩 𝒖 𝟐 + 𝐞𝐱𝐩(𝒖 𝟑)
𝒛 𝟑 =
𝐞𝐱𝐩 𝒖 𝟑
𝐞𝐱𝐩 𝒖 𝟏 + 𝐞𝐱𝐩 𝒖 𝟐 + 𝐞𝐱𝐩(𝒖 𝟑)
入力 𝒙
入力 𝒙
𝑥𝑖, 𝑦𝑖 𝑖=1,…,𝑛 : 学習データ
𝑙 𝑤 : 損失関数
𝑦 = 1 のとき 𝒍 𝒘 = 𝐥𝐨𝐠 𝒛(𝒙; 𝒘)
𝑦 = 0 のとき
𝒍 𝒘 = 𝐥𝐨𝐠(𝟏 − 𝒛(𝒙; 𝒘))
これを各 𝑥𝑖, 𝑦𝑖 𝑖=1,…,𝑛 に対して総和
𝑦 = 𝑘 のとき 𝒍 𝒘 = 𝐥𝐨𝐠 𝒛 𝒌(𝒙; 𝒘)
これを各 𝑥𝑖, 𝑦𝑖 𝑖=1,…,𝑛 に対して総和
22© 2017 NTT DATA Mathematical Systems Inc.
22
 回帰
 損失関数: 二乗誤差
損失関数 part2
𝒖 活性化 𝒛入力 𝒙
𝑥𝑖, 𝑦𝑖 𝑖=1,…,𝑛 : 学習データ
𝑙 𝑤 : 損失関数
𝒍 𝒘 = (𝒚 − 𝒛(𝒙; 𝒘)) 𝟐
これを各 𝑥𝑖, 𝑦𝑖 𝑖=1,…,𝑛 に対して総和
23© 2017 NTT DATA Mathematical Systems Inc.
23
 モデル
 ニューラルネットワークモデル (ネットワーク構造, 層数, 活性化関数)
 損失関数 (モデルの予測結果が、正解にどれだけ近いかを示すもの
 学習 (確率的勾配降下法)
 学習率
 ミニバッチサイズ
 Optimizer
ディープラーニングの構成要素 (再掲)
24© 2017 NTT DATA Mathematical Systems Inc.
24
 損失関数は例えば回帰問題では
 勾配降下法: 関数の最小値を求める一般的なテク
勾配降下法
𝑥𝑖, 𝑦𝑖 𝑖=1,…,𝑛 : 学習データ
𝑙𝑖 𝑤 : 損失関数
𝐌𝐢𝐧𝐢𝐦𝐢𝐳𝐞 𝒘: 𝑳 𝒘 = 𝒍𝒊(𝒘)
𝒏
𝒊=𝟏
= 𝒚𝒊 − 𝒛𝒊 𝒙; 𝒘 𝟐
𝒏
𝒊=𝟏
• 初期値 𝒘 𝟎 を用意
• 更新式 𝒘 𝒕+𝟏
= 𝒘 𝒕
− 𝝐 𝛁𝑳(𝒘 𝒕
) に従って
重みを更新していく
学習率
25© 2017 NTT DATA Mathematical Systems Inc.
25
 勾配降下法の更新式を書き直すと
 確率的勾配降下法
 毎回 𝑛 個のデータのうちの 𝐾 個をサンプリング (𝑖1, 𝑖2, … , 𝑖 𝐾)
 望まない局所極小解から抜け出せなくなるリスクを軽減
 学習途中でデータを追加できる
確率的勾配降下法 (SGD)
𝒘 𝒕+𝟏 = 𝒘 𝒕 − 𝝐 𝜵𝒍𝒊(𝒘)
𝒏
𝒊=𝟏
𝑥𝑖, 𝑦𝑖 𝑖=1,…,𝑛 : 学習データ
𝑙𝑖 𝑤 : 損失関数
1回の更新で
𝑛 個の全データ必要
ミニバッチサイズ
𝒘 𝒕+𝟏 = 𝒘 𝒕 − 𝝐 𝜵𝒍𝒊 𝒌
(𝒘)
𝑲
𝒌=𝟏
1回の更新では
𝑛 個のデータのうち、 𝑘
個のみを使用
26© 2017 NTT DATA Mathematical Systems Inc.
26
 学習率
 小さすぎると学習に時間がかかる
 大きすぎると loss が下がりにくくなる
 ミニバッチサイズ
 10~100程度とすることが多い
 多クラス分類問題の場合、クラス数より多くしたい
 ただし、クラス数が多すぎる場合は10~100程度に
 Optimizer: SGDの亜種たち
 AdaGrad
 AdaDelta
 Adam
 RMSprop
チューニングパラメータ
𝒘 𝒕+𝟏
= 𝒘 𝒕
− 𝝐 𝜵𝒍𝒊 𝒌
(𝒘)
𝑲
𝒌=𝟏
ミニバッチサイズ
学習率
27© 2017 NTT DATA Mathematical Systems Inc.
27
 イントロ
 ディープラーニングとは
 ディープラーニングの特徴
 ディープラーニングの構成要素
 ディープラーニングのチューニング技法
 ディープラーニングを用いた画像処理
 ディープラーニングを用いた自然言語処理
 ディープラーニングを用いたマルチモーダル学習
内容
28© 2017 NTT DATA Mathematical Systems Inc.
28
 データを分割 (7 : 3 くらいに)
 学習用データ: モデルの学習
 テスト用データ: 実際にうまく分類できるかなどの評価
 ハイパーパラメータチューニング
 テスト用データに対する精度が最も高くなるようにパラメータ調整した
くなる (反則!!!)
 チューニングのために validation データを確保することも
 学習データ
 Validationデータ
 テストデータ
データの扱い
29© 2017 NTT DATA Mathematical Systems Inc.
29
 2 つの誤差
 経験損失: 学習データに対する推論の正解とのズレ
 期待損失: 未知のデータに対する推論の正解とのズレ (の期待値)
 経験損失を小さくする ことで期待損失を小さくしたい
 期待損失は実際は計算できないので、テスト誤差を近
似的に期待損失と考える
機械学習の目的: 期待損失の最小化
過学習とは、経験損失は小さいが
期待損失が大きい状態
30© 2017 NTT DATA Mathematical Systems Inc.
30
 上手くいっていない状況を把握
 Underfit? / Overfit? / そもそもデータの限界?
 学習データに対してもダメなとき
 とにかくまずは過学習させちゃう!
 Optimizer, 学習率, ミニバッチサイズ, モデルをより複雑に
 学習データに対してはOKでテストデータはダメなとき
 正則化
 学習データの増やし方
 モデルそのものの改善
 モデル規模の適性化
ディープラーニングのチューニング
31© 2017 NTT DATA Mathematical Systems Inc.
31
 Underfit?
 Overfit (過学習)?
 データがそもそも悪い? (ノイズが大きい)
状況把握
https://www.coursera.org/learn/machine-learning/lecture/yCAup/diagnosing-bias-vs-variance
32© 2017 NTT DATA Mathematical Systems Inc.
32
 学習データに対してフィットしないと何も始まらない
 この状況で学習データ増やしても改善しない
 過学習させてでもフィットさせよう!
 学習率の調整!!!
 Optimizers を変えてみる
 モデルをもっと複雑にしてみる
 ミニバッチサイズを変えてみる
Underfit
 経験損失 (学習データとのズレ) が小さくなっていない
 学習データに対しても正しく推定できない
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© 2017 NTT DATA Mathematical Systems Inc.
34
 過学習する前に学習を打ち切る
 テスト誤差が最小になる点を
Early Stopping
https://www.altus5.co.jp/blog/machine-learning/2016/11/28/over-learning/
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© 2017 NTT DATA Mathematical Systems Inc.
36
 モデルをシンプルにする
 層数を減らすなど
 モデル圧縮技術
 一度あるモデルで学習したあと、ネットワークの削ってもいい箇所を見
出し、削ったネットワークを用いて再学習
 ネットワークが小さくなるだけでなく精度も上がったり
モデルの規模の適性化
37© 2017 NTT DATA Mathematical Systems Inc.
37
 現在最先端の研究でしのぎを削っている 「よりよい
ネットワークを考えました」 選手権そのもの
 より性能がよいと知られているモデルを使う
 ResNet
 より性能が出ると知られている機構を取り入れる
 Attention
 Bi-directional LSTM
 Batch Normalization
 Pointer Networks
モデルの改善
38© 2017 NTT DATA Mathematical Systems Inc.
38
 単純に精度が上がることが期待できる
とはいえ...
 学習データを新たに収集するのは大きな負担
 モデルの改善や、学習データの水増しなどの方が重要
であることも多い
学習データを増やす
39© 2017 NTT DATA Mathematical Systems Inc.
39
画像での例
 入力セルの値の平均が0、分散が1になるように
テキストでの例
 固有名詞など、低頻出単語は unk などのマクロ置換
 文中の数値などは num などのマクロ置換する
 顔文字などノイズは削る、()などの記号の書式を統一
学習データの正規化
けんちょんは(精神年齢)17歳なの~~ん(⋈◍>◡<◍)。✧♡
unkは(精神年齢)num歳なのーん
40© 2017 NTT DATA Mathematical Systems Inc.
40
 画像にノイズを加えたものを新たなデータに
 画像を少し変形をしたものを新たなデータに
 左右反転
 平行移動
 拡大縮小
 回転
 濃淡を変える
 色を少し変える
 GAN などで生成した画像を新たなデータに
 進行中の研究課題
学習データの水増し (画像編)
41© 2017 NTT DATA Mathematical Systems Inc.
41
 同じ意味の似た言い回しの文を新たに作る
 文章要約タスクでは、(元文章, 要約文) のペアに対し
て (要約文, 要約文) のペアを新たなデータに
学習データの水増し (テキスト編)
何歳ですか? / 17歳です
何歳なの? / 17歳です
何歳? / 17歳です
何歳でしょうか? / 17歳です
42© 2017 NTT DATA Mathematical Systems Inc.
42
 特に人手で頑張って作ったデータでは誤りも多くある
 データに偏りがある場合も多い
 場合によってはノイズの大きいデータは省いたり、デー
タの正規化を頑張ったりする
学習データの質を疑う
43© 2017 NTT DATA Mathematical Systems Inc.
43
 イントロ
 ディープラーニングとは
 ディープラーニングの特徴
 ディープラーニングの構成要素
 ディープラーニングのチューニング技法
 ディープラーニングを用いた画像処理
 ディープラーニングを用いた自然言語処理
 ディープラーニングを用いたマルチモーダル学習
内容
44© 2017 NTT DATA Mathematical Systems Inc.
44
 画像処理: CNN (Convolutional Neural Networks)
 自然言語処理: RNN (Recurrent Neural Networks)
 マルチモーダル: これらを組み合わせたり
定番手法
45© 2017 NTT DATA Mathematical Systems Inc.
45
 イントロ
 ディープラーニングとは
 ディープラーニングの特徴
 ディープラーニングの構成要素
 ディープラーニングのチューニング技法
 ディープラーニングを用いた画像処理
 ディープラーニングを用いた自然言語処理
 ディープラーニングを用いたマルチモーダル学習
内容
46© 2017 NTT DATA Mathematical Systems Inc.
46
 1958年、猫の視覚野に特定の傾きをもつ線分を見せ
たときにだけ反応する細胞の発見 (単純型細胞)
 単純型細胞で検知した情報を取りまとめて、線分の位
置がずれたりしたものも検出 (複雑型細胞)
 さらにこれらの細胞が多層に
なって複雑なパターン検出
 この階層仮説がヒントに
なって CNN が誕生!
Hubel--Wiesel の階層仮説
瀧雅人「これならわかる深層学習入門」より
単純型 複雑型
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© 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© 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© 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© 2017 NTT DATA Mathematical Systems Inc.
51
 2012年度 ILSVRC 優勝、16.4%
 8層、ディープラーニングブームの火付け役
AlexNet (トロント大学, Hintonら)
52© 2017 NTT DATA Mathematical Systems Inc.
52
 2014年度 ILSVRC 優勝、6.67%
 22層
GoogleNet
Inception
53© 2017 NTT DATA Mathematical Systems Inc.
53
 2014年度 ILSVRC 準優勝、7.32%
 19層
VGG (オックスフォード大)
54© 2017 NTT DATA Mathematical Systems Inc.
54
 2015年度 ILSVRC 優勝、3.56%
 152層!!!
 層をまたぐスキップ構造が特徴
ResNet (Microsoft Research)
55© 2017 NTT DATA Mathematical Systems Inc.
55
 物体認識 (ここまで)
 画像が表すものは何か
 物体検出
 画像から物体の位置も特定
 セグメンテーション
 画像のピクセルごとにどのクラスに属するかを出力
最近は...
 画像生成、画像ドメイン変換
 GAN の爆発的流行
画像処理タスク
56© 2017 NTT DATA Mathematical Systems Inc.
56
物体認識
Krizhevsky et al., ImageNet Classification with Deep Convolutional Neural Networks, 2012.
57© 2017 NTT DATA Mathematical Systems Inc.
57
物体検出
He et al., Mask R-CNN, 2017.
 画像から物体の位置も特定
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© 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© 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© 2017 NTT DATA Mathematical Systems Inc.
61
GAN を利用して画像変換
 人の顔をアニメ絵っぽく変換
 VAE-GAN など、GAN を利用したドメイン変換は流行
中のホットトピック
Tagiman et al., UNSUPERVISED CROSS-DOMAIN IMAGE GENERATION, 2016.
62© 2017 NTT DATA Mathematical Systems Inc.
62
CycleGAN
 「馬をシマウマに、シマウマを馬に」 といった変換
Zhu et al., Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks, 2017.
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© 2017 NTT DATA Mathematical Systems Inc.
64
超高解像度な画像生成
 そして2017年、高解像度な画像生成が飛躍的進化
 画像ラベルマップから高解像度の画像合成!!!
Wang et al., High-Resolution Image Synthesis and Semantic Manipulation with Conditional GANs, 2017.
65© 2017 NTT DATA Mathematical Systems Inc.
65
 イントロ
 ディープラーニングとは
 ディープラーニングの特徴
 ディープラーニングの構成要素
 ディープラーニングのチューニング技法
 ディープラーニングを用いた画像処理
 ディープラーニングを用いた自然言語処理
 ディープラーニングを用いたマルチモーダル学習
内容
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© 2017 NTT DATA Mathematical Systems Inc.
67
 ループを持つニューラルネット
 𝑧 𝑡 = 𝑓 𝑊in 𝑥 𝑡 + 𝑊𝑠 𝑡−1 , 𝑦 𝑡 = 𝑊out 𝑠 𝑡
Recurrent Neural Networks
𝑊in
𝑥𝑡
𝑦𝑡
𝑠𝑡−1
出力
入力
中間出力
𝑠𝑡
𝑊
𝑊out
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© 2017 NTT DATA Mathematical Systems Inc.
69
 RNN の大きな弱点
 文章が長いと、最初の方のことを忘れたり、最初の方のことの情報が
強すぎて後の方のことが頭に入ってこなかったり
改良された亜種たち
 LSTM (Long Short-Term Memory)
 GRU (Gated Recurrent Unit)
RNN の亜種たち
70© 2017 NTT DATA Mathematical Systems Inc.
70
 忘却ゲートを用意して情報伝達量を調整する
 短期記憶メモリのようなものを用意する
LSTM
Graves, Generating Sequence with Recurrent Neural Networks, 2014.
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© 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© 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© 2017 NTT DATA Mathematical Systems Inc.
74
 分類だけでない!系列データから系列データへの学習
 さらに踏み込んで 「なんらかのデータをベクトルに埋め込んだもの」 か
ら系列データへの学習も (マルチモーダルへの道)
 機械翻訳 (日本語から英語へ)
 対話 (言われたことから発話へ)
 文章要約 (オリジナル文から要約文へ)
 Question Answering (質問文から応答文へ)
 画像キャプション生成 (画像から画像キャプションへ)
 Visual Question Answering (画像を見て応答)
 人間の話し言葉を理解して対話
さらなる RNN の現代的な使い方
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© 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© 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© 2017 NTT DATA Mathematical Systems Inc.
78
 seq2seq を文章要約に応用
 機械翻訳が成熟し始めた今、かなりのホットトピック
文章要約
Nallapati et al., Abstractive Text Summarization Using Sequence-to-Sequence RNNs and Beyond, 2015.
79© 2017 NTT DATA Mathematical Systems Inc.
79
 seq2seq はコンテキストベクトルがあればいいので、
元系列が文章でなくてもいい
画像キャプション生成 (マルチモーダル)
Vinyals et al., Show and Tell: A Neural Image Caption Generator, 2014.
80© 2017 NTT DATA Mathematical Systems Inc.
80
画像キャプション生成 (マルチモーダル)
Vinyals et al., Show and Tell: A Neural Image Caption Generator, 2014.
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© 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© 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© 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© 2017 NTT DATA Mathematical Systems Inc.
85
 Memory Networks 研究の源流
 外部メモリ的 (Attention は内部メモリ的)
 ソートアルゴリズムなどが学習できた
Neural Turing Machine
メモリ全体から attention
𝒓 𝒕 ← 𝒘 𝒕 𝒊 𝑴𝒕(𝒊)
𝑵
𝒊=𝟏
チューリングマシンのテープ
𝑴 𝒕(𝒊): 𝑵 個の 𝑴 次元ベクトル
※通常のチューリングマシンでは
読み込むテープの箇所は1か所
なんらかのニューラルネットワーク
で重み 𝒘 𝒕 𝒊 を生成
書き込み (LSTM を模倣)
𝑴 𝒕 𝒊 ← 𝑴 𝒕−𝟏 𝒊 𝟏 − 𝒘 𝒕 𝒊 𝒆 𝒕
+ 𝒘 𝒕 𝒊 𝒂 𝒕
※ 𝑴𝒕−𝟏 𝒊 𝟏 − 𝒘 𝒕 𝒊 𝒆 𝒕 で前回の記憶
を少し忘れさせて、今回の記憶として
𝒘 𝒕 𝒊 𝒂 𝒕 を加算
※ 実際に出力するのは 𝒘 𝒕 𝒊
を更新するためのベクトル
Graves et al., Neural Turing Machines, 2014.
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© 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© 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© 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© 2017 NTT DATA Mathematical Systems Inc.
90
 「入力列の中から、順番に適切なものを Attention し
て選んでいく」 というフレームワーク
 元々は、組合せ最適化問題を解かせるために誕生
 現在では、NLP 系で盛んに使われる技術に!!
Pointer Networks
Vinyals et al., Pointer Networks, 2015.
91© 2017 NTT DATA Mathematical Systems Inc.
91
 「入力列の中から、順番に適切なものを Attention し
て選んでいく」 というフレームワーク
 元々は、組合せ最適化問題を解かせるために誕生
 現在では、NLP 系で盛んに使われる技術に!!
Pointer Networks
Vinyals et al., Pointer Networks, 2015.
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© 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 で分岐など
© 2017 NTT DATA Mathematical Systems Inc.

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

  • 1.
    © 2017 NTTDATA Mathematical Systems Inc. ディープラーニング 入門 株式会社NTTデータ数理システム 2017 年度版 大槻 兼資
  • 2.
    2© 2017 NTTDATA Mathematical Systems Inc. 2  イントロ  ディープラーニングとは  ディープラーニングの特徴  ディープラーニングの構成要素  ディープラーニングのチューニング技法  ディープラーニングを用いた画像処理  ディープラーニングを用いた自然言語処理  ディープラーニングを用いたマルチモーダル学習 内容
  • 3.
    3© 2017 NTTDATA Mathematical Systems Inc. 3  イントロ  ディープラーニングとは  ディープラーニングの特徴  ディープラーニングの構成要素  ディープラーニングのチューニング技法  ディープラーニングを用いた画像処理  ディープラーニングを用いた自然言語処理  ディープラーニングを用いたマルチモーダル学習 内容
  • 4.
    4© 2017 NTTDATA Mathematical Systems Inc. 4  機械学習の一手法 ディープラーニングとは 機械学習 ディープラーニング データの背後に潜むパターンを推測 データの理解・未来の予測が目標 脳を模した機械学習手法 画像認識、音声認識、自然言語処理、強化学習 などでブレイクスルーを起こす
  • 5.
    5© 2017 NTTDATA 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© 2017 NTTDATA 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© 2017 NTTDATA Mathematical Systems Inc. 7  1943年: ニューロン素子モデル登場  1958年: パーセプトロン登場  1986年: 誤差逆伝播法  多層のニューラルネットワークの学習法!  2006年: 層ごとの事前学習  高い汎化能力! ニューラルネットワークのブームと冬の時代 McCulloch--Pitts Rosenblatt 過学習問題, 勾配消失問題などがあって 再び冬の時代, SVMなどの盛り上がり Rumelhart (1層の)単純パーセプトロンは 線形分離不可能なパターンを識別不能問題 いう問題を克服できず…冬の時代へ Hinton, Bengio, LeCun ら ※ 現在では Dropout といったテクニックや、ReLU といった活性化関数、GPU などのハードウェアの進歩、 また大量のデータから学習ができるようになったことなどもあり、事前学習はあまり使われなくなった
  • 8.
    8© 2017 NTTDATA Mathematical Systems Inc. 8  線形モデル, 線形分離不可能なパターン  線形モデル: 線形回帰, ロジスティック回帰, SVM  過学習, 勾配消失問題 キーワード 線形分離可能 線形分離不可能
  • 9.
    9© 2017 NTTDATA Mathematical Systems Inc. 9  ニューロン  単純パーセプトロン (1層のニューラルネット) 単純パーセプトロンは線形分類のみ 𝒙 𝟏 𝒙 𝟐 𝒙 𝟑 𝒛 𝒘 𝟏 𝒘 𝟐 𝒘 𝟑 𝒛 = 𝒇(𝒘 𝟏 𝒙 𝟏 + 𝒘 𝟐 𝒙 𝟐 + 𝒘 𝟑 𝒙 𝟑 + 𝒃) 𝒇: 活性化関数 𝒙 𝟏 𝒙 𝟐 𝒙 𝟑 𝒛 𝟏 𝒛 𝟐 𝒘 𝟏𝟏 𝒘 𝟏𝟐 𝒘 𝟏𝟑 𝒘 𝟐𝟏 𝒘 𝟐𝟐 𝒘 𝟐𝟑 𝒛 𝟏 𝒛 𝟐 = 𝒇 𝒘 𝟏𝟏 𝒘 𝟏𝟐 𝒘 𝟏𝟑 𝒘 𝟐𝟏 𝒘 𝟐𝟐 𝒘 𝟐𝟑 𝒙 𝟏 𝒙 𝟐 𝒙 𝟑 + 𝒃 𝟏 𝒃 𝟐 𝒇 を softmax として損失関数を categorical cross entropy にとると ロジスティック回帰 ・・・ 多クラスにも拡張可 𝑧𝑖 = 𝑓 𝑢𝑖 = exp 𝑤𝑖 T 𝑥 + 𝑏𝑖 exp(𝑤𝑗 T 𝑥 + 𝑏𝑗 )𝑗 softmax データ 𝑥 がクラス 𝑖 に属する条件付き確 率 𝑝 𝐶𝑖|𝑥 をモデル 化 バイアス
  • 10.
    10© 2017 NTTDATA Mathematical Systems Inc. 10  1層から多層にすると非線形へ  それどころか万能近似性を有する!  3層 (隠れ層1層) でも成立  実際上は隠れ層数を増やしたり、 各隠れ層のニューロン数を増やしたりする  モデルの表現力の高さは過学習問題と表裏一体 ディープニューラルネットワークへ 線形分離可能 線形分離不可能 𝒙 𝟏 𝒙 𝟐 𝒙 𝟑 𝒛 𝟏 𝒛 𝟐 任意の連続関数に 対して任意の精度 で近似できる
  • 11.
    11© 2017 NTTDATA Mathematical Systems Inc. 11  過学習とは  学習データには適合するが、未知データに適合しない状況  複雑なモデルほど、より多くの学習データを必要とする 過学習について http:/scikit-learn.org/stable/auto_examples/model_selection/plot_underfitting_overfitting.html/
  • 12.
    12© 2017 NTTDATA Mathematical Systems Inc. 12  過学習とは  学習データには適合するが、未知データに適合しない状況  複雑なモデルほど、より多くの学習データを必要とする モデルの表現力と過学習 表現力 低 (単純) 高 (複雑) 線形モデルなど ディープニューラルネットなど より優れたモデルの可能性を秘めて いるが、過学習しやすくなる (対策) • うまい正則化 (Dropout など) • 大量のデータで学習
  • 13.
    13© 2017 NTTDATA Mathematical Systems Inc. 13  カーネルSVM  カーネルトリックを用いて線形モデルな SVM を非線形分類可能に  低バリアンスで汎化性能高め (過学習を抑えやすい)  ランダムフォレスト  メジャーでお手軽  分散させやすい  勾配ブースティング  いわゆる XGBoost  Kaggle などでデファクトになった強力な分類器  チューニングコスト低め その他の非線形分類器たち
  • 14.
    14© 2017 NTTDATA 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© 2017 NTTDATA Mathematical Systems Inc. 15  過学習しやすい  大量の学習データが必要  機械学習しようとするときにいつも悩む  膨大な計算機リソースが必要  チューニングが難しい  特徴量を自動獲得する反面、ブラックボックスでもあり 人間が持っている知識を組み込みづらい ディープラーニングの代償
  • 16.
    16© 2017 NTTDATA Mathematical Systems Inc. 16  イントロ  ディープラーニングとは  ディープラーニングの特徴  ディープラーニングの構成要素  ディープラーニングのチューニング技法  ディープラーニングを用いた画像処理  ディープラーニングを用いた自然言語処理  ディープラーニングを用いたマルチモーダル学習 内容
  • 17.
    17© 2017 NTTDATA Mathematical Systems Inc. 17  モデル  ニューラルネットワークモデル (ネットワーク構造, 層数, 活性化関数)  損失関数 (モデルの予測結果が、正解にどれだけ近いかを示すもの)  学習 (確率的勾配降下法)  学習率  ミニバッチサイズ  Optimizer ディープラーニングの構成要素
  • 18.
    18© 2017 NTTDATA Mathematical Systems Inc. 18  ニューロン  (単純)パーセプトロン ニューロンとパーセプトロン 𝒙 𝟏 𝒙 𝟐 𝒙 𝟑 𝒛 𝒘 𝟏 𝒘 𝟐 𝒘 𝟑 𝒛 = 𝒇(𝒖) 𝒇: 活性化関数 𝒙 𝟏 𝒙 𝟐 𝒙 𝟑 𝒖 𝟏 𝒖 𝟐 𝒘 𝟏𝟏 𝒘 𝟏𝟐 𝒘 𝟏𝟑 𝒘 𝟐𝟏 𝒘 𝟐𝟐 𝒘 𝟐𝟑 𝒛 𝟏 𝒛 𝟐 = 𝒇 𝒖 𝟏 𝒖 𝟐 𝒖 𝟏 𝒖 𝟐 = 𝒘 𝟏𝟏 𝒘 𝟏𝟐 𝒘 𝟏𝟑 𝒘 𝟐𝟏 𝒘 𝟐𝟐 𝒘 𝟐𝟑 𝒙 𝟏 𝒙 𝟐 𝒙 𝟑 + 𝒃 𝟏 𝒃 𝟐 𝒛 𝟏 𝒛 𝟐 𝒖 𝒖 = 𝒘 𝟏 𝒙 𝟏 + 𝒘 𝟐 𝒙 𝟐 + 𝒘 𝟑 𝒙 𝟑 + 𝒃 バイアス ベクトルと行列を用いて 𝒖 = 𝑾𝒙 + 𝒃 𝒛 = 𝒇(𝒖)
  • 19.
    19© 2017 NTTDATA Mathematical Systems Inc. 19  ReLU  中間層における活性化関数として現在デファクト  sigmoid  勾配消失問題等により中間層では使われなくなった  出力層では使われる (ロジスティック回帰っぽくなる)  tanh  中間層では使われなくなった 中間層の活性化関数 𝒇 𝒖 = 𝐦𝐚𝐱(𝒖, 𝟎) 𝒇 𝒖 = 𝟏 𝟏 + 𝒆−𝒖 https://techblog.yahoo.co.jp/javascript/deep-learning-with-javascript/ 𝒇 𝒖 = 𝐭𝐚𝐧𝐡 𝒖
  • 20.
    20© 2017 NTTDATA Mathematical Systems Inc. 20  sigmoid  出力値は確率を表す (ロジスティック回帰っぽく)  softmax  多クラス分類問題でよく使う (多クラスロジスティック回帰っぽく)  恒等写像  回帰問題の出力層でよく使う 出力層の活性化関数 𝒇 𝒖 = 𝟏 𝟏 + 𝒆−𝒖 𝒇 𝒖 = 𝒖 𝒖 𝟏 𝒖 𝟐 𝒖 𝟑 𝒛 𝟏 = 𝐞𝐱𝐩 𝒖 𝟏 𝐞𝐱𝐩 𝒖 𝟏 + 𝐞𝐱𝐩 𝒖 𝟐 + 𝐞𝐱𝐩(𝒖 𝟑) 𝐬𝐨𝐟𝐭𝐦𝐚𝐱 𝒛 𝟐 = 𝐞𝐱𝐩 𝒖 𝟐 𝐞𝐱𝐩 𝒖 𝟏 + 𝐞𝐱𝐩 𝒖 𝟐 + 𝐞𝐱𝐩(𝒖 𝟑) 𝒛 𝟑 = 𝐞𝐱𝐩 𝒖 𝟑 𝐞𝐱𝐩 𝒖 𝟏 + 𝐞𝐱𝐩 𝒖 𝟐 + 𝐞𝐱𝐩(𝒖 𝟑) 𝒛 𝟏 + 𝒛 𝟐 + 𝒛 𝟑 = 𝟏, 𝟎 ≤ 𝒛𝒊 ≤ 𝟏 データ 𝑥 がクラス 𝑖 に属する 条件付き確率 𝑝 𝐶𝑖|𝑥 をモデル化 入力 𝒙
  • 21.
    21© 2017 NTTDATA Mathematical Systems Inc. 21  二値分類  損失関数: binary cross entropy  多クラス分類  損失関数: categorical cross entropy 損失関数 part1 𝒖 𝐬𝐢𝐠𝐦𝐨𝐢𝐝 𝒛 = 𝟏 𝟏 + 𝒆−𝒖 𝒖 𝟏 𝒖 𝟐 𝒖 𝟑 𝒛 𝟏 = 𝐞𝐱𝐩 𝒖 𝟏 𝐞𝐱𝐩 𝒖 𝟏 + 𝐞𝐱𝐩 𝒖 𝟐 + 𝐞𝐱𝐩(𝒖 𝟑) 𝐬𝐨𝐟𝐭𝐦𝐚𝐱 𝒛 𝟐 = 𝐞𝐱𝐩 𝒖 𝟐 𝐞𝐱𝐩 𝒖 𝟏 + 𝐞𝐱𝐩 𝒖 𝟐 + 𝐞𝐱𝐩(𝒖 𝟑) 𝒛 𝟑 = 𝐞𝐱𝐩 𝒖 𝟑 𝐞𝐱𝐩 𝒖 𝟏 + 𝐞𝐱𝐩 𝒖 𝟐 + 𝐞𝐱𝐩(𝒖 𝟑) 入力 𝒙 入力 𝒙 𝑥𝑖, 𝑦𝑖 𝑖=1,…,𝑛 : 学習データ 𝑙 𝑤 : 損失関数 𝑦 = 1 のとき 𝒍 𝒘 = 𝐥𝐨𝐠 𝒛(𝒙; 𝒘) 𝑦 = 0 のとき 𝒍 𝒘 = 𝐥𝐨𝐠(𝟏 − 𝒛(𝒙; 𝒘)) これを各 𝑥𝑖, 𝑦𝑖 𝑖=1,…,𝑛 に対して総和 𝑦 = 𝑘 のとき 𝒍 𝒘 = 𝐥𝐨𝐠 𝒛 𝒌(𝒙; 𝒘) これを各 𝑥𝑖, 𝑦𝑖 𝑖=1,…,𝑛 に対して総和
  • 22.
    22© 2017 NTTDATA Mathematical Systems Inc. 22  回帰  損失関数: 二乗誤差 損失関数 part2 𝒖 活性化 𝒛入力 𝒙 𝑥𝑖, 𝑦𝑖 𝑖=1,…,𝑛 : 学習データ 𝑙 𝑤 : 損失関数 𝒍 𝒘 = (𝒚 − 𝒛(𝒙; 𝒘)) 𝟐 これを各 𝑥𝑖, 𝑦𝑖 𝑖=1,…,𝑛 に対して総和
  • 23.
    23© 2017 NTTDATA Mathematical Systems Inc. 23  モデル  ニューラルネットワークモデル (ネットワーク構造, 層数, 活性化関数)  損失関数 (モデルの予測結果が、正解にどれだけ近いかを示すもの  学習 (確率的勾配降下法)  学習率  ミニバッチサイズ  Optimizer ディープラーニングの構成要素 (再掲)
  • 24.
    24© 2017 NTTDATA Mathematical Systems Inc. 24  損失関数は例えば回帰問題では  勾配降下法: 関数の最小値を求める一般的なテク 勾配降下法 𝑥𝑖, 𝑦𝑖 𝑖=1,…,𝑛 : 学習データ 𝑙𝑖 𝑤 : 損失関数 𝐌𝐢𝐧𝐢𝐦𝐢𝐳𝐞 𝒘: 𝑳 𝒘 = 𝒍𝒊(𝒘) 𝒏 𝒊=𝟏 = 𝒚𝒊 − 𝒛𝒊 𝒙; 𝒘 𝟐 𝒏 𝒊=𝟏 • 初期値 𝒘 𝟎 を用意 • 更新式 𝒘 𝒕+𝟏 = 𝒘 𝒕 − 𝝐 𝛁𝑳(𝒘 𝒕 ) に従って 重みを更新していく 学習率
  • 25.
    25© 2017 NTTDATA Mathematical Systems Inc. 25  勾配降下法の更新式を書き直すと  確率的勾配降下法  毎回 𝑛 個のデータのうちの 𝐾 個をサンプリング (𝑖1, 𝑖2, … , 𝑖 𝐾)  望まない局所極小解から抜け出せなくなるリスクを軽減  学習途中でデータを追加できる 確率的勾配降下法 (SGD) 𝒘 𝒕+𝟏 = 𝒘 𝒕 − 𝝐 𝜵𝒍𝒊(𝒘) 𝒏 𝒊=𝟏 𝑥𝑖, 𝑦𝑖 𝑖=1,…,𝑛 : 学習データ 𝑙𝑖 𝑤 : 損失関数 1回の更新で 𝑛 個の全データ必要 ミニバッチサイズ 𝒘 𝒕+𝟏 = 𝒘 𝒕 − 𝝐 𝜵𝒍𝒊 𝒌 (𝒘) 𝑲 𝒌=𝟏 1回の更新では 𝑛 個のデータのうち、 𝑘 個のみを使用
  • 26.
    26© 2017 NTTDATA Mathematical Systems Inc. 26  学習率  小さすぎると学習に時間がかかる  大きすぎると loss が下がりにくくなる  ミニバッチサイズ  10~100程度とすることが多い  多クラス分類問題の場合、クラス数より多くしたい  ただし、クラス数が多すぎる場合は10~100程度に  Optimizer: SGDの亜種たち  AdaGrad  AdaDelta  Adam  RMSprop チューニングパラメータ 𝒘 𝒕+𝟏 = 𝒘 𝒕 − 𝝐 𝜵𝒍𝒊 𝒌 (𝒘) 𝑲 𝒌=𝟏 ミニバッチサイズ 学習率
  • 27.
    27© 2017 NTTDATA Mathematical Systems Inc. 27  イントロ  ディープラーニングとは  ディープラーニングの特徴  ディープラーニングの構成要素  ディープラーニングのチューニング技法  ディープラーニングを用いた画像処理  ディープラーニングを用いた自然言語処理  ディープラーニングを用いたマルチモーダル学習 内容
  • 28.
    28© 2017 NTTDATA Mathematical Systems Inc. 28  データを分割 (7 : 3 くらいに)  学習用データ: モデルの学習  テスト用データ: 実際にうまく分類できるかなどの評価  ハイパーパラメータチューニング  テスト用データに対する精度が最も高くなるようにパラメータ調整した くなる (反則!!!)  チューニングのために validation データを確保することも  学習データ  Validationデータ  テストデータ データの扱い
  • 29.
    29© 2017 NTTDATA Mathematical Systems Inc. 29  2 つの誤差  経験損失: 学習データに対する推論の正解とのズレ  期待損失: 未知のデータに対する推論の正解とのズレ (の期待値)  経験損失を小さくする ことで期待損失を小さくしたい  期待損失は実際は計算できないので、テスト誤差を近 似的に期待損失と考える 機械学習の目的: 期待損失の最小化 過学習とは、経験損失は小さいが 期待損失が大きい状態
  • 30.
    30© 2017 NTTDATA Mathematical Systems Inc. 30  上手くいっていない状況を把握  Underfit? / Overfit? / そもそもデータの限界?  学習データに対してもダメなとき  とにかくまずは過学習させちゃう!  Optimizer, 学習率, ミニバッチサイズ, モデルをより複雑に  学習データに対してはOKでテストデータはダメなとき  正則化  学習データの増やし方  モデルそのものの改善  モデル規模の適性化 ディープラーニングのチューニング
  • 31.
    31© 2017 NTTDATA Mathematical Systems Inc. 31  Underfit?  Overfit (過学習)?  データがそもそも悪い? (ノイズが大きい) 状況把握 https://www.coursera.org/learn/machine-learning/lecture/yCAup/diagnosing-bias-vs-variance
  • 32.
    32© 2017 NTTDATA Mathematical Systems Inc. 32  学習データに対してフィットしないと何も始まらない  この状況で学習データ増やしても改善しない  過学習させてでもフィットさせよう!  学習率の調整!!!  Optimizers を変えてみる  モデルをもっと複雑にしてみる  ミニバッチサイズを変えてみる Underfit  経験損失 (学習データとのズレ) が小さくなっていない  学習データに対しても正しく推定できない
  • 33.
    33© 2017 NTTDATA Mathematical Systems Inc. 33  Early Stopping  各種正則化  モデルの規模の適性化  モデルの改善  学習データを増やす  学習データを正規化  学習データの水増し  学習データの質を疑う Overfit (過学習)  経験損失 (学習データとのズレ) は十分に小さい  期待損失 (未知データとのズレ) は大きい https://www.altus5.co.jp/blog/machine-learning/2016/11/28/over-learning/
  • 34.
    34© 2017 NTTDATA Mathematical Systems Inc. 34  過学習する前に学習を打ち切る  テスト誤差が最小になる点を Early Stopping https://www.altus5.co.jp/blog/machine-learning/2016/11/28/over-learning/
  • 35.
    35© 2017 NTTDATA 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© 2017 NTTDATA Mathematical Systems Inc. 36  モデルをシンプルにする  層数を減らすなど  モデル圧縮技術  一度あるモデルで学習したあと、ネットワークの削ってもいい箇所を見 出し、削ったネットワークを用いて再学習  ネットワークが小さくなるだけでなく精度も上がったり モデルの規模の適性化
  • 37.
    37© 2017 NTTDATA Mathematical Systems Inc. 37  現在最先端の研究でしのぎを削っている 「よりよい ネットワークを考えました」 選手権そのもの  より性能がよいと知られているモデルを使う  ResNet  より性能が出ると知られている機構を取り入れる  Attention  Bi-directional LSTM  Batch Normalization  Pointer Networks モデルの改善
  • 38.
    38© 2017 NTTDATA Mathematical Systems Inc. 38  単純に精度が上がることが期待できる とはいえ...  学習データを新たに収集するのは大きな負担  モデルの改善や、学習データの水増しなどの方が重要 であることも多い 学習データを増やす
  • 39.
    39© 2017 NTTDATA Mathematical Systems Inc. 39 画像での例  入力セルの値の平均が0、分散が1になるように テキストでの例  固有名詞など、低頻出単語は unk などのマクロ置換  文中の数値などは num などのマクロ置換する  顔文字などノイズは削る、()などの記号の書式を統一 学習データの正規化 けんちょんは(精神年齢)17歳なの~~ん(⋈◍>◡<◍)。✧♡ unkは(精神年齢)num歳なのーん
  • 40.
    40© 2017 NTTDATA Mathematical Systems Inc. 40  画像にノイズを加えたものを新たなデータに  画像を少し変形をしたものを新たなデータに  左右反転  平行移動  拡大縮小  回転  濃淡を変える  色を少し変える  GAN などで生成した画像を新たなデータに  進行中の研究課題 学習データの水増し (画像編)
  • 41.
    41© 2017 NTTDATA Mathematical Systems Inc. 41  同じ意味の似た言い回しの文を新たに作る  文章要約タスクでは、(元文章, 要約文) のペアに対し て (要約文, 要約文) のペアを新たなデータに 学習データの水増し (テキスト編) 何歳ですか? / 17歳です 何歳なの? / 17歳です 何歳? / 17歳です 何歳でしょうか? / 17歳です
  • 42.
    42© 2017 NTTDATA Mathematical Systems Inc. 42  特に人手で頑張って作ったデータでは誤りも多くある  データに偏りがある場合も多い  場合によってはノイズの大きいデータは省いたり、デー タの正規化を頑張ったりする 学習データの質を疑う
  • 43.
    43© 2017 NTTDATA Mathematical Systems Inc. 43  イントロ  ディープラーニングとは  ディープラーニングの特徴  ディープラーニングの構成要素  ディープラーニングのチューニング技法  ディープラーニングを用いた画像処理  ディープラーニングを用いた自然言語処理  ディープラーニングを用いたマルチモーダル学習 内容
  • 44.
    44© 2017 NTTDATA Mathematical Systems Inc. 44  画像処理: CNN (Convolutional Neural Networks)  自然言語処理: RNN (Recurrent Neural Networks)  マルチモーダル: これらを組み合わせたり 定番手法
  • 45.
    45© 2017 NTTDATA Mathematical Systems Inc. 45  イントロ  ディープラーニングとは  ディープラーニングの特徴  ディープラーニングの構成要素  ディープラーニングのチューニング技法  ディープラーニングを用いた画像処理  ディープラーニングを用いた自然言語処理  ディープラーニングを用いたマルチモーダル学習 内容
  • 46.
    46© 2017 NTTDATA Mathematical Systems Inc. 46  1958年、猫の視覚野に特定の傾きをもつ線分を見せ たときにだけ反応する細胞の発見 (単純型細胞)  単純型細胞で検知した情報を取りまとめて、線分の位 置がずれたりしたものも検出 (複雑型細胞)  さらにこれらの細胞が多層に なって複雑なパターン検出  この階層仮説がヒントに なって CNN が誕生! Hubel--Wiesel の階層仮説 瀧雅人「これならわかる深層学習入門」より 単純型 複雑型
  • 47.
    47© 2017 NTTDATA Mathematical Systems Inc. 47  1958年: Hubel--Wiesel の階層仮説  1979年: Fukushima のネオコグニトロン  単純型細胞と複雑型細胞に対応したユニットを導入  1989年: LeCun らの CNN  現在の CNN とほとんど同じもの  CNN に誤差逆伝播法を適応して高い性能を実現!  2012年: Hinton らが CNN を用いてコンペ優勝  画像認識コンペ ILSVRC Convolutional Neural Networks の歴史
  • 48.
    48© 2017 NTTDATA 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© 2017 NTTDATA 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© 2017 NTTDATA 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© 2017 NTTDATA Mathematical Systems Inc. 51  2012年度 ILSVRC 優勝、16.4%  8層、ディープラーニングブームの火付け役 AlexNet (トロント大学, Hintonら)
  • 52.
    52© 2017 NTTDATA Mathematical Systems Inc. 52  2014年度 ILSVRC 優勝、6.67%  22層 GoogleNet Inception
  • 53.
    53© 2017 NTTDATA Mathematical Systems Inc. 53  2014年度 ILSVRC 準優勝、7.32%  19層 VGG (オックスフォード大)
  • 54.
    54© 2017 NTTDATA Mathematical Systems Inc. 54  2015年度 ILSVRC 優勝、3.56%  152層!!!  層をまたぐスキップ構造が特徴 ResNet (Microsoft Research)
  • 55.
    55© 2017 NTTDATA Mathematical Systems Inc. 55  物体認識 (ここまで)  画像が表すものは何か  物体検出  画像から物体の位置も特定  セグメンテーション  画像のピクセルごとにどのクラスに属するかを出力 最近は...  画像生成、画像ドメイン変換  GAN の爆発的流行 画像処理タスク
  • 56.
    56© 2017 NTTDATA Mathematical Systems Inc. 56 物体認識 Krizhevsky et al., ImageNet Classification with Deep Convolutional Neural Networks, 2012.
  • 57.
    57© 2017 NTTDATA Mathematical Systems Inc. 57 物体検出 He et al., Mask R-CNN, 2017.  画像から物体の位置も特定
  • 58.
    58© 2017 NTTDATA 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© 2017 NTTDATA Mathematical Systems Inc. 59 セグメンテーション Badrinarayanan et al., SegNet: A Deep Convolutional Encoder-Decoder Architecture for Robust Semantic Pixel-Wise Labelling, 2015.  画像のピクセルごとにどのクラスに属するかを出力
  • 60.
    60© 2017 NTTDATA 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© 2017 NTTDATA Mathematical Systems Inc. 61 GAN を利用して画像変換  人の顔をアニメ絵っぽく変換  VAE-GAN など、GAN を利用したドメイン変換は流行 中のホットトピック Tagiman et al., UNSUPERVISED CROSS-DOMAIN IMAGE GENERATION, 2016.
  • 62.
    62© 2017 NTTDATA Mathematical Systems Inc. 62 CycleGAN  「馬をシマウマに、シマウマを馬に」 といった変換 Zhu et al., Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks, 2017.
  • 63.
    63© 2017 NTTDATA 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© 2017 NTTDATA Mathematical Systems Inc. 64 超高解像度な画像生成  そして2017年、高解像度な画像生成が飛躍的進化  画像ラベルマップから高解像度の画像合成!!! Wang et al., High-Resolution Image Synthesis and Semantic Manipulation with Conditional GANs, 2017.
  • 65.
    65© 2017 NTTDATA Mathematical Systems Inc. 65  イントロ  ディープラーニングとは  ディープラーニングの特徴  ディープラーニングの構成要素  ディープラーニングのチューニング技法  ディープラーニングを用いた画像処理  ディープラーニングを用いた自然言語処理  ディープラーニングを用いたマルチモーダル学習 内容
  • 66.
    66© 2017 NTTDATA 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© 2017 NTTDATA Mathematical Systems Inc. 67  ループを持つニューラルネット  𝑧 𝑡 = 𝑓 𝑊in 𝑥 𝑡 + 𝑊𝑠 𝑡−1 , 𝑦 𝑡 = 𝑊out 𝑠 𝑡 Recurrent Neural Networks 𝑊in 𝑥𝑡 𝑦𝑡 𝑠𝑡−1 出力 入力 中間出力 𝑠𝑡 𝑊 𝑊out
  • 68.
    68© 2017 NTTDATA 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© 2017 NTTDATA Mathematical Systems Inc. 69  RNN の大きな弱点  文章が長いと、最初の方のことを忘れたり、最初の方のことの情報が 強すぎて後の方のことが頭に入ってこなかったり 改良された亜種たち  LSTM (Long Short-Term Memory)  GRU (Gated Recurrent Unit) RNN の亜種たち
  • 70.
    70© 2017 NTTDATA Mathematical Systems Inc. 70  忘却ゲートを用意して情報伝達量を調整する  短期記憶メモリのようなものを用意する LSTM Graves, Generating Sequence with Recurrent Neural Networks, 2014.
  • 71.
    71© 2017 NTTDATA 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© 2017 NTTDATA 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© 2017 NTTDATA 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© 2017 NTTDATA Mathematical Systems Inc. 74  分類だけでない!系列データから系列データへの学習  さらに踏み込んで 「なんらかのデータをベクトルに埋め込んだもの」 か ら系列データへの学習も (マルチモーダルへの道)  機械翻訳 (日本語から英語へ)  対話 (言われたことから発話へ)  文章要約 (オリジナル文から要約文へ)  Question Answering (質問文から応答文へ)  画像キャプション生成 (画像から画像キャプションへ)  Visual Question Answering (画像を見て応答)  人間の話し言葉を理解して対話 さらなる RNN の現代的な使い方
  • 75.
    75© 2017 NTTDATA Mathematical Systems Inc. 75  まず RNN を用いて元の文章をベクトルに埋め込む  埋め込まれたベクトルをコンテキストに持ちながら再び RNN を回して 「次の単語を予測する」 を繰り返す Sequence to Sequence 学習 Sutskever et al., Sequence to Sequence Learning with Neural Networks, 2014.
  • 76.
    76© 2017 NTTDATA Mathematical Systems Inc. 76  seq2seq を機械翻訳に応用  昨年末 Google 翻訳がこれになって話題に 機械翻訳 Google’s Neural Machine Translation System: Bridging the Gap between Human and Machine Translation, 2016.
  • 77.
    77© 2017 NTTDATA 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© 2017 NTTDATA Mathematical Systems Inc. 78  seq2seq を文章要約に応用  機械翻訳が成熟し始めた今、かなりのホットトピック 文章要約 Nallapati et al., Abstractive Text Summarization Using Sequence-to-Sequence RNNs and Beyond, 2015.
  • 79.
    79© 2017 NTTDATA Mathematical Systems Inc. 79  seq2seq はコンテキストベクトルがあればいいので、 元系列が文章でなくてもいい 画像キャプション生成 (マルチモーダル) Vinyals et al., Show and Tell: A Neural Image Caption Generator, 2014.
  • 80.
    80© 2017 NTTDATA Mathematical Systems Inc. 80 画像キャプション生成 (マルチモーダル) Vinyals et al., Show and Tell: A Neural Image Caption Generator, 2014.
  • 81.
    81© 2017 NTTDATA 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© 2017 NTTDATA Mathematical Systems Inc. 82 Attention … 質問文 Before … 回答文 (途中) 次 の 単 語 個 私は20 君の年齢は幾つですか? After Bahdanau et al., Neural Machine Translation by Jointly Learning to Align and Translate, 2014.
  • 83.
    83© 2017 NTTDATA 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© 2017 NTTDATA 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© 2017 NTTDATA Mathematical Systems Inc. 85  Memory Networks 研究の源流  外部メモリ的 (Attention は内部メモリ的)  ソートアルゴリズムなどが学習できた Neural Turing Machine メモリ全体から attention 𝒓 𝒕 ← 𝒘 𝒕 𝒊 𝑴𝒕(𝒊) 𝑵 𝒊=𝟏 チューリングマシンのテープ 𝑴 𝒕(𝒊): 𝑵 個の 𝑴 次元ベクトル ※通常のチューリングマシンでは 読み込むテープの箇所は1か所 なんらかのニューラルネットワーク で重み 𝒘 𝒕 𝒊 を生成 書き込み (LSTM を模倣) 𝑴 𝒕 𝒊 ← 𝑴 𝒕−𝟏 𝒊 𝟏 − 𝒘 𝒕 𝒊 𝒆 𝒕 + 𝒘 𝒕 𝒊 𝒂 𝒕 ※ 𝑴𝒕−𝟏 𝒊 𝟏 − 𝒘 𝒕 𝒊 𝒆 𝒕 で前回の記憶 を少し忘れさせて、今回の記憶として 𝒘 𝒕 𝒊 𝒂 𝒕 を加算 ※ 実際に出力するのは 𝒘 𝒕 𝒊 を更新するためのベクトル Graves et al., Neural Turing Machines, 2014.
  • 86.
    86© 2017 NTTDATA 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© 2017 NTTDATA 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© 2017 NTTDATA 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© 2017 NTTDATA 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© 2017 NTTDATA Mathematical Systems Inc. 90  「入力列の中から、順番に適切なものを Attention し て選んでいく」 というフレームワーク  元々は、組合せ最適化問題を解かせるために誕生  現在では、NLP 系で盛んに使われる技術に!! Pointer Networks Vinyals et al., Pointer Networks, 2015.
  • 91.
    91© 2017 NTTDATA Mathematical Systems Inc. 91  「入力列の中から、順番に適切なものを Attention し て選んでいく」 というフレームワーク  元々は、組合せ最適化問題を解かせるために誕生  現在では、NLP 系で盛んに使われる技術に!! Pointer Networks Vinyals et al., Pointer Networks, 2015.
  • 92.
    92© 2017 NTTDATA 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© 2017 NTTDATA 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.
    © 2017 NTTDATA Mathematical Systems Inc.