はじめに
ノルムという単語は機械学習を触っているとそこそこの頻度で目にする。
正直な話、過学習防止用の何某という認識しかなかった。
あるとき、機械学習関連の書籍を読んでいると、ノルムの定義について以下のように書かれていた。
関数 $\begin{Vmatrix}·\end{Vmatrix}:ℝ^d \rightarrow ℝ$ が3つの性質
- 斉次性 :任意の$\alpha\inℝ,x\inℝ^d$に対して、$\begin{Vmatrix}\alpha x\end{Vmatrix} =|\alpha| \begin{Vmatrix}x\end{Vmatrix}$
- 劣加法性 :$x,y\inℝ^d$ に対し、 $\begin{Vmatrix}xy\end{Vmatrix}\leq \begin{Vmatrix}x\end{Vmatrix} + \begin{Vmatrix}y\end{Vmatrix}$
- 独立性 :$x=0 \Rightarrow \begin{Vmatrix}x\end{Vmatrix} = 0$
を満たす時、 $\begin{Vmatrix}·\end{Vmatrix}$ はノルムである。
よくわからない。脳が理解を拒んでいる。
とはいえ、ハイパーパラメータに何度も突っ込んでいるノルムを全く知らないのは問題だと思い、
理解できるサイズまで分解してみた。
ノルムの定義を分解する。
はじめに、$\begin{Vmatrix}·\end{Vmatrix}:ℝ^d \rightarrow ℝ$ を分解する。
-
$\begin{Vmatrix}·\end{Vmatrix}$
ノルム自体を意味する。 -
$ℝ^d$
d次元実ベクトル空間(d次元の実数で構成されたベクトル) -
$ℝ^d \rightarrow ℝ$
d次元実ベクトルから実数へ
つまり、関数 $\begin{Vmatrix}·\end{Vmatrix}:ℝ^d \rightarrow ℝ$ は
ノルムはd次元ベクトルから実数へ計算する関数である
と言い換えられる。
つまり、d次元ベクトルを実数へ変換するような関数のことをノルムと言える
(※上記の三性質を満たす場合)
次に上記の三性質について分解する。
斉次性
せいじせいと読むらしい。
-
$\begin{Vmatrix}\alpha x\end{Vmatrix}$
実数$\alpha$、ベクトルxのノルム表現 -
$|\alpha|$
実数$\alpha$の絶対値表現 -
$|\alpha|$$\begin{Vmatrix}x\end{Vmatrix}$
ベクトルxのノルムの$|\alpha|$倍
つまり
ベクトルxの実数倍のノルムは、実数の絶対値×ベクトルxのノルムとすることが出来る。
劣加法性
れつかほうせいと読むらしい。
-
$\begin{Vmatrix}x + y\end{Vmatrix}$
ベクトルx + ベクトルy のノルム表現 -
$A \leq B$
AはB以下である。 -
$\begin{Vmatrix}x\end{Vmatrix} + \begin{Vmatrix}y\end{Vmatrix}$
つまり、ベクトルx + ベクトルyのノルムは、
ベクトルxのノルム + ベクトルyのノルム以下の値になる。
独立性
どくりつせいと読むらしい。()
よくよく見ると難しく書かれていない、
ベクトルxが0の時、xのノルムは0になる
まとめ
つまりノルムとは、
上記3性質が当てはまるd次元ベクトルから実数へ計算する関数
と自分は理解した。
小難しく書かれていたが、細かく分解することで理解できた。ような気になれた。
※間違っている箇所があればご指摘いただけると幸いです。