เมทริกซ์ความแปรปรวนร่วมแบบไม่ดีในการถดถอยของ GP สำหรับการปรับให้เหมาะสมแบบเบย์


12

ความเป็นมาและปัญหา

ฉันใช้กระบวนการแบบเกาส์ (GP) สำหรับการถดถอยและการปรับให้เหมาะสมแบบเบย์ (BO) ในภายหลัง สำหรับการถดถอยฉันใช้แพ็คเกจgpmlสำหรับ MATLAB ที่มีการแก้ไขที่กำหนดเองหลายอย่าง แต่ปัญหาเป็นเรื่องทั่วไป

มันเป็นความจริงที่รู้จักกันดีว่าเมื่ออินพุตการฝึกอบรมสองอันอยู่ใกล้กับพื้นที่อินพุตมากเกินไปเมทริกซ์ความแปรปรวนร่วมอาจไม่แน่นอนแน่นอน (มีคำถามหลายข้อเกี่ยวกับมันในเว็บไซต์นี้) เป็นผลให้การสลายตัว Cholesky ของเมทริกซ์ความแปรปรวนร่วมที่จำเป็นสำหรับการคำนวณ GP ต่างๆอาจล้มเหลวเนื่องจากข้อผิดพลาดเชิงตัวเลข เรื่องนี้เกิดขึ้นกับฉันในหลายกรณีเมื่อดำเนินการ BO พร้อมกับฟังก์ชั่นวัตถุประสงค์ที่ฉันใช้และฉันต้องการแก้ไข

โซลูชันที่เสนอ

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

จนถึงตอนนี้ดีมาก ฉันปรับเปลี่ยนรหัสสำหรับการอนุมานที่แน่นอนของgpmlดังนั้นเมื่อใดก็ตามที่การสลายตัวของ Cholesky ล้มเหลวฉันพยายามที่จะแก้ไขเมทริกซ์ความแปรปรวนร่วมกับเมทริกซ์สมการเชิงบวกสมมาตร (SPD) ที่ใกล้เคียงที่สุดในบรรทัดฐาน Frobenius แรงบันดาลใจจากรหัส MATLABโดย John d'Errico เหตุผลคือเพื่อลดการแทรกแซงในเมทริกซ์เดิม

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

คำถาม

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

ข้อเสนอแนะ / การอ้างอิงใด ๆ ที่อาจมีประโยชน์ที่นี่?


คุณอาจพิจารณาสร้างรายการของเมทริกซ์ความแปรปรวนร่วมเช่นเดียวกับการคำนวณหรือการปรับปรุงการแยกตัวประกอบ Cholesky ของมันในความแม่นยำสูงขึ้นเช่นความแม่นยำรูปสี่เหลี่ยมหรือสูงกว่า นอกเหนือจากความยุ่งยากการคำนวณอาจมีลำดับความสำคัญช้ากว่า มีส่วนเสริมความแม่นยำโดยพลการสำหรับ MATLAB ฉันไม่ได้พูดแบบนี้ แต่ก็อาจจะเป็นตัวเลือก ฉันไม่รู้ว่าพวกเขาเล่นกับ gpml ได้ดีแค่ไหน แต่ถ้าคุณสามารถเปลี่ยนซอร์สโค้ด gpml (ไฟล์ m) ได้บางทีคุณอาจทำได้
Mark L. Stone

คุณพยายามที่จะเพิ่มกระวนกระวายใจเล็ก ๆ ลงในแนวทแยงของเมทริกซ์ความแปรปรวนร่วมหรือไม่?
Zen

@ MarkL.Stone ขอบคุณสำหรับคำแนะนำ น่าเสียดายที่ฉันต้องการรหัสการฝึกอบรมที่รวดเร็วดังนั้นตัวเลขที่มีความแม่นยำสูงอาจไม่ใช่ทางเลือกที่ดีสำหรับแอปพลิเคชันของฉัน
lacerbi

