การอัพเดตการแยกย่อย SVD หลังจากเพิ่มหนึ่งแถวใหม่ในเมทริกซ์


17

สมมติว่าผมมีความหนาแน่นเมทริกซ์ของขนาดที่มีการสลายตัว SVDในฉันสามารถคำนวณ SVD ได้ดังนี้: .Aม.×n

A=ยูSV.
Rsvd(A)

หากมีการเพิ่ม -th ใหม่ลงในสามารถคำนวณการแยกย่อย SVD ใหม่ตามแบบเก่า (เช่นโดยใช้ , , และ ) โดยไม่ต้องคำนวณใหม่ SVD ตั้งแต่ต้น?(ม.+1)AยูSV


3
rank 1 updatesตรวจสอบวรรณกรรมของ การปรับปรุง SVD ออนไลน์อย่างรวดเร็วสำหรับระบบผู้แนะนำที่มีน้ำหนักเบาโดย Brand เป็นเอกสารฉบับแรกที่เข้าถึงได้ ฉันไม่เห็นบางสิ่งสำหรับ SVD ที่ใช้งานไปแล้วใน R อย่างน่าเสียดาย มีการอัปเดตของ Cholesky อยู่ ( updownจากMatrix) ขอบคุณ CHOLMOD ความกระจ่างของเมทริกซ์ของคุณจะสร้างความแตกต่างให้กับโซลูชั่นสุดท้ายของคุณ คุณคิดว่าเป็นเมทริกซ์หนาแน่นหรือไม่? A
usεr11852พูดว่า Reinstate Monic

2
+1 ถึง @ usεr11852 โปรดทราบว่ามันง่ายกว่าและมาตรฐานมากกว่าในการอัปเดต QR และในบางแอปพลิเคชัน QR นั้นเพียงพอและไม่จำเป็นต้องใช้ SVD ดังนั้นให้คิดถึงใบสมัครของคุณด้วย
อะมีบาพูดว่า Reinstate Monica

ใช่เมทริกซ์นั้นหนาแน่น
1436187

1
'Ditch' วรรณกรรมผู้แนะนำแล้วมุ่งเน้นไปที่การประมวลผลภาพ คำถามที่คล้ายกันกับทัวร์ได้ถูกโพสต์ในแง่ของ "ภาพใหม่" ในฐานข้อมูล ตัวอย่างเช่นลางสังหรณ์ของฉันคือใครบางคนจะต้องมีอัลกอริทึมเพื่ออัปเดตรายการ eigenfaces ของเขาออนไลน์ พวกเหล่านี้ทำงานด้วยการแสดงเมทริกซ์หนาแน่น
usεr11852พูดว่า Reinstate Monic

บางหัวข้อที่เกี่ยวข้องในเว็บไซต์อื่น ๆ SE: scicomp.stackexchange.com/questions/2678 , scicomp.stackexchange.com/questions/19253 , mathoverflow.net/questions/143375
อะมีบาพูดว่า Reinstate Monica

คำตอบ:


14

ใช่หนึ่งสามารถอัปเดตการแยกย่อย SVD หลังจากเพิ่มหนึ่งแถวใหม่ไปยังเมทริกซ์ที่มีอยู่

โดยทั่วไปนี้ " เพิ่มหนึ่งเพื่อ " การกำหนดปัญหาที่รู้จักกันว่าการอัปเดตอันดับหนึ่ง ลิงก์ MathOverflow จัดทำโดย @amoeba ใน "การปรับปรุงอันดับสองที่มีประสิทธิภาพของการแยกค่า eigenvalue " เป็นขั้นตอนแรกที่ยอดเยี่ยมหากคุณต้องการเริ่มมองลึกลงไปในเรื่องนี้ บทความแรกให้คำตอบที่ชัดเจนสำหรับคำถามเฉพาะของคุณ เพียงเพื่อชี้แจงสิ่งที่อันดับหนึ่งและอันดับสองเฉลี่ยเพื่อให้คุณไม่ได้รับสับสนหากใหม่ของคุณ*เป็นเช่นที่:A* * * *

A* * * *=A-ยูโวลต์T

