無限不可能性ドライブ

『ニューラルネットワーク自作入門』に刺激されてExcelVBAでニューラルネットワークを作ってみたものの、やっぱり数学やらなきゃと思い少しずつやってきたのもあって、自分の知識の整理とかそういった感じです。

【数式編】(順伝播)出力層のユニットの出力を求める

f:id:celaeno42:20180924233724p:plain

出力値の求め方

出力層のユニットの出力値の求め方は、隠れ層のユニットの出力値の求め方とほぼ同じですが、活性化関数を  Softmax にしているため、その部分が異なります。
例として ユニットo11 の出力を求めてみます。

 z_1^4 を求める

ユニットo11 の出力値  z_1^4 を求めるには、その前に  u_1^4 を求める必要があります。


\displaystyle u_1^4 = w_{11}^4 z_1^3 + w_{12}^4 z_2^3 + w_{13}^4 z_3^3 + w_{14}^4 z_4^3 + b_1^4


この  u_1^4 Softmax を適用すると  z_1^4 が求まります。


\displaystyle z_1^4 = Softmax(u_1^4)


Softmax(ソフトマックス)関数

 Softmax の具体的な式は次のようになります。


 \displaystyle z_1^4 = Softmax(u_1^4) = \frac{\exp(u_1^4)}{\sum_{k=1}^3 \exp(u_k^4)} = \frac{\exp(u_1^4)}{\exp(u_1^4) + \exp(u_2^4) + \exp(u_3^4)}


 ReLU に比べて複雑な感じの式ですが、やっていることはそれほど難しいことではありません。

f:id:celaeno42:20180926222124p:plain

問題:
ももが3個、りんごが5個、ぶどうが2個あります。ももの割合はどのくらいですか?

これは次の式で計算できますね。


\displaystyle ももの割合 = \frac{ももの個数}{ももの個数 + りんごの個数 + ぶどうの個数} = \frac{3}{3 + 5 + 2} = \frac{3}{10}


先ほどの  Softmax の式と比べると同じような構成になっていることがわかると思います。


 \displaystyle z_1^4 = \frac{\exp(u_1^4)}{\exp(u_1^4) + \exp(u_2^4) + \exp(u_3^4)}


さて、これは次のように考えることもできます。

f:id:celaeno42:20180926222136p:plain

問題:
ももが3個、りんごが5個、ぶどうが2個入っている袋があります。この袋からくだものを1つ取り出すとして、ももを取り出す確率はどのくらいですか?

10個のくだものから3個のももを取り出すので、答えは先ほど同様  \displaystyle \frac{3}{10} ですね。

つまり、ソフトマックス関数では、その出力の確率がどのくらいかを求めているといってもいいでしょう。
そして、確率の総和は 1 になるので、ソフトマックス関数を適用した出力層のすべての出力の和も 1 になります。

具体的には


 \displaystyle z_1^4 + z_2^4 + z_3^4 = 1


となります。

ももを取り出す確率 =  \displaystyle \frac{3}{10}、りんごを取り出す確率 =  \displaystyle \frac{5}{10}、ぶどうを取り出す確率 =  \displaystyle \frac{2}{10} で、

全部足すと


 \displaystyle \frac{3}{10} + \frac{5}{10} + \frac{2}{10} = 1


となることと同じです。

出力を求める式

他のユニットの式もあわせてまとめておきましょう。

ユニットo11

\displaystyle u_1^4 = w_{11}^4 z_1^3 + w_{12}^4 z_2^3 + w_{13}^4 z_3^3 + w_{14}^4 z_4^3 + b_1^4


\displaystyle z_1^4 = Softmax(u_1^4) \left( = \frac{\exp(u_1^4)}{\sum_{k=1}^3 \exp(u_k^4)} = \frac{\exp(u_1^4)}{\exp(u_1^4) + \exp(u_2^4) + \exp(u_3^4)} \right)


ユニットo12

\displaystyle u_2^4 = w_{21}^4 z_1^3 + w_{22}^4 z_2^3 + w_{23}^4 z_3^3 + w_{24}^4 z_4^3 + b_2^4


\displaystyle z_2^4 = Softmax(u_2^4) \left( = \frac{\exp(u_2^4)}{\sum_{k=1}^3 \exp(u_k^4)} = \frac{\exp(u_2^4)}{\exp(u_1^4) + \exp(u_2^4) + \exp(u_3^4)} \right)


ユニットo13

\displaystyle u_3^4 = w_{31}^4 z_1^3 + w_{32}^4 z_2^3 + w_{33}^4 z_3^3 + w_{34}^4 z_4^3 + b_3^4


\displaystyle z_3^4 = Softmax(u_3^4) \left( = \frac{\exp(u_3^4)}{\sum_{k=1}^3 \exp(u_k^4)} = \frac{\exp(u_3^4)}{\exp(u_1^4) + \exp(u_2^4) + \exp(u_3^4)} \right)




f:id:celaeno42:20180926231750p:plain