• Tidak ada hasil yang ditemukan

ディープラーニングを使ってみる

N/A
N/A
Protected

Academic year: 2025

Membagikan "ディープラーニングを使ってみる"

Copied!
68
0
0

Teks penuh

(1)

1

ディープラーニングを使ってみる

(2)

演習のターゲット

ディープラーニングで「0」〜「9」の手書き数字を見分ける

2

• MNIST の手書き数字データセットを利用

• 2つのシンプルなモデルで精度比較

(3)

3

本日講義のゴール

ゼロから手書き数字識別モデルを構築し、ネットワークをカスタマイズ

3

1. プロジェクト作成

2. Affine を使ったシンプルなモデルを構築し、検証

3. CNN を使った少し高度なモデルを構築し、検証

4. CNN のネットワークをカスタマイズし、精度の向上を検討

– 1つのモデルの精度検証に 30 分程度(実時間)必要になります.

– 実行計画を立て、精度が最高になるネットワークを見つけてください.

(4)

Neural Network Console クラウド版にサインイン

Chrome

ブラウザを起動し、

Neural Network Console

Web

からクラウドにサインイン。

1. “dl.sony.com/ja/”

にアクセス

2. “

サインイン

クリック

演習

(5)

5

プロジェクト作成

Project

タブの

New Project

から新規プロジェクトを作成する。

セットアップ データセット 準備

ネットワーク

作成 学習 評価 構造自動探索 推論

1. “Project”

クリック

2. “New Project”

クリック

演習

3.

半角英数字で任意 のプロジェクト名を 入力し

”OK”

をクリッ

(6)

ネットワーク編集画面の確認

ネットワークの編集画面が表示されることを確認。

演習

(7)

7

データセットの連携 演習

セットアップ データセット 準備

ネットワーク

作成 学習 評価 構造自動探索 推論

1. “DATASET”

をクリック

2. “Not Set”

をクリック

3. “ mnist.mnist_training ”

をマウ

スオーバーし、右側に表示される アイコンをクリック

学習用データセットの設定。

(8)

データセットの連携 演習

1. “Validation”

をクリック

2. “Not Set”

をクリック

3. “ mnist.mnist_test ”

をマウス

オーバーし、右側に表示される アイコンをクリック

評価用データセットの設定。

(9)

9

ネットワーク編集画面の表示

ネットワーク編集画面を表示。

演習

1. “EDIT”

をクリック

セットアップ データセット 準備

ネットワーク

作成 学習 評価 構造自動探索 推論

(10)

ネットワーク作成

レイヤー選択パネルからネットワーク構造パネルにレイヤーをドラック&ドロップする。

すでにあるレイヤーと連結し、ネットワークを構成する。

レイヤーパラメータパネルで各レイヤーの詳細を設定する。

レイヤー 選択

レイヤー 設定

ネットワーク構造

学習指示

ネットワーク 統計量

1.レイヤーを選択

2.ネットワークを連結

クリック 離す

データの次元を表現

28

28

24

24

16

演習補足資料

(11)

11

最小のモデル

0~9の手書き数字文字を分類するための分類モデルを作成する。

分類問題の例

Input

Categorycal CrossEntoropy

Softmax

確率に変換

分類問題に対応し

Loss Function

Affine

Output

のサイズに調整

インプットは

28x28

の白黒画像の ため、サイズを「

1,28,28

」に変更

10

分類のため、サイズを

10

に設定

演習

セットアップ データセット 準備

ネットワーク

作成 学習 評価 構造自動探索 推論

(12)

学習回数の設定

学習の繰り返し回数を設定する。

1. Max Epoch

“10”

に変更

演習

※変更しないと100に設定されているため、計算が1時間以上かかることがあります.

(13)

13

学習の実行

2.“Run”

をクリック

1.“EDIT”

をクリック

セットアップ データセット 準備

ネットワーク

作成 学習 評価 構造自動探索 推論

演習

3.

学習結果が表示 されることを確認

学習の実行を行い、結果が表示されることを確認。

(14)

レイヤー説明: Affine

入力層の全ての値を用いた線形変換を行うレイヤーである。

Output

のサイズを任意に指定でき、レイヤーのサイズを自在に調整できる。

Output

の各セルは

Input

の全ての値が入力値として利用される。

𝒚 = 𝑾𝒙 + 𝒃

1

次元

→1

次元の例

2

次元

→2

次元の例

Input Output

Input Output

演習補足資料

全結合層

(15)

15

レイヤー説明: Softmax

入力層のそれぞれの値を各セルの確率に変換するレイヤーである。

出力層の各セルの値を

0

1

に、セルの総和を

1

にすることが可能である。

分類問題でのネットワークの最後に使用する。

1.0 -1.5

2.0 1.3 -1.7 -0.1 2.9

0 0.6 2.8

0.05 0.00 0.14 0.07 0.00 0.02 0.35 0.02 0.04 0.31

Softmax 𝑝 ! = 𝑒 " !

∑ # 𝑒 " "

入力層 出力層

いろいろと変換

セットアップ データセット 準備

ネットワーク

作成 学習 評価 構造自動探索 推論

演習補足資料

$

!

𝑝 ! = ∑ ! 𝑒 "

!

∑ # 𝑒 "

"

= 1

𝑝 !

𝑥 !

Softmax関数

確率に変換

総和が1

(16)

レイヤー説明: Loss Function (分類問題の場合)

予測値と真値との誤差で、ネットワークの性能の悪さを示す指数を出力するレイヤーである。

学習ではこれを小さくするようにパラメータをアップデートする。

