XYZNOT

งานวิจัย · arXiv 1502.03167

Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift

เผยแพร่ cs.LG arXivPDF

อ่านพร้อมคำแปลและ AI

สรุปสามบรรทัด

  1. 🎯 การฝึกโครงข่ายเชิงลึกช้าลงจาก internal covariate shift หรือการเลื่อนของค่าการแจกแจงของ activation ในแต่ละชั้นอย่างต่อเนื่องอันเกิดจากการอัปเดตพารามิเตอร์ในชั้นก่อนหน้า
  2. 🔧 นำเสนอ Batch Normalization (BN) ซึ่งเป็นชั้นสถาปัตยกรรมที่แปลงค่า activation ของ mini-batch ให้มี mean เป็นศูนย์และ variance เป็นหนึ่ง ตามด้วยการปรับสเกลและเลื่อนตำแหน่งแบบ affine ที่เรียนรู้ได้ (γ และ β)
  3. 📈 บรรลุความแม่นยำบนชุด validation ที่ 72.2% เท่ากับ Inception ตัวตั้งต้นโดยใช้ขั้นตอนน้อยลง 14 เท่า และทำ top-5 error บนชุดข้อมูลทดสอบ ImageNet ได้ 4.82% ด้วยโมเดลแบบ ensemble

บทคัดย่อ

การฝึกโครงข่ายประสาทเชิงลึก (Deep Neural Networks) มีความซับซ้อนเนื่องจากการแจกแจงของอินพุตในแต่ละชั้นจะเปลี่ยนแปลงไประหว่างการฝึก เมื่อพารามิเตอร์ของชั้นก่อนหน้าเปลี่ยนไป สิ่งนี้ทำให้การฝึกช้าลงเพราะจำเป็นต้องใช้ learning rate ที่ต่ำลงและต้องกำหนดค่าเริ่มต้นของพารามิเตอร์อย่างระมัดระวัง อีกทั้งยังทำให้การฝึกโมเดลที่มี non-linearities แบบอิ่มตัว (saturating nonlinearities) ทำได้ยากยิ่ง เราเรียกปรากฏการณ์นี้ว่า internal covariate shift และแก้ไขปัญหานี้ด้วยการทำ normalization ให้กับอินพุตของแต่ละชั้น จุดแข็งของวิธีนี้เกิดจากการทำให้ normalization เป็นส่วนหนึ่งของสถาปัตยกรรมโมเดลและดำเนินการ normalization สำหรับแต่ละ mini-batch ในการฝึก Batch Normalization ช่วยให้เราสามารถใช้ learning rate ที่สูงขึ้นมากได้ และไม่ต้องกังวลเรื่องการกำหนดค่าเริ่มต้นมากนัก นอกจากนี้ยังทำหน้าที่เป็น regularizer ซึ่งในบางกรณีช่วยตัดความจำเป็นในการใช้ Dropout ออกไปได้ เมื่อนำไปประยุกต์ใช้กับโมเดลการจำแนกภาพระดับ state-of-the-art Batch Normalization สามารถบรรลุความแม่นยำเท่ากันโดยใช้ขั้นตอนการฝึกน้อยลงถึง 14 เท่า และมีประสิทธิภาพชนะโมเดลเดิมอย่างมีนัยสำคัญ เมื่อใช้ร่วมกับการ ensemble โครงข่ายที่ใช้ batch-normalized เราสามารถปรับปรุงผลลัพธ์ที่ดีที่สุดที่เคยเผยแพร่บนชุดข้อมูลจำแนกภาพ ImageNet โดยทำ top-5 validation error ได้ถึง 4.9% (และ 4.8% test error) ซึ่งก้าวข้ามความแม่นยำของผู้ประเมินที่เป็นมนุษย์

บทคัดย่อต้นฉบับ (ภาษาอังกฤษ)

Training Deep Neural Networks is complicated by the fact that the distribution of each layer's inputs changes during training, as the parameters of the previous layers change. This slows down the training by requiring lower learning rates and careful parameter initialization, and makes it notoriously hard to train models with saturating nonlinearities. We refer to this phenomenon as internal covariate shift, and address the problem by normalizing layer inputs. Our method draws its strength from making normalization a part of the model architecture and performing the normalization for each training mini-batch. Batch Normalization allows us to use much higher learning rates and be less careful about initialization. It also acts as a regularizer, in some cases eliminating the need for Dropout. Applied to a state-of-the-art image classification model, Batch Normalization achieves the same accuracy with 14 times fewer training steps, and beats the original model by a significant margin. Using an ensemble of batch-normalized networks, we improve upon the best published result on ImageNet classification: reaching 4.9% top-5 validation error (and 4.8% test error), exceeding the accuracy of human raters.

