ディープラーニングについてディープにラーニング。

思いっきり、自分が学んだことのアウトプットしていきますが、何分初心者。もし何かアドバイス等頂けましたら幸いです!

極限と微分

今年の年始一発目も数学から入る。

今回は、極限と微分
とても、難しかった…
アウトプットを重点的にします。


極限とは

極限とは、関数における変数の値(Y)をある値に近づけるとき、極限まで、その値に近づける事。
例えば、Y=x+1の関数でYをどうしても1に近づけたいとする。
Xが1の時はYは2
Xが0の時はYは1

というように、極限まである関数の変数をある値に近づけたいとき、関数の値が限りなくちかづく値のこと。
数式で書くと、こんな感じになるらしい。

f:id:kawam0t0:20200101101053p:plain

微分

関数式 Y=f(x)において、xの微小な変化量ΔXとして、xをΔx分だけ変化させた際の値の書き方は、こうなる。

f:id:kawam0t0:20200101101335p:plain


この時、yの変化量を示そうとしたら、こうなる。

f:id:kawam0t0:20200101101524p:plain

じゃあ、Δx(xの変化量)とΔy(yの変化量)の割合の式は

f:id:kawam0t0:20200101101740p:plain


で、Δxの値を0に限りなく近づける極限を考えた場合、
さっき出てきたlimで表現され、新たな関数y=f'(x)として定義される。

f:id:kawam0t0:20200101102012p:plain

このf'(x)のことをf(x)の導関数という。
そして、f(x)からf'(x)を得ることをf(x)を微分するという。

こんな風に、表現する場合もある。

f:id:kawam0t0:20200101102347p:plain

後述するが、このfを前持ってきてもう少し見えやすくする公式もある。

この導関数によって、xにたいするyの変化の割合(勾配)を求めることができる。

ちょうどこんな図の様に。

f:id:kawam0t0:20200101103114p:plain

そして、とても重要なのが、
この接線の求められる式だ。

y=f'(a)x+f(a)-f'(a)a


がこの求められる式になる。
つまり、導関数にxを掛け算し、さらに関数を足したものをさらに導関数で引き算を行う。
ただし、あくまで、これは接線の公式だし導関数が導かれないと表せない。

色々な公式があるんだけど、
下の二次関数を使って、微分をしてみたほうが早い。

f:id:kawam0t0:20200101104024p:plain

①まずは公式を使って、それぞれにf(x)の関数を導関数に当てはめてみる。
微分の公式より、書く定数を前に出しす
③その前に出した定数と○○乗されている数字をかけていく
④3×2+4×1-5×0
⑤さらに公式からxの○○乗の○○を1ずつ引いていってさっきの式にはめ込む。
そうすると、導関数を求めることができて、勾配も計算できるようになった。

f:id:kawam0t0:20200101104054p:plain


ここからは描写の話になる。

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline


def my_func(x):
    return 3 * x **2 + 4 * x - 5

def my_func_diff(x):
    return 6 * x + 4

#-3~3の50個の数字
x = np.linspace(-3,3)
y = my_func(x)


a = 1
y_t = my_func_diff(a)*x + my_func(a)-my_func_diff(a) * a

plt.plot(x , y , label="Y")
plt.plot(x,y_t , label="X")

plt.legend()

f:id:kawam0t0:20200101104606p:plain

図で書いたほうが勾配の傾き具合もわかってGOOD。

ではまた。