การถดถอยของกระบวนการแบบเกาส์สำหรับชุดข้อมูลขนาดใหญ่


10

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


3
ทำไมคุณต้องการใช้กระบวนการเสียนและไม่ใช่สิ่งที่กำหนดไว้สำหรับจัดการกับข้อมูลขนาดใหญ่
ทิม

คำตอบ:


7

มีหลากหลายวิธีในการปรับขนาด GP เป็นชุดข้อมูลขนาดใหญ่ตัวอย่างเช่น

Low Rank Approach : ความพยายามเหล่านี้ในการสร้างการประมาณอันดับต่ำให้กับเมทริกซ์ความแปรปรวนร่วม อาจมีชื่อเสียงมากที่สุดคือวิธีการ Nystroms ซึ่งโครงการข้อมูลบนส่วนย่อยของคะแนน การสร้างจาก FITC และ PITC นั้นได้รับการพัฒนาซึ่งใช้จุดหลอกมากกว่าที่สังเกต สิ่งเหล่านี้รวมอยู่ในไลบรารี GPy python วิธีการอื่น ๆ รวมถึงคุณสมบัติฟูริเยร์แบบสุ่ม

H-matrices : สิ่งเหล่านี้ใช้โครงสร้างแบบลำดับชั้นของเมทริกซ์ความแปรปรวนร่วมและใช้การประมาณอันดับต่ำกับแต่ละโครงสร้างย่อยเมทริกซ์ สิ่งนี้มีการใช้งานน้อยกว่าปกติในห้องสมุดยอดนิยม

วิธีการของ Kronecker : สิ่งเหล่านี้ใช้ผลิตภัณฑ์ Kronecker ของเมทริกซ์ความแปรปรวนร่วมเพื่อเพิ่มความเร็วในการคำนวณเหนือคอขวดของส่วนหัว

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


5

โดยปกติสิ่งที่คุณสามารถทำได้คือการฝึกอบรมกระบวนการเกาส์เซียนในชุดย่อยของชุดข้อมูลของคุณ (บรรจุถุง) การบรรจุถุงถูกนำไปใช้ใน sk Learn และสามารถใช้งานได้ง่าย ดูตามตัวอย่างเอกสาร

โทรจำนวนของการสังเกตที่จำนวนถุงที่คุณใช้และจำนวนจุดต่อถุงนี้จะช่วยให้การเปลี่ยนเวลาการฝึกอบรมจากไปยัง3) ดังนั้นด้วยถุงเล็ก ๆ แต่ใช้ข้อมูลทั้งหมดคุณสามารถบรรลุเวลาการฝึกอบรมที่ต่ำกว่ามาก น่าเสียดายที่สิ่งนี้มักลดประสิทธิภาพของรุ่นnnbagsnpO(n3)O(nbagsnp3)

นอกเหนือจากเทคนิคการบรรจุถุงแล้วยังมีงานวิจัยบางอย่างเกี่ยวกับการทำให้กระบวนการถดถอยแบบเกาส์ปรับขนาดได้ บทความการแก้ไขเคอร์เนลสำหรับกระบวนการ Gaussian แบบปรับขนาดได้ (KISS-GP)เสนอให้ลดเวลาการฝึกอบรมเป็นและมาพร้อมกับรหัส matlabO(n)


5

คุณถาม:

ในกรณีที่𝑛เท่ากับ 10 ในล้านคนการถดถอยของกระบวนการแบบเกาส์เซียนยังคงทำงานอยู่?

ไม่ได้อยู่ในความรู้สึกมาตรฐานของการสร้างและการกลับเมทริกซ์ขนาดใหญ่ คุณมีสองตัวเลือก: 1) เลือกรูปแบบที่แตกต่างกันหรือ 2) ทำการประมาณ

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

2) วิธี 'คลาสสิค' ในการประมาณค่าใน GP คือประมาณเมทริกซ์เคอร์เนล มีการตรวจสอบที่ดีของแปลก ๆ เหล่านี้วิธีการที่นี่: http://www.jmlr.org/papers/volume6/quinonero-candela05a/quinonero-candela05a.pdf ในความเป็นจริงเรามักจะเห็นการประมาณเมทริกซ์เหล่านี้เป็นการประมาณแบบจำลองและจับมันเข้ากับเครื่องจักรของคณะกรรมการเบย์: มันเป็นการเปลี่ยนแปลงแบบจำลองและมันยากที่จะเข้าใจเมื่อการเปลี่ยนแปลงเหล่านั้นอาจเป็นพยาธิสภาพ นี่คือความเห็นสุดยอด: https://papers.nips.cc/paper/6477-understanding-probabilistic-sparse-gaussian-process-approximations.pdf

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

บทความเหล่านี้เป็นจุดเริ่มต้นที่ดี: http://proceedings.mlr.press/v5/titsias09a/titsias09a.pdf https://arxiv.org/pdf/1309.6835

ฉันเขียนบทความที่ยาวกว่าบนอาร์กิวเมนต์เดียวกันที่นี่: https://www.prowler.io/blog/sparse-gps-approximate-the-posterior-not-the-model

ในทางปฏิบัติการประมาณความแปรปรวนทำงานได้ดีในหลายกรณี ฉันใช้มันอย่างกว้างขวางในแอปพลิเคชันจริง และเมื่อไม่นานมานี้มีทฤษฎีที่ยอดเยี่ยมในการสำรองข้อมูลว่าทำไมจึงควรทำงาน ( https://arxiv.org/abs/1903.03571 )

ปลั๊กอินขั้นสุดท้าย: การอนุมานความแปรปรวนใน GP ถูกนำมาใช้ใน gpflow ( https://github.com/GPflow/GPflow )


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