Loss Function: 𝐿 = −log(𝑥 " )

CategoricalCrossEntropy

𝑥 " : 真のクラスの予測確率

CategoricalCrossEntropy F(x) = -log(x)

演習補足資料

𝐿

が⼤きい

è

予測が真のクラスから遠い

𝐿

が⼩さい

è

予測が真のクラスに近い
(17)

2値分類問題 多値分類問題 回帰問題 (連続値などの数値の予測)

最後の活性化関数

Sigmoid

⼊⼒値を0.0〜1.0(確率)に する

Softmax

⼊⼒値の合計が1.0となる0.0

~ 1.0(確率)にする

(使⽤しない)

ロス関数

BinaryCrossEntropy

出⼒と正解が全体としてどれくら い離れているかを計算

CategoricalCrossEntropy

出⼒と正解カテゴリーが全体とし てどれくらい離れているかを計算

SquareError

出⼒と正解の値の差の2乗(2 乗誤差)を計算

代表的なネットワーク の例

課題に合わせて最後の活性化関数とロス関数を設定する

ネットワークの最後の活性化関数とロス関数 演習補足資料

(18)

評価の実行

学習結果が表示されている画面で、再度

”Run”

をクリックし 評価を実行。

演習

1.“Run”

をクリック

2.

評価結果が表示 されることを確認

3.

混同行列
(19)

19

分類問題の例

Input

Categorycal CrossEntoropy

Softmax

確率に変換

分類問題に対応し

Loss Function

Affine

Output

のサイズに調整

CNN の実装

ネットワークを変更し試行錯誤を実施。

画像分類で用いられることが多い

Convolutional Neural Network (CNN)

を実装する。

ここに

CNN

のセットを実装

セットアップ データセット 準備

ネットワーク

作成 学習 評価 構造自動探索 推論

演習

(20)

よく利用されるレイヤーの組み合わせ

ネットワークを作成する際は、レイヤーを組み合わせたセットを最小単位として考えることが 多い。

Convolution

のセットの例

全結合

活性化関数

Affine

のセットの例

活性化関数は

tanh

など他を使う場合もある

活性化関数は

tanh

など他を使う場合もある

• Pooling

層は

SumPooling

など他を使う場合もある 畳み込み

ダウンサンプリング 活性化関数

演習補足資料

(21)

21

レイヤー説明: Convolution

入力データを一定サイズごと順番に線形変換を行うレイヤーである。

画像の局所的な特徴を抽出可能である。

In pu t

Output

※1枚の

layer

に対しては同じ変換

Output

の枚数

(OutMaps)

カーネルの移動量

(Stride)

𝑦 = 1

!,$

𝑤 !$ 𝑥 !$ + 𝑏

セットアップ データセット 準備

ネットワーク

作成 学習 評価 構造自動探索 推論

演習補足資料

3x3

1

Padding

(1,1)

w11 w12 w13

w21 w22 w23

w31 w32 w33

各カーネルに 重みをかけて 和をとる

局所的なニューロンの⼊⼒を元に 出⼒ニューロンの値を求める

畳み込み層

変換する⼊⼒

(カーネル)のサイズ (KernelShape)

(22)

レイヤー説明: Pooling

入力データを一定サイズごとに順に変換するレイヤーである。

カーネルのサイズと移動量をそろえて、画像サイズを圧縮することが一般的である。

Input

Output

Layer

変換内容

MaxPooling

カーネルの中の最大値を取得

AveragePooling

カーネルの中の平均値を取得

SumPooling

カーネルの中の総和を取得

カーネルのサイズ

(KernelShape)

カーネルの移動量

(Stride)

Pooling

層の種類

演習補足資料

0 1 1 5 2 8 2 3 3 1 2 4 9 2 1 1

8 5 9 4

MaxPoolingの例

(23)

23

レイヤー説明: Activate (ReLU, Tanh)

インプットの各セルに対して、非線形変換

を行うレイヤーである。

ネットワークの途中に、この

Activate Function

を入れることが精度を出すためには必須である。

挿入する場所は

Convolution

層や

Pooling

層の後に挿入することが一般的である。

f(x 00 ) f(x 01 )

Tanh ReLU

※非線形変換とは

Affine

Convolution

とは異なり、1次関数で表すことができない変換

f(x)=max(0, x) f(x)=tanh(x)

Input Output

x 00 x 01

セットアップ データセット 準備

ネットワーク

作成 学習 評価 構造自動探索 推論

演習補足資料

(24)

CNN の実装

Convolution

層と

Affine-ReLU

層の組み合わせと

Convolution

のパラメータ

(OutMaps, KernelShape)

及び、

Affine

のサイズを変更し、試行錯誤することができる。

• Convolution

層の数

• Convolution

のパラメータ

(OutMaps, KernelShape)

• Affine-ReLU

層の数

• Affine

のサイズ

演習

各ユニットをクリックすると 左下に設定されている パラメタが表⽰されます。

(25)

25

ネットワークの試行錯誤による精度向上

精度向上をするための戦略を決める

・・・・・・・・・

1層 2層

・・・

1層 2層

・・・

• パラメタは以下の5種類

層数

1. Convolution

(CMR

のセット

)

の数

2. Affine-ReLU

(AR

のセット

)

の数

Convolution

のパラメタ

3. OutMaps

初期値

: 16

4. KernelShape

初期値

:(3,3)

Affine

のサイズ

5. OutShape

初期値

: 100

• 例えば …

CMR:1~3

) x (AR:1,3,5,7,9

) à 15

通り

à 5

