ความแตกต่างใด ๆ ในการทำให้เป็นมาตรฐานใน MLP ระหว่างการอัพเดตแบบแบตช์และแบบเดี่ยว


9

ฉันเพิ่งเรียนรู้เกี่ยวกับการทำให้เป็นมาตรฐานเป็นแนวทางในการควบคุมการปรับตัวให้เหมาะสมและฉันต้องการที่จะรวมแนวคิดนี้ไว้ในการติดตั้ง backpropagation และMultilayer perceptron (MLP) ที่เรียบง่าย

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

สูตรที่ฉันมีสำหรับคำที่ใช้ในการปรับปรุง (จากหลักสูตร Coursera ML) ระบุไว้เป็นชุดการปรับปรุงเช่นสำหรับแต่ละน้ำหนักหลังจากรวม deltas ที่เกี่ยวข้องทั้งหมดสำหรับชุดการฝึกอบรมทั้งหมดจากการเผยแพร่ข้อผิดพลาดการปรับปรุงlambda * current_weightจะถูกเพิ่มเช่นกัน เดลต้าจะถูกลบออกในตอนท้ายของแบทช์โดยที่lambdaพารามิเตอร์การทำให้เป็นปกติ

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

ตัวอย่างเช่นlambda * current_weight / Nที่ N คือขนาดของชุดการฝึกอบรม - ในแวบแรกนี่ดูสมเหตุสมผล ฉันไม่พบสิ่งใดในหัวเรื่องและฉันสงสัยว่านั่นเป็นเพราะการทำให้เป็นมาตรฐานไม่ทำงานเช่นกันกับการอัปเดตต่อรายการหรือแม้แต่ไปอยู่ภายใต้ชื่ออื่นหรือสูตรที่เปลี่ยนแปลง

คำตอบ:


2

การทำให้เป็นมาตรฐานมีความเกี่ยวข้องในการเรียนรู้แบบต่อรายการ ฉันขอแนะนำให้เริ่มต้นด้วยวิธีการตรวจสอบความถูกต้องขั้นพื้นฐานสำหรับการค้นหาแลมบ์ดาไม่ว่าคุณจะทำการเรียนรู้แบบแบทช์หรือต่อรายการ นี่เป็นวิธีที่ง่ายและปลอดภัยที่สุด ลองด้วยตนเองด้วยค่าที่แตกต่างกัน เช่น 0.001 0.003, 0.01, 0.03, 0.1 เป็นต้นและดูว่าชุดการตรวจสอบของคุณทำงานอย่างไร ในภายหลังคุณสามารถทำให้กระบวนการนี้เป็นแบบอัตโนมัติได้โดยการแนะนำวิธีการค้นหาเชิงเส้นหรือท้องถิ่น

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

เมื่อเร็ว ๆ นี้ฉันได้พบคำถามที่พบบ่อยซึ่งคล้ายกับคำถามของคุณ มีลิงค์ไปยังบทความเกี่ยวกับอัลกอริทึม SGD ใหม่พร้อมเนื้อหาที่เกี่ยวข้อง อาจเป็นประโยชน์ในการดู (โดยเฉพาะหน้า 1742-1743)


ใช่ฉันยังตั้งใจจะตรวจสอบความถูกต้องข้ามคำถามของฉันเป็นพื้นฐานมากกว่านั้น - ฉันไม่สามารถหาการอ้างอิงใด ๆ เพื่อใช้การทำให้เป็นมาตรฐานด้วยการปรับน้ำหนักต่อรายการเป็น MLP และกังวลว่ามีสิ่งที่ดี เหตุผลที่ - เช่นไม่ทำงานในโหมดการเรียนรู้นั้นหรือต้องการการปรับ คำถาม crossvalidated เป็นที่คล้ายกันมากและแม้ว่าทำให้ผมมีความมั่นใจมากขึ้นขอขอบคุณ หน้าอัลกอริทึม SGD ดูเหมือนว่าจะมีวิธีการสุ่มที่แตกต่างกันสำหรับการแนะนำการทำให้เป็นระเบียบซึ่งอาจเป็นขั้นสูงสำหรับฉัน แต่ก็เป็นสิ่งที่ฉันกำลังมองหาอยู่
Neil Slater

การทำให้เป็นมาตรฐานมีความเกี่ยวข้องในการเรียนรู้แบบต่อรายการเช่นกัน ฉันยังคงแนะนำให้เริ่มต้นด้วยวิธีการตรวจสอบเบื้องต้นสำหรับการค้นหาแลมบ์ดา นี่เป็นวิธีที่ง่ายและปลอดภัยที่สุด ลองด้วยตนเองด้วยค่าที่แตกต่างกัน เช่น 0.001 0.003, 0.01, 0.03, 0.1 เป็นต้นและดูว่าชุดการตรวจสอบของคุณทำงานอย่างไร ในภายหลังคุณสามารถทำให้กระบวนการนี้เป็นแบบอัตโนมัติได้โดยการแนะนำวิธีการค้นหาเชิงเส้นหรือท้องถิ่น
insys

หากความคิดเห็นของคุณข้างต้นได้รับการแก้ไขและแทนที่ประโยค / คำถามแรกในคำตอบของคุณฉันคิดว่าฉันยอมรับได้
Neil Slater

ขอบคุณสำหรับการชี้ให้เห็นฉันเห็นด้วย แก้ไขแล้วค่ะหวังว่าชัดเจนกว่า
insys

2

เพื่อเติมเต็มสิ่งที่insysพูด:

การทำให้เป็นมาตรฐานจะใช้เมื่อคำนวณ backpropagation สำหรับน้ำหนักทั้งหมดใน MLP ของคุณ ดังนั้นแทนที่จะคำนวณการไล่ระดับสีโดยคำนึงถึงอินพุตทั้งหมดของชุดฝึกอบรม ( batch) คุณใช้เพียงบางส่วน / หนึ่งรายการ ( stochastic or semi-stochastic) คุณจะสิ้นสุดการ จำกัด ผลลัพธ์ของการอัปเดตที่เกี่ยวข้องกับหนึ่งรายการแทนทั้งหมดซึ่งถูกต้องเช่นกัน

นอกจากนี้ถ้าผมจำไม่ผิด, แอนดรู NG L2-regularizationใช้ การ/Nin lambda * current_weight / Nไม่บังคับเพียงแค่ช่วย rescaling อินพุต แต่ถ้าคุณเลือกที่จะไม่ใช้มันคุณจะมี (ในส่วนของกรณี) lambdaเพื่อเลือกค่าอีก

คุณยังสามารถใช้อัลกอริทึม Grid-searchเพื่อเลือกค่าที่ดีที่สุดสำหรับlambda( hyperparameter => ที่คุณต้องเลือก)

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