2
คำถามนี้น่าสนใจจริงๆ เมื่อมีการเพิ่มผลนักเก็ตที่คุณ covaraince เมทริกซ์เช่นทำคุณเพิ่มประสิทธิภาพซิกในโอกาสของคุณหรือเป็นให้สิทธิ์แก่ ฉันได้สังเกตเห็นว่าการปรับเอฟเฟ็กต์นักเก็ตให้เหมาะสมที่สุดจับเสียงการวัดและช่วยให้กระบวนการเกาเซียนของเขาσ2Iσ
Wis

1
ฉันมักจะเพิ่มประสิทธิภาพ ในบางกรณีฉันพยายามทำให้ลดลง แต่ก็ไม่ได้รับการปรับปรุงให้เหมาะสมมากขึ้น (ฉันคิดว่าส่วนหลังแคบมาก)
lacerbi

คำตอบ:


7

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

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

แก้ไข:

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

kx,x=k(x,x)=σexp((xx)2l2)

อนุพันธ์ของมันคือ

kdx,x=dk(x,x)dx=2(xx)l2σexp((xx)2l2)

kdx,dx=d2k(x,x)dxdx=2l22(xx)l4σexp((xx)2l2)

ตอนนี้ให้เราสมมติว่าเรามีจุดข้อมูลและอนุพันธ์ที่ซึ่งผมจะเรียกm_1{xi,yi;i=1,...,n}x1m1

Letแล้วเราใช้ GP มาตรฐานเดียวกับเมทริกซ์ความแปรปรวนเป็นY=[m1,y1,,yn]

K=(kdx0,dx0kdx0,x0kdx0,xnkdx0,x0kx0,x0kx0,xnkdx0,xnkx0,xnkxn,xn)

ส่วนที่เหลือของ GP เหมือนกันตามปกติ


คุณต้องการขยายรายละเอียดเกี่ยวกับการใช้ข้อมูลไล่ระดับสีที่เสนอโดยประมาณของคุณหรือไม่?
Mark L. Stone

@j ขอบคุณ - ฉันคิดเกี่ยวกับการทำอันดับต่ำฉันอาจลอง (หลีกเลี่ยงจนถึงขณะนี้เนื่องจากฉันอาจต้องเขียนส่วนใหญ่ของรหัส) เกี่ยวกับการรวมจุดสองจุดเข้าด้วยกันฉันได้เสนอไว้ในคำถามก่อนหน้านี้แต่ฉันไม่คิดว่าจะได้รับข้อมูลอนุพันธ์ ตามหลักการแล้วมันฟังดูเรียบร้อย แต่ฉันไม่แน่ใจว่าฉันจะใช้มันอย่างไรเนื่องจากฉันจะมีการสังเกตอนุพันธ์เพียงไม่กี่ข้อ (สอดคล้องกับจุดที่ผสาน) โดยมีภาระในการเพิ่ม GP หนึ่งตัวต่อมิติอินพุต
lacerbi

@j ขอบคุณสำหรับคำอธิบายเพิ่มเติม นี่มันดูเรียบร้อยมากจริงๆ คุณมีการอ้างอิงสำหรับวิธีนี้ (หรืออะไรที่คล้ายกันพอ)?
lacerbi

2
ตรวจสอบหน้าวิทยานิพนธ์ของ Mike Osborne หน้า 67 ( robots.ox.ac.uk/~mosb/public/pdf/136/full_thesis.pdf ) - เขาแนะนำการสังเกตอนุพันธ์และอินทิกรัล หวังว่าจะช่วย :)
j__

4

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

ฉันไม่แน่ใจว่าจะตัดสินได้อย่างไรว่าจุดใดที่จุดทั้งสองกลายเป็น "ใกล้เกินไป" บางทีนี่อาจเป็นตัวเลือกการปรับแต่งที่เหลือให้กับผู้ใช้

(อุ๊ปส์! หลังจากที่ฉันโพสต์สิ่งนี้ฉันพบคำถามของคุณที่นี่ซึ่งทำให้คำตอบนี้เป็นคำตอบที่ละเอียดยิ่งขึ้นฉันหวังว่าการเชื่อมโยงไปยังคำตอบของฉันจะช่วย SEO ... )


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