人で

1

人3通り

※「構造⾃動探索」は時間がかかり、ネットワーク構造⾃体を 探索するので、今回は⽤いない.

(26)

参考資料

(27)

27

ネットワーク作成

レイヤー選択パネルからネットワーク構造パネルにレイヤーをドラック&ドロップする。

すでにあるレイヤーと連結し、ネットワークを構成する。

レイヤーパラメータパネルで各レイヤーの詳細を設定する。

レイヤー 選択

レイヤー 設定

ネットワーク構造

学習指示

ネットワーク 統計量

1.レイヤーを選択

2.ネットワークを連結 3.詳細設定

クリック 離す

データの次元を表現

28

28

24

24

16

演習補足資料

セットアップ データセット 準備

ネットワーク

作成 学習 評価 構造自動探索 推論

(28)

ネットワークを形成するレイヤー

100

種類のレイヤーが実装されており、これらを組み合わせてネットワークを作成する。

IO Activation Math Logical Others

Input Tanh Sum LogicalAnd BatchNormalization

Loss Sigmoid Mean LogicalOr Dropout

SquaredError Abs Prod LogicalXor Concatenate

HuberLoss ReLU Max Equal Reshape

BinaryCrossEntropy CReLU Min NotEqual Broadcast

SigmidCrossEntropy PReLU Log GreaterEqual Flip

CategoricalCrossEntropy ELU Exp Greater Shit

SoftmaxCrossEntropy CELU Sign LessEqual Transpose

KLMultinomial Softmax Arithmetic(Scalar) Less Slice

Parameter LoopControl AddScalar LogicalAndScalar Stack

Parameter RepeatStart MulScalar LogicalOrScalar VATNoise

WorkingMemory RepeatEnd RSubScalar LogicalXorScalar Unlink

Basic ReccurentInput RDivScalar EqualScalar Identity

Affine ReccurentOutput PowScalar NotEqualScalar Comment

Convolution Delay RPowScalar GreaterEqualScalar Others(Pre Process)

Deconvolution Binary MaximumScalar GreaterScalar OneHot

Embed BinaryConnectAffine MinimumScalar LessEqualScalar RandomCrop

Pooling BinaryConnectConvolution Arthmetic(2 Inputs) LessScalar RandomFlip

MaxPooling BinaryWeightAffine Add2 LogicalNot RandomShift

AveragePooling BonaryWightConvolution Sub2 Validation MeanSubtraction

SumPooling BinaryTanh Mul2 BinaryError ImageAugmentation

Unpooling BinarySigmoid Div2 TopNError

Unit Pow2

LSTM Maximum2

Minimum2

演習補足資料

(29)

29

レイヤーの組み合わせ方

Input

から始まって、

Loss Function(

ネットワークの精度を評価する層

)

で終える。

Loss Function

とその直前のレイヤーは問題設定によって適宜修正する必要がある。

それ以前の部分に関しては、問題設定によらず使いまわすことが可能である。

Input

Loss Function

Affine Convolution MaxPooling

ReLU

適宜並べ替えて配置

一般的な配置方法 分類問題の例

Input

Categorycal CrossEntoropy

Softmax

確率に変換

分類問題に対応し

Loss Function

回帰問題の例

SquaredError HuberLoss

Output

のサイズに調整

ネットワーク部分評価

Input

Loss Function Affine Affine

Output

のサイズに調整

演習補足資料

セットアップ データセット 準備

ネットワーク

作成 学習 評価 構造自動探索 推論

(30)

よく利用されるレイヤーの組み合わせ

ネットワークを作成する際は、レイヤーを組み合わせたセットを最小単位として考えることが 多い。

Convolution

のセットの例

全結合

活性化関数

Affine

のセットの例

活性化関数は

tanh

など他を使う場合もある

活性化関数は

tanh

など他を使う場合もある

• Pooling

層は

SumPooling

など他を使う場合もある 畳み込み

ダウンサンプリング 活性化関数

演習補足資料

(31)

31

ネットワークを形成するレイヤー

100

種類のレイヤーが実装されており、これらを組み合わせてネットワークを作成する。

代表的なレイヤー(青枠で囲った部分)を次頁以降で説明する。

IO Activation Math Logical Others

Input Tanh Sum LogicalAnd BatchNormalization

Loss Sigmoid Mean LogicalOr Dropout

SquaredError Abs Prod LogicalXor Concatenate

HuberLoss ReLU Max Equal Reshape

BinaryCrossEntropy CReLU Min NotEqual Broadcast

SigmidCrossEntropy PReLU Log GreaterEqual Flip

CategoricalCrossEntropy ELU Exp Greater Shit

SoftmaxCrossEntropy CELU Sign LessEqual Transpose

KLMultinomial Softmax Arithmetic(Scalar) Less Slice

Parameter LoopControl AddScalar LogicalAndScalar Stack

Parameter RepeatStart MulScalar LogicalOrScalar VATNoise

WorkingMemory RepeatEnd RSubScalar LogicalXorScalar Unlink

Basic ReccurentInput RDivScalar EqualScalar Identity

Affine ReccurentOutput PowScalar NotEqualScalar Comment

Convolution Delay RPowScalar GreaterEqualScalar Others(Pre Process)

Deconvolution Binary MaximumScalar GreaterScalar OneHot

Embed BinaryConnectAffine MinimumScalar LessEqualScalar RandomCrop

Pooling BinaryConnectConvolution Arthmetic(2 Inputs) LessScalar RandomFlip

MaxPooling BinaryWeightAffine Add2 LogicalNot RandomShift

