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

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

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

本日覚えたこと

  • 線形代数周りの処理で覚えた内容を記述
  • npと記載されている箇所はnumpyの関数を利用しているところです。
import numpy as np

スカラー

a = 1.5

 ベクトル

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

行列

c = np.array([[1, 2, 3], [4, 5, 6]])

3階のテンソルさん

d = np.array([[[0, 1, 2],
               [3, 4, 5],
               [6, 7, 8]],
              
              [[8, 7, 6],
               [5, 4, 3],
               [2, 1, 0]]])

a = np.array([2, 4, -5,-7])
b = np.array([1, 7, -2,-1])
print(np.dot(a,b)) # 内積
print(np.linalg.norm(a)) # L2ノルム
print(np.linalg.norm(a,1)) # L1ノルム

行列積

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


print(np.dot(a,b))

要素ごとの積

c = np.array([[0, 1, 2],
              [3, 4, 5],
              [6, 7, 8]]) 
d = np.array([[0, 2, 0],
              [2, 0, 2],
              [0, 2, 0]]) 
print(c*d)

転置: 行列の行と列を入れ替えます

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

print(np.dot(a, b.T))

行列式

a = np.array([
              [5,6],
              [7,8]])

print(np.linalg.det(a))

逆行列

  • 変数同士の相関関係を調べる回帰分析に使わる
a = np.array([
              [5,6],
              [7,8]])

print(np.linalg.inv(a))