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,if x[λ,λ]0,if x[λ,λ] \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*} 여기서 1\mathbf{1}_{\cdot}지시함수다.

소프트 쓰레숄딩

다음과 같이 정의된 η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}렐루다.

설명

소개된 함수들의 개형은 다음과 같다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 ↩︎