AveragePooling BonaryWightConvolution Sub2 Validation MeanSubtraction

SumPooling BinaryTanh Mul2 BinaryError ImageAugmentation

Unpooling BinarySigmoid Div2 TopNError

Unit Pow2

LSTM Maximum2

Minimum2

演習補足資料

セットアップ データセット 準備

ネットワーク

作成 学習 評価 構造自動探索 推論

(32)

レイヤー説明: Input

ネットワーク全体の入力層にあたるレイヤーである。

パラメータとして入力データのサイズを入力する必要がある。

指定したデータサイズと入力データのサイズが合わない場合、学習時にエラーが発生する。

データサイズの例 表データ

ID

性別 年齢 居住地 収入 ・・・ 購入

頻度

00001

男性

20

東京

700

00002

男性

30

埼玉

600

00003

女性

20

東京

300

00004

女性

10

東京

NA

個人属性情報

100

カラム 予測値

入力サイズ:

100

白黒画像

入力サイズ:

(1, 28, 28)

28

28 RGB

画像

入力サイズ:

(3, 256, 128)

256

128

演習補足資料

(33)

33

レイヤー説明: Affine

入力層の全ての値を用いた線形変換を行うレイヤーである。

Output

のサイズを任意に指定でき、レイヤーのサイズを自在に調整できる。

Output

の各セルは

Input

の全ての値が入力値として利用される。

𝒚 = 𝑾𝒙 + 𝒃

1

次元

→1

次元の例

2

次元

→2

次元の例

Input Output

Input Output

セットアップ データセット 準備

ネットワーク

作成 学習 評価 構造自動探索 推論

演習補足資料

出⼒ニューロンは全ての⼊⼒ニューロンの信号を受け取る

全結合層
(34)

レイヤー説明: Convolution

入力データを一定サイズごと順番に線形変換を行うレイヤーである。

画像の局所的な特徴を抽出可能である。

Input Output

※1枚の

layer

に対しては同じ変換

Output

の枚数

(OutMaps)

変換する⼊⼒

(カーネル)のサイズ (KernelShape)

カーネルの移動量

(Stride) 𝑦 = 1

!,$

𝑤 !$ 𝑥 !$ + 𝑏

演習補足資料

3x3

1

Padding

(1,1) 局所的なニューロンの⼊⼒を元に

出⼒ニューロンの値を求める

畳み込み層
(35)

35

レイヤー説明: Pooling

入力データを一定サイズごとに順に変換するレイヤーである。

カーネルのサイズと移動量をそろえて、画像サイズを圧縮することが一般的である。

Input

Output

Layer

変換内容

MaxPooling

カーネルの中の最大値を取得

AveragePooling

カーネルの中の平均値を取得

SumPooling

カーネルの中の総和を取得

カーネルのサイズ

(KernelShape)

カーネルの移動量

(Stride)

Pooling

層の種類

セットアップ データセット 準備

ネットワーク

作成 学習 評価 構造自動探索 推論

演習補足資料

0 1 1 5 2 8 2 3 3 1 2 4 9 2 1 1

8 5

9 4

MaxPoolingの例
(36)

レイヤー説明: Activate (ReLU, Tanh)

インプットの各セルに対して、非線形変換

を行うレイヤーである。

ネットワークの途中に、この

Activate Function

を入れることが精度を出すためには必須である。

挿入する場所は

Convolution

層や

Pooling

層の後に挿入することが一般的である。

f(x 00 ) f(x 01 )

Tanh ReLU

f(x)=max(0, x) f(x)=tanh(x)

Input Output

x 00 x 01

演習補足資料

(37)

37

レイヤー説明: Softmax

入力層のそれぞれの値を各セルの確率に変換するレイヤーである。

出力層の各セルの値を

0

1

に、セルの総和を

1

にすることが可能である。

分類問題でのネットワークの最後に使用する。

1.0 -1.5

2.0 1.3 -1.7 -0.1 2.9

0 0.6 2.8

0.05 0.00 0.14 0.07 0.00 0.02 0.35 0.02 0.04 0.31

Softmax

𝑝 ! = 𝑒 " !

∑ # 𝑒 " "

入力層 出力層

いろいろと変換

セットアップ データセット 準備

ネットワーク

作成 学習 評価 構造自動探索 推論

演習補足資料

$

!

𝑝 ! = ∑ ! 𝑒 "

!

∑ # 𝑒 "

"

= 1

𝑝 !

𝑥 !

Softmax関数

確率に変換

総和が1

(38)

レイヤー説明: Loss Function

予測値と真値との誤差で、ネットワークの性能の悪さを示す指数を出力するレイヤーである。

学習ではこれを小さくするようにパラメータをアップデートする。

𝐿 = 𝑥 − 𝑦 !

