PyTorch Hook คืออะไร สอน PyTorch Hook เจาะลึก Activation Map, Gradient ภายใน Deep Convolutional Neural Network – ConvNet ep.2

จากใน ep ก่อน ๆ ที่เราได้นำ Callback มาประยุกต์ใช้ใน Training Loop เพื่อช่วยให้การเทรนมีความยืดหยุ่น แต่ติดข้อจำกัดว่าเราไม่สามารถเข้าถึงข้อมูลภายในโมเดล Deep Neural Network ในแต่ละ Layer ได้ เนื่องจากการสร้างโมเดลของเราเป็นการเรียกใช้ API ภาษา Python ของ PyTorch แล้วเราจะแก้ปัญหานี้อย่างไรดี

Convolutional Neural Network คืออะไร ภาษาไทย ตัวอย่างการทำงาน CNN, ConvNet กับชุดข้อมูล MNIST – ConvNet ep.1

ใน ep ที่แล้ว Neural Network ep.13 ที่เราได้สร้างโมเดล Deep Neural Network ที่ใช้ Linear Layer + ReLU Activation Function เราได้สร้าง Training Loop ที่มีความ Flexible จาก Callback ทำให้เราสามารถ Schedule Hyperparameter ได้ตามต้องการ แต่ไม่ว่าจะเทรนอย่างไร เราก็จำแนก MNIST ได้ Accuracy สูงสุดแค่ 97% เท่านั้น เนื่องจากข้อจำกัดของ Model Architecture แล้วเราจะแก้ปัญหานี้อย่างไรดี

Schedule Hyperparameter ในการเทรน Machine Learning เทรนโมเดล Deep Neural Network ด้วย Learning Rate ไม่คงที่ One Cycle – Neural Network ep.13

หลังจากที่ใน ep ก่อน เราได้ใช้ LR_Find Callback หา Learning Rate ที่ดีที่สุดได้แล้ว แล้วเราจะนำมาใช้อย่างไร Learning Rate ถือว่าเป็นหนึ่งใน Hyperparameter ที่สำคัญที่สุดในการเทรน Machine Learning มีแนวคิดจากหลากหลาย Paper ที่ว่า ในแต่ละ State ของการเทรน Deep Neural Network นั้นต้องการ Hyperparameter ต่างกันไป แล้วเราจะ Schedule Hyperparameter ของเราได้อย่างไร

เปรียบเทียบ TensorFlow vs PyTorch ในปี 2019 ว่า Machine Learning Framework ไหน เป็นที่นิยมมากกว่ากัน

สงคราม Machine Learning Framework ระหว่าง TensorFlow และ PyTorch ที่ระอุขึ้น ตั้งแต่มีกระแส Deep Learning ในปี 2012 ล่าสุดใครจะเป็นผู้ชนะ Framework จะได้รับความนิยมมากกว่ากัน

lr_find หา Learning Rate ที่ดีที่สุดในการเทรน Machine Learning โมเดล Deep Neural Network ด้วย Callback – Neural Network ep.12

จาก ep ก่อน เราได้รู้จัก Hyperparameter ที่สำคัญที่สุดในการเทรน Machine Learning ชื่อ Learning Rate แต่ปัญหาคือ ถ้าเรากำหนดค่า Learning น้อยไปก็ทำให้เทรนได้ช้า แต่ถ้ามากเกินไปก็ทำให้ไม่ Converge หรืออาจจะ Error ไปเลย แล้วเราจะมีวิธีใด ที่จะหาค่า Learning Rate ที่ดีที่สุด มาใช้เทรน Deep Neural Network ของเรา

Preprocessing คืออะไร สอนจัดการข้อมูลขาดหาย Missing Value วิธีเติมข้อมูลแทนค่า Null, NA, NaN ก่อนป้อนโมเดล เทรน Machine Learning – Preprocessing ep.1

