← 문제 목록/Nuclear Norm (특이값 합)
문제 해설

Nuclear Norm (특이값 합)

선형대수 · easy

preview

Nuclear Norm (특이값 합)

64번 Frobenius 노름 은 원소 제곱합의 제곱근 = 특이값 제곱합의 제곱근. Nuclear norm 은 특이값을 그냥 더합니다:

A=iσi(A)\|A\|_* = \sum_i \sigma_i(A)

  • Frobenius: σi2\sqrt{\sum \sigma_i^2} (L2-처럼 작용)
  • Nuclear: σi\sum \sigma_i (L1-처럼 작용 — 특이값을 0으로 밀어넣음)

왜 중요?

  • 저-rank 정규화 의 convex surrogate. rank(A)\text{rank}(A) 는 비볼록(0-노름 같음); nuclear는 볼록 → 경사 기반 최적화 가능.
  • 행렬 완성 (Matrix Completion): Netflix 문제처럼 결측 엔트리 복원에 min ||A||_* subject to A_observed = M_observed.
  • Robust PCA: low-rank + sparse 분해.

관계

  • rank(A)k\text{rank}(A) \le k 이면 AAFk\|A\|_* \le \|A\|_F \sqrt{k}
  • 등호는 모든 특이값이 같을 때.

과제

함수 nuclear_norm(A) 를 완성하세요.

  • A shape (M, N).
  • 반환: Python float.
  • 힌트: np.linalg.svd(A, compute_uv=False).sum().

테스트 케이스

#이름검증
1영행렬 → 0
2단위행렬 → N대각 특이값 1이 N개
3스케일 선형성`‖cA‖_* =
4rank=1 행렬 → 유일 특이값 = ‖A‖_F
5np.linalg.norm(A, 'nuc') 일치
코드 작성
Loading...
실행 결과

코드를 작성하고 Run 을 눌러보세요.