範數簡單理解

什麼是範數?

我們知道距離的定義是一個寬泛的概念,只要滿足非負、自反、三角不等式就可以稱之爲距離。範數是一種強化了的距離概念,它在定義上比距離多了一條數乘的運算法則。有時候爲了便於理解,我們可以把範數當作距離來理解。

在數學上,範數包括向量範數和矩陣範數,向量範數表徵向量空間中向量的大小,矩陣範數表徵矩陣引起變化的大小。一種非嚴密的解釋就是,對應向量範數,向量空間中的向量都是有大小的,這個大小如何度量,就是用範數來度量的,不同的範數都可以來度量這個大小,就好比米和尺都可以來度量遠近一樣;對於矩陣範數,學過線性代數,我們知道,通過運算AX=BAX=B,可以將向量X變化爲B,矩陣範數就是來度量這個變化大小的。

這裏簡單地介紹以下幾種向量範數的定義和含義 
1、 L-P範數 
與閔可夫斯基距離的定義一樣,L-P範數不是一個範數,而是一組範數,其定義如下: 




根據P 的變化,範數也有着不同的變化,一個經典的有關P範數的變化圖如下: 
這裏寫圖片描述 
上圖表示了p從無窮到0變化時,三維空間中到原點的距離(範數)爲1的點構成的圖形的變化情況。以常見的L-2範數(p=2)爲例,此時的範數也即歐氏距離,空間中到原點的歐氏距離爲1的點構成了一個球面。

實際上,在0p<1≤p<1時,Lp並不滿足三角不等式的性質,也就不是嚴格意義下的範數。以p=0.5,二維座標(1,4)、(4,1)、(1,9)爲例,。因此這裏的L-P範數只是一個概念上的寬泛說法。

2、L0範數 
當P=0時,也就是L0範數,由上面可知,L0範數並不是一個真正的範數,它主要被用來度量向量中非零元素的個數。用上面的L-P定義可以得到的L-0的定義爲: 




這裏就有點問題了,我們知道非零元素的零次方爲1,但零的零次方,非零數開零次方都是什麼鬼,很不好說明L0的意義,所以在通常情況下,大家都用的是: 



表示向量xx中非零元素的個數。

對於L0範數,其優化問題爲: 




在實際應用中,由於L0範數本身不容易有一個好的數學表示形式,給出上面問題的形式化表示是一個很難的問題,故被人認爲是一個NP難問題。所以在實際情況中,L0的最優問題會被放寬到L1或L2下的最優化。

3、L1範數 

L1範數是我們經常見到的一種範數,它的定義如下: 

                                                                    

表示向量xx中非零元素的絕對值之和。

L1範數有很多的名字,例如我們熟悉的曼哈頓距離、最小絕對誤差等。使用L1範數可以度量兩個向量間的差異,如絕對誤差和(Sum of Absolute Difference): 


 

對於L1範數,它的優化問題如下: 


min||x||1min||x||1 
s.t.Ax=bs.t.Ax=b 

由於L1範數的天然性質,對L1優化的解是一個稀疏解,因此L1範數也被叫做稀疏規則算子。通過L1可以實現特徵的稀疏,去掉一些沒有信息的特徵,例如在對用戶的電影愛好做分類的時候,用戶有100個特徵,可能只有十幾個特徵是對分類有用的,大部分特徵如身高體重等可能都是無用的,利用L1範數就可以過濾掉。

4、L2範數 
L2範數是我們最常見最常用的範數了,我們用的最多的度量距離歐氏距離就是一種L2範數,它的定義如下: 




表示向量元素的平方和再開平方。 
像L1範數一樣,L2也可以度量兩個向量間的差異,如平方差和(Sum of Squared Difference): 


對於L2範數,它的優化問題如下: 




L2範數通常會被用來做優化目標函數的正則化項,防止模型爲了迎合訓練集而過於複雜造成過擬合的情況,從而提高模型的泛化能力。

5、L-∞範數 
當P=時,也就是L-範數,它主要被用來度量向量元素的最大值。用上面的L-P定義可以得到的L的定義爲: 



與L0一樣,在通常情況下,大家都用的是: 


來表示L

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