向量與矩陣的範數(比較1-範數、2-範數、無窮範數、p-範數、L0範數 和 L1範數等)

原文鏈接:https://blog.csdn.net/zaishuiyifangxym/article/details/81673491

   閱讀文獻時,經常看到各種範數,機器學習中的稀疏模型等,也有各種範數,其名稱往往容易混淆,例如:L1範數也常稱爲“1-範數”,但又和真正的1-範數又有很大區別。下面將依次介紹各種範數。

1、向量的範數

  向量的1-範數: {\left\| X \right\|_1} = \sum\limits_{i = 1}^n {\left| {{x_i}} \right|} ; 各個元素的絕對值之和;

  向量的2-範數:{\left\| X \right\|_2} = {\left( {\sum\limits_{i = 1}^n {{x_i}^2} } \right)^{\frac{1}{2}}} = \sqrt {\sum\limits_{i = 1}^n {{x_i}^2} };每個元素的平方和再開平方根;

  向量的無窮範數:{\left\| X \right\|_\infty } = \mathop {\max }\limits_{1 \le i \le n} \left| {{x_i}} \right|

  p-範數:{\left\| X \right\|_p} = {\left( {\sum\limits_{i = 1}^n {{{\left| {{x_i}} \right|}^p}} } \right)^{\frac{1}{p}}},其中正整數p≥1,並且有\mathop {\lim }\limits_{p \to \infty } {\left\| X \right\|_p} = \mathop {\max }\limits_{1 \le i \le n} \left| {{x_i}} \right|

 

例:向量X=[2, 3, -5, -7] ,求向量的1-範數,2-範數和無窮範數。

向量的1-範數:各個元素的絕對值之和;{\left\| X \right\|_1}=2+3+5+7=17;

Matlab代碼:X=[2, 3, -5, -7]; XLfs1=norm(X,1);

 

向量的2-範數:每個元素的平方和再開平方根;{\left\| X \right\|_2} = {\left( {{\rm{2}} \times {\rm{2}} + {\rm{3}} \times {\rm{3}} + {\rm{5}} \times {\rm{5}} + {\rm{7}} \times {\rm{7}}} \right)^{\frac{1}{2}}} = 9.3274

Matlab代碼:X=[2, 3, -5, -7]; XLfs2=norm(X,2);

 

向量的無窮範數:

(1)正無窮範數:向量的所有元素的絕對值中最大的;即X的負無窮範數爲:7;

Matlab代碼:X=[2, 3, -5, -7]; XLfsz=norm(X,inf);

 

(2)負無窮範數:向量的所有元素的絕對值中最小的;即X的負無窮範數爲:2;

          Matlab代碼:X=[2, 3, -5, -7]; XLfsf=norm(X,-inf);

 

2、矩陣的範數

設:向量X \in {R^n},矩陣A \in {R^{n \times n}},例如矩陣A爲:

A=[2, 3, -5, -7;

   4, 6,  8, -4;

   6, -11, -3, 16];

(1)矩陣的1-範數(列模):{\left\| A \right\|_1} = \mathop {\max }\limits_{X \ne 0} \frac{{{{\left\| {AX} \right\|}_1}}}{{{{\left\| X \right\|}_1}}} = \mathop {\max }\limits_{1 \le j \le n} \sum\limits_{i = 1}^n {\left| {{a_{ij}}} \right|};矩陣的每一列上的元素絕對值先求和,再從中取個最大的,(列和最大);即矩陣A的1-範數爲:27

          Matlab代碼:fs1=norm(A,1);

 

(2)矩陣的2-範數(譜模):{\left\| A \right\|_2} = \mathop {\max }\limits_{X \ne 0} \frac{{{{\left\| {AX} \right\|}_2}}}{{{{\left\| X \right\|}_2}}} = \sqrt {{\lambda _{\max }}({A^T}A)} = \sqrt {\mathop {\max }\limits_{1 \le i \le n} \left| {{\lambda _i}} \right|},其中   {\lambda _i}{A^T}A的特徵值;矩陣的最大特徵值開平方根。

          Matlab代碼:fs2=norm(A,2);

 

