특이 값 분해 알고리즘에 관한 현재의 최신 기술은 무엇입니까?


12

가능한 한 간단한 패키지로 합리적인 수준의 선형 대수 기능을 제공하기 위해 헤더 전용 행렬 라이브러리에서 작업하고 있으며 현재의 최신 상태가 무엇인지 조사하려고합니다. 복소수 행렬.

나는 2 단계 분해, 이중 대각선 화와 단일 값 계산을하고 있습니다. 지금 나는 bidiagonalization (나는 LAPACK이이를 사용하여 생각), 그리고 생각의 호주 방법을 사용하고 그 약의가 현재수록 좋은으로 (누군가가 알고하지 않는 그것을위한 알고리즘 ..) . O(N2)

특이 값 계산은 다음 목록에 있으며 일반적인 알고리즘이 수행하는 작업에 대해 약간 벗어났습니다. 나는 여기서 연구가 복잡성 과 직교성을 보장하는 역 반복 방법을 향하고 있다는 것을 읽었다 . 그 또는 다른 진보에 대해 듣고 싶습니다.O(N)


헤더 전용 행렬 lib (.h 제외)에 대한 문서가 있습니까? 또한 "svd"태그를 추가하십시오.
데니스

답변:


7

"무작위 화 알고리즘"은 최근 부분 svd에 대해 매우 인기가 있습니다. 헤더 전용 구현은 http://code.google.com/p/redsvd/에서 다운로드 할 수 있습니다 .

현재 방법에 대한 검토는 여기에서 찾을 수 있습니다 : http://arxiv.org/abs/0909.4061

전체 svd의 경우 나는 가구주보다 더 잘 할 수 있는지 확실하지 않습니다.


매우 흥미있는 것 같습니다. 설문지를보아야합니다. 감사합니다!
gct

OP는 고밀도 매트릭스 알고리즘에 관심이 있습니다. 무작위 알고리즘이 전혀 작동하지 않는다면 그 설정에서 경쟁력이 있다고 생각하지 않습니다.
Federico Poloni

이 게시물이 무작위 방법은 밀도 행렬에 잘 작동 표시 research.facebook.com/blog/294071574113354/fast-randomized-svd
dranxo

@dranxo 해당 게시물에 대한 정확도 비교는 전혀 없으며 타이밍 결과는 매우 세 심하게 보이지 않습니다. 또한 무작위 알고리즘은 소규모 문제의 투영 + 정확한 솔루션을 기반으로합니다. 이것은 OP가 어쨌든 소규모 문제의 결과를 위해 "표준 방법"을 구현해야한다는 것을 의미합니다.
Federico Poloni

그럴 수 있지. 조금 혼란 스럽지만 왜이 방법이 희소 행렬에서만 작동한다고 생각해야합니까? Joel Tropp의 논문의 개요는 다음과 같습니다. "고밀도 입력 매트릭스의 경우 무작위 알고리즘에는 클래식 알고리즘의 경우 O (mnk)와 대조적으로 O (mn log (k)) 부동 소수점 연산 (플롭)이 필요합니다." arxiv.org/pdf/0909.4061v2.pdf
dranxo

4

O(N)

(세부 사항을 작성할 시간이 없기 때문에 의견을 몇 개만 남기고 싶었지만 설명 상자에는 다소 커졌습니다.)

LDLUDU

반면에 알고리즘의 "단일 값"부분은 (시프트 된) 차분 몫 차이 (dqd (s)) 알고리즘 에서 비롯됩니다.이 알고리즘Fernando, Parlett , Demmel 및 Kahan 의 이전 작업의 정점입니다 (영감 있음) Heinz Rutishauser).

아시다시피 SVD 방법은 일반적으로 쌍각 행렬에서 특이 값을 얻기 전에 먼저 쌍각 분해를 진행합니다. 불행히도 나는 프론트 엔드 바이 디아 고날 분해를위한 현재의 최상의 방법에 대해서는 너무 업데이트되지 않았다. 마지막으로 확인한 일반적인 방법은 열 피벗을 사용하여 QR 분해로 시작한 다음 삼각 요소에 적절하게 직교 변환을 적용하여 2 각 분해를 얻는 것입니다.

나는 세부 사항에 대해 빈약 한 것을 알고 있습니다. 라이브러리에 액세스 할 수있게되면이 답변을 더 구체화하려고합니다.


행렬을 쌍 대각선 형태로, 행을 한 다음 행을 반복하고 대각선을 반복합니다. 주어진 대각선이나 행주를 사용하여 열을 대각선까지 0으로 설정 한 다음 행을 대각 대각선으로 동일하게 수행하십시오.
adam W

UAVUU=IVV=I

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.