SlideShare a Scribd company logo
1 of 23
Download to read offline
ゼロから作る
Deep Learning
5章: 誤差逆伝播法
2018年5月11日(金)
泰岡研究室所属
B4 工藤豪
目次
1. 連鎖律
2. 誤差逆伝播法とは
3. 計算グラフ(順伝播、逆伝播)
4. 活性化関数レイヤ(ReLU, Sigmoid)
5. Affine/Softmaxレイヤ
6. 誤差逆伝播法の勾配確認
1.連鎖律
連鎖律
(𝑥, 𝑦)から(𝑢, 𝑣)が求まり、(𝑢, 𝑣)から𝒇を求められる時、
𝒇の 𝑥, 𝑦 での微分は以下のように求まる
𝑑𝒇
𝑑𝑥
=
𝑑𝒇
𝑑𝑢
𝑑𝑢
𝑑𝑥
𝑑𝒇
𝑑𝑦
=
𝑑𝒇
𝑑𝑣
𝑑𝑣
𝑑𝑦
後の計算グラフでの「連鎖律と逆伝播」で使います。
誤差逆伝播法とは
• ニューラルネットワークの学習手順
Step1 : 訓練データの中からランダムに一部のデータを選び出す
(ミニバッチ学習)
Step2 : 各重みパラメータに関する損失関数の勾配を求める。
(ここで今回のテーマである誤差逆伝播法を利用する)
Step3 : 重みパラメータを勾配方向に微小量だけ更新する
Step4 : Step1 ~ Step3 を loop
計算グラフ
「計算グラフ」とは?
• 計算の過程をグラフに表したもの
• 複数のノードやエッジで表されている
• ノードの中には演算子、または演算の内容を記す
• エッジの上に入力値、計算結果などを書く
• 左から右へ計算:順伝播
• 右から左へ計算:逆伝播
×5
2 10
簡単な例
• 教授はPUBで1杯500円(消費税込)のビールを2杯買いました。
支払った金額を求めなさい。ただし店員に支払い時チップを500円
渡していました。 A. 1500円
ビール🍺の値段
ビールの個数🍺🍺
チップ
×
500
2
1000
500
+
1500
計算グラフの特徴
• 局所的な計算を伝達することで全体を構成する複雑な計算の結果が得られ
る。
自動車等の製造過程に似ている
計算グラフの逆伝播
• 逆伝播の計算手順
信号 𝐸 に対してノードでの局所的微分値を掛けて、左方向へ伝
達していく。
局所的微分値:順伝播の𝑦 = 𝑓 𝑥 の微分値
𝐸
𝑓
𝑥 𝑦
𝐸
𝜕𝑦
𝜕𝑥
連鎖律と逆伝播
• 𝑧 = 𝑥 + 𝑦 2という式は以下2つの構成式で表される。
𝑧 = 𝑡2
𝑡 = 𝑥 + 𝑦
ここで、𝑧の𝑥での微分値は
𝜕𝑧
𝜕𝑥
=
𝜕𝑧
𝜕𝑡
𝜕𝑡
𝜕𝑥
と表せる。
これを計算グラフでの逆伝播で𝑧の𝑥での微分値は以下のように求められる。
𝑥
𝑦
𝑡 𝑧
𝐸
^2+
𝐸
𝜕𝑧
𝜕𝑡
𝐸
𝜕𝑧
𝜕𝑡
𝜕𝑡
𝜕𝑥
逆伝播の計算グラフ上のルール1
• 加算ノードの逆伝播
𝑧 = 𝑥 + 𝑦 という式の𝑥, 𝑦それぞれ微分値を考えると、
𝜕𝑧
𝜕𝑥
= 1,
𝜕𝑧
𝜕𝑦
= 1
どちらも1になる。つまり計算グラフ上では+のノードはそのまま1を掛けて左に流せば良
い。
𝑥
𝑧
𝑦
+
𝜕𝐿
𝜕𝑧
𝜕𝐿
𝜕𝑧
∙1
𝜕𝐿
𝜕𝑧
∙1
逆伝播の計算グラフ上のルール2
• 乗算ノードの逆伝播
𝑧 = 𝑥𝑦という式の𝑥, 𝑦それぞれの微分値を考えると以下のようになる。
𝜕𝑧
𝜕𝑥
= 𝑦,
𝜕𝑧
𝜕𝑥
= 𝑥
つまり、2入力の場合は他方の入力値を掛けて左へ流せば良い。
𝑥
𝑧
𝑦
× 𝜕𝐿
𝜕𝑧
𝜕𝐿
𝜕𝑧
∙ 𝑦
𝜕𝐿
𝜕𝑧
∙ 𝑥
計算グラフでの活性化関数レイヤ1
• ReLUレイヤ
𝑦 = ቊ
𝑥 𝑥 > 0
0 (𝑥 ≤ 0)
𝜕𝑦
𝜕𝑥
= ቊ
1 𝑥 > 0
0 (𝑥 ≤ 0)
𝑥に関する微分
𝜕𝐿
𝜕𝑦
ReLU
𝑥 𝑦
𝜕𝐿
𝜕𝑦
𝑥 𝑦
0
ReLU
𝑥 > 0の時 𝑥 ≤ 0の時
𝜕𝐿
𝜕𝑦
計算グラフでの活性化関数レイヤ2
• Sigmoidレイヤ
シグモイド関数:𝑦 =
1
1+exp −𝑥
これを計算グラフで表すと以下のようになる
𝑥 −𝑥 exp(−𝑥) 1 + exp(−𝑥)
1
1+exp −𝑥
= 𝑦
-1 1
× exp /+
• Sigmoid関数の逆伝播
Point 1
入力が𝑥の時、「/」ノードは𝑦 = 1/𝑥という出力を持つが、以下
のような変形ができる。
𝜕𝑦
𝜕𝑥
= −
1
𝑥2
= −𝑦2
よって逆伝播の時は上流の値に対して−𝑦2を掛けて左に流せばよ
い。
Point2
入力が𝑥の時、 𝑦 = exp(𝑥)の微分値はそのままexp(𝑥)である。つ
まり順伝播時の出力をそのまま掛ける。
• 以上を踏まえると、sigmoid関数の逆伝播は以下のようになる。
𝑥 −𝑥 exp(−𝑥) 1 + exp(−𝑥)
1
1+exp −𝑥
= 𝑦
-1 1
× exp /+
𝜕𝐿
𝜕𝑦−
𝜕𝐿
𝜕𝑦
𝑦2−
𝜕𝐿
𝜕𝑦
𝑦2−
𝜕𝐿
𝜕𝑦
𝑦2
exp(−𝑥)
𝜕𝐿
𝜕𝑦
𝑦2
exp(−𝑥)
• さらに、
𝜕𝐿
𝜕𝑦
𝑦2 exp −𝑥 は以下のように簡略化できる。
𝜕𝐿
𝜕𝑦
𝑦2
exp −𝑥 =
𝜕𝐿
𝜕𝑦
1
1 + exp −𝑥 2
exp −𝑥
=
𝜕𝐿
𝜕𝑦
1
1 + exp −𝑥
exp −𝑥
1 + exp −𝑥
=
𝜕𝐿
𝜕𝑦
𝑦 1 − 𝑦
𝜕𝐿
𝜕𝑦
sigmoid
𝑥 𝑦
𝜕𝐿
𝜕𝑦
𝑦 1 − 𝑦
Affineレイヤ
• ニューラルネットワークの順伝播での行列の積を計算するレイ
ヤ
• 𝑿(2, ) ∙ 𝑾(2,3) = 𝑶(3, )
• 計算グラフでは
𝑿(2, )
𝑾(2,3)
𝑿 ∙ 𝑾(3, ) 𝒀(3, )
𝑩
dot +
Affineレイヤでの逆伝播
• 行列の積を計算するノードでの逆伝播の場合、行列の要素ごと
に書き下すと以下のようになる。
①
𝜕𝐿
𝜕𝑿
=
𝜕𝐿
𝜕𝒀
∙ 𝑾T
②
𝜕𝐿
𝜕𝑾
= 𝑿T ∙
𝜕𝐿
𝜕𝒀
𝑿(2, )
𝑾(2,3)
𝑿 ∙ 𝑾(3, ) 𝒀(3, )
𝑩
dot +
②
①
𝜕𝐿
𝜕𝒀
∙
𝜕𝐿
𝜕𝒀
∙
Softmax-with-Loss レイヤ
• Softmax:ソフトマックス関数
入力された値を正規化し出力する。
𝑎𝑖: 入力値、𝑦𝑖:正規化した入力値、𝑡𝑖:教師データ
• Loss: 交差エントロピー誤差
𝑦𝑖と𝑡𝑖を受け取り、それらのデータから損失𝐿を出力
𝑎1
𝑎2
𝑎3
𝑦1
𝑦2
𝑦3
𝑡1
𝑡3
𝑡2
Soft
Max
Cross
Entropy
Error
𝐿
1
𝑦2 − 𝑡2
𝑦1 − 𝑡1
𝑦3 − 𝑡3
ニューラルネットワークの学習の全体
Step1 : 訓練データの中からランダムに一部のデータを選び出
す
Step2 : 各重みパラメータに関する損失関数の勾配を求める。
Step3 : 重みパラメータを勾配方向に微小量だけ更新する
Step4 : Step1 ~ Step3 を loop
誤差逆伝播法の勾配確認
• 4章で勾配を計算した「数値微分」は実装が簡単→ミスが起き
にくい
• よって誤差逆伝播法の結果と比較するために用いる。
まとめ
• 計算グラフという計算過程を可視化できる方法を学んだ。
• ニューラルネットワークの構成要素をレイヤと呼び、それぞれ
の損失関数の勾配を効率的に求める方法として誤差逆伝播法を
学んだ。
• 計算速度は速いがややこしい誤差逆伝播法の実装に誤りがない
ことを確認するために、数値微分法の結果と比較するとよい。
• ありがとうございました。

