최적화·연습 문제

Hard Thresholding

문제 설명PROBLEM

preview

Hard Thresholding

Soft thresholding(66) 의 반대 격. 임계값 이하는 0, 이상은 원래 값 그대로 — 수축(shrinkage) 없음:

Hλ(x)={xif xλ0otherwiseH_\lambda(x) = \begin{cases} x & \text{if } |x| \ge \lambda \\ 0 & \text{otherwise} \end{cases}

Soft vs Hard

특성Soft S_λ(x)Hard H_λ(x)
`x< λ`
`x≥ λ`
연속적?아니요 (점프)
관련 문제L1 (Lasso) proxL0 (count of non-zero) 최적화

Hard 는 IHT(iterative hard thresholding), top-k sparsity, pruning 등에서 사용.

과제

함수 hard_threshold(x, lam) 을 완성하세요.

  • 엘리먼트별 적용.
  • np.where(|x| >= lam, x, 0) 한 줄.

테스트 케이스

#이름입력기대
1작은 값 → 0x=0.3, λ=0.50
2임계값 이상 → 원래x=1.2, λ=0.51.2 (축소 없음!)
3음수도 보존x=-1.5, λ=0.4-1.5
4벡터[-2, -0.3, 0.3, 2], λ=0.5[-2, 0, 0, 2]
5λ=0 → 항등임의 xx
개념 노트와 실수 포인트

최적화 (옵티마이저)

  • GD/SGD/모멘텀/Adam. ⚠️ 학습률: 너무 크면 발산, 너무 작으면 느림.
  • 파라미터 -= lr * gradient. 모멘텀/Adam 은 과거 기울기 활용.