โดยที่และvเป็นเวกเตอร์คุณต้องอ้างถึงสิ่งนี้ว่าเป็นการอัปเดตอันดับหนึ่ง (หรือการก่อกวน ) พื้นฐานของการอัปเดตนี้ถูกกำหนดโดยสูตร Sherman-Morrison . หากการก่อกวนนั้นมีมากกว่าหนึ่งอันดับนั่นก็คือ A = A - U V Tยูโวลต์

A* * * *=A-ยูVT

สูตรวูดมาลงเล่น หากคุณเห็นสูตรเหล่านี้คุณจะสังเกตเห็นว่ามีการผกผันเกี่ยวข้องมากมาย คุณไม่ได้แก้ปัญหาเหล่านี้โดยตรง ในขณะที่คุณได้แก้ไขระบบย่อยของพวกเขาแล้ว (เช่นคุณมีการคำนวณการย่อยสลายอยู่แล้ว) คุณใช้สิ่งเหล่านี้เพื่อให้ได้ประมาณการที่เร็วขึ้นและ / หรือมีเสถียรภาพมากขึ้น (นั่นเป็นเหตุผลที่ผู้คนยังคงค้นคว้าข้อมูลในสาขานี้) ฉันได้ใช้หนังสือ " สถิติการคำนวณ " โดย JE Gentle เป็นข้อมูลอ้างอิงเป็นจำนวนมาก ฉันคิดว่า Chapt 5 พีชคณิตเชิงเส้นเชิงตัวเลขจะตั้งค่าคุณอย่างเหมาะสม (The uber-classic: " พีชคณิตเมทริกซ์จากมุมมองของนักสถิติ " โดย Harville โชคไม่ดีที่ไม่ได้สัมผัสกับการอัปเดตอันดับเลย)

เมื่อพิจารณาถึงสถิติ / แอปพลิเคชั่นของสิ่งต่าง ๆ การอัปเดตอันดับหนึ่งเป็นเรื่องธรรมดาในระบบผู้แนะนำเพราะอาจมีลูกค้าหลายพันรายและทำการคำนวณ SVD ใหม่ (หรือการย่อยสลายที่กำหนดสำหรับเรื่องนั้น) ในแต่ละครั้งที่ผู้ใช้ใหม่หรือผลิตภัณฑ์ใหม่ การเพิ่มหรือลบออกค่อนข้างสิ้นเปลือง (หากไม่สามารถบรรลุได้) โดยปกติการฝึกอบรมระบบผู้แนะนำจะกระจัดกระจายและสิ่งนี้ทำให้อัลกอริทึมมีประสิทธิภาพมากขึ้น เอกสารฉบับแรกที่สามารถเข้าถึงได้คือ " การปรับปรุง SVD ออนไลน์อย่างรวดเร็วสำหรับระบบผู้แนะนำที่มีน้ำหนักเบา " ต้นฉบับโดย M. Brand ไปสู่การฝึกอบรมที่หนาแน่นฉันคิดว่าการดูเอกสารจากการจดจำรูปแบบและการประมวลผลการถ่ายภาพสามารถช่วยให้คุณใช้วิธีอัลกอริทึมที่แท้จริงได้ ตัวอย่างเช่นเอกสาร:

  1. การเรียนรู้ที่เพิ่มขึ้นขององค์ประกอบหลักแบบสองทิศทางสำหรับการจดจำใบหน้า (2009)โดย Ren และ Dai
  2. ในการเรียนรู้พื้นที่ย่อยที่เพิ่มขึ้นและมีประสิทธิภาพ (2003)โดย Li et al
  3. การสกัดพื้นฐาน Karhunen-Loeve ตามลำดับและการนำไปใช้กับรูปภาพ (2000)โดย Levey และ Lindenbaum
  4. การเรียนรู้เพิ่มเติมสำหรับการติดตามด้วยภาพที่แข็งแกร่ง (2007)โดย Ross และคณะ

