tensorflowハンズオン第1回(チームラボ勉強会 2016/06/16)

121
Deep Learning ハハハハハ #1 ハハハハハハハハハハハハハハハハハハハハ URL ハハハハハハハハハハ ※ ハハハハハハハハハハハハ ハハハハハハハハハハ

Upload: ryo-yamamoto

Post on 15-Apr-2017

317 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

Deep Learning ハンズオン 1

もうすぐスタートします参加者は配布資料の URL を開いておいて下さい コーディングをしたい方はリアルでご参加下さい

はじめに2

Deep Learning 勉強会bull 趣旨エンジニアとして Deep Learning の仕組みを理解するbull 開催履歴予定

ndash 421 人工生命勉強会ndash 516 Deep Learning 勉強会 1ndash 523 Deep Learning 勉強会 2ndash 530 Deep Learning 勉強会 3ndash 616 Deep Learning ハンズオン会 1ndash 630 AI 情報共有会 社内技術共有会 1 ndash 77 機械学習もくもく会ndash 714 Deep Learning ハンズオン会 2

3

4

今回から学生さんを受け入れていますbull 学生さん所属と名前だけ自己紹介お願いしますbull この勉強会のスタンス

ndash 基本的に チームラボ社内向け の勉強会ですbull おもてなしを期待しないで下さい

ndash 写真をとったり内容をネットで共有することは控えて下さいbull 社内のことを話しにくくなりますbull 弊社に関係ない話は OK です

ndash 受け入れる理由bull 弊社に興味ある学生に弊社の一面を知ってもらえるbull 違う文化知見を持った人がいると場が活性化するかも

5

今日の目次1 ハンズオン 1   Jupyter2 ハンズオン 2   Hello TensorFlow3 ハンズオン 3   Hello CNN

ハンズオン体験学習bull TensorFlow のコードを説明してそれを実際に書いてもらう

ndash TensorFlow 公式チュートリアルの最初の2つを扱います

bull はじめての試みなのでいろいろうまくいかないと思いますがご理解ください

6

TensorFlow

bull 案内では Deep Learning のライブラリとしてKeras を使う予定でしたが TensorFlow にしましたndash Keras は TensorFlow のラッパーシンプルで使いやすいと評判

bull 研究成果として GitHub に上がっているコードはTensorFlow Theano Caffe などが多くKeras しか使えないと限界がある

bull TensorFlow は Google と DeepMind が頑張ってるのでこれから伸びそう

7

ハンズオン 1 JUPYTER

Jupyter (旧称 IPython Notebook )bull ブラウザ経由で以下ができるツールです

ndash Python のインタラクティブシェルndash linux コンソール(今日は使わないで)

bull 配布資料の URL からアクセスして下さいndash 以下がインストールされたサーバ (36vCPU c48xlarge)

bull TensorFlow ( Google 製の Deep Learning のライブラリ)bull Anaconda ( Python 機械学習のパッケージ Jupyter 含む)

ndash 勉強会後にサーバを落とすので必要なファイルは最後にローカルに保存して下さい(アナウンスします) 8

9

Hello Jupyter

1 識別子として自分の名前を使った prefix を使うndash チームラボの人はメールアドレスの文字列(例 yamamoto )ndash 外部の方はフルネーム(例 yamadataro )

2 Python ノートブックを作って下さいndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -HelloJupyter と入力例 yamamoto-HelloJupyter

10

Hello Jupyter

bull 基本的な使い方

11

Hello Jupyter

12

ハンズオン 2 TENSORFLOW 入門

ニューロン ニューロン同士の結合

ニューラルネットワーク(復習)

13入力層 隠れ層 出力層

3-12-51-2

2

1

+6

-5

+1

-1

+2

1-2-2012-1-12

-02

-2

+1

4-2

30

-1-2

+14

-23

07

03

09

045

01

07

098

002

血液中の成分 X濃度

血液中の成分 Y濃度

男である確率

女である確率

活性化関数神経細胞の活動をモデル化入力が閾値を超えると発火 (=1)超えなければ発火しない (=0)sigmoid tanh ReLU など

sigmoid 関数 出力関数目的に応じて出力値を整える関数クラス分け (classification)問題ではsoftmax 関数 が用いられるsoftmax 関数は出力値を確率に変換

2

ニューロンの出力

3

結合の重み

14

活性化関数 ReLU 関数

区分線形ユニット関数 (Rectified Linear Unit)計算効率学習効率が良いためDeep Learning でよく用いられる

15

出力関数 softmax 関数入力を確率(合計 1 の正の値)に変換認識問題に用いる

出力層

0

+1

-05

05

入力1

272

061

165

exp( 入力 )017

046

01

028

合計 1 に正規化

16

ロス関数bull 出力と正解のズレの大きさをモデル化する関数

ndash 2乗誤差 (mean squared error) 汎用ndash クロスエントロピー (cross entropy) 確率の場合に用いる

bull ロス関数が小さくなるように誤差逆伝播 (Back Propagation) で学習

入力層 隠れ層 出力層

3-12-51-2

2

1

1-2-2012-1-12

4-2

30

-1-2

07

03

09

045

01

07

098

002

正解

0

1

17

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

18

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

19

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

20

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

21

ニューラルネット復習キーワードbull 活性化関数 ReLUbull 出力関数 Softmaxbull ロス関数クロスエントロピーbull 誤差逆伝播( Back Propagation )bull ドロップアウト

22

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

23

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個

結合重み100times10 個

784

100 10

24

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

25

数字認識実際の計算

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1784 times 100

w2100 times 10

hin = x w1yin = h w2

各層の入力値は前層の出力重み行列の行列積として計算できるh = ReLU( hin )y = Softmax( yin )

26

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

27

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9 バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

28

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9+4

-4

0

-2

+3

0

-2

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

29

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

30

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個+結合バイアス

100個

結合重み100times10 個

+結合バイアス10個

31

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個+結合バイアス

100個

結合重み100times10 個+結合バイアス

10個

784

100 10

32

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

33

数字認識実際の計算(バイアスあり)

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1

784 times 100

w2

100 times 10

b1

100

b2

10

hin = x w1 + b1

yin = h w2 + b2

各層の入力値は前層の出力重み行列 + バイアスと計算できる

h = ReLU( hin )y = Softmax( yin )

34

数字認識一度に1データを処理

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

35

数字認識一度に2データを処理

hellip

入力層 隠れ層 出力層

2x

784

2x

100

2x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

36

数字認識一度に3データを処理

hellip

入力層 隠れ層 出力層

3x

784

3x

100

3x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

37

数字認識一度に N データを処理

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

38

数字認識確保する変数(バッチ学習の場合)

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

39

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

40

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

41

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

42

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

データセットのデータを入れる毎回こちらが変更する

43

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

44

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

45

TensorFlow のデータ型

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

Placeholder

Variable

Tensor テンソルとは 多次元配列のこと

46

Hello TensorFlow ( 000-MNISTipynb を開いて)

47

Hello TensorFlow

48

Hello TensorFlow

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 2: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

はじめに2

Deep Learning 勉強会bull 趣旨エンジニアとして Deep Learning の仕組みを理解するbull 開催履歴予定

ndash 421 人工生命勉強会ndash 516 Deep Learning 勉強会 1ndash 523 Deep Learning 勉強会 2ndash 530 Deep Learning 勉強会 3ndash 616 Deep Learning ハンズオン会 1ndash 630 AI 情報共有会 社内技術共有会 1 ndash 77 機械学習もくもく会ndash 714 Deep Learning ハンズオン会 2

3

4

今回から学生さんを受け入れていますbull 学生さん所属と名前だけ自己紹介お願いしますbull この勉強会のスタンス

ndash 基本的に チームラボ社内向け の勉強会ですbull おもてなしを期待しないで下さい

ndash 写真をとったり内容をネットで共有することは控えて下さいbull 社内のことを話しにくくなりますbull 弊社に関係ない話は OK です

ndash 受け入れる理由bull 弊社に興味ある学生に弊社の一面を知ってもらえるbull 違う文化知見を持った人がいると場が活性化するかも

5

今日の目次1 ハンズオン 1   Jupyter2 ハンズオン 2   Hello TensorFlow3 ハンズオン 3   Hello CNN

ハンズオン体験学習bull TensorFlow のコードを説明してそれを実際に書いてもらう

ndash TensorFlow 公式チュートリアルの最初の2つを扱います

bull はじめての試みなのでいろいろうまくいかないと思いますがご理解ください

6

TensorFlow

bull 案内では Deep Learning のライブラリとしてKeras を使う予定でしたが TensorFlow にしましたndash Keras は TensorFlow のラッパーシンプルで使いやすいと評判

bull 研究成果として GitHub に上がっているコードはTensorFlow Theano Caffe などが多くKeras しか使えないと限界がある

bull TensorFlow は Google と DeepMind が頑張ってるのでこれから伸びそう

7

ハンズオン 1 JUPYTER

Jupyter (旧称 IPython Notebook )bull ブラウザ経由で以下ができるツールです

ndash Python のインタラクティブシェルndash linux コンソール(今日は使わないで)

bull 配布資料の URL からアクセスして下さいndash 以下がインストールされたサーバ (36vCPU c48xlarge)

bull TensorFlow ( Google 製の Deep Learning のライブラリ)bull Anaconda ( Python 機械学習のパッケージ Jupyter 含む)

ndash 勉強会後にサーバを落とすので必要なファイルは最後にローカルに保存して下さい(アナウンスします) 8

9

Hello Jupyter

1 識別子として自分の名前を使った prefix を使うndash チームラボの人はメールアドレスの文字列(例 yamamoto )ndash 外部の方はフルネーム(例 yamadataro )

2 Python ノートブックを作って下さいndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -HelloJupyter と入力例 yamamoto-HelloJupyter

10

Hello Jupyter

bull 基本的な使い方

11

Hello Jupyter

12

ハンズオン 2 TENSORFLOW 入門

ニューロン ニューロン同士の結合

ニューラルネットワーク(復習)

13入力層 隠れ層 出力層

3-12-51-2

2

1

+6

-5

+1

-1

+2

1-2-2012-1-12

-02

-2

+1

4-2

30

-1-2

+14

-23

07

03

09

045

01

07

098

002

血液中の成分 X濃度

血液中の成分 Y濃度

男である確率

女である確率

活性化関数神経細胞の活動をモデル化入力が閾値を超えると発火 (=1)超えなければ発火しない (=0)sigmoid tanh ReLU など

sigmoid 関数 出力関数目的に応じて出力値を整える関数クラス分け (classification)問題ではsoftmax 関数 が用いられるsoftmax 関数は出力値を確率に変換

2

ニューロンの出力

3

結合の重み

14

活性化関数 ReLU 関数

区分線形ユニット関数 (Rectified Linear Unit)計算効率学習効率が良いためDeep Learning でよく用いられる

15

出力関数 softmax 関数入力を確率(合計 1 の正の値)に変換認識問題に用いる

出力層

0

+1

-05

05

入力1

272

061

165

exp( 入力 )017

046

01

028

合計 1 に正規化

16

ロス関数bull 出力と正解のズレの大きさをモデル化する関数

ndash 2乗誤差 (mean squared error) 汎用ndash クロスエントロピー (cross entropy) 確率の場合に用いる

bull ロス関数が小さくなるように誤差逆伝播 (Back Propagation) で学習

入力層 隠れ層 出力層

3-12-51-2

2

1

1-2-2012-1-12

4-2

30

-1-2

07

03

09

045

01

07

098

002

正解

0

1

17

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

18

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

19

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

20

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

21

ニューラルネット復習キーワードbull 活性化関数 ReLUbull 出力関数 Softmaxbull ロス関数クロスエントロピーbull 誤差逆伝播( Back Propagation )bull ドロップアウト

22

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

23

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個

結合重み100times10 個

784

100 10

24

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

25

数字認識実際の計算

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1784 times 100

w2100 times 10

hin = x w1yin = h w2

各層の入力値は前層の出力重み行列の行列積として計算できるh = ReLU( hin )y = Softmax( yin )

26

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

27

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9 バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

28

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9+4

-4

0

-2

+3

0

-2

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

29

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

30

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個+結合バイアス

100個

結合重み100times10 個

+結合バイアス10個

31

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個+結合バイアス

100個

結合重み100times10 個+結合バイアス

10個

784

100 10

32

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

33

数字認識実際の計算(バイアスあり)

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1

784 times 100

w2

100 times 10

b1

100

b2

10

hin = x w1 + b1

yin = h w2 + b2

各層の入力値は前層の出力重み行列 + バイアスと計算できる

h = ReLU( hin )y = Softmax( yin )

34

数字認識一度に1データを処理

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

35

数字認識一度に2データを処理

hellip

入力層 隠れ層 出力層

2x

784

2x

100

2x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

36

数字認識一度に3データを処理

hellip

入力層 隠れ層 出力層

3x

784

3x

100

3x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

37

数字認識一度に N データを処理

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

38

数字認識確保する変数(バッチ学習の場合)

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

39

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

40

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

41

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

42

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

データセットのデータを入れる毎回こちらが変更する

43

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

44

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

45

TensorFlow のデータ型

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

Placeholder

Variable

Tensor テンソルとは 多次元配列のこと

46

Hello TensorFlow ( 000-MNISTipynb を開いて)

47

Hello TensorFlow

48

Hello TensorFlow

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 3: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

Deep Learning 勉強会bull 趣旨エンジニアとして Deep Learning の仕組みを理解するbull 開催履歴予定

ndash 421 人工生命勉強会ndash 516 Deep Learning 勉強会 1ndash 523 Deep Learning 勉強会 2ndash 530 Deep Learning 勉強会 3ndash 616 Deep Learning ハンズオン会 1ndash 630 AI 情報共有会 社内技術共有会 1 ndash 77 機械学習もくもく会ndash 714 Deep Learning ハンズオン会 2

3

4

今回から学生さんを受け入れていますbull 学生さん所属と名前だけ自己紹介お願いしますbull この勉強会のスタンス

ndash 基本的に チームラボ社内向け の勉強会ですbull おもてなしを期待しないで下さい

ndash 写真をとったり内容をネットで共有することは控えて下さいbull 社内のことを話しにくくなりますbull 弊社に関係ない話は OK です

ndash 受け入れる理由bull 弊社に興味ある学生に弊社の一面を知ってもらえるbull 違う文化知見を持った人がいると場が活性化するかも

5

今日の目次1 ハンズオン 1   Jupyter2 ハンズオン 2   Hello TensorFlow3 ハンズオン 3   Hello CNN

ハンズオン体験学習bull TensorFlow のコードを説明してそれを実際に書いてもらう

ndash TensorFlow 公式チュートリアルの最初の2つを扱います

