Stop Words คืออะไร ใน Natural Language Processing – NLP ep.2

Natural Language Processing (NLP) ในสมัยก่อนยุค Deep Learning เป็นที่นิยม นักวิจัยมักจะใช้วิธี Hand Engineer กับข้อมูล ในงาน NLP จะมีการเขียนโปรแกรมผูก Logic กฏระเบียบ ไวยากรณ์ ไว้หลายอย่างในโปรแกรม มีการตัดสินใจกำหนด Assumption / Bias หลายอย่าง หนึ่งในนั้นคือ Stop Words ตามรายการที่กำหนด สามารถตัดทิ้งได้ ไม่สำคัญกับความหมายของเนื้อหา ทำให้ลดจำนวนคำศัพท์ ลดความซับซ้อนของโปรแกรมลง

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

Data Pipeline คืออะไร Data Block API สร้าง Data Pipeline สำหรับเทรน Machine Learning แบบ Supervised Learning – Preprocessing ep.5

ในการเทรน Machine Learning โดยเฉพาะแบบ Supervised Learning หรือข้อมูลมี Label นอกจากเรื่องการเทรน การออกแบบสถาปัตยกรรมของโมเดล ยังมีงานสำคัญอีกหลายที่ต้องทำก่อนที่เราจะเริ่มเทรนได้ หนึ่งในนั้นคือ สร้าง Data Pipeline จัดเตรียมข้อมูล

Loss Function คืออะไร Cost Function, Error Function คืออะไร ทำงานอย่างไร ใน Machine Learning – Loss Function ep.1

ใน ep นี้ เราจะมาเรียนรู้กันว่า Loss Function คืออะไร Loss Function ทำงานอย่างไร Loss Function เกี่ยวอะไรกับ Machine Learning Algorithm

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