กลับไปหน้าบทความ

อ่าน 9 นาที

การวนซ้ำพลังงาน

ในทางคณิตศาสตร์การวนซ้ำกำลัง (หรือที่รู้จักกันในชื่อวิธีกำลัง ) เป็นอัลกอริทึมค่าลักษณะเฉพาะ : เมื่อกำหนดเมทริกซ์ที่สามารถทำให้เป็นแนวทแยงได้ อัลกอริทึมจะสร้างจำนวน ซึ่งเป็นค่า...

การวนซ้ำพลังงาน

ในทางคณิตศาสตร์การวนซ้ำกำลัง (หรือที่รู้จักกันในชื่อวิธีกำลัง ) เป็นอัลกอริทึมค่าลักษณะเฉพาะ : เมื่อกำหนดเมทริกซ์ที่สามารถทำให้เป็นแนวทแยงได้ อัลกอริทึมจะสร้างจำนวน ซึ่งเป็นค่า ลักษณะเฉพาะที่มากที่สุด (ในค่าสัมบูรณ์) ของและเวกเตอร์ที่ไม่เป็นศูนย์ซึ่งเป็นเวกเตอร์ลักษณะ เฉพาะที่สอดคล้องกัน ของนั่นคืออัลกอริทึมนี้ยังเป็นที่รู้จักในชื่อการวนซ้ำของVon Mises [ 1 ]

การวนซ้ำกำลัง (Power iteration) เป็นอัลกอริธึมที่ง่ายมาก แต่การลู่เข้าอาจช้า การดำเนินการที่ใช้เวลานานที่สุดของอัลกอริธึมคือการคูณเมทริกซ์ด้วยเวกเตอร์ ดังนั้นจึงมีประสิทธิภาพสำหรับเมทริกซ์สปาร์ส ขนาดใหญ่มาก ที่มีการใช้งานที่เหมาะสม ความเร็วในการลู่เข้าเป็นไป ตามสูตร โดย ที่คือจำนวนการวนซ้ำ และและ คือค่าไอเกนที่มีค่าสัมบูรณ์มากที่สุดและค่าไอเกนที่มีค่าสัมบูรณ์มากเป็นอันดับสองตามลำดับ (ดูในส่วนถัดไป ) กล่าวอีกนัยหนึ่ง การลู่เข้าเป็นแบบเลขชี้กำลังโดยมีฐานเป็นช่องว่างสเปกตรัม

วิธีการ

ภาพเคลื่อนไหวที่แสดงภาพขั้นตอนวิธีวนซ้ำกำลังบนเมทริกซ์ 2 x 2 เมทริกซ์แสดงด้วยเวกเตอร์ลักษณะเฉพาะสองตัว ข้อผิดพลาดคำนวณได้ดังนี้

อัลกอริทึมการวนซ้ำกำลังเริ่มต้นด้วยเวกเตอร์ซึ่งอาจเป็นค่าประมาณของเวกเตอร์ลักษณะเฉพาะที่เด่นที่สุดหรือเวกเตอร์สุ่ม วิธีการนี้อธิบายได้ด้วยความสัมพันธ์เวียนเกิด

ดังนั้น ในแต่ละรอบการทำซ้ำ เวกเตอร์จะถูกคูณด้วยเมทริกซ์และปรับให้เป็น เวกเตอร์หน่วย

ถ้าเราสมมติว่ามีค่าไอเกนค่าหนึ่งที่มีขนาดใหญ่กว่าค่าไอเกนค่าอื่นๆ อย่างชัดเจน กล่าวคือ

และหากเวกเตอร์เริ่มต้นมีส่วนประกอบที่ไม่เป็นศูนย์ในทิศทางของเวกเตอร์ลักษณะเฉพาะที่เกี่ยวข้องกับค่าลักษณะเฉพาะที่เด่นที่สุด ลำดับย่อยจะลู่เข้าสู่เวกเตอร์ลักษณะเฉพาะที่เกี่ยวข้องกับค่าลักษณะเฉพาะที่เด่นที่สุด