bull はじめての試みなのでいろいろうまくいかないと思いますがご理解ください

6

TensorFlow

bull 案内では Deep Learning のライブラリとしてKeras を使う予定でしたが TensorFlow にしましたndash Keras は TensorFlow のラッパーシンプルで使いやすいと評判

bull 研究成果として GitHub に上がっているコードはTensorFlow Theano Caffe などが多くKeras しか使えないと限界がある

bull TensorFlow は Google と DeepMind が頑張ってるのでこれから伸びそう

7

ハンズオン 1 JUPYTER

Jupyter (旧称 IPython Notebook )bull ブラウザ経由で以下ができるツールです

ndash Python のインタラクティブシェルndash linux コンソール(今日は使わないで)

bull 配布資料の URL からアクセスして下さいndash 以下がインストールされたサーバ (36vCPU c48xlarge)

bull TensorFlow ( Google 製の Deep Learning のライブラリ)bull Anaconda ( Python 機械学習のパッケージ Jupyter 含む)

ndash 勉強会後にサーバを落とすので必要なファイルは最後にローカルに保存して下さい(アナウンスします) 8

9

Hello Jupyter

1 識別子として自分の名前を使った prefix を使うndash チームラボの人はメールアドレスの文字列(例 yamamoto )ndash 外部の方はフルネーム(例 yamadataro )

2 Python ノートブックを作って下さいndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -HelloJupyter と入力例 yamamoto-HelloJupyter

10

Hello Jupyter

bull 基本的な使い方

11

Hello Jupyter

12

ハンズオン 2 TENSORFLOW 入門

ニューロン ニューロン同士の結合

ニューラルネットワーク(復習)

13入力層 隠れ層 出力層

3-12-51-2

2

1

+6

-5

+1

-1

+2

1-2-2012-1-12

-02

-2

+1

4-2

30

-1-2

+14

-23

07

03

09

045

01

07

098

002

血液中の成分 X濃度

血液中の成分 Y濃度

男である確率

女である確率

活性化関数神経細胞の活動をモデル化入力が閾値を超えると発火 (=1)超えなければ発火しない (=0)sigmoid tanh ReLU など

sigmoid 関数 出力関数目的に応じて出力値を整える関数クラス分け (classification)問題ではsoftmax 関数 が用いられるsoftmax 関数は出力値を確率に変換

2

ニューロンの出力

3

結合の重み

14

活性化関数 ReLU 関数

区分線形ユニット関数 (Rectified Linear Unit)計算効率学習効率が良いためDeep Learning でよく用いられる

15

出力関数 softmax 関数入力を確率(合計 1 の正の値)に変換認識問題に用いる

出力層

0

+1

-05

05

入力1

272

061

165

exp( 入力 )017

046

01

028

合計 1 に正規化

16

ロス関数bull 出力と正解のズレの大きさをモデル化する関数

ndash 2乗誤差 (mean squared error) 汎用ndash クロスエントロピー (cross entropy) 確率の場合に用いる

bull ロス関数が小さくなるように誤差逆伝播 (Back Propagation) で学習

入力層 隠れ層 出力層

3-12-51-2

2

1

1-2-2012-1-12

4-2

30

-1-2

07

03

09

045

01

07

098

002

正解

0

1

17

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

18

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

19

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

20

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

21

ニューラルネット復習キーワードbull 活性化関数 ReLUbull 出力関数 Softmaxbull ロス関数クロスエントロピーbull 誤差逆伝播( Back Propagation )bull ドロップアウト

22

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

23

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個

結合重み100times10 個

784

100 10

24

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

25

数字認識実際の計算

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1784 times 100

w2100 times 10

hin = x w1yin = h w2

各層の入力値は前層の出力重み行列の行列積として計算できるh = ReLU( hin )y = Softmax( yin )

26

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

27

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9 バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

28

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9+4

-4

0

-2

+3

0

-2

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

29

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

30

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個+結合バイアス

100個

結合重み100times10 個

+結合バイアス10個

31

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個+結合バイアス

100個

結合重み100times10 個+結合バイアス

10個

784

100 10

32

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

33

数字認識実際の計算(バイアスあり)

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1

784 times 100

w2

100 times 10

b1

100

b2

10

hin = x w1 + b1

yin = h w2 + b2

各層の入力値は前層の出力重み行列 + バイアスと計算できる

h = ReLU( hin )y = Softmax( yin )

34

数字認識一度に1データを処理

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

35

数字認識一度に2データを処理

hellip

入力層 隠れ層 出力層

2x

784

2x

100

2x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

36

数字認識一度に3データを処理

hellip

入力層 隠れ層 出力層

3x

784

3x

100

3x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

37

数字認識一度に N データを処理

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

38

数字認識確保する変数(バッチ学習の場合)

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

39

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

40

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

41

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

42

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

データセットのデータを入れる毎回こちらが変更する

43

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

44

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

45

TensorFlow のデータ型

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

Placeholder

Variable

Tensor テンソルとは 多次元配列のこと

46

Hello TensorFlow ( 000-MNISTipynb を開いて)

47

Hello TensorFlow

48

Hello TensorFlow

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 4: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

4

今回から学生さんを受け入れていますbull 学生さん所属と名前だけ自己紹介お願いしますbull この勉強会のスタンス

ndash 基本的に チームラボ社内向け の勉強会ですbull おもてなしを期待しないで下さい

ndash 写真をとったり内容をネットで共有することは控えて下さいbull 社内のことを話しにくくなりますbull 弊社に関係ない話は OK です

ndash 受け入れる理由bull 弊社に興味ある学生に弊社の一面を知ってもらえるbull 違う文化知見を持った人がいると場が活性化するかも

5

今日の目次1 ハンズオン 1   Jupyter2 ハンズオン 2   Hello TensorFlow3 ハンズオン 3   Hello CNN

ハンズオン体験学習bull TensorFlow のコードを説明してそれを実際に書いてもらう

ndash TensorFlow 公式チュートリアルの最初の2つを扱います

bull はじめての試みなのでいろいろうまくいかないと思いますがご理解ください

6

TensorFlow

bull 案内では Deep Learning のライブラリとしてKeras を使う予定でしたが TensorFlow にしましたndash Keras は TensorFlow のラッパーシンプルで使いやすいと評判

bull 研究成果として GitHub に上がっているコードはTensorFlow Theano Caffe などが多くKeras しか使えないと限界がある

bull TensorFlow は Google と DeepMind が頑張ってるのでこれから伸びそう

7

ハンズオン 1 JUPYTER

Jupyter (旧称 IPython Notebook )bull ブラウザ経由で以下ができるツールです

ndash Python のインタラクティブシェルndash linux コンソール(今日は使わないで)

bull 配布資料の URL からアクセスして下さいndash 以下がインストールされたサーバ (36vCPU c48xlarge)

bull TensorFlow ( Google 製の Deep Learning のライブラリ)bull Anaconda ( Python 機械学習のパッケージ Jupyter 含む)

ndash 勉強会後にサーバを落とすので必要なファイルは最後にローカルに保存して下さい(アナウンスします) 8

9

Hello Jupyter

1 識別子として自分の名前を使った prefix を使うndash チームラボの人はメールアドレスの文字列(例 yamamoto )ndash 外部の方はフルネーム(例 yamadataro )

2 Python ノートブックを作って下さいndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -HelloJupyter と入力例 yamamoto-HelloJupyter

10

Hello Jupyter

bull 基本的な使い方

11

Hello Jupyter

12

ハンズオン 2 TENSORFLOW 入門

ニューロン ニューロン同士の結合

ニューラルネットワーク(復習)

13入力層 隠れ層 出力層

3-12-51-2

2

1

+6

-5

+1

-1

+2

1-2-2012-1-12

-02

-2

+1

4-2

30

-1-2

+14

-23

07

03

09

045

01

07

098

002

血液中の成分 X濃度

血液中の成分 Y濃度

男である確率

女である確率

活性化関数神経細胞の活動をモデル化入力が閾値を超えると発火 (=1)超えなければ発火しない (=0)sigmoid tanh ReLU など

sigmoid 関数 出力関数目的に応じて出力値を整える関数クラス分け (classification)問題ではsoftmax 関数 が用いられるsoftmax 関数は出力値を確率に変換

2

ニューロンの出力

3

結合の重み

14

活性化関数 ReLU 関数

区分線形ユニット関数 (Rectified Linear Unit)計算効率学習効率が良いためDeep Learning でよく用いられる

15

出力関数 softmax 関数入力を確率(合計 1 の正の値)に変換認識問題に用いる

出力層

0

+1

-05

05

入力1

272

061

165

exp( 入力 )017

046

01

028

合計 1 に正規化

16

ロス関数bull 出力と正解のズレの大きさをモデル化する関数

ndash 2乗誤差 (mean squared error) 汎用ndash クロスエントロピー (cross entropy) 確率の場合に用いる

bull ロス関数が小さくなるように誤差逆伝播 (Back Propagation) で学習

入力層 隠れ層 出力層

3-12-51-2

2

1

1-2-2012-1-12

4-2

30

-1-2

07

03

09

045

01

07

098

002

正解

0

1

17

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

18

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

19

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

20

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

21

ニューラルネット復習キーワードbull 活性化関数 ReLUbull 出力関数 Softmaxbull ロス関数クロスエントロピーbull 誤差逆伝播( Back Propagation )bull ドロップアウト

22

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

23

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個

結合重み100times10 個

784

100 10

24

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

25

数字認識実際の計算

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1784 times 100

w2100 times 10

hin = x w1yin = h w2

各層の入力値は前層の出力重み行列の行列積として計算できるh = ReLU( hin )y = Softmax( yin )

26

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

27

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9 バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

28

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9+4

-4

0

-2

+3

0

-2

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

29

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

30

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個+結合バイアス

100個

結合重み100times10 個

+結合バイアス10個

31

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個+結合バイアス

100個

結合重み100times10 個+結合バイアス

10個

784

100 10

32

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

33

数字認識実際の計算(バイアスあり)

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1

784 times 100

w2

100 times 10

b1

100

b2

10

hin = x w1 + b1

yin = h w2 + b2

各層の入力値は前層の出力重み行列 + バイアスと計算できる

h = ReLU( hin )y = Softmax( yin )

34

数字認識一度に1データを処理

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

35

数字認識一度に2データを処理

hellip

入力層 隠れ層 出力層

2x

784

2x

100

2x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

36

数字認識一度に3データを処理

hellip

入力層 隠れ層 出力層

3x

784

3x

100

3x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

37

数字認識一度に N データを処理

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

38

数字認識確保する変数(バッチ学習の場合)

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

39

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

40

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

41

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

42

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

データセットのデータを入れる毎回こちらが変更する

43

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

44

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

45

TensorFlow のデータ型

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

Placeholder

Variable

Tensor テンソルとは 多次元配列のこと

46

Hello TensorFlow ( 000-MNISTipynb を開いて)

47

Hello TensorFlow

48

Hello TensorFlow

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 5: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

5

今日の目次1 ハンズオン 1   Jupyter2 ハンズオン 2   Hello TensorFlow3 ハンズオン 3   Hello CNN

ハンズオン体験学習bull TensorFlow のコードを説明してそれを実際に書いてもらう

ndash TensorFlow 公式チュートリアルの最初の2つを扱います

bull はじめての試みなのでいろいろうまくいかないと思いますがご理解ください

6

TensorFlow

bull 案内では Deep Learning のライブラリとしてKeras を使う予定でしたが TensorFlow にしましたndash Keras は TensorFlow のラッパーシンプルで使いやすいと評判

bull 研究成果として GitHub に上がっているコードはTensorFlow Theano Caffe などが多くKeras しか使えないと限界がある

bull TensorFlow は Google と DeepMind が頑張ってるのでこれから伸びそう

7

ハンズオン 1 JUPYTER

Jupyter (旧称 IPython Notebook )bull ブラウザ経由で以下ができるツールです

ndash Python のインタラクティブシェルndash linux コンソール(今日は使わないで)

bull 配布資料の URL からアクセスして下さいndash 以下がインストールされたサーバ (36vCPU c48xlarge)

bull TensorFlow ( Google 製の Deep Learning のライブラリ)bull Anaconda ( Python 機械学習のパッケージ Jupyter 含む)

ndash 勉強会後にサーバを落とすので必要なファイルは最後にローカルに保存して下さい(アナウンスします) 8

9

Hello Jupyter

1 識別子として自分の名前を使った prefix を使うndash チームラボの人はメールアドレスの文字列(例 yamamoto )ndash 外部の方はフルネーム(例 yamadataro )

2 Python ノートブックを作って下さいndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -HelloJupyter と入力例 yamamoto-HelloJupyter

10

Hello Jupyter

bull 基本的な使い方

11

Hello Jupyter

12

ハンズオン 2 TENSORFLOW 入門

ニューロン ニューロン同士の結合

ニューラルネットワーク(復習)

13入力層 隠れ層 出力層

3-12-51-2

2

1

+6

-5

+1

-1

+2

1-2-2012-1-12

-02

-2

+1

4-2

30

-1-2

+14

-23

07

03

09

045

01

07

098

002

血液中の成分 X濃度

血液中の成分 Y濃度

男である確率

女である確率

活性化関数神経細胞の活動をモデル化入力が閾値を超えると発火 (=1)超えなければ発火しない (=0)sigmoid tanh ReLU など

sigmoid 関数 出力関数目的に応じて出力値を整える関数クラス分け (classification)問題ではsoftmax 関数 が用いられるsoftmax 関数は出力値を確率に変換

2

ニューロンの出力

3

結合の重み

14

活性化関数 ReLU 関数

区分線形ユニット関数 (Rectified Linear Unit)計算効率学習効率が良いためDeep Learning でよく用いられる

15

出力関数 softmax 関数入力を確率(合計 1 の正の値)に変換認識問題に用いる

出力層

0

+1

-05

05

入力1

272

061

165

exp( 入力 )017

046

01

028

合計 1 に正規化

16

ロス関数bull 出力と正解のズレの大きさをモデル化する関数

ndash 2乗誤差 (mean squared error) 汎用ndash クロスエントロピー (cross entropy) 確率の場合に用いる

bull ロス関数が小さくなるように誤差逆伝播 (Back Propagation) で学習

入力層 隠れ層 出力層

3-12-51-2

2

1

1-2-2012-1-12

4-2

30

-1-2

07

03

09

045

01

07

098

002

正解

0

1

17

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

18

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

19

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

20

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

21

ニューラルネット復習キーワードbull 活性化関数 ReLUbull 出力関数 Softmaxbull ロス関数クロスエントロピーbull 誤差逆伝播( Back Propagation )bull ドロップアウト

22

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

23

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個

結合重み100times10 個

