因項目上需要用到特征提取算法,突然想起早些時候看吳軍的數學之美里有講到SVD分解,當時就大致瀏覽了下,今天在這里用圖像作為例子加深下印象,顯示下svd特征提取、降維效果。
奇異值分解(Singular Value Decomposition)定理:設A為m*n階復矩陣,則存在m階酉陣U和n階酉陣V,使得:
A = U*S*V’
其中S=diag(σi,σ2,……,σr),σi>0 (i=1,…,r),r=rank(A)。
推論:設A為m*n階實矩陣,則存在m階正交陣U和n階正交陣V,使得
A = U*S*V’
其中S=diag(σi,σ2,……,σr),σi>0 (i=1,…,r),r=rank(A)。
算法流程:
1. 讀取圖像:
2. 對圖像進行svd分解,得到svd分解對應的圖像
其中,上圖第三幅代表分解后的特征值(這里用直方圖顯示其結果值),從圖中可以看出,特征值從大到小依次排列,特征值分解可以用在主成分分析(PCA)中,可以利用分解的矩陣恢復或者近似原圖像。比如,取前10特征值時恢復如下:
取前20個特征時時恢復如下:
取前40個特征時時恢復如下:
參考文獻:吳軍--數學之美
奇異值分解(SVD) --- 幾何意義 http://blog.chinaunix.net/uid-20761674-id-4040274.html