logo

ハードスレッショルディングとソフトスレッショルディングの関数として 📂関数

ハードスレッショルディングとソフトスレッショルディングの関数として

定義 1

閾値threshold λR\lambda \in \mathbb{R} が与えられているとしよう.

ハードスレッショルディング

次のように定義された ηH(x;λ):RR\eta _{H} \left( x ; \lambda \right) : \mathbb{R} \to \mathbb{R}ハードスレッショルディングhard thresholdingと呼ぶ. ηH(x;λ)=x1{xλ}(x)={x,if x[λ,λ]0,if x[λ,λ] \begin{align*} \eta _{H} \left( x ; \lambda \right) =& x \cdot \mathbf{1}_{\left\{ \left| x \right| \ge \lambda \right\}} (x) \\ =& \begin{cases} x & , \text{if } x \in [-\lambda, \lambda] \\ 0 & , \text{if } x \notin [-\lambda, \lambda] \end{cases} \end{align*} ここで 1A\mathbf{1}_{ A }集合 xAx \in A のときだけ 11 で、それ以外では 00 である 指示関数 だ.

ソフトスレッショルディング

次のように定義された ηS(x;λ):RR\eta _{S} \left( x ; \lambda \right) : \mathbb{R} \to \mathbb{R}ソフトスレッショルディングsoft thresholdingと呼ぶ. ηS(x;λ)=sign(x)ReLU(xλ)={λx,if x<λ0,if x[λ,λ]xλ,if x>λ \begin{align*} \eta _{S} \left( x ; \lambda \right) =& \operatorname{sign} (x) \cdot \operatorname{ReLU} \left( \left| x \right| - \lambda \right) \\ =& \begin{cases} \lambda - \left| x \right| & , \text{if } x < - \lambda \\ 0 & , \text{if } x \in [-\lambda, \lambda] \\ \left| x \right| - \lambda & , \text{if } x > \lambda \end{cases} \end{align*} ここで sign\operatorname{sign}符号ReLU\operatorname{ReLU}ReLU だ.

説明

紹介した関数の概形は次のとおりだ2.

スレッショルディングthresholdingとはアルゴリズムの観点から見ると、あまり大きくない値を除去するデノイジングdenoisingの意味を持つ.

ハードとソフトの違いはいくつかあるが、数学的に最も目立つのは ±λ\pm \lambda における 連続性 で、その他では [λ,λ]\left[ - \lambda , \lambda \right]00 である点や 弱導関数 が同じなどほとんど類似している。通常は用途に応じてどちらか一方を選んで使うことが多く、両方使うことはほとんどなく、ノーテーションも ηλ(x)\eta_{\lambda} (x) のように HHSS を省略して下付き添字の位置に閾値 λ\lambda を書くことが多い.


  1. Gavish. (2014). The Optimal Hard Threshold for Singular Values is 4/√3: https://doi.org/10.1109/TIT.2014.2323359 ↩︎

  2. https://www.mathworks.com/help/wavelet/ref/wthresh.html ↩︎