フリーランス 技術調査ブログ

フリーランス/エンジニア Ruby Python Nodejs Vuejs React Dockerなどの調査技術調査の備忘録

AIに必要な数学の勉強メモ③

線形変換

  • 線形変換により、ベクトルを変換します。
  • ベクトルからベクトルへの変換を線形変換という

基底とは

  • 座標系を作りだす一次独立なベクトルの集まり

ベクトル空間

  • 基底によって構成される座標系

標準基底

  • 直交座標系の各軸方向に向かう単位ベクトルからなるユークリッド空間の基底を言う
import numpy as np

a = np.array([2, 3])  # 変換前のベクトル
A = np.array([[1, -1],
              [2, -1]])
b = np.dot(A, a)      # 線形変換

固有値固有ベクトルの求め方

a = np.array([[3, 1],
              [2, 4]])

ev = np.linalg.eig(a)
print(ev[0])  # 固有値
print(ev[1])  # 固有ベクトル(単位ベクトル)

極限

  • 関数における変数の値をある値に近づけるとき、関数の値が限りなく近づく値

微分

関数y=f(x)において、$x$の微小な変化量を  \Delta x とすると、xを \Delta xだけ変化させた際のyの値は次のようになります。

導関数

 f'(x)= \displaystyle \lim_{h \to 0} \frac{f(x+h)-f(x)}{h}

微分

  • 1変数関数に対する微分

勾配

  • xに対するyの変化の割合

接線の求め方

  • 関数 f(x)=3x2+4x-5の  x=1 における接線
import numpy as np

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

def my_func_dif(x):  # 導関数
    return 6*x + 4

x = np.linspace(-3, 3)
y = my_func(x)

a = 1
y_t = my_func_dif(a)*x + my_func(a) - my_func_dif(a)*a  # x=1のときの接線