...

w - Nvidia

by user

on
Category: Documents
19

views

Report

Comments

Transcript

w - Nvidia
ハンズオン受講の為の準備講座
これから始める人の為の
ディープラーニング基礎講座
村上真奈
NVIDIA CUDA & Deep Learning Solution Architect
NVIDIA Corporation
1
機械学習とディープラーニングの関係
AGENDA
ディープラーニングとは?
ニューラルネットワークの構造
ディープラーニングの学習とは
•
•
畳み込みニューラルネットワーク
午後に予定しているハンズオンの為の基礎講座
ディープラーニングをこれから始める方を対象に
基礎概念や用語の解説を行います
http://www.slideshare.net/NVIDIAJapan/ss-71043984
機械学習とは?
機械学習とディープラーニングの関係
機械学習
ニューラルネットワーク
ディープラーニング
分類(Classification)と回帰(Regression)
機械学習とは?
• 分類問題の例
• 画像に写っているのが猫か犬の画像か推論する
• 回帰問題の例
• N社の1ヶ月後の株価を予想する
分類(Classification)と回帰(Regression)
機械学習とは?
回帰問題
分類問題
猫
分類も回帰もデータの法則を見つけて関数近似する必要がある
犬
分類問題の例
機械学習とは?
例) 正常と異常に分類する事を考える
正常
赤:異常
青:正常
𝑌 = αX + β
x2
異常
x1
分類問題の例
機械学習とは?
例) 正常と異常に分類する事を考える
赤:異常
青:正常
正常
x2
異常
x1
複雑な関数近似が必要になる
ディープラーニング手法による分類の例
学習が進むにつれて、分離
が上手くいくようになる
ディープラーニングとは
10
様々な分野でディープラーニングを応用
インターネットとクラウド
医学と生物学
メディアとエンターテイメント
セキュリティと防衛
機械の自動化
画像分類
音声認識
言語翻訳
言語処理
感情分析
推薦
癌細胞の検出
糖尿病のランク付け
創薬
字幕
ビデオ検索
リアルタイム翻訳
顔検出
ビデオ監視
衛星画像
歩行者検出
白線のトラッキング
信号機の認識
人工ニューラルネットワーク
単純で訓練可能な数学ユニットの集合体
ニューラルネットワーク全体で複雑な機能を学習
隠れ層
入力層
出力層
十分なトレーニングデータを与えられた人工ニューラルネットワークは、入力データから判断を行う
複雑な近似を行う事が出来る。
ディープラーニングの恩恵
ディープラーニングとニューラルネットワーク
 ロバスト性
 特徴量の設計を行う必要がない。 – 特徴は自動的に獲得される学習用データのバラつきの影響を
押さえ込みながら、自動的に学習していく
 一般性
 同じニューラルネットワークのアプローチを多くの異なるアプリケーションやデータに適用する事が出来る
 スケーラブル
 より多くのデータで大規模並列化を行う事でパフォーマンスが向上する
