큰 행렬의 대략적인 스펙트럼


14

큰 희소 행렬 (수만 행) 의 스펙트럼 ( 모든 고유 값) 을 계산하고 싶습니다 . 이것은 어렵다.

나는 근사치를 기꺼이 해결하려고한다. 이를 수행하기위한 근사법이 있습니까?

이 질문에 대한 일반적인 답변을 희망하지만 다음과 같은 경우에 대한 답변도 만족할 것입니다. 내 행렬은 큰 그래프 의 정규화 된 라플라시안 입니다. 고유 값은 0과 2 사이이며 많은 수의 값이 1 주위에 모여 있습니다.


매트릭스가 희박하거나 조밀합니까?
— Aron Ahmadia 2016 년

행렬이 희박합니다. 이것을 반영하기 위해 질문을 편집했습니다.
— MRocklin

왜 모든 고유 값을 원합니까? 이것은 희소하거나 구조화 된 행렬이있을 때 수행하기에 거의 보편적으로 나쁜 일이므로 사용 계획을 아는 것이 중요합니다.
— 제드 브라운

그래프 laplacian의 스펙트럼에는 내가 점검하고 싶은 중요한 정보가 있습니다. 나는 그들 모두를 필요로하지 않으며, 단지 그들이 어디에 있는지 대략 알아야합니다.
— MRocklin

답변:


15

그래프가 방향이 정해지지 않은 경우 (필자가 생각할 때) 행렬은 대칭이므로 Lanczsos 알고리즘보다 더 나은 작업을 수행 할 수 없습니다 (안정성을 위해 필요한 경우 선택적인 직교 화). 전체 스펙트럼이 100000 개의 숫자로 구성되어 있기 때문에 스펙트럼 밀도에 주로 관심이 있다고 생각합니다.

대략적인 스펙트럼 밀도를 얻으려면 치수가 100 정도 인 주요 Krylov 하위 공간의 스펙트럼을 가져 와서 이산 밀도를 스무드 버전으로 바꾸십시오.

주요 Krylov 스펙트럼은 잘 분리 된 고유 값 (이것이 존재해야 함)을 거의 해결하고, 비 분리 물 스펙트럼의 끝에서 고유 값을 근사하며, 누적 분포 함수가 실제 스펙트럼의 분포와 유사한 분포로 중간에 다소 임의적입니다. . 치수가 커지면 정확한 산술로 수렴합니다. (연산자가 무한한 차원 인 경우에도 마찬가지입니다. 연속 스펙트럼에서 실제 스펙트럼 밀도 함수의 적분을 얻을 수 있습니다.)


주요 Krylov 하위 공간의 스펙트럼이 100 개의 고유 값이 아닙니까? 또한 중간 값과 최소값의 분포에 관심이 있습니다.
— MRocklin

1
@ MRocklin : 아니요. 자세한 내용을 제공하기 위해 답변을 보강했습니다.
— Arnold Neumaier


4

고유 값이 아니라 어떤 의미에서 여전히 스펙트럼에 대해 알려주는 기능에 대해 생각하면 괜찮습니다. 라이스 대학의 Mark Embree의 작업 중 일부를 확인해야한다고 생각합니다.


2

스펙트럼을 특성화하는 또 다른 방법이 있습니다.

고유 값 문제가 주어지면 (실제 대칭 A 와 분리 된 고유 값을 가정 하지만 후자는 필요하지는 않지만) 번짐 스펙트럼 밀도 S ( ω ) = ∑ k π − 1 σ 를 추정 해 봅시다 Avk=λkvkA

S(ω)=∑kπ−1σσ2+(λk−ω)2=σπTr⁡[σ2+(ω−A)2]−1
S(ω)=σπ⟨zT[σ2+(ω−A)2]−1z⟩
z+1−1σω[σ2+(ω−A)2]−1z의 공액 구배 법, 희소 LU로, 예를 들어 계산할 수있다 큰 행렬들에 대해서도 . 실제로 CG 솔루션은 매우 정확할 필요는 없으며 평균 계산에 필요한 벡터도 많지 않습니다. 문제에 따라 달라질 수 있습니다.[ω+iσ−A]−1[ω−iσ−A]−1S(ω)

위의 방법은 비슷하게 번지는 Krylov 스펙트럼 밀도보다 스펙트럼의 일부를 더 균등하게 계량하는 것으로 보입니다. 이는 유사 스펙트럼 접근 방식과 다소 유사하지만 결과는 지점 부근의 고유 값 수를 나타냅니다.ω 가장 가까운 고유 값에 대한 역 거리가 아니라 .

ω


0

Sanjiv Kumar, Mehryar Mohri & Ameet Talwalkar (ICML 2009.)의 "샘플링 기반 근사 스펙트럼 분해"논문을 참조하십시오. 행렬의 열 샘플링을 사용합니다.

행렬이 대칭이므로 다음을 수행해야합니다.

A를 n * n 행렬이라고합시다. n * n 행렬의 고유 값 계산을 k * k 행렬의 고유 값 계산으로 줄이려고합니다. 먼저 k 값을 선택하십시오. 500 * 500 행렬의 고유 값을 쉽게 계산할 수 있으므로 k = 500을 선택한다고 가정 해 보겠습니다. 그런 다음 행렬 A의 k 개의 열을 임의로 선택합니다. 이러한 열과 해당 행만 유지하는 행렬 B를 구성합니다.

임의의 k 인덱스 집합에 대한 B = A (x, x) x

B는 이제 ak * k 행렬입니다. B의 고유 값을 계산하고 (n / k)를 곱하십시오. 이제 n의 고유 값과 같이 대략적으로 분포 된 k 개의 값이 있습니다. n이 아닌 k 개의 값만 가져 오지만 분포는 정확합니다 (근사치 임).


-1

Gershgorin Circle Theorem 경계를 항상 사용 하여 고유 값에 근접 할 수 있습니다 .

비대 각 항이 작 으면 대각선 자체가 스펙트럼의 근사치입니다. 그렇지 않으면 (다른 방법으로) 고유 공간의 근사값으로 끝나면이 시스템에서 대각선 항목을 표현하려고 시도 할 수 있습니다. 이것은 대각선 이외의 항이 더 작은 행렬로 이어지고 새로운 대각선이 더 나은 스펙트럼 근사치가됩니다.


Gerschgoring은 근사값을 제공하지 않고 오류 범위를 제공하므로 여기서는 관련이 없습니다. 또한 희소 행렬에 대해 방법을 사용하려면 밀도가 높은 고유 벡터 행렬이 필요하므로 OP 문제로 저장할 수 없습니다.
— Arnold Neumaier 2016 년

내가 말했듯이, 대각선 자체는 Gershgorin circle 정리에 의해 주어진 오차 범위를 가진 스펙트럼의 근사치입니다. 물론 Gershgorin 오차 범위는 근사치가 아닙니다. OP가 행렬이 희소하다고 말한 이후로 나는 대각선이 아닌 용어가 작 으면 대각선이 좋은 근사치가 될 것입니다.
— FKaria

5
실제로 발생하는 대부분의 희소 행렬은 각 행과 열에 중요한 대각선 이외의 요소가 있으므로 대각선이 매우 근사한 근사치 (예 : 일반 그래프의 라플라시안의 경우 대각선이 일정 함)를 만들고 오류 경계는 쓸모가 없습니다.
— Arnold Neumaier 2016 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.