784

100 10

24

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

25

数字認識実際の計算

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1784 times 100

w2100 times 10

hin = x w1yin = h w2

各層の入力値は前層の出力重み行列の行列積として計算できるh = ReLU( hin )y = Softmax( yin )

26

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

27

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9 バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

28

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9+4

-4

0

-2

+3

0

-2

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

29

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

30

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個+結合バイアス

100個

結合重み100times10 個

+結合バイアス10個

31

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個+結合バイアス

100個

結合重み100times10 個+結合バイアス

10個

784

100 10

32

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

33

数字認識実際の計算(バイアスあり)

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1

784 times 100

w2

100 times 10

b1

100

b2

10

hin = x w1 + b1

yin = h w2 + b2

各層の入力値は前層の出力重み行列 + バイアスと計算できる

h = ReLU( hin )y = Softmax( yin )

34

数字認識一度に1データを処理

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

35

数字認識一度に2データを処理

hellip

入力層 隠れ層 出力層

2x

784

2x

100

2x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

36

数字認識一度に3データを処理

hellip

入力層 隠れ層 出力層

3x

784

3x

100

3x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

37

数字認識一度に N データを処理

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

38

数字認識確保する変数(バッチ学習の場合)

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

39

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

40

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

41

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

42

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

データセットのデータを入れる毎回こちらが変更する

43

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

44

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

45

TensorFlow のデータ型

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

Placeholder

Variable

Tensor テンソルとは 多次元配列のこと

46

Hello TensorFlow ( 000-MNISTipynb を開いて)

47

Hello TensorFlow

48

Hello TensorFlow

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 6: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

6

TensorFlow

bull 案内では Deep Learning のライブラリとしてKeras を使う予定でしたが TensorFlow にしましたndash Keras は TensorFlow のラッパーシンプルで使いやすいと評判

bull 研究成果として GitHub に上がっているコードはTensorFlow Theano Caffe などが多くKeras しか使えないと限界がある

bull TensorFlow は Google と DeepMind が頑張ってるのでこれから伸びそう

7

ハンズオン 1 JUPYTER

Jupyter (旧称 IPython Notebook )bull ブラウザ経由で以下ができるツールです

ndash Python のインタラクティブシェルndash linux コンソール(今日は使わないで)

bull 配布資料の URL からアクセスして下さいndash 以下がインストールされたサーバ (36vCPU c48xlarge)

bull TensorFlow ( Google 製の Deep Learning のライブラリ)bull Anaconda ( Python 機械学習のパッケージ Jupyter 含む)

ndash 勉強会後にサーバを落とすので必要なファイルは最後にローカルに保存して下さい(アナウンスします) 8

9

Hello Jupyter

1 識別子として自分の名前を使った prefix を使うndash チームラボの人はメールアドレスの文字列(例 yamamoto )ndash 外部の方はフルネーム(例 yamadataro )

2 Python ノートブックを作って下さいndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -HelloJupyter と入力例 yamamoto-HelloJupyter

10

Hello Jupyter

bull 基本的な使い方

11

Hello Jupyter

12

ハンズオン 2 TENSORFLOW 入門

ニューロン ニューロン同士の結合

ニューラルネットワーク(復習)

13入力層 隠れ層 出力層

3-12-51-2

2

1

+6

-5

+1

-1

+2

1-2-2012-1-12

-02

-2

+1

4-2

30

-1-2

+14

-23

07

03

09

045

01

07

098

002

血液中の成分 X濃度

血液中の成分 Y濃度

男である確率

女である確率

活性化関数神経細胞の活動をモデル化入力が閾値を超えると発火 (=1)超えなければ発火しない (=0)sigmoid tanh ReLU など

sigmoid 関数 出力関数目的に応じて出力値を整える関数クラス分け (classification)問題ではsoftmax 関数 が用いられるsoftmax 関数は出力値を確率に変換

2

ニューロンの出力

3

結合の重み

14

活性化関数 ReLU 関数

区分線形ユニット関数 (Rectified Linear Unit)計算効率学習効率が良いためDeep Learning でよく用いられる

15

出力関数 softmax 関数入力を確率(合計 1 の正の値)に変換認識問題に用いる

出力層

0

+1

-05

05

入力1

272

061

165

exp( 入力 )017

046

01

028

合計 1 に正規化

16

ロス関数bull 出力と正解のズレの大きさをモデル化する関数

ndash 2乗誤差 (mean squared error) 汎用ndash クロスエントロピー (cross entropy) 確率の場合に用いる

bull ロス関数が小さくなるように誤差逆伝播 (Back Propagation) で学習

入力層 隠れ層 出力層

3-12-51-2

2

1

1-2-2012-1-12

4-2

30

-1-2

07

03

09

045

01

07

098

002

正解

0

1

17

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

18

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

19

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

20

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

21

ニューラルネット復習キーワードbull 活性化関数 ReLUbull 出力関数 Softmaxbull ロス関数クロスエントロピーbull 誤差逆伝播( Back Propagation )bull ドロップアウト

22

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

23

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個

結合重み100times10 個

784

100 10

24

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

25

数字認識実際の計算

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1784 times 100

w2100 times 10

hin = x w1yin = h w2

各層の入力値は前層の出力重み行列の行列積として計算できるh = ReLU( hin )y = Softmax( yin )

26

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

27

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9 バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

28

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9+4

-4

0

-2

+3

0

-2

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

29

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

30

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個+結合バイアス

100個

結合重み100times10 個

+結合バイアス10個

31

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個+結合バイアス

100個

結合重み100times10 個+結合バイアス

10個

784

100 10

32

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

33

数字認識実際の計算(バイアスあり)

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1

784 times 100

w2

100 times 10

b1

100

b2

10

hin = x w1 + b1

yin = h w2 + b2

各層の入力値は前層の出力重み行列 + バイアスと計算できる

h = ReLU( hin )y = Softmax( yin )

34

数字認識一度に1データを処理

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

35

数字認識一度に2データを処理

hellip

入力層 隠れ層 出力層

2x

784

2x

100

2x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

36

数字認識一度に3データを処理

hellip

入力層 隠れ層 出力層

3x

784

3x

100

3x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

37

数字認識一度に N データを処理

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

38

数字認識確保する変数(バッチ学習の場合)

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

39

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

40

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

41

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

42

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

データセットのデータを入れる毎回こちらが変更する

43

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

44

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

45

TensorFlow のデータ型

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

Placeholder

Variable

Tensor テンソルとは 多次元配列のこと

46

Hello TensorFlow ( 000-MNISTipynb を開いて)

47

Hello TensorFlow

48

Hello TensorFlow

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 7: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

7

ハンズオン 1 JUPYTER

Jupyter (旧称 IPython Notebook )bull ブラウザ経由で以下ができるツールです

ndash Python のインタラクティブシェルndash linux コンソール(今日は使わないで)

bull 配布資料の URL からアクセスして下さいndash 以下がインストールされたサーバ (36vCPU c48xlarge)

bull TensorFlow ( Google 製の Deep Learning のライブラリ)bull Anaconda ( Python 機械学習のパッケージ Jupyter 含む)

ndash 勉強会後にサーバを落とすので必要なファイルは最後にローカルに保存して下さい(アナウンスします) 8

9

Hello Jupyter

1 識別子として自分の名前を使った prefix を使うndash チームラボの人はメールアドレスの文字列(例 yamamoto )ndash 外部の方はフルネーム(例 yamadataro )

2 Python ノートブックを作って下さいndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -HelloJupyter と入力例 yamamoto-HelloJupyter

10

Hello Jupyter

bull 基本的な使い方

11

Hello Jupyter

12

ハンズオン 2 TENSORFLOW 入門

ニューロン ニューロン同士の結合

ニューラルネットワーク(復習)

13入力層 隠れ層 出力層

3-12-51-2

2

1

+6

-5

+1

-1

+2

1-2-2012-1-12

-02

-2

+1

4-2

30

-1-2

+14

-23

07

03

09

045

01

07

098

002

血液中の成分 X濃度

血液中の成分 Y濃度

男である確率

女である確率

活性化関数神経細胞の活動をモデル化入力が閾値を超えると発火 (=1)超えなければ発火しない (=0)sigmoid tanh ReLU など

sigmoid 関数 出力関数目的に応じて出力値を整える関数クラス分け (classification)問題ではsoftmax 関数 が用いられるsoftmax 関数は出力値を確率に変換

2

ニューロンの出力

3

結合の重み

14

活性化関数 ReLU 関数

区分線形ユニット関数 (Rectified Linear Unit)計算効率学習効率が良いためDeep Learning でよく用いられる

15

出力関数 softmax 関数入力を確率(合計 1 の正の値)に変換認識問題に用いる

出力層

0

+1

-05

05

入力1

272

061

165

exp( 入力 )017

046

01

028

合計 1 に正規化

16

ロス関数bull 出力と正解のズレの大きさをモデル化する関数

ndash 2乗誤差 (mean squared error) 汎用ndash クロスエントロピー (cross entropy) 確率の場合に用いる

bull ロス関数が小さくなるように誤差逆伝播 (Back Propagation) で学習

入力層 隠れ層 出力層

3-12-51-2

2

1

1-2-2012-1-12

4-2

30

-1-2

07

03

09

045

01

07

098

002

正解

0

1

17

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

18

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

19

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

20

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

21

ニューラルネット復習キーワードbull 活性化関数 ReLUbull 出力関数 Softmaxbull ロス関数クロスエントロピーbull 誤差逆伝播( Back Propagation )bull ドロップアウト

22

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

23

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個

結合重み100times10 個

784

100 10

24

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

25

数字認識実際の計算

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1784 times 100

w2100 times 10

hin = x w1yin = h w2

各層の入力値は前層の出力重み行列の行列積として計算できるh = ReLU( hin )y = Softmax( yin )

26

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

27

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9 バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

28

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9+4

-4

0

-2

+3

0

-2

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

29

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

30

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個+結合バイアス

100個

結合重み100times10 個

+結合バイアス10個

31

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個+結合バイアス

100個

結合重み100times10 個+結合バイアス

10個

784

100 10

32

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

33

数字認識実際の計算(バイアスあり)

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1

784 times 100

w2

100 times 10

b1

100

b2

10

hin = x w1 + b1

yin = h w2 + b2

各層の入力値は前層の出力重み行列 + バイアスと計算できる

h = ReLU( hin )y = Softmax( yin )

34

数字認識一度に1データを処理

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

35

数字認識一度に2データを処理

hellip

入力層 隠れ層 出力層

2x

784

2x

100

2x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

36

数字認識一度に3データを処理

hellip

入力層 隠れ層 出力層

3x

784

3x

100

3x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

37

数字認識一度に N データを処理

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

38

数字認識確保する変数(バッチ学習の場合)

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

39

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

40

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

41

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

42

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

データセットのデータを入れる毎回こちらが変更する

43

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

44

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

45

TensorFlow のデータ型

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

Placeholder

Variable

Tensor テンソルとは 多次元配列のこと

46

Hello TensorFlow ( 000-MNISTipynb を開いて)

47

Hello TensorFlow

48

Hello TensorFlow

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 8: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

Jupyter (旧称 IPython Notebook )bull ブラウザ経由で以下ができるツールです

ndash Python のインタラクティブシェルndash linux コンソール(今日は使わないで)

bull 配布資料の URL からアクセスして下さいndash 以下がインストールされたサーバ (36vCPU c48xlarge)

bull TensorFlow ( Google 製の Deep Learning のライブラリ)bull Anaconda ( Python 機械学習のパッケージ Jupyter 含む)

ndash 勉強会後にサーバを落とすので必要なファイルは最後にローカルに保存して下さい(アナウンスします) 8

9

Hello Jupyter

1 識別子として自分の名前を使った prefix を使うndash チームラボの人はメールアドレスの文字列(例 yamamoto )ndash 外部の方はフルネーム(例 yamadataro )

2 Python ノートブックを作って下さいndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -HelloJupyter と入力例 yamamoto-HelloJupyter

10

Hello Jupyter

bull 基本的な使い方

11

Hello Jupyter

12

ハンズオン 2 TENSORFLOW 入門

ニューロン ニューロン同士の結合

ニューラルネットワーク(復習)

13入力層 隠れ層 出力層

3-12-51-2

2

1

+6

-5

+1

-1

+2

1-2-2012-1-12

-02

-2

+1

4-2

30

-1-2

+14

-23

07

03

09

045

01

07

098

002

血液中の成分 X濃度

血液中の成分 Y濃度

男である確率

女である確率

活性化関数神経細胞の活動をモデル化入力が閾値を超えると発火 (=1)超えなければ発火しない (=0)sigmoid tanh ReLU など

sigmoid 関数 出力関数目的に応じて出力値を整える関数クラス分け (classification)問題ではsoftmax 関数 が用いられるsoftmax 関数は出力値を確率に変換

2

ニューロンの出力

3

結合の重み

14

活性化関数 ReLU 関数

区分線形ユニット関数 (Rectified Linear Unit)計算効率学習効率が良いためDeep Learning でよく用いられる

15

出力関数 softmax 関数入力を確率(合計 1 の正の値)に変換認識問題に用いる

出力層

0

+1

-05

05

入力1

272

061

165

exp( 入力 )017

046

01

028

合計 1 に正規化

16

ロス関数bull 出力と正解のズレの大きさをモデル化する関数

ndash 2乗誤差 (mean squared error) 汎用ndash クロスエントロピー (cross entropy) 確率の場合に用いる

bull ロス関数が小さくなるように誤差逆伝播 (Back Propagation) で学習

入力層 隠れ層 出力層

3-12-51-2

2

1

1-2-2012-1-12

4-2

30

-1-2

07

03

09

045

01

07

098

002

正解

0

1

17

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

18

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

19

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

20

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

21

ニューラルネット復習キーワードbull 活性化関数 ReLUbull 出力関数 Softmaxbull ロス関数クロスエントロピーbull 誤差逆伝播( Back Propagation )bull ドロップアウト

22

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

23

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個

結合重み100times10 個

784

100 10

24

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

25

数字認識実際の計算

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1784 times 100

w2100 times 10

hin = x w1yin = h w2

各層の入力値は前層の出力重み行列の行列積として計算できるh = ReLU( hin )y = Softmax( yin )

26

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

27

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9 バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

28

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9+4

-4

0

-2

+3

0

-2

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

29

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

30

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個+結合バイアス

100個

結合重み100times10 個

+結合バイアス10個

31

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個+結合バイアス

100個

結合重み100times10 個+結合バイアス

10個

784

100 10

32

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

33

数字認識実際の計算(バイアスあり)

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1

784 times 100

w2

100 times 10

b1

100

b2

10

hin = x w1 + b1

