【JDLA E資格】Lpノルム・距離関数

#はじめに
JDLA E資格試験の$L^p$ノルム・距離関数の問題を解説した記事です。
なお、この分野の問題は計算問題というより、距離の式が出されてその名前を答える、あるいは、距離の名前が出されてその式を答える、という選択問題が多いです。
よって、__距離の名前と式の対応関係を覚えれば十分__です。

[E資格試験に関する私の投稿記事リスト][link-1]
[link-1]:https://qiita.com/fridericusgauss/items/5a97f2645cdcefe15ce0

###目次
1. [Lpノルム](#Lpノルム)
2. [距離関数](#距離関数)
3. [機械学習での応用](#機械学習での応用)

###数学表記
bold体の変数は、ベクトルや行列を表します。
ベクトルは列ベクトル$\boldsymbol{x}=(x_1,x_2,\cdots,x_N)^{\mathrm{T}}$です。
$\mathbb{R}$は実数集合です。


#Lpノルム
$\boldsymbol{x}\in \mathbb{R}^N$の$L^p$ノルムは式(1)で表されます。

```math
\|\boldsymbol{x}\|_p=\left(\sum_{n=1}^{N}|x_{n}|^p\right)^{1/p} 
\tag{1}
```

$p=1$のときを__$L^1$ノルム、あるいはマンハッタンノルム__と呼びます。
$p=2$のときを__$L^2$ノルム、あるいはユークリッドノルム__と呼びます。
$p \rightarrow \infty$のときを__$L^{\infty}$ノルム、あるいはチェビシェフノルム__と呼びます。

特に、$L^{\infty}$ノルムは式(2)で表されます。

```math
\|\boldsymbol{x}\|_{\infty}=\max_{n} |x_n|
\tag{2}
```

つまり、$L^{\infty}$ノルムは、$\boldsymbol{x}$の要素の中での最大値となります。

$L^p$ノルムの単位円については、下記をご覧ください。

[Lpノルムの単位円][link-2]
[link-2]:https://ja.m.wikipedia.org/wiki/Lp%E7%A9%BA%E9%96%93


#距離関数
###距離関数の定義
距離とは__ある空間内に存在する二つの点の離れ具合を示す尺度__です。

一般の距離関数については、E資格では問われませんが、念のため示します。
ある空間$X$上の任意の二つの位置ベクトル$\boldsymbol{x},\boldsymbol{y} \in X$の間の離れ具合を表す関数$d: X\times X \rightarrow \mathbb{R}$が下記の条件（距離の公理）を満たすとき、$d$を__$X$上の距離関数__、あるいは単に__距離__と呼びます。

* $d(\boldsymbol{x}, \boldsymbol{y}) \ge 0$：非負性（正定値性）
* $\boldsymbol{x} = \boldsymbol{y} \Leftrightarrow d(\boldsymbol{x}, \boldsymbol{y}) = 0$：非退化性
* $d(\boldsymbol{x}, \boldsymbol{y}) = d(\boldsymbol{y}, \boldsymbol{x})$：対称性
* $d(\boldsymbol{x}, \boldsymbol{y}) + d(\boldsymbol{y}, \boldsymbol{z}) \ge d(\boldsymbol{x}, \boldsymbol{z})$：三角不等式

ただし、任意の$\boldsymbol{x},\boldsymbol{y},\boldsymbol{z} \in X$です。


###距離の例
E資格で問われる距離は下記の通りです。
いずれも$\boldsymbol{x},\boldsymbol{y} \in \mathbb{R}^N$の間の距離とします。

####【Lpノルムの距離】
$L^p$ノルムの距離$d$は式(3)で表されます。

```math
d(\boldsymbol{x}, \boldsymbol{y}) =\|\boldsymbol{x}-\boldsymbol{y} \|_p
\tag{3}
```

$p=1$のときを__$L^1$距離、あるいはマンハッタン距離__と呼びます。
$p=2$のときを__$L^2$距離、あるいはユークリッド距離__と呼びます。
$p \rightarrow \infty$のときを__$L^{\infty}$距離、あるいはチェビシェフ距離__と呼びます。
特に、ユークリッド距離は、式(4)で表せます。
$$d(\boldsymbol{x}, \boldsymbol{y}) =\sqrt{(\boldsymbol{x}-\boldsymbol{y})^{\mathrm{T}}(\boldsymbol{x}-\boldsymbol{y})}\tag{4}$$

####【マハラノビス距離】
マハラノビス距離$d$は式(5)で表されます。
$$d(\boldsymbol{x}, \boldsymbol{y}) =\sqrt{(\boldsymbol{x}-\boldsymbol{y})^{\mathrm{T}} \boldsymbol{\Sigma}^{-1}(\boldsymbol{x}-\boldsymbol{y})}\tag{5}$$
ただし、$\boldsymbol{\Sigma}\in \mathbb{R}^{N\times N}$はデータ集合$D$の共分散行列です。

マハラノビス距離（式(5)）は、ユークリッド距離（式(4)）と似ていますが、異なる点があります。
ある基準点からのユークリッド距離の等高線は、等方的な同心円状に拡がります。
一方、__ある基準点からのマハラノビス距離の等高線は、異方な楕円状に拡がります__。

また、ユークリッド距離は完全に二つの点だけで一意に決定されることに対して、マハラノビス距離は二つの点に加えて、データ集合$D$の分布にも依存する、統計的な距離です。
つまり、__データ集合$D$の分布に沿って、楕円形状が定まり、その楕円状の等高線に従って距離を測るのがマハラノビス距離__です。


マハラノビス距離の具体的な形状については、下記をご覧ください。
[マハラノビス距離の具体的な等高線][link-3]
[link-3]:https://datachemeng.com/use_of_distance/



#機械学習での応用
上記のノルムや距離は機械学習において、主に__正則化__や__誤差関数__などで使用されます。
なお、Kullback–Leiblerダイバージェンスなどで知られる__ダイバージェンス__は、二つの確率分布間の差異を表す尺度であるため、距離と類似していますが、距離の公理を満たさないため、厳密には距離ではありません。

ダイバージェンスについては下記記事で解説しています。
[情報エントロピー][link-4]
[link-4]:https://qiita.com/fridericusgauss/items/0716ffd297c4f7b2dca7

#おわりに
JDLA E資格試験の$L^p$ノルム・距離関数の問題を解説しました。

[E資格試験に関する私の投稿記事リスト][link-1]