Recurrent Neural Network (RNN) คืออะไร Gated Recurrent Unit (GRU) คืออะไร สอนสร้าง RNN ถึง GRU ด้วยภาษา Python – NLP ep.9

ใน ep นี้เราจะมาสร้าง Artificial Neural Network แบบ Recurrent Neural Network (RNN) กันแต่ต้น ด้วยภาษา Python เริ่มตั้งแต่ ปัญหาว่าทำไมต้องมี RNN พื้นฐานแนวคิด ศึกษาการทำงานของ RNN แบบง่าย ข้อดี ข้อเสีย แล้วพัฒนาโมเดล ปรับปรุง แก้ไขข้อจำกัดของโมเดล RNN แต่ละแบบ ไปจนถึง Gated Recurrent Unit (GRU)

Sentiment Classification วิเคราะห์รีวิวหนัง IMDB แง่บวก แง่ลบ ด้วย AWD_LSTM Deep Neural Network เทรนแบบ ULMFiT Transfer Learning – NLP ep.8

ใน ep ที่แล้วเราใช้ Naive Bayes และ Logistic Regression ที่เป็นอัลกอริทึมที่เป็นที่นิยมก่อนยุค Deep Learning แต่ใน ep นี้เราจะเปลี่ยนมาใช้ Deep Neural Network แทนว่าจะมีประสิทธิภาพต่างกันอย่างไร

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

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

พัฒนาโปรแกรม 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 โมเดล ได้ง่ายขึ้น

TensorFlow Playground คืออะไร รีวิว TensorFlow Playground สอน Neural Network แบบเห็นภาพ เข้าใจง่าย

TensorFlow Playground คือ เว็บไซต์ที่ให้เราเรียนรู้เกี่ยวกับ Neural Network ด้วยการเป็นเครื่องมือให้เราได้ออกแบบ และเทรน Neural Network ที่มีขนาดเล็ก ไม่ซับซ้อนมาก แต่ทำงานได้จริง TensorFlow Playground ใช้งานสะดวกเพราะไม่ต้องติดตั้งโปรแกรมอะไรเลย สามารถใช้งานผ่านเว็บไซต์ได้ทันที

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

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