yin = h w2 + b2

各層の入力値は前層の出力重み行列 + バイアスと計算できる

h = ReLU( hin )y = Softmax( yin )

34

数字認識一度に1データを処理

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

35

数字認識一度に2データを処理

hellip

入力層 隠れ層 出力層

2x

784

2x

100

2x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

36

数字認識一度に3データを処理

hellip

入力層 隠れ層 出力層

3x

784

3x

100

3x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

37

数字認識一度に N データを処理

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

38

数字認識確保する変数(バッチ学習の場合)

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

39

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

40

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

41

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

42

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

データセットのデータを入れる毎回こちらが変更する

43

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

44

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

45

TensorFlow のデータ型

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

Placeholder

Variable

Tensor テンソルとは 多次元配列のこと

46

Hello TensorFlow ( 000-MNISTipynb を開いて)

47

Hello TensorFlow

48

Hello TensorFlow

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 9: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

9

Hello Jupyter

1 識別子として自分の名前を使った prefix を使うndash チームラボの人はメールアドレスの文字列(例 yamamoto )ndash 外部の方はフルネーム(例 yamadataro )

2 Python ノートブックを作って下さいndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -HelloJupyter と入力例 yamamoto-HelloJupyter

10

Hello Jupyter

bull 基本的な使い方

11

Hello Jupyter

12

ハンズオン 2 TENSORFLOW 入門

ニューロン ニューロン同士の結合

ニューラルネットワーク(復習)

13入力層 隠れ層 出力層

3-12-51-2

2

1

+6

-5

+1

-1

+2

1-2-2012-1-12

-02

-2

+1

4-2

30

-1-2

+14

-23

07

03

09

045

01

07

098

002

血液中の成分 X濃度

血液中の成分 Y濃度

男である確率

女である確率

活性化関数神経細胞の活動をモデル化入力が閾値を超えると発火 (=1)超えなければ発火しない (=0)sigmoid tanh ReLU など

sigmoid 関数 出力関数目的に応じて出力値を整える関数クラス分け (classification)問題ではsoftmax 関数 が用いられるsoftmax 関数は出力値を確率に変換

2

ニューロンの出力

3

結合の重み

14

活性化関数 ReLU 関数

区分線形ユニット関数 (Rectified Linear Unit)計算効率学習効率が良いためDeep Learning でよく用いられる

15

出力関数 softmax 関数入力を確率(合計 1 の正の値)に変換認識問題に用いる

出力層

0

+1

-05

05

入力1

272

061

165

exp( 入力 )017

046

01

028

合計 1 に正規化

16

ロス関数bull 出力と正解のズレの大きさをモデル化する関数

ndash 2乗誤差 (mean squared error) 汎用ndash クロスエントロピー (cross entropy) 確率の場合に用いる

bull ロス関数が小さくなるように誤差逆伝播 (Back Propagation) で学習

入力層 隠れ層 出力層

3-12-51-2

2

1

1-2-2012-1-12

4-2

30

-1-2

07

03

09

045

01

07

098

002

正解

0

1

17

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

18

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

19

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

20

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

21

ニューラルネット復習キーワードbull 活性化関数 ReLUbull 出力関数 Softmaxbull ロス関数クロスエントロピーbull 誤差逆伝播( Back Propagation )bull ドロップアウト

22

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

23

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個

結合重み100times10 個

784

100 10

24

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

25

数字認識実際の計算

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1784 times 100

w2100 times 10

hin = x w1yin = h w2

各層の入力値は前層の出力重み行列の行列積として計算できるh = ReLU( hin )y = Softmax( yin )

26

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

27

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9 バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

28

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9+4

-4

0

-2

+3

0

-2

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

29

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

30

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個+結合バイアス

100個

結合重み100times10 個

+結合バイアス10個

31

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個+結合バイアス

100個

結合重み100times10 個+結合バイアス

10個

784

100 10

32

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

33

数字認識実際の計算(バイアスあり)

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1

784 times 100

w2

100 times 10

b1

100

b2

10

hin = x w1 + b1

yin = h w2 + b2

各層の入力値は前層の出力重み行列 + バイアスと計算できる

h = ReLU( hin )y = Softmax( yin )

34

数字認識一度に1データを処理

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

35

数字認識一度に2データを処理

hellip

入力層 隠れ層 出力層

2x

784

2x

100

2x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

36

数字認識一度に3データを処理

hellip

入力層 隠れ層 出力層

3x

784

3x

100

3x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

37

数字認識一度に N データを処理

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

38

数字認識確保する変数(バッチ学習の場合)

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

39

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

40

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

41

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

42

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

データセットのデータを入れる毎回こちらが変更する

43

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

44

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

45

TensorFlow のデータ型

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

Placeholder

Variable

Tensor テンソルとは 多次元配列のこと

46

Hello TensorFlow ( 000-MNISTipynb を開いて)

47

Hello TensorFlow

48

Hello TensorFlow

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 10: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

10

Hello Jupyter

bull 基本的な使い方

11

Hello Jupyter

12

ハンズオン 2 TENSORFLOW 入門

ニューロン ニューロン同士の結合

ニューラルネットワーク(復習)

13入力層 隠れ層 出力層

3-12-51-2

2

1

+6

-5

+1

-1

+2

1-2-2012-1-12

-02

-2

+1

4-2

30

-1-2

+14

-23

07

03

09

045

01

07

098

002

血液中の成分 X濃度

血液中の成分 Y濃度

男である確率

女である確率

活性化関数神経細胞の活動をモデル化入力が閾値を超えると発火 (=1)超えなければ発火しない (=0)sigmoid tanh ReLU など

sigmoid 関数 出力関数目的に応じて出力値を整える関数クラス分け (classification)問題ではsoftmax 関数 が用いられるsoftmax 関数は出力値を確率に変換

2

ニューロンの出力

3

結合の重み

14

活性化関数 ReLU 関数

区分線形ユニット関数 (Rectified Linear Unit)計算効率学習効率が良いためDeep Learning でよく用いられる

15

出力関数 softmax 関数入力を確率(合計 1 の正の値)に変換認識問題に用いる

出力層

0

+1

-05

05

入力1

272

061

165

exp( 入力 )017

046

01

028

合計 1 に正規化

16

ロス関数bull 出力と正解のズレの大きさをモデル化する関数

ndash 2乗誤差 (mean squared error) 汎用ndash クロスエントロピー (cross entropy) 確率の場合に用いる

bull ロス関数が小さくなるように誤差逆伝播 (Back Propagation) で学習

入力層 隠れ層 出力層

3-12-51-2

2

1

1-2-2012-1-12

4-2

30

-1-2

07

03

09

045

01

07

098

002

正解

0

1

17

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

18

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

19

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

20

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

21

ニューラルネット復習キーワードbull 活性化関数 ReLUbull 出力関数 Softmaxbull ロス関数クロスエントロピーbull 誤差逆伝播( Back Propagation )bull ドロップアウト

22

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

23

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個

結合重み100times10 個

784

100 10

24

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

25

数字認識実際の計算

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1784 times 100

w2100 times 10

hin = x w1yin = h w2

各層の入力値は前層の出力重み行列の行列積として計算できるh = ReLU( hin )y = Softmax( yin )

26

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

27

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9 バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

28

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9+4

-4

0

-2

+3

0

-2

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

29

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

30

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個+結合バイアス

100個

結合重み100times10 個

+結合バイアス10個

31

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個+結合バイアス

100個

結合重み100times10 個+結合バイアス

10個

784

100 10

32

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

33

数字認識実際の計算(バイアスあり)

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1

784 times 100

w2

100 times 10

b1

100

b2

10

hin = x w1 + b1

yin = h w2 + b2

各層の入力値は前層の出力重み行列 + バイアスと計算できる

h = ReLU( hin )y = Softmax( yin )

34

数字認識一度に1データを処理

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

35

数字認識一度に2データを処理

hellip

入力層 隠れ層 出力層

2x

784

2x

100

2x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

36

数字認識一度に3データを処理

hellip

入力層 隠れ層 出力層

3x

784

3x

100

3x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

37

数字認識一度に N データを処理

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

38

数字認識確保する変数(バッチ学習の場合)

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

39

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

40

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

41

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

42

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

データセットのデータを入れる毎回こちらが変更する

43

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

44

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

45

TensorFlow のデータ型

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

Placeholder

Variable

Tensor テンソルとは 多次元配列のこと

46

Hello TensorFlow ( 000-MNISTipynb を開いて)

47

Hello TensorFlow

48

Hello TensorFlow

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 11: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

11

Hello Jupyter

12

ハンズオン 2 TENSORFLOW 入門

ニューロン ニューロン同士の結合

ニューラルネットワーク(復習)

13入力層 隠れ層 出力層

3-12-51-2

2

1

+6

-5

+1

-1

+2

1-2-2012-1-12

-02

-2

+1

4-2

30

-1-2

+14

-23

07

03

09

045

01

07

098

002

血液中の成分 X濃度

血液中の成分 Y濃度

男である確率

女である確率

活性化関数神経細胞の活動をモデル化入力が閾値を超えると発火 (=1)超えなければ発火しない (=0)sigmoid tanh ReLU など

sigmoid 関数 出力関数目的に応じて出力値を整える関数クラス分け (classification)問題ではsoftmax 関数 が用いられるsoftmax 関数は出力値を確率に変換

2

ニューロンの出力

3

結合の重み

14

活性化関数 ReLU 関数

区分線形ユニット関数 (Rectified Linear Unit)計算効率学習効率が良いためDeep Learning でよく用いられる

15

出力関数 softmax 関数入力を確率(合計 1 の正の値)に変換認識問題に用いる

出力層

0

+1

-05

05

入力1

272

061

165

exp( 入力 )017

046

01

028

合計 1 に正規化

16

ロス関数bull 出力と正解のズレの大きさをモデル化する関数

ndash 2乗誤差 (mean squared error) 汎用ndash クロスエントロピー (cross entropy) 確率の場合に用いる

bull ロス関数が小さくなるように誤差逆伝播 (Back Propagation) で学習

入力層 隠れ層 出力層

3-12-51-2

2

1

1-2-2012-1-12

4-2

30

-1-2

07

03

09

045

01

07

098

002

正解

0

1

17

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

18

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

19

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

20

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

21

ニューラルネット復習キーワードbull 活性化関数 ReLUbull 出力関数 Softmaxbull ロス関数クロスエントロピーbull 誤差逆伝播( Back Propagation )bull ドロップアウト

22

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

23

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個

結合重み100times10 個

784

100 10

24

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

25

数字認識実際の計算

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1784 times 100

w2100 times 10

hin = x w1yin = h w2

各層の入力値は前層の出力重み行列の行列積として計算できるh = ReLU( hin )y = Softmax( yin )

26

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

27

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9 バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

28

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9+4

-4

0

-2

+3

0

-2

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

29

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

30

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個+結合バイアス

100個

結合重み100times10 個

+結合バイアス10個

31

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個+結合バイアス

100個

結合重み100times10 個+結合バイアス

10個

784

100 10

32

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

33

数字認識実際の計算(バイアスあり)

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1

784 times 100

w2

100 times 10

b1

100

b2

10

hin = x w1 + b1

yin = h w2 + b2

各層の入力値は前層の出力重み行列 + バイアスと計算できる

h = ReLU( hin )y = Softmax( yin )

34

数字認識一度に1データを処理

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

35

数字認識一度に2データを処理

hellip

入力層 隠れ層 出力層

2x

784

2x

100

2x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

36

数字認識一度に3データを処理

hellip

入力層 隠れ層 出力層

3x

784

3x

100

3x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

37

数字認識一度に N データを処理

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

38

数字認識確保する変数(バッチ学習の場合)

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

39

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

40

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

41

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

42

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

データセットのデータを入れる毎回こちらが変更する

43

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

44

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

45

TensorFlow のデータ型

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

Placeholder

Variable

Tensor テンソルとは 多次元配列のこと

46

Hello TensorFlow ( 000-MNISTipynb を開いて)

47

Hello TensorFlow

48

Hello TensorFlow

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 12: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

12

ハンズオン 2 TENSORFLOW 入門

ニューロン ニューロン同士の結合

ニューラルネットワーク(復習)

13入力層 隠れ層 出力層

3-12-51-2

2

1

+6

-5

+1

-1

+2

1-2-2012-1-12

-02

-2

+1

4-2

30

-1-2

+14

-23

07

03

09

045

01

07

098

002

血液中の成分 X濃度

血液中の成分 Y濃度

男である確率

女である確率

活性化関数神経細胞の活動をモデル化入力が閾値を超えると発火 (=1)超えなければ発火しない (=0)sigmoid tanh ReLU など

sigmoid 関数 出力関数目的に応じて出力値を整える関数クラス分け (classification)問題ではsoftmax 関数 が用いられるsoftmax 関数は出力値を確率に変換

2

ニューロンの出力

3

結合の重み

14

活性化関数 ReLU 関数

区分線形ユニット関数 (Rectified Linear Unit)計算効率学習効率が良いためDeep Learning でよく用いられる

15

出力関数 softmax 関数入力を確率(合計 1 の正の値)に変換認識問題に用いる

出力層

0

+1

-05

05

入力1

272

061

165

exp( 入力 )017

046

01

028

合計 1 に正規化

16

ロス関数bull 出力と正解のズレの大きさをモデル化する関数

ndash 2乗誤差 (mean squared error) 汎用ndash クロスエントロピー (cross entropy) 確率の場合に用いる

bull ロス関数が小さくなるように誤差逆伝播 (Back Propagation) で学習

入力層 隠れ層 出力層

3-12-51-2

2

1

1-2-2012-1-12

4-2

30

-1-2

07

03

09

045

01

07

098

002

正解

0

1

17

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

18

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

19

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

20

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

21

ニューラルネット復習キーワードbull 活性化関数 ReLUbull 出力関数 Softmaxbull ロス関数クロスエントロピーbull 誤差逆伝播( Back Propagation )bull ドロップアウト

22

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

23

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個

結合重み100times10 個

784

100 10

24

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

25

数字認識実際の計算

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1784 times 100

w2100 times 10

hin = x w1yin = h w2

各層の入力値は前層の出力重み行列の行列積として計算できるh = ReLU( hin )y = Softmax( yin )

26

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

27

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9 バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

28

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9+4

-4

0

-2

+3

0

-2

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

29

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

30

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個+結合バイアス

100個

結合重み100times10 個

+結合バイアス10個

31

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個+結合バイアス

100個

結合重み100times10 個+結合バイアス

10個

784

100 10

32

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

33

数字認識実際の計算(バイアスあり)

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1

784 times 100

w2

100 times 10

b1

100

b2

10

hin = x w1 + b1

yin = h w2 + b2

