硬閾值(Hard Threshoding)函式和軟閾值(Soft Thresholding)函式的區別
一點小插曲:之前一直把“閾yuˋ值“唸作“閥faˊ值”。希望點進來的你沒有讀錯。
說明: 如果要深入理解,建議還是以前兩篇參考資料為主,是同一個作者寫的,有詳細的例子和解釋,通俗易懂。
以下只提一下重點,列舉硬閾值和軟閾值的兩個自認為最簡單易懂的公式。
參考資料:
硬閾值函式和軟閾值函式的區別
公式
公式中,x為變數,λ是閾值
- 硬閾值(Hard Thresholding)函式
hard(x,λ)={x,0,∣x∣>λ∣x∣<λ
- 軟閾值(Soft Thresholding)函式
soft(x,λ)=⎩⎪⎨⎪⎧x−λ,0,x+λ
此處,軟閾值函式有一個更加簡潔明瞭的形式,需要配合符號函式sgn(x)或者sign(x)使用。 首先,符號函式sign(x)的定義如下: sign(x)={1,0,x>0x<0 軟閾值函式可以被表示為: soft(x,λ)=sign(x)max{∣x∣−λ,0}
影象
更直觀一點的對比。紅色的線是硬閾值,藍色的線是軟閾值。
硬閾值(紅色的線)在−a和a處有明顯的階梯式突變,形成斷裂,也就是被“一刀切”。 軟閾值(藍色的線)在−a和a處雖有明顯的轉折,但是仍然連線在一起,實現了一個過渡。
作用
- 硬閾值(Hard Thresholding)可以求解如下優化問題:
Xmin∣∣X−B∣∣22+λ∣∣X∣∣0
- 軟閾值(Soft Thresholding)可以求解如下優化問題:
Xmin∣∣X−B∣∣22+λ∣∣X∣∣1
其中,∣∣X∣∣0是L0正規化,∣∣X∣∣1是L1正規化,不瞭解的可以看參考資料(3)
相關推薦
硬閾值(Hard Threshoding)函式和軟閾值(Soft Thresholding)函式的區別
一點小插曲:之前一直把“閾yuˋy\grave{u}yuˋ值“唸作“閥faˊf\acute{a}faˊ值”。希望點進來的你沒有讀錯。 說明: 如果要深入理解,建議還是以前兩篇參考資料為主,是同一個作者寫的,有詳細的例子和解釋,通俗易懂。 以下只提一下重點,
Java SpringMVC框架學習(二)httpServeltRequest和Model傳值的區別
urn ont ppi mode array style att 區別 () 為什麽大多程序在controller中給jsp傳值時使用model.addAttribute()而不使用httpServeletRequest.setAttribute()? 事實上model數
20 字元裝置驅動相關的函式和引數及實現(虛擬檔案)
字元裝置驅動相關的函式和引數及實現(虛擬檔案) 使用者程序呼叫函式順序: open ---> kernel ---> cdev.ops->open(..) read ---> kernel ---> cdev.ops->read(
斯坦福大學機器學習筆記——單變數的線性迴歸以及損失函式和梯度下降法(包含程式碼)
迴歸問題: 所謂的迴歸問題就是給定的資料集,且每個資料集中的每個樣例都有其正確的答案,通過給定的資料集進行擬合,找到一條能夠最好代表該資料集的曲線,然後對於給定的一個樣本,能夠預測出該樣本的答案(對於迴歸問題來說,最終的輸出結果是一個連續的數值)。比如
時間函式和定時執行緒(linux C )
1.日期時間輸出格式: printf("%04d-%02d-%02d\n",year,month,day); 輸出:1994-02-07 d表示輸出整數、2表示寬度、0表示不足兩位前面補0,右對齊。 2.signal函式: signal(SIGALRM,statis
細節決定成敗(用結構體變數和結構體指標變數的指標做函式引數)
//有n個結構體變數, //內含學生學號, //姓名和3門 //課程成績 //要求輸出平均成績最高 //的學生的資訊 //包括學號,姓名, //3門課程成績和平均成績 #include <stdio.h> #define n 3 struct student{
C++友元函式和友元類(C++ friend)詳解
私有成員只能在類的成員函式內部訪問,如果想在別處訪問物件的私有成員,只能通過類提供的介面(成員函式)間接地進行。這固然能夠帶來資料
android學習-第二講(修改項目名稱和圖標,log,過濾器)
pre activit png activity 圖標 alt 類名 mage ani 一、在app/src/main/res下有 AndroidManifest.xml打開,打開後如下圖1 二、日誌工具log log.v() log.d() log.i() l
C#學習2017-9-26(讀取文本文件和讀取二進制文件)Notes9
text reader 技術分享 com c# 技術 ges utf not 讀寫文本文件:StreamReader類和StreamWriter類 StreamReader類派生自TextReader類,使用StreamReader類讀取標準文本文件的各自信息,Stre
pat-A1043:Is it a Binary Search Tree(二叉搜尋樹和及其映象樹的遍歷)
目錄 題目解釋: 解題思路: ac程式碼: 題目地址:https://pintia.cn/problem-sets/994805342720868352/problems/994805440976633856 題目解釋: 給出一個二叉樹的序列,判斷它是否是“二叉搜尋樹
預設拷貝建構函式和預設賦值函式
當一個類中有動態分配記憶體時,應當自己定義拷貝建構函式和賦值函式 class A { int *p; public: A() { p = new int[10]; } ~A() {
回溯法(深度優先)剪枝和分支限界法(寬度優先)剪枝對比:01揹包問題
限界函式: CurValue + rest <= BestValue 回溯法(深度優先)剪枝 # 遞迴方式 class pack_01_back_prune_test: def __init__(self,N,V,C,W): self
C++ 拷貝建構函式和過載賦值操作符不能相互呼叫
拷貝建構函式呼叫過載賦值操作符,過載賦值操作符呼叫拷貝建構函式的寫法都是沒有意義的。首先:拷貝建構函式的存在意義--------是通過已有的物件構造新的物件,構造完畢後才有兩個物件;過載賦值操作符的意義-----------將一個物件的值賦給另一個物件,兩個物件都已經構造完畢了。拷貝建構函式----呼叫---
Spring依賴注入(基於XML配置檔案和Annotation的方式完成屬性裝配)
依賴注入的方式(手工裝配): 1.使用bean的構造器注入—基於XML方式 2.使用屬性setter方法注入—基於XML方式 3.使用field注入—基於Annotation方式 注入依賴物件可
關於拷貝建構函式和過載賦值操作符
拷貝建構函式和過載賦值操作符一般都是一起出現的。 拷貝建構函式: A(const A &rhs) { name=rhs.name; age=new int(); *age=*rhs.age; } 過載賦值操作符: A& operator
IDEA Mybatis Plugin外掛(方便在Dao介面和Mappper XML檔案之間進行切換)
該外掛主要是在mapper介面方法和mapper XML檔案之間來回切換非常方便,極大的提高了開發效率在IDEA中搜索free Mybatis Plugin1、在工具欄有個圖片。prefrence2、搜
理解 OpenStack 高可用(HA) (4): Pacemaker 和 OpenStack Resource Agent (RA)
本系列會分析OpenStack 的高可用性(HA)概念和解決方案: 1. Pacemaker 1.1 概述 Pacemaker 承擔叢集資源管理者(CRM - Cluster Resource Manager)的角色,它是一款開源的高可用資源管理軟體,適合各種大小叢集
Thread類的sleep()方法和物件的wait()方法都能使執行緒暫停執行,他們有什麼區別?
sleep()方法是執行緒類Thread的靜態方法,呼叫該方法使執行緒暫停執行指定的時間,將CPU讓給其他執行緒,並不釋放所持有的物件鎖,休眠時間結束後執行緒回到就緒狀態。 wait()是Object類的方法,呼叫wait()方法,執行緒釋放所持有的物件鎖,進入等待池中,只
禁用拷貝建構函式和過載賦值運算子
【方法】 1,將複製建構函式和賦值操作符宣告為private。 2,若也不允許友元和成員使用,只提供成員的宣告而不提供定義。這樣當程式中出現 複製或賦值現象時,會造成連結錯誤。 #define DISABLE_COPY(Class) \ Class(const Clas
[opencv]模板匹配演算法(單影象模板匹配和基於模板匹配的目標跟蹤)
1.模板匹配opencv函式 matchTemplate(InputArray image, InputArray temp, OutputArray result, int method) Parameters: image – Image where the search is runn