最近は便利になったもので、ブログでも比較的自由に数式を書くことができます。それなら、ということで、数学の復習なんかもブログにしてみようと思います。最初の話は、ノルムの話です。

ノルムの概念に近いものとしては、距離(distance)というのがあります。数学的にも非常に近い概念ですが、ノルムは距離の概念に内積の概念がくっついたもの、すなわち角度のような概念が付け加えられたものとして定義されます。このあたりの説明はまたどこかの機会に・・・

\(l_p\) ノルム

さてノルムの話に戻ります。まず、\(n\)次元のベクトル

\[ \textbf{x}=( x_1,x_2,\cdots ,x_n )^T \in R^n\]

を考えましょう。ノルムは、\(\| \textbf{x} \|\)といった記号で書かれます。実はノルムにはいろいろな種類があり、\(\| \textbf{x} \|_p\) といった具合に違いがわかるように記述します。最も有名なのは、\( \| \cdot \|_2 \) です。
\[
\| \textbf{x} \|_2 = \sqrt{\sum_{i=1}^n |x_i|^2}
\]
この\( \|\cdot \|_2 \) を\(l_2\) ノルムと呼びます。より一般的には、\(1\leq p < \infty\) に対して\(l_p\) ノルムは
\[
\| \textbf{x} \|_p = \left(\sum_{i=1}^n |x_i|^p\right)^{1/p}
\]
と定義されます[1]。さらに、\(p \rightarrow \infty \)の場合として、
\[
\| \textbf{x} \|_{\infty} = \mbox{max}_{i=1,\cdots, n} |x_i|
\]
が用いられます。[2, Chapter 2など]

ここで、\( \|\textbf{x}\|=1 \) となる等高線を描くと、以下のような感じになります。

より一般的には(数学的には)、以下の3つの要件を満たす尺度のことをノルムと呼びます。

独立性:
\[
\| \textbf{x} \| \geq 0, \forall \textbf{x}\in R^n;
\| \textbf{x} \| = 0 \Longleftrightarrow \textbf{x}=\textbf{0}
\]

斉次性:
\[
| \alpha \textbf{x} | = | \alpha | | \textbf{x} |, \forall \alpha \in R
\]

劣加法性:
\[
\| \textbf{x} + \textbf{y} \| \leq \| \textbf{x} \| + \| \textbf{y} \| , \forall \textbf{x},\textbf{y} \in R^n
\]

劣加法性は三角不等式ともいわれています。直感的には、先ほどのノルムの等高線(四角や丸)のいずれも外に向かって膨らんでいる、凸である、ということに対応します。むしろ、まず\(\textbf{x}\)だけ進んで次に\(\textbf{y}\)だけ進むとばらばらに進むより、頂点\(\textbf{x} + \textbf{y}\) に一気に進んだ方が近い、という三角形を思い浮かべたほうがわかりやすいですかね?

先ほど\(l_p\) については\(p\)は1以上の値を取っていました。実は\(p\)が1より小さいとこの劣加法性が崩れてしまい、ノルムの要件を満たさなくなります。すなわち、数学的にはノルムではないのです。逆に、ノルムの要件を満たす尺度であれば、四角や丸といった形の違いはあるものの、ベクトルの大きい、小さい、距離の遠い、近いといったことを測る分には機能的にほぼ同じとも言えます。これをノルムの同値定理といいます。

ノルム同値定理(Norm-Equivalence Theorem)

\( \|\cdot \| \) と\( \|\cdot \|’ \) を二つのノルムします。
この時ある定数\(c_2\geq c_1>0 \)   が存在して、
\[
c_1 \|\textbf{x}\| \leq \|\textbf{x}\|’ \leq c_2 \|\textbf{x}\|, \ \forall\textbf{x}\in R^n.
\]

これすなわち、先ほどの図を見たときに、ある定数倍を決めておけば、あるノルムは、ほかのノルムの間に入り込むということになります。
先ほどの等高線では、丸の\(l_2\) ノルムは何倍かした\(l_1\) や\(l_\infty\) にも囲われてしまう、といったイメージです。
包含関係はお互い様です。

データサイエンスでよく使われるノルムでないノルム、\(l_0\)

ノルムの同値定理は、距離やベクトルの大きさを測るにはほぼ同じ、という話でしたが、データサイエンスの立場からすると、それぞれのノルムはそれぞれの良さ・悪さがあります。その話題は次回以降のブログでご紹介するとして、ここでもう一つデータサイエンスでよく登場するノルムを紹介します。それは、\(l_0\) ノルムです。

先ほどの\(l_p\) ノルムの説明で\(p\)は1以上と言ったばかりなのに、\(p=0\) とは何事か!という感じがします。そうなんです、実は\(l_0\) ノルムは斉次性を満たさないので厳密にはノルムではありません。ただ、\( l_p, p \rightarrow 0 \) としたときの形に似ているため、\(l_0\) ノルムと慣習的に呼んでいるようです。\(l_0 \) ノルムはこんな形をしています。
\[
\| \textbf{x} \|_0 = \sum_{i=1}^n \delta (x_i),
\]
ここで\(\delta (x)=0\) if \(x =0 \) 、それ以外は \(\delta (x)=1\)です。

すなわち、\(l_0 \) ノルムは\(\textbf{x}\)の成分の中で0でない成分の個数を計算する、というノルムです。しかし、これがどうして\( l_p,p \rightarrow 0 \) なのか?細かい議論はWikipedia [3]に任せますが、まず、\(p\)が1未満用の修正版\(l_p\) ノルムの定義
\[
\| \textbf{x} \|_p = \sum_{i=1}^n |x_i|^p, 0<p<1
\]
に対して、\(0^0=0\) と思って\(p\rightarrow 0\) を考えるとこの式が出てきます。

さて、次回はこれらのノルムがデータサイエンスでどのように活躍するか見ていきましょう。(次回が「いつ」なのかは、未定です。)

[1] \(L_p\) と大文字で書くこともあります。

[2] Ortega, James M., and Werner C. Rheinboldt. “Iterative solution of nonlinear equations in several variables.” Academic Press (1970).

[3] Wikipedia “Lp空間” https://ja.wikipedia.org/wiki/Lp%E7%A9%BA%E9%96%93

No responses yet

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です