More Related Content

What's hot

[DL輪読会]Wavenet a generative model for raw audio
[DL輪読会]Wavenet a generative model for raw audio[DL輪読会]Wavenet a generative model for raw audio
[DL輪読会]Wavenet a generative model for raw audioDeep Learning JP
 
Deep Learningと画像認識   ~歴史・理論・実践~
Deep Learningと画像認識 ~歴史・理論・実践~Deep Learningと画像認識 ~歴史・理論・実践~
Deep Learningと画像認識   ~歴史・理論・実践~nlab_utokyo
 
Deep Learning Lab 異常検知入門
Deep Learning Lab 異常検知入門Deep Learning Lab 異常検知入門
Deep Learning Lab 異常検知入門Shohei Hido
 
マルチモーダル深層学習の研究動向
マルチモーダル深層学習の研究動向マルチモーダル深層学習の研究動向
マルチモーダル深層学習の研究動向Koichiro Mori
 
Numpy scipyで独立成分分析
Numpy scipyで独立成分分析Numpy scipyで独立成分分析
Numpy scipyで独立成分分析Shintaro Fukushima
 
ブースティング入門
ブースティング入門ブースティング入門
ブースティング入門Retrieva inc.
 
Deep Learningによる画像認識革命 ー歴史・最新理論から実践応用までー
Deep Learningによる画像認識革命 ー歴史・最新理論から実践応用までーDeep Learningによる画像認識革命 ー歴史・最新理論から実践応用までー
Deep Learningによる画像認識革命 ー歴史・最新理論から実践応用までーnlab_utokyo
 
