Recursive (ออนไลน์) อัลกอริธึมกำลังสองน้อยที่สุดที่ทำให้เป็นมาตรฐาน


12

ทุกคนสามารถชี้นำฉันไปในทิศทางของอัลกอริทึมแบบออนไลน์ (แบบเรียกซ้ำ) สำหรับการทำให้เป็นมาตรฐาน Tikhonov (กำลังสองน้อยที่สุดเป็นมาตรฐาน) ได้หรือไม่?

ในการตั้งค่าออฟไลน์ฉันจะคำนวณβ^=(XTX+λI)1XTYโดยใช้ชุดข้อมูลดั้งเดิมของฉันซึ่งพบλโดยใช้การตรวจสอบความถูกต้องแบบครอส n-fold ใหม่yค่าสามารถคาดการณ์ไว้สำหรับให้xใช้การ yy=xTβ^

ในการตั้งค่าออนไลน์ฉันจะวาดจุดข้อมูลใหม่อย่างต่อเนื่อง ฉันจะอัปเดตβ^เมื่อฉันดึงตัวอย่างข้อมูลเพิ่มเติมใหม่โดยไม่ทำการคำนวณใหม่ทั้งหมดในชุดข้อมูลทั้งหมด (ต้นฉบับ + ใหม่)


1
สี่เหลี่ยมจัตุรัสที่น้อยที่สุดของ Tikhonov ที่ทำให้เป็นปกติอาจเรียกอีกอย่างว่าLevenberg-Marquardtในแวดวงสถิติแม้จะใช้กับปัญหาเชิงเส้นล้วนๆ (ดังที่นี่) มีกระดาษเกี่ยวกับออนไลน์ Levenberg Marquardt เป็นที่นี่ ฉันไม่ทราบว่าเป็นความช่วยเหลือใด ๆ
Glen_b -Reinstate Monica

คำตอบ:


11

β^n=(XXT+λI)1i=0n1xiyi

ให้Mn1=(XXT+λI)1จากนั้น

β^n+1=Mn+11(i=0n1xiyi+xnyn)และ

Mn+1Mn=xnxnTเราจะได้รับ

β^n+1=β^n+Mn+11xn(ynxnTβ^n)

ตามสูตรของ Woodburyเรามี

Mn+11=Mn1Mn1xnxnTMn1(1+xnTMn1xn)

ผลที่ตามมา,

β^n+1=β^n+Mn11+xnTMn1xnxn(ynxnTβ^n)

ค่าเฉลี่ยของ Polyakบ่งบอกว่าคุณสามารถใช้ เพื่อประมาณด้วยช่วงจากเพื่อ1คุณอาจลองในกรณีของคุณเพื่อเลือกดีที่สุดสำหรับการสอบถามซ้ำηn=nαMn11+xnTMn1xnα0.51α


ฉันคิดว่ามันใช้งานได้เช่นกันหากคุณใช้อัลกอริธึมการไล่ระดับแบทช์:

β^n+1=β^n+ηnni=0n1xi(yixiTβ^n)


จะเกิดอะไรขึ้นถ้าฉันอัปเดต regressor ของฉันทุกครั้งด้วยชุดตัวอย่างของข้อมูลใหม่ที่แต่ละชุดที่ต่อเนื่องมาจากการกระจายที่แตกต่างกันเล็กน้อย เช่น IID ที่ไม่ใช่ ในกรณีนี้ฉันต้องการให้ regressor คำนึงถึงข้อมูลใหม่ แต่ไม่ส่งผลกระทบต่อการคาดการณ์ในท้องถิ่นของข้อมูลเก่า (แบตช์ก่อนหน้า) หรือไม่ คุณช่วยชี้ให้ฉันดูวรรณกรรมที่คุณอาจรู้สึกว่ามีประโยชน์หรือไม่
rnoodle

