Batch Normalization ใช้ค่าเฉลี่ยเคลื่อนที่อย่างไรและทำไมในการติดตามความแม่นยำของโมเดลในขณะที่รถไฟ?


21

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

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

ใช้ค่าเฉลี่ยเคลื่อนที่แทนเราติดตามความแม่นยำของแบบจำลองในขณะที่รถไฟ

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

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


1 : Ioffe S. และ Szegedy C. (2015),
"Batch Normalization: เร่งการฝึกอบรมเครือข่ายลึกโดยการลดการเปลี่ยนแปลงภายใน Covariate Shift"
การดำเนินการประชุมนานาชาติครั้งที่ 32 เกี่ยวกับการเรียนรู้ของเครื่องจักร Lille, France, 2015
วารสารการวิจัยการเรียนรู้ของเครื่องจักร W&CP เล่ม 37


คุณพอใจกับคำตอบที่ได้รับการโหวตแล้วหรือไม่? มันไม่ใช่ "คำตอบ" เลยถ้าคุณถามฉัน หากยังเกี่ยวข้องฉันสามารถให้คำตอบที่ดีกว่า
OverLordGoldDragon

@OverLordGoldDragon ให้คำตอบด้วยตัวคุณเอง :)
Pinocchio

คำตอบ:


8

เมื่อใช้ batch_normalization สิ่งแรกที่เราต้องเข้าใจมันทำงานในสองวิธีที่แตกต่างกันเมื่ออยู่ในการฝึกอบรมและการทดสอบ

  1. ในการฝึกอบรมเราจำเป็นต้องคำนวณค่าเฉลี่ยขนาดเล็กเพื่อที่จะทำให้ชุดผลิตภัณฑ์เป็นปกติ

  2. ในการอนุมานเราเพิ่งใช้สถิติชุดข้อมูลขนาดเล็กที่คำนวณล่วงหน้า

ดังนั้นในสิ่งที่ 2 วิธีการคำนวณสถิติชุดมินินี้

ค่าเฉลี่ยเคลื่อนที่มาที่นี่

running_mean = momentum * running_mean + (1 - momentum) * sample_mean
running_var = momentum * running_var + (1 - momentum) * sample_var

สิ่งนี้ไม่ตอบคำถามใด ๆ "ทำไม" และ "อย่างไร" ถูกถามและตื้น ๆ "อะไร" ที่ได้รับ ไม่ควร upvoted
OverLordGoldDragon

1

พวกเขากำลังพูดถึงการทำให้เป็นมาตรฐานชุดซึ่งพวกเขาได้อธิบายไว้สำหรับขั้นตอนการฝึกอบรม แต่ไม่ได้สำหรับการอนุมาน

นี่เป็นกระบวนการของการทำให้ปกติหน่วยที่ซ่อนอยู่โดยใช้ตัวอย่างหมายถึง ฯลฯ

ในส่วนนี้พวกเขาอธิบายสิ่งที่ต้องทำสำหรับขั้นตอนการอนุมานเมื่อคุณเพิ่งคาดการณ์ (เช่นหลังจากการฝึกอบรมเสร็จสิ้น)

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

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

มันอยู่ในแง่นี้ว่า

ใช้ค่าเฉลี่ยเคลื่อนที่แทนเราติดตามความแม่นยำของแบบจำลองในขณะที่รถไฟ

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

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