「解説資料」ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
「解説資料」ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation 「解説資料」ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
「解説資料」ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation Takumi Ohkuma
 
cvpaper.challenge 研究効率化 Tips
cvpaper.challenge 研究効率化 Tipscvpaper.challenge 研究効率化 Tips
cvpaper.challenge 研究効率化 Tipscvpaper. challenge
 
[DL輪読会]Understanding deep learning requires rethinking generalization
[DL輪読会]Understanding deep learning requires rethinking generalization[DL輪読会]Understanding deep learning requires rethinking generalization
[DL輪読会]Understanding deep learning requires rethinking generalizationDeep Learning JP
 
関数データ解析の概要とその方法
関数データ解析の概要とその方法関数データ解析の概要とその方法
関数データ解析の概要とその方法Hidetoshi Matsui
 
PFI Seminar 2012/03/15 カーネルとハッシュの機械学習
PFI Seminar 2012/03/15 カーネルとハッシュの機械学習PFI Seminar 2012/03/15 カーネルとハッシュの機械学習
PFI Seminar 2012/03/15 カーネルとハッシュの機械学習Preferred Networks
 
2014 3 13(テンソル分解の基礎)
2014 3 13(テンソル分解の基礎)2014 3 13(テンソル分解の基礎)
2014 3 13(テンソル分解の基礎)Tatsuya Yokota
 
【DL輪読会】時系列予測 Transfomers の精度向上手法
【DL輪読会】時系列予測 Transfomers の精度向上手法【DL輪読会】時系列予測 Transfomers の精度向上手法
【DL輪読会】時系列予測 Transfomers の精度向上手法Deep Learning JP
 
クラシックな機械学習の入門 3. 線形回帰および識別
クラシックな機械学習の入門 3. 線形回帰および識別クラシックな機械学習の入門 3. 線形回帰および識別
クラシックな機械学習の入門 3. 線形回帰および識別Hiroshi Nakagawa
 
