จาก ep ก่อน ๆ ที่เราได้พูดถึง Activation Function ยอดนิยมอย่าง ReLU ว่าเป็นฟังก์ชันที่ถูกใช้ในโมเดล Deep Learning มากที่สุดในปัจจุบัน แต่เมื่อเวลาผ่านไปมีโมเดลใหม่ ๆ Loss Function ใหม่ ๆ Optimizer ใหม่ ๆ ถูกสร้างขึ้นทุกปี แล้วจะมีฟังก์ชันใหม่อะไรมาแทน ReLU ได้หรือไม่ คำตอบอาจจะเป็น Mish Function
Tag Archives: Gradient Descent
Layer-Sequential Unit-Variance Initialization (LSUV) คืออะไร แตกต่างกับ Kaiming อย่างไร ในการ Initialize Deep Neural Network – ConvNet ep.6
จากใน ep ก่อน เราได้เรียนรู้การสร้าง ConvNet ขึ้นมาจากหลายส่วนประกอบด้วยกัน และเมื่อสร้างโมเดลขึ้นมาแล้ว ก่อนเทรนเราจำเป็นต้อง Initialize Parameter (Weight, Bias) ต่าง ๆ ด้วยค่าที่เหมาะสม ใน ep ที่แล้ว เราใช้ Kaiming Initalization แล้วถ้าโมเดลเราเกิดซับซ้อนขึ้นเรื่อย ๆ ล่ะ เช่น มีการเปลี่ยน Activaiton Function, มี Skip Connection, มีหลาย Input, เพิ่ม BatchNorm แบบต่าง ๆ, etc. จะทำอย่างไร
BatchNorm คืออะไร สอน Batch Normalization เทรน Machine Learning โมเดล Deep Convolutional Neural Network – ConvNet ep.5
จากใน ep ก่อน ที่เราได้เรียนรู้การทำ Normalization ข้อมูล Input ให้มี Mean=0, Std=1 เท่ากันในทุก Feature ว่ามีประโยชน์ในการเทรน Machine Learning อย่างไร คำถามก็คือ แล้วทำไมเราไม่ทำแบบเดียวกันใน Hidden Layer ของ Deep Neural Network ในขณะที่เราเทรนโมเดล Deep Learning ด้วยล่ะ
ตัวอย่างการใช้ PyTorch Hook วิเคราะห์ Mean, Standard Deviation, Histogram ของ Activation Map ปรับปรุงการเทรน Deep Learning ด้วย GeneralReLU – ConvNet ep.3
จากใน ep ที่แล้วเราได้เรียนรู้การใช้งาน PyTorch Hook ใน ep นี้เราจะมา Refactor โค้ดสร้าง Class ขึ้นมาจัดการ Hook และใช้ Hook สถิติ ที่ลึกมากขึ้น เราจะวิเคราะห์กราฟ Mean, Std และ Histogram จะเห็นว่าค่อนข้าง Converge เร็ว ไม่เกิด Vanishing Gradient เนื่องจาก PyTorch ได้แก้ปัญหาไปแล้วด้วย Kaiming Initialization แต่ก็ยังมีปัญหาอื่น ๆ อยู่ในช่วงแรก ๆ แล้วเราจะแก้ปัญหานี้อย่างไร
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 ของเรา
ตัวอย่าง Callback ในการเทรน Machine Learning คำนวน Metrics, Recorder บันทึก Loss, Learning Rate – Neural Network ep.11
จาก ep ที่แล้ว ที่เราประยุกต์ใช้ Callback กับ Training Loop ในการเทรน Machine Learning ด้วยอัลกอริทึม Gradient Descent สร้างเป็น Runner Class ที่มี Callback ในทุก ๆ Event ที่เป็นไปได้ ในการเทรน Deep Neural Network แล้วเราจะใช้ประโยชน์จาก ระบบ Callback อันแสนยืดหยุ่นนี้ อย่างไรได้บ้าง ใน ep นี้เราจะมาดูตัวอย่างการสร้าง Callback แบบง่าย ๆ แต่มีประโยชน์ คือการ คำนวน Metrics และ บันทึกค่า Loss, Learning Rate
Normalization คืออะไร ปรับช่วงข้อมูล Feature Scaling ด้วยวิธี Normalization, Standardization ก่อนเทรน Machine Learning – Preprocessing ep.2
การทำ Feature Scaling คือ วิธีการปรับช่วงขอบเขตของข้อมูลชนิดตัวเลข Cardinal แต่ละ Feature (Field) ให้อยู่ในช่วงเดียวกัน ที่เหมาะกับการนำไปประมวลผลต่อ เข้าสูตรคำนวณได้ง่าย เช่น ช่วง [0, 1] หรือ [-1, 1] ได้ผลลัพธ์อยู่ในช่วงที่กำหนด เรียกว่า Data Normalization นิยมทำในขั้นตอน Preprocessing จัดเตรียมข้อมูล ก่อนป้อนให้โมเดลใช้เทรน
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 ต่อ
สร้าง Training Loop แบบง่าย เริ่มต้นเทรน Neural Network ด้วย Mini-Batch SGD – Neural Network ep.4
ใน ep นี้ เราจะมาสร้าง Neural Network สำหรับงาน Classification ด้วยการประกอบชิ้นส่วนทุกอย่างใน ep ก่อน ๆ เข้าด้วยกัน ขึ้นมาเป็น 2 Layers Deep Neural Network ใช้ ReLU Activation Function พร้อม Initialize Weight และ Bias
ตัวอย่าง Vanishing Gradient Problem และ วิธีแก้ Vanishing Gradient Problem ด้วย Kaiming Initialization – Neural Network ep.3
ใน ep ที่แล้วเราได้เรียนรู้ถึงปัญหา Vanishing Gradient Problem และวิธีแก้ไขกันไปแล้ว ใน ep นี้เราจะเจาะลึกลงไปถึงสาเหตุ ดูตัวอย่างของ Neural Network ว่าเมื่อเกิดปัญหา Vanishing Gradient Problem และ Exploding Gradient Problem จะมีอาการอย่างไร และเราจะแก้ไขอย่างไรให้โมเดลสามารถเทรนได้ต่อ