ディープラーニングG検定の勉強中 その16(ベクトル間の距離)

書籍「最短コースでわかるディープラーニングの数学」の内容に沿って勉強しています。

今回は、ベクトル間の距離について見ていきます。


2つのベクトルを式1のように(x軸に進んだ量, y軸に進んだ量)として成分表示したとき、

式1
3-3-3-1.png

の距離dは、式2が成り立ちます。

式2
3-3-3-2.png


それでは実際の値を代入して、距離dを算出してみます。

図1
3-3-3-3.png

図1のの距離d(青い点線の始点と終点の距離)は、図1の目盛りを「1」としたときに、式3となります。

式3
3-3-3-4.png

図1を見ると分かりますが、三平方の定理で斜辺を求めたのと同じ結果になっています。


図2
3-3-3-5.png

図2のの距離dは、式4となります。

式4
3-3-3-6.png


図3
3-3-3-7.png

図3のの距離dは、式5となります。

式5
3-3-3-8.png

図2と図3は一見直角三角形になっていないように見えますが、距離dの青い点線を斜辺と見ると、直角三角形ができているのが分かると思います。その「隠れた」直角三角形から、三平方の定理によって斜辺(距離d)を求めることができます。


ちなみに、式2が成り立つということは、多次元でも成り立つことになります。それを総和∑で表したのが式6となります。

式6
3-3-3-9.png


式5をPythonで確認してみます。

参考サイト
Qiita([Python]Numpyの参照、抽出、結合)

--------------------
import numpy as np
import math

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

d = math.sqrt((a[0] - b[0])**2 + (a[1] - b[1])**2)

print("d = " + str(d))

--------------------
出力結果
d = 3.605551275463989

google検索に√13と入力した計算結果です。

式7
3-3-3-10.png

同じ結果となりました。



進捗状況

最短コースでわかるディープラーニングの数学
89/328(27.1%)

ディープラーニングG検定の試験日まであと45日

ディープラーニングG検定の勉強中 その15(ベクトルの長さ(絶対値))

書籍「最短コースでわかるディープラーニングの数学」の内容に沿って勉強しています。

今回は、ベクトルの長さについて見ていきます。

ベクトルの長さは、正とした向きのベクトルをそのまま正反対にしても同じであるため、ベクトルaについて、
式1のように絶対値で表します。

式1
3-3-1-1.png

このとき、図1のように各ベクトルが直角三角形になっている場合には、三平方の定理がそのまま当てはまります。

図1
3-3-1-2.png

斜辺の長さの2乗は、他の2つの辺の長さのそれぞれ2乗と等しいので、式3が成立します。

式3
3-3-1-3.png

つまり、斜辺の長さは式4となるわけです。

式4
3-3-1-4.png


このことは、3次元でも成り立ちます。
図2のとき、

図2
3-3-1-5.png

△OABと、△OBCは、それぞれが直角三角形になっているので、その2つの三角形のそれぞれで三平方の定理が成り立ちます。

式5
3-3-1-6.png

式6
3-3-1-7.png

この式5と式6から、式7も成り立つことになります。

式7
3-3-1-8.png

図2により、式8となるため、

式8
3-3-1-10.png

3次元においても、式9のように三平方の定理が成り立つことになります。同様にして式10のように多次元でも三平方の定理が成り立ちます。

式9
3-3-1-11.png

式10
3-3-1-14.png

この式10を総和∑で書くと式11になります。

式11
3-3-1-15.png


実際に数値を入れて計算してみます。

図2の目盛りを「1」とすると、式12がOCの長さということになります。

式12
3-3-1-12.png


これをPythonでも確認してみます。
参考サイト
UNPySide(【Python】三平方の定理)

--------------------
import math

OA = 3
AB = 4
BC = 2
OB = math.sqrt(OA**2 + AB**2)
OC = math.sqrt(OA**2 + AB**2 + BC**2)

print("OC = " + str(OC))

--------------------
出力結果
OC = 5.385164807134504

式10の√29と一致するかどうか、googleの検索窓に入れて検索してみると、自動的に計算されて、式13となり、Pythonの出力結果と同じとなりました(小数点以下の桁数は違いますが、小数第11位までは一致しています)。

式13
3-3-1-13.png


出力結果をルート記号のままで出力できそうですが、いろいろなサイトを見ても、概数で表示していることがほとんどのようです。
そういうものなんでしょうか。