SlideShare a Scribd company logo
1 of 14
Download to read offline
フルコネクトNeural Networkの学習演習(論理回路(3bit Demultiplexer)をNNで当て込む)
• なぜこんな演習にしたか・・・(目で見てわかるくらい簡単な行列&非常に少ない教師データ)
⇒逆誤差伝播の動きを目で追ってもらいたかった。(写真や音声は無理でした(思いつかない))
&今後FPGAでAI組むなどの応用にもつながる基礎知識を説明できる
• 3bit Demultiplexerとは3bitの二進数を受けとって0から7の8つの出力のどれかに1を出力する
入力3チャンネル(0または1を三つ)⇒出力8チャンネル(どれか一つが1。他は0)
3bit Demultiplexerの図
(下から分岐線のセレクト電圧を受け取る
2進数xxxの値によって0~7の
いずれかのピンに「IN」を流す)
0
DMUX
1
2
3
4
5
6
7
Dest/3bit
(xxx)
IN
0
DMUX
1
2
3
4
5
6
7
Dest/3bit
(001) =1
IN
0
DMUX
1
2
3
4
5
6
7
Dest/3bit
(101) =5
IN
OUT
OUT
3bit DMUXの動作イメージ
(セレクト電圧Destは何ビットでも一本で書く
のが習わしですがあえてピンの本数にしました
電圧高い=1として実線、低い=0を破線で示します
【演習】
DestとOUTの関係を
Neural Network
で表し、
重み行列を
最適化する
=学習させる
1
演習ExcelSheetで想定するNNのトポロジー
X0
X1
X2
W0Z(1)
5
W1
Z(1)
4
Z(1)
3
Z(1)
2
Z(1)
1
=Z(0)
1
=Z(0)
2
=Z(0)
3
=Z(0)
4
=Z(1)
6
Z(2)
1
Z(2)
2
Z(2)
3
Z(2)
4
Z(2)
5
Z(2)
6
Z(2)
7
Z(2)
8
Y0 =
Y1 =
Y2 =
Y3 =
Y4 =
Y5 =
Y6 =
Y7 =
入力出力
バイアス項
(計算に関わらす一定とする)
バイアス項
(入力データに関わらす一定とする)
W(1):6×4行列(ただし破線の成分は利用されない)
W(2):8×6行列 2
教師データ = 8個だけ (バッチサイズ=8,1エポック=1バッチ)
Dest
Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0
X2 X1 X0
0 0 0 0 0 0 0 0 0 0 1
0 0 1 0 0 0 0 0 0 1 0
0 1 0 0 0 0 0 0 1 0 0
0 1 1 0 0 0 0 1 0 0 0
1 0 0 0 0 0 1 0 0 0 0
1 0 1 0 0 1 0 0 0 0 0
1 1 0 0 1 0 0 0 0 0 0
1 1 1 1 0 0 0 0 0 0 0
入力データ
X=(X0,X1,X2)T
出力データ
Y=(Y0,Y1,Y2,Y3,Y4,Y5,Y6,Y7)T
3
演習用マクロ付Excel Sheetの説明(1) 逆誤差伝播計算Excel
本演習の3ビットデマルチプレクサに関する
逆誤差伝播を数字動かしながら体験するためのExcelシートを作りました
順次各セルの値の意味、マクロ実行ボタンの使い方をご説明します
入力ベクトル
出力ベクトル
(推論結果)
答え(教師データ)
行列表示の勾配
勾配ベクトル
各種マクロボタン
バッチ平均した勾配ベクトル
4
演習用マクロ付Excel Sheetの説明(2) 入力データ切替ボタン
数字のマクロ(0~7)ボタンは入力ベクトル(セルc2:c4)の3bit値をセットします。
すると右側の重み行列の値に応じてすぐに推論値(セルG2:G9)と教師データ(セルI2:I9)を計算します。
推論があっていればG列とI列の最大値(黄色)が同じ高さに現れ、クロスエントロピー(セルH11)が小さいはずです
入力ベクトル
出力ベクトル(推論結果)
最大値が黄色になります
こちらの数字ボタンのどれかを押すと
入力ベクトルに対応する
3つのbitをセットします
推論
をすぐ実行
第一層及び
第二層の
重み行列
これを使って
推論を実行します
出力ベクトルと教師データのギャップのクロスエントロピーの成分
教師データ
(入力データに応じて変わるようにしてます)
最大値の成分を黄色になります
5
演習用マクロ付Excel Sheetの説明(3) ボタン動作確認演習:順伝播
配布エクセルファイルの「バックアップ5」のシートで
の数字ボタンを押しましょう。C2:C4の値が3桁の2進数でボタンに対応するものに変わります
クロスエントロピー(この1教師データから計算されるもの)の値が下に現れているのを確認してください
Q1.このとき計算されているクロスエントロピーに含まれる対数の底はいくつですか? (Ans1. 2 )
入力ベクトル
出力ベクトル(推論結果)
最大値が黄色になります
推論
をすぐ実行
第一層第二層の
重み行列
講師が適当に入れた値です
=推論はまったくだめ
出力ベクトルと教師データのギャップのクロスエントロピー
教師データ
(入力データに応じて変わるようにしてます)
最大値の成分を黄色になります
第一層第二層の
重み行列
講師が適当に入れた値です
=推論はまったくだめ
6
演習用マクロ付Excel Sheetの説明(4) 順伝播の式
推論(順伝播)の部分が以下のように行列演算とReLU(ただしLeakyReLUにしてあります)、Softmax関数を
使ってExcelの関数で実装されていることを確認してください。確認ののち以下の問いに答えてください。
Q1. LeakyReLUの説明変数マイナス側の傾きはどこで変更できますか? (Ans1. H11セル)
Q2. バックアップ4 と バックアップ5 のシートでそれぞれ数字ボタンを押して
NNの精度を比較してください。どちらが良い精度ですか? (Ans2. バックアップ4)
なお入力ベクトルの第4成分(赤でマイナス1になってるところ)や
第一層ベクトルの第6成分(Reluの結果によらずー1)は常に一定であるとして
バイアス項といいます。(活性化関数の発火点の表現としてよく導入されます)
今回は出力側が入力より高次元なので次元数を早く増加させるのにも役立ちます。
=SoftMax( ReLU( ))
7
演習用マクロ付Excel Sheetの説明(5) 逆伝播の勾配計算の確認
今回のNNは第0、1、2層のあるトポロジーです。エクセルシートを見ながら、次ページを参考にして以下の問に応えなさい
Q1. U列2-9のセルは何を表していますか? ただしG2:G9は出力ベクトル、I2:I9は教師データです。
またこのことを表す式は次ページのどれですか?
(Ans.)最終層N=2についての誤差項δのベクトル。次ページの(式1)にあたる。
Q2. N2のセルはU列とO列をベクトルとみなして内積をとる+E列セルの値の正負に従い
1またはP11セルの値を掛けるという定義になっています。
同様にN3セルはU列とP列を内積取り+E列セルの正負に従い1またはP11セルの値を掛ける。。。
となります。
N列の定義は次ページのどの式に当たりますか?
またδ(2)のベクトルとW(2)の重み行列と活性a(2)を使ってδ(1)のベクトルを
一つの行列形式で手書きで書いてみてください
(ヒント転置行列を使います。転置行列とは行列の行と列をひっくり返したものです)
(Ans.)次ページの(式2)にあたる。
δ(1)= δ t (2) Wj
t (2) φ(a (2)) ただしφ第一層の誤差項と同じ番号の第二層活性成分について以下のφ関数を適用する
δi
(1)= δj
(2) Wj i
(2) φ(ai
(2)) ただしiについては右辺で和を取らない
&φ(x)=1(x>=0のとき)、 φ(x) =a(x<0のとき、また0<=a<1)
Q3. セル領域V2:Y7及びAA2:AF9はクロスエントロピーに対する何という量ですか?次ページのどの式ですか?
(Ans.)勾配 (式3)に当たる 8
(演習のための本資料再掲)誤差逆伝播のまとめ1
9
【肝】 推論 真の値
【肝】 上の層から下がってくるので
Wは行と列入れ替え(転置行列)
【肝】 STEP(x)は中が非負なら1
さもなきゃ0 a(0<=a<1)
【肝】 重みによる勾配は
該当層の誤差δと前層の出力zの積
・・・(式1)
・・・(式2)
・・・(式3)
演習用マクロ付Excel Sheetの説明(6) 勾配の表記の説明
Q1. セルC14:BV14の領域はなにを表していますか? このNNの勾配は何次元ですか?
(Ans.) 勾配 (ただし、前ページのような行列成分でなく、一行の行ベクトルとしての表記)
この勾配ベクトルは72次元ベクトルである
Q2. この時点で1教師データに対する勾配が求められました。
これに対して直ちに重み行列を以下の式で更新する学習を何といいますか?
Wij
(1) = Wij
(1) ー ηHij
(1) , Wij
(2) = Wij
(2) ー ηHij
(2)
(Ans.)オンライン学習
行列表示の勾配
勾配ベクトル
同じもの
10
演習用マクロ付Excel Sheetの説明(7) ミニバッチ平均勾配計算
Q1. 「計算マクロ」シートに移る。セルC15:BV22の内容をクリアし消去してから勾配計算ボタンを押して
以下を確認してください。
「勾配計算」ボタンを押すと入力ベクトルが000,001,010,011,100,101,110,111の順に移り変わり
それに連動して①勾配の値が変わる ②15行から22行がだんだん埋まっていく 行14の結果をコピーしている
Q2. セルC23:BV23は何を表していますか?
(Ans.)ミニバッチ(8個の教師データ)で平均をとった勾配ベクトル
Q3. セルC24:BV24は何を表していますか? (Ans.)次に更新されるべき重み行列の成分の値
入力ベクトル
の10進数値
勾配ベクトル
バッチ平均した勾配ベクトル
11
演習用マクロ付Excel Sheetの説明(8) 1データ勾配の数値の意味考察
Q1. 任意の数値ボタンを押し、その数値に対応する第二層の勾配ベクトルの
一番絶対値の大きい成分をみつけなさい。
(ただし第一層のバイアス項にかかる成分以外のものとする)
(Ans.)例として、バックアップ5のデータで入力ベクトルを「2」とすると
H2_24が絶対値0.2448と最大値
Q2. 求められた勾配の成分(例えばH2_24)が正の時、次にWを更新するときは値を減らすべきか?増やすべきか?
(Ans.)勾配はクロスエントロピーを増やす方向なので、学習とはクロスエントロピーを減らすことだから
成分が正なら対応する重みの成分を減らす (⇒するとNNの精度があがる)
入力ベクトルを
「2」とした
この教師データの
最も良い推論値を
与える重み成分
バイアス項に掛かる
成分=無視
入力ベクトルを
「2」とした
バイアス項以外に
掛かる勾配成分
Q1.の答えQ1.の答えに対応する
重み成分 これを「減らす」と
精度が上がる
12
演習用マクロ付Excel Sheetの説明(9) ミニバッチ毎の重み行列更新
Q1. 「計算マクロ」シートに移る。
まず「勾配計算」ボタンを押し、セルC24:BV24の内容をどこか新規シートに保存して
プログラムに書き換えられないようにしてください
次に「行列置換」ボタンを押すと先ほど保存した値が
重み行列(セルJ2:M7及びO2:T9)に上書きされることを
確認してください。
Q2. 「勾配計算」ボタンのつぎに「行列置換」ボタンを押すことは
NNの学習でなにをしていることになりますか?
(Ans.)ミニバッチ学習一回分、またはバッチ学習1エポック分の学習
Q3. 「1000バッチ」のボタンは「勾配計算」ボタンのつぎに「行列置換」ボタンを押すことを
1000回繰り返す動作で作ってあります。
バックアップ4などのある程度精度が出ているシートを選び
実行前に各教師データの推論値や -Ylogy をメモして、1000バッチ実行後
NNの精度が向上していることを確認しなさい。
⇒これが逆誤差伝播法によるNNの学習の実装例です
以上 13
(参考)3bit デマルチプレクサーの論理回路構成例
今回は非常に簡単な論理回路と同じ出力をするNNを作ったわけですが
この分類器は通常論理回路として簡単に実装でき、電子部品としても売られています。
入力と出力の関係が明確な分類器としてNNを学習させる例として取り上げました。
14

More Related Content

What's hot

[ML論文読み会資料] Training RNNs as Fast as CNNs
[ML論文読み会資料] Training RNNs as Fast as CNNs[ML論文読み会資料] Training RNNs as Fast as CNNs
[ML論文読み会資料] Training RNNs as Fast as CNNsHayahide Yamagishi
 
ACLreading2014@Ace12358
ACLreading2014@Ace12358ACLreading2014@Ace12358
ACLreading2014@Ace12358Ace12358
 
論文紹介 Pixel Recurrent Neural Networks
論文紹介 Pixel Recurrent Neural Networks論文紹介 Pixel Recurrent Neural Networks
論文紹介 Pixel Recurrent Neural NetworksSeiya Tokui
 
Recurrent Neural Networks
Recurrent Neural NetworksRecurrent Neural Networks
Recurrent Neural NetworksSeiya Tokui
 
2013.12.26 prml勉強会 線形回帰モデル3.2~3.4
2013.12.26 prml勉強会 線形回帰モデル3.2~3.42013.12.26 prml勉強会 線形回帰モデル3.2~3.4
2013.12.26 prml勉強会 線形回帰モデル3.2~3.4Takeshi Sakaki
 
PRML 3.3.3-3.4 ベイズ線形回帰とモデル選択 / Baysian Linear Regression and Model Comparison)
PRML 3.3.3-3.4 ベイズ線形回帰とモデル選択 / Baysian Linear Regression and Model Comparison)PRML 3.3.3-3.4 ベイズ線形回帰とモデル選択 / Baysian Linear Regression and Model Comparison)
PRML 3.3.3-3.4 ベイズ線形回帰とモデル選択 / Baysian Linear Regression and Model Comparison)Akihiro Nitta
 
