こんにちは!
現役パラレルワーカー フクコです。
前回の記事↓に続き
来年の2月の試験に向けてE資格試験勉強中のため
E資格とは?の記事はコチラ↓
ゼロつくシリーズでおなじみ
オーライリーから出版されている
ディープラーニングの本格的な入門書でよくおススメされる
「ゼロからつくる Deep Learning」本
この本↑を毎日5ページずつコツコツこなすと
約2か月間で今年中に終了するので
来年のE資格試験までにこれで基礎力をつけることにしました。(^^)
ついつい私は何もないとだらけてしまうので(笑)
毎日5ページ終わった後の記録とまとめを書いていこうと思います。
と、まとめに入る前に…
やる気を出すためのコトバをシェアします!!(主に私のやる気を出すために 笑)
「自由ってなんて美しく過酷なんだろう」
by エマ
私の大好きな「約束のネバーランド」(約ネバ)から
エマの名言です。
↓の記事でも一度お伝えしましたが、夢をかなえたい!なら
約ネバはホントにおススメです!!
巷ではまだまだ「鬼滅の刃」人気がすごいですし、
よくビジネスや自己啓発の名言として出てきますが
ゴールに向かうときのヒトの心理は実際どうなるのか??という描写は
正直、私は「約ネバ」の方がリアルに上手に描写していると思います。
気になる方はコチラ↓
そう! 好きなことをしていくには大きなカベをのり越えないといけない。
自由を得るためにはそれなりの覚悟と努力が必要!なんですよね。
エマ、どうもありがとう! (^0^)
今日もやる気が出てきました!
よし!! 今日も頑張るぞ~! お~!!
というコトで、エマのように諦めず前に進みつづけて、今日も私はノルマをこなしますよ! 笑
ではでは、いい加減まとめに入ります。笑
その前に本の目次の紹介です。
ゼロつくディープラーニングは、下記↓の合計8章で構成されています。
本の目次
- 1章 Python入門
- 2章 パーセプトロン
- 3章 ニューラルネットワーク
- 4章 ニューラルネットワークの学習
- 5章 誤差伝播法
- 6章 学習に関するテクニック
- 7章 畳み込みニューラルネットワーク
- 8章 ディープラーニング
ちなみに…
ゼロつくディープラーニングの第1章はPython入門のセクション(20ページ分)なので、
とりあえず今回私は飛ばし、第2章からまとめています。
今回は第5章のつづきからでーす。
5.5 活性化関数レイヤの実装
活性化関数であるReLUとSigmoidレイヤを実装してみる。
5.5.1 ReLUレイヤ
活性化関数として使われるReLU(Rectified Linear Unit)は
次の式で表される。
Xに関するyの微分式は、↓の式のように求められる。
ReLUレイヤを実装してみると↓のとおり。
#ReLU関数 class Relu: def __init__(self): self.mask = None def forward(self, x): self.mask = (x <= 0) out = x.copy() out[self.mask] = 0 return out def backward(self, dout): dout[self.mask] = 0 dx = dout return dx
ReLUレイヤは
回路における「スイッチ」のように機能する。
5.5.2 Sigmoidレイヤ
つづいて、Sigmoid関数を実装してみる。
Sigmoid関数の式は↓のとおり。
Sigmoid関数を計算グラフにすると↓のとおり。
Sigmoid関数を実装してみると↓のとおり。
#ReLU関数 class Sigmoid: def __init__(self): self.out = None def forward(self, x): out = 1 / (1+ np.exp(-x)) self.out = out return out def backward(self, dout): dx = dout * (1.0 - self.out) * self.out return dx
順伝播時に出力をインスタンス変数のOutに保持しておく。
逆伝播時に、そのOut変数を使って計算を行う。