ในกรณีที่จำนวนข้อมูลตัวอย่าง ในแต่ละ Class แตกต่างกันมาก เรียกว่า Class Imbalance แทนที่เราจะใช้ Cross Entropy Loss ตามปกติที่เรามักจะใช้ในงาน Classification เราจะใช้ Cross Entropy Loss เวอร์ชันพิเศษ เรียกว่า Weighted Cross Entropy Loss เข้ามาช่วย
Tag Archives: pytorch
สอน PyTorch ฟังก์ชัน gather เลือกข้อมูล จาก Tensor หลายมิติ – Tensor ep.4
ใน ep ก่อน ๆ เราได้เรียนรู้ Tensor การจัดการมิติ การเลือกข้อมูลด้วย indexing, slicing กันไปแล้ว ใน ep นี้ เราจะมาเรียนรู้การเลือกข้อมูล Tensor ที่ซับซ้อนยิ่งขึ้น ด้วย gather อ่านเอกสารแล้วอาจจะยังงง เรามาดูตัวอย่างกันเลยดีกว่า
PyTorch 1.4.0 ออกแล้ว
PyTorch เวอร์ชัน 1.4.0 ออกแล้ว ใน Release นี้จะเป็นการเน้นพัฒนาในส่วน JIT, ONNX, Distributed, Performance และ Eager Frontend เป็นหลัก ในส่วน Experimental มีการพัฒนาปรับปรุงในหลายเรื่อง Mobile และ Quantization รวมถึง Experimental Feature ใหม่ เช่น RPC-Based Model Parallel Distributed Training และ Language Bindings สำหรับภาษา Java (Inference เท่านั้น)
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)
พัฒนาโปรแกรม AI การแพทย์ วินิจฉัยภาวะปอดรั่ว (Pneumothorax) อัตโนมัติ จากฟิล์ม X-Ray โดยใช้ Machine Learning, Deep Neural Network – Image Segmentation ep.2
สมมติว่าอยู่ดี ๆ เราก็หายใจลำบาก หอบตัวโยน โดยไม่มีสาเหตุ ไม่มีอาการล่วงหน้าใด ๆ หรือว่าเราจะเป็น ภาวะปอดรั่ว ใน ep นี้ เราจะมาใช้ Machine Learning และ Deep Neural Network พัฒนาโปรแกรม AI การแพทย์ ช่วยวินิจฉัยภาวะปอดรั่ว หรือ Pneumothorax นี้กัน
Data Pipeline คืออะไร Data Block API สร้าง Data Pipeline สำหรับเทรน Machine Learning แบบ Supervised Learning – Preprocessing ep.5
ในการเทรน Machine Learning โดยเฉพาะแบบ Supervised Learning หรือข้อมูลมี Label นอกจากเรื่องการเทรน การออกแบบสถาปัตยกรรมของโมเดล ยังมีงานสำคัญอีกหลายที่ต้องทำก่อนที่เราจะเริ่มเทรนได้ หนึ่งในนั้นคือ สร้าง Data Pipeline จัดเตรียมข้อมูล
ตัวอย่างการใช้ 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 แล้วเราจะแก้ปัญหานี้อย่างไรดี
PyTorch 1.3 ออกแล้ว
PyTorch เป็น Machine Learning Library ที่ได้รับความนิยมอย่างต่อเนื่องในหมู่นักวิจัย ตอนนี้ได้ออกเวอร์ชัน 1.3 แล้ว มีฟีเจอร์ใหม่ ๆ เช่น 8-bit Integer Eager Mode Quantization, สนับสนุนอุปกรณ์ Mobile iOS และ Android, สนับสนุน TPU และ Cloud, อนุญาตให้ตั้งชื่อ Tensor, Detectron2, การเข้ารหัส Tensor เพื่อความปลอดภัย สำหรับข้อมูลส่วนตัว, etc.