Prml5 6
Prml5 6Prml5 6
Prml5 6K5_sem
 
SSII2019企画: 点群深層学習の研究動向
SSII2019企画: 点群深層学習の研究動向SSII2019企画: 点群深層学習の研究動向
SSII2019企画: 点群深層学習の研究動向SSII
 
[PRML] パターン認識と機械学習(第3章:線形回帰モデル)
[PRML] パターン認識と機械学習(第3章:線形回帰モデル)[PRML] パターン認識と機械学習(第3章:線形回帰モデル)
[PRML] パターン認識と機械学習(第3章:線形回帰モデル)Ryosuke Sasaki
 
DL Hacks輪読 Semi-supervised Learning with Deep Generative Models
DL Hacks輪読 Semi-supervised Learning with Deep Generative ModelsDL Hacks輪読 Semi-supervised Learning with Deep Generative Models
DL Hacks輪読 Semi-supervised Learning with Deep Generative ModelsYusuke Iwasawa
 
低ランク行列補完のためのマトロイド理論
低ランク行列補完のためのマトロイド理論低ランク行列補完のためのマトロイド理論
低ランク行列補完のためのマトロイド理論ryotat
 
Prml3.5 エビデンス近似〜
Prml3.5 エビデンス近似〜Prml3.5 エビデンス近似〜
Prml3.5 エビデンス近似〜Yuki Matsubara
 
