ラビットチャレンジ【応用数学】~線形代数~
概要
線形代数に含まれるスカラー、ベクトル、行列などの知識は機械学習や深層学習にとって必要である。
この章では以下の項目を学んだ。
・スカラー、ベクトル、行列
・固有値分解
スカラー、ベクトル、行列
いわゆる普通の数であり四則演算が可能である。ベクトルを実数倍できる係数になれる。
ベクトル
「大きさ」、「向き」を持つ。矢印で図示される。
行列
スカラーを表にしたもの。ベクトルを並べたもの。
単位行列、逆行列、行列式
斜めが全て1で、それ以外の要素が0の行列。何をかけても、かけられた行列に戻る。
その行列を打ち消す(単位行列)にする行列
行列の特徴を表す指標の1つ。方程式などではなく、スカラーである。つまり、「1」「3」みたいな値をとる。
固有値・固有値ベクトル
ある行列Aに対して以下のような式が成り立つような、特殊なベクトルx→
と係数λがある
固有値分解
ある正方行列Aの固有値をλ1,λ2...、それに対応する固有ベクトルをv1→,v2→...を持ったとする。固有値を斜めに並べた行列*λ以外は0である
上記のような式が成り立って何が嬉しいのか?
予備知識
①At=AのときAを対称行列
②At = A-1のときAを対称行列
AAT = ATA = I
特異値分解(正方行列ではない行列の特異値)
特異値分解の使用方法
画像などでは特異値の成分が小さいところを消す(0近似)ことによって、画像内の成分が大きいところだけを表示することができる。
pythonでもベクトルの計算ができる
ノルム
import numpy as np
a = np.array([1, 2, 3])
n = np.linalg.norm(a)
print('norm=',n)
norm= 3.7416573867739413
import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
p = np.dot(a,b)
print('dot product=',p)
dot product= 32
import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
p = np.cross(a,b)
print('cross product=',p)
cross product= [-3 6 -3]