หากไม่มีข้อสมมติสองข้อข้างต้น ลำดับนี้อาจไม่ลู่เข้า ในลำดับนี้

,

โดยที่เป็นเวกเตอร์ลักษณะเฉพาะที่เกี่ยวข้องกับค่าลักษณะเฉพาะที่เด่นที่สุด และการมีอยู่ของเทอมแสดงว่าไม่ลู่เข้าเว้นแต่ภายใต้สมมติฐานสองข้อที่ระบุไว้ข้างต้น ลำดับที่กำหนดโดย

ลู่เข้าสู่ค่าลักษณะเฉพาะที่เด่นที่สุด (ด้วยอัตราส่วนเรย์ลี )

เราสามารถคำนวณค่านี้ได้โดยใช้อัลกอริทึมต่อไปนี้ (แสดงใน Python ด้วย NumPy):

import numpy as npจากnumpy นำเข้าtyping เป็นnptdef random_vector ( dimension : int ) -> npt . NDArray [ np . float64 ]:rng = np.random.default_rng ( )คืนค่าrng.random ( dimension )def power_method (ตอบ: nptNDArray [ np . float64 ],จำนวนรอบการทำซ้ำ: จำนวนเต็ม,) - > npt NDArray [ np . float64 ]:ถ้าA.shape [ 0 ] ! = A.shape [ 1 ] :raise ValueError ( "A ต้องเป็นเมทริกซ์จัตุรัส" )# เลือกเวกเตอร์เริ่มต้นแบบสุ่มเพื่อลดโอกาส# ว่ามันตั้งฉากกับเวกเตอร์ลักษณะเฉพาะที่เด่นที่สุดb_k = random_vector ( A . shape [ 1 ])# ปรับเวกเตอร์เริ่มต้นให้เป็นเวกเตอร์หน่วยb_k / = np.linalg.norm ( b_k )สำหรับ_ ในช่วง( จำนวนรอบ):# คูณด้วยเมทริกซ์b_k1 = A @ b_k# คำนวณความยาวของเวกเตอร์ใหม่b_k1_norm = np.linalg.norm ( b_k1 )# หยุดการทำงานหากเวกเตอร์ใหม่มีค่าอยู่ในช่วงความแม่นยำของเครื่องที่เท่ากับ 0ถ้าnp.isclose ( b_k1_norm , 0.0 ) :raise ValueError ( "เมธอด Power สร้างเวกเตอร์เป็นศูนย์" )# ปรับเวกเตอร์ให้เป็นค่าปกติสำหรับการวนซ้ำครั้งต่อไปb_k = b_k1 / b_k1_norm# ส่งคืนเวกเตอร์ลักษณะเฉพาะเด่นโดยประมาณส่งคืนb_k

เวกเตอร์ลู่เข้าสู่เวกเตอร์ลักษณะเฉพาะที่เกี่ยวข้อง ในอุดมคติแล้ว ควรใช้ค่าสัมประสิทธิ์เรย์ลีเพื่อหาค่าลักษณะเฉพาะที่เกี่ยวข้อง

อัลกอริทึมนี้ใช้ในการคำนวณ Google PageRank

นอกจากนี้ ยังสามารถใช้วิธีนี้ในการคำนวณรัศมีสเปกตรัม (ค่าลักษณะเฉพาะที่มีขนาดใหญ่ที่สุด สำหรับเมทริกซ์จัตุรัส) โดยการคำนวณอัตราส่วนเรย์ลีห์

การวิเคราะห์

ให้แยกเมทริกซ์ ออกเป็นรูปแบบจอร์แดนแคนอนิก : โดยที่คอลัมน์แรกของคือเวกเตอร์ลักษณะเฉพาะของ ที่สอดคล้องกับค่าลักษณะเฉพาะเด่นเนื่องจากโดยทั่วไปแล้วค่าลักษณะเฉพาะเด่นของ มีเพียงค่าเดียว บล็อกจอร์แดนแรกของคือเมทริกซ์โดยที่คือค่าลักษณะเฉพาะที่ใหญ่ที่สุดของในแง่ของขนาด เวกเตอร์เริ่มต้นสามารถเขียนได้เป็นผลรวมเชิงเส้นของคอลัมน์ของ:

ตามสมมติฐานมีส่วนประกอบที่ไม่เป็นศูนย์ในทิศทางของเวกเตอร์ลักษณะเฉพาะที่เด่นดังนั้น

ความสัมพันธ์เวียนเกิดที่มีประโยชน์ในการคำนวณสำหรับสามารถเขียนใหม่ได้ดังนี้:

โดยที่นิพจน์ดังกล่าวสามารถวิเคราะห์ได้ง่ายกว่าด้วยวิธีการดังต่อไปนี้:

นิพจน์ข้างต้นสามารถลดรูปได้ดังนี้

ลิมิตนี้เป็นผลมาจากข้อเท็จจริงที่ว่าค่าไอเกนของมีขนาดน้อยกว่า 1 ดังนั้น

ดังนั้นจึงสรุปได้ว่า:

โดยใช้ข้อเท็จจริงนี้สามารถเขียนในรูปแบบที่เน้นความสัมพันธ์กับเมื่อมีขนาดใหญ่ได้:

ที่ไหนและเช่น

ลำดับนี้มีขอบเขต ดังนั้นจึงมีลำดับย่อยที่ลู่เข้า โปรดสังเกตว่าเวกเตอร์ลักษณะเฉพาะที่สอดคล้องกับค่าลักษณะเฉพาะที่เด่นที่สุดนั้นมีเอกลักษณ์เฉพาะตัวโดยมีค่าเพียงค่าเดียวเท่านั้น ดังนั้นถึงแม้ลำดับนี้อาจจะไม่ลู่เข้า แต่ก็ เกือบจะเป็นเวกเตอร์ลักษณะเฉพาะของสำหรับค่า ที่มีขนาดใหญ่

หรืออีกวิธีหนึ่ง หาก เมทริกซ์ สามารถ ทำให้เป็นเมทริกซ์ทแยงมุมได้การพิสูจน์ต่อไปนี้จะให้ผลลัพธ์เดียวกัน:

ให้และ เป็นค่าลักษณะเฉพาะ (นับรวมความซ้ำซ้อน) ของเรียงลำดับตามค่าสัมบูรณ์จากมากไปน้อย (อนุญาตให้เท่ากันได้) นั่นคือและให้เป็นเวกเตอร์ลักษณะเฉพาะที่สอดคล้องกัน สมมติว่าเป็นค่าลักษณะเฉพาะที่เด่นที่สุด ดังนั้นสำหรับทุก.

เวกเตอร์เริ่มต้นสามารถเขียนได้ดังนี้:

ถ้าเลือกแบบสุ่ม (ด้วยความน่าจะเป็นแบบสม่ำเสมอ) แล้วด้วยความน่าจะเป็น 1ทีนี้

ในทางกลับกัน:

ดังนั้น จึงลู่เข้าสู่ (ผลคูณของ) เวกเตอร์ลักษณะเฉพาะ การลู่เข้าเป็นการลู่เข้าเชิงเรขาคณิตโดยมีอัตราส่วน

ดังนั้น วิธีการนี้จะลู่เข้าช้าลงหากมีค่าไอเกนที่มีขนาดใกล้เคียงกับค่าไอเกนหลัก

แอปพลิเคชัน