kagami_comput2015_9
kagami_comput2015_9kagami_comput2015_9
kagami_comput2015_9swkagami
 
自然言語処理のためのDeep Learning
自然言語処理のためのDeep Learning自然言語処理のためのDeep Learning
自然言語処理のためのDeep LearningYuta Kikuchi
 

What's hot (20)

[ML論文読み会資料] Training RNNs as Fast as CNNs
[ML論文読み会資料] Training RNNs as Fast as CNNs[ML論文読み会資料] Training RNNs as Fast as CNNs
[ML論文読み会資料] Training RNNs as Fast as CNNs
 
PRML第3章@京大PRML輪講
PRML第3章@京大PRML輪講PRML第3章@京大PRML輪講
PRML第3章@京大PRML輪講
 
ACLreading2014@Ace12358
ACLreading2014@Ace12358ACLreading2014@Ace12358
ACLreading2014@Ace12358
 
論文紹介 Pixel Recurrent Neural Networks
論文紹介 Pixel Recurrent Neural Networks論文紹介 Pixel Recurrent Neural Networks
論文紹介 Pixel Recurrent Neural Networks
 
Recurrent Neural Networks
Recurrent Neural NetworksRecurrent Neural Networks
Recurrent Neural Networks
 
2013.12.26 prml勉強会 線形回帰モデル3.2~3.4
2013.12.26 prml勉強会 線形回帰モデル3.2~3.42013.12.26 prml勉強会 線形回帰モデル3.2~3.4
2013.12.26 prml勉強会 線形回帰モデル3.2~3.4
 
