Perkiraan spektrum matriks besar


14

Saya ingin menghitung spektrum ( semua nilai eigen) dari matriks jarang besar (ratusan ribu baris). Ini sulit.

Saya bersedia menerima perkiraan. Apakah ada metode perkiraan untuk melakukan ini?

Sementara saya berharap jawaban umum untuk pertanyaan ini, saya juga akan puas dengan jawaban dalam kasus khusus berikut. Matriks saya adalah Laplacian yang dinormalisasi dari grafik besar. Nilai eigen akan berada di antara 0 dan 2 dengan jumlah besar dikelompokkan sekitar 1.


Apakah matriksnya jarang atau padat?
Aron Ahmadia

Matriksnya jarang. Saya telah mengedit pertanyaan untuk mencerminkan hal ini.
MRocklin

Mengapa Anda menginginkan semua nilai eigen? Ini hampir secara universal merupakan hal yang buruk untuk dilakukan ketika Anda memiliki matriks yang jarang atau terstruktur, sehingga penting untuk mengetahui bagaimana Anda berencana untuk menggunakannya.
Jed Brown

Spektrum laplacian grafik membawa beberapa informasi penting yang ingin saya periksa. Saya tidak membutuhkan semuanya, saya hanya perlu tahu secara kasar di mana mereka berada.
MRocklin

Jawaban:


15

Jika grafik Anda tidak diarahkan (seperti yang saya duga), matriksnya simetris, dan Anda tidak dapat melakukan apa pun lebih baik daripada algoritma Lanczsos (dengan reorthogonalization selektif jika perlu untuk stabilitas). Karena spektrum penuh terdiri dari 100000 angka, saya kira Anda terutama tertarik pada kepadatan spektral.

Untuk mendapatkan kerapatan spektral perkiraan, ambil spektrum subruang Krylov terkemuka dengan dimensi 100 atau lebih, dan ganti kepadatan diskritnya dengan versi yang dihaluskan.

Spektrum Krylov terkemuka akan hampir menyelesaikan nilai-nilai eigen yang terisolasi dengan baik (jika ada), mendekati nilai eigen pada akhir spektrum non-isolasi, dan agak acak di antaranya, dengan distribusi yang fungsi distribusi kumulatifnya menyerupai spektrum sebenarnya. . Itu akan menyatu dalam aritmatika yang tepat jika dimensi tumbuh. (Jika operator Anda berdimensi tak terbatas, ini masih akan terjadi, dan Anda akan mendapatkan integral dari fungsi kepadatan spektral sejati pada spektrum kontinu.)


Bukankah spektrum subruang Krylov yang terkemuka hanya akan menjadi 100 nilai eigen terbesar? Saya juga tertarik dengan distribusi nilai eigen moderat dan terkecil.
MRocklin

1
@MRocklin: Tidak. Saya menambah jawaban saya untuk memberikan lebih banyak detail.
Arnold Neumaier


4

Jika Anda setuju dengan hal-hal yang bukan merupakan nilai eigen tetapi berfungsi yang dalam beberapa hal masih memberi tahu Anda sesuatu tentang spektrum, maka saya pikir Anda harus memeriksa beberapa karya oleh Mark Embree di Rice University.


2

Inilah cara lain untuk mengkarakterisasi spektrum.

Diberikan masalah nilai eigen (asumsikan A simetris nyata dan nilai eigen yang terpisah; meskipun yang terakhir mungkin tidak diperlukan), mari kita coba untuk memperkirakan kepadatan spektral yang dioleskan S ( ω ) = alue k π - 1 σSEBUAHvk=λkvkSEBUAH Setelah memukul misalnyahttp://dx.doi.org/10.1016/0377-0427(96)00018-0dalam pencarian literatur, kita tahu bahwa tidak bias Estimator Monte Carlo untuk penelusuran adalah S(ω)=σ