𝐿 = * 𝑥 − 𝑦 ! , 𝑥 − 𝑦 < 𝑑 𝛿 2 𝑥 − 𝑦 − 𝛿 , 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒 𝐿 = −log(𝑥 " )

回帰問題の場合 分類問題の場合

CategoricalCrossEntropy

𝑥 " :

真のクラスの予測確率

SquaredError HuberLoss

𝑥 :

予測値、

𝑦:

真の値

CategoricalCrossEntropy

F(x) = -log(x) SquaredError

HuberLoss SquaredError

に比べて、

HuberLoss

のほうが外 れ値に敏感でない

𝑥:

予測値、

𝑦:

真の値

演習補足資料

(39)

39

レイヤー説明: Dropout

確率

p

で各セルの値をゼロにする変換を行うレイヤーである。

特定のネットワークの学習を阻害でき、過学習に対して有効である。

学習時にのみ作用し、推論時には作用しない。

Dropout

層 入力層 出力層

Dropout

なし

Dropout

あり

確率的にネット ワークを寸断する 構造の概要

セットアップ データセット 準備

ネットワーク

作成 学習 評価 構造自動探索 推論

(40)

レイヤー説明: BatchNormalization

入力層の値をバッチサイズごとに平均を

0

、標準偏差を

1

に規格化するレイヤーである。

ネットワークの学習プロセスを全体的に安定化させ、学習速度を高めることに寄与する。

𝜇 = 1

𝑀 1

!

𝑥 ! 𝜎 = 1

𝑀 1

!

𝑥 ! − 𝜇 <

8𝑥 ! = 𝑥 ! − 𝜇 𝜎 < + 𝜖 𝑦 = 𝛾 8𝑥 ! + 𝛽

セットアップ データセット 準備

ネットワーク

作成 学習 評価 構造自動探索 推論

y 00 y 01

Input Output

x 00 x 01

(41)

41

レイヤー説明: Sigmoid

入力層の値を

0

1

に変換するレイヤーである。

確率値の回帰問題でのネットワークの最後に使用される。

Sigmoid

入力値 出力値

いろいろと変換

-∞

∞ 0

1

𝑓(𝑥) = 1

1 + 𝑒 *+"

セットアップ データセット 準備

ネットワーク

作成 学習 評価 構造自動探索 推論

(42)

ネットワーク構造の例( LeNet5 )

代表的なネットワークについても、レイヤーを組み合わせたセットで構成されている。

28×28

8×8×16 4×4×16 24×24×6

12×12×6

入力

出力

1 x 28 x 28 6 x 24 x 24 6 x 12 x 12 16 x 8 x 8 16 x 4 x 4 120

convolution maxpooling tanh convolution maxpooling tanh affine tanh

6 x 12 x 12 16 x 4 x 4

affine softmax

120 10 10

120 10 Convolution

Convolution

Affine +tanh

Affine +softmax Maxpooling

(sub sampling) + tanh

セットアップ データセット 準備

ネットワーク

作成 学習 評価 構造自動探索 推論

Maxpooling

(sub sampling)

+ tanh

(43)

43

学習の実行

(44)

学習の実行

EDIT

ページで学習に使用するインスタンスを選択し、

Run

ボタンで学習が実行される。進捗や

結果は

TRAINING

ページで確認できる。

学習実行の方法

TRAINING

ページの概要

学習曲線

(縦軸

:

誤差、横軸

:

学習世代)

コアエンジンのログ出力

演習補足資料

(45)

45

学習曲線の読み方

Training

Validation

の両データの

Error

が低いことがよいモデルであると言える。

Training

Error

は低いものの、

Validation

Error

が高い状況を過学習と呼び、モデルが

Training

に 特化しすぎて、汎化性能(未知のデータへの精度が高いこと)を失っている状態である。

Epoch

誤差

Epoch

誤差

Training Data

(学習に使用したデータ) Validation Data

(学習に使用しないデータ)

よいモデルの学習結果 悪いモデルの学習結果(過学習)

学習が進むにつれて 誤差が小さくなる

Training

Validation

の 差が大きい

演習補足資料

セットアップ データセット 準備

ネットワーク

作成 学習 評価 構造自動探索 推論

(46)

学習パラメータの設定

Global Config

ページにおいて、学習世代数とバッチサイズを設定できる。

学習曲線が収束していないと判断した場合には学習世代数を増やす。

バッチサイズは小さすぎるとパラメータ更新が頻発し、学習が非効率になる。

バッチサイズは一般に分類問題なら分類クラス数以上にする。

バッチサイズ

1回のパラメータ更 新に使うデータ数

学習世代数

全学習データを使っ た時点で

1

世代と数 える

ミニバッチ1 ミニバッチ2 ミニバッチM

Loss

を計算

バッチサイズごとに分割

Training Dataset

1世代の学習の仕組み 学習パラメータの設定

Loss

が小さくなるように パラメータを更新

※各世代ごとにランダムにミニバッチを取り直す

演習補足資料

(47)

47

パラメータの更新方法(学習方法)

ニューラルネットワークでは、乱数で初期化したパラメータ

W

をミニバッチ勾配降下法

Mini-Batch Gradient Descent

)で最適化するのが一般的である。

Forward→Backward→Update

を繰り返し、パラメータ

W

を最適化していく。

入力x

出力y

0 1 2 3 4 5 6 7 8 9

… … … …

1.

学習データからミニバッチ(

256

個程度のデータ)を取得

2.

用意したデータを用いて

Forward

計算を行い、現在のパラ

メータ

W

による出力

y

とロス(最小化したい値)

E

を求める

3. Backward

計算を(ロス

E

の逆伝播)行い、パラメータ

W

の勾

ΔW

を求める

4. Update

を行う(求めた勾配

ΔW

を元に

W

を更新)

2. Forward

(入力から出力を計算)

ロスE

3. Backward

(パラメータの勾配を計算)

パラメータ

W

パラメータの勾配

ΔW w

E

δE δW

𝑊 $%& ← 𝑊 $ -𝜂Δ𝑊 $

0 1 2 3 4 5 6 7 8 9

正解

演習補足資料

セットアップ データセット 準備

ネットワーク

作成 学習 評価 構造自動探索 推論

(48)

評価の実行

(49)

49

評価の実行

TRAINING

ページの

Run

ボタンをクリックすると

