「ゼロから作るDeepLearning」で気づいたこと(その4)

5.5.2 Sigmoid レイヤについて

 

合成関数の微分を利用したほうが理解しやすかったのでメモしておきます。

 

Lを損失関数とする。

 

◎ステップ1

 

α(i) = 1+exp(-x) とすると、 y = 1/α(i)

L/∂α(i) = (L/y )(y/∂α(i))

y/∂α(i) = - 1/α(i)^2 = -(1/α(i))^2 = -y^2 だから

L/∂α(i) = -(L/y )y^2

 

◎ステップ2

α(i) = 1+exp(-x)

α(i-1) = exp(-x) と置くと、α(i) = 1+α(i-1)

 

よって、

L/∂α(i-1) = (L/∂α(i))(∂α(i)/∂α(i-1))

ステップ1より、∂L/∂α(i) = -(L/y )y^2

また、∂α(i)/∂α(i-1) = 1 なので

L/∂α(i-1) = -(L/y )y^2

 

◎ステップ3

α(i-2) = -x とすると、

α(i-1) = exp(α(i-2))

 

よって、

L/∂α(i-2) = (L/∂α(i-1))(∂α(i-1)/∂α(i-2))

ステップ2より L/∂α(i-1) = -(L/y )y^2

また、∂α(i-1)/∂α(i-2) = exp(α(i-2)) = exp(-x) であるから、

L/∂α(i-2) = -(L/y )(y^2)(epx(-x))

 

 

◎ステップ4

 

L/x = (L/∂α(i-2))(∂α(i-2)/x)

ステップ3より L/∂α(i-2) = -(L/y )(y^2)(epx(-x))

また、∂α(i-2)/x =-1 であるから、

L/x = (L/y )(y^2)(epx(-x))

 

(∂L/∂y)(y^2)(exp(−x)) という値が順伝播の入力 x と出力 y だけから計算できる点が注目すべきところ

「ゼロから作るDeepLearning」で気づいたこと(その3)

4.3.2 数値微分の例

gradient_1d.pyの以下の関数について

def tangent_line(f, x):
    d = numerical_diff(f, x)
    print(d)
    y = f(x) - d*x
    return lambda t: d*t + y

y=f(x) - d*x

dは傾きなので、d*xは、接線のx=0つまりf(0)から座標xでのf(x)の差、つまりf(x)-f(0)がもとまる。よってf(x)-d*xはf(0)となり、f(0)は接線のx=0でのy座標の値、つまり切片となる。

「ゼロから作るDeepLearning」で気づいたこと(その2)

4.2.4 [バッチ対応版]交差エントロピー誤差の実装

cross_entropy_error(y, t)関数において

以下のくだりがある。


if y.ndim == 1:
  t = t.reshape(1, t.size)
  y = y.reshape(1, y.size)

yが1次元なのになぜこんなことをと思ったのですが、これはyを2次元にしているんですね。2次元だけど、もとは1次元だから行数は1。こんな当たり前に気付かなかった。

「ゼロから作るDeepLearning」で気づいたこと

3.6.3 バッチ処理

以下の計算過程をもう少し詳しく記述してみた。

図 3-27 バッチ処理における配列の形状の推移

ここで、 W1、W2、W3での行列の演算結果をそれぞれ、a1、a2、a3とすると、

a1 = X・W1 ⇒ 100(行)×50(列)

従って、

 

W1とW2の間の演算は

a2 = a1・W2 ⇒ 100(行)×100(列)

 

W2とW3の間の演算は

a3 = a2・W3 ⇒ 100(行)×10(列)

 

出力層Yへは活性化関数hを適用して

Y = h(a3) ⇒ 100(行)×10(列)

 

 

今日のロング散歩

雪もほとんど溶けていて、今日は絶好の散歩日和です。近頃、散歩コースがマンネリ化していたので、今日は少し変えてみました。

高田馬場を出発して早稲田へ。早稲田で神社に寄ってから神楽坂へ。

神楽坂から九段下へ。またもや神社。靖国神社へ。靖国神社は2回目なのですが、やはり大きいですね。そして参拝の人が少ないのにびっくり。バスツアーの方々も全くいないし。

その後は竹橋から東京駅へ向かいました。東京駅の駅舎の工事が終わっていました。

実は駅舎を直に見るのは初めてで、美しさにうっとりです!

f:id:tharamoto:20220212191812j:image
f:id:tharamoto:20220212191806j:image
f:id:tharamoto:20220212191751j:image
f:id:tharamoto:20220212191748j:image
f:id:tharamoto:20220212191833j:image
f:id:tharamoto:20220212191821j:image
f:id:tharamoto:20220212191815j:image
f:id:tharamoto:20220212191753j:image
f:id:tharamoto:20220212191818j:image
f:id:tharamoto:20220212191848j:image
f:id:tharamoto:20220212191845j:image
f:id:tharamoto:20220212191803j:image
f:id:tharamoto:20220212191842j:image
f:id:tharamoto:20220212191839j:image
f:id:tharamoto:20220212191745j:image
f:id:tharamoto:20220212191824j:image
f:id:tharamoto:20220212191830j:image
f:id:tharamoto:20220212191827j:image
f:id:tharamoto:20220212191809j:image
f:id:tharamoto:20220212191856j:image
f:id:tharamoto:20220212191836j:image
f:id:tharamoto:20220212191800j:image
f:id:tharamoto:20220212191853j:image
f:id:tharamoto:20220212191757j:image

今日もロング散歩

土曜日なので今日もロング散歩。

在宅勤務で普段全く運動していないのでイッキに運動しているという感じです。

今日も和田堀公園へ。朝早くから野球やサッカー、そしてテニスをしている人達がいます。

楽しそうです。

また本日も野鳥を観測している方々がいらっしゃいました。いつも同じ場所にいるので、おそらく特定の木に生息している野鳥をねらっているのかと思います。

ウロチョロしながら今日も15キロぐらい道程を歩いたりジョギングしたりいたのですが、いつもよりも疲労感があります。

なんでだろう。おそらく武井壮さんが提唱していた「全力歩き」を取り入れたからだと思います。たかだか二、三十メートルの距離を全力で歩くことを4、5回行っただけなのに、疲労感が全く違います。

「全力歩き」は良いトレーニングになりそうです。

f:id:tharamoto:20220205190921j:image
f:id:tharamoto:20220205190928j:image
f:id:tharamoto:20220205190925j:image
f:id:tharamoto:20220205190931j:image
f:id:tharamoto:20220205190934j:image

週末の散歩

先週の土曜日は和田堀公園を散歩してきました。善福寺川沿いにあるとても閑静な公園です。

たくさんのランナーが走っているので僕も走ったり歩いたり。

とても気持ちが良い散歩コースです。

自然が豊かで野鳥を観察する方々がカメラを片手にシャッターチャンスを狙っているようでた。f:id:tharamoto:20220201174152j:image
f:id:tharamoto:20220201174202j:image
f:id:tharamoto:20220201174148j:image
f:id:tharamoto:20220201174205j:image
f:id:tharamoto:20220201174155j:image
f:id:tharamoto:20220201174159j:image