やってられねえっす。。。
「ニューラルネットの勉強」→「シグモイド関数の勉強」→「微分の勉強」→「合成関数の微分の勉強」
もう何を勉強しようとしているのか分からなくなってきた。。。。
ただ、ひとまずシグモイド関数を理解するには、これが最後っぽい。
合成関数とは?
合成関数は、関数の中に関数が入れ子ではいっている関数
例)
y = f(u)
u = g(x)
上記の場合
y = f(g(x))
上記が合成関数
合成関数の微分の公式
合成関数の微分を求める公式があるよう。
以下の通り。
dy dy du -- = -- * -- dx du dx
パーツ毎に説明すると、、、
dy -- dx
はy = f(x)の導関数の表記
xでyを微分するってこと。
dy -- du
du -- dx
上記より合成関数の導関数は、、、
合成関数の微分の公式の証明
前提となる合成関数と各関数は以下の表記とする。
y = f(u)
u = g(x)
y = f(g(x))
まずは以下の形から lim f(g(x + h)) - f(g(x)) h→0 --------------------- h これを変形する為に、以下を掛ける。 g(x + h) - g(x) --------------- g(x + h) - g(x) ↓ lim f(g(x + h)) - f(g(x)) g(x + h) - g(x) h→0 --------------------- * --------------- h g(x + h) - g(x) ↓ lim f(g(x + h)) - f(g(x)) g(x + h) - g(x) h→0 --------------------- * --------------- g(x + h) - g(x) h これが???と思ったが、計算上は成立する。 例) 2 2 3 2 3 --- = --- * --- = --- * --- →計算結果は変わらない。 4 4 3 3 4 ここで以下の表記を決めて、、、、 j = g(x + h) - g(x) 前提条件でもある以下表記を使うと、、、 u = g(x) こうなって j = g(x + h) - u こうなる j + u = g(x + h) これを利用して展開すると、、、、 ↓ lim f(j + u) - f(u) g(x + h) - g(x) h→0 --------------- * --------------- j + u - u h となり、 ↓ lim f(j + u) - f(u) g(x + h) - g(x) h→0 --------------- * --------------- j h となる この時、h→0を考慮すると j = g(x + h) - g(x) の為、h→0の時は、j→0になる。 これを踏まえてると、以下表記が可能。 ↓ lim lim f(j + u) - f(u) g(x + h) - g(x) h→0 j→0 ----------------- * --------------- j h ↓ lim f(j + u) - f(u) lim g(x + h) - g(x) j→0 ----------------- * h→0 --------------- j h こうなると、 ↓ f'(u)*g'(h) になる。 これをdを使って表記すると、 dy du --*-- du dx なんかだまされた気分。。。。。。
おまけ
こんな表記でやる場合もあるみたい。
例) y = (logx)^3
y' = {(logx)^3}' * (logx)' y' = 3{logx}^2 * (logx)' y' = 3{logx}^2 * (logx)'
※(logx)'は1/xになるらしい。
対数(logX)’=1/Xの微分は、どう証明するのでしょうか? - awangue1_272... - Yahoo!知恵袋
y' = 3{logx}^2 * 1/x y' = 3{logx}^2 --------- x