EVALUTION

ページに遷移し結果を表示する。

各データに対するモデルの予測結果や統計的な精度や指数、混同行列などを確認できる。

評価実行の方法 表示可能なグラフの概要

セットアップ データセット 準備

ネットワーク

作成 学習 評価 構造自動探索 推論

評価グラフ 内容 問題

Output

Result

各データの1つ1つの判定結果

Confusion Matrix Classification

Result Classification

Matrix Likelihood

Graph

分類

/

回帰 データセット全体の統計的な指標と混同行列 分類 各データの判定確率上位3カテゴリの確率

カテゴリごとのモデルの判定傾向 判定確率と正答率の傾向

分類 分類 分類

演習補足資料

(50)

評価の見方: Output Result

検証用データ

(Dataset

タブの

Validation

データ

)

の右側に

Deep Learning

の予測結果が追記される。

1

1

つの検証用データに対し、

Deep Learning

がどのように判断したかを確認できる。

Output Result

ページのスナップショットとその見方

検証用データから転記

Deep Learning

の予測結果

クリックして選択 ページを変更し全て

の結果を確認可能

追記カラム名について

出力をアポストロフィー付きで表記

:

学習時に

x → y

であれば、

y’

を出力

分類問題の場合にはさらに

index

を用い、

各クラスの予想確率を出力

: 2

値分類の場合、

y’__0

y’__1

を出力

ラベル

”0”

ラベル

”1”

演習補足資料

(51)

51

評価の見方: Confusion Matrix

検証用データに対する統計的な評価指標と混同行列を表示する。

混同行列を用いて、全体の正答数や間違いやすいラベルの傾向などを確認できる。

クリックして選択

Confusion Matrix

ページのスナップショットとその見方

モデル全体の 評価指標

混同行列

正解がラベル

”1”

のものを

”5”

と予 想し、間違えた数が

3

y’(Deep Learning

が予想したラベル

)

y (

データ内 のラベル

)

対角の数は正答数を表す

セットアップ データセット 準備

ネットワーク

作成 学習 評価 構造自動探索 推論

演習補足資料

(52)

評価の見方: Classification Result

各データごとに

Deep Learning

が確率が高いと予測した上位3つのラベルと確率を表示する。

第1候補の確率を昇順でソートすれば、

Deep Learning

が判定困難なデータを確認できる。

Classification Result

ページのスナップショットとその見方

クリックして選択 ソート結果の

リセット

列の

をクリックでソートが可能

第1候補の ラベルと確率 検証用データから

転記

Deep Learning

の予測結果

第2候補の ラベルと確率

第3候補の ラベルと確率

演習補足資料

(53)

53

評価の見方: Classification Matrix (Recall)

ラベルごとに

Deep Learning

が間違えた上位3つの誤判定のラベルと数を表示する。

Recall

では、データセット内の正解ラベルを軸に誤判定結果の確認できる。

Classification Result

Recall

)ページのスナップショットとその見方

クリックして選択

Recall

を選択

セルをクリックすると

誤判定データの詳細にジャンプ データ内の

ラベル 正解数 間違いやすい上位

3

件の ラベルと件数

セットアップ データセット 準備

ネットワーク

作成 学習 評価 構造自動探索 推論

演習補足資料

(54)

評価の見方: Classification Matrix (Precision)

ラベルごとに

Deep Learning

が間違えた上位3つの誤判定のラベルと数を表示する。

Precision

では、

Deep Learning

が判定したラベルを軸に誤判定結果の確認できる。

Classification Result

Precision

)ページのスナップショットとその見方

Precision

を選択

Deep Learning

判定したラベル 正解数 間違いやすい上位

3

件の ラベルと件数

演習補足資料

(55)

55

plot

