
v1 Soft thresholding 은 한 번의 proximal 연산. ISTA (Iterative Shrinkage-Thresholding Algorithm) 는 이를 gradient descent 와 결합 해서 LASSO 문제를 반복적으로 푸는 전체 알고리즘.
매 iteration:
여기서 (= largest eigenvalue, Lipschitz 상수). 실무엔 L = np.linalg.eigvalsh(X.T@X).max() 또는 보수적으로 np.linalg.norm(X, 2)**2.
(FISTA 는 로 가속). 동일 해 → coordinate descent (LASSO 전용) 와 일치.
함수 ista(X, y, lam, max_iter=200) 를 완성하세요.
X shape (N, D), y shape (N,), lam > 0.w shape (D,).L = np.linalg.eigvalsh(X.T @ X).max() 로 step size.w = 0.| # | 이름 | 검증 |
|---|---|---|
| 1 | shape (D,) | |
| 2 | lam=0 → OLS 해 근사 (수렴 가정) | |
| 3 | 큰 lam → w = 0 | |
| 4 | 중간 lam → 희소 | |
| 5 | 실제 희소 signal 복원 | |
| 6 | sklearn Lasso 와 유사 ( | w |
| 7 | 반복 수 많을수록 수렴 |
코드를 작성하고 Run 을 눌러보세요.