ทุกคนดูเหมือนจะแก้ปัญหาเดียวกันในแกนกลางของพวกเขา; คุณสมบัติใหม่ที่เข้ามาและเราจำเป็นต้องปรับปรุงการแสดงของเราตามไปอย่างรวดเร็ว ขอให้สังเกตว่าการฝึกอบรมเหล่านี้ไม่ได้เป็นสมมาตรหรือแม้กระทั่งสแควร์ งานอีกชิ้นของ M. Brand สามารถแก้ไขปัญหานี้ได้ (ดูบทความ " การปรับเปลี่ยนระดับต่ำอย่างรวดเร็วของการสลายตัวของค่าเอกพจน์บาง (2006) " - สิ่งนี้ยังกล่าวถึงในลิงก์ MO ที่ให้ไว้ในตอนต้นของโพสต์) เอกสารที่ดีจำนวนมากเกี่ยวกับเรื่องนี้ แต่ส่วนใหญ่มีแนวโน้มที่จะเป็นคณิตศาสตร์อย่างหนัก (เช่นกระดาษ Benaych-Georgesa และ Nadakuditi บน " ค่าเอกพจน์และเวกเตอร์ของการรบกวนต่ำอันดับของเมทริกซ์สุ่มรูปสี่เหลี่ยมผืนผ้าขนาดใหญ่ (2012)") และฉันไม่คิดว่าพวกเขาจะช่วยแก้ปัญหาในไม่ช้าฉันขอแนะนำให้คุณมุ่งเน้นไปที่วรรณกรรมการประมวลผลภาพ

น่าเสียดายที่ฉันยังไม่เจอการใช้งาน R สำหรับการอัพเดทอันดับหนึ่ง คำตอบเกี่ยวกับ " การใช้งาน SVD ที่อัพเดตได้ใน Python, C หรือ Fortran? " จาก Computational Science SE ให้การใช้งาน MATLAB และ C ++ เป็นจำนวนมากซึ่งคุณอาจต้องการพิจารณา โดยทั่วไปแล้วการใช้ R, Python และอื่น ๆ คือการวางล้อมรอบการปรับใช้ C, C ++ หรือ FORTRAN


6
นี่เป็นคำอธิบายที่ดี แต่ฉันรู้สึกผิดหวังที่ไม่พบคำตอบของคำถาม ปรากฎว่าบทความอีกเล่มหนึ่งของ Matthew Brandซึ่งเชื่อมโยงกับคำตอบของ MO มีคำตอบที่ชัดเจน
whuber

5
+1 ทั้งคุณและ @whuber (และฉันไม่คิดว่าจะหลีกเลี่ยงการ "ทำซ้ำ" ข้อมูลใด ๆ ที่ให้ไว้ในเว็บไซต์ SE อื่น! ฉันขอยืนยันว่าเราควรพยายามทำให้ข้อมูลที่อยู่บนเว็บไซต์นี้เป็นแบบยั่งยืนด้วยตนเอง เท่าที่จะเป็นไปได้จริง ๆ แล้วข้อมูลเกือบทั้งหมดที่อยู่ในที่นี้เป็นเพียงความรู้สึกในการทำซ้ำตำราเรียนที่มีอยู่ทรัพยากรออนไลน์หรือเอกสารการวิจัย) คำถามหนึ่ง: คุณพูดถึงสูตรเชอร์แมน - มอร์ริสันและวูดเบอรีที่อธิบายว่าการผกผันของเมทริกซ์เปลี่ยนแปลงอย่างไรหลังจากการปรับปรุงอันดับหนึ่งหรือการปรับปรุงอันดับที่สูงขึ้น พวกเขาต้องทำอะไรกับ SVD
อะมีบาพูดว่า Reinstate Monica

1
ฉันเข้าใจว่าทำไมคุณอาจต้องการนำผู้คนไปยังหน้า MO สำหรับลิงก์นั้น แต่คุณอาจพิจารณาโดยตรงว่าระบุว่าจะแก้ปัญหาได้! ("ขั้นตอนแรกที่ดี" คือการพูดเกินจริงอย่างมาก) ความเห็นส่วนใหญ่ของคุณอาจเข้าใจผิดเนื่องจากแสดงว่าคุณยังไม่พบวิธีแก้ไขที่ดี
whuber

1
@whuber: "ดี" กลายเป็น "ดี" และตอนนี้ฉันพูดถึงกระดาษด้วยดีกว่าไหม :) (ขอบคุณสำหรับข้อเสนอแนะโดยวิธี.)
usεr11852พูดว่า Reinstate Monic

2
เพียงเพื่อประโยชน์ของประวัติศาสตร์: พวงและนีลเซ่นเป็นคนแรกที่แสดงให้เห็นถึงวิธีการปรับปรุงและลดลง SVD วิธีการของตราสินค้าที่มีผลต่อวิธีการทั่วไปของกระดาษเก่านี้
JM ไม่ใช่นักสถิติ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.