ベクトルといわれても、べの字もイメージできないところから、少しだけ理解するための記事です。
救世主:このサイトさえ見ればイメージは持てると思う
#導入:ベクトルとは?
- 「向き」と「大きさ」を持った量のこと
└矢印を思い浮かべるといいかも - 数のまとまりのこと(プログラムで言うところの配列)
\pmatrix{3}
\pmatrix{5\\3}
\pmatrix{3\\2\\2} \\
##線形代数とは
ベクトル空間で様々な分析を行うこと
##なぜ機械学習にベクトル・線形代数が必要か
大量のデータを扱うために、多次元行列(テンソル)を使うことが多い
これを使うことで、プログラムがシンプル&高速にできる
また、平面の向きを求めたり、距離を計算することにベクトルが使われている
使いどころ:文章の類似度(word2vec) など
#ベクトルの計算方法
- ベクトルの足し算(成分の形や量が一致していなければ和は計算できない)
\pmatrix{2\\3}+\pmatrix{5\\3}=\pmatrix{7\\6}\
- ベクトルにマイナスをつけると、ベクトルの方向が逆になる
- ベクトルの倍率変更
ベクトルにベクトルでない数をかけると倍率変更ができる(この2とか-2とかのことをスカラーという)
2\pmatrix{2\\3} = \pmatrix{4\\6}\\
-2\pmatrix{2\\-3} = \pmatrix{-4\\6}
- ベクトルの大きさ
\sqrt{x^2+y^2} = \begin{Vmatrix} \pmatrix{x\\y} \end{Vmatrix}
- 矢印で表せるベクトルを幾何ベクトルという
次のベクトルは1次元,2次元,3次元を表すことができる
\pmatrix{3}
\pmatrix{5\\3}
\pmatrix{3\\2\\2}
…しかし次のようなベクトルもある
\pmatrix{3\\2\\2\\4}
\pmatrix{3\\2\\2\\1\\5}
#数ベクトル
改めて、ベクトルの定義:
単数または複数の数字をひとまとめにしたもの
(本質的には複数の数字を扱う学問であって、複数の数字を扱うことで方向や大きさを見出すことができた)
\pmatrix{3\\2\\2\\\vdots\\n} ≠ (3,2,2,…,n)
- n次の列ベクトルとn次の行ベクトルは基本的には別物
- 行と列を入れ替えることができる=転置(左上にtをつける)
\pmatrix{3\\2\\2\\\vdots\\n} = ^t(3,2,2,…,n)
#ベクトル空間
概念:
- ベクトルの集まり
- ベクトルの法則が成り立つ
補足:
- 軽量ベクトル空間:ベクトル+長さや角度等の概念(内積)
- 数学における空間:集合と演算ルールのこと
- 力を➡で書いたりするのもベクトル。大きさはあれど、長さはない。
#基底
##一次独立
- 平面上にあるすべてのベクトルは、その平面にあるベクトルのうち、最低2つでも表現できる
引用元:【ゆっくり解説】数学の見え方が変わる 「抽象と具体のベクトル数学 (線形代数)」【Voiceroid解説】
- 二つのベクトルよりも短いベクトルでも分数のスカラーを用いれば表現できる
- 一時独立にあるベクトルの組は**"基底(base)"**と呼ばれる
- ベクトル空間内の規定と呼べる組の数のことを**"次元(dimension)"**
→基底の数n個のベクトル空間 = n次元のベクトル空間
dim V = n n次元\\
dim V = 2 2次元
###標準基底
ベクトルの成分に1つだけ'1'を含み、それ以外の成分はすべて'0'の基底
軽量ベクトル空間で考えると、角度は90度で直行しており、ノルム(大きさ)が1の単位ベクトルになる
\boldsymbol{e}_1=\pmatrix{1\\0\\0\\\vdots\\0},
\boldsymbol{e}_2=\pmatrix{0\\1\\0\\\vdots\\0} ,
\boldsymbol{e}_3=\pmatrix{0\\0\\1\\\vdots\\0} ,
\boldsymbol{e}_n=\pmatrix{0\\0\\0\\\vdots\\1} ,
L1ノルム(マンハッタン距離): $ 3+4=7 $
L2ノルム(ユークリッド距離): $ \sqrt{3^2 + 4^2} = \sqrt{25} = 5 $
使いどころ:過学習を調整するときなど
##一時従属
- こういうのだと二つあっても平面を表現することはできない
#内積
成分同士のかけ算の総和で、内積は求められる。
例:
\begin{align}
a=(4,2), b=(3,6)\\
<a,b> = 4 \times 3 +2\times6\\
=24
\end{align}
図形的な求め方だと次のようになる
\boldsymbol{A・B} = \begin{Vmatrix} \boldsymbol{A}||\boldsymbol{B}\end{Vmatrix} cosθ\\
θ:角度
cos:θの値によって1~-1の間で変化する関数
AとBはノルムで、内積の値はスカラーになる
##コサイン類似度
この図形的な求め方で何ができるかというと、角度を求めることができる!
→ベクトルの特性が似てるかどうかがわかるようになる
\begin{align}
\begin{Vmatrix} \boldsymbol{A}\end{Vmatrix}\begin{Vmatrix} \boldsymbol{B}\end{Vmatrix} cosθ
= \pmatrix{a' b' c'} \pmatrix{a\\b\\c}\\=aa' +bb' + cc'
\end{align}
使いどころ:自然言語処理(word2vecなど)
(二つの値のベクトルを計算して、その値が大きければ二つのベクトルの値が類似。小さければ特徴が離れていることを示している)
##法線ベクトル
三次元の球体に接している平面は一点で接している。
接平面を決めるためには、その平面に垂直なベクトルがわかればよい。
この平面と直行しているベクトルのことを法線ベクトルという
#行列
##加算・減算
ベクトルの計算と同じ感じ
\pmatrix{2&1\\3&5}+\pmatrix{5&1\\3&7}=\pmatrix{7&2\\6&12}\
##乗算
\pmatrix{1& 2 & 3} \pmatrix{4\\5\\6}=1\times4+2\times5+3\times6
例:1行3列 3行1列
上記のように最小の行列の列数と二番目の行列の行数が一致していることがかけ算ができることの条件
##逆行列
行列計算に割り算はない→逆数に相当する計算はある
x\div\frac{3}{5}=x\times\underbrace{\frac{5}{3}}_{逆数}\\
\pmatrix{a&b\\c&d} の逆行列は\frac{1}{ad-bc}\pmatrix{d&-b\\-c&a}