logo

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

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

定義 1

閾値threshold $\lambda \in \mathbb{R}$ が与えられているとする。

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

以下のように定義された $\eta _{H} \left( x ; \lambda \right) : \mathbb{R} \to \mathbb{R}$ をハードスレッショルディングhard thresholdingという。 $$ \begin{align*} \eta _{H} \left( x ; \lambda \right) =& x \cdot \mathbf{1}_{\left\{ \left| x \right| \ge \lambda \right\}} \\ =& \begin{cases} x & , \text{if } x \in [-\lambda, \lambda] \\ 0 & , \text{if } x \notin [-\lambda, \lambda] \end{cases} \end{align*} $$ ここで、$\mathbf{1}_{\cdot}$ は指示関数である。

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

以下のように定義された $\eta _{S} \left( x ; \lambda \right) : \mathbb{R} \to \mathbb{R}$ をソフトスレッショルディングsoft thresholdingという。 $$ \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*} $$ ここで、$\operatorname{sign}$ は符号、$\operatorname{ReLU}$ はReLUである。

説明

紹介された関数の形状は、次のようになっている2

スレッショルディングthresholdingは、アルゴリズムの観点から見れば、大したことのない値を削除する、デノイジングdenoisingの意味がある。

ハードとソフトの違いは主に数学的に目立つのが、$\pm \lambda$ での連続性であり、それ以外では$\left[ - \lambda , \lambda \right]$ から$0$ への点や、同じ擬似関数を使うなどほとんど類似している。通常は、用途に合わせてどちらか一方を選んで使うことが多く、両方を使うことはほとんどなく、表記も$\eta_{\lambda} (x)$、$H$、または$S$ を省略して、下付き文字の位置に閾値$\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 ↩︎