ภาพรวม
คุณอาจต้องการลองใช้วิธีการเปลี่ยนเส้นทางของตัวคูณ (ADMM) ซึ่งพบว่ามาบรรจบกันอย่างรวดเร็วอย่างน่าประหลาดใจสำหรับปัญหาประเภท lasso กลยุทธ์คือการกำหนดปัญหาด้วยการเพิ่มลากรองจ์และเพิ่มความชันของปัญหาสองขั้น มันดีโดยเฉพาะอย่างยิ่งสำหรับปัญหาที่ทำให้เป็นปกตินี้เนื่องจากส่วนที่ไม่เรียบของการวนซ้ำของแต่ละวิธีมีวิธีการแก้ปัญหาที่แน่นอนคุณสามารถประเมินองค์ประกอบแต่ละองค์ประกอบได้อย่างง่ายดายl1l1
ในโพสต์นี้เรา
- รับการกำหนด ADMM โดยรวมสำหรับการทำให้ปัญหาของคุณเป็นไปโดยทั่วไป
- รับมาจากปัญหาย่อยสำหรับการวนซ้ำ ADMM แต่ละครั้งและให้ความเชี่ยวชาญพวกเขาในสถานการณ์ของคุณแล้ว
- ตรวจสอบที่เกิดระบบเชิงเส้นที่ต้องได้รับการแก้ไขแต่ละซ้ำและพัฒนาแก้ได้อย่างรวดเร็ว (หรือ preconditioner) ตาม precomputing decompositions eigenvalue (หรือประมาณอันดับที่ต่ำดังกล่าว) สำหรับและ TMTMYYT
- สรุปด้วยคำพูดสรุปไม่กี่
ความคิดใหญ่ ๆ ส่วนใหญ่ที่นี่ครอบคลุมอยู่ในบทความวิจารณ์ที่ยอดเยี่ยมดังต่อไปนี้
Boyd, Stephen, et al. "การเพิ่มประสิทธิภาพแบบกระจายและการเรียนรู้เชิงสถิติด้วยวิธีการสลับทิศทางของตัวคูณ" รากฐานและแนวโน้ม®ในการเรียนรู้ของเครื่อง 3.1 (2011): 1-122 http://www.stanford.edu/~boyd/papers/pdf/admm_distr_stats.pdf
ก่อนที่จะลงรายละเอียดฉันต้องการทราบว่านี่เป็นวิธีการ / อัลกอริทึมตอบไม่ใช่คำตอบรหัสที่มีอยู่ในทางปฏิบัติ - ถ้าคุณต้องการใช้วิธีนี้คุณจะต้องม้วนการใช้งานของคุณเอง
สูตร ADMM
โดยทั่วไปสมมติว่าคุณต้องการแก้
minxs.t.∑i|xi|Ax=b.
ปัญหาในการโพสต์ต้นฉบับตกอยู่ในหมวดหมู่นี้หลังจาก vectorization ที่เหมาะสม (นี่เป็นเพียงหลักการเท่านั้น - เราจะเห็นว่าการแปลงเป็นเวกเตอร์ไม่จำเป็นต้องดำเนินการในทางปฏิบัติ)
คุณสามารถแก้ปัญหาที่เทียบเท่าแทน
ซึ่งมี Lagrangian
minx,zs.t.&∑i|xi|+α2||x−z||2+β2||Az−b||2Az=bx=z,
L(x,z,λ,γ)==∑i|xi|+α2||x−z||2+β2||Az−b||2+λT(Az−b)+γT(x−z)∑i|xi|+α2||x−z+1αγ||2+β2||Az−b+1βλ||2+α2||1αγ||2+β2||1βλ||2.
วิธีการสลับทิศทางของตัวทวีคูณแก้ปัญหาคู่
ผ่านการไล่ระดับสีของตัวแปรสองตัวยกเว้น ไม่แน่นอนการสลับการประมาณการในปัญหาย่อยที่สอง นั่นคือการวนซ้ำ
maxλ,γminx,zL(x,z,λ,γ),
xk+1zk+1γk+1λk+1=argminxL(x,zk,λk,γk)=argminzL(xk+1,z,λk,γk)=γk+α(xk+1−zk+1)=λk+β(Azk+1−b).
ภายใต้เงื่อนไขที่ไม่แน่นอนบางประการเกี่ยวกับพารามิเตอร์และ (อธิบายไว้ในกระดาษ Boyd & Parikh ที่ลิงก์ด้านบน) วิธีการ ADMM จะรวมเข้ากับโซลูชันที่แท้จริง อัตราการคอนเวอร์เจนซ์เป็นแบบเชิงเส้นเนื่องจากเป็นวิธีการไล่ระดับสีที่แกนกลาง บ่อยครั้งที่สามารถเร่งความเร็วให้สุดยอดโดย 1) การเปลี่ยนพารามิเตอร์และตามการวิเคราะห์พฤติกรรมหรือ 2) โดยใช้การเร่งความเร็ว Nesterov สำหรับหมายเหตุเกี่ยวกับการเปลี่ยนพารามิเตอร์การลงโทษโปรดดูที่กระดาษสำรวจ Boyd และสำหรับการใช้การเร่งความเร็ว Nesterov ด้วย ADMM ดูกระดาษต่อไปนี้αβαβ
Goldstein, Tom, Brendan O'Donoghue และ Simon Setzer "วิธีการปรับทิศทางให้เร็วที่สุด" รายงาน CAM (2012): 12-35 ftp://ftp.math.ucla.edu/pub/camreport/cam12-35.pdf
อย่างไรก็ตามแม้ว่าอัตราการบรรจบโดยรวมเป็นเชิงเส้นเพียงอย่างเดียวสำหรับปัญหาวิธีการสังเกตพบว่ารูปแบบการกระจายอย่างรวดเร็วมากและจากนั้นมาบรรจบกันช้ากว่าค่าที่แน่นอน เนื่องจากการค้นหารูปแบบการกระจายเป็นส่วนที่ยากที่สุดนี่เป็นโชคดีมาก! เหตุผลที่แน่นอนว่าทำไมดูเหมือนจะเป็นพื้นที่ของการวิจัยในปัจจุบัน ทุกคนเห็นรูปแบบ sparsity มาบรรจบกันอย่างรวดเร็ว แต่ดูเหมือนไม่มีใครรู้ว่าทำไมมันถึงเกิดขึ้น ไม่นานมานี้ฉันถาม Boyd และ Parikh เกี่ยวกับเรื่องนี้ทางอีเมลและ Parikh คิดว่าอาจอธิบายได้ด้วยการตีความวิธีในบริบทของระบบควบคุม คำอธิบายปรากฏการณ์ฮิวริสติกอีกคำหนึ่งอยู่ในภาคผนวกของบทความต่อไปนี้l1
Goldstein, Tom และ Stanley Osher "วิธีการแบ่ง Bregman สำหรับปัญหาที่ทำให้เป็นมาตรฐาน L1" วารสารวิทยาศาสตร์การถ่ายภาพสยาม 2.2 (2552): 323-343 ftp://ftp.math.ucla.edu/pub/camreport/cam08-29.pdf
แน่นอนว่าความยากลำบากอยู่ที่การแก้ปัญหาย่อยและสำหรับสถานการณ์เฉพาะของคุณ เนื่องจาก Lagrangian เป็นกำลังสองใน , subproblem update เพียงแค่ต้องแก้ระบบเชิงเส้น subproblem ดูเหมือนยากเพราะมันเป็น nondifferentiable แต่ปรากฎว่ามีสูตรที่แน่นอนสำหรับการแก้ปัญหาที่สามารถนำมาใช้โดยองค์ประกอบองค์ประกอบ! ตอนนี้เราพูดถึงปัญหาย่อยเหล่านี้ในรายละเอียดเพิ่มเติมและระบุปัญหาในการโพสต์ต้นฉบับxzzzx
การตั้งค่าสำหรับโปรแกรมย่อย update (ระบบเชิงเส้น)z
สำหรับการอัปเดตเรามี
z
argminzL(xk,z,λk,γk)=argminzα2||x−z+1αγ||2+β2||Az−b+1βλ||2.
สิ่งนี้จะทำให้คุณกลายเป็นปัญหาโดยเฉพาะ
argminZJ,ZBα2||Jk+1−ZJ+1αΓJ||2Fro+α2||Bk+1−ZB+1αΓB||2Fro+β2||MZJ+ZBY−X+1αΛ||2Fro,
โดยที่หมายถึงบรรทัดฐานของ Frobenius (elementwise ) นี่คือปัญหาการลดกำลังสองที่ซึ่งเงื่อนไขการปรับให้เหมาะสมอันดับแรกสามารถพบได้โดยรับอนุพันธ์บางส่วนของวัตถุประสงค์ที่เกี่ยวข้องกับและและตั้งค่าเป็นศูนย์ นี่คือ
||⋅||Frol2ZJZB
00=−α2(Jk+1−ZJ+1αΓJ)+β2MT(MZJ+ZBY−X+1βΛ),=−α2(Bk+1−ZB+1αΓB)+β2(MZJ+ZBY−X+1βΛ)YT.
ตามที่ระบุไว้ในความคิดเห็นโดยโปสเตอร์ต้นฉบับ Justin Solomon ระบบนี้สำหรับนั้นสมมาตรดังนั้นการไล่ระดับสีแบบคอนจูเกตจึงเป็นวิธีที่ปราศจากเมทริกซ์ในอุดมคติ ส่วนที่ใหม่กว่าจะกล่าวถึงระบบนี้และวิธีการแก้ไข / เงื่อนไขเบื้องต้นโดยละเอียดยิ่งขึ้นZJ,ZB
การแก้ปัญหาย่อยการอัพเดต (โซลูชัน thresholding การวิเคราะห์)x
ตอนนี้เราหันไปที่ subproblem
x
argminxL(x,zk,λk,γk)=argminx∑i|xi|+α2||x−zk+1αγk||2
สิ่งแรกที่เห็นคือผลรวมสามารถแยกองค์ประกอบตามองค์ประกอบ
∑i|xi|+α2||x−zk+1αγk||2=∑i|xi|+α2∑i(xi−zki+1αγki)2,
ดังนั้นเราสามารถแก้ปัญหาองค์ประกอบการหาค่าเหมาะที่สุดโดยองค์ประกอบในแบบคู่ขนานทำให้ได้
xk+1i=argminxi|xi|+α2(xi−zki+1αγki)2.
รูปแบบทั่วไปของสมการนี้คือ
mins|s|+α2(s−t)2.
ฟังก์ชันค่าสัมบูรณ์พยายามที่จะดึงจุดที่ดีที่สุดที่มีต่อในขณะที่ระยะกำลังสองพยายามที่จะดึงจุดที่ดีที่สุดที่มีต่อ tวิธีการแก้ปัญหาที่แท้จริงจึงอยู่ที่ไหนในส่วนระหว่างสองเพิ่มขึ้นพุ่งจะดึงจุดที่ดีที่สุดที่มีต่อและลดลงดึงจุดที่ดีที่สุดที่มีต่อ0s=0s=t[0,t)αtα0
นี่เป็นฟังก์ชั่นนูน แต่มันไม่สามารถหาอนุพันธ์ได้ที่ 0 เงื่อนไขสำหรับจุดที่ย่อเล็กสุดคือ subderivative ของวัตถุประสงค์ที่จุดนั้นมีศูนย์ คำที่เป็นกำลังสองมีอนุพันธ์และฟังก์ชันค่าสัมบูรณ์มีอนุพันธ์สำหรับ , subderivative ที่ตั้งค่าไว้เป็นช่วงเวลาเมื่อ , และอนุพันธ์สำหรับ . ดังนั้นเราจึงได้รับ subderivative สำหรับฟังก์ชั่นวัตถุประสงค์โดยรวม
α(s−t)−1s<0[−1,1]s=01s>0
∂s(|s|+α2(s−t)2)=⎧⎩⎨1+α(s−t)[−1,1]+αt,−1+α(s−t),s>0s=0,s<0.
จากนี้เราจะเห็นว่า subderivative ของวัตถุประสงค์ที่มีถ้าหาก , ในกรณีที่คือ minimizer ในทางกลับกันถ้าไม่ใช่ minimizer เราสามารถตั้งอนุพันธ์อันดับเดียวที่มีค่าเท่ากับศูนย์และแก้หา minimizer การทำเช่นนี้ทำให้
s=00|t|≤1αs=0s=0
argmins|s|+α2(s−t)2=⎧⎩⎨⎪⎪t−1α,0,t+1α,t>1α,|t|≤1α,t<−1α
การระบุผลลัพธ์นี้อีกครั้งกับปัญหาจริงที่เราพยายามแก้ไขในคำถามเดิมโดยที่อัตราผลตอบแทน
การอัพเดตสำหรับคือ
t=Zkij−1αΓkij
Jk+1ij=⎧⎩⎨⎪⎪⎪⎪Zkij−1αΓkij−1α,0,Zkij−1αΓkij+1α,Zkij−1αΓkij>1α,|Zkij−1αΓkij|≤1α,Zkij−1αΓkij<−1α.
BBk+1=ZB−1αΓB,
ตามที่ระบุไว้โดยโปสเตอร์ต้นฉบับจัสตินโซโลมอนในความคิดเห็น โดยรวมแล้วการทำการอัพเดตสำหรับเพียงแค่ต้องวนลูปผ่านรายการการฝึกอบรมของคุณและประเมินสูตรข้างต้นสำหรับแต่ละรายการJ,B
Schur สมบูรณ์สำหรับระบบZJ,ZB
ขั้นตอนที่มีค่าใช้จ่ายมากที่สุดในการทำซ้ำคือการแก้ปัญหาระบบ
00=−α2(Jk+1−ZJ+1αΓJ)+β2MT(MZJ+ZBY−X+1βΛ),=−α2(Bk+1−ZB+1αΓB)+β2(MZJ+ZBY−X+1βΛ)YT.
ด้วยเหตุนี้จึงคุ้มค่ากับความพยายามในการสร้างตัวแก้ปัญหา / เงื่อนไขเบื้องต้นที่ดีสำหรับระบบนี้ ในส่วนนี้เราทำได้โดยการเวกเตอร์สร้างส่วนประกอบ Schurทำการจัดการผลิตภัณฑ์ Krnoecker แล้วเปิดเผย ส่งผลให้ระบบสมบูรณ์ Schur คือการแก้ไขเล็กน้อยสมซิลเวส
ในสิ่งต่อไปนี้ตัวตนเกี่ยวกับ vectorization และผลิตภัณฑ์ Kronecker เป็นกุญแจสำคัญอย่างยิ่ง:
- vec(ABC)=(CT⊗A)vec(B),
- (A⊗B)(C⊗D)=AC⊗BD ,
- (A⊗B)−1=A−1⊗B−1และ
- (A⊗B)T=AT⊗BT T
ตัวตนเหล่านี้มีอยู่ทุกครั้งที่ขนาดของเมทริกซ์และการกลับด้านเป็นไปได้ว่าแต่ละด้านของสมการเป็นนิพจน์ที่ถูกต้อง
รูปแบบเวกเตอร์ของระบบคือ
(αI+β[I⊗MTMY⊗M(Y⊗M)TYYT⊗I])[vec(ZJ)vec(ZB)]=[vec(αJ+βMTX+ΓJ−MTΛ)vec(αB+βXYT+ΓB−ΛYT)],
หรือ
[I⊗(αI+βMTM)βY⊗Mβ(Y⊗M)T(αI+βYYT)⊗I][vec(ZJ)vec(ZB)]=[vec(F)vec(G)],
โดยที่และย่อตัวอักษรทางด้านขวามือ ตอนนี้เราทำการเสริม block-gaussian-elimination / Schur เพื่อกำจัดส่วนล่างซ้ายของเมทริกซ์ในกระบวนการกลั่นตัวผลิตภัณฑ์ Kronecker นี่คือ
FG
[I⊗(αI+βMTM)0β(Y⊗M)T(αI+βYYT)⊗I−β2YYT⊗M(αI+βMTM)−1MT]…⋅[vec(ZJ)vec(ZB)]=[vec(F)vec(G)−βY⊗M(αI+βMTM)−1vec(F)].
Unvectorizing สองสมการที่เราต้องแก้ตามลำดับคือ
ZB(αI+βYYT)−(βM(αI+βMTM)−1MT)ZB(βYYT)…=G−βM(αI+βMTM)−1FYT
(αI+βMTM)ZJ=F−βMTZBY.
วิธีการแก้ปัญหาของระบบเติมเต็ม Schur เมื่อมีความกว้างและระดับสูงY,M
ในส่วนนี้เราแก้ปัญหาระบบ Schur complement สำหรับ (สมการ 1 ข้างต้น) โดยใช้การคำนวณSVD แบบเต็มล่วงหน้าของและใช้อัลกอริทึม Bartels-Stewart รุ่นดัดแปลงสำหรับ Sylvester สมการ อัลกอริทึมถูกปรับเปลี่ยนเล็กน้อยจากรุ่นมาตรฐานเป็นบัญชีสำหรับส่วนเสริมในเทอมที่สองซึ่งทำให้ไม่สมการของซิลเวสเตอร์ เมื่อพบผ่านสมการแรกสามารถพบได้จากสมการที่สองได้อย่างง่ายดาย สมการที่สองนั้นไม่สำคัญที่จะแก้ปัญหาด้วยวิธีใดก็ได้ที่คุณต้องการZBYYT,MMT,MTMβYYTZBZJ
วิธีนี้ต้องการค่าใช้จ่ายล่วงหน้าเพื่อคำนวณค่า SVD สองค่าล่วงหน้าก่อนที่กระบวนการ ADMM จะเริ่มต้น แต่ก็จะสามารถนำไปใช้กับการทำซ้ำ ADMM จริงได้อย่างรวดเร็ว เนื่องจากวิธีการจัดการกับเมทริกซ์ SVD เต็มรูปแบบของข้อ จำกัด มันมีความเหมาะสมเมื่อพวกเขาใกล้กับสแควร์และอันดับสูง วิธีการที่ซับซ้อนมากขึ้นโดยใช้ SVD อันดับต่ำก็มีความเป็นไปได้เช่นกัน แต่จะแสดงในส่วนถัดไป
วิธีการพัฒนาดังต่อไปนี้ ให้
แสดงว่า precomputed เต็มสลายตัวมูลค่าเอกพจน์และรวมตัวด้านขวามือจะเป็นHจากนั้นสมการแรกจะกลายเป็น
ทวีคูณ โดยปัจจัย orthogonal เพื่อล้างออกทางซ้ายและขวาและการตั้งค่าใหม่ชั่วคราวที่ไม่รู้จักนี่จะกลายเป็น
QDQT=YYT,WΣWT=MMT,VTVT=MTM
HZBQ(αI+D)QT−WβΣ(αI+Σ)−1ΣWTZBQDQT=H.
A=WTZBQA(αI+D)−βΣ(αI+Σ)−1ΣAD=WHQT.
ตอนนี้เราสามารถหาโดยการแก้ระบบ
แนวทแยงA
((αI+D)⊗I+D⊗βΣ(αI+Σ)−1Σ)vec(A)=vec(WHQT).
เมื่อพบเราคำนวณและรู้ว่าเราแก้สมการที่สองข้างบนสำหรับซึ่งไม่สำคัญเพราะเรามีการแยกค่า eigenvalue สำหรับอยู่แล้วAZB=WAQTZBZJMTM
ค่าใช้จ่ายล่วงหน้าคือการคำนวณค่า eigenvalue ที่แน่นอนเชิงบวกสองสมมาตรของและจากนั้นค่าใช้จ่ายต่อการวนซ้ำสำหรับการแก้ปัญหาที่สมบูรณ์นั้นถูกครอบงำด้วยการคูณเมทริกซ์จำนวนหนึ่งซึ่งอยู่ในลำดับเดียวกัน ขนาดเท่ากับ 1 subiteration CG หากค่า eigenvalue ล่วงหน้ามีค่าใช้จ่ายสูงเกินไปพวกเขาสามารถคำนวณได้อย่างแน่นอนโดยยกตัวอย่างเช่นการยกเลิกการทำซ้ำของ Lanczos ในช่วงต้นและรักษาผู้ใช้ที่ใหญ่ที่สุด จากนั้นวิธีการดังกล่าวสามารถใช้เป็นเครื่องปรับสภาพเบื้องต้นที่ดีสำหรับ CG แทนที่จะเป็นตัวแก้ปัญหาโดยตรงMTMYYT
วิธีการแก้ปัญหาเมื่อเป็นรูปสี่เหลี่ยมผืนผ้ามากหรือมีการจัดอันดับที่ต่ำM,Y
ตอนนี้เราหันความสนใจไปที่การแก้ปัญหาหรือ จำกัด เงื่อนไขเมื่อใดก) เมทริกซ์การป้อนข้อมูลเป็นรูปสี่เหลี่ยมผืนผ้ามาก - หมายถึงพวกมันมีแถวมากกว่าคอลัมน์หรือในทางกลับกัน - หรือ b) พวกเขามีการประมาณอันดับต่ำ แหล่งที่มาด้านล่างเกี่ยวข้องกับการใช้สูตรวูดเบอรีส่วนประกอบ Schur และการผสมอื่น ๆ ที่คล้ายคลึงกันอย่างกว้างขวางZJ,ZBM,Y
เราเริ่มต้นด้วยระบบเติมเต็ม Schur ของเรา
(αI+βYYT)⊗I−β2YYT⊗M(αI+βMTM)−1MT.
กิจวัตรบางอย่างเปลี่ยนระบบนี้ให้อยู่ในรูปแบบสมมาตร
(αI+βI⊗MMT+βYYT⊗I)vec(ZB)=(I⊗(I+βαMMT))vec(H).
ตอนนี้เรานำการประมาณอันดับต่ำมาใช้ ปล่อยให้
เป็น SVD ที่ลดลงหรืออันดับที่ต่ำกว่าของและ (เป็นตัวยึดตำแหน่งและไม่ใช่ ใช้) การแทนที่สิ่งเหล่านี้ในระบบของเราทำให้เมทริกซ์ผกผันต่อไปนี้ที่เราต้องการใช้
QD1/2QT2=YWΣ1/2VT=M
YMQ2(αI+βI⊗WΣWT+βYYT⊗I)−1.
เนื่องจากเมทริกซ์ที่เราต้องสลับกลับเป็นการอัปเดตตัวตนระดับต่ำกลยุทธ์เชิงตรรกะคือพยายามใช้สูตรวูดเบอรี
(A+UCUT)−1=A−1−A−1U(C−1+UTA−1U)−1UTA−1.
อย่างไรก็ตามจำเป็นต้องมีการดูแลเนื่องจากชิ้นส่วนที่มีระดับต่ำและไม่ใช่แบบมุมฉาก ดังนั้นเพื่อใช้สูตรวูดเบอรีเรารวบรวมการอัปเดตระดับต่ำทั้งสองลงในการอัปเดตครั้งใหญ่เพียงครั้งเดียว ทำให้ดีขึ้นและใช้สูตรวูดเบอรีให้ผลตอบแทน
I⊗WY⊗I
(1αI+β[I⊗WQ⊗I][I⊗ΣD⊗Y][I⊗ΣTQT⊗I])−1=αI−βα2[I⊗WQ⊗I][I⊗(Σ−1+βαI)βαQT⊗WβαQ⊗WT(D−1+βαI)⊗Y]−1[I⊗ΣTQT⊗I].
แกนผกผันสามารถคำนวณได้ด้วยสูตรผกผันบล็อค 2x2, start
[ABTBC]−1=[(A−BC−1BT)−1−C−1BT(A−BC−1BT)−1−A−1B(C−BTA−1B)−1(C−BTA−1B)−1].
โพสต์นี้มีอยู่แล้วนานพอดังนั้นฉันจะสำรองรายละเอียดความยาวของการคำนวณ แต่ผลสุดท้ายก็คือเสียบ submatrices จำเป็นลงผกผัน blockwise และคูณทุกอย่างผ่านอัตราผลตอบแทนในรูปแบบที่ชัดเจนต่อไปนี้สำหรับผกผันโดยรวม
(αI+βI⊗MMT+βYYT⊗I)−1=1αI−βα2(t11+s11+t12+s12+t21+s21+t22+s22),
โดยที่
t11s11t12s12t21s21t22s22D11D22lh=αβI⊗Wl−1WT=(Q⊗Wl−1)D11(QT⊗l−1WT)=−αβQh−1QT⊗Wl−1WT=−(Qh−1⊗Wl−1)D22(h−1QT⊗WT)=t12=−(Qh−1⊗W)D22(h−1QT⊗l−1WT)=αβQh−1QT⊗I=(Qh−1⊗W)D22(h−1QT⊗WT)=αβ(h⊗I−I⊗l−1)−1=αβ(I⊗l−h−1⊗I)−1=αβΣ−1+I=αβD−1+I.
ในรูปแบบนี้เราสามารถใช้ผกผันและหาคำศัพท์ตามคำศัพท์ผ่านแซนด์วิชการคูณเมทริกซ์ 8 ตัวทางซ้ายและขวา สูตรทั่วไปสำหรับการใช้ผลรวมของผลิตภัณฑ์ Kronecker คือ
ZB
((A1⊗B1)+(A2⊗B2)+…)vec(C)=vec(BT1CA1+BT2CA2+…).
โปรดทราบว่าผู้รุกรานที่ชัดเจนที่เราลงท้ายด้วยเส้นทแยงมุมจึงไม่มีสิ่งใดที่จะ "แก้ไข"
รหัสตัวแก้ปัญหาเชิงเส้น
ฉันใช้สองตัวใน Matlab ดูเหมือนจะทำงานได้ดี รหัสแก้อยู่ที่นี่zJ,ZB
https://github.com/NickAlger/MeshADMM/blob/master/zkronsolve.m
สคริปต์ทดสอบสำหรับตรวจสอบว่านักแก้ปัญหาทำงานอยู่ที่นี่หรือไม่ นอกจากนี้ยังแสดงตัวอย่างวิธี calll รหัสตัวแก้
https://github.com/NickAlger/MeshADMM/blob/master/test_zkronsolve.m
สรุปข้อสังเกต
วิธีการประเภท ADMM นั้นเหมาะสมสำหรับปัญหาเช่นนี้ แต่คุณต้องยกเลิกการใช้งานของคุณเอง โครงสร้างโดยรวมของวิธีการนั้นค่อนข้างง่ายดังนั้นการนำไปใช้นั้นไม่ยากเกินไปในบางสิ่งอย่างเช่น MATLAB
ชิ้นส่วนที่ขาดหายไปจากการโพสต์นี้ที่จะต้องมีการระบุไว้ในการรองรับการกำหนดวิธีการในการแก้ไขปัญหาของคุณเป็นทางเลือกของพารามิเตอร์โทษ\โชคดีที่วิธีการนั้นค่อนข้างแข็งแกร่งตราบใดที่ค่าพารามิเตอร์ไม่ได้บ้า กระดาษ Boyd และ Parikh มีส่วนหนึ่งเกี่ยวกับพารามิเตอร์การลงโทษเช่นเดียวกับการอ้างอิงในนั้น แต่ฉันจะทดสอบกับพารามิเตอร์จนกว่าคุณจะได้รับอัตราการลู่เข้าที่เหมาะสมα,β
แก้กลยุทธ์การนำเสนอที่มีประสิทธิภาพสูงถ้าเมทริกซ์ จำกัด มีทั้ง) หนาแน่น squareish และตำแหน่งสูงหรือข) มีดีอันดับต่ำประมาณ อีกแก้ประโยชน์ที่อาจจะเป็นเรื่องของการทำงานในอนาคตจะมีการแก้ที่ดีที่สุดสำหรับกรณีดังต่อไปนี้ - เมทริกซ์ จำกัดจะเบาบางและ squareish และอันดับสูง แต่มีอยู่ preconditioner ดีสำหรับ Tนี่อาจเป็นกรณีตัวอย่างเช่นเป็น Laplacian ที่ไม่ต่อเนื่องZJ,ZBMαI+MMTM