คำถามติดแท็ก svd

10
อัลกอริทึมที่แข็งแกร่งสำหรับ
อัลกอริธึมง่ายๆสำหรับการคำนวณ SVD ของเมทริกซ์คืออะไร?2×22×22 \times 2 เป็นการดีที่ฉันต้องการอัลกอริทึมที่มีประสิทธิภาพเป็นตัวเลข แต่ฉันต้องการเห็นการใช้งานที่เรียบง่ายและไม่ง่าย ยอมรับรหัส C การอ้างอิงใด ๆ กับเอกสารหรือรหัส?

3
สถานะปัจจุบันของศิลปะเกี่ยวกับอัลกอริธึมสำหรับการสลายตัวของค่าเอกพจน์คืออะไร?
ฉันกำลังทำงานกับเมทริกซ์ไลบรารีส่วนหัวเท่านั้นเพื่อให้ความสามารถพีชคณิตเชิงเส้นในระดับที่สมเหตุสมผลในแพคเกจที่ง่ายที่สุดเท่าที่จะเป็นไปได้และฉันพยายามสำรวจว่าสถานะปัจจุบันของศิลปะเป็นอย่างไร: การคำนวณ SVD ของ เมทริกซ์ที่ซับซ้อน ฉันกำลังสลายตัวแบบสองเฟส, การทำ bidiagonalization ตามด้วยการคำนวณค่าเอกพจน์ ตอนนี้ฉันกำลังใช้วิธีคฤหัสถ์สำหรับ bidiagonalization (ผมเชื่อว่า LAPACK ใช้นี้เช่นกัน) และผมคิดว่าเป็นเรื่องที่ดีที่จะได้รับในปัจจุบัน (ยกเว้นกรณีที่มีคนรู้ของอัลกอริทึม สำหรับมัน..). O(N2)O(N2)\mathcal{O}(N^2) การคำนวณค่าเอกพจน์อยู่ถัดไปในรายการของฉันและฉันค่อนข้างจะวนซ้ำกับสิ่งที่อัลกอริทึมทั่วไปสำหรับทำสิ่งนี้ ฉันได้อ่านที่นี่ว่าการวิจัยมุ่งไปที่วิธีผกผันการทำซ้ำที่รับประกันความเป็นเอกเทศกับความซับซ้อน ฉันสนใจที่จะได้ยินเกี่ยวกับเรื่องนั้นหรือความก้าวหน้าอื่น ๆO(N)O(N)\mathcal{O}(N)

1
การจับคู่กำลังสองน้อยที่สุดในการหมุนล้วนๆ
ใครสามารถแนะนำวิธีการสำหรับปัญหากำลังสองน้อยที่สุดต่อไปนี้: R ∈ R3 × 3R∈R3×3R \in \mathbb{R}^{3 \times 3}RΣi = 0ยังไม่มีข้อความ( R xผม- ขผม)2→ ขั้นต่ำ∑i=0N(Rxi−bi)2→min\sum\limits_{i=0}^N (Rx_i - b_i)^2 \rightarrow \minRRR ฉันสามารถหาวิธีแก้ปัญหาโดยประมาณโดยย่อΣi = 0ยังไม่มีข้อความ( A xผม- ขผม)2→ ขั้นต่ำ∑i=0N(Axi−bi)2→min\sum\limits_{i=0}^N (Ax_i - b_i)^2 \rightarrow \min (โดยพลการA ∈ R3 × 3A∈R3×3A \in \mathbb{R}^{3 \times 3} ) เมทริกซ์AAAและ: คำนวณ SVD: A=UΣVTA=UΣVTA = U \Sigma …

2
คำนวณ SVD ที่ถูกตัดทอนหนึ่งค่า / เวกเตอร์หนึ่งตัวในแต่ละครั้ง
มีอัลกอริทึม SVD ที่ถูกตัดทอนที่คำนวณค่าเอกพจน์ทีละหนึ่งหรือไม่ ปัญหาของฉัน: ผมอยากจะคำนวณแรกค่าเอกพจน์ (และเวกเตอร์เอกพจน์) ของขนาดใหญ่ที่หนาแน่นเมทริกซ์แต่ผมไม่ทราบว่าสิ่งที่มีค่าที่เหมาะสมของจะเป็น มีขนาดใหญ่ดังนั้นด้วยเหตุผลด้านประสิทธิภาพฉันไม่อยากประเมิน SVD แบบเต็มเพียงเพื่อตัดทอน SV ที่เล็กที่สุดหลังจากนั้นM k MkkkMMMkkkMMM เป็นการดีที่จะมีวิธีคำนวณค่าเอกพจน์ลำดับจากมากที่สุด ( ) ถึงน้อยที่สุด ( ) ด้วยวิธีนี้ฉันสามารถหยุดการคำนวณหลังจากคำนวณค่าเอกพจน์ th หากต่ำกว่าเกณฑ์σ 1 σ n k σ k / σ 1σ1, σ2, ...σ1,σ2,...\sigma_1, \sigma_2,\ldotsσ1σ1\sigma_1σnσn\sigma_nkkkσk/ σ1σk/σ1\sigma_k/\sigma_1 มีอัลกอริทึมดังกล่าวอยู่หรือไม่ (โดยเฉพาะอย่างยิ่งเมื่อใช้ Python) ใน googling ของฉันฉันพบเฉพาะฟังก์ชัน SVD ที่ถูกตัดทอนซึ่งใช้ k เป็นพารามิเตอร์ดังนั้นบังคับให้คุณคาดเดาว่าเป็นนิรนัย

1
ทำไม SVD ถึงพูดถึง QR และ LU น้อยกว่าสำหรับเมทริกซ์กระจัดกระจาย
ตัวอย่างเช่นไลบรารี C ++ sparse matrix ที่ฉันใช้ - Eigen และ SuiteSparse ดูเหมือนว่าพวกเขาจะไม่มี SVD funcitionality สำหรับ sparse matrix ดังนั้นเพียงแค่อยากรู้อยากเห็น SVD นั้นยากกว่า QR / LU สำหรับเมทริกซ์แบบกระจายหรือไม่

4
การปรับใช้หน่วยความจำอย่างมีประสิทธิภาพของการแยกย่อยค่าเอกพจน์ (SVD) บางส่วน
สำหรับการลดแบบจำลองฉันต้องการคำนวณเวกเตอร์เอกพจน์ทางซ้ายที่เกี่ยวข้องกับ - พูด 20 - ค่าเอกพจน์ที่ใหญ่ที่สุดของเมทริกซ์โดยที่และ 3 น่าเสียดายเมทริกซ์ของฉันจะหนาแน่นโดยไม่มีโครงสร้างใด ๆ N ≈ 10 6 k ≈ 10 3 AA∈RN,kA∈RN,kA \in \mathbb R^{N,k}N≈106N≈106N\approx 10^6k≈103k≈103k\approx 10^3AAA หากฉันเพิ่งเรียกsvdรูทีนจากnumpy.linalgโมดูลใน Python สำหรับเมทริกซ์แบบสุ่มขนาดนี้ฉันพบข้อผิดพลาดของหน่วยความจำ เพราะนี่คือการจัดสรรสำหรับการสลายตัวVSU A = V S UV∈RN,NV∈RN,NV\in \mathbb R^{N,N}A=VSUA=VSUA = VSU มีอัลกอริธึมที่หลีกเลี่ยงหลุมพรางนี้ไหม เช่นโดยการตั้งค่าเฉพาะเวกเตอร์เอกพจน์ที่สัมพันธ์กับค่าเอกพจน์ที่ไม่ใช่ศูนย์ ฉันพร้อมที่จะแลกเปลี่ยนในเวลาและความแม่นยำในการคำนวณ

2
การเพิ่มมาตรฐานเพื่อทำให้ SVD มีความเสถียรเท่าไร
ฉันใช้ SVD ของ Intel MKL ( dgesvdผ่าน SciPy) และสังเกตว่าผลลัพธ์จะแตกต่างกันอย่างมากเมื่อฉันเปลี่ยนความแม่นยำระหว่างfloat32และfloat64เมื่อเมทริกซ์ของฉันมีเงื่อนไขไม่ดี / ไม่เต็มอันดับ มีแนวทางเกี่ยวกับจำนวนขั้นต่ำของการทำให้เป็นมาตรฐานที่ฉันควรเพิ่มเพื่อให้ผลลัพธ์ที่ไม่ไวต่อการเปลี่ยนแปลงfloat32-> float64หรือไม่? โดยเฉพาะการทำ A = UDVTA=UDVTA=UDV^{T}ฉันเห็นว่า L∞L∞L_\infty บรรทัดฐานของ VTXVTXV^{T}Xย้ายประมาณ 1 เมื่อฉันเปลี่ยนความแม่นยำของระหว่างและfloat32float64L2L2L_2 บรรทัดฐานของ AAA คือ 10510510^5 และมีค่าลักษณะเฉพาะประมาณ 200 ศูนย์จากทั้งหมด 784 กำลังทำ SVD λ ฉัน+ AλI+A\lambda I + A กับ λ =10- 3λ=10−3\lambda=10^{-3} ทำให้ความแตกต่างหายไป
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.