• 検索結果がありません。

AGENDA ディープラーニングとは Qwiklab/Jupyter notebook/digits の使い方 DIGITS による物体検出入門ハンズオン

N/A
N/A
Protected

Academic year: 2021

シェア "AGENDA ディープラーニングとは Qwiklab/Jupyter notebook/digits の使い方 DIGITS による物体検出入門ハンズオン"

Copied!
51
0
0

読み込み中.... (全文を見る)

全文

(1)

1

ハンズオンラボ2

DIGITS による物体検出入門

村上真奈

NVIDIA CUDA & Deep Learning Solution Architect NVIDIA Corporation

(2)

AGENDA

ディープラーニングとはQwiklab/Jupyter notebook/DIGITSの使い方 DIGITSによる物体検出入門ハンズオン

(3)
(4)

機械学習とディープラーニングの関係

機械学習

ニューラルネットワーク

(5)

14

様々な分野でディープラーニングを応用

インターネットとクラウド 画像分類 音声認識 言語翻訳 言語処理 感情分析 推薦 メディアとエンターテイメント 字幕 ビデオ検索 リアルタイム翻訳 機械の自動化 歩行者検出 白線のトラッキング 信号機の認識 セキュリティと防衛 顔検出 ビデオ監視 衛星画像 医学と生物学 癌細胞の検出 糖尿病のランク付け 創薬

(6)

15

人工ニューロン

神経回路網をモデル化

スタンフォード大学cs231講義ノートより 神経回路網 w1 w2 w3 x1 x2 x3 y y=F(w1x1+w2x2+w3x3) F(x)=max(0,x) 人工ニューロン

(7)

人工ニューラルネットワーク

単純で訓練可能な数学ユニットの集合体

ニューラルネットワーク全体で複雑な機能を学習

入力層 出力層 隠れ層 十分なトレーニングデータを与えられた人工ニューラルネットワークは、入力データから判断を行う 複雑な近似を行う事が出来る。

(8)

ディープラーニングの恩恵

ディープラーニングとニューラルネットワーク

 ロバスト性  特徴量の設計を行う必要がない。 – 特徴は自動的に獲得される学習用データのバラつきの影響を 押さえ込みながら、自動的に学習していく  一般性  同じニューラルネットワークのアプローチを多くの異なるアプリケーションやデータに適用する事が出来る  スケーラブル  より多くのデータで大規模並列化を行う事でパフォーマンスが向上する

(9)

ディープラーニングのアプローチ

認識: 蜜穴熊 エラー 犬 猫 アライグマ 犬 トレーニング:

モデル

モデル

(10)

 データを訓練データ(training data)検証データ(validation data)に分割する

訓練データと検証データ

ディープラーニングの学習

収集したデータ 検証データ(validation data) 訓練データ(training data) 重みの更新 (学習)に使用 汎化性能の 確認に使用

(11)

訓練データによる重みの更新

ディープラーニングの学習

訓練データ 猫 犬 熊 検証データ 訓練データをニューラルネットワークに与え、正解ラベルと出力結果の誤差が無くなるように重みWの 更新を繰り返す 正解は犬

(12)

訓練データによる重みの更新

ディープラーニングの学習

訓練データ 猫 犬 熊 検証データ 訓練データをニューラルネットワークに与え、正解ラベルと出力結果の誤差が無くなるように重みWの 更新を繰り返す 正解に近づくように、各層の重みを更新する

(13)

学習ループ

訓練データと検証データの役割

訓練データ 猫 犬 熊 検証データ すべての訓練データを用いて重み更新を行う + すべての検証データで汎化性能を確認 ⇒ 1 エポック(epoch)と呼ぶ 検証データで 現在の汎化性能を確認 (重みの更新には使用しない)

(14)

学習時の性能の確認

訓練データと検証データの役割

各エポックで訓練データをニューラルネットワークに与えた際の間違い率と検証データを与えた際の間 違い率を確認しながら学習を進める必要がある エラー数 エポック 0 training validation エラー数 エポック 0 training validation 学習成功 学習失敗(過学習)

(15)

24

畳込みニューラルネットワーク(CNN)

• 画像認識・画像分類で使われる、高い認識精度を誇るアルゴリズム。畳込み層で画像の特徴を学習 目的 顔認識 トレーニングデータ 1,000万~1億イメージ ネットワークアーキテクチャ 10 層 10 億パラメータ ラーニングアルゴリズム 30 エクサフロップスの計算量 GPU を利用して30日 畳込み層 全結合層

(16)

25

畳込み層

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 4 0 0 0 0 0 0 0 -4 1 0 -8 ピクセル値 (src) 畳み込み カーネル ピクセル値(dst) カーネルの中心の値はソースピクセル 上に置かれている。 ソースピクセルはフィルタを自身の積 の値に更新される。