คู่มือการอ่าน

ปัญหาและแรงจูงใจ

ระหว่างการหาค่าที่เหมาะสมของโครงข่ายเชิงลึกด้วย SGD การเปลี่ยนแปลงพารามิเตอร์ของชั้นก่อนหน้าจะส่งผลให้การแจกแจงของอินพุตที่ส่งไปยังชั้นถัดไปเปลี่ยนแปลง ผู้เขียนเรียกปรากฏการณ์นี้ว่า Internal Covariate Shift

Internal covariate shift ก่อให้เกิดความท้าทายหลัก 2 ประการ:

  1. โครงข่ายย่อยจำเป็นต้องปรับตัวเข้ากับการแจกแจงของ activation ที่เลื่อนไปอย่างต่อเนื่อง
  2. Activation มีแนวโน้มเลื่อนเข้าสู่ช่วงอิ่มตัว (saturating regimes) ของ non-linearities ได้ง่าย (เช่น sigmoid functions) ซึ่งทำให้เกิดปัญหา vanishing gradients และบีบให้ต้องใช้ learning rate ต่ำ รวมถึงต้องกำหนดค่าเริ่มต้นพารามิเตอร์อย่างพิถีพิถัน

แม้ว่าการทำ whitening (การขจัดความสัมพันธ์และปรับให้เป็นมาตรฐาน) ของอินพุตในแต่ละชั้นทั่วทั้งชุดข้อมูลจะช่วยรักษาเสถียรภาพของการแจกแจงได้ แต่การคำนวณ covariance matrix เต็มรูปแบบและการหารากที่สองของเมทริกซ์ผกผันในทุกๆ การอัปเดตพารามิเตอร์นั้นกินทรัพยากรการคำนวณสูงเกินไป และอาจทำให้ gradient พุ่งสูงขึ้นหากการทำ normalization ไม่ได้ถูกรวมเข้าไปในขั้นตอน backpropagation

แนวคิดหลัก

  • Differentiable Normalization Layer: แทนที่จะปรับมาตรฐาน activation ภายนอกกระบวนการ optimization การทำ normalization จะถูกผนวกเข้ากับสถาปัตยกรรมของโมเดลโดยตรง เพื่อให้มั่นใจว่า backpropagation จะนำความสัมพันธ์ระหว่าง activation ของชั้นและสถิติของ mini-batch มาคำนวณด้วย
  • Per-Dimension Normalization: แทนที่จะทำ joint whitening เต็มรูปแบบ แต่ละมิติของ scalar feature จะถูก normalize แยกจากกันให้มี mean เป็นศูนย์และ variance เป็นหนึ่ง
  • Restoring Representational Capacity: เพื่อให้มั่นใจว่าการทำ normalization จะไม่ทำลายความสามารถในการแสดงออก (expressive capability) ของชั้น (เช่น การบังคับให้ sigmoid ทำงานเป็นเชิงเส้นล้วน) จึงมีการใส่พารามิเตอร์ที่เรียนรู้ได้คือ (scale) และ (shift) เพื่อเปิดโอกาสให้ชั้นสามารถกู้คืน identity transformation ได้หากจำเป็น
  • Deterministic Inference: ระหว่างการฝึก ค่าสถิติจะถูกคำนวณจากแต่ละ mini-batch แต่ในเวลาทดสอบ (inference) จะใช้ค่าสถิติคงที่ของประชากร (population statistics ที่คำนวณผ่าน running averages หรือจาก training batches) แทนที่สถิติของ mini-batch เพื่อให้การทำนายผลลัพธ์ของตัวอย่างเดี่ยวมีความแน่นอน (deterministic)
  • Parameter Scale Invariance: การเปลี่ยนสเกลของค่าน้ำหนักในแต่ละชั้นเป็นไปตามสมบัติ ซึ่งหมายความว่าค่าน้ำหนักที่มากขึ้นจะส่งผลให้ effective gradients มีขนาดเล็กลง ช่วยป้องกันปัญหา gradient explosion

วิธีการ (พร้อมสมการสำคัญ)

สำหรับ mini-batch ที่สอดคล้องกับมิติหนึ่งของ activation:

  1. คำนวณ mean ของ mini-batch:
  2. คำนวณ variance ของ mini-batch:
  3. ทำ Normalize ค่า activations (พร้อมค่าคงที่ เพื่อเสถียรภาพเชิงตัวเลข):
  4. ปรับ Scale และ shift ด้วยพารามิเตอร์ที่เรียนรู้ได้ และ :

