「ロマンティック数学ナイトボーイズ」の発表をするにあたって、距離空間の記事を書こうと思います。
距離ってなによ?
GLSLやレイマーチングなど、3D数学をされていると、図形の形を表す数式の方程式だと思います。
だた、今回は、数学における距離を話そうと思います。
数学がおける距離とは
集合 $X$ 上で定義された $2$ 変数の実数値関数 $d: X × X → R$が、
任意の $x,y,z ∈ X$ に対して
- 非負性(正定値性) : $d(x, y) ≥ 0$
- $x = y \Longleftrightarrow d(x, y) = 0$
- 対称性 : $d(x, y) = d(y, x)$
- 三角不等式 : $d(x, y) + d(y, z) ≥ d(x, z)$
を満たすとき、$d$ は $X$ 上の距離関数であるといい、対 $(X, d)$ を距離空間と呼ぶ。
何のことかわかりませんね?
これって所謂、データの大きさを決めているんですよね。
例えば、
ベクトル $(1,2,3)$ と $(4,5,6)$ を比べてみましょう。
この二つのベクトルの数値の決め方は、いくつかあるわけです。
ユークリッド距離で計る.
$\sqrt{1^2+2^2+3^2} = \sqrt{14}$ と $\sqrt{4^2+5^2+6^2} = \sqrt{77}$ですね。
ハミング距離で計る
$ |1|+|2|+|3| = 6$ と $|4|+|5|+|6|=15$ ですね。
この時の、大小関係は、どっちの距離で測っても大小関係は変わりませんが、扱う対象によって大きさや基準が変わる可能あります。
有名な距離
ハミング距離
$d(x_1,x_2):=n−\sum \delta(x_1i,x_2i) $
詳しくはここ
マンハッタン距離
$d(x_1,x_2):=\sum|x_{1i}−x_{2i}| $
詳しくはここ
チェビシェフ距離
$d(x_1,x_2):=\max(|x_{1i}−x_{2i}|)$
詳しくはここ
距離の拡張でノルムという概念がある.
ノルム の定義
$K$ を実数体 $R$ または複素数体 $C$(あるいは絶対値を備えた任意の位相体)とし、$K$ 上のベクトル空間 $V$ を考える。
このとき任意の $a ∈ K$ と任意の $u, v ∈V$ に対して、
- 独立性: $ ‖v‖ = 0 ⇔ v = 0 $
- 斉次性: $ ‖av‖ = |a|‖v‖ $
- 劣加法性: $ ‖u + v‖ ≤ ‖u‖ + ‖v‖ $
を満たすような関数 $ ‖•‖: V → R; x → ‖x‖ $ を V のノルムと呼ぶ。
ノルムって結局
距離の特徴をまとめ直したものです。
有名なノルム
$L^2$ノルム
$ |f|_{{p,X}}:=\left(\int _{X}|f(x)|^{2},{\mathrm d}x\right)^{{1/2}} $
ちなみに
この距離とかノルムのから線形代数の話を大学では、関数解析という講義で習います。
早い話これってIT業界でなんの役にたつの?
統計処理
マハラノビス距離という統計処理の距離があります。
$d({\vec{x}},{\vec{y}})={\sqrt{\sum_{{i=1}}^{p}{(x_{i}-y_{i})^{2}\over\sigma_{i}^{2}}}}$
機械学習
ニューラルネットワークの普遍性定理の証明に、ハーン・バナッハの定理、リースの表現定理、フーリエ変換など関数解析の定理が使われいるそう。
ニューラルネットワークの根底の理論は関数解析の土台の元に形成されています。
参考:ニューラルネットワークが任意の関数を表現できることの視覚的証明
論文:Approximation by Superpositions of a Sigmoidal Function
以上で、理論的な内容は終わろうと思います。