(17)

26

(18)

27 ディープラーニング・フレームワーク Mocha.jl

ディープラーニング・フレームワーク

GPUで高速化されているディープラーニング・フレームワークが多数存在

https://developer.nvidia.com/deep-learning-frameworks

(19)

28

ディープラーニング・フレームワーク

Caffe Torch7 Theano TensorFlow Chainer

インターフェース C++/Python/Matlab Lua/C Python C/C++/Python Python

cuDNN 5 5 5 5 5 ライセンス BSD-2 BSD BSD Apache 2.0 MIT マルチGPU (1ノード) ○ ○ ○ ○ モデルの柔軟性 △ ◎ ◎ ○ ◎ CNN ○ ○ ○ ○ ○ RNN ○ #2033 ○ ○ ○ ○ RBM × ○ ○ ○ ○ 備考 高速

Caffe Model Zoo

多数のアルゴリズムを

(20)

29 1/18/2

017

(21)

30

Caffeとは?

• コアエンジンはC++/CUDA • コマンドライン、Python、Matlabインターフェース • 高速, コードのテストが良く行われている • 前処理および開発ツール、リファレンスモデルやサンプルコードが充実 • 画像データマネージメント • GPUによる高速化の機能 • コミュニティが大きく活動が盛ん

BVLCによって開発されたディープラーニング開発用のオープンフレームワーク

caffe.berkeleyvision.org http://github.com/BVLC/caffe

(22)

31

Caffeの特徴

データの前処理とマネージメント

データ取り込みフォーマット

LevelDB または LMDB データベース イン-メモリ(C++とPython のみ) HDF5 画像ファイル

前処理ツール

RAWデータからのLevelDB/LMDB 生成 トレーニングセットとバリデーション セットのシャッフル生成 平均画像の生成

データ変換

画像のクリッピング、リサイズ、ミ ラーリング 差分画像

(23)

32

Caffeの特徴

Protobuf モデルフォーマット

ネットワーク構造定義および学習 パラメータの定義に使われる 様々なフォーマットに対応Caffeの オートジェネレータで生成可能。 構文チェック機能も存在 コーディングが必要ない name: “conv1” type: “Convolution” bottom: “data” top: “conv1” convolution_param { num_output: 20 kernel_size: 5 stride: 1 weight_filler { type: “xavier” } }

ディープラーニングモデル定義

(24)

33

Caffe特徴

ロス関数:

Classification Softmax Hinge loss Linear regression Euclidean loss Attributes/multi-classification

Sigmoid cross entropy loss

and more…

使用可能レイヤー:

Convolution Pooling Normalization

活性化関数:

ReLU Sigmoid Tanh and more…

ディープラーニングモデル定義

(25)

34 1/18/2

017

(26)

35

学習データの作成 モデルの作成 学習過程の可視化 モデルのテスト

GPUで高速化されたディープラーニングトレーニング・システム

NVIDIA DIGITS

(27)

36

NVIDIA DIGITS

手元のPCからWebブラウザでアクセス可能なディープラーニングトレーニングシステム

GPUで高速化されたディープラーニングトレーニング・システム

ユーザー インターフェース データセットの作成 学習モデルの作成 学習過程の可視化 レイヤーの可視化 Chainer GPU

GPU HW マルチGPU GPUクラスタ クラウド

Theano Torch Caffe cuDNN, cuBLAS CUDA 学習 NVCaffe cuDNN, cuBLAS CUDA • 画像分類と物体検出の為のDNNのデザ インと可視化の機能を提供 • NVIDIAが最適化したフレームワークで高 速に学習が可能 • ハイパーパラメータ・チューニングを強力に サポート • DL学習のジョブを簡単にスケジューリング、 リアルタイムにaccuracyとlossを監視 • 様々な学習データフォーマット、フレーム ワークに対応

(28)
(29)

DIGITSの使い方1

1.

学習データセットの作成

2.

学習モデルの作成、学習開始

3.

学習済みモデルのテスト

DIGITSのワークフロー

学習

推論

(インファレンス)

(30)

DIGITSの使い方2

ホーム画面の戻り方

(31)

DIGITSの使い方3

データセット作成/モデル作成

データセット作成

(32)

DIGITSの使い方4

データセット作成/モデルの作成

物体検出したい場合

[Object Detection]を選択

画像分類したい場合

[Classification]を選択

(33)

43

DIGITSの使い方5

DIGITSは、Caffeを使って学習を行う事が出来る。

ネットワークの構造の変更方法

Caffeが選択されて いる事を確認 Alexnetが選択され ている モデルの変更画面に遷移

(34)

44

