한 번에 하나씩 특이 값을 계산하는 잘린 SVD 알고리즘이 있습니까?
내 문제 : 큰 밀도 행렬 M 의 첫 특이 값 (및 특이 벡터) 을 계산하고 싶지만 적절한 k 값이 무엇인지 모르겠습니다 . M 은 크므로 효율성 때문에 전체 SVD를 평가하지 않고 나중에 가장 작은 SV를 잘라 버릴 것입니다.
이상적으로는, 특이 값을 계산하는 방법이 될 것이다 직렬, 최대 행 ( 작은 (행) ). 그런 식으로, σ k / σ 1 이 임계 값 아래로 떨어지면 번째 특이 값을 계산 한 후 계산을 간단히 중단 할 수 있습니다.
이러한 알고리즘이 존재합니까 (Python 구현에 선호)? 내 인터넷 검색에서 k를 매개 변수로 사용하는 잘린 SVD 함수 만 찾았으므로 우선 순위를 추측해야합니다.