ในปัจจุบันการเทรน Deep Neural Network ใช้พื้นฐานอัลกอริทึมมาจาก Mini-Batch Stochastic Gradient Optimization เป็นส่วนใหญ่ และจำนวนตัวอย่างข้อมูลที่เราป้อนให้โมเดลในหนึ่งครั้ง หรือ 1 Mini-Batch คือ Hyperparameter สำคัญตัวหนึ่งที่เราต้องปรับจูน ซึ่งใน Library ต่าง ๆ จะใช้ชื่อว่า Batch Size

ในเคสที่เรามีข้อมูลขนาดใหญ่ เช่น รูปมีความละเอียดสูง ด้วยข้อจำกัดเรื่องขนาด Memory ของ GPU ทำให้เราต้องลด Batch Size ลง เพื่อให้เทรนโมเดลได้โดยที่ไม่ Out of Memory Error

การเพิ่มลดขนาด Batch Size นี้เอง ไม่ได้แค่มีผลให้โมเดลสามารถเทรนได้เท่านั้น แต่ยังมีผลในเรื่องอื่น ๆ อีก เช่น

  • เวลาที่ใช้เทรน – Batch Size เล็กช้ากว่า
  • Memory ที่ใช้ – Batch Size เล็กใช้น้อยกว่า
  • และที่สำคัญ ความแม่นยำของโมเดล – Batch Size ขนาด <=32 แม่นยำกว่า

สรุปว่า การใช้ Batch Size ขนาดยิ่งใหญ่ยิ่งดี ให้เต็ม GPU Memory ที่สุด จะได้ใช้ GPU คุ้ม ๆ เทรน Deep Neural Network เร็ว ๆ ได้ผลลัพธ์ดี ๆ แต่ในทางปฏิบัติกลับไม่เป็นเช่นนั้น ขนาดของ Batch Size มีผลต่อความแม่นยำของโมเดล และเวลาที่ใช้ในการเทรนด้วย ดังตัวอย่าง Notebook ด้านล่าง

เรามาเริ่มกันเลยดีกว่า

Open In Colab

แชร์ให้เพื่อน:

Surapong Kanoktipsatharporn on FacebookSurapong Kanoktipsatharporn on LinkedinSurapong Kanoktipsatharporn on Rss
Surapong Kanoktipsatharporn
Solutions Architect at Bua Labs
The ultimate test of your knowledge is your capacity to convey it to another.

Published by Surapong Kanoktipsatharporn

The ultimate test of your knowledge is your capacity to convey it to another.