范數(Norm)是一種關於向量的函數,是向量“長度”概念及其推廣。在線性代數、泛函分析及相關的數學領域,可用范數來度量一個向量的“長度”。在中學里我們學過一個向量的模長(長度)是向量中各元素平方和的平方根,比如向量(3,4)的模長就是5,這里模長其實是向量(3,4)的一種范數——L2范數,向量的范數除了L2范數外,還有其他定義,如L0范數、L1范數和L∞范數,下面將一一介紹上述提及的這幾個范數概念。
1 L0范數
若向量X = (x1, x2, …, xn),則向量X的L0范數為
\[{\left\| {\bf{x}} \right\|_0} = {\bf{x}}中所有非零元素個數 \]
若向量A = (0, 3, 6),向量A中有1個元素為0,2個非零元素 (3和6),則A對應L0范數為
\[{\left\| {\bf{A}} \right\|_0} = {\rm{2}} \]
在機器學習中壓縮感知(compressive sensing)領域,很多時候希望最小化目標向量的 L0范數。但L0范數的最優化在數學上被認為是個NP-hard問題,即求解很復雜,所以許多壓縮感知模型是將最小化目標向量的 L0范數轉化為最小化目標向量的 L1范數。
2 L1范數
若向量X = (x1, x2, …, xn),則向量X的L1范數為
\[\begin{array}{l} {\left\| {\bf{x}} \right\|_1} = \left| {{x_1}} \right| + \left| {{x_2}} \right| + \cdots \left| {{x_n}} \right| \\ \quad \;\;{\rm{ = }}\sum\limits_{i = 1}^n {\left| {{x_i}} \right|} \\ \end{array}\]
若向量A = (0, 3, 6),則A對應L1范數為
\[{\left\| {\bf{A}} \right\|_1} = \left| {\rm{0}} \right|{\rm{ + }}\left| {\rm{3}} \right|{\rm{ + }}\left| {\rm{6}} \right|{\rm{ = 3 + 6 = 9}} \]
最小化目標向量的 L1范數求解比最小化目標向量的 L0范數容易些,可通過最優化算法得到對應的可行解。但L1范數有一個問題,就是L1范數的導數不易求,所以許多機器學習問題中遇到 L1范數最小化問題會轉為L2范數最小化問題。
3 L2范數
若向量X = (x1, x2, …, xn),則向量X的L2范數為
\[ \begin{array}{l} {\left\| {\bf{x}} \right\|_2} = \sqrt {{{\left| {{x_1}} \right|}^{\rm{2}}}{\rm{ + }}{{\left| {{x_{\rm{2}}}} \right|}^{\rm{2}}}{\rm{ + }} \cdots {\rm{ + }}{{\left| {{x_n}} \right|}^{\rm{2}}}} \\ \quad \;\;{\rm{ = }}\sqrt {\sum\limits_{i = 1}^n {{{\left| {{x_i}} \right|}^2}} } \\ \end{array} \]
若向量A = (2, 3, 6),則A對應L2范數為
\[{\left\| {\bf{A}} \right\|_2} = \sqrt {{2^2} + {3^2} + {6^2}} = \sqrt {4 + 9 + 36} = \sqrt {49} = 7 \]
4 L∞范數
若向量X = (x1, x2, …, xn),則向量X的L∞范數為
\[{\left\| {\bf{x}} \right\|_\infty } = \max \left( {\left| {{x_1}} \right|\left| {{x_{\rm{2}}}} \right| \cdots \left| {{x_n}} \right|} \right) \]
若向量A = (2, 3, 6),則A對應L∞范數為
\[{\left\| {\bf{A}} \right\|_\infty } = \max \left( {2,3,6} \right) = 6 \]
5 Lp范數
Lp范數實際上將L1范數、L2范數和L∞范數統一到一個框架體系中。
若向量X = (x1, x2, …, xn),則向量X的Lp范數為
\[ \begin{array}{l} {\left\| {\bf{x}} \right\|_p} = \sqrt[p]{{{{\left| {{x_1}} \right|}^p}{\rm{ + }}{{\left| {{x_{\rm{2}}}} \right|}^p}{\rm{ + }} \cdots {\rm{ + }}{{\left| {{x_n}} \right|}^p}}} \\ \quad \;\;{\rm{ = }}\sqrt[p]{{\sum\limits_{i = 1}^n {{{\left| {{x_i}} \right|}^p}} }} \\ \end{array} \]
關於Lp范數的幾何解釋可以用單位圓來說明。單位圓是無窮個向量終點組成的集合,這些向量必須滿足Lp范數為1且起點為原點。
對於L1范數,它在R2空間中的單位圓是正方形。
對於L2范數,它在R2空間中的單位圓是圓形。
對於L∞范數,它是R2空間中的單位圓也是一個正方形。
對於任何p范數,它是一個超橢圓(具有全等軸)。下面圖為p取不同數值,Lp范數對應的單位圓。
圖1 不同p對應的單位圓