สอนสร้าง Convolutional Neural Network (ConvNet, CNN) ด้วย TensorFlow.js จำแนกรูปภาพแฟชั่น Fashion MNIST ทำ Visualization ด้วย tfvis – tfjs ep.5

ใน ep นี้เราจะสอนสร้าง Convolutional Neural Network (ConvNet, CNN) ด้วย TensorFlow.js สำหรับจำแนกรูปภาพแฟชั่น เสื้อผ้า กางเกง กระโปรง รองเท้า กระเป๋า แบบ Single Label Multiclass Classification จากชุดข้อมูล Fashion MNIST Dataset ทำ Visualization ด้วย tfvis

สอน TensorFlow.js สร้าง Convolutional Neural Network (ConvNet, CNN) จำแนกรูปภาพ ตัวเลขลายมือ MNIST ทำ Visualization ด้วย tfvis – tfjs ep.4

ใน ep นี้เราจะสร้าง Convolutional Neural Network (ConvNet, CNN) ด้วย TensorFlow.js สำหรับจำแนกรูปภาพ ตัวเลขลายมือ MNIST Dataset ทำ Visualization ด้วย tfvis และนอกจากนั้นเราจะเรียนรู้เทคนิค Sprite Sheet ที่จะช่วยแก้ปัญหาดาวน์โหลดข้อมูลใหม่ทุก Epoch ที่เราพบใน ep ที่แล้ว

AI การแพทย์ วินิจฉัยโรคมะเร็งระยะลุกลาม (Metastatic Cancer) อัตโนมัติ จากรูปแผ่นสไลด์ดิจิตอล โดยใช้ Machine Learning, Deep Neural Network – Image Classification ep.6

ใน ep นี้ เราจะมาสร้างโมเดลที่ใช้จำแนก โรคมะเร็งระยะลุกลาม Metastatic Cancer จากรูปภาพ Patch เล็ก ๆ ของ Whole Slide Imaging ที่ตัดมาจาก Digital Pathology Scans รูปใหญ่

Mixup Data Augmentation และ Label Smoothing คืออะไร ใน Machine Learning – Regularization ep.3

จากใน ep เรื่อง AI จำแนกรูปภาพ Image Classification หมา แมว 37 สายพันธุ์ ใน ep นี้เราจะมาเรียนรู้เทคนิคเพิ่มเติม ในเรื่อง Data Augmentation คือ Mixup และ Loss Function คือ Label Smoothing เพื่อแก้ปัญหาบางอย่างในการเทรนโมเดล Machine Learning ให้มีประสิทธิภาพดีขึ้น

พัฒนาโปรแกรม AI การแพทย์ วินิจฉัยภาวะปอดรั่ว (Pneumothorax) อัตโนมัติ จากฟิล์ม X-Ray โดยใช้ Machine Learning, Deep Neural Network – Image Segmentation ep.2

สมมติว่าอยู่ดี ๆ เราก็หายใจลำบาก หอบตัวโยน โดยไม่มีสาเหตุ ไม่มีอาการล่วงหน้าใด ๆ หรือว่าเราจะเป็น ภาวะปอดรั่ว ใน ep นี้ เราจะมาใช้ Machine Learning และ Deep Neural Network พัฒนาโปรแกรม AI การแพทย์ ช่วยวินิจฉัยภาวะปอดรั่ว หรือ Pneumothorax นี้กัน

สอนอ่านโมเดล Convolutional Neural Network ดู shape ของ Activation Map วิเคราะห์ Model Architecture – ConvNet ep.7

ในการเรียนรู้ สถาปัตยกรรม Deep Neural Network ออกแบบ Convolutional Neural Network การเลือกใช้ Layer ชนิดต่าง ๆ เลือก จำนวน Channel In/Out, ขนาด Kernel, Padding, Stride, etc. ว่าจะเปลี่ยนแปลง shape ของข้อมูลไปอย่างไร จนได้ผลลัพธ์ที่ต้องการ เป็น Output ออกจากโมเดล ถ้าเราสามารถรู้ถึง shape ข้อมูล Activation ที่ผ่านไปในแต่ละ Layer จะทำให้เราเข้าใจการทำงานของโมเดลได้ดีขึ้น ออกแบบ และ Debug โมเดล ได้ง่ายขึ้น

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. จะทำอย่างไร

ตัวอย่างการใช้ 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 แต่ก็ยังมีปัญหาอื่น ๆ อยู่ในช่วงแรก ๆ แล้วเราจะแก้ปัญหานี้อย่างไร

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 แล้วเราจะแก้ปัญหานี้อย่างไรดี