อะไรคือความแตกต่างระหว่าง 'ยุค' 'แบทช์' และ 'มินิบัส'


36

เท่าที่ฉันรู้เมื่อใช้ Stochastic Gradient Descent เป็นอัลกอริทึมการเรียนรู้ใครบางคนใช้ 'ยุค' สำหรับชุดข้อมูลแบบเต็มและ 'ชุด' สำหรับข้อมูลที่ใช้ในขั้นตอนการอัปเดตเดียวในขณะที่อีกชุดใช้ 'ชุด' และ 'minibatch' ตามลำดับ คนอื่นใช้ 'ยุค' และ 'minibatch' สิ่งนี้ทำให้เกิดความสับสนมากขณะพูดคุย

ดังนั้นคำพูดที่ถูกต้องคืออะไร? หรือพวกเขาเป็นเพียงภาษาถิ่นที่ยอมรับได้ทั้งหมด?

คำตอบ:


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

15

ปกติหนึ่งยุคหมายถึงอัลกอริทึมของคุณเห็นอินสแตนซ์การฝึกอบรมทุกครั้ง ตอนนี้สมมติว่าคุณมีอินสแตนซ์การฝึกอบรม :n

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

ถ้าคุณเรียกใช้โปรแกรมปรับปรุงมินิแบทช์กับชุดขนาด = , การปรับปรุงทุกพารามิเตอร์ต้องดูขั้นตอนวิธีการของคุณของกรณีการฝึกอบรมคือทุกยุคพารามิเตอร์ของคุณมีการปรับปรุงเกี่ยวกับครั้งbbnn/b

หากคุณเรียกใช้การอัปเดต SGD การอัปเดตพารามิเตอร์ทั้งหมดต้องใช้อัลกอริทึมของคุณดูอินสแตนซ์การฝึกอบรม1 ในครั้งนั่นคือทุกยุคพารามิเตอร์ของคุณจะได้รับการอัปเดตประมาณครั้งnn


3

"ยุค" มักจะหมายถึงการเปิดเผยอัลกอริทึมการเรียนรู้ให้กับชุดข้อมูลการฝึกอบรมทั้งหมด สิ่งนี้ไม่สมเหตุสมผลเสมอไปในบางครั้งเราสร้างข้อมูล

"Batch" และ "Minibatch" อาจสร้างความสับสนได้

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

ในบริบทของ SGD "มินิแบตช์" หมายความว่าการไล่ระดับสีจะถูกคำนวณในชุดทั้งหมดก่อนที่จะอัปเดตน้ำหนัก หากคุณไม่ได้ใช้ "minibatch" ทุกตัวอย่างการฝึกอบรมใน "แบทช์" จะอัปเดตพารามิเตอร์ของอัลกอริทึมการเรียนรู้อย่างอิสระ


คุณแน่ใจเกี่ยวกับย่อหน้าสุดท้ายหรือไม่ ฉันคิดว่า "แบทช์" SGD ใช้ข้อมูลทั้งหมดในยุคเพื่อคำนวณการไล่ระดับสีที่แม่นยำอย่างช้าๆ ประโยคสุดท้ายของคุณดูเหมือนจะเป็นมินิแบทช์ขนาด 1
Matt Krause

ขอต้อนรับสู่ Cross Validated!
Matt Krause

ใช่เดิม SGD มีขนาดมินิแบทช์ 1 ฉันคิดว่าท้ายที่สุดแล้วมันขึ้นอยู่กับการตีความของผู้เขียนซอฟต์แวร์ บ่อยครั้งที่แบทช์ == มินิแบทช์ไม่มีเอกสารที่เคยกล่าวถึง "มินิแบทช์"
ferrouswheel

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