เมื่อใดจึงควรใช้ Gradient descent vs Monte Carlo เป็นเทคนิคการหาค่าเหมาะที่สุดเชิงตัวเลข


11

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

จะบอกได้อย่างไรว่าจะใช้การไล่ระดับสีแบบไล่ระดับและเมื่อใดที่จะใช้ Monte Carlo หรือฉันแค่สับสนคำว่า 'การจำลอง' กับ 'การเพิ่มประสิทธิภาพ' แบบธรรมดา

ขอบคุณมาก!

คำตอบ:


4

เทคนิคเหล่านี้ทำสิ่งต่าง ๆ

Gradient descent เป็นเทคนิคการปรับให้เหมาะสมดังนั้นจึงเป็นเรื่องธรรมดาในวิธีการทางสถิติใด ๆ ที่ต้องการการขยายใหญ่สุด (MLE, MAP)

การจำลองแบบมอนติคาร์โลนั้นใช้สำหรับการคำนวณอินทิกรัลโดยการสุ่มตัวอย่างจากการแจกแจงและการประเมินฟังก์ชั่นบางอย่างของตัวอย่าง ดังนั้นจึงมักใช้กับเทคนิคที่ต้องการการคำนวณความคาดหวัง (การอนุมานแบบเบย์, การทดสอบสมมติฐานแบบเบย์)


ดังนั้นการไล่ระดับสีจะเชื่อมโยงกับการสร้างความแตกต่าง (maxima, minima) และ monte carlo เกี่ยวข้องกับการรวมกันหรือไม่
วิกเตอร์

การไล่ระดับสีเป็นลักษณะทั่วไป (หนึ่งในหลาย ๆ ) ของอนุพันธ์ ดังนั้นการไล่ระดับสีจะเชื่อมโยงกับความแตกต่าง แต่ฉันจะบอกว่า "Gradient Descent ใช้อนุพันธ์เพื่อประโยชน์สูงสุด" และ "Monte Carlo ใช้การสุ่มตัวอย่างเพื่อการรวมกลุ่ม" ถ้าฉันต้องใช้คำให้น้อยที่สุด
jlimahaverford

4

นี่เป็นทั้งอัลกอริธึมขนาดใหญ่ดังนั้นจึงเป็นเรื่องยากที่จะให้คำตอบที่แม่นยำ แต่ ...

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

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


"วิธีการมอนติคาร์โล" โดยทั่วไปหมายถึงสิ่งที่คุณทำกับตัวอย่างซึ่งตรงข้ามกับวิธีการรับตัวอย่าง ใน MCMC "Markov Chain" หมายถึงกระบวนการรับตัวอย่าง
jlimahaverford

จริงๆ? ฉันมักจะคิดว่า Monte Carlo บอกเป็นนัยว่ามีการสุ่มเกิดขึ้นและไม่ได้มีความหมายอะไรมากไปกว่านั้น ใน MCMC มันเป็นความจริงที่เกี่ยวข้องกับมาร์คอฟเชน แต่คุณก็สุ่มตัวอย่างจากโซ่ (ดังนั้นมอนเต้คาร์โล) /
แมตต์ Krause

บางทีนี่อาจเป็นเรื่องของความเห็น หากฉันใช้ MCMC เพื่อประมาณค่าเฉลี่ยของการแจกแจงหลังฉันจะใช้การเดินแบบสุ่มบน Markov Chain เพื่อสุ่มตัวอย่างจากการกระจายแบบไม่ธรรมดาของฉันฉันจะใช้ Monte Carlo Integration เพื่อประมาณค่าเฉลี่ย ฉันพิจารณาวิธีการสุ่มตัวอย่างเป็นเครื่องมือที่เปิดใช้งานวิธีการ Monte Carlo ตัวอย่างเช่นฉันจะไม่เรียกตัวอย่างการปฏิเสธด้วยวิธีมอนติคาร์โล แต่ฉันสามารถจินตนาการได้ว่ามีใครบางคนใช้พวกเขาด้วยกัน
jlimahaverford

จากข้อมูลทั้งหมดที่กล่าวมา Wikipedia จะพิจารณาปฏิเสธการสุ่มตัวอย่างวิธีการ Monte Carlo ดังนั้นจึงเป็นไปได้ที่ความคิดของฉันที่นี่จะผิดอย่างสมบูรณ์
jlimahaverford

2

ดังที่อธิบายไว้โดยคนอื่น ๆ การไล่ระดับสี / การขึ้นลงของสีจะทำการปรับให้เหมาะสมเช่นหาค่าสูงสุดหรือต่ำสุดของฟังก์ชัน Monte Carlo เป็นวิธีการจำลองสุ่มเช่นประมาณฟังก์ชั่นการแจกแจงสะสมผ่านการสุ่มตัวอย่างซ้ำ ๆ สิ่งนี้เรียกว่า "การรวมกันของ Monte Carlo" เพราะ cdf ของการแจกแจงแบบต่อเนื่องนั้นเป็นส่วนสำคัญ

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

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


2

คำตอบนี้ผิดบางส่วน คุณสามารถรวมวิธีการ Monte Carlo เข้ากับการไล่ระดับสีได้อย่างแน่นอน คุณสามารถใช้วิธีการ Monte Carlo เพื่อประเมินการไล่ระดับสีของฟังก์ชั่นการสูญเสียซึ่งจะถูกใช้โดยการไล่ระดับสีแบบไล่ระดับเพื่ออัพเดทพารามิเตอร์ วิธียอดนิยมของ Monte Carlo ในการประมาณค่าความลาดชันคือตัวประมาณค่าความลาดชันซึ่งสามารถใช้ในการเรียนรู้การเสริมแรง ดูการคาดคะเนการไล่ระดับสีของ Monte Carlo ในการเรียนรู้ของเครื่อง (2019) โดย Shakir Mohamed et al. สำหรับข้อมูลเพิ่มเติม

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