(3)矩陣的無窮範數(行模):{\left\| A \right\|_\infty } = \mathop {\max }\limits_{X \ne 0} \frac{{{{\left\| {AX} \right\|}_\infty }}}{{{{\left\| X \right\|}_\infty }}} = \mathop {\max }\limits_{1 \le {\rm{i}} \le n} \sum\limits_{j = 1}^n {\left| {{a_{ij}}} \right|};矩陣的每一行上的元素絕對值先求和,再從中取個最大的,(行和最大)

         Matlab代碼:fswq=norm(A,inf);

 

  下面要介紹關於機器學習中稀疏表示等一些地方用到的範數,一般有核範數,L0範數,L1範數(有時很多人也叫1範數,這就讓初學者很容易混淆),L21範數(有時也叫2範數),F範數等,這些範數都是爲了解決實際問題中的困難而提出的新的範數定義,不同於前面矩陣的範數。

關於核範數,L0範數,L1範數等解釋見博客:

http://www.cnblogs.com/MengYan-LongYou/p/4050862.html

https://blog.csdn.net/u013066730/article/details/51145889

http://blog.sina.com.cn/s/blog_7103b28a0102w73g.html

 

(4)矩陣的核範數:矩陣的奇異值(將矩陣svd分解)之和,這個範數可以用來低秩表示(因爲最小化核範數,相當於最小化矩陣的秩——低秩);

         Matlab代碼:JZhfs=sum(svd(A));

 

(5)矩陣的L0範數:矩陣的非0元素的個數,通常用它來表示稀疏,L0範數越小0元素越多,也就越稀疏。

 

(6)矩陣的L1範數:矩陣中的每個元素絕對值之和,它是L0範數的最優凸近似,因此它也可以近似表示稀疏;

         Matlab代碼:JZL1fs=sum(sum(abs(A)));

 

(7)矩陣的F範數:矩陣的各個元素平方之和再開平方根,它通常也叫做矩陣的L2範數,它的有點在它是一個凸函數,可以求導求解,易於計算;

         Matlab代碼:JZFfs=norm(A,'fro');

 

(8)矩陣的L21範數:矩陣先以每一列爲單位,求每一列的F範數(也可認爲是向量的2範數),然後再將得到的結果求L1範數(也可認爲是向量的1範數),很容易看出它是介於L1和L2之間的一種範數

          Matlab代碼:JZL21fs=norm(A(:,1),2) + norm(A(:,2),2) + norm(A(:,3),2)++ norm(A(:,4),2);

 

Matlab代碼

  1. clear all;clc;
  2. %% 求向量的範數
  3. X=[2, 3, -5, -7]; %初始化向量X
  4. XLfs1=norm(X,1); %向量的1-範數
  5. XLfs2=norm(X,2); %向量的2-範數
  6. XLfsz=norm(X,inf); %向量的正無窮範數
  7. XLfsf=norm(X,-inf); %向量的負無窮範數
  8. %% 求矩陣的範數
  9. A=[2, 3, -5, -7;
  10. 4, 6, 8, -4;
  11. 6, -11, -3, 16]; %初始化矩陣A
  12. JZfs1=norm(A,1); %矩陣的1-範數
  13. JZfs2=norm(A,2); %矩陣的2-範數
  14. JZfswq=norm(A,inf); %矩陣的無窮範數
  15. JZhfs=sum(svd(A)); %矩陣的核範數
  16. JZL1fs=sum(sum(abs(A)));% 矩陣的L1範數
  17. JZFfs=norm(A,'fro'); %矩陣的F範數
  18. JZL21fs=norm(A(:,1),2) + norm(A(:,2),2) + norm(A(:,3),2)++ norm(A(:,4),2);% 矩陣的L21範數

 

參考資料

[1] https://blog.csdn.net/Michael__Corleone/article/details/75213123

[2] https://wenku.baidu.com/view/dc9e6e3753d380eb6294dd88d0d233d4b04e3f48.html

[3] http://www.cnblogs.com/MengYan-LongYou/p/4050862.html

[4] https://blog.csdn.net/u013066730/article/details/51145889

[5] http://blog.sina.com.cn/s/blog_7103b28a0102w73g.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章