S(ω)=kπ-1σσ2+(λk-ω)2=σπTr[σ2+(ω-SEBUAH)2]-1
di mana setiap entri dari vektor acakzmengandung baik+1atau-1dengan probabilitas 0,5 untuk setiap. Untuk diberikanσdanω, produk terbalik [σ2+(ω-A)2]-1z
S(ω)=σπzT[σ2+(ω-SEBUAH)2]-1z
z+1-1σω[σ2+(ω-SEBUAH)2]-1zdapat dihitung misalnya dengan metode gradien konjugat, atau LU jarang pada untuk meminimalkan pengisian. Ini memungkinkan estimasi S ( ω ) juga untuk matriks besar. Dalam praktiknya, tampaknya solusi CG tidak harus sangat akurat, dan tidak ada banyak vektor yang diperlukan dalam menghitung rata-rata. Ini mungkin tergantung pada masalahnya.[ω+sayaσ-SEBUAH]-1[ω-sayaσ-SEBUAH]-1S(ω)

ω

ω


0

Lihat kertas "On Decomposition Spectral Decomposition berbasis-sampling" oleh Sanjiv Kumar, Mehryar Mohri & Ameet Talwalkar (ICML 2009.). Ini menggunakan pengambilan sampel kolom dari matriks Anda.

Karena matriks Anda simetris, Anda harus melakukan hal berikut:

Biarkan A menjadi matriks n * n Anda. Anda ingin mengurangi perhitungan nilai eigen dari matriks n * n menjadi perhitungan nilai eigen dari matriks k * k. Pertama-tama pilih nilai k. Katakanlah Anda memilih k = 500, karena Anda dapat dengan mudah menghitung nilai eigen dari matriks 500 * 500. Kemudian, pilih secara acak k kolom dari matriks A. Buatlah matriks B yang hanya menyimpan kolom-kolom ini, dan baris yang sesuai.

B = A (x, x) untuk satu set indeks k acak x

B sekarang adalah ak * k matrix. Hitung nilai eigen B, dan kalikan dengan (n / k). Anda sekarang memiliki nilai k yang kira-kira terdistribusi seperti n nilai eigen A. Perhatikan bahwa Anda hanya mendapatkan nilai k, bukan n, tetapi distribusinya akan benar (sampai faktanya nilai tersebut merupakan perkiraan).


-1

Anda selalu dapat menggunakan Teorema lingkaran Gershgorin batas untuk memperkirakan nilai eigen.

Jika istilah off-diagonal kecil, diagonal itu sendiri adalah perkiraan yang baik dari spektrum. Kalau tidak, jika Anda berakhir dengan perkiraan eigenspace (dengan metode lain) Anda bisa mencoba untuk mengekspresikan entri diagonal dalam sistem ini. Ini akan mengarah ke matriks dengan istilah off-diagonal yang lebih kecil dan diagonal baru akan menjadi perkiraan spektrum yang lebih baik.


Gerschgoring tidak memberikan aproksimasi selain batas kesalahan, jadi tidak relevan di sini. Selain itu, menggunakan metode Anda pada matriks jarang akan membutuhkan matriks vektor eigen padat, yang tidak mungkin disimpan untuk masalah OP.
Arnold Neumaier

Seperti yang saya katakan, diagonal itu sendiri merupakan perkiraan spektrum dengan batas kesalahan yang diberikan oleh teorema lingkaran Gershgorin, tentu saja batas kesalahan Gershgorin bukan perkiraan. Diagonal akan menjadi perkiraan yang baik jika istilah off-diagonal kecil, yang saya percaya adalah kasusnya karena OP mengatakan bahwa matriks jarang.
FKaria

5
Sebagian besar matriks jarang yang muncul dalam praktik memiliki beberapa elemen off-diagonal yang signifikan di setiap baris dan kolom, yang membuat perkiraan diagonal sangat buruk (misalnya, untuk Laplacian dari grafik biasa, diagonalnya konstan), dan kesalahannya tidak berguna.
Arnold Neumaier
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.