[轉]軟閾值(Soft Thresholding)函數解讀


1、軟閾值(Soft Thresholding)函數的符號

        軟閾值(Soft Thresholding)目前非常常見,文獻【1】【2】最早提出了這個概念。軟閾值公式的表達方式歸納起來常見的有三種,以下是各文獻中的軟閾值定義符號:

文獻【1】式(12):

 

文獻【2】:

文獻【3】:

文獻【4】式(8):

文獻【5】式(1.5):

文獻【6】式(12)注釋:

文獻【7】:

        其中文獻【1】【2】【3】【5】是第一種,也是最常見的一種;文獻【4】【6】是第二種,個人認為可讀性比第一種要好;文獻【7】是第三種,個人認為可讀性最好。當然,它們表達的意思是一樣的(無論是sgn(x)還是sign(x)都是符號函數,即當x>0時為1,當x<0時為-1):

        以文獻【1】符號為例解釋第一種表示方式。這里w是變量,λ是閾值(非負值),符號(|w|-λ)+表示當(|w|-λ)>0時則等於|w|-λ,當(|w|-λ)<0時則等於0。那么分三種情況來討論:第一種情況是w>λ>0,則sgn(w)=1,|w|=w,(|w|-λ)一定大於0,(|w|-λ)+=|w|-λ,所以ηS(w,λ)=w-λ;第二種情況是w<-λ<0,則sgn(w)=-1,|w|=-w,(|w|-λ)也一定大於0,(|w|-λ)+=|w|-λ,所以ηS(w,λ)=-1*(-w-λ)= w+λ;第三種情況是|w|<λ,此時(|w|-λ)一定小於0,則(|w|-λ)+=0,所以ηS(w,λ)=0。因此

 

        以文獻【6】符號為例解釋第二種表示方式。這種表示方式中符號max{|u|-a,0}的作用與第一種表示方式中的符號(|w|-λ)+的作用一樣,即當(|u|-a)>0時max{|u|-a,0}=(|u|-a),當(|u|-a)<0時max{|u|-a,0}=0,知道了這一點剩下的分析與第一種表示方式相同。

        綜上,三種表示方式均是一致的。

2、軟閾值(Soft Thresholding)函數的作用

        弄清楚了軟閾值(Soft Thresholding)的符號表示以后,接下來說一說它的作用。以下內容主要參考了文獻【7】,這是一個非常棒的PPT!!!

        軟閾值(SoftThresholding)可以求解如下優化問題:

 

其中:

        根據范數的定義,可以將上面優化問題的目標函數拆開:

        也就是說,我們可以通過求解N個獨立的形如函數

的優化問題,來求解這個問題。由中學時代學過的求極值方法知道,可以求函數f(x)導數:

        這里要解釋一下變量x絕對值的導數,當x>0時,|x|=x,因此其導數等於1;當x<0時,|x|=-x,因此其導數等於-1;綜合起來,x絕對值的導數等於sgn(x)。令函數f(x)導數等於0,得:

        這個結果等號兩端都有變量x,需要再化簡一下。下面分三種情況討論:

(1)當b>λ/2時

        假設x<0,則sgn(x)=-1,所以x=b+λ/2>0,與假設x<0矛盾;

        假設x>0,則sgn(x)=1,所以x=b-λ/2>0,成立;

        所以此時在x=b-λ/2>0處取得極小值:

 

        即此時極小值小於f(0),而當x<0時

        即當x<0時函數f(x)為單調降函數(對任意△x<0,f(0)<f(△x))。因此,函數在x=b-λ/2>0處取得最小值。

(2)當b<-λ/2時

        假設x<0,則sgn(x)=-1,所以x=b+λ/2<0,成立;

        假設x>0,則sgn(x)=1,所以x=b-λ/2<0,與假設x<0矛盾;

        所以此時在x=b+λ/2<0處取得極小值:

        即此時極小值小於f(0),而當x>0時

        即當x>0時函數f(x)為單調升函數(對任意△x>0,f(△x)>f(0))。因此,函數在x=b+λ/2<0處取得最小值。

(3)當-λ/2<b<λ/2時(即|b|<λ/2時)

        假設x<0,則sgn(x)=-1,所以x=b+λ/2>0,與假設x<0矛盾;

        假設x>0,則sgn(x)=1,所以x=b-λ/2<0,與假設x<0矛盾;

        即無論x為大於0還是小於0均沒有極值點,那么x=0是否為函數f(x)的極值點呢?

        對於△x≠0,

        當△x >0時,利用條件b<λ/2可得

        當△x <0時,利用條件b<λ/2可得(注:此時|△x |=-△x)

        因此,函數在x=0處取得極小值,也是最小值。

        綜合以上三種情況,f(x)的最小值在以下位置取得:

        與前面的軟閾值(Soft Thresholding)對比一下,發現了么?若將上式中的b視為變量,λ/2視為閾值,上式即為軟閾值(SoftThresholding)的公式。

        至此,我們可以得到優化問題

