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.
1
ハンズオン受講のための準備講座
これから始める人のための
ディープラーニング基礎講座
山崎和博
NVIDIA Deep Learning Solution Architect
NVIDIA Corporation
本セッションについて
2
本セッションは、引き続き開催されるハンズオンのための
基礎講座です。
ディープラーニングをこれから始める方を対象に、
基礎概念や用語の解説を行います。
AGENDA
ディープラーニングとは
ニューラルネットの基本構造と処理の流れ
性能改善のための考え方・テクニック
さまざまな応用例とネットワーク
3
ディープラーニングとは
様々な分野で応用されるディープラーニング
インターネットとクラウド
画像分類
音声認識
言語翻訳
言語処理
感情分析
推薦
メディアとエンターテイメント
字幕
ビデオ検索
リアルタイム翻訳
機械の自動化
歩行者検出
白線のトラッキング
信号機の...
ディープラーニングは機械学習の一分野
6
機械学習
ニューラルネットワーク
ディープラーニング
ディープラーニングとは
多数の層から構成されるニューラルネットワーク
7
入力層 出力層
隠れ層
十分なトレーニングデータを与え学習させることで、
複雑な問題を解くことができるようになる
ディープラーニングによる恩恵
8
▪ 高い性能
▪ 多くの分野で既存の方法を超える精度を示している
▪ 拡張性
▪ 同様のアプローチを多くの異なるアプリケーションやデータに適用しやすい
▪ ネットワークの基本単位がシンプルなので、別の問題への転...
ニューラルネットの基本構造と処理の流れ
9
人工ニューラルネットワーク
10
w1 w2 w3
x1 x2 x3
y
y=w1x1+w2x2+w3x3
人工ニューロン(パーセプトロン)
人工ニューラルネットワーク
人工ニューロンを
多層で組み合わせる
ディープラーニングの出力例
11
犬
ある画像を入力する その画像が何かという
分類結果を出力する
ディープラーニングの出力例
12
別の画像を入力する 狸
誤った結果を
出力することもある
ディープラーニングの2つのフェーズ
13
モデル
犬
推論(inference):
蜜穴熊
学習(training):
モデル
犬
狸
猫
フィードバック
学習した結果を用いる
犬
猫
トレーニングデータ
ディープラーニングの学習プロセス:詳細
14
出力
“dog”
“cat”
“human”
“tiger”
正解ラベル
“cat”
“dog”
“monkey”
“lion”
1.入力されたデータに
したがい結果を出力
誤差...
ディープラーニングの学習プロセス:詳細
15
トレーニングデータ
1.入力されたデータに
したがい結果を出力
4.誤差が小さくなる
まで繰り返す
3.誤差を用いて
ネットワークを更新
出力
“dog”
“cat”
“human”
“tiger”...
誤差の計算
16
“tiger”
“lion”
誤差
期待結果との差などを
誤差として計算
出力
80%
20%
正解ラベル
0%
100%
出力
“tiger”
トレーニングデータ
出力
“tiger” 80%
“lion” 20%
ディープラーニングの学習プロセス:詳細
17
トレーニングデータ
出力
“dog”
“cat”
“human”
“tiger”
正解ラベル
“cat”
“dog”
“monkey”
“lion”
1.入力されたデータに
したがい結果を出力
2....
誤差
誤差逆伝播法
18
誤差を逆方向に伝えて、各層の重み行列を更新する
トレーニングデータ
ディープラーニングの学習プロセス:詳細
19
トレーニングデータ
出力
“dog”
“cat”
“human”
“tiger”
正解ラベル
“cat”
“dog”
“monkey”
“lion”
1.入力されたデータに
したがい結果を出力
2....
重み更新
勾配降下法による更新
20重み w
誤差 E
最適解 現在値
誤差を最小化する
重みが最適解
ニューラルネットワークの内部状態
(=重み)に応じて、誤差は変動する
重み更新
勾配降下法による更新
21重み w
誤差 E
最適解 現在値
重みを最適解方向へ
更新する(重みを小さくする)
重みを最適解方向へ
更新する(重みを大きくする)
現在値
重み更新
勾配降下法による更新
22重み w
誤差 E
最適解
傾きが正(=右上がり)
なら値を減少させる
傾きが負(=右下がり)
なら値を増加させる
wn wm
重み更新
勾配降下法による更新
23重み w
誤差 E
wnwn+1
wn+2
最適解
(ゴール)
ディープラーニングの学習プロセス:詳細
24
トレーニングデータ
出力
“dog”
“cat”
“human”
“tiger”
正解ラベル
“cat”
“dog”
“monkey”
“lion”
1.入力されたデータに
したがい結果を出力
誤差...
学習プロセスの単位:ミニバッチ
25
全トレーニングデータ(バッチ)
ミニバッチ#3
ミニバッチ#2
ミニバッチ#1
ミニバッチ#1
誤差
誤差
誤差
誤差
ミニバッチ単位で
誤差を計算し更新
ミニバッチ#3
誤差
誤差
誤差
誤差
ミニバッチ#2
誤差
誤差
誤差
誤差
学習プロセスの単位:エポック
26
全トレーニングデータ(バッチ)
ミニバッチ#3
ミニバッチ#2
ミニバッチ#1
ミニバッチ#1
誤差
誤差
誤差
誤差
全トレー...
性能改善のための考え方・テクニック
27
学習経過の確認
28
トレーニングデータから計算した
誤差の変化量が一定範囲以下になる
=「学習が収束」
誤差
エポック
training
学習が収束すると、うまく入力に対して予測できるニューラルネットになっている……
とは限らない
学習結果の妥当性チェック
29
収集したデータ
検証データ(validation data)
訓練データ(training data)
重みの更新
(学習)に使用
汎化性能の
確認に使用
データを訓練データと検証データに分割し、学習結果を評価す...
学習結果の妥当性チェック
30
エポック
training
validation
誤差
エポック
training
validation
誤差
学習がうまく進んだ場合
→訓練データ、検証データとも
誤差が下がっていく
学習が失敗した場合
→訓練...
学習率
重み更新時に勾配の適用量を調整するパラメータ
31重み w
誤差 E
wnwn+1 wn+2
学習率が大きすぎると
最適解付近を往復
誤差 E
wnwn+1wn+2
学習率が小さすぎると
学習の進みが遅い
学習率
局所解との関係
32
スタート
重み w
誤差 E
局所解
ゴール?
最適解
本当に到達しなければ
ならないゴール
学習率
局所解との関係
33
最適解
3
2
5
6
スタート
重み w
誤差 E
7
8
大きな学習率で
大きく更新
ゴール
途中から学習率を下げ
小さく更新
41
活性化関数
精度向上のためのテクニック
34
w1
w2
w3
x1
x2
x3
y=w1x1+w2x2+w3x3
人工ニューロン(パーセプトロン)
y F
z=F(y)
F: activation function
活性化関数
z 次の層
活性化関数
35
ReLU(Rectified Linear Unit)
sigmoid
tanh
非線型な活性化関数によって、複雑な問題にも
対応できるようになる。
入力データの正規化(Normalization)
性能向上のためのテクニック
36
データが偏っている
偏りの影響を
弱めるように変換
Dropout
過学習回避のテクニック
37
z1
z2
z3
x1
x2
x3
y1
y2
y3
y4
y1
y4
隠れ層の一部ノードを
ランダムに無効化
Batch Normalization
学習の収束を早めるテクニック
38
x1
x2
x3
y1
y2
y3
y4
z1
z2
z3
bn1
bn2
bn3
bn4
隠れ層などへの入力を
ミニバッチ単位で正規化
さまざまな応用例とネットワーク
39
様々な問題設定
40
教師あり学習
(Supervised learning)
分類(Classification):
データを(多くは事前に決めた)グループに対応付ける問題
(例:動物の画像に種類のラベルを自動付与)
回帰(Regressio...
応用例:画像分類
動物の画像へ種類のラベルを付与
41
猫
犬
レッサーパンダ
畳み込みニューラルネットワーク
(Convolutional Neural Network)
画像分類等で用いられ、畳み込み層で画像の特徴を学習
42
畳み込み層&
プーリング層
全結合層
CNN: 畳み込み層
43
ソースピクセルは、畳み込みカーネルで計算される領域の中心。
畳み込み計算は、カーネルが示すパターンにソースピクセルの付近
が類似しているかを表す。
4
0
0
0
0
0
0
0
-4
0
0
0
0
0
0
0
0...
4
0
0
0
0
0
0
0
-4
CNN: 畳み込み層
44
ソースピクセルは、畳み込みカーネルで計算される領域の中心。
畳み込み計算は、カーネルが示すパターンにソースピクセルの付近
が類似しているかを表す。
2
0
0
0
0
0
0
0...
CNN: プーリング層
45
画像を縮小しつつ、重要な情報を抽出するための方法。
画像を粗く区切り、各ブロックから最大値や平均値を計算して縮小。
例: 元画像が
21 x 21
ブロックサイズ:
3 x 3
おおよその位置・
形状が保存される
...
CNN: プーリング層
46
画像を縮小しつつ、重要な情報を抽出するための方法。
画像を粗く区切り、各ブロックから最大値や平均値を計算して縮小。
例: 元画像が
21 x 21
ブロックサイズ:
3 x 3
平均値を計算
おおよその位置・
形状...
応用例:物体検出/セマンティックセグメンテーション
47
物体検出
画像の中に写っている
物体のおおまかな位置と
種類を推定
セマンティックセグメンテーション
画像の中に写っている
物体の詳細な位置と
種類を推定
応用例:物体検出/セマンティックセグメンテーション
48
物体検出
セマンティックセグメンテーション
応用例:系列データ予測, 異常予測
49
系列データ予測
次が上がるのか
下がるのかを予測する 異常予測
定常的なふるまいと
異なる動作を予測する
リカレントニューラルネットワーク
(Recurrent Neural Network)
主に音声認識・自然言語処理などで用いられ、系列データ向き
50
隠れ層の出力を
入力として戻す
出力層
隠れ層
入力層
リカレントニューラルネットワーク
(Recurrent Neural Network)
主に音声認識・自然言語処理などで用いられ、系列データ向き
51
出力層
隠れ層
入力層
展開
出力層
隠れ層
入力層
出力層
隠れ層
入力層
t=1 t=2...
まとめ
52
Appendix.
53
•NVIDIA Deep Learning Labs
•エヌビディアが提供するAWS上でのディープラーニング自主学習コース
•https://nvidia.qwiklab.com/tags/Deep%20Learnin...
www.nvidia.com/dli
Thank you!
Upcoming SlideShare
Loading in …5
×

これから始める人の為のディープラーニング基礎講座

6,480 views

Published on

このスライドは 2017 年 4 月 18 日(水)に東京ミッドタウンで開催された NVIDIA Deep Learning Institute Day #NVDLD の最初のセッション「これから始める人の為のディープラーニング基礎講座」にて山崎和博がプレゼンテーションを行ったスライドです。

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. 1 ハンズオン受講のための準備講座 これから始める人のための ディープラーニング基礎講座 山崎和博 NVIDIA Deep Learning Solution Architect NVIDIA Corporation
  2. 2. 本セッションについて 2 本セッションは、引き続き開催されるハンズオンのための 基礎講座です。 ディープラーニングをこれから始める方を対象に、 基礎概念や用語の解説を行います。
  3. 3. AGENDA ディープラーニングとは ニューラルネットの基本構造と処理の流れ 性能改善のための考え方・テクニック さまざまな応用例とネットワーク 3
  4. 4. ディープラーニングとは
  5. 5. 様々な分野で応用されるディープラーニング インターネットとクラウド 画像分類 音声認識 言語翻訳 言語処理 感情分析 推薦 メディアとエンターテイメント 字幕 ビデオ検索 リアルタイム翻訳 機械の自動化 歩行者検出 白線のトラッキング 信号機の認識 セキュリティと防衛 顔検出 ビデオ監視 衛星画像 医学と生物学 癌細胞の検出 糖尿病のランク付け 創薬 5
  6. 6. ディープラーニングは機械学習の一分野 6 機械学習 ニューラルネットワーク ディープラーニング
  7. 7. ディープラーニングとは 多数の層から構成されるニューラルネットワーク 7 入力層 出力層 隠れ層 十分なトレーニングデータを与え学習させることで、 複雑な問題を解くことができるようになる
  8. 8. ディープラーニングによる恩恵 8 ▪ 高い性能 ▪ 多くの分野で既存の方法を超える精度を示している ▪ 拡張性 ▪ 同様のアプローチを多くの異なるアプリケーションやデータに適用しやすい ▪ ネットワークの基本単位がシンプルなので、別の問題への転用がしやすい ▪ 特徴量は学習を通して獲得され人間が設計しないため、他のデータへ応用しやすい ▪ スケーラビリティ ▪ より多くのデータを用いて学習する事で精度が向上する
  9. 9. ニューラルネットの基本構造と処理の流れ 9
  10. 10. 人工ニューラルネットワーク 10 w1 w2 w3 x1 x2 x3 y y=w1x1+w2x2+w3x3 人工ニューロン(パーセプトロン) 人工ニューラルネットワーク 人工ニューロンを 多層で組み合わせる
  11. 11. ディープラーニングの出力例 11 犬 ある画像を入力する その画像が何かという 分類結果を出力する
  12. 12. ディープラーニングの出力例 12 別の画像を入力する 狸 誤った結果を 出力することもある
  13. 13. ディープラーニングの2つのフェーズ 13 モデル 犬 推論(inference): 蜜穴熊 学習(training): モデル 犬 狸 猫 フィードバック 学習した結果を用いる 犬 猫
  14. 14. トレーニングデータ ディープラーニングの学習プロセス:詳細 14 出力 “dog” “cat” “human” “tiger” 正解ラベル “cat” “dog” “monkey” “lion” 1.入力されたデータに したがい結果を出力 誤差 2.期待結果との違い を誤差として計算 4.誤差が小さくなる まで繰り返す 3.誤差を用いて ネットワークを更新
  15. 15. ディープラーニングの学習プロセス:詳細 15 トレーニングデータ 1.入力されたデータに したがい結果を出力 4.誤差が小さくなる まで繰り返す 3.誤差を用いて ネットワークを更新 出力 “dog” “cat” “human” “tiger” 正解ラベル “cat” “dog” “monkey” “lion”誤差 2.期待結果との違い を誤差として計算
  16. 16. 誤差の計算 16 “tiger” “lion” 誤差 期待結果との差などを 誤差として計算 出力 80% 20% 正解ラベル 0% 100% 出力 “tiger” トレーニングデータ 出力 “tiger” 80% “lion” 20%
  17. 17. ディープラーニングの学習プロセス:詳細 17 トレーニングデータ 出力 “dog” “cat” “human” “tiger” 正解ラベル “cat” “dog” “monkey” “lion” 1.入力されたデータに したがい結果を出力 2.期待結果との違い を誤差として計算 4.誤差が小さくなる まで繰り返す 誤差 3.誤差を用いて ネットワークを更新
  18. 18. 誤差 誤差逆伝播法 18 誤差を逆方向に伝えて、各層の重み行列を更新する トレーニングデータ
  19. 19. ディープラーニングの学習プロセス:詳細 19 トレーニングデータ 出力 “dog” “cat” “human” “tiger” 正解ラベル “cat” “dog” “monkey” “lion” 1.入力されたデータに したがい結果を出力 2.期待結果との違い を誤差として計算 4.誤差が小さくなる まで繰り返す 誤差 3.誤差を用いて ネットワークを更新
  20. 20. 重み更新 勾配降下法による更新 20重み w 誤差 E 最適解 現在値 誤差を最小化する 重みが最適解 ニューラルネットワークの内部状態 (=重み)に応じて、誤差は変動する
  21. 21. 重み更新 勾配降下法による更新 21重み w 誤差 E 最適解 現在値 重みを最適解方向へ 更新する(重みを小さくする) 重みを最適解方向へ 更新する(重みを大きくする) 現在値
  22. 22. 重み更新 勾配降下法による更新 22重み w 誤差 E 最適解 傾きが正(=右上がり) なら値を減少させる 傾きが負(=右下がり) なら値を増加させる wn wm
  23. 23. 重み更新 勾配降下法による更新 23重み w 誤差 E wnwn+1 wn+2 最適解 (ゴール)
  24. 24. ディープラーニングの学習プロセス:詳細 24 トレーニングデータ 出力 “dog” “cat” “human” “tiger” 正解ラベル “cat” “dog” “monkey” “lion” 1.入力されたデータに したがい結果を出力 誤差 2.期待結果との違い を誤差として計算3.誤差を用いて ネットワークを更新 4.誤差が小さくなる まで繰り返す
  25. 25. 学習プロセスの単位:ミニバッチ 25 全トレーニングデータ(バッチ) ミニバッチ#3 ミニバッチ#2 ミニバッチ#1 ミニバッチ#1 誤差 誤差 誤差 誤差 ミニバッチ単位で 誤差を計算し更新
  26. 26. ミニバッチ#3 誤差 誤差 誤差 誤差 ミニバッチ#2 誤差 誤差 誤差 誤差 学習プロセスの単位:エポック 26 全トレーニングデータ(バッチ) ミニバッチ#3 ミニバッチ#2 ミニバッチ#1 ミニバッチ#1 誤差 誤差 誤差 誤差 全トレーニングデータを使った1サイクルを エポック(epoch)と呼ぶ
  27. 27. 性能改善のための考え方・テクニック 27
  28. 28. 学習経過の確認 28 トレーニングデータから計算した 誤差の変化量が一定範囲以下になる =「学習が収束」 誤差 エポック training 学習が収束すると、うまく入力に対して予測できるニューラルネットになっている…… とは限らない
  29. 29. 学習結果の妥当性チェック 29 収集したデータ 検証データ(validation data) 訓練データ(training data) 重みの更新 (学習)に使用 汎化性能の 確認に使用 データを訓練データと検証データに分割し、学習結果を評価することが重要
  30. 30. 学習結果の妥当性チェック 30 エポック training validation 誤差 エポック training validation 誤差 学習がうまく進んだ場合 →訓練データ、検証データとも 誤差が下がっていく 学習が失敗した場合 →訓練データのみ誤差が下がり、 検証データは十分な精度が出ない 右の状態は「過学習(overfitting)している」と表現され、汎化性能が低い状態 (汎化性能=訓練データに含まれていないデータへの予測性能)
  31. 31. 学習率 重み更新時に勾配の適用量を調整するパラメータ 31重み w 誤差 E wnwn+1 wn+2 学習率が大きすぎると 最適解付近を往復 誤差 E wnwn+1wn+2 学習率が小さすぎると 学習の進みが遅い
  32. 32. 学習率 局所解との関係 32 スタート 重み w 誤差 E 局所解 ゴール? 最適解 本当に到達しなければ ならないゴール
  33. 33. 学習率 局所解との関係 33 最適解 3 2 5 6 スタート 重み w 誤差 E 7 8 大きな学習率で 大きく更新 ゴール 途中から学習率を下げ 小さく更新 41
  34. 34. 活性化関数 精度向上のためのテクニック 34 w1 w2 w3 x1 x2 x3 y=w1x1+w2x2+w3x3 人工ニューロン(パーセプトロン) y F z=F(y) F: activation function 活性化関数 z 次の層
  35. 35. 活性化関数 35 ReLU(Rectified Linear Unit) sigmoid tanh 非線型な活性化関数によって、複雑な問題にも 対応できるようになる。
  36. 36. 入力データの正規化(Normalization) 性能向上のためのテクニック 36 データが偏っている 偏りの影響を 弱めるように変換
  37. 37. Dropout 過学習回避のテクニック 37 z1 z2 z3 x1 x2 x3 y1 y2 y3 y4 y1 y4 隠れ層の一部ノードを ランダムに無効化
  38. 38. Batch Normalization 学習の収束を早めるテクニック 38 x1 x2 x3 y1 y2 y3 y4 z1 z2 z3 bn1 bn2 bn3 bn4 隠れ層などへの入力を ミニバッチ単位で正規化
  39. 39. さまざまな応用例とネットワーク 39
  40. 40. 様々な問題設定 40 教師あり学習 (Supervised learning) 分類(Classification): データを(多くは事前に決めた)グループに対応付ける問題 (例:動物の画像に種類のラベルを自動付与) 回帰(Regression): データから、対応する量を予測する問題 (例:過去の履歴からある会社の一ヶ月後の株価を予測) 本ハンズオンで 主に取り扱う問題
  41. 41. 応用例:画像分類 動物の画像へ種類のラベルを付与 41 猫 犬 レッサーパンダ
  42. 42. 畳み込みニューラルネットワーク (Convolutional Neural Network) 画像分類等で用いられ、畳み込み層で画像の特徴を学習 42 畳み込み層& プーリング層 全結合層
  43. 43. CNN: 畳み込み層 43 ソースピクセルは、畳み込みカーネルで計算される領域の中心。 畳み込み計算は、カーネルが示すパターンにソースピクセルの付近 が類似しているかを表す。 4 0 0 0 0 0 0 0 -4 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 2 2 1 1 1 0 1 2 2 2 1 1 0 1 2 2 2 1 1 0 0 1 1 1 1 1 0 0 0 0 0 0 0 1 0 -8 ピクセル値 (src) 畳み込み カーネル ピクセル値 (dst)
  44. 44. 4 0 0 0 0 0 0 0 -4 CNN: 畳み込み層 44 ソースピクセルは、畳み込みカーネルで計算される領域の中心。 畳み込み計算は、カーネルが示すパターンにソースピクセルの付近 が類似しているかを表す。 2 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 2 1 1 1 0 1 2 2 2 1 1 0 1 2 2 2 1 1 0 0 1 1 1 1 1 0 0 0 0 0 0 0 ピクセル値 (src) 畳み込み カーネル ピクセル値 (dst) 1 0 24 -4
  45. 45. CNN: プーリング層 45 画像を縮小しつつ、重要な情報を抽出するための方法。 画像を粗く区切り、各ブロックから最大値や平均値を計算して縮小。 例: 元画像が 21 x 21 ブロックサイズ: 3 x 3 おおよその位置・ 形状が保存される 7x7に 縮小される 平均値を計算
  46. 46. CNN: プーリング層 46 画像を縮小しつつ、重要な情報を抽出するための方法。 画像を粗く区切り、各ブロックから最大値や平均値を計算して縮小。 例: 元画像が 21 x 21 ブロックサイズ: 3 x 3 平均値を計算 おおよその位置・ 形状が保存される 7x7に 縮小される
  47. 47. 応用例:物体検出/セマンティックセグメンテーション 47 物体検出 画像の中に写っている 物体のおおまかな位置と 種類を推定 セマンティックセグメンテーション 画像の中に写っている 物体の詳細な位置と 種類を推定
  48. 48. 応用例:物体検出/セマンティックセグメンテーション 48 物体検出 セマンティックセグメンテーション
  49. 49. 応用例:系列データ予測, 異常予測 49 系列データ予測 次が上がるのか 下がるのかを予測する 異常予測 定常的なふるまいと 異なる動作を予測する
  50. 50. リカレントニューラルネットワーク (Recurrent Neural Network) 主に音声認識・自然言語処理などで用いられ、系列データ向き 50 隠れ層の出力を 入力として戻す 出力層 隠れ層 入力層
  51. 51. リカレントニューラルネットワーク (Recurrent Neural Network) 主に音声認識・自然言語処理などで用いられ、系列データ向き 51 出力層 隠れ層 入力層 展開 出力層 隠れ層 入力層 出力層 隠れ層 入力層 t=1 t=2 前の隠れ層を次の入力にする ことで、依存関係を考慮できる 長い系列ほど深い ネットワークになる
  52. 52. まとめ 52
  53. 53. Appendix. 53 •NVIDIA Deep Learning Labs •エヌビディアが提供するAWS上でのディープラーニング自主学習コース •https://nvidia.qwiklab.com/tags/Deep%20Learning •書籍(日本語) •深層学習 (機械学習プロフェッショナルシリーズ)/岡谷貴之 •イラストで学ぶディープラーニング/山下 隆義 •オンラインドキュメント(英語) •Deep Learning(MIT Press book) •http://www.deeplearningbook.org/
  54. 54. www.nvidia.com/dli Thank you!

×