こんにちは!
現役パラレルワーカー フクコです。
前回の記事↓に続き
来年の2月の試験に向けてE資格試験勉強中のため
ゼロつくシリーズでおなじみ
オーライリーから出版されている
ディープラーニングの本格的な入門書でよくおススメされる
「ゼロからつくる Deep Learning」本
この本↑を毎日5ページずつコツコツこなすと
約2か月間で今年中に終了するので
来年のE資格試験までにこれで基礎力をつけることにしました。(^^)
ついつい私は何もないとだらけてしまうので(笑)
毎日5ページ終わった後の記録とまとめを書いていこうと思います。
と、まとめに入る前に…
やる気を出すためのコトバをシェアします!!(主に私のやる気を出すために 笑)
「折れてる炭治郎もスゴイんだというのを見せてやれ!!」
「折れていても! 俺が挫けることは絶対にない!!」
by 炭治郎
おなじみ私の大好きな「鬼滅の刃」から(笑)
炭治郎の名言です。
たとえ会社を辞める人々がたくさんいて挫けそうでも、私がスゴイんだというところを見せてやる!
私が挫けることはぜーったいにない!
うーむ、ちょっとテンション違いますかね。。笑
でも、炭治郎ありがとう! 何だかやる気が出てきた!
よし!! 今日も頑張るぞ~! お~!!
というコトで、今日も1つ、私はノルマをこなしますよ! 笑
ではでは、いい加減まとめに入ります。笑
その前に本の目次の紹介です。
ゼロつくディープラーニングは、下記↓の合計8章で構成されています。
本の目次
- 1章 Python入門
- 2章 パーセプトロン
- 3章 ニューラルネットワーク
- 4章 ニューラルネットワークの学習
- 5章 誤差伝播法
- 6章 学習に関するテクニック
- 7章 畳み込みニューラルネットワーク
- 8章 ディープラーニング
ちなみに…
ゼロつくディープラーニングの第1章はPython入門のセクション(20ページ分)なので、
とりあえず今回私は飛ばし、第2章からまとめています。
今回も第4章のつづきからでーす。
4.3 数値微分
勾配法では、勾配の情報を使って、進む方向を決める。
まずは「微分」とは何か理解しよう。
4.3.1 微分
そもそも「微分」とは??
ある瞬間の変化の量を表したもの。
数式にすると↓のようになる。
#数値微分してみる def numerical_diff(f, x): h = 1e-4# =0.0001のコト return (f(x+h) - f(x-h)) / (2 *h)
4.3.2 数値微分の例
まずはカンタンな二次関数↓を例にしてみる。
コレをPythonで実装をすると↓のようになる。
#y = 0.01x^2 + 0.1xを定義 # コレ↑をプロットする import numpy as np import matplotlib.pylab as plt x = np.arange(0.0, 20.0, 0.1)#0から20まで0.1刻みのx配列 y = function_1(x) plt.xlabel("x") plt.ylabel("f(x)") plt.plot(x, y) plt.show()
結果として出てくる図が↓になる。
この関数の微分をx=5とx=10のときでそれぞれ計算してみると…
# この関数の微分をx=5とx=10のときでそれぞれ計算してみる print(numerical_diff(function_1, 5))#答えは、0.1999999999990898 print(numerical_diff(function_1, 10))#答えは、0.2999999999986347