各層の入力値は前層の出力重み行列 + バイアスと計算できる

h = ReLU( hin )y = Softmax( yin )

34

数字認識一度に1データを処理

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

35

数字認識一度に2データを処理

hellip

入力層 隠れ層 出力層

2x

784

2x

100

2x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

36

数字認識一度に3データを処理

hellip

入力層 隠れ層 出力層

3x

784

3x

100

3x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

37

数字認識一度に N データを処理

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

38

数字認識確保する変数(バッチ学習の場合)

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

39

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

40

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

41

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

42

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

データセットのデータを入れる毎回こちらが変更する

43

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

44

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

45

TensorFlow のデータ型

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

Placeholder

Variable

Tensor テンソルとは 多次元配列のこと

46

Hello TensorFlow ( 000-MNISTipynb を開いて)

47

Hello TensorFlow

48

Hello TensorFlow

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 13: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

ニューロン ニューロン同士の結合

ニューラルネットワーク(復習)

13入力層 隠れ層 出力層

3-12-51-2

2

1

+6

-5

+1

-1

+2

1-2-2012-1-12

-02

-2

+1

4-2

30

-1-2

+14

-23

07

03

09

045

01

07

098

002

血液中の成分 X濃度

血液中の成分 Y濃度

男である確率

女である確率

活性化関数神経細胞の活動をモデル化入力が閾値を超えると発火 (=1)超えなければ発火しない (=0)sigmoid tanh ReLU など

sigmoid 関数 出力関数目的に応じて出力値を整える関数クラス分け (classification)問題ではsoftmax 関数 が用いられるsoftmax 関数は出力値を確率に変換

2

ニューロンの出力

3

結合の重み

14

活性化関数 ReLU 関数

区分線形ユニット関数 (Rectified Linear Unit)計算効率学習効率が良いためDeep Learning でよく用いられる

15

出力関数 softmax 関数入力を確率(合計 1 の正の値)に変換認識問題に用いる

出力層

0

+1

-05

05

入力1

272

061

165

exp( 入力 )017

046

01

028

合計 1 に正規化

16

ロス関数bull 出力と正解のズレの大きさをモデル化する関数

ndash 2乗誤差 (mean squared error) 汎用ndash クロスエントロピー (cross entropy) 確率の場合に用いる

bull ロス関数が小さくなるように誤差逆伝播 (Back Propagation) で学習

入力層 隠れ層 出力層

3-12-51-2

2

1

1-2-2012-1-12

4-2

30

-1-2

07

03

09

045

01

07

098

002

正解

0

1

17

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

18

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

19

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

20

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

21

ニューラルネット復習キーワードbull 活性化関数 ReLUbull 出力関数 Softmaxbull ロス関数クロスエントロピーbull 誤差逆伝播( Back Propagation )bull ドロップアウト

22

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

23

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個

結合重み100times10 個

784

100 10

24

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

25

数字認識実際の計算

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1784 times 100

w2100 times 10

hin = x w1yin = h w2

各層の入力値は前層の出力重み行列の行列積として計算できるh = ReLU( hin )y = Softmax( yin )

26

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

27

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9 バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

28

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9+4

-4

0

-2

+3

0

-2

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

29

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

30

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個+結合バイアス

100個

結合重み100times10 個

+結合バイアス10個

31

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個+結合バイアス

100個

結合重み100times10 個+結合バイアス

10個

784

100 10

32

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

33

数字認識実際の計算(バイアスあり)

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1

784 times 100

w2

100 times 10

b1

100

b2

10

hin = x w1 + b1

yin = h w2 + b2

各層の入力値は前層の出力重み行列 + バイアスと計算できる

h = ReLU( hin )y = Softmax( yin )

34

数字認識一度に1データを処理

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

35

数字認識一度に2データを処理

hellip

入力層 隠れ層 出力層

2x

784

2x

100

2x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

36

数字認識一度に3データを処理

hellip

入力層 隠れ層 出力層

3x

784

3x

100

3x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

37

数字認識一度に N データを処理

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

38

数字認識確保する変数(バッチ学習の場合)

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

39

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

40

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

41

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

42

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

データセットのデータを入れる毎回こちらが変更する

43

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

44

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

45

TensorFlow のデータ型

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

Placeholder

Variable

Tensor テンソルとは 多次元配列のこと

46

Hello TensorFlow ( 000-MNISTipynb を開いて)

47

Hello TensorFlow

48

Hello TensorFlow

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 14: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

14

活性化関数 ReLU 関数

区分線形ユニット関数 (Rectified Linear Unit)計算効率学習効率が良いためDeep Learning でよく用いられる

15

出力関数 softmax 関数入力を確率(合計 1 の正の値)に変換認識問題に用いる

出力層

0

+1

-05

05

入力1

272

061

165

exp( 入力 )017

046

01

028

合計 1 に正規化

16

ロス関数bull 出力と正解のズレの大きさをモデル化する関数

ndash 2乗誤差 (mean squared error) 汎用ndash クロスエントロピー (cross entropy) 確率の場合に用いる

bull ロス関数が小さくなるように誤差逆伝播 (Back Propagation) で学習

入力層 隠れ層 出力層

3-12-51-2

2

1

1-2-2012-1-12

4-2

30

-1-2

07

03

09

045

01

07

098

002

正解

0

1

17

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

18

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

19

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

20

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

21

ニューラルネット復習キーワードbull 活性化関数 ReLUbull 出力関数 Softmaxbull ロス関数クロスエントロピーbull 誤差逆伝播( Back Propagation )bull ドロップアウト

22

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

23

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個

結合重み100times10 個

784

100 10

24

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

25

数字認識実際の計算

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1784 times 100

w2100 times 10

hin = x w1yin = h w2

各層の入力値は前層の出力重み行列の行列積として計算できるh = ReLU( hin )y = Softmax( yin )

26

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

27

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9 バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

28

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9+4

-4

0

-2

+3

0

-2

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

29

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

30

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個+結合バイアス

100個

結合重み100times10 個

+結合バイアス10個

31

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個+結合バイアス

100個

結合重み100times10 個+結合バイアス

10個

784

100 10

32

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

33

数字認識実際の計算(バイアスあり)

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1

784 times 100

w2

100 times 10

b1

100

b2

10

hin = x w1 + b1

yin = h w2 + b2

各層の入力値は前層の出力重み行列 + バイアスと計算できる

h = ReLU( hin )y = Softmax( yin )

34

数字認識一度に1データを処理

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

35

数字認識一度に2データを処理

hellip

入力層 隠れ層 出力層

2x

784

2x

100

2x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

36

数字認識一度に3データを処理

hellip

入力層 隠れ層 出力層

3x

784

3x

100

3x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

37

数字認識一度に N データを処理

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

38

数字認識確保する変数(バッチ学習の場合)

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

39

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

40

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

41

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

42

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

データセットのデータを入れる毎回こちらが変更する

43

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

44

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

45

TensorFlow のデータ型

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

Placeholder

Variable

Tensor テンソルとは 多次元配列のこと

46

Hello TensorFlow ( 000-MNISTipynb を開いて)

47

Hello TensorFlow

48

Hello TensorFlow

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 15: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

15

出力関数 softmax 関数入力を確率(合計 1 の正の値)に変換認識問題に用いる

出力層

0

+1

-05

05

入力1

272

061

165

exp( 入力 )017

046

01

028

合計 1 に正規化

16

ロス関数bull 出力と正解のズレの大きさをモデル化する関数

ndash 2乗誤差 (mean squared error) 汎用ndash クロスエントロピー (cross entropy) 確率の場合に用いる

bull ロス関数が小さくなるように誤差逆伝播 (Back Propagation) で学習

入力層 隠れ層 出力層

3-12-51-2

2

1

1-2-2012-1-12

4-2

30

-1-2

07

03

09

045

01

07

098

002

正解

0

1

17

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

18

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

19

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

20

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

21

ニューラルネット復習キーワードbull 活性化関数 ReLUbull 出力関数 Softmaxbull ロス関数クロスエントロピーbull 誤差逆伝播( Back Propagation )bull ドロップアウト

22

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

23

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個

結合重み100times10 個

784

100 10

24

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

25

数字認識実際の計算

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1784 times 100

w2100 times 10

hin = x w1yin = h w2

各層の入力値は前層の出力重み行列の行列積として計算できるh = ReLU( hin )y = Softmax( yin )

26

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

27

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9 バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

28

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9+4

-4

0

-2

+3

0

-2

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

29

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

30

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個+結合バイアス

100個

結合重み100times10 個

+結合バイアス10個

31

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個+結合バイアス

100個

結合重み100times10 個+結合バイアス

10個

784

100 10

32

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

33

数字認識実際の計算(バイアスあり)

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1

784 times 100

w2

100 times 10

b1

100

b2

10

hin = x w1 + b1

yin = h w2 + b2

各層の入力値は前層の出力重み行列 + バイアスと計算できる

h = ReLU( hin )y = Softmax( yin )

34

数字認識一度に1データを処理

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

35

数字認識一度に2データを処理

hellip

入力層 隠れ層 出力層

2x

784

2x

100

2x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

36

数字認識一度に3データを処理

hellip

入力層 隠れ層 出力層

3x

784

3x

100

3x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

37

数字認識一度に N データを処理

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

38

数字認識確保する変数(バッチ学習の場合)

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

39

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

40

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

41

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

42

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

データセットのデータを入れる毎回こちらが変更する

43

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

44

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

45

TensorFlow のデータ型

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

Placeholder

Variable

Tensor テンソルとは 多次元配列のこと

46

Hello TensorFlow ( 000-MNISTipynb を開いて)

47

Hello TensorFlow

48

Hello TensorFlow

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 16: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

16

ロス関数bull 出力と正解のズレの大きさをモデル化する関数

ndash 2乗誤差 (mean squared error) 汎用ndash クロスエントロピー (cross entropy) 確率の場合に用いる

bull ロス関数が小さくなるように誤差逆伝播 (Back Propagation) で学習

入力層 隠れ層 出力層

3-12-51-2

2

1

1-2-2012-1-12

4-2

30

-1-2

07

03

09

045

01

07

098

002

正解

0

1

17

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

18

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

19

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

20

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

21

ニューラルネット復習キーワードbull 活性化関数 ReLUbull 出力関数 Softmaxbull ロス関数クロスエントロピーbull 誤差逆伝播( Back Propagation )bull ドロップアウト

22

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

23

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個

結合重み100times10 個

784

100 10

24

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

25

数字認識実際の計算

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1784 times 100

w2100 times 10

hin = x w1yin = h w2

各層の入力値は前層の出力重み行列の行列積として計算できるh = ReLU( hin )y = Softmax( yin )

26

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

27

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9 バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

28

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9+4

-4

0

-2

+3

0

-2

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

29

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

30

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個+結合バイアス

100個

結合重み100times10 個

+結合バイアス10個

31

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個+結合バイアス

100個

結合重み100times10 個+結合バイアス

10個

784

100 10

32

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

33

数字認識実際の計算(バイアスあり)

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1

784 times 100

w2

100 times 10

b1

100

b2

10

hin = x w1 + b1

yin = h w2 + b2

各層の入力値は前層の出力重み行列 + バイアスと計算できる

h = ReLU( hin )y = Softmax( yin )

34

数字認識一度に1データを処理

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

35

数字認識一度に2データを処理

hellip

入力層 隠れ層 出力層

2x

784

2x

100

2x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

36

数字認識一度に3データを処理

hellip

入力層 隠れ層 出力層

3x

784

3x

100

3x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

37

数字認識一度に N データを処理

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

38

数字認識確保する変数(バッチ学習の場合)

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

39

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

40

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

41

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

42

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

データセットのデータを入れる毎回こちらが変更する

43

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

44

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

45

TensorFlow のデータ型

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

Placeholder

Variable

Tensor テンソルとは 多次元配列のこと

46

Hello TensorFlow ( 000-MNISTipynb を開いて)

47

Hello TensorFlow

48

Hello TensorFlow

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 17: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

17

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

18

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

19

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

20

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

21

ニューラルネット復習キーワードbull 活性化関数 ReLUbull 出力関数 Softmaxbull ロス関数クロスエントロピーbull 誤差逆伝播( Back Propagation )bull ドロップアウト

22

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

23

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個

結合重み100times10 個

784

100 10

24

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

25

数字認識実際の計算

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1784 times 100

w2100 times 10

hin = x w1yin = h w2

各層の入力値は前層の出力重み行列の行列積として計算できるh = ReLU( hin )y = Softmax( yin )

26

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

27

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9 バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

28

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9+4

-4

0

-2

+3

0

-2

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

29

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

30

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個+結合バイアス

100個

結合重み100times10 個

+結合バイアス10個

31

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個+結合バイアス

100個

結合重み100times10 個+結合バイアス

10個

784

100 10

32

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

33

数字認識実際の計算(バイアスあり)

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1

784 times 100

w2

100 times 10

b1

100

b2

10

hin = x w1 + b1

yin = h w2 + b2

各層の入力値は前層の出力重み行列 + バイアスと計算できる

h = ReLU( hin )y = Softmax( yin )

34

数字認識一度に1データを処理

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

35

数字認識一度に2データを処理

hellip

入力層 隠れ層 出力層

2x

784

2x

100

2x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

36

数字認識一度に3データを処理

hellip

入力層 隠れ層 出力層

3x

784

3x

100

3x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

37

数字認識一度に N データを処理

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

38

数字認識確保する変数(バッチ学習の場合)

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

39

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

40

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

41

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

42

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

データセットのデータを入れる毎回こちらが変更する

43

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

44

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

45

TensorFlow のデータ型

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

Placeholder

Variable

Tensor テンソルとは 多次元配列のこと

46

Hello TensorFlow ( 000-MNISTipynb を開いて)

47

Hello TensorFlow

48

Hello TensorFlow

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 18: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

18

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

19

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

20

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

21

ニューラルネット復習キーワードbull 活性化関数 ReLUbull 出力関数 Softmaxbull ロス関数クロスエントロピーbull 誤差逆伝播( Back Propagation )bull ドロップアウト

22

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

23

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個

結合重み100times10 個

784

100 10

24

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

25

数字認識実際の計算

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1784 times 100

w2100 times 10

hin = x w1yin = h w2

各層の入力値は前層の出力重み行列の行列積として計算できるh = ReLU( hin )y = Softmax( yin )

26

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

27

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9 バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

28

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9+4

-4

0

-2

+3

0

-2

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

29

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

30

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個+結合バイアス

100個

結合重み100times10 個

+結合バイアス10個

31

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個+結合バイアス

100個

結合重み100times10 個+結合バイアス

10個

784

100 10

32

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

33

数字認識実際の計算(バイアスあり)

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1

