ぴよ猫ちゃんの機械学習

AI、人工知能、機械学習について色々記事にしています。

1変数関数の微分~0から学ぶ機械学習のための基本数学~

こんにちは。管理人のピヨ猫でーす。AIを作りたい。世に広めたい。応援よろ(^○^)

機械学習をする上で基本的な数学は頭に入れておいた方が良いので、復習がてら記事にすることにしました。と思ったら、復習どころか全然覚えてない(-_-;)
めげずに頑張ります。f:id:shibayu2002:20181208202619p:plain
本日は微分について記事に致します。

 

1.微分について凄く分かり易く説明してくれているお薦めサイト

記事に書こうかとも思いましたが、調べてみると先人が既に完璧な記事を書いて下さっていました。

www.slideshare.net


いやーすごい分かり易い!!f:id:shibayu2002:20190124232437p:plain

以上。本日の記事おしまい。
・・・ではつまらないので、python微分のおさらいをしてみました。
 

2.1変数関数をPythonで書いてみた

関数とはある値を与えると決まった計算結果を返してくれるもののことでした。
簡単のために今回は1変数関数を使います。
1変数関数とはその名の通り変数が一つの関数です。
例えば、y = 3x^2+2x+1は、xにある値を与えると 3x^2+2x+1の計算結果を返してくれる関数です。x=1であればy=6、x=0であればy=4となります。

これをPythonで表してみましょう。

import matplotlib.pyplot as plt
import numpy as np
import sympy as sym

x = np.arange(-5, 5, 0.1)

y = 3*x**2 + 2*x + 1
plt.plot(x, y)

 ◆ 結果

Python 1変数関数

 

3.1変数関数の微分Pythonで書いてみた

1変数関数の微分はシンプルです。

1変数関数の微分

つまり、x^3の微分は3x^2、x^2の微分は2x^1 (=2x)、xの微分はx^0 (=1)です。
 y = 3x^2+2x+1 であれば、y' = 6x+2となります。

Pythonで表すとこうなります。

import numpy as np
import sympy as sym

x = Symbol('x')

# y = 3x^2 + 2x + 1
y = 3*x**2 + 2*x + 1
# yの微分
sym.diff(y)

 

◆ 結果 
6*x + 2

Python 1次関数

4.色々な1変数関数とその微分

ここまでならPythonを使うまでもないですが、1変数関数といっても沢山あります。
高校のころに習った三角関数や指数関数も1変数関数です。
復習がてらPythonで書いてみました。

  • sin
    ソース:y = sin(x)
    結果:cos(x)

    cos(x)

  • cos
    ソース:y = cos(x)
    結果:-sin(x)

    -sin(x)

    他にも色々あります。
    後はQiitaさんにバトンタッチ(-_-;)

    qiita.com

 

5.ところで微分って機械学習で何に使うの?

色々な微分があることが分かりました。
筆者は全てを空では言えませんがQiitaさんを調べれば色々書いてあるし、Pythonを使うと簡単に微分が導けることも分かったので、簡単な微分なら調べ、思い出して何とか計算できそうです。

でところで微分って何に使うんでしたっけ??
f:id:shibayu2002:20190302113110p:plain

機械学習の記事なのに、機械学習微分を何に使うか記載していなかったので、最後に記載します(-_-;)
実は1節で紹介した神記事「機械学習のための数学のおさらい」に記載されていますが、大事なのでここだけは記事から引用させてもらい記載します。

  • 機械学習とはデータから関数、y=f(x, b)を作る仕事
  • 目的のデータに『良く合う(適合する)』関数を作りたい
  • 関数の形はパラメータbで来ます
  • bによる関数fの適合度関数E=h(b)とする
  • 関数hの最大(極大)値・最少(極小)値を求めるのに、微分法が使える。
  • なので、微分機械学習に必要となる。


うーん。わかったようで、まだ自分が理解していないかも。

f:id:shibayu2002:20190226163306p:plainf:id:shibayu2002:20190226163250p:plain

今度は適合関数の最大、最少値の導き方を記事にしてみたいと思います。


◆ 推薦図書

詳解 ディープラーニング TensorFlow・Kerasによる時系列データ処理 [ 巣籠 悠輔 ]

価格:3,672円
(2018/11/25 22:43時点)
感想(0件)

【送料無料】 機械学習 データを読み解くアルゴリズムの技法 / 竹村彰通 【本】

価格:6,696円
(2019/3/23 23:16時点)
感想(0件)