ディープラーニングのアプローチ
トレーニング:
エラー
犬
猫
モデル
犬
猫
アライグマ
蜜穴熊
認識:
犬
モデル
ニューラルネットワークの構造(多層パーセプトロン)
人工ニューロン
神経回路網をモデル化
神経回路網
人工ニューロン
y
w1
x1
w2
w3
x2
x3
スタンフォード大学cs231講義ノートより
y=F(w1x1+w2x2+w3x3)
F(x)=max(0,x)
人口ニューロン
ニューラルネットワークの構造
人工ニューロンを組み合わせ、多層ニューラルネットワークを構成可能
入力層のサイズはN
入力層のサイズは3
…
…
…
多層パーセプトロン(3層)
ニューラルネットワークの構造
入力層
x1
隠れ層
重み
重み
w111
w211
w112
x2
y1
w212
w122
w222
w132
y2
z1
w221
w121
w131
x3
出力層
z2
w213
w223
z3
多層パーセプトロン(3層)
ニューラルネットワークの構造
入力層
x1
隠れ層
重み
重み
w111
w211
w112
x2
y1
w212
w122
w222
w132
y2
z1
w221
w121
w131
x3
出力層
z2
w213
w223
z3
多層パーセプトロン
ニューラルネットワークの構造
入力
データ
x1
出力
データ
w111
w112
x2
y1
w212
w122
w222
w132
y2
z1
w221
w121
w131
x3
w211
z2
w213
w223
z3
多層パーセプトロン
ニューラルネットワークの構造
x1
w111
w112
x2
y1
w212
w122
w222
w132
y2
z1
w221
w121
w131
x3
w211
z2
w213
w223
z3
𝑥1
𝑥2
𝑥3
𝑤111
𝑤121
𝑤131
𝑤112
𝑤122 = 𝑦1
𝑤132
𝑦2
多層パーセプトロン
ニューラルネットワークの構造
x1
w111
w112
x2
y1
w212
w122
w222
w132
y2
z1
w221
w121
w131
x3
w211
z2
w213
w223
z3
𝑦1
𝑦2
𝑤211
𝑤221
𝑤212
𝑤222
𝑤213
𝑧1
=
2
𝑤 23
𝑧2
𝑧3
多層パーセプトロン
ニューラルネットワークの構造
x1
w111
w112
x2
y1
w212
w122
w222
w132
y2
z1
w221
w121
w131
x3
w211
z2
w213
w223
z3
𝑥
1
2
𝑊𝑊
=𝑧
重み係数の調整
ニューラルネットワークの構造
x1
w111
w112
x2
y1
w212
w122
w222
w132
y2
教師データ
z1
t1
z2
t2
z3
t3
出力 z と正解ラベル t の誤差を
計算し 、出力が正解ラベルに近
づくように重みW1とW2を調整
w221
w121
w131
x3
w211
出力
w213
w223
ディープラーニングの学習
勾配降下法
勾配降下法
誤差逆伝播の仕組み
誤差 E
現在値から
減少させる
最適解に
近づけるには?
最適解
現在値
重み w
勾配降下法
誤差逆伝播の仕組み
誤差 E
最適解に
近づけるには?
現在値から
増加させる
現在値
最適解
重み w
勾配降下法
誤差逆伝播の仕組み
誤差 E
傾きが負なら
最適解より小さい
傾きが正なら
最適解より大きい
wn
最適解
wm
重み w
勾配降下法
誤差逆伝播の仕組み
誤差 E
最適解
(ゴール)
wn +2 wn +1 wn
重み w
学習率 (Learning Rate)
誤差逆伝播の仕組み
誤差 E
最適解
(ゴール)
www
wnwnw
-1n -322 1 w0
重み w
学習率 (Learning Rate)
誤差逆伝播の仕組み
誤差 E
重みの更新量は
学習率(Learning Rate)で調整
更新量
wnwn -1 w1 w0
重み w
勾配降下法の注意点
誤差逆伝播の仕組み
誤差 E
スタート
ゴール
局所解
重み w
勾配降下法の注意点
誤差逆伝播の仕組み
誤差 E
スタート
ゴール
最適解
重み w
誤差逆伝播法
順伝播(forward propagation)
誤差逆伝播法
入力
レイヤー2
レイヤー1
x
w
y
x
レイヤーN
y
x[N] ww[N][M]
x
w
y[M]
y
出力
正解ラベル
01000
00010
“dog”
“cat”
ロス
関数
39
逆伝播(backward propagation)
誤差逆伝播法
入力
レイヤー2
レイヤー1
x
y
x
レイヤーN
y
x
w
w
w
⊿w
⊿w
⊿w
⊿y
⊿x
⊿y
⊿x
y
出力
正解ラベル
01000
00010
“dog”
“cat”
ロス
関数
⊿y
error
40
重みの更新
誤差逆伝播法
入力
レイヤー2
レイヤー1
x
y
x
レイヤーN
y
x
w
w
w
⊿w
⊿w
⊿w
⊿y
⊿x
⊿y
⊿x
y
出力
正解ラベル
01000
00010
“dog”
“cat”
ロス
関数
⊿y
error
41
ミニバッチ
誤差逆伝播法
入力
レイヤー2
レイヤー1
x
y
x
レイヤーN
y
x
w
w
w
⊿w
⊿w
⊿w
⊿y
⊿x
⊿y
⊿x
y
出力
正解ラベル
“dog”
“cat”
“human”
“tiger”
“cat”
“dog”
“monkey”
“lion”
ロス関数
⊿y
error
42
ディープラーニングの学習の流れ
訓練データと検証データ
ディープラーニングの学習
 データを訓練データ(training data)と検証データ(validation data)に分割する
訓練データ(training data)
収集したデータ
重みの更新
(学習)に使用
検証データ(validation data)
汎化性能の
確認に使用
訓練データによる重みの更新
ディープラーニングの学習
訓練データをニューラルネットワークに与え、正解ラベルと出力結果の誤差が無くなるように重みWの
更新を繰り返す
訓練データ
正解は犬
猫
犬
検証データ
熊
狸
訓練データによる重みの更新
ディープラーニングの学習
訓練データをニューラルネットワークに与え、正解ラベルと出力結果の誤差が無くなるように重みWの
更新を繰り返す
訓練データ
正解に近づくように、各層の重みを更新する
猫
犬
検証データ
熊
狸
学習ループ
訓練データと検証データの役割
すべての訓練データを用いて重み更新を行う + すべての検証データで汎化性能を確認
⇒ 1 エポック(epoch)と呼ぶ
訓練データ
猫
犬
検証データ
熊
狸
検証データで
現在の汎化性能を確認
(重みの更新には使用しない)
学習時の性能の確認
訓練データと検証データの役割
各エポックで訓練データをニューラルネットワークに与えた際の間違い率と検証データを与えた際の間
違い率を確認しながら学習を進める必要がある
エラー数
エラー数
validation
学習失敗(過学習)
training
training
0
validation
学習成功
エポック
0
エポック
畳み込みニューラルネットワーク
50
畳込みニューラルネットワーク(CNN)
• 画像認識・画像分類で使われる、高い認識精度を誇るアルゴリズム。畳込み層で画像の特徴を学習
目的
顔認識
トレーニングデータ
1,000万~1億イメージ
ネットワークアーキテクチャ ラーニングアルゴリズム
10 層
30 エクサフロップスの計算量
10 億パラメータ
GPU を利用して30日
畳込み層
全結合層
51
畳込み層
0
0
0
ピクセル値
(src)
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
4
0
0
0
0
0
0
0
0
-4
-8
ピクセル値(dst)
52
まとめ
53
Appendix.
• NVIDIA Deep Learning Labs
• エヌビディアが提供するAWS上でのディープラーニング自主学習コース
• https://nvidia.qwiklab.com/tags/Deep%20Learning
• 書籍(日本語)
• 深層学習 (機械学習プロフェッショナルシリーズ)/岡谷貴之
• イラストで学ぶディープラーニング/山下 隆義
Thank you!
www.nvidia.com/dli
Fly UP