質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
アーキテクチャ

アーキテクチャとは、情報システム(ハードウェア、OS、アプリケーション、ネットワーク等)の設計方法、設計思想、設計思想に基づいて構築されたシステム構造をアーキテクチャと呼びます

Q&A

解決済

2回答

442閲覧

誤差逆伝播の偏微分の式変形に関して

退会済みユーザー

退会済みユーザー

総合スコア0

アーキテクチャ

アーキテクチャとは、情報システム(ハードウェア、OS、アプリケーション、ネットワーク等)の設計方法、設計思想、設計思想に基づいて構築されたシステム構造をアーキテクチャと呼びます

0グッド

0クリップ

投稿2017/08/10 17:15

詳解ディープラーニングで誤差逆伝播の勉強を進めているのですが、途中でわからない式変形がありましたので質問させていただきます。(p.126の3.93について)

【前提条件】
入力層、隠れ層、出力層のそれぞれ全結合のシンプルな3層構造です。

入力値:x
隠れ層のノード:h
出力値:y

入力層→隠れ層の重み:w
隠れ層→出力層の重み:v

入力層→隠れ層のバイアス:b
隠れ層→出力層のバイアス:c

入力層→隠れ層の活性化関数:f
隠れ層→出力層の活性化関数:g

誤差関数:E = E(W,V,b,c)

と置いています。

つまり、
h = f(Wx + b)
y = g(Vh + c)

として、誤差逆伝播を求めていくために、

p = Wx + b
q = Vh + c

と置いて、計算を進めています。
誤差逆伝播なのでσE/σwやσE/σcを求めていくとその式の中に
σE/σpやσE/σqが出てきます。

そこでだいぶ前のページの数式と見比べて
イメージ説明
を出すのですが、問題なのは次で
イメージ説明
という式変形があるのですが、
σq/σpの変形がf'(p)v)になるのがわかりません。

どなたかわかるかたがいらっしゃれば教えて頂けるとうれしいです。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

V_kはk番目のノードに対する重みの多次元ベクトルという意味で使っています。
V_k = (v_k1 v_k2 ・・・ v_kj ・・・ v_kK)
ということです。

∂{ v_1j・f(p_j) } / ∂f(p_j)や∂{ v_2j・f(p_j) } / ∂f(p_j)

∂{ v_kj・f(p_j) } / ∂f(p_j)
に含まれています。そのためのkです。
回答は以上です。

頑張ってください。

投稿2017/08/11 14:47

kirensunakawa

総合スコア24

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

恐らく、
y = g(Vh + c)
ではなく
y = g(VH + c) ・・・① (Hはhを要素にもつ行列(多次元ベクトル)ですよね。)
書籍だと、hの上に波線~(波バー?)を付けて表現されるのが普通ですが。
提示の本を読んだことがないので真相を分かりかねますが
もし付いていなかったら、僕はお手上げです。以下は読まないでくださいね。
また、 僕の説明で分からないことがあれば、「偏微分」「行列」「統計」を一通り学習してみるといいです。この辺の理解をすることで、上っ面の理解ではなく、ごまかすことなく、ディープラーニングを理解して応用できるようになるでしょう。

①を前提にします。(p_jは広げて書けば、p _ jとなります。jがiに見えますね。)
∂q_k/∂p_j
=∂(V_k・H + c)/∂p_j (∵ q_k = V_k・H + c )
=∂{V_k・(h_1 h_2 ・・・ h_j ・・・h_K)' + c}/∂p_j
=∂[V_k・{f(p_1) f(p_2) ・・・ f(p_j) ・・・ f(p_K)}' + c]/∂p_j (∵ h_k = f(p_k) )
=0・(K-1) + 0 + ∂{v_kj・f(p_j)}/∂p_j (∵ ∂{v_kz・f(p_k)}/∂p_j=0(k≠j) , c/∂p_j = 0)
=d{v_kj・f(p_j)}/dp_j
=f'(p_j)・v_kj

これからも、頑張ってください。

投稿2017/08/10 20:45

編集2017/08/11 14:39
kirensunakawa

総合スコア24

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/08/11 12:53

丁寧なご回答ありがとうございました。 本の中でもhは小文字なのですが、太字なので(h_1 h_2 .... h_J)のベクトルでした。質問の仕方がわかりにくくてすいませんでした。 kirensunakawa様の回答を見ることでとても理解が進んだのですが1点だけわからないことがあったので質問してもよろしいでしょうか。 式変形の5行目 =0・(K-1) + 0 + ∂{v_kj・f(p_j)}/∂p_j (∵ ∂{v_kz・f(p_k)}/∂p_j=0(k≠j) , c/∂p_j = 0) についてなのですが、 Vはk*j行列で、f(p)はj*1行列なので展開すると、 v_11・f(p_1) + v_12・f(p_2) + ・・・・+【v_1j・f(p_j) 】 +・・・・・・・・・・・・・・・・・・+【v_2j・f(p_j)】 + ・ ・ ・ +・・・・・・・・・・・・・・・・・【v_kj ・f(p_j)】 +c になるので、f(p_j)以外がかかってる【】以外のところはp_jで偏微分することで0になるのはわかるのですが、どうして ∂{ v_1j・f(p_j) } / ∂f(p_j)や ∂{ v_2j・f(p_j) } / ∂f(p_j)も0になるのでしょうか。 ラスト2行は理解できるのですが、ここがどうしてもわかりません。 お手数ですが、ご教示願えませんでしょうか。 よろしくお願いします。
kirensunakawa

2017/08/11 14:48

あっ、回答として投稿してしまいました。 下の方をご覧ください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問