จะกำหนดเงื่อนไขการยกเลิกสำหรับการไล่ระดับสีได้อย่างไร


24

ที่จริงแล้วฉันอยากถามคุณว่าฉันจะกำหนดเงื่อนไขการยุติสำหรับการไล่ระดับสีได้อย่างไร

ฉันสามารถหยุดมันตามจำนวนการวนซ้ำได้หรือไม่เช่นการพิจารณาค่าพารามิเตอร์สำหรับการพูดการวนซ้ำ 100 ครั้ง

หรือฉันควรรอดังกล่าวที่แตกต่างกันในค่าพารามิเตอร์ที่สอง 'ใหม่' และ 'เก่า' ที่มีขนาดเล็กมากที่จะสั่งของให้พูด ? นี้จะใช้เวลาแน่นอน10-6

วิธีที่ดีที่สุดคืออะไร? ในกรณีของฉันการทำซ้ำแม้แต่ครั้งเดียวก็ใช้เวลามาก ในสถานการณ์เช่นนี้หากฉันรอเงื่อนไขที่ 2 อาจต้องใช้เวลาหลายสัปดาห์กว่าที่ฉันจะเดาได้

ดังนั้นฉันควรใช้วิธีใด วิธีจัดการกับสถานการณ์นี้


1
ไม่ได้ระบุไว้อย่างชัดเจน แต่ฉันคิดว่าคุณกำลังพยายามหา MLE ผลลัพธ์ของคุณขึ้นอยู่กับพื้นที่พารามิเตอร์จริง ๆ ฟังก์ชั่นความน่าจะเป็นและความต้องการของคุณ (หรือที่ดีที่สุดคือไม่ได้กำหนดไว้อย่างดี) หากคุณกำลังมองหาเหตุผลทางทฤษฎีเช่นประสิทธิภาพเชิงซีมโทติค ภายใต้เงื่อนไขของ Le'Cam คุณสามารถใช้ MLE แบบขั้นตอนเดียว (ภายใต้สมมติฐานเพิ่มเติมคือคุณกำลังใช้วิธีของนิวตันและฟังก์ชันคะแนนสำหรับการไล่ระดับสีของคุณ) สิ่งนี้ต้องการให้ค่าเริ่มต้นของคุณเป็นไปได้ที่ในความน่าจะเป็น n1/2θ^0θ
Jonathan Lisic

ดังนั้นรอสักครู่เมื่อคุณพูดว่า "ใหม่" - "เก่า" มีขนาดเล็กพอสมควรนั่นเป็นเงื่อนไขการเลิกจ้างที่ไม่ถูกต้องสำหรับการไล่ระดับสีหรือไม่? (หากใช้จุดคงที่เช่นทฤษฎีบทใช้เงื่อนไขนั้นควรจะตกลงไหม)
Charlie Parker

หนึ่งสามารถหยุดเมื่อใด ๆ ของ: ฟังก์ชั่นค่าหรือไล่ระดับสีหรือพารามิเตอร์ดูเหมือนจะหยุดการย้ายทั้งญาติหรือแน่นอน แต่ในทางปฏิบัติพารามิเตอร์ .. เป็นวิธีที่มากเกินไปดังนั้นพวกเขาจึงถูกพับเก็บได้ แต่ทุกโปรแกรมนั้นแตกต่างกัน ดูความคลาดเคลื่อนของ Mathworks และเกณฑ์การหยุดสำหรับรูปภาพ ผมผมxผม3×2ftolabs ftolrelxtolabs
denis

คำตอบ:


19

เป็นคำถามที่ดี ฉันเคยเห็นกฎการหยุดมากมายในวรรณคดีและมีข้อดีและข้อเสียสำหรับแต่ละข้อขึ้นอยู่กับบริบท optimฟังก์ชั่นในการวิจัย, เช่นมีอย่างน้อยสามกฎหยุดที่แตกต่างกัน

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

  • abstolคือหยุดเมื่อฟังก์ชันรับ "ปิดเพียงพอ" เป็นศูนย์ สิ่งนี้อาจไม่เกี่ยวข้องกับคุณ (ไม่เหมือนที่คุณคาดหวังว่าจะเป็นศูนย์) ดังนั้นฉันจะข้ามมันไป

  • reltolซึ่งเป็นเหมือนข้อเสนอแนะที่สองของคุณ - หยุดเมื่อการปรับปรุงลดลงต่ำกว่าเกณฑ์ จริง ๆ แล้วฉันไม่ทราบว่ามีทฤษฎีมากน้อยเพียงใด แต่คุณอาจมีแนวโน้มที่จะได้รับ minima ที่ลดลงด้วยวิธีการทำซ้ำจำนวนน้อยที่สุด หากนั่นเป็นสิ่งสำคัญสำหรับคุณมันอาจจะคุ้มค่าที่จะใช้รหัสสำหรับการวนซ้ำมากขึ้น

กฎการหยุดในตระกูลอื่นเกี่ยวข้องกับการปรับฟังก์ชั่นต้นทุนให้เหมาะสมกับชุดข้อมูลการตรวจสอบความถูกต้อง (หรือด้วยการตรวจสอบข้าม) แทนที่จะใช้กับข้อมูลการฝึกอบรม ขึ้นอยู่กับสิ่งที่คุณต้องการใช้แบบจำลองของคุณคุณอาจต้องการหยุดให้ดีก่อนที่คุณจะได้รับข้อมูลการฝึกอบรมขั้นต่ำในพื้นที่เนื่องจากอาจเกี่ยวข้องกับการ overfitting ฉันค่อนข้างมั่นใจว่า Trevor Hastie เขียนเกี่ยวกับวิธีการที่ดีในการทำสิ่งนี้ แต่ฉันจำการอ้างอิงไม่ได้

ตัวเลือกอื่น ๆ ที่เป็นไปได้สำหรับการค้นหาขั้นต่ำในระยะเวลาที่เหมาะสมอาจรวมถึง:

  • การไล่ระดับสีแบบสุ่ม Stochastic ซึ่งต้องการการประมาณค่าการไล่ระดับสีสำหรับข้อมูลส่วนเล็ก ๆ ของคุณในแต่ละครั้ง (เช่นจุดข้อมูลหนึ่งจุดสำหรับ "บริสุทธิ์" SGD หรือชุดเล็ก ๆ )

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

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

วิธีการเหล่านี้ถูกกล่าวถึงทั้งหมดในบันทึกการบรรยายที่ฉันพบทางออนไลน์

หวังว่านี่จะช่วยได้!

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


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

ฉันต้องการชี้แจงว่าreltol(เช่นเมื่อหยุดการปรับปรุง ") หมายถึงอะไร การปรับปรุงครั้งแรกหมายถึงการลดฟังก์ชั่นค่าใช้จ่าย ดังนั้นฉันจะสมมติว่าสิ่งที่คุณหมายถึงคือเมื่อฟังก์ชั่นค่าใช้จ่ายหยุดลดลงพอ (หรือเริ่มเพิ่มขึ้น) หนึ่งหยุดใช่ไหม ไม่มีใครทำ "| เก่า - ใหม่ |" ประเภทของกฎการอัพเดทใช่มั้ย
Charlie Parker

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

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