的解為

        注:該式為軟閾值(Soft Thresholding)的矩陣形式。

3、軟閾值(Soft Thresholding)的變形

        當優化問題變為

        因為對目標函數乘一個常系數不影響極值點的獲得,所以可等價為優化問題

此時的解為soft(Bλ)。

4、軟閾值(Soft Thresholding)的MATLAB代碼

        軟閾值(Soft Thresholding)的函數代碼可以寫成專門針對優化問題

        軟閾值(Soft Thresholding)是如此簡單以至於可以用一句代碼去實現它[8]:

                                              

 當然,如果不習慣這種形式,也可以寫成常見的函數形式:

function [ soft_thresh ] = softthresholding( b,lambda )  
    soft_thresh = sign(b).*max(abs(b) - lambda/2,0);  
end  

  

        一定要注意:這種寫法是針對最開始的優化問題:

        但我個人感覺更應該寫成這種通用形式:

function [ x ] = soft( b,T )  
    x = sign(b).*max(abs(b) - T,0);  
end  

  

        如此之后,若要解決優化問題

只需調用soft(B, λ/2)即可;若要解決優化問題

只需調用soft(B, λ)即可。

5、軟閾值(Soft Thresholding)測試代碼

        用以下一小段代碼測試一下軟閾值,用來求解優化問題:

這里用的對比函數是基追蹤降噪(BPDN_quadprog.m),參見壓縮感知重構算法之基追蹤降噪(Basis PursuitDe-Noising, BPDN)(http://blog.csdn.net/jbb0523/article/details/52013669),使用BPDN時,實際上就是觀測矩陣為單位陣時的一種特殊情況:

clear all;close all;clc;   
b = [-0.8487   -0.3349    0.5528    1.0391   -1.1176]';  
lambda = 1;  
x1=soft(b,lambda)  
x2=BPDN_quadprog(b,eye(length(b)),lambda)  
fprintf('\nError between soft and BPDN = %f\n',norm(x1-x2))  

  

這里就不給出輸出結果了。運行后,觀察輸出結果可知,soft函數與BPDN_quadprog函數的輸結果相同。

        另外,可以在matlab里輸入以下命令看一個軟閾值的圖像:

x=-5:0.1:5;T=1;y=soft(x,T);plot(x,y);grid;  

  

 

6、總結

 

        可以發現,軟閾值解決的優化問題和基追蹤降噪問題很像,但並不一樣,而且需要格外說明的是,軟閾值並能不解決基追蹤降噪問題,文獻【8】在最后明確說明了這一點:

 

        近來學習研究各種算法,發現給自己挖的坑有點深,有點跳不出來了,各種問題接踵而來,各種新概念一個接着一個,而軟閾值(Soft Thresholding)就是其中之一,根本沒法子繞過去。在文獻【6】中,作者描述軟閾值(Soft Thresholding)時用的是“the well-known soft-threshold function”,好吧,還well-kown。在學習過程中文獻【9】對我幫助也挺大的,但從作者的語氣來看,也沒有多么well-kown啊……

        最后,非常感謝文獻【7】的PPT,看了之后讓我有一種醍醐灌頂的感覺……

7、參考文獻

【1】Donoho D L, JohnstoneJ M. Ideal spatial adaptation by wavelet shrinkage[J]. Biometrika, 1994, 81(3):425-455.

【2】Donoho D L.De-noising by soft-thresholding[J]. IEEE transactions on information theory,1995, 41(3): 613-627.

【3】Bredies K, Lorenz D.Iterative soft-thresholding converges linearly[R]. Zentrum fürTechnomathematik, 2007.

【4】Bioucas-Dias J M,Figueiredo M A T. A new TwIST: two-step iterative shrinkage/thresholdingalgorithms for image restoration[J]. IEEE Transactions on Image processing,2007, 16(12): 2992-3004.

【5】Beck A, Teboulle M. Afast iterative shrinkage-thresholding algorithm for linear inverse problems[J].SIAM journal on imaging sciences, 2009, 2(1): 183-202.

【6】Wright S J, Nowak RD, Figueiredo M A T. Sparse reconstruction by separable approximation[J]. IEEETransactions on Signal Processing, 2009, 57(7): 2479-2493.

【7】谷鵠翔.IteratedSoft-Thresholding Algorithm[Report,slides]. http://www.sigvc.org/bbs/thread-41-1-2.html

【8】http://www.simonlucey.com/soft-thresholding/

【9】http://blog.sina.com.cn/s/blog_6d0e97bb01015vq3.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM