อ่าน 13 นาที
โลบีพีซีจี
Locally Optimal Block Preconditioned Conjugate Gradient ( LOBPCG ) เป็นวิธีการที่ไม่ต้องใช้เมทริกซ์ ในการหา ค่าลักษณะเฉพาะที่ใหญ่ที่สุด (หรือเล็กที่สุด) และเวกเตอร์ลักษณะ...
โลบีพีซีจี
Locally Optimal Block Preconditioned Conjugate Gradient ( LOBPCG ) เป็นวิธีการที่ไม่ต้องใช้เมทริกซ์ ในการหา ค่าลักษณะเฉพาะที่ใหญ่ที่สุด (หรือเล็กที่สุด) และเวกเตอร์ลักษณะ เฉพาะที่สอดคล้องกัน ของปัญหาค่าลักษณะเฉพาะทั่วไปแบบ สมมาตร
สำหรับเมทริกซ์ เฮอร์มิเชียนเชิงซ้อนหรือ เมทริก ซ์สมมาตร จริง คู่หนึ่งโดยที่เมทริกซ์นั้นถือว่าเป็นเมทริกซ์บวกแน่นอน ด้วย
พื้นหลัง
Kantorovichในปี 1948 เสนอให้คำนวณค่าไอเกน ที่เล็กที่สุด ของเมทริกซ์สมมาตรโดย ใช้ การลดลงที่ชันที่สุดโดยใช้ทิศทาง ของเกร เดียนต์ที่ปรับขนาดของผลหาร Rayleighในผลคูณสเกลาร์โดยขนาดขั้นตอนคำนวณโดยการลดผลหาร Rayleigh ให้เหลือน้อยที่สุดในช่วงเชิงเส้นของเวกเตอร์และกล่าวคือในลักษณะที่เหมาะสมที่สุดในระดับท้องถิ่น Samokish [ 1 ]เสนอให้ใช้ตัวปรับสภาพกับเวกเตอร์ตกค้างเพื่อสร้างทิศทางที่ปรับสภาพแล้วและได้ขอบเขตอัตราการล convergence แบบ asymptotic เมื่อ เข้าใกล้ เวก เตอร์ไอเกนD'yakonovแนะนำ[ 2 ]การปรับสภาพที่เทียบเท่าทางสเปกตรัมและได้ขอบเขตอัตราการล convergence แบบไม่ใช่ asymptotic การลงแบบชันหลายขั้นตอนที่เหมาะสมที่สุดในระดับท้องถิ่นของบล็อกสำหรับปัญหาค่าลักษณะเฉพาะได้รับการอธิบายไว้ใน[ 3 ]การลดค่าต่ำสุดในระดับท้องถิ่นของอัตราส่วนเรย์ลีบนพื้นที่ย่อยที่ครอบคลุมโดยการประมาณค่าปัจจุบัน ค่าตกค้างปัจจุบัน และการประมาณค่าก่อนหน้า รวมถึงเวอร์ชันบล็อก ปรากฏใน[ 4 ]เวอร์ชันที่มีการปรับสภาพล่วงหน้าได้รับการวิเคราะห์ใน[ 5 ]และ[ 6 ]
คุณสมบัติหลัก
แหล่งที่มา: [ 7 ]
- ไม่ต้อง ใช้เมทริกซ์ กล่าวคือ ไม่จำเป็นต้องจัดเก็บเมทริกซ์สัมประสิทธิ์อย่างชัดเจน แต่สามารถเข้าถึงเมทริกซ์ได้โดยการประเมินผลคูณเมทริกซ์กับเวกเตอร์
- ไม่ต้องแยก ตัวประกอบ กล่าวคือ ไม่จำเป็นต้องแยกเมทริกซ์ออก เป็นส่วนๆ แม้แต่สำหรับปัญหาค่าลักษณะเฉพาะแบบทั่วไปก็ตาม
- ต้นทุนต่อรอบการคำนวณและการใช้หน่วยความจำนั้นสามารถแข่งขันได้กับวิธีการของ Lanczosซึ่งใช้ในการคำนวณคู่ค่าลักษณะเฉพาะสุดขั้วเพียงคู่เดียวของเมทริกซ์สมมาตร
- การลู่เข้าเชิงเส้นได้รับการรับประกันตามทฤษฎีและสังเกตได้ในทางปฏิบัติ
- การบรรจบกันที่รวดเร็วขึ้นเนื่องจากการปรับสภาพเบื้องต้น โดยตรง ซึ่งแตกต่างจากวิธีของ Lanczosที่รวมถึงการปรับสภาพเบื้องต้นแบบแปรผันและไม่สมมาตร ตลอดจนการปรับสภาพเบื้องต้น แบบคงที่และแบบบวก แน่นอน
- ช่วยให้สามารถผสานรวมการแบ่งโดเมน ที่มีประสิทธิภาพ และเทคนิคมัลติกริด ได้อย่างง่ายดายผ่านการปรับสภาพเบื้องต้น
- เริ่มต้นการทำงานแบบอุ่นเครื่องและคำนวณค่าประมาณของเวกเตอร์ลักษณะเฉพาะในทุกรอบการทำซ้ำ
- มีเสถียรภาพทางตัวเลขมากกว่าเมื่อเทียบกับวิธี Lanczosและสามารถทำงานได้ในระบบคำนวณคอมพิวเตอร์ที่มีความแม่นยำต่ำ
- ใช้งานง่าย และมีเวอร์ชันต่างๆ ออกมาแล้วมากมาย
- การแบ่งบล็อกช่วยให้สามารถใช้การดำเนินการเมทริกซ์-เมทริกซ์ที่มีประสิทธิภาพสูงได้ เช่นBLAS 3
- ขนาดของบล็อกสามารถปรับได้เพื่อให้เกิดความสมดุลระหว่างความเร็วในการบรรจบกันกับต้นทุนการคำนวณของการทำออร์โธโกนอลและการใช้วิธี Rayleigh-Ritzในแต่ละรอบการคำนวณ
อัลกอริทึม
เวอร์ชันเวกเตอร์เดี่ยว
เบื้องต้น: การลดระดับความชันสำหรับปัญหาค่าลักษณะเฉพาะ
วิธีการนี้ดำเนินการหาค่าสูงสุด (หรือค่าต่ำสุด) แบบ วนซ้ำ ของ ผลหารเรย์ลี ทั่วไป
ซึ่งส่งผลให้พบคู่ค่าลักษณะเฉพาะที่ใหญ่ที่สุด (หรือเล็กที่สุด) ของ
ทิศทางของการเพิ่มขึ้นที่ชันที่สุด ซึ่งก็คือเกรเดียนต์ของผลหารเรย์ลี ทั่วไปนั้น แปรผันตรงกับเวกเตอร์ในเชิงบวก
เรียกว่าค่าตกค้าง ของเวกเตอร์ลักษณะเฉพาะ หาก มี ตัวปรับสภาพเบื้องต้น (preconditioner) อยู่ ก็จะนำไปใช้กับค่าตกค้างและให้เวกเตอร์
เรียกว่าค่าตกค้างที่ปรับสภาพแล้ว หากไม่มีการปรับสภาพ เราจะตั้งค่าเป็นและดังนั้นวิธีการวนซ้ำ
หรือกล่าวโดยย่อ
เรียกว่าการขึ้น (หรือลง) ที่ชันที่สุดแบบปรับสภาพล่วงหน้า โดยที่ค่าคงที่เรียกว่าขนาดขั้นตอน ขนาดขั้นตอนที่เหมาะสมที่สุดสามารถกำหนดได้โดยการเพิ่มค่าสัมประสิทธิ์เรย์ลีให้สูงสุด กล่าวคือ
(หรือในกรณีของการลดค่าให้เหลือน้อยที่สุด) ซึ่งในกรณีนี้ วิธีดังกล่าวเรียกว่า วิธีที่เหมาะสมที่สุดในระดับท้องถิ่น
การกลับมาเป็นซ้ำในสามเทอม
เพื่อเร่งการบรรจบกันของเส้นทางการขึ้น (หรือลง) ที่ชันที่สุดซึ่งปรับสภาพไว้ล่วงหน้าและเหมาะสมที่สุดในระดับท้องถิ่นอย่างรวดเร็ว สามารถเพิ่มเวกเตอร์พิเศษอีกหนึ่งตัวลงในความสัมพันธ์เวียนเกิด แบบสองพจน์ เพื่อให้กลายเป็นแบบสามพจน์ได้:
(ใช้ในกรณีของการลดค่าให้น้อยที่สุด) การเพิ่ม/ลดค่าสัมประสิทธิ์เรย์ลีในปริภูมิย่อย 3 มิติ สามารถทำได้ในเชิงตัวเลขโดยวิธีเรย์ลี-ริตซ์ การ เพิ่มเวกเตอร์เพิ่มเติม เช่นการประมาณค่าแบบริชาร์ดสันจะไม่ส่งผลให้เกิดการเร่งความเร็วอย่างมีนัยสำคัญ[ 8 ]แต่จะเพิ่มต้นทุนการคำนวณ ดังนั้นจึงไม่แนะนำโดยทั่วไป
การปรับปรุงเสถียรภาพเชิงตัวเลข
เมื่อการวนซ้ำบรรจบกัน เวกเตอร์และ จะ มีความขึ้นต่อกันเชิงเส้นเกือบ สมบูรณ์ ส่งผลให้ความแม่นยำลดลงและทำให้วิธี Rayleigh–Ritzไม่เสถียรทางตัวเลขเมื่อมีข้อผิดพลาดจากการปัดเศษ การสูญเสียความแม่นยำอาจหลีกเลี่ยงได้โดยการแทนที่เวกเตอร์ด้วยเวกเตอร์ซึ่งอาจอยู่ห่างจากในฐานของปริภูมิย่อยสามมิติในขณะที่รักษาปริภูมิย่อยให้คงเดิมและหลีกเลี่ยงการตั้งฉากหรือการดำเนินการพิเศษอื่น ๆ[ 8 ]นอกจากนี้ การทำให้ฐานของปริภูมิย่อยสามมิติเป็นฐานตั้งฉากอาจจำเป็นสำหรับ ปัญหาค่าลักษณะเฉพาะ ที่มีเงื่อนไขไม่ดีเพื่อปรับปรุงเสถียรภาพและความแม่นยำที่สามารถทำได้
อนาล็อกของปริภูมิย่อย Krylov
นี่คือเวอร์ชันเวกเตอร์เดี่ยวของวิธี LOBPCG ซึ่งเป็นหนึ่งในวิธีการทั่วไปที่เป็นไปได้ของ ตัวแก้เชิง เส้นแบบไล่ระดับคอนจูเกตแบบ ปรับ สภาพล่วงหน้า สำหรับกรณีของปัญหาค่าลักษณะ เฉพาะสมมาตร [ 8 ]แม้ในกรณีที่ไม่สำคัญและการประมาณค่าที่ได้จะแตกต่างจากที่ได้จากอัลกอริทึม Lanczosแม้ว่าการประมาณค่าทั้งสองจะอยู่ในปริภูมิย่อย Krylov เดียวกัน ก็ตาม
ตัวอย่างการใช้งานจริง
ความเรียบง่ายอย่างยิ่งและประสิทธิภาพสูงของ LOBPCG เวอร์ชันเวกเตอร์เดี่ยว ทำให้เป็นที่น่าสนใจสำหรับการใช้งานที่เกี่ยวข้องกับค่าลักษณะเฉพาะภายใต้ข้อจำกัดของฮาร์ดแวร์อย่างรุนแรง ตั้งแต่การตรวจจับความผิด ปกติแบบ เรียลไทม์โดยใช้การจัดกลุ่มสเปกตรัมผ่านการแบ่งพาร์ติชันกราฟบนASICหรือFPGAแบบฝังตัว ไปจนถึงการจำลองปรากฏการณ์ทางกายภาพที่มีความซับซ้อนในการคำนวณสูงสุดบนซูเปอร์คอมพิวเตอร์ ระดับเอ็กซาสเกล TOP500
เวอร์ชันบล็อก
สรุป
สามารถคำนวณคู่ค่าลักษณะเฉพาะที่ตามมาได้ทีละรายการโดยใช้ LOBPCG แบบเวกเตอร์เดี่ยวที่เสริมด้วยการลดขนาดเชิงตั้งฉาก หรือคำนวณพร้อมกันเป็นบล็อก ในวิธีการแรก ความไม่แม่นยำในเวกเตอร์ลักษณะเฉพาะโดยประมาณที่คำนวณไว้แล้วจะส่งผลต่อความแม่นยำของเวกเตอร์ลักษณะเฉพาะที่คำนวณในภายหลังแบบบวก ทำให้ข้อผิดพลาดเพิ่มขึ้นทุกครั้งที่มีการคำนวณใหม่ การวนซ้ำเวกเตอร์ ลักษณะเฉพาะโดยประมาณหลายตัว พร้อมกันในบล็อกในลักษณะที่เหมาะสมที่สุดในระดับท้องถิ่นในเวอร์ชันบล็อกของ LOBPCG [ 8 ]ช่วยให้สามารถคำนวณเวกเตอร์ลักษณะเฉพาะได้อย่างรวดเร็ว แม่นยำ และแข็งแกร่ง รวมถึงเวกเตอร์ที่สอดคล้องกับค่าลักษณะเฉพาะเกือบหลายค่า ซึ่ง LOBPCG แบบเวกเตอร์เดี่ยวประสบปัญหาการลู่เข้าช้า ขนาดของบล็อกสามารถปรับได้เพื่อให้สมดุลระหว่างความเสถียรเชิงตัวเลข ความเร็วในการลู่เข้า และต้นทุนการคำนวณของการตั้งฉากและวิธี Rayleigh-Ritz ในแต่ละรอบการวนซ้ำ
การออกแบบหลัก
วิธีการแบบบล็อกใน LOBPCG แทนที่เวกเตอร์เดี่ยวด้วยเวกเตอร์บล็อก กล่าวคือ เมทริกซ์และโดยที่ เช่น แต่ละคอลัมน์ของจะประมาณค่าเวกเตอร์ลักษณะเฉพาะตัวใดตัวหนึ่ง คอลัมน์ทั้งหมดจะถูกวนซ้ำพร้อมกัน และเมทริกซ์ของเวกเตอร์ลักษณะเฉพาะโดยประมาณถัดไปจะถูกกำหนดโดยวิธี Rayleigh–Ritzบนปริภูมิย่อยที่เกิดจากคอลัมน์ทั้งหมดของเมทริกซ์และแต่ละคอลัมน์ของจะถูกคำนวณอย่างง่ายๆ โดยใช้ค่าตกค้างที่ปรับสภาพแล้วสำหรับแต่ละคอลัมน์ของเมทริกซ์จะถูกกำหนดเพื่อให้ปริภูมิย่อยที่เกิดจากคอลัมน์ของและเหมือนกัน
ความเสถียรเชิงตัวเลขเทียบกับประสิทธิภาพ
ผลลัพธ์ของวิธี Rayleigh–Ritzถูกกำหนดโดยปริภูมิย่อยที่เกิดจากคอลัมน์ทั้งหมดของเมทริกซ์และโดยที่ฐานของปริภูมิย่อยนั้นในทางทฤษฎีสามารถเป็นค่าใดก็ได้ อย่างไรก็ตาม ในการคำนวณทางคอมพิวเตอร์ที่ไม่แม่นยำวิธี Rayleigh–Ritzจะไม่เสถียรทางตัวเลขหากเวกเตอร์ฐานบางตัวมีความสัมพันธ์เชิงเส้นโดยประมาณ ความไม่เสถียรทางตัวเลขมักเกิดขึ้น เช่น หากเวกเตอร์ลักษณะเฉพาะบางตัวในบล็อกการวนซ้ำมีความแม่นยำที่สามารถทำได้แล้วสำหรับความแม่นยำของคอมพิวเตอร์ที่กำหนด และจะเด่นชัดเป็นพิเศษในความแม่นยำต่ำ เช่น ความ แม่นยำ เดี่ยว
ศิลปะของการนำ LOBPCG ไปใช้ที่แตกต่างกันหลายแบบคือการรับประกันเสถียรภาพเชิงตัวเลขของ วิธี Rayleigh–Ritzด้วยต้นทุนการคำนวณที่น้อยที่สุดโดยการเลือกฐานที่ดีของปริภูมิย่อย วิธีการที่มีเสถียรภาพมากที่สุดในการทำให้เวกเตอร์ฐานตั้งฉากกัน เช่น โดยกระบวนการ Gram–Schmidtก็เป็นวิธีที่ใช้ต้นทุนการคำนวณสูงที่สุดเช่นกัน ตัวอย่างเช่น การนำ LOBPCG ไปใช้[ 9 ] [ 10 ] ใช้ การแยกส่วน Choleskyที่ไม่เสถียรแต่มีประสิทธิภาพของเมทริกซ์ปกติซึ่งดำเนินการเฉพาะกับเมทริกซ์แต่ละตัวและแทนที่จะดำเนินการกับปริภูมิย่อยทั้งหมด ปริมาณหน่วยความจำคอมพิวเตอร์ที่เพิ่มขึ้นอย่างต่อเนื่องทำให้ขนาดบล็อกทั่วไปในปัจจุบันอยู่ในช่วงที่เปอร์เซ็นต์ของเวลาการคำนวณที่ใช้ไปกับการตั้งฉากและวิธี Rayleigh-Ritz เริ่มมีบทบาทสำคัญ
การล็อกเวกเตอร์ลักษณะเฉพาะที่ลู่เข้าก่อนหน้านี้
วิธีการแบบบล็อกสำหรับปัญหาค่าลักษณะเฉพาะที่วนซ้ำในปริภูมิย่อย มักจะมีเวกเตอร์ลักษณะเฉพาะบางตัวที่ลู่เข้าเร็วกว่าตัวอื่น ๆ ซึ่งเป็นแรงจูงใจให้ล็อกเวกเตอร์ลักษณะเฉพาะที่ลู่เข้าแล้ว กล่าวคือ ลบออกจากลูปการวนซ้ำ เพื่อกำจัดการคำนวณที่ไม่จำเป็นและปรับปรุงเสถียรภาพเชิงตัวเลข การลบเวกเตอร์ลักษณะเฉพาะอย่างง่ายอาจส่งผลให้เกิดสำเนาของเวกเตอร์นั้นในเวกเตอร์ที่ยังคงวนซ้ำอยู่ ข้อเท็จจริงที่ว่าเวกเตอร์ลักษณะเฉพาะของปัญหาค่าลักษณะเฉพาะแบบสมมาตรตั้งฉากกันเป็นคู่ ๆ ชี้ให้เห็นว่าควรเก็บเวกเตอร์ที่วนซ้ำทั้งหมดให้ตั้งฉากกับเวกเตอร์ที่ถูกล็อกไว้
การล็อกสามารถนำไปใช้ได้หลายวิธี โดยยังคงรักษาความแม่นยำและความเสถียรเชิงตัวเลขไว้ พร้อมทั้งลดต้นทุนการคำนวณให้น้อยที่สุด ตัวอย่างเช่น การใช้งาน LOBPCG [ 9 ] [ 10 ]เป็นไปตาม[ 8 ] [ 11 ]โดยแยกการล็อกแบบแข็ง (hard locking) ซึ่งก็คือการลดขนาดโดยการจำกัด โดยที่เวกเตอร์ลักษณะเฉพาะที่ถูกล็อกจะทำหน้าที่เป็นอินพุตของโค้ดและไม่เปลี่ยนแปลง ออกจากการล็อกแบบอ่อน (soft locking) ซึ่งเวกเตอร์ที่ถูกล็อกจะไม่เข้าร่วมในขั้นตอนการวนซ้ำที่มีค่าใช้จ่ายสูงที่สุดในการคำนวณค่าตกค้าง อย่างไรก็ตาม จะเข้าร่วมอย่างเต็มที่ในวิธีการ Rayleigh-Ritz และดังนั้นจึงสามารถเปลี่ยนแปลงได้โดยวิธีการ Rayleigh-Ritz
การแก้ไข LOBPCG II
LOBPCG รวมคอลัมน์ทั้งหมดของเมทริกซ์เข้าไว้ในวิธี Rayleigh–Ritzส่งผลให้ต้องแก้ปัญหาค่าลักษณะ เฉพาะขนาดใหญ่ถึง -by- และคำนวณ ผลคูณดอท ขนาดใหญ่ ถึงในแต่ละรอบการทำซ้ำ โดยที่หมายถึงขนาดบล็อก — จำนวนคอลัมน์ สำหรับขนาดบล็อกขนาดใหญ่วิธีนี้จะเริ่มครอบงำต้นทุนการคำนวณและ I/O และจำกัดการทำงานแบบขนานในกรณีที่อุปกรณ์คำนวณหลายตัวทำงานพร้อมกัน
เอกสาร LOBPCG ฉบับดั้งเดิม[ 8 ]อธิบายถึงการปรับเปลี่ยนที่เรียกว่า LOBPCG II เพื่อแก้ไขปัญหาดังกล่าวโดยการเรียกใช้เวอร์ชันเวกเตอร์เดี่ยวของวิธี LOBPCG สำหรับแต่ละคู่ค่าลักษณะเฉพาะที่ต้องการด้วยขั้นตอน Rayleigh-Ritz ในการแก้ปัญหาค่าลักษณะเฉพาะที่ฉายภาพขนาด 3x3 ขั้นตอน Rayleigh-Ritz ทั่วโลกสำหรับคู่ค่าลักษณะเฉพาะทั้งหมดจะ ดำเนินการ ในทุกรอบการทำซ้ำ แต่เฉพาะบนคอลัมน์ของเมทริกซ์เท่านั้นดังนั้นจึงลดจำนวนผลคูณดอท ที่จำเป็น จากและขนาดของปัญหาค่าลักษณะเฉพาะที่ฉายภาพทั่วโลกจากในแต่ละรอบการทำซ้ำ เหลือ -by- เอกสารอ้างอิง [ 12 ]ไปไกลกว่านั้นโดยการประยุกต์ใช้อัลกอริทึม LOBPCG กับเวกเตอร์ลักษณะเฉพาะโดยประมาณแต่ละตัวแยกกัน กล่าวคือ การเรียกใช้เวอร์ชันที่ไม่ถูกบล็อกของวิธี LOBPCG สำหรับแต่ละคู่ค่าลักษณะเฉพาะที่ต้องการเป็นจำนวนรอบการทำซ้ำคงที่ ขั้นตอน Rayleigh-Ritz ในการทำงานเหล่านี้จำเป็นต้องแก้ปัญหาค่าลักษณะเฉพาะที่ฉายภาพขนาด 3 × 3 เพียงชุดเดียวเท่านั้น กระบวนการ Rayleigh-Ritz ทั่วโลกสำหรับคู่ค่าลักษณะเฉพาะที่ต้องการทั้งหมดจะถูกนำมาใช้เป็นระยะ ๆ เท่านั้น เมื่อสิ้นสุดการวนซ้ำ LOBPCG ที่ไม่ถูกปิดกั้นจำนวนคงที่
การปรับเปลี่ยนดังกล่าวอาจมีความเสถียรน้อยกว่าเมื่อเทียบกับ LOBPCG ดั้งเดิม การเรียกใช้สาขาแต่ละสาขาของ LOBPCG แบบเวกเตอร์เดี่ยวอาจไม่เป็นไปตามเส้นทางการวนซ้ำอย่างต่อเนื่อง แต่จะกลับสร้างการประมาณค่าซ้ำซ้อนของเวกเตอร์ลักษณะเฉพาะเดียวกันแทน LOBPCG แบบเวกเตอร์เดี่ยวอาจไม่เหมาะสมสำหรับค่าลักษณะเฉพาะที่รวมกลุ่มกัน แต่การเรียกใช้ LOBPCG แบบบล็อกขนาดเล็กแยกกันจำเป็นต้องกำหนดขนาดบล็อกโดยอัตโนมัติในระหว่างกระบวนการวนซ้ำ เนื่องจากจำนวนกลุ่มของค่าลักษณะเฉพาะและขนาดของกลุ่มเหล่านั้นอาจไม่เป็นที่ทราบล่วงหน้า
ทฤษฎีและการปฏิบัติของการบรรจบกัน
LOBPCG ตามโครงสร้างรับประกัน[ 8 ]ว่าจะลดค่าRayleigh quotient ให้น้อย ที่สุดโดยไม่ช้ากว่าการไล่ระดับความชันแบบ บล็อกที่ชันที่สุด ซึ่งมีทฤษฎีการลู่เข้าที่ ครอบคลุม เวกเตอร์ ลักษณะเฉพาะทุก ตัวเป็นจุดนิ่งของRayleigh quotientซึ่ง ความชันเป็นศูนย์ ดังนั้นการไล่ระดับความชันอาจช้าลงในบริเวณใกล้เคียงกับเวกเตอร์ลักษณะ เฉพาะใดๆ อย่างไรก็ตาม รับประกันว่าจะลู่เข้าสู่เวกเตอร์ลักษณะเฉพาะด้วยอัตราการลู่เข้าเชิงเส้น หรือหากเวกเตอร์ลักษณะเฉพาะนี้เป็นจุดอานม้าค่า Rayleigh quotientแบบวนซ้ำมีแนวโน้มที่จะลดลงต่ำกว่าค่าลักษณะเฉพาะที่สอดคล้องกันและเริ่มลู่เข้าเชิงเส้นไปยังค่าลักษณะเฉพาะถัดไปด้านล่าง ค่าที่แย่ที่สุดของอัตราการลู่เข้าเชิงเส้นได้รับการกำหนดแล้ว[ 8 ]และขึ้นอยู่กับช่องว่างสัมพัทธ์ระหว่างค่าลักษณะเฉพาะและส่วนที่เหลือของสเปกตรัมเมทริกซ์และคุณภาพของตัวปรับสภาพหากมีอยู่
สำหรับเมทริกซ์ทั่วไป เห็นได้ชัดว่าไม่มีวิธีใดที่จะทำนายเวกเตอร์ลักษณะเฉพาะและสร้างค่าประมาณเริ่มต้นที่ใช้ได้ดีเสมอไป วิธีแก้ปัญหาแบบวนซ้ำโดย LOBPCG อาจมีความไวต่อค่าประมาณเวกเตอร์ลักษณะเฉพาะเริ่มต้น เช่น ใช้เวลานานขึ้นในการลู่เข้าและช้าลงเมื่อผ่านคู่เวกเตอร์ลักษณะเฉพาะระดับกลาง ยิ่งไปกว่านั้น ในทางทฤษฎี เราไม่สามารถรับประกันการลู่เข้าสู่คู่เวกเตอร์ลักษณะเฉพาะที่เล็กที่สุดได้เสมอไป แม้ว่าความน่าจะเป็นที่จะพลาดจะเป็นศูนย์ก็ตามฟังก์ชันเกาส์เซียนแบบสุ่ม คุณภาพดีที่มี ค่า เฉลี่ย เป็นศูนย์มักเป็นค่าเริ่มต้นใน LOBPCG เพื่อสร้างค่าประมาณเริ่มต้น ในการกำหนดค่าประมาณเริ่มต้นให้คงที่ เราสามารถเลือกค่าเริ่มต้นคงที่สำหรับตัวสร้างเลขสุ่มได้
ตรงกันข้ามกับวิธีของ Lanczos วิธี LOBPCG แทบจะไม่แสดงการลู่เข้าแบบซูเปอร์ลิเนียร์เชิงอะซิม โทติก ในทางปฏิบัติเลย
การวิเคราะห์ส่วนประกอบหลักบางส่วน(PCA) และการแยกส่วนค่าเอกลักษณ์ (SVD)
LOBPCG สามารถปรับใช้เพื่อคำนวณค่าเอกลักษณ์ ที่ใหญ่ที่สุดหลายค่า และเวกเตอร์เอกลักษณ์ที่สอดคล้องกัน (SVD บางส่วน) ได้อย่างง่ายดาย เช่น สำหรับการคำนวณ PCA แบบวนซ้ำสำหรับเมทริกซ์ข้อมูลDที่มีค่าเฉลี่ยเป็นศูนย์ โดยไม่ต้องคำนวณเมทริกซ์ความแปรปรวนร่วมD T D อย่างชัดเจน กล่าว คือ ใน ลักษณะที่ไม่ต้องใช้ เมทริกซ์การคำนวณหลักคือการประเมินฟังก์ชันของผลคูณD T ( D X )ของเมทริกซ์ความแปรปรวนร่วมD T Dและเวกเตอร์บล็อกXที่ประมาณเวกเตอร์เอกลักษณ์ที่ต้องการแบบวนซ้ำ PCA ต้องการค่าไอเกนที่ใหญ่ที่สุดของเมทริกซ์ความแปรปรวนร่วม ในขณะที่ LOBPCG มักถูกนำไปใช้เพื่อคำนวณค่าที่เล็กที่สุด วิธีแก้ปัญหาง่ายๆ คือการกลับเครื่องหมายของฟังก์ชัน โดยแทนที่− D T ( D X )ด้วยD T ( D X )และด้วยเหตุนี้จึงกลับลำดับของค่าไอเกน เนื่องจาก LOBPCG ไม่สนใจว่าเมทริกซ์ของปัญหาค่าไอเกนจะเป็นเมทริกซ์บวกแน่นอนหรือไม่[ 9 ]
LOBPCG สำหรับ PCA และ SVD ถูกนำมาใช้ใน SciPy ตั้งแต่เวอร์ชัน 1.4.0 [ 13 ]
การใช้งานซอฟต์แวร์ทั่วไป
Andrew Knyazevผู้คิดค้น LOBPCG ได้เผยแพร่การใช้งานอ้างอิงที่เรียกว่า Block Locally Optimal Preconditioned Eigenvalue Xolvers (BLOPEX) [ 14 ] [ 15 ]พร้อมอินเทอร์เฟซไปยังPETSc , hypreและ Parallel Hierarchical Adaptive MultiLevel method (PHAML) [ 16 ]มีการใช้งานอื่นๆ เช่นGNU Octave [ 17 ] MATLAB (รวมถึงสำหรับอาร์เรย์แบบกระจายหรือแบบเรียงต่อกัน) [ 9 ] Java [ 18 ] Anasazi ( Trilinos ) [ 19 ] SLEPc [ 20 ] [ 21 ] SciPy [ 10 ] Julia [ 22 ] MAGMA [ 23 ] Pytorch [ 24 ] Rust [ 25 ] OpenMPและ OpenACC [ 26 ] CuPy (ไลบรารีอาร์เรย์ที่เข้ากันได้กับ NumPy ที่เร่งความเร็วโดยCUDA ) [ 27 ] Google JAX [ 28 ]และNVIDIA AMGX [ 29 ] LOBPCGถูกนำไปใช้ [ 30 ] แต่ไม่ ได้รวมอยู่ในTensorFlow
แอปพลิเคชัน
แพ็คเกจซอฟต์แวร์scikit-learnและ Megaman [ 31 ]ใช้ LOBPCG เพื่อปรับขนาดการจัดกลุ่มสเปกตรัม[ 32 ]และการเรียนรู้แมนิโฟลด์[ 33 ]ผ่านแผนที่ไอเกนของลาปลาเซียนไปยังชุดข้อมูลขนาดใหญ่NVIDIAได้นำ LOBPCG มาใช้[ 34 ]ในไลบรารี nvGRAPH ที่เปิดตัวในCUDA 8 Sphynx [ 35 ]ซึ่งเป็นตัวแบ่งพาร์ติชันกราฟแบบขนานแบบไฮบริดที่เปิดใช้งานหน่วยความจำแบบกระจายและแบบใช้ร่วมกัน ซึ่งเป็นเครื่องมือแบ่งพาร์ติชันกราฟตัวแรกที่ทำงานบน GPU ในการตั้งค่าหน่วยความจำแบบกระจาย ใช้การจัดกลุ่มสเปกตรัมสำหรับการแบ่งพาร์ติชันกราฟโดยคำนวณเวกเตอร์ไอเกนบนเมทริกซ์ลาปลาเซียนของกราฟโดยใช้ LOBPCG จากแพ็คเกจ Anasazi
LOBPCG ถูกนำไปใช้ในABINIT [ 36 ] (รวมถึง เวอร์ชัน CUDA ) และOctopus [ 37 ]มันถูกใช้สำหรับเมทริกซ์ขนาดหลายพันล้านโดย ผู้เข้ารอบสุดท้าย ของรางวัล Gordon Bellบนซูเปอร์คอมพิวเตอร์Earth Simulator ในญี่ปุ่น[ 38 ] [ 39 ]แบบจำลอง Hubbardสำหรับระบบอิเล็กตรอนที่มีความสัมพันธ์กันอย่างมากเพื่อทำความเข้าใจกลไกเบื้องหลังสภาพนำยิ่งยวดใช้ LOBPCG ในการคำนวณสถานะพื้นฐานของแฮมิลโทเนียนบนคอมพิวเตอร์ K [ 40 ]และระบบมัลติ GPU [ 41 ]
มีMATLAB [ 42 ]และJulia [ 43 ] [ 44 ] เวอร์ชันของ LOBPCG สำหรับ สมการ Kohn-Shamและทฤษฎีฟังก์ชันความหนาแน่น (DFT) โดยใช้ฐานคลื่นระนาบ การใช้งานล่าสุด ได้แก่ TTPY, [ 45 ] Platypus‐QM, [ 46 ] MFDn, [ 47 ] ACE-Molecule, [ 48 ] LACONIC [ 49 ]
LOBPCG จาก BLOPEX ใช้สำหรับ การตั้ง ค่าพรีคอนไฟเนอร์ในไลบรารีตัวแก้ปัญหา Multilevel Balancing Domain Decomposition by Constraints ( BDDC) BDDCML ซึ่งรวมอยู่ใน OpenFTL (Open Finite element Template Library) และโปรแกรมจำลอง Flow123d สำหรับการไหลของน้ำใต้ดิน การขนส่งสารละลายและความร้อนในตัวกลางพรุน ที่มีรอยแตก LOBPCG ได้รับการนำไปใช้[ 50 ]ในLS-DYNAและทางอ้อมในANSYS [ 51 ]
LOBPCG เป็นหนึ่งในตัวแก้ค่าไอเกนหลักใน PYFEMax และซอฟต์แวร์ไฟไนต์เอเลเมนต์แบบหลายฟิสิกส์ประสิทธิภาพสูง Netgen/NGSolve LOBPCG จากhypreถูกรวมเข้ากับ ไลบรารี C++ แบบ โอเพน ซอร์ส น้ำหนักเบา และปรับ ขนาดได้ สำหรับวิธีไฟไนต์เอเลเมนต์MFEMซึ่งใช้ในหลายโครงการ รวมถึงBLAST , XBraid, VisIt , xSDK, สถาบัน FASTMath ในSciDACและศูนย์ออกแบบร่วมเพื่อการแบ่งส่วนแบบเอ็กซาสเกลที่มีประสิทธิภาพ (CEED) ในโครงการ คอมพิวเตอร์เอ็กซาสเกล
ตัวกรองความถี่ต่ำโดยประมาณแบบวนซ้ำที่ใช้ LOBPCG สามารถใช้สำหรับการลดสัญญาณรบกวนดู[ 52 ]เช่น เพื่อเร่งการ ลดสัญญาณรบกวนแบบแปรผันทั้งหมด
การแบ่งส่วนภาพผ่านการจัดกลุ่มสเปกตรัม จะทำการ ฝังข้อมูลมิติต่ำโดยใช้ เมทริกซ์ ความสัมพันธ์ระหว่างพิกเซล ตามด้วยการจัดกลุ่มส่วนประกอบของเวกเตอร์ลักษณะเฉพาะในพื้นที่มิติต่ำ เช่น การใช้กราฟลาปลาเซียนสำหรับตัวกรองแบบทวิภาคีการแบ่งส่วนภาพผ่านการแบ่งส่วนกราฟ สเปกตรัม โดย LOBPCG พร้อมการปรับสภาพล่วงหน้าแบบมัลติกริด ได้รับการเสนอครั้งแรกใน[ 53 ]และได้รับการทดสอบจริงใน[ 54 ]และ[ 55 ]แนวทางหลังนี้ได้รับการนำไปใช้ใน Python scikit-learn [ 56 ] ในภายหลัง ซึ่งใช้ LOBPCG จากSciPyพร้อมการปรับสภาพล่วงหน้าแบบมัลติกริดเชิงพีชคณิตเพื่อแก้ปัญหาค่าลักษณะเฉพาะสำหรับกราฟลาปลาเซียน
External links
- LOBPCG in MATLAB
- LOBPCG in Octave
- LOBPCG in SciPy
- LOBPCG in Java at Google Code
- LOBPCG in Block Locally Optimal Preconditioned Eigenvalue Xolvers (BLOPEX) at GitHub and archived at Google Code
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ โลบีพีซีจี
Locally Optimal Block Preconditioned Conjugate Gradient ( LOBPCG ) เป็นวิธีการที่ไม่ต้องใช้เมทริกซ์ ในการหา ค่าลักษณะเฉพาะที่ใหญ่ที่สุด (หรือเล็กที่สุด) และเวกเตอร์ลักษณะ...
พื้นหลัง
Kantorovich ในปี 1948 เสนอให้คำนวณ ค่าไอเกน ที่เล็กที่สุด ของเมทริกซ์สมมาตรโดย ใช้ การลดลงที่ชันที่สุด โดยใช้ทิศทาง ของเกร เดียนต์ ที่ปรับขนาดของ ผลหาร Rayleigh ใน ผลคูณสเกลาร์ โดยขนาดขั้นตอนคำนวณโดยการลดผลหาร Rayleigh ให้เหลือน้อยที่สุดใน ช่วงเชิงเส้น...
เวอร์ชันเวกเตอร์เดี่ยว
วิธีการนี้ดำเนินการหาค่าสูงสุด (หรือค่าต่ำสุด) แบบ วนซ้ำ ของ ผลหารเรย์ลี ทั่วไป
เวอร์ชันบล็อก
สามารถคำนวณคู่ค่าลักษณะเฉพาะที่ตามมาได้ทีละรายการโดยใช้ LOBPCG แบบเวกเตอร์เดี่ยวที่เสริมด้วยการลดขนาดเชิงตั้งฉาก หรือคำนวณพร้อมกันเป็นบล็อก ในวิธีการแรก...