เป็นคำถามที่ดี แต่ขออภัยในขณะนี้ฉันไม่สามารถบอกได้ว่ามันจะส่งผลกระทบต่อแบบจำลองของคุณมากแค่ไหนหากคุณยังคงใช้สูตรไล่ระดับแบตช์ในคำตอบหรือประมาณด้วยการใช้แบบฟอร์มเมทริกซ์โดยตรง: eta ^ (- alpha) * X (Y-X 'beta_n) โดยที่ X, Y เป็นตัวอย่างแบทช์ใหม่ของคุณ
lennon310

สวัสดีดูเหมือนว่าสัมประสิทธิ์การทำให้เป็นมาตรฐานไม่ได้มีส่วนร่วมในสูตรการอัพเดทซ้ำ? หรือมันมีความสำคัญในการเริ่มต้นของการผกผันของ M matrix?
Peng Zhao

4

จุดที่ไม่มีใครพูดถึงก็คือโดยทั่วไปแล้วมันไม่สมเหตุสมผลที่จะรักษาพารามิเตอร์การทำให้เป็นมาตรฐานคงที่เมื่อมีการเพิ่มจุดข้อมูล เหตุผลนี้คือโดยปกติแล้วจะเติบโตเป็นเส้นตรงตามจำนวนจุดข้อมูลในขณะที่คำศัพท์ทั่วไปจะไม่ λXβy2λβ2


นั่นเป็นจุดที่น่าสนใจ แต่ทำไม "ไม่สมเหตุสมผล" ทำไม? การรักษาค่าคงที่นั้นถูกต้องทางคณิตศาสตร์ดังนั้นจึงต้องเข้าใจ "ไม่สมเหตุสมผล" ในบริบททางสถิติบางประเภท แต่บริบทอะไร เกิดอะไรขึ้น จะมีการแก้ไขที่ง่าย ๆ บ้างไหมเช่นการแทนที่ผลบวกของกำลังสองด้วยค่าเฉลี่ยกำลังสอง λ
whuber

การแทนที่ผลรวมของช่องสี่เหลี่ยมด้วยเวอร์ชันที่ปรับขนาด (เช่นข้อผิดพลาดกำลังสองเฉลี่ย) จะสมเหตุสมผล
Brian Borchers

สำหรับสิ่งที่ผิดพลาดขึ้นอยู่กับการเลือกของคุณจะได้รับการแก้ปัญหาที่ไม่สม่ำเสมอโดยมีจุดข้อมูลจำนวนมากหรือการแก้ปัญหาที่ผิดปกติมากด้วยจุดข้อมูลจำนวนน้อย λ
Brian Borchers

หนึ่งจะสงสัยว่า แต่ถ้าจะถูกปรับครั้งแรกหลังจากที่ได้รับจุดข้อมูลแล้วจุดข้อมูลที่มีการเพิ่มไม่ว่าจะแก้ปัญหาที่เกิดขึ้นกับจุดข้อมูลมากขึ้นและเดียวกันมีเกินหรือต่ำกว่า regularized จะขึ้นอยู่กับผู้ที่ใหม่ จุดข้อมูล. นี้สามารถวิเคราะห์โดยสมมติ datapoints ทำหน้าที่เหมือนตัวอย่าง IID จากการกระจายหลายตัวแปรซึ่งในกรณีนี้ก็จะปรากฏขึ้นควรจะกำหนดให้ในขั้นตอนNสิ่งนี้จะเปลี่ยนสูตรการอัพเดต แต่ในวิธีปกติและเรียบง่ายเช่นนั้นการคำนวณที่มีประสิทธิภาพอาจยังคงเป็นไปได้ (+1)λnλλN/nN
whuber

3

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


ฉันได้ตระหนักตั้งแต่นั้นมาว่า SGD (อาจจะเป็นมินิบัส) เป็นวิธีที่จะแก้ไขปัญหาออนไลน์เช่นนี้คือการปรับปรุงฟังก์ชั่นการประมาณ
rnoodle

1

ในการถดถอยเชิงเส้นหนึ่งเป็นไปได้มีการปรับปรุง QR สลายของโดยตรงตามที่อธิบายไว้ที่นี่ ฉันเดาว่าถ้าคุณไม่ต้องการประมาณอีกครั้งหลังจากเพิ่มดาต้าพอยท์ใหม่แต่ละอย่างแล้วสิ่งที่คล้ายกันมากก็สามารถทำได้ด้วยการถดถอยของสันเขาXλ


0

นี่คือวิธีการอื่น (และซับซ้อนน้อยกว่า) เปรียบเทียบกับการใช้สูตร Woodbury โปรดทราบว่าและสามารถเขียนเป็นเงินก้อน เนื่องจากเรากำลังคำนวณสิ่งต่าง ๆ ออนไลน์และไม่ต้องการให้ผลรวมระเบิดเราสามารถเลือกใช้วิธีการ (และ )XTXXTyXTX/nXTy/n

หากคุณเขียนและเป็น:Xy

X=(x1TxnT),y=(y1yn),

เราสามารถเขียนอัพเดตออนไลน์ไปที่และ (คำนวณได้ถึงแถว -th) ดังนี้:XTX/nXTy/nt

At=(11t)At1+1txtxtT,

bt=(11t)bt1+1txtyt.

การประมาณออนไลน์ของคุณจะกลายเป็นβ

β^t=(At+λI)1bt.

โปรดทราบว่าสิ่งนี้ยังช่วยในการตีความค่าคงที่ในขณะที่คุณเพิ่มการสังเกต!λ

ขั้นตอนนี้เป็นวิธีที่https://github.com/joshday/OnlineStats.jlคำนวณการประมาณการออนไลน์ของการถดถอยเชิงเส้น / แนว

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.