横軸:判定ラベルの予測確率(

0

1

縦軸:判定数(件)

normalized

横軸:判定ラベルの予測確率(

0

1

縦軸:正誤割合(%)

評価の見方: Likelihood Graph (Softmax)

スコアや確率ごとの判定結果により、各ラベルをどの程度分離できているかを確認できる。

Softmax

を用いた分類問題の場合には、判定ラベルの予測確率とその正答の対応を表示する。

Classification Result

Softmax

)ページのスナップショットとその見方

判定ラベルの予測確率が

1/(

ラベルの数

)

以下になること がないので、左側は表示がない

セットアップ データセット 準備

ネットワーク

作成 学習 評価 構造自動探索 推論

演習補足資料

(56)

サンプルデータセットについて

(57)

57

手書き数字の分類

0

9

の手書き数字の画像データを分類するデータセットです。

機械学習の画像分類で一般的なデータセットで、アメリカ国勢調査局が収集した手書き文字 データから数字を抽出したものです。

データセットの例

0

28ピクセル

28ピクセル

入力 出力

1

● ● ●

(58)

データセットの名称

Neural Network Console(

以下

NNC)

では

MNIST

に関して

6

つのデータセットを準備しています。

mnist.small_mnist_4or9

0

9

の数字のうち、

4

9

だけを抽出したデータセットです。

簡単に画像分類を体験したい場合には、こちらのデータセットをご利用ください。

学習用と検証用はデータの重複なく分割をしたセットになります。

#

データセット名称 説明

1 mnist.mnist_training MNIST

の学習用データセット

2 mnist.mnist_test MNIST

の検証用データセット

3 mnist.small_mnist_4or9_training MNIST

4

9

の2つにデータを減らした際の学習用データセット

4 mnist.small_mnist_4or9_test MNIST

4

9

の2つにデータを減らした際の検証用データセット
(59)

59

グーチョキパーの分類

じゃんけんのグー・チョキ・パーの手と、手がない状態の

4

つを分類するデータセットです。

Neural Network Console(

以下

NNC)

上では

sample.image.hand-sign

の名称で準備しております。

学習用

(training)

、検証用

(test)

には異なるデータがそれぞれ含まれています。。

0:

グー

28

ピクセル

出力

28

ピクセル

1:

チョキ

2:

パー

3:

手がない状態 入力
(60)

ファッション画像の分類

ズボンやブーツ等の衣類の白黒画像を

10

種類に分類するデータセットです。

Neural Network Console(

以下

NNC)

上では

fashion_mnist

の名称で準備しております。

学習用

(training)

、検証用

(test)

には異なるデータがそれぞれ含まれています。

データセットの例

0: T-shirt/top

28ピクセル

28ピクセル

入力 出力

1: Touser

・・・ ・・・

T-shirt/top

Trouser

Dress

Pullover

Coat

Sandal

Shirt

Sneaker

Bag

Ankle boot

(61)

61

印字数字の分類

印刷された

0

9

の数字とそれ以外を分類するデータセットです。

メーターの読み取り自動化のユースケースを想定して作られたものになります。

Neural Network Console(

以下

NNC)

上では

image_classification.digits.training

の名称で準備しております。

学習用

(training)

、検証用

(test)

には異なるデータがそれぞれ含まれています。

・・・

0: 0

の画像

28

ピクセル

出力

28

ピクセル

1: 1

の画像

10:

それ以外 入力

・・・

(62)

植物と食べ物の分類

植物と食べ物の画像を分類するデータセットです。

Neural Network Console(

以下

NNC)

上では

flower_food

の名称で準備しております。

学習用

(training)

、検証用

(test)

には異なるデータがそれぞれ含まれています。。

0: 植物

32ピクセル

32ピクセル

入力 出力

1: 食べ物

(63)

63

一般的な画像の分類 (10 分類のデータセット )

8000

万枚の画像データから

6

万枚を抽出し、飛行機、鳥、犬などの

10

種類の画像を分類したデータセッ トで、機械学習のベンチマークによく用いられるもの

(CIFAR-10)

です。

Neural Network Console(

以下

NNC)

上では

CIFAR10.cifar10

として準備しております。

学習用

(training)

、検証用

(test)

はデータの重複がないように分割したデータセットになります。。

データセットの例

出典: Learning Multiple Layers of Features from Tiny Images, Alex Krizhevsky, 2009.

0: airplane

32ピクセル

32ピクセル

入力 出力

1: automobile

・・・ ・・・

(64)

一般的な画像の分類 (100 分類のデータセット )

前頁と同様の形式で、画像の分類数を

100

種類にしたデータセット

(CIFAR-100)

です。

NNC

上では

CIFAR100.cifar100

として準備しております。

学習用

(training)

、検証用

(test)

はデータの重複がないように分割したデータセットになります。

# ラベル

0 apple

1 aquarium fish 2 baby

3 bear 4 beaver 5 bed 6 bee 7 beetle 8 bicycle 9 bottle 10 bowl 11 boy 12 bridge 13 bus 14 butterfly 15 camel 16 can 17 castle 18 caterpillar

# ラベル

20 chair

21 chimpanzee 22 clock 23 cloud 24 cockroach 25 couch 26 crab 27 crocodile 28 cup 29 dinosaur 30 dolphin 31 elephant 32 flatfish 33 forest 34 fox 35 girl 36 hamster 37 house 38 kangaroo

# ラベル

40 lamp

41 lawn mower 42 leopard 43 lion 44 lizard 45 lobster 46 man 47 maple tree 48 motorcycle 49 mountain 50 mouse 51 mushroom 52 oak tree 53 orange 54 orchid 55 otter 56 palm tree 57 pear

58 pickup truck

# ラベル

60 plain 61 plate 62 poppy 63 porcupine 64 possum 65 rabbit 66 raccoon 67 ray 68 road 69 rocket 70 rose 71 sea 72 seal 73 shark 74 shrew 75 skunk 76 skyscraper 77 snail 78 snake

# ラベル

80 squirrel 81 streetcar 82 sunflower 83 sweet pepper 84 table

85 tank 86 telephone 87 television 88 tiger 89 tractor 90 train 91 trout 92 tulip 93 turtle 94 wardrobe 95 whale 96 willow tree 97 wolf 98 woman

CIFAR-100

のラベル一覧
(65)

65

データセットのアップロード

専用のアップローダからデータセットをアップロードする。

Neural Network Console

所定の

CSV

ファイルを指定することで、自動的に対応する画像などの

ファイルもアップロードされる。

1. “Dataset”

から

Upload Dataset

を選択

2.

アップローダをダウンロード

Windows / MacOS

3.

アップローダを用いてデータセット

CSV

ファイルとデータをアップロード

Upload Dataset

で表示されるトークンをアップローダに

Paste

し、アッ

プロードするデータセット

CSV

を指定して

Start

ボタンを押すことで アップロードを開始

セットアップ データセット 準備

ネットワーク

作成 学習 評価 構造自動探索 推論

演習補足資料

(66)

アップロード用の CSV ファイルの準備

アップロード後に

Dataset

タブに表示される形式に沿って

CSV

ファイルを準備する必要がある。

画像や時系列データなどのファイルはローカルでの保存場所を指定する。

mnist.mnist_training.csv

x:image y:label

data/train/5/0001.jpg 5 data/train/0/0001.jpg 0 data/train/4/0001.jpg 4 data/train/1/0001.jpg 1

準備する

CSV

ファイルの例 データセット一覧へのアップロード後の例

CSV

のファイル名がデータ名になる

画像や時系列のファイルパス

演習補足資料

(67)

67

データセットの準備(画像データ)

入力

x

には画像ファイル名を指定

出力

y

には正解のカテゴリの

Index

を記述

1

行目 =ヘッダ 変数名

[__

次元

Index][:

ラベル名

]

2

行目以降 =データ

or

ファイル名

x

y

2

つの変数 ヘッダ

データ

(2

行目以降

)

Neural Network

入力

x

画像

出力

y

カテゴリ

Neural Network Console

に対応したデータセットファイルは簡単なスクリプトで作成可能

画像認識機学習用データセットの例

Neural Network Console 所定の CSV ファイルフォーマットでデータセットを準備

Neural Network Console

2

バイト文字に対応していないため、

CSV

ファイル内やファイル名に漢字等を含まないようにする

演習補足資料

セットアップ データセット 準備

ネットワーク

作成 学習 評価 構造自動探索 推論

(68)

ローカルディレクトリとの対応例

Neural Network Console

所定の

CSV

ファイルフォーマットは学習用と検証用に分ける。

分類用のラベルなどは事前に数値化しておく必要がある。

train.csv

test.csv

x y

data/train/dog/0001.jpg 0 data/train/dog/0002.jpg 0 data/train/dog/0003.jpg 0

data/train/cat/0001.jpg 1 data/train/cat/0002.jpg 1 data/train/cat/0003.jpg 1

x y

data/test/dog/0001.jpg 0 data/test/dog/0002.jpg 0 data/test/dog/0003.jpg 0

data/test/cat/0001.jpg 1 data/test/cat/0002.jpg 1 data/test/cat/0003.jpg 1

test.csv

画像分類の

CSV

ファイル作成の例

data train

0001 .jpg 0002

.jpg 0003 .jpg

・・・

dog

0001

・・・

.jpg 0002

.jpg 0003 .jpg

・・・

cat

0001 .jpg 0002

.jpg 0003

・・・

.jpg

dog

0001 .jpg 0002

.jpg 0003 .jpg

test

cat

ラベルは事前に数値化

0: dog

1:cat

演習補足資料

Referensi

Dokumen terkait

つくばの心理学 2014 38 <問題行動の分類> アメリ カの児 童精神 科医 Achenbach (1982)は、従来の問題行動(精神疾患を 含む)は、内在化(internalizing)問題行動 と外在化(externalizing)問題行動とに分類 可能だと提起しています。 内在化問題行動は、恐怖、身体的な訴え、

B(良)評価 ①②③④が70%できている ① 練習問題、実習問題において、処理条件に従い、3-D グラフ、複合グラフ、絵グラフを作成することが できて いる。 ②練習問題、実習問題において、処理条件に従い、データ の集合体から必要なデータだけをピックアップ(検索・抽 出)され集計することができている。 ② 練習問題、実習問題において、順位づけ、表検索、文

⾖類・種実類の加⼯品(乾 前回のまとめ解説 ⾖類・種実類の加⼯品 物・缶詰・保存法)につい しフィードバック (乾物・缶詰・保存 する 法)について説明でき て学ぶ。 講義 る。.. (復習)⾖類、種実類につ いてまとめておく。問題集 で関連問題を⾏い整理して おくこと。 (予習)テキストp61 - 76 野菜類、果実類について読 み、ポイントをまとめてお

自由研究のテーマ例 ハンドボールは,7 人ずつの 2 チームが ボールを相手のゴールに投げ入れて勝負を 競うスポーツです。 下の図のような,縦 20 m,横 40 m の 長方形のコートの中で,14 人の選手が プレーします。 紙やノートにかくのとは違い,体育館や グラウンドに大きな長方形のコートを かくのは,とてもたいへんです。

自由研究のテーマ例 ハンドボールは,7 人ずつの 2 チームが ボールを相手のゴールに投げ入れて勝負を 競うスポーツです。 下の図のような,縦 20 m,横 40 m の 長方形のコートの中で,14 人の選手が プレーします。 紙やノートにかくのとは違い,体育館や グラウンドに大きな長方形のコートを かくのは,とてもたいへんです。

グループ: ◯◯ の問題点 問題点の抽出 アイデアカ アイデアカード 島のタイトル ード 島のタイトル ここには記入しないで下さい。... グループ: ◯◯ の問題点 (島分け例示) この島分けをあとで三次元展開の左にコピーします。 (問題点への対応のセッションで) アイデアカード アイデアカード 島のタイトル 島のタイトル アイデアカード

平成29年5月23日 微粒子合成化学 第5回小テスト 専攻 学籍番号 氏名 ※3行ルール(3行は書くこと!0~2行だと減点)適用。裏面も使ってよい。9:15まで。 1. 散乱現象について、コロイド分散系の視点から説明せよ。 たとえば、この青い温泉の原因は何か? それを考え ることで、散乱現象を説明しよう。 このシリカコロイドは小さいためにまるで溶液のよ

人にとっては,死活問題であり,海抜2メート ル以下の南太平洋のサンゴ礁(環礁)の島々は, 水没の危機に直面する.そこで,海面変動を予 測,推定するためにサンゴ礁を観測し,サンゴ 礁が海面上昇に対してどのようにレスポンスす るのかを知ることは重要である. サンゴ礁は亜熱帯から熱帯の暖かく透明な浅 海において,サンゴと石灰藻を主体とする炭酸