DIGITSの使い方5

caffeのモデル定義ファイル(prototxt)を書き換える

ネットワークの構造の変更方法

(35)
(36)

Qwiklabのアクセス方法

https://nvlabs.qwiklab.com/にアクセスし、[DLI2017-Japan]->[エヌビディアDIGITSによる物 体検出]を選択

DIGITSによる物体検出入門

① ② ③

(37)

Qwiklabのアクセス方法

「ラボを開始」を選択、インスタンスの起動を待つ

DIGITSによる物体検出入門

(38)

56

Jupyter notebookの使い方

1/18/2017 タイマーカウントダウン 実行中は黒丸 それ以外は白丸

(39)

57

Jupyter notebookの使い方

1/18/2017 In []: と書いてあるセルは動的実行が出来ます 選択されていると緑の枠が 表示される 再生ボタンでセルの実行が出来る (Shift-Enterでも良い)

(40)

58

(41)

ディープラーニング手法による物体検出

Right Whale Recognition(https://www.kaggle.com/c/noaa-right-whale-recognition) のデータを使って物体検出を学ぶ

(42)

ディープラーニング手法による物体検出

今回のラボでは以下の4つの物体検出方法を紹介する

• 検出方法1:画面のスキャン + CNN 演習あり

• 検出方法2:候補領域 + CNN

• 検出方法3: FCN(Full Convolutional Network) 演習あり

• 検出方法4: DetectNet 演習あり

(43)

検出方法1.画面のスキャン + CNN

「鯨」か「非鯨」を判別するニューラルネットワークをトレーニングする

(44)

検出方法1.画面のスキャン + CNN

画像を分割、それぞれの領域を畳込みニューラルネットワーク(CNN)に通す

基本アイディア

Whale

(45)

検出方法1.画面のスキャン + CNN

1. Jupyter notebookからDIGITSを起動し、「鯨」「非鯨」を判別するニューラルネットワークを作 成する。 1. DIGITSで[Datasets]->[Image Classication]から学習データを作成する 2. DIGITSで[Models]->[Image Classication]からモデル作成と学習をする 2. 学習が終わったら、ジョブIDを控える 3. Jupyter notebookに戻り、先ほど学習したモデルを用いて推論(インファレンス)処理を行う

ハンズオン

(46)

検出方法1.画面のスキャン + CNN

(47)

2.候補領域 + CNN

1の場合とアイディアは同じ。違いは、画像を単純に分割するのではなく、候補領域を求めてから畳 込みニューラルネットワーク(CNN)に通す

基本アイディア

Whale Not Whale

(48)

3.FCN(Full Convolutional Network)

全結合層を持たない、すべて畳込み層のネットワークを使って物体検出を行う

http://www.image-net.org/challenges/LSVRC/2013/slides/overfeat_ilsvrc2013.pdf

(49)

3.FCN(Full Convolutional Network)

1. 検出方法1のハンズオンで作成した「鯨」と「非鯨」を分類するモデルをFCNに書き換える 1. [Clone Job]でモデルを複製 2. [Standard Networks]->[Alexnet横のcustom]をクリック->テキストボックス内部のネット ワーク定義を書きかえる • fc6 – fc8までのエリアを書き換える • [Model Name]を適当につけて、[Create]ボタンをクリックして、学習を開始 2. 学習が終わったら、ジョブIDを控える 3. Jupyter notebookに戻り、先ほど学習したモデルを用いて推論(インファレンス)処理を行う

ハンズオン

(50)

3.FCN(Full Convolutional Network)

(51)

4.DetectNet

DetectNetを用いた物体検出の方法

https://devblogs.nvidia.com/parallelforall/detectnet-deep-neural-network-object-detection-digits/

基本アイディア

参照

関連したドキュメント

図 21 のように 3 種類の立体異性体が存在する。まずジアステレオマー(幾何異 性体)である cis 体と trans 体があるが、上下の cis

何人も、その日常生活に伴う揮発性有機 化合物の大気中への排出又は飛散を抑制

何人も、その日常生活に伴う揮発性有機 化合物の大気中への排出又は飛散を抑制

Dual I/O リードコマンドは、SI/SIO0、SO/SIO1 のピン機能が入出力に切り替わり、アドレス入力 とデータ出力の両方を x2

41 の 2―1 法第 4l 条の 2 第 1 項に規定する「貨物管理者」とは、外国貨物又 は輸出しようとする貨物に関する入庫、保管、出庫その他の貨物の管理を自

化学品を危険有害性の種類と程度に より分類、その情報が一目でわかる ようなラベル表示と、 MSDS 提供を実 施するシステム。. GHS

関係の実態を見逃すわけにはいかないし, 重要なことは労使関係の現実に視

④