LoginSignup
3
0

More than 1 year has passed since last update.

データサイエンスのための線形代数 第7回 ドット積

Last updated at Posted at 2023-04-15

本記事は数学講座2.7 ドット積(内積)を勉強して投稿したメモです。詳細は元の素晴らしい講座のページをチェックしてください。

:sunny:[まとめ]

ドット積計算の基本則

\begin{array}{c|c}
    \hline
    \\
    \quad 交換法則\quad&\quad \boldsymbol{a}\cdot\boldsymbol{b}=\boldsymbol{b}\cdot\boldsymbol{a}\quad\\
    \quad 定数倍結合法則\quad&\quad (k\boldsymbol{a})\cdot\boldsymbol{b}=k(\boldsymbol{b}\cdot\boldsymbol{a})\quad\\
    \quad 分配法則\quad&\quad (\boldsymbol{a}+\boldsymbol{b})\cdot\boldsymbol{c}=\boldsymbol{a}\cdot\boldsymbol{c}+\boldsymbol{b}\cdot\boldsymbol{c}\quad\\
    \\
    \hline
\end{array}

ドット積計算の基本則で素晴らしい幾何的解説があります。

ユークリッド空間とベクトル空間

ユークリッド空間と比較して、ベクトル空間には長さ角度という2つの重要な概念が欠けています。
image.png

ユークリッド空間 $\mathcal{=}$ ベクトル空間$\mathcal{+}$長さと角度

長さ

自然基底の場合は、ベクトルの長さは以下のように計算できます。
image.png

角度

自然基底の場合は、ベクトル間の角度は以下のように計算できます。
image.png

cos\theta=\displaystyle\frac{a_1b_1+a_2b_2}{||\boldsymbol{a_{}}||||\boldsymbol{b_{}}||},\quad \boldsymbol{a},\boldsymbol{b}\ne\boldsymbol{0}

ドット積

上記の例によれば、長さと角度の計算をまとめと:

  • 長さ($\boldsymbol{b}$も同じ):$||\boldsymbol{a}||=\sqrt{a_1^2+a_2^2}=\sqrt{a_1a_1+a_2a_2}=\sqrt{\boldsymbol{a}\cdot\boldsymbol{a}}$
  • 角度($\boldsymbol{a}$と$\boldsymbol{b}$角度):$cos\theta=\displaystyle\frac{a_1b_1+a_2b_2}{||\boldsymbol{a_{}}||||\boldsymbol{b_{}}||}=\displaystyle\frac{\boldsymbol{a}\cdot\boldsymbol{b}}{||\boldsymbol{a_{}}||||\boldsymbol{b_{}}||}$

以下の演算方法は ドット積(内積) と呼びます:

\boldsymbol{a}\cdot\boldsymbol{b}=(\color{Magenta}{a_1},\color{Orange}{a_2})\cdot(\color{Magenta}{b_1},\color{Orange}{b_2})=\color{Magenta}{a_1b_1}+\color{Orange}{a_2b_2}

定義

更に$\mathcal{n}$次元に拡張すると、ドット積の定義は以下のようになります。

\boldsymbol{x}=\begin{pmatrix}x_1\\\vdots\\x_n\end{pmatrix} \boldsymbol{y}=\begin{pmatrix}y_1\\\vdots\\y_n\end{pmatrix}

ベクトル$\boldsymbol{x}$と$\boldsymbol{y}$のドット積dot product(内積inner product)の定義は:

\boldsymbol{x}\cdot\boldsymbol{y}=x_1y_1+\cdots+x_ny_n=\displaystyle\sum_{i=1}^{n}x_iy_i

補足:ベクトル$\boldsymbol{x}$と$\boldsymbol{y}$は同じベクトル空間内ですので、次元数が同じです。

  • 長さ:$||\boldsymbol{a}||=\sqrt{\boldsymbol{a}\cdot\boldsymbol{a}}$
  • 角度:$cos\theta=\displaystyle\frac{\boldsymbol{a}\cdot\boldsymbol{b}}{||\boldsymbol{a}||||\boldsymbol{b}||},\quad \boldsymbol{a},\boldsymbol{b}\ne\boldsymbol{0}$