จาก ep ก่อน ที่เราสอนเรื่อง ใช้ Deep Neural Network วิเคราะห์ข้อมูลแบบ Structure หรือข้อมูลแบบตาราง Tabular Data จะมีงานสำคัญที่ต้องทำก่อนเทรน คือการ Preprocessing จัดเตรียมข้อมูล ซึ่งมีหลายอย่าง เช่น Fillna, Normalize, Categorize, Clipping, Binning, Feature Engineering ต่าง ๆ , etc. ใน ep นี้เราจะมาเรียนรู้กันเรื่อง การจัดการกับข้อมูลไม่ครบ วิธีเติมค่าที่ขาดหายไป หรือ Null

ทดสอบ Metrics ของ Neural Network ด้วยข้อมูลจาก Validation Set ระหว่างการเทรน Machine Learning – Neural Network ep.8

ในการเทรน Machine Learning การทดสอบว่าโมเดล Neural Network ทำงานเป็นอย่างไร ที่ถูกต้องเราไม่ควรเทสกับข้อมูล ใน Training Set ที่เราป้อนให้โมเดลในขณะเทรน เพราะจะทำให้ไม่ได้ค่าที่แท้จริง ถ้าโมเดลใช้วิธีจำข้อสอบ เรียกว่า Overfit เมื่อเทสแล้วจะได้คะแนนสูงผิดปกติ ที่ถูกคือ เราควรเทสกับข้อมูลที่โมเดลไม่เคยเห็นมาก่อน ใน Validation Set ที่เรากันเอาไว้ก่อนหน้าที่จะเริ่มต้นเทรน

สับไพ่ข้อมูล DataLoader ด้วย Random Sampler และ Collate ป้อนโมเดล เทรน Machine Learning – Neural Network ep.7

ในแต่ละ Epoch ของการเทรน Machine Learning สอนโมเดล Deep Neural Network เราไม่ควรป้อนข้อมูลที่เรียงลำดับเหมือนกันทุกครั้งให้โมเดล ใน ep นี้เราจะมาสร้าง DataLoader เวอร์ชันใหม่ ที่จะสับไพ่ข้อมูลตัวอย่างก่อนป้อนให้โมเดล เป็นการลดการจำข้อสอบของโมเดล ช่วยให้โมเดล Generalization ได้ดีขึ้น ลด Variance ของโมเดล

Refactor สร้าง Optimizer สำหรับอัพเดท Parameter ของ Neural Network ในการเทรน Deep Learning – Neural Network ep.6

ใน ep นี้เราจะมา Refactor Model สร้าง Module, Parameter และ Optimizer เป็น Abstraction ในจัดการการอัพเดท Parameter ของโมเดล ด้วยอัลกอริทึมต่าง ๆ เพื่อลดความซับซ้อน ของ Training Loop ทำให้การเทรน Neural Network ยืดหยุ่นขึ้น เราจะใช้โค้ดจาก Neural Network ep 5 เป็นโค้ดเริ่มต้น นำมา Refactor ต่อ

Visualization เจาะลึกภายใน Neural Network วิเคราะห์ Activation และ Gradient ด้วย Heatmap และ Grad-CAM – ConvNet ep.4

หลาย ๆ คนจะมองว่า Neural Network เป็นเหมือนกล่องดำ ข้างในมีแต่ตัวเลข เมตริก เทนเซอร์ Neuron, Activation, Gradient วิ่งไปวิ่งมา โดยที่เราไม่รู้ว่า Logic การทำงานภายในของมันเป็นอย่างไร ไม่สามารถเข้าใจได้ แต่เราสามารถใช้เทคนิค Grad-CAM มาช่วยในการตีความ Activation และ Gradient ของโมเดล ทำให้เข้าใจถึงการทำงานภายใน Neural Network มากขึ้น ว่าโมเดลพิจารณาจากบริเวณไหน Attention โฟกัสส่วนไหน เป็นพิเศษ