เนื่องจากใน Web Browser มีทรัพยากรจำกัด การที่เราจะใช้ TensorFlow.js เทรนโมเดลตั้งแต่ต้น จะทำให้เสียเวลาค่อนข้างมาก ในการใช้งาน TensorFlow.js ส่วนใหญ่ เราจึงจะต้องการเทรนโมเดล ด้วยภาษา Python บน Cloud หรือ เครื่อง Server ขนาดใหญ่ ที่มี GPU ความเร็วสูง เมื่อเรียบร้อยแล้ว แล้วนำโมเดลนั้นมาแปลง Convert เพื่อไป Load ใช้งานบน Web Browser รัน JavaScript อีกทีหนึ่ง
Tag Archives: model
TensorFlow.js คืออะไร สอน TensorFlow.js สร้างโมเดล แบบง่าย 1 Dense Layer เริ่มต้นเทรน Machine Learning เส้นตรง Linear Regression ด้วย SGD – tfjs ep.1
ในการสร้างโมเดล Machine Learning ที่สามารถ Predict ได้อย่างถูกต้อง แม่นยำ อีกเรื่องที่เราควรคำนึงถึงคือ สุดท้ายแล้วจุดหมายปลายทางนั้น โมเดลจะถูกนำไป Deploy ที่ไหน ไม่ว่าจะเป็นบน Web Browser, Server, มือถือ, Edge Device, IoT, etc. ใน ep นี้ เราจะมาเรียนรู้ TensorFlow.js ซึ่งเป็น Machine Learning Framework สำหรับภาษา JavaScript จาก Google ที่สามารถรันได้ทั้งใน Web Browser และ บน Server ผ่าน Node.js
สอนอ่านโมเดล 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 โมเดล ได้ง่ายขึ้น
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 แล้วเราจะแก้ปัญหานี้อย่างไรดี
Refactor โค้ด Neural Network สร้าง DataBunch และ Learner ปรับปรุง Training Loop – Neural Network ep.9
ใน ep ที่แล้วเราได้ Neural Network และ Training Loop ที่ทำงานได้ดีพอสมควร มีการวัดผล Metrics กับข้อมูลใน Validation Set เพื่อให้แน่ใจว่าโมเดลทำงานได้ถูกต้องกับข้อมูลที่ไม่เคยเห็นมาก่อน แต่โค้ด Training Loop ของเรายังมีความซับซ้อนเกินไป ใช้ Parameter จากภายนอกถึง 6 ตัว ซึ่งมากเกินไป ทำให้ยากต่อการต่อยอดเทรนในอัลกอริทึมที่ซับซ้อนยิ่งขึ้น แล้วเราจะแก้ไขอย่างไร
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 ต่อ
ตัวอย่าง Linear Regression ด้วย Stochastic Gradient Descent (SGD) พื้นฐานของ Neural Network – Optimization ep.2
จาก ep ที่แล้วที่เราเล่าถึงคอนเซ็ปต์ของ SGD ไป ใน ep นี้เราจะมาดูตัวอย่างโค้ดแบบง่ายที่สุด ซับซ้อนน้อยที่สุด ซึ่งเป็นพื้นฐานสำคัญของ Machine Learning แบบ Neural Network คือ Linear Regression ด้วยอัลกอริทึม Stochastic Gradient Descent (SGD) แต่ในการหา Slope นั้นเราไม่ต้อง Diff เอง แต่เราจะใช้ความสามารถ ของ Pytorch เรียกว่า Autograd หา Gredient ของ Parameter ทุกตัวให้โดยอัตโนมัติ
Visualization Embedding ภายในโมเดล Deep Neural Network – Tensorboard ep.2
ใน ep นี้เราจะมาใช้ Tensorboard ทำ Visualization ให้กับ Embedding ขนาด 50 มิติ Projector ให้ออกมาเป็น 3D กราฟสวย ๆ ให้เราสามารถหมุนไปมา เลือกกรองหนังเรื่องที่เราต้องการ ดูความใกล้เคียง ของหนังที่เกี่ยวข้อง เพื่อให้เราตีความ เข้าใจได้ง่ายขึ้น
Visualization ภายในโมเดล Deep Neural Network แสดงผลการเทรน Deep Learning ด้วย Tensorboard ep.1
ตามปกติเราจะคิดว่า Deep Neural Network เป็นเหมือน Black Box หรือกล่องดำ ที่เราไม่สามารถจะเข้าใจการทำงานภายในได้ Tensorboard คือเครื่องมือที่จะช่วยให้เราส่องทะลุเข้าไปเห็นถึงการทำงานภายในของโมเดล ตั้งแต่การเทรน Deep Learning, Metrics, Gradient, Embedding, Optimization, Etc. ให้เราเห็นภาพ และเข้าใจมากขึ้น ช่วยให้การ Debug, Hyperparameter Tuning ทำได้ง่ายขึ้น