向量和矩陣範數

2021-09-03 07:59:31 字數 1579 閱讀 5807

在剛入門機器學習中的低秩,稀疏模型時,被各種範數攪得一團糟,嚴重延緩了學習進度,經過一段時間的學習,現在將其完整的總結一下,希望遇到同樣麻煩的同學能有所幫助。。。

一、向量的範數

首先定義乙個向量為:a=[-5,6,8, -10]

1.1 向量的1範數

向量的1範數即:向量的各個元素的絕對值之和,上述向量a的1範數結果就是:29,matlab**實現為:norm(a,1);

1.2 向量的2範數

向量的2範數即:向量的每個元素的平方和再開平方根,上述a的2範數結果就是:15,matlab**實現為:norm(a,2);

1.3 向量的無窮範數

1.向量的負無窮範數即:向量的所有元素的絕對值中最小的:上述向量a的負無窮範數結果就是:5,matlab**實現為:norm(a,-inf); 

2..向量的正無窮範數即:向量的所有元素的絕對值中最大的:上述向量a的負無窮範數結果就是:10,matlab**實現為:norm(a,inf);

二、矩陣的範數

首先我們將介紹數學中矩陣的範數的情況,也就是無論哪個學科都統一的一種規定。。。 

例如矩陣a = [ -1 2 -3; 

4 -6 6]

2.1 矩陣的1範數

矩陣的1範數即:矩陣的每一列上的元素絕對值先求和,再從中取個最大的,(列和最大),上述矩陣a的1範數先得到[5,8,9],再取最大的最終結果就是:9,matlab**實現為:norm(a,1);

2.2 矩陣的2範數

矩陣的2範數即:矩陣ataata的最大特徵值開平方根,上述矩陣a的2範數得到的最終結果是:10.0623,matlab**實現為:norm(a,2);

2.3 矩陣的無窮範數

矩陣的1範數即:矩陣的每一行上的元素絕對值先求和,再從中取個最大的,(行和最大),上述矩陣a的1範數先得到[6;16],再取最大的最終結果就是:16,matlab**實現為:norm(a,inf);

接下來我們要介紹機器學習的低秩,稀疏等一些地方用到的範數,一般有核範數,l0範數,l1範數(有時很多人也叫1範數,這就讓初學者很容易混淆),l21範數(有時也叫2範數),f範數。。。上述範數都是為了解決實際問題中的困難而提出的新的範數定義,不同於前面的矩陣範數。

2.4 矩陣的核範數

矩陣的核範數即:矩陣的奇異值(將矩陣svd分解)之和,這個範數可以用來低秩表示(因為最小化核範數,相當於最小化矩陣的秩——低秩),上述矩陣a最終結果就是:10.9287, matlab**實現為:sum(svd(a))

2.5 矩陣的l0範數

矩陣的l0範數即:矩陣的非0元素的個數,通常用它來表示稀疏,l0範數越小0元素越多,也就越稀疏,上述矩陣a最終結果就是:6

2.6 矩陣的l1範數

矩陣的l1範數即:矩陣中的每個元素絕對值之和,它是l0範數的最優凸近似,因此它也可以表示稀疏,上述矩陣a最終結果就是:22,matlab**實現為:sum(sum(abs(a)))

2.7 矩陣的f範數

矩陣的f範數即:矩陣的各個元素平方之和再開平方根,它通常也叫做矩陣的l2範數,它的有點在它是乙個凸函式,可以求導求解,易於計算,上述矩陣a最終結果就是:10.0995,matlab**實現為:norm(a,『fro』)

2.8 矩陣的l21範數

向量範數和矩陣範數

以下分別列舉常用的向量範數和矩陣範數的定義。1 範數 2 範數 即所有向量元素絕對值中的最小值,matlab呼叫函式norm x,inf p 範數 即向量元素絕對值的p次方和的1 p次冪,matlab呼叫函式norm x,p 1 範數 列和範數,即所有矩陣列向量絕對值之和的最大值,matlab呼叫函...

向量和矩陣範數

參考 數值分析 朱曉臨 需要理解的是,範數也是一種函式,是一種度量向量和矩陣大小的函式。它常常被用來度量某個向量空間 或矩陣 中的每個向量的長度或大小。暫時沒時間寫 約定 a代表m n的矩陣,aij代表矩陣內的元素,i表示行,j表示列。並且有一例項矩陣a如下 矩陣的列範數定義如下 即將矩陣每列看做乙...

Matlab獲取向量範數和矩陣範數(norm函式)

matlab通過 norm函式 獲取向量範數和矩陣範數。1.語法 語法說明 引數n norm v 返回向量 v 的歐幾里德範數。此範數也稱為 2 範數 向量模或歐幾里德長度。v 輸入向量。資料型別 single double 複數支援 是 n norm v,p 返回廣義向量 p 範數。p 範數型別 ...