SlideShare ist ein Scribd-Unternehmen logo
1 von 23
Downloaden Sie, um offline zu lesen
ゼロから作る
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章で勾配を計算した「数値微分」は実装が簡単→ミスが起き
にくい
• よって誤差逆伝播法の結果と比較するために用いる。
まとめ
• 計算グラフという計算過程を可視化できる方法を学んだ。
• ニューラルネットワークの構成要素をレイヤと呼び、それぞれ
の損失関数の勾配を効率的に求める方法として誤差逆伝播法を
学んだ。
• 計算速度は速いがややこしい誤差逆伝播法の実装に誤りがない
ことを確認するために、数値微分法の結果と比較するとよい。
• ありがとうございました。

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

[DL輪読会]Recent Advances in Autoencoder-Based Representation Learning
[DL輪読会]Recent Advances in Autoencoder-Based Representation Learning[DL輪読会]Recent Advances in Autoencoder-Based Representation Learning
[DL輪読会]Recent Advances in Autoencoder-Based Representation Learning
 
Active Learning と Bayesian Neural Network
Active Learning と Bayesian Neural NetworkActive Learning と Bayesian Neural Network
Active Learning と Bayesian Neural Network
 
ELBO型VAEのダメなところ
ELBO型VAEのダメなところELBO型VAEのダメなところ
ELBO型VAEのダメなところ
 
生成モデルの Deep Learning
生成モデルの Deep Learning生成モデルの Deep Learning
生成モデルの Deep Learning
 
[DL輪読会]Set Transformer: A Framework for Attention-based Permutation-Invariant...
[DL輪読会]Set Transformer: A Framework for Attention-based Permutation-Invariant...[DL輪読会]Set Transformer: A Framework for Attention-based Permutation-Invariant...
[DL輪読会]Set Transformer: A Framework for Attention-based Permutation-Invariant...
 
Mean Teacher
Mean TeacherMean Teacher
Mean Teacher
 
[DL輪読会]Parallel WaveNet: Fast High-Fidelity Speech Synthesis
[DL輪読会]Parallel WaveNet: Fast High-Fidelity Speech Synthesis[DL輪読会]Parallel WaveNet: Fast High-Fidelity Speech Synthesis
[DL輪読会]Parallel WaveNet: Fast High-Fidelity Speech Synthesis
 
[DL輪読会]Temporal DifferenceVariationalAuto-Encoder
[DL輪読会]Temporal DifferenceVariationalAuto-Encoder[DL輪読会]Temporal DifferenceVariationalAuto-Encoder
[DL輪読会]Temporal DifferenceVariationalAuto-Encoder
 
動画認識サーベイv1(メタサーベイ )
動画認識サーベイv1(メタサーベイ )動画認識サーベイv1(メタサーベイ )
動画認識サーベイv1(メタサーベイ )
 
動作認識の最前線:手法,タスク,データセット
動作認識の最前線:手法,タスク,データセット動作認識の最前線:手法,タスク,データセット
動作認識の最前線:手法,タスク,データセット
 
音響メディア信号処理における独立成分分析の発展と応用, History of independent component analysis for sou...
音響メディア信号処理における独立成分分析の発展と応用, History of independent component analysis for sou...音響メディア信号処理における独立成分分析の発展と応用, History of independent component analysis for sou...
音響メディア信号処理における独立成分分析の発展と応用, History of independent component analysis for sou...
 
【DL輪読会】マルチエージェント強化学習における近年の 協調的方策学習アルゴリズムの発展
【DL輪読会】マルチエージェント強化学習における近年の 協調的方策学習アルゴリズムの発展【DL輪読会】マルチエージェント強化学習における近年の 協調的方策学習アルゴリズムの発展
【DL輪読会】マルチエージェント強化学習における近年の 協調的方策学習アルゴリズムの発展
 
[DL輪読会]“SimPLe”,“Improved Dynamics Model”,“PlaNet” 近年のVAEベース系列モデルの進展とそのモデルベース...
[DL輪読会]“SimPLe”,“Improved Dynamics Model”,“PlaNet” 近年のVAEベース系列モデルの進展とそのモデルベース...[DL輪読会]“SimPLe”,“Improved Dynamics Model”,“PlaNet” 近年のVAEベース系列モデルの進展とそのモデルベース...
[DL輪読会]“SimPLe”,“Improved Dynamics Model”,“PlaNet” 近年のVAEベース系列モデルの進展とそのモデルベース...
 
【DL輪読会】Data-Efficient Reinforcement Learning with Self-Predictive Representat...
【DL輪読会】Data-Efficient Reinforcement Learning with Self-Predictive Representat...【DL輪読会】Data-Efficient Reinforcement Learning with Self-Predictive Representat...
【DL輪読会】Data-Efficient Reinforcement Learning with Self-Predictive Representat...
 
Neural text-to-speech and voice conversion
Neural text-to-speech and voice conversionNeural text-to-speech and voice conversion
Neural text-to-speech and voice conversion
 
【DL輪読会】Efficiently Modeling Long Sequences with Structured State Spaces
【DL輪読会】Efficiently Modeling Long Sequences with Structured State Spaces【DL輪読会】Efficiently Modeling Long Sequences with Structured State Spaces
【DL輪読会】Efficiently Modeling Long Sequences with Structured State Spaces
 
【DL輪読会】ViT + Self Supervised Learningまとめ
【DL輪読会】ViT + Self Supervised Learningまとめ【DL輪読会】ViT + Self Supervised Learningまとめ
【DL輪読会】ViT + Self Supervised Learningまとめ
 
【DL輪読会】Implicit Behavioral Cloning
【DL輪読会】Implicit Behavioral Cloning【DL輪読会】Implicit Behavioral Cloning
【DL輪読会】Implicit Behavioral Cloning
 
ConvNetの歴史とResNet亜種、ベストプラクティス
ConvNetの歴史とResNet亜種、ベストプラクティスConvNetの歴史とResNet亜種、ベストプラクティス
ConvNetの歴史とResNet亜種、ベストプラクティス
 
Maxout networks
Maxout networksMaxout networks
Maxout networks
 

Mehr von KCS Keio Computer Society

Mehr von 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
 
ゼロから作る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 概説
 
AIを作ることと理解すること
AIを作ることと理解することAIを作ることと理解すること
AIを作ることと理解すること
 

ゼロから作るDeepLearning 5章 輪読