おひとりさま現役パラレルワーカーフクコろぐ

これからの会社員は、複数の収入源をもとう! 会社に翻弄されずアナタらしく仕事ができる。 そんなパラレルワーカーを広めるフクコのブログです。

【文系プログラミング初心者deE資格】ゼロつくディープラーニング #11

f:id:fukuko-parallel-work:20211110213622j:plain

こんにちは!

現役パラレルワーカー フクコです。

f:id:fukuko-parallel-work:20210212204833p:plain



前回の記事↓に続き

www.fukuko-parallel-work.com




来年の2月の試験に向けてE資格試験勉強中のため


ゼロつくシリーズでおなじみ

オーライリーから出版されている

ディープラーニングの本格的な入門書でよくおススメされる

「ゼロからつくる Deep Learning」本


f:id:fukuko-parallel-work:20211029220008j:plain




この本↑を毎日5ページずつコツコツこなす

約2か月間で今年中に終了するので

来年のE資格試験までにこれで基礎力をつけることにしました。(^^)


ついつい私は何もないとだらけてしまうので(笑)

毎日5ページ終わった後の記録とまとめを書いていこうと思います。


と、まとめに入る前に…

やる気を出すためのコトバをシェアします!!(主に私のやる気を出すために 笑)



「折れてる炭治郎もスゴイんだというのを見せてやれ!!」
  「折れていても! 俺が挫けることは絶対にない!!」
 
by 炭治郎



おなじみ私の大好きな鬼滅の刃から(笑)

炭治郎の名言です。

たとえ会社を辞める人々がたくさんいて挫けそうでも、私がスゴイんだというところを見せてやる!

私が挫けることはぜーったいにない!

うーむ、ちょっとテンション違いますかね。。笑

でも、炭治郎ありがとう! 何だかやる気が出てきた! 

よし!! 今日も頑張るぞ~! お~!! 

というコトで、今日も1つ、私はノルマをこなしますよ! 笑


ではでは、いい加減まとめに入ります。笑



その前に本の目次の紹介です。

ゼロつくディープラーニングは、下記↓の合計8章で構成されています。

本の目次

  • 5章 誤差伝播法
  • 6章 学習に関するテクニック


ちなみに…

ゼロつくディープラーニング第1章はPython入門のセクション(20ページ分)なので、

とりあえず今回私は飛ばし、第2章からまとめています。

今回も第4章のつづきからでーす。


第4章 ニューラルネットワークの学習つづき


ニューラルネットワークの学習とは、

訓練データから最適な重みパラメータの値を自動で獲得するようにできるコト


4.3 数値微分


勾配法では、勾配の情報を使って、進む方向を決める

まずは微分」とは何か理解しよう。

4.3.1 微分


そもそも微分とは??

ある瞬間の変化の量を表したもの


数式にすると↓のようになる。


 \dfrac {df(x)}{dx} = {\displaystyle\lim_{h \to 0} \dfrac {f(x + h) - f(x)}{h}}



Pythonで数値微分の実装をすると↓のようになる。

#数値微分してみる
def numerical_diff(f, x):
    h = 1e-4# =0.0001のコト
    return (f(x+h) - f(x-h)) / (2 *h)
4.3.2 数値微分の例


まずはカンタンな二次関数↓を例にしてみる。


{ \displaystyle y = 0.01x^2} + 0.1x



コレを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()


結果として出てくる図が↓になる。


f:id:fukuko-parallel-work:20211110213143j:plain


この関数の微分をx=5とx=10のときでそれぞれ計算してみると…

# この関数の微分をx=5とx=10のときでそれぞれ計算してみる
print(numerical_diff(function_1, 5))#答えは、0.1999999999990898
print(numerical_diff(function_1, 10))#答えは、0.2999999999986347

今日のまとめ


ハイ、今日はここまで!!

今日は微分のおさらいだけだったのでいつもよりちょっとラクでした。(ほっ)

ということで、第4章はまだまだつづきます!

引き続き頑張りまっす。


最後まで読んでくださり、ありがとうございます!

フクコ


ディープラーニング入門書おススメ本