これで、長さと角度は両方ともドット積で表せるので:

ユークリッド空間 $\mathcal{=}$ ベクトル空間$\mathcal{+}$ドット積

ドット積で長さと角度を計算するとに、一つの前提条件があります:ベクトル座標が自然基底における座標です。
もし非自然基底でしたら、どうなるかというと、以下のようになります:
image.png

ドット積計算の基本則

\begin{array}{c|c}
    \hline
    \\
    \quad 交換法則\quad&\quad \boldsymbol{a}\cdot\boldsymbol{b}=\boldsymbol{b}\cdot\boldsymbol{a}\quad\\
    \quad 定数倍結合法則\quad&\quad (k\boldsymbol{a})\cdot\boldsymbol{b}=k(\boldsymbol{b}\cdot\boldsymbol{a})\quad\\
    \quad 分配法則\quad&\quad (\boldsymbol{a}+\boldsymbol{b})\cdot\boldsymbol{c}=\boldsymbol{a}\cdot\boldsymbol{c}+\boldsymbol{b}\cdot\boldsymbol{c}\quad\\
    \\
    \hline
\end{array}

ドット積計算の基本則で素晴らしい幾何的解説があります。

ユークリッド距離とコサイン距離

  • 長さ(ユークリッド距離、直線距離):$||\boldsymbol{a}||=\sqrt{\boldsymbol{a}\cdot\boldsymbol{a}}$
  • 角度(コサイン距離):$cos\theta=\displaystyle\frac{\boldsymbol{a}\cdot\boldsymbol{b}}{||\boldsymbol{a}||||\boldsymbol{b}||},\quad \boldsymbol{a},\boldsymbol{b}\ne\boldsymbol{0}$

ユークリッド距離

以下はベクトル$\mathcal{a}$と$\mathcal{b}$のユークリッド距離です。
image.png

実際の応用事例は:
image.png

コサイン距離

二つベクトルの角度が$\mathcal{0}$の時に、関係性が一番近いです。お互いに垂直になっている時に、関係性が一番遠いです。

2.gif

  • 2本のベクトルの角度が小さいほど、関係性が密接である
  • 2本のベクトルが直交している場合、お互いに関係がなく、独立している

コサイン距離が物事の関連性を説明するため、非常に多くの応用があります。例えば、データマイニングにおいて、しばしばユーザーデータのコサイン距離を比較して、ユーザーの類似性を判断することがあります。

直交

ドット積(内積)が 0 だったら、2 ベクトルは互いに直交するといいます。

\boldsymbol{x}=\begin{pmatrix}x_1\\\vdots\\x_n\end{pmatrix}   
 \boldsymbol{y}=\begin{pmatrix}y_1\\\vdots\\y_n\end{pmatrix}

には、$\boldsymbol{x}\cdot\boldsymbol{y}=0 (ドット積)$であれば、互いに直交するといいます。

垂直

自然基底には、二つお互いに垂直になっているベクトルは以下の通りで:

image.png

二つベクトルのドット積が$\mathcal{0}$です。

\begin{pmatrix}3\\0\end{pmatrix}\cdot\begin{pmatrix}0\\2\end{pmatrix}=0

零ベクトル

ここで、注意して欲しいのは、2 ベクトルが直交するとき、必ずしもベクトル同士が直角に交わっているとは限らないということです。
その例が、零ベクトルを含む 2 ベクトルです。両者は、なす角こそ定義されませんが、内積が必ずゼロになるので互いに直交します。
零ベクトルは同じ次元の任意のベクトルと$\color{Salmon}{直交}$しています。それはドット積が必ず0になるためです。例えば:

\begin{pmatrix}0\\0\end{pmatrix}\cdot\begin{pmatrix}1\\2\end{pmatrix}=0

どちらのベクトルも零ベクトルでない場合、直交はこれら2つのベクトルが$\color{Salmon}{線形独立}$であることを示すこともできます。

参考情報

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0