Data Echoing คืออะไร เพิ่มความเร็วในการเทรน Neural Network ด้วยเทคนิค Data Echoing – Preprocessing ep.6

อย่างที่เราทราบกันดีว่า I/O หรือระบบ Input/Output เป็นอะไรที่ช้าที่สุด ของระบบคอมพิวเตอร์ การที่จะ Optimize ให้คอมพิวเตอร์ทำงานได้ประสิทธิภาพมากที่สุด ต้องใช้ความรู้ความเข้าใจ บริหารจัดการทรัพยากรส่วนต่าง ๆ เช่น CPU, GPU, Memory, Storage, Network ให้ทำงาน Utilize มากที่สุด ลด Bottleneck ที่ต้องรอข้อมูลระหว่างกัน แต่ในการเทรน Machine Learning ที่เราวิธีที่เราทำกันอยู่ Training Loop จะเริ่มต้นจาก อ่านข้อมูล, สับไพ่ข้อมูล, Split, Data Augmentation, Feed Forward, Loss Function, Backpropagation, Optimizer Update Weight แล้วเริ่มต้น Loop ใหม่ เป็นอย่างนี้ซ้ำ ๆ ไปเรื่อย ๆ ตามลำดับ โดยไม่ได้คำนึงถึงประเด็นด้านบน แล้วเราจะแก้ไขอย่างไร

Quantization คืออะไร Post-Training Quantization มีประโยชน์อย่างไร กับ Deep Neural Network บนอุปกรณ์ Embedded Device, IoT, Edge, มือถือ Mobile – tflite ep.2

ถ้าข้างนอกมีฝนตกอยู่ เราอาจจะไม่ได้ต้องการทราบว่าฝนกำลังตกกี่เม็ดต่อวินาที เราต้องการทราบแค่เพียงว่า ฝนตกหนัก ฝนตกปานกลาง หรือฝนตกเล็กน้อย เช่นเดียวกับการพยากรณ์ของ Neural Network บ่อยครั้งที่เราไม่ได้ต้องการความแม่นยำขนาด ตัวเลยทศนิยม Floating Point 32 Bit หรือแม้กระทั่ง 16 Bit และในหลาย ๆ งานใช้แค่จำนวนเต็ม Integer 8 Bit ก็เพียงพอแล้ว

Batch Size คืออะไร ปรับอย่างไรให้พอดี กับ GPU Memory และ ได้ Accuracy สูงสุด ในการเทรน Deep Neural Network – Hyperparameter Tuning ep.2

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