784 times 100

w2

100 times 10

b1

100

b2

10

hin = x w1 + b1

yin = h w2 + b2

各層の入力値は前層の出力重み行列 + バイアスと計算できる

h = ReLU( hin )y = Softmax( yin )

34

数字認識一度に1データを処理

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

35

数字認識一度に2データを処理

hellip

入力層 隠れ層 出力層

2x

784

2x

100

2x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

36

数字認識一度に3データを処理

hellip

入力層 隠れ層 出力層

3x

784

3x

100

3x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

37

数字認識一度に N データを処理

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

38

数字認識確保する変数(バッチ学習の場合)

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

39

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

40

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

41

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

42

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

データセットのデータを入れる毎回こちらが変更する

43

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

44

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

45

TensorFlow のデータ型

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

Placeholder

Variable

Tensor テンソルとは 多次元配列のこと

46

Hello TensorFlow ( 000-MNISTipynb を開いて)

47

Hello TensorFlow

48

Hello TensorFlow

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 19: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

19

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

20

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

21

ニューラルネット復習キーワードbull 活性化関数 ReLUbull 出力関数 Softmaxbull ロス関数クロスエントロピーbull 誤差逆伝播( Back Propagation )bull ドロップアウト

22

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

23

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個

結合重み100times10 個

784

100 10

24

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

25

数字認識実際の計算

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1784 times 100

w2100 times 10

hin = x w1yin = h w2

各層の入力値は前層の出力重み行列の行列積として計算できるh = ReLU( hin )y = Softmax( yin )

26

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

27

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9 バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

28

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9+4

-4

0

-2

+3

0

-2

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

29

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

30

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個+結合バイアス

100個

結合重み100times10 個

+結合バイアス10個

31

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個+結合バイアス

100個

結合重み100times10 個+結合バイアス

10個

784

100 10

32

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

33

数字認識実際の計算(バイアスあり)

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1

784 times 100

w2

100 times 10

b1

100

b2

10

hin = x w1 + b1

yin = h w2 + b2

各層の入力値は前層の出力重み行列 + バイアスと計算できる

h = ReLU( hin )y = Softmax( yin )

34

数字認識一度に1データを処理

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

35

数字認識一度に2データを処理

hellip

入力層 隠れ層 出力層

2x

784

2x

100

2x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

36

数字認識一度に3データを処理

hellip

入力層 隠れ層 出力層

3x

784

3x

100

3x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

37

数字認識一度に N データを処理

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

38

数字認識確保する変数(バッチ学習の場合)

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

39

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

40

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

41

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

42

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

データセットのデータを入れる毎回こちらが変更する

43

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

44

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

45

TensorFlow のデータ型

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

Placeholder

Variable

Tensor テンソルとは 多次元配列のこと

46

Hello TensorFlow ( 000-MNISTipynb を開いて)

47

Hello TensorFlow

48

Hello TensorFlow

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 20: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

20

ドロップアウトbull 学習を行う際ランダムに 50 のニューロンを OFF にして学習する

hellip hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo数字rdquo 1rdquo

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo数字rdquo 9rdquo

入力層28x28=784個

21

ニューラルネット復習キーワードbull 活性化関数 ReLUbull 出力関数 Softmaxbull ロス関数クロスエントロピーbull 誤差逆伝播( Back Propagation )bull ドロップアウト

22

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

23

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個

結合重み100times10 個

784

100 10

24

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

25

数字認識実際の計算

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1784 times 100

w2100 times 10

hin = x w1yin = h w2

各層の入力値は前層の出力重み行列の行列積として計算できるh = ReLU( hin )y = Softmax( yin )

26

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

27

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9 バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

28

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9+4

-4

0

-2

+3

0

-2

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

29

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

30

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個+結合バイアス

100個

結合重み100times10 個

+結合バイアス10個

31

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個+結合バイアス

100個

結合重み100times10 個+結合バイアス

10個

784

100 10

32

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

33

数字認識実際の計算(バイアスあり)

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1

784 times 100

w2

100 times 10

b1

100

b2

10

hin = x w1 + b1

yin = h w2 + b2

各層の入力値は前層の出力重み行列 + バイアスと計算できる

h = ReLU( hin )y = Softmax( yin )

34

数字認識一度に1データを処理

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

35

数字認識一度に2データを処理

hellip

入力層 隠れ層 出力層

2x

784

2x

100

2x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

36

数字認識一度に3データを処理

hellip

入力層 隠れ層 出力層

3x

784

3x

100

3x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

37

数字認識一度に N データを処理

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

38

数字認識確保する変数(バッチ学習の場合)

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

39

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

40

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

41

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

42

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

データセットのデータを入れる毎回こちらが変更する

43

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

44

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

45

TensorFlow のデータ型

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

Placeholder

Variable

Tensor テンソルとは 多次元配列のこと

46

Hello TensorFlow ( 000-MNISTipynb を開いて)

47

Hello TensorFlow

48

Hello TensorFlow

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 21: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

21

ニューラルネット復習キーワードbull 活性化関数 ReLUbull 出力関数 Softmaxbull ロス関数クロスエントロピーbull 誤差逆伝播( Back Propagation )bull ドロップアウト

22

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

23

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個

結合重み100times10 個

784

100 10

24

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

25

数字認識実際の計算

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1784 times 100

w2100 times 10

hin = x w1yin = h w2

各層の入力値は前層の出力重み行列の行列積として計算できるh = ReLU( hin )y = Softmax( yin )

26

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

27

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9 バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

28

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9+4

-4

0

-2

+3

0

-2

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

29

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

30

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個+結合バイアス

100個

結合重み100times10 個

+結合バイアス10個

31

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個+結合バイアス

100個

結合重み100times10 個+結合バイアス

10個

784

100 10

32

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

33

数字認識実際の計算(バイアスあり)

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1

784 times 100

w2

100 times 10

b1

100

b2

10

hin = x w1 + b1

yin = h w2 + b2

各層の入力値は前層の出力重み行列 + バイアスと計算できる

h = ReLU( hin )y = Softmax( yin )

34

数字認識一度に1データを処理

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

35

数字認識一度に2データを処理

hellip

入力層 隠れ層 出力層

2x

784

2x

100

2x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

36

数字認識一度に3データを処理

hellip

入力層 隠れ層 出力層

3x

784

3x

100

3x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

37

数字認識一度に N データを処理

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

38

数字認識確保する変数(バッチ学習の場合)

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

39

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

40

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

41

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

42

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

データセットのデータを入れる毎回こちらが変更する

43

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

44

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

45

TensorFlow のデータ型

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

Placeholder

Variable

Tensor テンソルとは 多次元配列のこと

46

Hello TensorFlow ( 000-MNISTipynb を開いて)

47

Hello TensorFlow

48

Hello TensorFlow

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 22: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

22

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

23

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個

結合重み100times10 個

784

100 10

24

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

25

数字認識実際の計算

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1784 times 100

w2100 times 10

hin = x w1yin = h w2

各層の入力値は前層の出力重み行列の行列積として計算できるh = ReLU( hin )y = Softmax( yin )

26

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

27

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9 バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

28

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9+4

-4

0

-2

+3

0

-2

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

29

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

30

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個+結合バイアス

100個

結合重み100times10 個

+結合バイアス10個

31

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個+結合バイアス

100個

結合重み100times10 個+結合バイアス

10個

784

100 10

32

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

33

数字認識実際の計算(バイアスあり)

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1

784 times 100

w2

100 times 10

b1

100

b2

10

hin = x w1 + b1

yin = h w2 + b2

各層の入力値は前層の出力重み行列 + バイアスと計算できる

h = ReLU( hin )y = Softmax( yin )

34

数字認識一度に1データを処理

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

35

数字認識一度に2データを処理

hellip

入力層 隠れ層 出力層

2x

784

2x

100

2x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

36

数字認識一度に3データを処理

hellip

入力層 隠れ層 出力層

3x

784

3x

100

3x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

37

数字認識一度に N データを処理

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

38

数字認識確保する変数(バッチ学習の場合)

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

39

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

40

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

41

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

42

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

データセットのデータを入れる毎回こちらが変更する

43

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

44

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

45

TensorFlow のデータ型

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

Placeholder

Variable

Tensor テンソルとは 多次元配列のこと

46

Hello TensorFlow ( 000-MNISTipynb を開いて)

47

Hello TensorFlow

48

Hello TensorFlow

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 23: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

23

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個

結合重み100times10 個

784

100 10

24

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

25

数字認識実際の計算

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1784 times 100

w2100 times 10

hin = x w1yin = h w2

各層の入力値は前層の出力重み行列の行列積として計算できるh = ReLU( hin )y = Softmax( yin )

26

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

27

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9 バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

28

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9+4

-4

0

-2

+3

0

-2

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

29

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

30

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個+結合バイアス

100個

結合重み100times10 個

+結合バイアス10個

31

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個+結合バイアス

100個

結合重み100times10 個+結合バイアス

10個

784

100 10

32

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

33

数字認識実際の計算(バイアスあり)

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1

784 times 100

w2

100 times 10

b1

100

b2

10

hin = x w1 + b1

yin = h w2 + b2

各層の入力値は前層の出力重み行列 + バイアスと計算できる

h = ReLU( hin )y = Softmax( yin )

34

数字認識一度に1データを処理

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

35

数字認識一度に2データを処理

hellip

入力層 隠れ層 出力層

2x

784

2x

100

2x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

36

数字認識一度に3データを処理

hellip

入力層 隠れ層 出力層

3x

784

3x

100

3x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

37

数字認識一度に N データを処理

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

38

数字認識確保する変数(バッチ学習の場合)

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

39

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

40

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

41

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

42

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

データセットのデータを入れる毎回こちらが変更する

43

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

44

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

45

TensorFlow のデータ型

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

Placeholder

Variable

Tensor テンソルとは 多次元配列のこと

46

Hello TensorFlow ( 000-MNISTipynb を開いて)

47

Hello TensorFlow

48

Hello TensorFlow

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 24: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

24

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

25

数字認識実際の計算

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1784 times 100

w2100 times 10

hin = x w1yin = h w2

各層の入力値は前層の出力重み行列の行列積として計算できるh = ReLU( hin )y = Softmax( yin )

26

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

27

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9 バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

28

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9+4

-4

0

-2

+3

0

-2

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

29

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

30

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個+結合バイアス

100個

結合重み100times10 個

+結合バイアス10個

31

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個+結合バイアス

100個

結合重み100times10 個+結合バイアス

10個

784

100 10

32

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

33

数字認識実際の計算(バイアスあり)

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1

784 times 100

w2

100 times 10

b1

100

b2

10

hin = x w1 + b1

yin = h w2 + b2

各層の入力値は前層の出力重み行列 + バイアスと計算できる

h = ReLU( hin )y = Softmax( yin )

34

数字認識一度に1データを処理

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

35

数字認識一度に2データを処理

hellip

入力層 隠れ層 出力層

2x

784

2x

100

2x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

36

数字認識一度に3データを処理

hellip

入力層 隠れ層 出力層

3x

784

3x

100

3x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

37

数字認識一度に N データを処理

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

38

数字認識確保する変数(バッチ学習の場合)

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

39

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

40

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

41

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

42

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

データセットのデータを入れる毎回こちらが変更する

43

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

44

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

45

TensorFlow のデータ型

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

Placeholder

Variable

Tensor テンソルとは 多次元配列のこと

46

Hello TensorFlow ( 000-MNISTipynb を開いて)

47

Hello TensorFlow

48

Hello TensorFlow

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 25: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

25

数字認識実際の計算

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1784 times 100

w2100 times 10

hin = x w1yin = h w2

各層の入力値は前層の出力重み行列の行列積として計算できるh = ReLU( hin )y = Softmax( yin )

26

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

27

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9 バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

28

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9+4

-4

0

-2

+3

0

-2

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

29

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

30

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個+結合バイアス

100個

結合重み100times10 個

+結合バイアス10個

31

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個+結合バイアス

100個

結合重み100times10 個+結合バイアス

10個

784

100 10

32

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

33

数字認識実際の計算(バイアスあり)

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1

784 times 100

w2

100 times 10

b1

100

b2

10

hin = x w1 + b1

yin = h w2 + b2

各層の入力値は前層の出力重み行列 + バイアスと計算できる

h = ReLU( hin )y = Softmax( yin )

34

数字認識一度に1データを処理

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

35

数字認識一度に2データを処理

hellip

入力層 隠れ層 出力層

2x

784

2x

100

2x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

36

数字認識一度に3データを処理

hellip

入力層 隠れ層 出力層

3x

784

3x

100

3x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

37

数字認識一度に N データを処理

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

38

数字認識確保する変数(バッチ学習の場合)

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

39

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

40

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

41

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

42

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

データセットのデータを入れる毎回こちらが変更する

43

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

44

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

45

TensorFlow のデータ型

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

Placeholder

Variable

Tensor テンソルとは 多次元配列のこと

46

Hello TensorFlow ( 000-MNISTipynb を開いて)

47

Hello TensorFlow

48

Hello TensorFlow

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 26: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

26

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

27

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9 バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

28

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9+4

-4

0

-2

+3

0

-2

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

29

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

30

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個+結合バイアス

100個

結合重み100times10 個

+結合バイアス10個

31

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個+結合バイアス

100個

結合重み100times10 個+結合バイアス

10個

784

100 10

32

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

33

数字認識実際の計算(バイアスあり)

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1

784 times 100

w2

100 times 10

b1

100

b2

10

hin = x w1 + b1

yin = h w2 + b2

各層の入力値は前層の出力重み行列 + バイアスと計算できる

h = ReLU( hin )y = Softmax( yin )

34

数字認識一度に1データを処理

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

35

数字認識一度に2データを処理

hellip

入力層 隠れ層 出力層

2x

784

2x

100

2x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

36

数字認識一度に3データを処理

hellip

入力層 隠れ層 出力層

3x

784

3x

100

3x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

37

数字認識一度に N データを処理

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

38

数字認識確保する変数(バッチ学習の場合)

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

39

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

40

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

41

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

42

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

データセットのデータを入れる毎回こちらが変更する

43

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

44

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

45

TensorFlow のデータ型

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

Placeholder

Variable

Tensor テンソルとは 多次元配列のこと

46

Hello TensorFlow ( 000-MNISTipynb を開いて)

47

Hello TensorFlow

48

Hello TensorFlow

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 27: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

27

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9 バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

28

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9+4

-4

0

-2

+3

0

-2

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

29

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

30

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個+結合バイアス

100個

結合重み100times10 個

+結合バイアス10個

31

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個+結合バイアス

100個

結合重み100times10 個+結合バイアス

10個

784

100 10

32

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

33