パターン認識と機械学習6章(カーネル法)
パターン認識と機械学習6章(カーネル法)パターン認識と機械学習6章(カーネル法)
パターン認識と機械学習6章(カーネル法)Yukara Ikemiya
 
スパースモデリングによる多次元信号・画像復元
スパースモデリングによる多次元信号・画像復元スパースモデリングによる多次元信号・画像復元
スパースモデリングによる多次元信号・画像復元Shogo Muramatsu
 
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料Yusuke Uchida
 
ベータ分布の謎に迫る
ベータ分布の謎に迫るベータ分布の謎に迫る
ベータ分布の謎に迫るKen'ichi Matsui
 
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法SSII
 

What's hot (20)

[DL輪読会]Wavenet a generative model for raw audio
[DL輪読会]Wavenet a generative model for raw audio[DL輪読会]Wavenet a generative model for raw audio
[DL輪読会]Wavenet a generative model for raw audio
 
Deep Learningと画像認識   ~歴史・理論・実践~
Deep Learningと画像認識 ~歴史・理論・実践~Deep Learningと画像認識 ~歴史・理論・実践~
Deep Learningと画像認識   ~歴史・理論・実践~
 
Deep Learning Lab 異常検知入門
Deep Learning Lab 異常検知入門Deep Learning Lab 異常検知入門
Deep Learning Lab 異常検知入門
 
マルチモーダル深層学習の研究動向
マルチモーダル深層学習の研究動向マルチモーダル深層学習の研究動向
マルチモーダル深層学習の研究動向
 
Numpy scipyで独立成分分析
Numpy scipyで独立成分分析Numpy scipyで独立成分分析
Numpy scipyで独立成分分析
 
ブースティング入門
ブースティング入門ブースティング入門
ブースティング入門
 
Deep Learningによる画像認識革命 ー歴史・最新理論から実践応用までー
Deep Learningによる画像認識革命 ー歴史・最新理論から実践応用までーDeep Learningによる画像認識革命 ー歴史・最新理論から実践応用までー
Deep Learningによる画像認識革命 ー歴史・最新理論から実践応用までー
 
「解説資料」ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
「解説資料」ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation 「解説資料」ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
「解説資料」ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
 
cvpaper.challenge 研究効率化 Tips
cvpaper.challenge 研究効率化 Tipscvpaper.challenge 研究効率化 Tips
cvpaper.challenge 研究効率化 Tips
 
[DL輪読会]Understanding deep learning requires rethinking generalization
[DL輪読会]Understanding deep learning requires rethinking generalization[DL輪読会]Understanding deep learning requires rethinking generalization
[DL輪読会]Understanding deep learning requires rethinking generalization
 
関数データ解析の概要とその方法
関数データ解析の概要とその方法関数データ解析の概要とその方法
関数データ解析の概要とその方法
 
PFI Seminar 2012/03/15 カーネルとハッシュの機械学習
PFI Seminar 2012/03/15 カーネルとハッシュの機械学習PFI Seminar 2012/03/15 カーネルとハッシュの機械学習
PFI Seminar 2012/03/15 カーネルとハッシュの機械学習
 
2014 3 13(テンソル分解の基礎)
2014 3 13(テンソル分解の基礎)2014 3 13(テンソル分解の基礎)
2014 3 13(テンソル分解の基礎)
 
【DL輪読会】時系列予測 Transfomers の精度向上手法
【DL輪読会】時系列予測 Transfomers の精度向上手法【DL輪読会】時系列予測 Transfomers の精度向上手法
【DL輪読会】時系列予測 Transfomers の精度向上手法
 
クラシックな機械学習の入門 3. 線形回帰および識別
クラシックな機械学習の入門 3. 線形回帰および識別クラシックな機械学習の入門 3. 線形回帰および識別
クラシックな機械学習の入門 3. 線形回帰および識別
 
パターン認識と機械学習6章(カーネル法)
パターン認識と機械学習6章(カーネル法)パターン認識と機械学習6章(カーネル法)
パターン認識と機械学習6章(カーネル法)
 
スパースモデリングによる多次元信号・画像復元
スパースモデリングによる多次元信号・画像復元スパースモデリングによる多次元信号・画像復元
スパースモデリングによる多次元信号・画像復元
 
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
 
ベータ分布の謎に迫る
ベータ分布の謎に迫るベータ分布の謎に迫る
ベータ分布の謎に迫る
 
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
 

More from KCS Keio Computer Society

Large scale gan training for high fidelity natural
Large scale gan training for high fidelity naturalLarge scale gan training for high fidelity natural
Large scale gan training for high fidelity naturalKCS Keio Computer Society
 