การประยุกต์ใช้กับชั้นต่างๆ

  • ตำแหน่งที่วาง: นำไปใช้ทันทีก่อนฟังก์ชัน non-linearities: โดย bias ดั้งเดิมของชั้นจะถูกตัดออกไปเนื่องจากการลบ mean จะหักล้างค่านั้นออก (บทบาทของมันจะถูกแทนที่ด้วย )
  • Convolutional Layers: เพื่อรักษาคุณสมบัติ translation equivariance การ normalize จะถูกนำไปใช้ต่อ feature map แทนที่จะเป็นต่อ spatial activation แต่ละจุด สำหรับ batch size ขนาด และขนาดเชิงพื้นที่ ขนาดของ effective mini-batch จะกลายเป็น โดยใช้คู่พารามิเตอร์ ร่วมกันในแต่ละ feature map

การแปลงช่วง Inference

ในเวลาทดสอบ การแปลงจะกลายเป็นการดำเนินการเชิงเส้นแบบคงที่ โดยใช้สถิติของประชากร และ :

ผลลัพธ์ (พร้อมตัวเลขที่สำคัญที่สุด)

  • MNIST เมื่อใช้ Sigmoids: โครงข่ายที่ใส่ Batch Normalization ยังคงรักษาการแจกแจงของ activation ให้เสถียรได้ตลอดการฝึก ช่วยเร่งการลู่เข้า (convergence) และได้ความแม่นยำในการทดสอบสูงกว่าโครงข่ายที่ไม่ได้ normalize
  • ความเร็วในการฝึกบน ImageNet (โครงข่ายเดี่ยว):
    • Inception ที่ไม่ได้ normalize บรรลุความแม่นยำ validation ที่ 72.2% หลังผ่านไป steps
    • Inception แบบใส่ Batch-Normalized พื้นฐานบรรลุ 72.2% ภายใน steps
    • เมื่อเพิ่ม learning rate สูงขึ้น 5 เท่า (BN-x5) บรรลุ 72.2% ได้ใน steps ซึ่งคิดเป็น การลดลงถึง 14 เท่า ของขั้นตอนการฝึกที่ต้องการ และแตะระดับสูงสุดที่ 73.0%
    • เมื่อเพิ่ม learning rate สูงขึ้น 30 เท่า (BN-x30) โมเดลสามารถบรรลุความแม่นยำสูงสุด 74.8% หลังผ่านไป steps
  • Saturating Nonlinearities: ในขณะที่ Inception แบบดั้งเดิมที่ใช้ activation แบบ sigmoid ล้มเหลวในการฝึก (ความแม่นยำค้างอยู่ที่ประมาณ 0.1% ซึ่งเท่ากับการสุ่ม) BN-x5-Sigmoid กลับทำ top-1 accuracy ได้ถึง 69.8%
  • ImageNet SOTA Ensemble: การ ensemble ของโครงข่ายแบบ batch-normalized จำนวน 6 โมเดล บรรลุ top-5 validation error ที่ 4.9% และมี test error ที่ 4.82% บนเซิร์ฟเวอร์ทดสอบ ILSVRC ซึ่งทำผลงานได้เหนือกว่า baseline ของมนุษย์

ข้อจำกัดและคำถามปลายเปิด

  • การพึ่งพาขนาดของ Batch (Batch Size Dependency): เนื่องจาก normalization อาศัยค่าสถิติจากกลุ่มตัวอย่างใน mini-batch การใช้ mini-batch ขนาดเล็กมากๆ อาจทำให้คุณภาพการประมาณค่า variance และ mean ลดลง
  • Recurrent Networks: งานวิจัยนี้ทดสอบกับโมเดลแบบ feedforward และ convolutional โดยยังคงระบุว่า recurrent neural networks (RNNs) เป็นคำถามปลายเปิดที่ยังไม่ได้ทดสอบ ซึ่ง internal covariate shift อาจเป็นปัจจัยสำคัญในกรณีนั้นเช่นกัน
  • รากฐานทางทฤษฎี: ผู้เขียนตั้งสมมติฐานว่า Batch Normalization ทำให้ singular values ของ Jacobian แต่ละชั้นมีค่าเข้าใกล้ 1 แต่ยังชี้ว่าการพิสูจน์พฤติกรรมของ gradient ในเชิงทฤษฎีที่แม่นยำยังคงเป็นหัวข้อเปิดสำหรับการวิเคราะห์ในอนาคต

คำศัพท์สำคัญ