PRML5
PRML5PRML5
PRML5
 
PRML 3.3.3-3.4 ベイズ線形回帰とモデル選択 / Baysian Linear Regression and Model Comparison)
PRML 3.3.3-3.4 ベイズ線形回帰とモデル選択 / Baysian Linear Regression and Model Comparison)PRML 3.3.3-3.4 ベイズ線形回帰とモデル選択 / Baysian Linear Regression and Model Comparison)
PRML 3.3.3-3.4 ベイズ線形回帰とモデル選択 / Baysian Linear Regression and Model Comparison)
 
Prml5 6
Prml5 6Prml5 6
Prml5 6
 
SSII2019企画: 点群深層学習の研究動向
SSII2019企画: 点群深層学習の研究動向SSII2019企画: 点群深層学習の研究動向
SSII2019企画: 点群深層学習の研究動向
 
[PRML] パターン認識と機械学習(第3章:線形回帰モデル)
[PRML] パターン認識と機械学習(第3章:線形回帰モデル)[PRML] パターン認識と機械学習(第3章:線形回帰モデル)
[PRML] パターン認識と機械学習(第3章:線形回帰モデル)
 
Prml7 7.1
Prml7 7.1Prml7 7.1
Prml7 7.1
 
DL Hacks輪読 Semi-supervised Learning with Deep Generative Models
DL Hacks輪読 Semi-supervised Learning with Deep Generative ModelsDL Hacks輪読 Semi-supervised Learning with Deep Generative Models
DL Hacks輪読 Semi-supervised Learning with Deep Generative Models
 
PRML Chapter5.2
PRML Chapter5.2PRML Chapter5.2
PRML Chapter5.2
 
低ランク行列補完のためのマトロイド理論
低ランク行列補完のためのマトロイド理論低ランク行列補完のためのマトロイド理論
低ランク行列補完のためのマトロイド理論
 
BFmeta
BFmetaBFmeta
BFmeta
 
Prml3.5 エビデンス近似〜
Prml3.5 エビデンス近似〜Prml3.5 エビデンス近似〜
Prml3.5 エビデンス近似〜
 
kagami_comput2015_9
kagami_comput2015_9kagami_comput2015_9
kagami_comput2015_9
 
PRML 5.3-5.4
PRML 5.3-5.4PRML 5.3-5.4
PRML 5.3-5.4
 
自然言語処理のためのDeep Learning
自然言語処理のためのDeep Learning自然言語処理のためのDeep Learning
自然言語処理のためのDeep Learning
 

Nn bp 3_bitdmux