題目:硬閾值(Hard Thresholding)函數解讀
1、硬閾值(Hard Thresholding)函數的符號
硬閾值(Hard Thresholding)並沒有軟閾值(Soft Thresholding)那麼常見,這可能是因爲硬閾值解決的問題是非凸的原因吧。硬閾值與軟閾值由同一篇文獻提出,硬閾值公式參見文獻【1】的式( 11):
第一次邂逅硬閾值(HardThresholding)是在文獻【2】中:
在查詢軟閾值(Soft Thresholding)的過程中,搜到了文獻【3】,進而看到了提到了文獻【4】:
文獻【4】中提到的Fig 1如圖所示:
硬閾值的符號到底表示什麼意思呢?以文獻【1】符號爲例,清晰一點來說就是這樣的:
這裏w是變量,λ是閾值。
2、硬閾值(HardThresholding)函數的作用
弄清楚了硬閾值(HardThresholding)的符號表示以後,接下來說一說它的作用。這裏主要是參考了軟閾值的推導過程,然後自己經過一番琢磨和推導而得。
硬閾值(HardThresholding)可以求解如下優化問題:
其中:
||X||0是求向是向量X的零範數,即向量X中非零元素的個數。根據範數的定義,可以將上面優化問題的目標函數拆開:
其中拆分項中符號|x|0的意思是
現在,我們可以通過求解N個獨立的形如函數
的優化問題,來求解這個問題。將f(x)進一步寫爲:
對於x≠0部分,我們知道它的最小值在x=b處取得,最小值爲λ。現在的問題是λ與b2到底誰更小?最小者將是函數f(x)的最小值。求解不等式b2>λ可得
此時最小值在x=0處取得;
求解不等式b2<λ可得
此時最小值在x=b處取得;
因此
與前面的硬閾值(Hard Thresholding)對比一下,發現了麼?若將上式中的b視爲變量,sqrt(λ)視爲閾值,上式即爲硬閾值(Hard Thresholding)的公式。
至此,我們可以得到優化問題
的解爲
注:該式爲硬閾值(Hard Thresholding)的矩陣形式,這裏的B是一個向量,應該是逐個元素分別執行硬閾值函數;。
3、硬閾值(HardThresholding)的變形
當優化問題變爲
因爲對目標函數乘一個常係數不影響極值點的獲得,所以可等價爲優化問題
此時的解爲。
4、硬閾值(Hard Thresholding)的MATLAB代碼
硬閾值(Hard Thresholding)的函數代碼可以寫成專門針對優化問題
MATLAB函數代碼如下(參考了文獻【5】倒數第2頁):
- function [ hard_thresh ] = hardthresholding( b,lambda )
- sel = (abs(b)>sqrt(lambda));
- hard_thresh = b.*sel;
- end
一定要注意:這種寫法是針對最開始的優化問題:
但我個人感覺更應該寫成這種通用形式:
- function [ x ] = hard( b,T )
- sel = (abs(b)>T);
- x = b.*sel;
- end
如此之後,若要解決優化問題
只需調用hard(B, sqrt(λ))即可;若要解決優化問題
只需調用hard(B, sqrt(2*λ))即可。
5、硬閾值(HardThresholding)測試代碼
硬閾值(Hard Thresholding)要解決的優化問題目標函數是非凸的,不太常見,手邊目前沒有其它函數求解這個問題,因此測試代碼只能測一下這個函數編寫的正確與否了:
- clear all;close all;clc;
- b = [-0.8487 -0.3349 0.5528 1.0391 -1.1176]';
- lambda = 0.5;
- x1=hardthresholding(b,lambda)
- x2=hard(b,sqrt(lambda))
- fprintf('\nError between hardthresholding and hard = %f\n',norm(x1-x2))
這裏就不給出輸出結果了。可以運行一下,從輸出結果來看,函數的功能是正確的。
另外,可以在matlab裏輸入以下命令看一個軟閾值的圖像:
x=-5:0.01:5;T=1;y=hard(x,T);plot(x,y);grid;
6、結束語
終於搞明白了硬閾值和軟閾值,在文獻【3】最後作者提到“哎,數學不好害死人啊,什麼時候才能達到大牛們的高度啊”,相信很多人會有同樣的感覺吧。但轉念一想,我們不可能把矩陣分析、數值分析、泛函分析、最優化、組合數學等(腦子裏就想到了這麼多)所有的數學基礎課內容都學完再去搞研究的,邊研究邊學習,哪兒不會了補哪兒纔是最正常的模式吧……
再說了,如果讓你單純的學數學基礎,你可能會感覺非常無聊,可能還會經常抱怨一句:學這些枯燥的數學有什麼用呢?
還是繼續前進吧,想信自己,路會越走越寬的……
7、參考文獻
【1】Donoho D L, JohnstoneJ M. Ideal spatial adaptation by wavelet shrinkage[J]. Biometrika, 1994, 81(3):425-455.
【2】Wright SJ, Nowak R D, Figueiredo M A T. Sparse reconstruction by separableapproximation[J]. IEEE Transactions on Signal Processing, 2009, 57(7):2479-2493.
【3】http://blog.sina.com.cn/s/blog_6d0e97bb01015vq3.html
【4】Elad M,Figueiredo M A T, Ma Y. On the Role of Sparse and Redundant Representations inImage Processing[J]. Proceedings of the IEEE, 2010, 98(6):972-982.
【5】http://www.docin.com/p-553314466.html