数字認識実際の計算(バイアスあり)

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1

784 times 100

w2

100 times 10

b1

100

b2

10

hin = x w1 + b1

yin = h w2 + b2

各層の入力値は前層の出力重み行列 + バイアスと計算できる

h = ReLU( hin )y = Softmax( yin )

34

数字認識一度に1データを処理

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

35

数字認識一度に2データを処理

hellip

入力層 隠れ層 出力層

2x

784

2x

100

2x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

36

数字認識一度に3データを処理

hellip

入力層 隠れ層 出力層

3x

784

3x

100

3x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

37

数字認識一度に N データを処理

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

38

数字認識確保する変数(バッチ学習の場合)

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

39

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

40

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

41

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

42

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

データセットのデータを入れる毎回こちらが変更する

43

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

44

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

45

TensorFlow のデータ型

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

Placeholder

Variable

Tensor テンソルとは 多次元配列のこと

46

Hello TensorFlow ( 000-MNISTipynb を開いて)

47

Hello TensorFlow

48

Hello TensorFlow

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 28: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

28

結合バイアスbull 以前の勉強会では話しませんでしたがニューラルネットの結合パラメタには結合重みの他に結合バイアス というものがあります

3-12-51-2

2

1

+6

-5

+1 1-2-2012-1-12

4-2

30

-1-2

0

09

01

045

01

07

098

002

-10

-9+4

-4

0

-2

+3

0

-2

バイアスを加えると入力が ldquo一定値を超えるとrdquo発火するように制御できる結合重み同様誤差逆伝播法で学習できる

29

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

30

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個+結合バイアス

100個

結合重み100times10 個

+結合バイアス10個

31

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個+結合バイアス

100個

結合重み100times10 個+結合バイアス

10個

784

100 10

32

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

33

数字認識実際の計算(バイアスあり)

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1

784 times 100

w2

100 times 10

b1

100

b2

10

hin = x w1 + b1

yin = h w2 + b2

各層の入力値は前層の出力重み行列 + バイアスと計算できる

h = ReLU( hin )y = Softmax( yin )

34

数字認識一度に1データを処理

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

35

数字認識一度に2データを処理

hellip

入力層 隠れ層 出力層

2x

784

2x

100

2x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

36

数字認識一度に3データを処理

hellip

入力層 隠れ層 出力層

3x

784

3x

100

3x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

37

数字認識一度に N データを処理

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

38

数字認識確保する変数(バッチ学習の場合)

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

39

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

40

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

41

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

42

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

データセットのデータを入れる毎回こちらが変更する

43

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

44

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

45

TensorFlow のデータ型

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

Placeholder

Variable

Tensor テンソルとは 多次元配列のこと

46

Hello TensorFlow ( 000-MNISTipynb を開いて)

47

Hello TensorFlow

48

Hello TensorFlow

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 29: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

29

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個結合重み

100times10 個

30

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個+結合バイアス

100個

結合重み100times10 個

+結合バイアス10個

31

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個+結合バイアス

100個

結合重み100times10 個+結合バイアス

10個

784

100 10

32

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

33

数字認識実際の計算(バイアスあり)

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1

784 times 100

w2

100 times 10

b1

100

b2

10

hin = x w1 + b1

yin = h w2 + b2

各層の入力値は前層の出力重み行列 + バイアスと計算できる

h = ReLU( hin )y = Softmax( yin )

34

数字認識一度に1データを処理

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

35

数字認識一度に2データを処理

hellip

入力層 隠れ層 出力層

2x

784

2x

100

2x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

36

数字認識一度に3データを処理

hellip

入力層 隠れ層 出力層

3x

784

3x

100

3x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

37

数字認識一度に N データを処理

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

38

数字認識確保する変数(バッチ学習の場合)

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

39

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

40

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

41

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

42

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

データセットのデータを入れる毎回こちらが変更する

43

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

44

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

45

TensorFlow のデータ型

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

Placeholder

Variable

Tensor テンソルとは 多次元配列のこと

46

Hello TensorFlow ( 000-MNISTipynb を開いて)

47

Hello TensorFlow

48

Hello TensorFlow

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 30: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

30

数字認識確保する変数は

hellip hellip

(0 0) の輝度(0 1) の輝度

(27 26) の輝度(2727) の輝度

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

手書き文字のピクセルデータ(28x28 gray-scale)

hellip

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

入力層28x28=784個 隠れ層

100個 出力層10個

784 次元ベクトル 100 次元ベクトル 10 次元ベクトル結合重み

784times100 個+結合バイアス

100個

結合重み100times10 個

+結合バイアス10個

31

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個+結合バイアス

100個

結合重み100times10 個+結合バイアス

10個

784

100 10

32

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

33

数字認識実際の計算(バイアスあり)

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1

784 times 100

w2

100 times 10

b1

100

b2

10

hin = x w1 + b1

yin = h w2 + b2

各層の入力値は前層の出力重み行列 + バイアスと計算できる

h = ReLU( hin )y = Softmax( yin )

34

数字認識一度に1データを処理

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

35

数字認識一度に2データを処理

hellip

入力層 隠れ層 出力層

2x

784

2x

100

2x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

36

数字認識一度に3データを処理

hellip

入力層 隠れ層 出力層

3x

784

3x

100

3x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

37

数字認識一度に N データを処理

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

38

数字認識確保する変数(バッチ学習の場合)

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

39

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

40

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

41

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

42

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

データセットのデータを入れる毎回こちらが変更する

43

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

44

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

45

TensorFlow のデータ型

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

Placeholder

Variable

Tensor テンソルとは 多次元配列のこと

46

Hello TensorFlow ( 000-MNISTipynb を開いて)

47

Hello TensorFlow

48

Hello TensorFlow

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 31: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

31

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

結合重み784times100 個+結合バイアス

100個

結合重み100times10 個+結合バイアス

10個

784

100 10

32

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

33

数字認識実際の計算(バイアスあり)

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1

784 times 100

w2

100 times 10

b1

100

b2

10

hin = x w1 + b1

yin = h w2 + b2

各層の入力値は前層の出力重み行列 + バイアスと計算できる

h = ReLU( hin )y = Softmax( yin )

34

数字認識一度に1データを処理

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

35

数字認識一度に2データを処理

hellip

入力層 隠れ層 出力層

2x

784

2x

100

2x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

36

数字認識一度に3データを処理

hellip

入力層 隠れ層 出力層

3x

784

3x

100

3x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

37

数字認識一度に N データを処理

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

38

数字認識確保する変数(バッチ学習の場合)

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

39

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

40

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

41

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

42

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

データセットのデータを入れる毎回こちらが変更する

43

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

44

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

45

TensorFlow のデータ型

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

Placeholder

Variable

Tensor テンソルとは 多次元配列のこと

46

Hello TensorFlow ( 000-MNISTipynb を開いて)

47

Hello TensorFlow

48

Hello TensorFlow

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 32: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

32

数字認識確保する変数は

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

33

数字認識実際の計算(バイアスあり)

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1

784 times 100

w2

100 times 10

b1

100

b2

10

hin = x w1 + b1

yin = h w2 + b2

各層の入力値は前層の出力重み行列 + バイアスと計算できる

h = ReLU( hin )y = Softmax( yin )

34

数字認識一度に1データを処理

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

35

数字認識一度に2データを処理

hellip

入力層 隠れ層 出力層

2x

784

2x

100

2x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

36

数字認識一度に3データを処理

hellip

入力層 隠れ層 出力層

3x

784

3x

100

3x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

37

数字認識一度に N データを処理

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

38

数字認識確保する変数(バッチ学習の場合)

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

39

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

40

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

41

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

42

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

データセットのデータを入れる毎回こちらが変更する

43

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

44

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

45

TensorFlow のデータ型

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

Placeholder

Variable

Tensor テンソルとは 多次元配列のこと

46

Hello TensorFlow ( 000-MNISTipynb を開いて)

47

Hello TensorFlow

48

Hello TensorFlow

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 33: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

33

数字認識実際の計算(バイアスあり)

hellip

入力層 隠れ層 出力層

x

784

h

100

y

10

w1

784 times 100

w2

100 times 10

b1

100

b2

10

hin = x w1 + b1

yin = h w2 + b2

各層の入力値は前層の出力重み行列 + バイアスと計算できる

h = ReLU( hin )y = Softmax( yin )

34

数字認識一度に1データを処理

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

35

数字認識一度に2データを処理

hellip

入力層 隠れ層 出力層

2x

784

2x

100

2x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

36

数字認識一度に3データを処理

hellip

入力層 隠れ層 出力層

3x

784

3x

100

3x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

37

数字認識一度に N データを処理

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

38

数字認識確保する変数(バッチ学習の場合)

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

39

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

40

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

41

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

42

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

データセットのデータを入れる毎回こちらが変更する

43

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

44

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

45

TensorFlow のデータ型

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

Placeholder

Variable

Tensor テンソルとは 多次元配列のこと

46

Hello TensorFlow ( 000-MNISTipynb を開いて)

47

Hello TensorFlow

48

Hello TensorFlow

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 34: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

34

数字認識一度に1データを処理

hellip

入力層 隠れ層 出力層

784

100 10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

35

数字認識一度に2データを処理

hellip

入力層 隠れ層 出力層

2x

784

2x

100

2x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

36

数字認識一度に3データを処理

hellip

入力層 隠れ層 出力層

3x

784

3x

100

3x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

37

数字認識一度に N データを処理

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

38

数字認識確保する変数(バッチ学習の場合)

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

39

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

40

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

41

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

42

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

データセットのデータを入れる毎回こちらが変更する

43

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

44

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

45

TensorFlow のデータ型

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

Placeholder

Variable

Tensor テンソルとは 多次元配列のこと

46

Hello TensorFlow ( 000-MNISTipynb を開いて)

47

Hello TensorFlow

48

Hello TensorFlow

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 35: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

35

数字認識一度に2データを処理

hellip

入力層 隠れ層 出力層

2x

784

2x

100

2x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

36

数字認識一度に3データを処理

hellip

入力層 隠れ層 出力層

3x

784

3x

100

3x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

37

数字認識一度に N データを処理

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

38

数字認識確保する変数(バッチ学習の場合)

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

39

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

40

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

41

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

42

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

データセットのデータを入れる毎回こちらが変更する

43

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

44

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

45

TensorFlow のデータ型

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

Placeholder

Variable

Tensor テンソルとは 多次元配列のこと

46

Hello TensorFlow ( 000-MNISTipynb を開いて)

47

Hello TensorFlow

48

Hello TensorFlow

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 36: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

36

数字認識一度に3データを処理

hellip

入力層 隠れ層 出力層

3x

784

3x

100

3x

10

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

37

数字認識一度に N データを処理

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

38

数字認識確保する変数(バッチ学習の場合)

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

39

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

40

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

41

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

42

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

データセットのデータを入れる毎回こちらが変更する

43

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

44

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

45

TensorFlow のデータ型

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

Placeholder

Variable

Tensor テンソルとは 多次元配列のこと

46

Hello TensorFlow ( 000-MNISTipynb を開いて)

47

Hello TensorFlow

48

Hello TensorFlow

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 37: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

37

数字認識一度に N データを処理

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

38

数字認識確保する変数(バッチ学習の場合)

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

39

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

40

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

41

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

42

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

データセットのデータを入れる毎回こちらが変更する

43

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

44

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

45

TensorFlow のデータ型

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

Placeholder

Variable

Tensor テンソルとは 多次元配列のこと

46

Hello TensorFlow ( 000-MNISTipynb を開いて)

47

Hello TensorFlow

48

Hello TensorFlow

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 38: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

38

数字認識確保する変数(バッチ学習の場合)

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

39

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

40

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

41

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

42

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

データセットのデータを入れる毎回こちらが変更する

43

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

44

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

45

TensorFlow のデータ型

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

Placeholder

Variable

Tensor テンソルとは 多次元配列のこと

46

Hello TensorFlow ( 000-MNISTipynb を開いて)

47

Hello TensorFlow

48

Hello TensorFlow

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 39: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

39

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

40

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

41

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

42

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

データセットのデータを入れる毎回こちらが変更する

43

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

44

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

45

TensorFlow のデータ型

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

Placeholder

Variable

Tensor テンソルとは 多次元配列のこと

46

Hello TensorFlow ( 000-MNISTipynb を開いて)

47

Hello TensorFlow

48

Hello TensorFlow

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 40: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

40

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

41

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

42

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

データセットのデータを入れる毎回こちらが変更する

43

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

44

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

45

TensorFlow のデータ型

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

Placeholder

Variable

Tensor テンソルとは 多次元配列のこと

46

Hello TensorFlow ( 000-MNISTipynb を開いて)

47

Hello TensorFlow

48

Hello TensorFlow

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 41: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

41

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

42

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

データセットのデータを入れる毎回こちらが変更する

43

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

44

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

45

TensorFlow のデータ型

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

Placeholder

Variable

Tensor テンソルとは 多次元配列のこと

46

Hello TensorFlow ( 000-MNISTipynb を開いて)

47

Hello TensorFlow

48

Hello TensorFlow

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 42: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

42

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

データセットのデータを入れる毎回こちらが変更する

43

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

44

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

45

TensorFlow のデータ型

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

Placeholder

Variable

Tensor テンソルとは 多次元配列のこと

46

Hello TensorFlow ( 000-MNISTipynb を開いて)

47

Hello TensorFlow

48

Hello TensorFlow

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 43: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

43

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

44

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

45

TensorFlow のデータ型

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

Placeholder

Variable

Tensor テンソルとは 多次元配列のこと

46

Hello TensorFlow ( 000-MNISTipynb を開いて)

47

Hello TensorFlow

48

Hello TensorFlow

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 44: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

44

たくさんのバッチで繰り返し学習

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

45

TensorFlow のデータ型

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

Placeholder

Variable

Tensor テンソルとは 多次元配列のこと

46

Hello TensorFlow ( 000-MNISTipynb を開いて)

47

Hello TensorFlow

48

Hello TensorFlow

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 45: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

45

TensorFlow のデータ型

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

学習されて少しずつ変化する永続性がある

データセットのデータを入れる毎回こちらが変更する

他の値が決まると自動的に決まる

Placeholder

Variable

Tensor テンソルとは 多次元配列のこと

46

Hello TensorFlow ( 000-MNISTipynb を開いて)

47

Hello TensorFlow

48

Hello TensorFlow

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 46: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

46

Hello TensorFlow ( 000-MNISTipynb を開いて)

47

Hello TensorFlow

48

Hello TensorFlow

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 47: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

47

Hello TensorFlow

48

Hello TensorFlow

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 48: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

48

Hello TensorFlow

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 49: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

49

Hello TensorFlow

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 50: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

50