แม้ว่าวิธีการวนซ้ำกำลัง (power iteration) จะประมาณค่าไอเกนเพียงค่าเดียวของเมทริกซ์ แต่ก็ยังคงมีประโยชน์สำหรับปัญหาการคำนวณ บางอย่าง ตัวอย่างเช่นGoogleใช้ในการคำนวณPageRankของเอกสารในเครื่องมือค้นหา[ 2 ]และTwitterใช้เพื่อแสดงคำแนะนำแก่ผู้ใช้ว่าควรติดตามใคร[ 3 ]วิธีการวนซ้ำกำลังเหมาะอย่างยิ่งสำหรับเมทริกซ์แบบเบาบางเช่น เมทริกซ์เว็บ หรือเป็นวิธีการที่ไม่ต้องใช้เมทริกซ์ ซึ่งไม่จำเป็นต้องจัดเก็บเมทริกซ์สัมประสิทธิ์ อย่างชัดเจน แต่สามารถเข้าถึงฟังก์ชันที่ประเมินผลคูณเมทริกซ์-เวกเตอร์ได้สำหรับเมทริกซ์ที่ไม่สมมาตรที่มีสภาพดี วิธีการวนซ้ำกำลังสามารถทำงานได้ดีกว่า การวนซ้ำ Arnoldiที่ ซับซ้อนกว่าสำหรับเมทริกซ์สมมาตร วิธีการวนซ้ำกำลังไม่ค่อยได้ใช้ เนื่องจากความเร็วในการลู่เข้าสามารถเพิ่มขึ้นได้ง่ายโดยไม่ต้องเสียสละต้นทุนต่อการวนซ้ำที่น้อยนิด ดูตัวอย่างเช่นการวนซ้ำ LanczosและLOBPCG

อัลกอริทึมค่าลักษณะเฉพาะขั้นสูงบางส่วนสามารถเข้าใจได้ว่าเป็นรูปแบบต่างๆ ของการวนซ้ำกำลัง ตัวอย่างเช่น วิธี การวนซ้ำผกผันใช้การวนซ้ำกำลังกับเมทริกซ์ อัลกอริทึมอื่นๆ พิจารณาพื้นที่ย่อยทั้งหมดที่สร้างขึ้นโดยเวกเตอร์พื้นที่ย่อยนี้เรียกว่าพื้นที่ย่อย Krylovสามารถคำนวณได้โดยการวนซ้ำ Arnoldiหรือ การวน ซ้ำ Lanczos การวนซ้ำ Gram [ 4 ]เป็นวิธีการแบบซูเปอร์ลิเนียร์และกำหนดได้ในการคำนวณคู่ค่าลักษณะเฉพาะที่ใหญ่ที่สุด

ดูเพิ่มเติม

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Power_iteration&oldid=1353074721 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ การวนซ้ำพลังงาน

ในทางคณิตศาสตร์การวนซ้ำกำลัง (หรือที่รู้จักกันในชื่อวิธีกำลัง ) เป็นอัลกอริทึมค่าลักษณะเฉพาะ : เมื่อกำหนดเมทริกซ์ที่สามารถทำให้เป็นแนวทแยงได้ อัลกอริทึมจะสร้างจำนวน ซึ่งเป็นค่า...

วิธีการ

อัลกอริทึมการวนซ้ำกำลังเริ่มต้นด้วยเวกเตอร์ซึ่งอาจเป็นค่าประมาณของเวกเตอร์ลักษณะเฉพาะที่เด่นที่สุดหรือเวกเตอร์สุ่ม วิธีการนี้อธิบายได้ด้วย ความสัมพันธ์เวียนเกิด b 0 {\displaystyle b_{0}}

การวิเคราะห์

ให้แยกเมทริกซ์ ออกเป็น รูปแบบจอร์แดนแคนอนิก : โดยที่คอลัมน์แรกของคือเวกเตอร์ลักษณะเฉพาะของ ที่สอดคล้องกับค่าลักษณะเฉพาะเด่นเนื่องจาก โดยทั่วไปแล้ว ค่าลักษณะเฉพาะเด่นของ มีเพียงค่าเดียว...

แอปพลิเคชัน

แม้ว่าวิธีการวนซ้ำกำลัง (power iteration) จะประมาณค่าไอเกนเพียงค่าเดียวของเมทริกซ์ แต่ก็ยังคงมีประโยชน์สำหรับ ปัญหาการคำนวณ บางอย่าง ตัวอย่างเช่น Google ใช้ในการคำนวณ PageRank ของเอกสารในเครื่องมือค้นหา [ 2 ] และ Twitter...