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