Hello TensorFlow

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 51: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

51

Hello TensorFlow

tfplaceholder( 型 次元 )

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 52: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

52

Hello TensorFlow

tfVariable( 初期値のテンソル )

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 53: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

53

Hello TensorFlow

tftruncated_normal( 次元 stddev= 分散 )正規分布で乱数初期化したテンソルを返す

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 54: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

54

Hello TensorFlow

tfzeros( 次元 )ゼロ初期化したテンソルを返す

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 55: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

55

Hello TensorFlow

tfmatmul( テンソル テンソル )テンソル同士の積

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 56: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

56

Hello TensorFlow

tfnnrelu( テンソル )テンソル各要素の ReLU を計算

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 57: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

57

Hello TensorFlow

tfnnsoftmax( テンソル )Softmax を計算

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 58: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

58

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 59: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

59

ロス関数もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

行列やベクトルではなく単なる float の値(スカラー)次元 [1] のテンソル

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 60: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

60

クロスエントロピーとはH(pq) = Σx p(x) log q(x)

p(x) 正解の確率分布q(x) 予測した確率分布この値が小さいほど予測と正解が近い

予測(出力層)

0301005

005

0401 正解

000010

= 0= 0= 0= 0= -04= 0

予測の log

-05-1-

13-

13-

04-1

timestimestimestimestimestimes

-04Σ

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 61: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

61

Hello TensorFlow

tfreduce_sum( テンソル reduction_indices=[N])テンソルの N番目の次元について Σ をとる

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 62: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

62

Hello TensorFlow

tfreduce_mean( テンソル )テンソルの 0番目の次元について平均を取る

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 63: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

63

Hello TensorFlow

tfinitialize_all_variables()全ての Variable を初期化する処理オブジェクトを生成

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 64: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

64

Hello TensorFlow

tftrainGradientDescentOptimizer()minimize(X)テンソル X を勾配法で最小化する処理オブジェクトを返す

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 65: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

65

Hello TensorFlow

tfSession()処理オブジェクトを実行するセッションを生成

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 66: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

66

Hello TensorFlow

sessrun( 処理オブジェクト )処理オブジェクトを実行

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 67: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

67

Hello TensorFlow

mnisttrainnext_batch(100)学習データから次のバッチ (100 データ ) を取り出す

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 68: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

68

Hello TensorFlow

sessrun( 処理オブジェクト feed_dict=hellip )必要な Placeholder の値をセットし処理オブジェクトを実行する

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 69: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

69

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 70: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

70

精度の値もテンソルでモデル化

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

1 ロス関数( クロスエントロピー )

1 認識精度(正解率 )

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 71: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

71

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 72: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

72

argmax で認識結果が得られる

数字rdquo 6rdquo の確率数字rdquo 7rdquo の確率

001

002

04

001

数字rdquo 8rdquo の確率数字rdquo 9rdquo の確率

出力層10個

数字rdquo 4rdquo の確率数字rdquo 5rdquo の確率

03

001

数字rdquo 2rdquo の確率数字rdquo 3rdquo の確率

005

005

数字rdquo 0rdquo の確率数字rdquo 1rdquo の確率

005

01

argmax 8

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 73: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

73

Hello TensorFlow

tfargmax( テンソル N )テンソルの N 次元目で一番大きな値のインデクスを返す

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 74: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

74

Hello TensorFlow

tfequal( テンソル 1 テンソル 2 )テンソル 1 とテンソル 2 は同形で各要素が一致しているかどうか 01 の同型テンソルを返す

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 75: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

75

Hello TensorFlow

sessrun( テンソル feed_dict=hellip)必要な Placeholder の値をセットしテンソルの値を求める

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 76: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

76

Hello TensorFlow

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 77: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

77

Hello TensorFlow

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 78: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

78

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -MNIST と入力例 yamamoto-MNIST

サンプル本体 000-MNISTipynb

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 79: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

79

ハンズオン 3 CNN

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 80: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

80

畳み込みニューラルネットbull Google の解説動画 (1)

ndash httpsyoutubejajksuQW4mc

>

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 81: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

81

畳み込みニューラルネットbull Google の解説動画 (5)

ndash httpsyoutubeFif8uipYuHE

>

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 82: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

通常の NN

82

hellip

入力層 隠れ層 出力層

Nx

784

Nx

100

Nx

10

hellip

重み行列784 times 100

重み行列100 times 10

バイアス100

バイアス10

正解

Nx

10

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 83: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

入力を整形

入力層2 次元テンソル (N x 784)

Nx

784

hellip 画像のサイズ情報が失われている

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

画像のサイズ情報が含まれた形 要素数は変わらない

83

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 84: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

畳み込み NN のパラメタ

5 x 5 x 1

32

畳み込むミニ NN

84

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

25 32

通常の NN なら

重み行列25 x 32

バイアス 32

重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 85: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

畳み込み後の層

整形された入力層4 次元テンソル (N x 28 x 28 x 1)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

Same パディング 85

5 x 5 x 1

32

畳み込むミニ NN

重みテンソル5 x 5 x 1 x 32

バイアス 32

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 86: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

プーリング (2x2)

畳み込み後の層4 次元テンソル (N x 28 x 28 x 32)

86

プーリング後の層4 次元テンソル (N x 14 x 14 x 32)

2 x 2 x 1

TensorFlow では(1 x 2 x 2 x 1)のテンソルで表す

プーリングの窓( カーネル )

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 87: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

87

CNN全体構成 (13)

入力層(N x 784)

Nx

784

整形入力層(N x 28 x 28 x 1)

5 x 5 x 1

32 重みテンソル5 x 5 x 1 x 32

バイアス 32

畳み込み 1 プーリング 1

カーネル(1 x 2 x 2 x 1)

畳み込み 1 後の層(N x 14 x 14 x 32)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 88: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

CNN全体構成 (23)

88畳み込み 1 後の層(N x 14 x 14 x 32)

5 x 5 x 32

64重みテンソル5 x 5 x 32 x

64バイアス 64

畳み込み 2 プーリング 2

カーネル(1 x 2 x 2 x 1)

畳み込み 2 後の層(N x 7 x 7 x 64)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 89: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

89

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列3136 times 1024

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 90: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

90

CNN全体構成 (33)

畳み込み 2 後の層(N x 7 x 7 x 64)

整形層(N x 3136)

Nx

3136

識別用の NN につなぐため一列に整形 7 x 7 x 64 =

3136

hellip

隠れ層(N x 1024)

出力層(N x 10)

Nx

1024

Nx

10

重み行列1024 times

10

バイアス102

4

バイアス10

正解

Nx

10

1 Dropout率

学習時は Dropout して識別時は Dropout しないrarr Placeholder で確率を変えられるようにする

重み行列3136 times 1024

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 91: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

91

Hello CNN

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 92: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

92

Hello CNN

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 93: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

93

Hello CNN

インタラクティブセッションbull sessrun(処理 ) のかわりに 処理 run() と書けるbull sessrun( テンソル ) のかわりに テンソル eval() と書ける

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 94: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

94

Hello CNN

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 95: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

95

Hello CNN (モデル作成)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 96: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

96

Hello CNN (モデル作成)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 97: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

97

Hello CNN (モデル作成)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 98: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

98

Hello CNN (モデル作成)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 99: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

99

Hello CNN (モデル作成)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 100: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

100

Hello CNN (モデル作成)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 101: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

101

Hello CNN (モデル作成)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 102: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

102

Hello CNN (モデル作成)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 103: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

103

Hello CNN (モデル作成)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 104: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

104

Hello CNN (モデル作成)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 105: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

105

Hello CNN (モデル作成)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 106: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

106

Hello CNN (モデル作成)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 107: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

107

Hello CNN (モデル作成)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 108: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

108

Hello CNN (モデル作成)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 109: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

109

Hello CNN (ロス関数)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 110: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

110

Hello CNN (学習)最適化手法 Adam を使う

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 111: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

111

Hello CNN (学習)インタラクティブセッションなので

proc_initrun() と書ける(先程は sessrun(proc_init) と書いていた)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 112: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

112

Hello CNN (学習)インタラクティブセッションなので

accuracyeval() と書ける(先程は sessrun(accuracy) と書いていた)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 113: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

113

Hello CNN (性能評価)

先の単純な NNよりもメモリを使うので一度に全てのテストデータを NN に投入できないdarr分割して精度評価し平均を取る

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 114: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

114

フリータイムPython ノートブックを作って下さい

ndash New rarr Python2 で新規ノートブックを作成ndash タイトルをクリックして 名前 -CNN-MNIST と入力例 yamamoto-CNN-MNIST

サンプル本体 000-CNN-MNISTipynb

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 115: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

お疲れ様でした115

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 116: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

各自ファイルを持ち帰って下さいbull サーバはこのあと削除しますbull File rarr Download as rarr IPython Notebook

116

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 117: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

117

学生さん向けアナウンスbull 参加頂いた方を勉強会の告知用 ML に登録しますbull ML 経由で次回以降の勉強会のアナウンスをお送りしますbull 興味がなくなったら ML フッターのリンクから

unsubscribe してください

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 118: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

次回予告118

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 119: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

119

次回予告bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会ndash AI 情報共有会

bull 最近の AI系のニュースとかキャッチーな論文の成果を薄く広く紹介する会ndash 社内技術共有会

bull チームラボの最近の案件の技術的に面白い部分について知見を共有する会

ndash 630 の回は学生さん参加 OK

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 120: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

120

630 社内技術共有会bull ライブでのムービングライト制御について服部さんに話をしてもらいますbull teamLab Music Festival (making)

bull 狙った場所に正確に照射するために何をしたのかbull 実演あり

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定
Page 121: TensorFlowハンズオン第1回(チームラボ勉強会 2016/06/16)

121

次回以降の予定bull 630(木 ) 1900 - 2100

AI 情報共有会 amp 社内技術共有会bull 77(木 ) 1900 - 2100 機械学習もくもく会(社内のみ)bull 714(木 ) 1900 - 2100

Deep Learning ハンズオン 2 (予定)bull これらの情報にキャッチアップしたいチームラボの人は

Slack の ai トピックに参加して下さいbull 学生の方は ML からご案内します

  • Deep Learningハンズオン 1
  • はじめに
  • Deep Learning勉強会
  • 今回から学生さんを受け入れています
  • 今日の目次
  • TensorFlow
  • ハンズオン1 Jupyter
  • Jupyter(旧称 IPython Notebook)
  • Hello Jupyter
  • Hello Jupyter (2)
  • Hello Jupyter (3)
  • ハンズオン2 TENSORFLOW入門
  • ニューラルネットワーク(復習)
  • 活性化関数ReLU関数
  • 出力関数softmax関数
  • ロス関数
  • ドロップアウト
  • ドロップアウト (2)
  • ドロップアウト (3)
  • ドロップアウト (4)
  • ニューラルネット復習キーワード
  • 数字認識確保する変数は
  • 数字認識確保する変数は (2)
  • 数字認識確保する変数は (3)
  • 数字認識実際の計算
  • 結合バイアス
  • 結合バイアス (2)
  • 結合バイアス (3)
  • 数字認識確保する変数は (4)
  • 数字認識確保する変数は (5)
  • 数字認識確保する変数は (6)
  • 数字認識確保する変数は (7)
  • 数字認識実際の計算(バイアスあり)
  • 数字認識一度に1データを処理
  • 数字認識一度に2データを処理
  • 数字認識一度に3データを処理
  • 数字認識一度にNデータを処理
  • 数字認識確保する変数(バッチ学習の場合)
  • たくさんのバッチで繰り返し学習
  • たくさんのバッチで繰り返し学習 (2)
  • たくさんのバッチで繰り返し学習 (3)
  • たくさんのバッチで繰り返し学習 (4)
  • たくさんのバッチで繰り返し学習 (5)
  • たくさんのバッチで繰り返し学習 (6)
  • TensorFlowのデータ型
  • Hello TensorFlow ( 000-MNISTipynb を開いて)
  • Hello TensorFlow
  • Hello TensorFlow (2)
  • Hello TensorFlow (3)
  • Hello TensorFlow (4)
  • Hello TensorFlow (5)
  • Hello TensorFlow (6)
  • Hello TensorFlow (7)
  • Hello TensorFlow (8)
  • Hello TensorFlow (9)
  • Hello TensorFlow (10)
  • Hello TensorFlow (11)
  • ロス関数もテンソルでモデル化
  • ロス関数もテンソルでモデル化 (2)
  • クロスエントロピーとは
  • Hello TensorFlow (12)
  • Hello TensorFlow (13)
  • Hello TensorFlow (14)
  • Hello TensorFlow (15)
  • Hello TensorFlow (16)
  • Hello TensorFlow (17)
  • Hello TensorFlow (18)
  • Hello TensorFlow (19)
  • 精度の値もテンソルでモデル化
  • 精度の値もテンソルでモデル化 (2)
  • Hello TensorFlow (20)
  • argmaxで認識結果が得られる
  • Hello TensorFlow (21)
  • Hello TensorFlow (22)
  • Hello TensorFlow (23)
  • Hello TensorFlow (24)
  • Hello TensorFlow (25)
  • フリータイム
  • ハンズオン3 CNN
  • 畳み込みニューラルネット
  • 畳み込みニューラルネット (2)
  • 通常のNN
  • 入力を整形
  • 畳み込みNNのパラメタ
  • 畳み込み後の層
  • プーリング (2x2)
  • CNN全体構成 (13)
  • CNN全体構成 (23)
  • CNN全体構成 (33)
  • CNN全体構成 (33) (2)
  • Hello CNN
  • Hello CNN (2)
  • Hello CNN (3)
  • Hello CNN (4)
  • Hello CNN(モデル作成)
  • Hello CNN(モデル作成) (2)
  • Hello CNN(モデル作成) (3)
  • Hello CNN(モデル作成) (4)
  • Hello CNN(モデル作成) (5)
  • Hello CNN(モデル作成) (6)
  • Hello CNN(モデル作成) (7)
  • Hello CNN(モデル作成) (8)
  • Hello CNN(モデル作成) (9)
  • Hello CNN(モデル作成) (10)
  • Hello CNN(モデル作成) (11)
  • Hello CNN(モデル作成) (12)
  • Hello CNN(モデル作成) (13)
  • Hello CNN(モデル作成) (14)
  • Hello CNN(ロス関数)
  • Hello CNN(学習)
  • Hello CNN(学習) (2)
  • Hello CNN(学習) (3)
  • Hello CNN(性能評価)
  • フリータイム (2)
  • お疲れ様でした
  • 各自ファイルを持ち帰って下さい
  • 学生さん向けアナウンス
  • 次回予告
  • 次回予告 (2)
  • 630 社内技術共有会
  • 次回以降の予定