
Soft thresholding(66) 의 반대 격. 임계값 이하는 0, 이상은 원래 값 그대로 — 수축(shrinkage) 없음:
| 특성 | Soft S_λ(x) | Hard H_λ(x) |
|---|---|---|
| ` | x | < λ` |
| ` | x | ≥ λ` |
| 연속적? | 예 | 아니요 (점프) |
| 관련 문제 | L1 (Lasso) prox | L0 (count of non-zero) 최적화 |
Hard 는 IHT(iterative hard thresholding), top-k sparsity, pruning 등에서 사용.
함수 hard_threshold(x, lam) 을 완성하세요.
np.where(|x| >= lam, x, 0) 한 줄.| # | 이름 | 입력 | 기대 |
|---|---|---|---|
| 1 | 작은 값 → 0 | x=0.3, λ=0.5 | 0 |
| 2 | 임계값 이상 → 원래 | x=1.2, λ=0.5 | 1.2 (축소 없음!) |
| 3 | 음수도 보존 | x=-1.5, λ=0.4 | -1.5 |
| 4 | 벡터 | [-2, -0.3, 0.3, 2], λ=0.5 | [-2, 0, 0, 2] |
| 5 | λ=0 → 항등 | 임의 x | x |
코드를 작성하고 Run 을 눌러보세요.