Vector-Based navigation using grid-like representations in artificial agents
 Vector-Based navigation using grid-like representations in artificial agents Vector-Based navigation using grid-like representations in artificial agents
Vector-Based navigation using grid-like representations in artificial agentsKCS Keio Computer Society
 
ゼロから作るDeepLearning 2~3章 輪読
ゼロから作るDeepLearning 2~3章 輪読ゼロから作るDeepLearning 2~3章 輪読
ゼロから作るDeepLearning 2~3章 輪読KCS Keio Computer Society
 
ゼロから作るDeepLearning 3.3~3.6章 輪読
ゼロから作るDeepLearning 3.3~3.6章 輪読ゼロから作るDeepLearning 3.3~3.6章 輪読
ゼロから作るDeepLearning 3.3~3.6章 輪読KCS Keio Computer Society
 
[論文略説]Stochastic Thermodynamics Interpretation of Information Geometry
[論文略説]Stochastic Thermodynamics Interpretation of Information Geometry[論文略説]Stochastic Thermodynamics Interpretation of Information Geometry
[論文略説]Stochastic Thermodynamics Interpretation of Information GeometryKCS Keio Computer Society
 

More from KCS Keio Computer Society (20)

Large scale gan training for high fidelity natural
Large scale gan training for high fidelity naturalLarge scale gan training for high fidelity natural
Large scale gan training for high fidelity natural
 
Imagenet trained cnns-are_biased_towards
Imagenet trained cnns-are_biased_towardsImagenet trained cnns-are_biased_towards
Imagenet trained cnns-are_biased_towards
 
機械学習ゼミ: Area attenttion
機械学習ゼミ: Area attenttion機械学習ゼミ: Area attenttion
機械学習ゼミ: Area attenttion
 
機械学習ゼミ 2018/10/17
機械学習ゼミ 2018/10/17機械学習ゼミ 2018/10/17
機械学習ゼミ 2018/10/17
 
機械学習ゼミ2018 06 15
機械学習ゼミ2018 06 15機械学習ゼミ2018 06 15
機械学習ゼミ2018 06 15
 
Control by deep learning
Control by deep learningControl by deep learning
Control by deep learning
 
深層学習 第6章
深層学習 第6章深層学習 第6章
深層学習 第6章
 
Vector-Based navigation using grid-like representations in artificial agents
 Vector-Based navigation using grid-like representations in artificial agents Vector-Based navigation using grid-like representations in artificial agents
Vector-Based navigation using grid-like representations in artificial agents
 
文章生成の未解決問題
文章生成の未解決問題文章生成の未解決問題
文章生成の未解決問題
 
Word2vec alpha
Word2vec alphaWord2vec alpha
Word2vec alpha
 
テンソル代数
テンソル代数テンソル代数
テンソル代数
 
Hindsight experience replay
Hindsight experience replayHindsight experience replay
Hindsight experience replay
 
Kml 輪読514
Kml 輪読514Kml 輪読514
Kml 輪読514
 
ELBO型VAEのダメなところ
ELBO型VAEのダメなところELBO型VAEのダメなところ
ELBO型VAEのダメなところ
 
ゼロから作るDeepLearning 2~3章 輪読
ゼロから作るDeepLearning 2~3章 輪読ゼロから作るDeepLearning 2~3章 輪読
ゼロから作るDeepLearning 2~3章 輪読
 
ゼロから作るDeepLearning 4章 輪読
ゼロから作るDeepLearning 4章 輪読ゼロから作るDeepLearning 4章 輪読
ゼロから作るDeepLearning 4章 輪読
 
Soft Actor Critic 解説
Soft Actor Critic 解説Soft Actor Critic 解説
Soft Actor Critic 解説
 
ゼロから作るDeepLearning 3.3~3.6章 輪読
ゼロから作るDeepLearning 3.3~3.6章 輪読ゼロから作るDeepLearning 3.3~3.6章 輪読
ゼロから作るDeepLearning 3.3~3.6章 輪読
 
[論文略説]Stochastic Thermodynamics Interpretation of Information Geometry
[論文略説]Stochastic Thermodynamics Interpretation of Information Geometry[論文略説]Stochastic Thermodynamics Interpretation of Information Geometry
[論文略説]Stochastic Thermodynamics Interpretation of Information Geometry
 
Graph Convolutional Network 概説
Graph Convolutional Network 概説Graph Convolutional Network 概説
Graph Convolutional Network 概説
 

ゼロから作るDeepLearning 5章 輪読