Internal Covariate Shift
การเปลี่ยนแปลงของการแจกแจงของ activation ภายในโครงข่ายระหว่างการฝึก ซึ่งมีสาเหตุมาจากการอัปเดตพารามิเตอร์ในชั้นก่อนหน้า
Batch Normalization
กลไกที่แปลงอินพุตของแต่ละชั้นใน mini-batch ให้มี mean เป็นศูนย์และ unit variance ก่อนที่จะนำไปสเกลและเลื่อนตำแหน่งด้วยพารามิเตอร์ที่เรียนรู้ได้
Scale and Shift Parameters (γ and β)
พารามิเตอร์ที่เรียนรู้ได้ต่อแต่ละมิติของ activation ซึ่งช่วยฟื้นฟูขีดความสามารถในการแสดงออกของโครงข่าย รวมถึงความสามารถในการคงค่าเดิมแบบ identity transform
Whitening
การแปลงข้อมูลอินพุตเพื่อให้ได้ mean เป็นศูนย์ มี unit variance และมิติต่างๆ ของ feature เป็นอิสระต่อกันโดยสมบูรณ์
Batch Normalizing Transform
อัลกอริทึมแบบหาอนุพันธ์ได้ที่คำนวณ mean และ variance ของ mini-batch ทำการ normalize อินพุต และประยุกต์ใช้การสเกลและเลื่อนตำแหน่งแบบ affine ที่เรียนรู้ได้
Population Statistics
ค่า mean ที่คาดหวังรวมและ unbiased variance ที่ติดตามสะสมจาก mini-batch ระหว่างการฝึก เพื่อใช้ตรึงค่าพารามิเตอร์ normalization สำหรับการทำ inference แบบแน่นอน
Feature Map Normalization
การทำ normalization ร่วมกันระหว่างสมาชิกใน mini-batch และตำแหน่งเชิงพื้นที่ เพื่อให้ activation ทั้งหมดภายใน convolutional feature map เดียวกันใช้สถิติและพารามิเตอร์ affine ร่วมกัน

คำถามที่พบบ่อย

ตำแหน่งที่วาง Batch Normalization สัมพันธ์กับ activations และ biases อย่างไร?

มันจะถูกวางไว้ทันทีก่อนฟังก์ชัน non-linearity () โดย bias parameter ของการแปลงเชิงเส้นก่อนหน้านั้นจะถูกตัดออก เนื่องจากกระบวนการลบ mean จะหักล้างมันออกไป ทำให้เหลือ ทำหน้าที่เป็น bias แทน

Batch Normalization มีพฤติกรรมระหว่างการฝึกกับการทำ inference แตกต่างกันอย่างไร?

ระหว่างการฝึก mean และ variance จะถูกคำนวณโดยตรงจาก mini-batch ปัจจุบันเพื่อ normalize ค่า activations ส่วนในขั้นตอน inference ค่าเหล่านี้จะถูกแทนที่ด้วย population statistics คงที่ (unbiased moving averages จาก batches ที่ใช้ฝึก) ซึ่งจะเปลี่ยนชั้นนี้ให้กลายเป็นการแปลงเชิงเส้นแบบคงที่

เหตุใด Batch Normalization จึงทำให้สามารถใช้ learning rate ที่สูงขึ้นได้?

การ normalize ค่า activations ช่วยป้องกันไม่ให้การเปลี่ยนแปลงพารามิเตอร์เพียงเล็กน้อยลุกลามจนเข้าสู่สภาวะอิ่มตัว (saturating regimes) หรือทำให้ gradient ระเบิด (exploding gradients) นอกจากนี้ gradient ที่คำนวณย้อนกลับผ่านชั้นจะมีคุณสมบัติไม่แปรผันตามสเกลของค่าน้ำหนัก (scale-invariant) โดยค่าน้ำหนักที่มากกว่าจะส่งผลให้ได้ gradient ในสัดส่วนที่น้อยลง จึงช่วยป้องกันความไม่เสถียร

Batch Normalization สามารถใช้แทน Dropout ได้หรือไม่?

สามารถทำได้ในการจัดโครงสร้างหลายๆ รูปแบบ เนื่องจาก normalized activation ของตัวอย่างใดตัวอย่างหนึ่งจะขึ้นอยู่กับตัวอย่างอื่นๆ ที่สุ่มเข้ามาใน mini-batch เดียวกัน สิ่งนี้จึงสร้าง stochastic noise เข้าไปในระบบและทำหน้าที่เป็น regularizer ที่มีประสิทธิภาพ ทำให้สามารถลดการใช้หรือตัด Dropout ออกไปได้

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

อ่านพร้อมคำแปลและ AI