ทำไม GPU ถึงจำเป็นต่อ Deep Learning เปรียบเทียบ CPU vs GPU เทรน Deep Neural Networks – Hardware ep.2

เราคงเคยได้ยินว่า จำเป็นต้องใช้ GPU ในการเทรน Deep Learning ที่ Deep Learning ทำงานได้ดีในยุคปัจจุบันก็เพราะมี Data มหาศาลจากอินเตอร์เน็ต และ มี Hardware คือ GPU ทำให้การวิจัยอัลกอริทึมใหม่ ๆ สร้างโมเดล Deep Neural Networks แบบใหม่ ๆ เทคโนโลยีพัฒนาได้อย่างรวดเร็ว

แต่มันเป็นเรื่องจริงหรือไม่ GPU มีผลแค่ไหน เทียบกับเราใช้ CPU ธรรมดา เราจะมาทดสอบกัน

Continue reading “ทำไม GPU ถึงจำเป็นต่อ Deep Learning เปรียบเทียบ CPU vs GPU เทรน Deep Neural Networks – Hardware ep.2”

ReLU Function คืออะไร ทำไมถึงนิยมใช้ใน Deep Neural Networks ต่างกับ Sigmoid อย่างไร – Activation Function ep.3

เรามาถึง Activation Function ep.3 เรื่อง ReLU Function ซึ่งเป็นฟังก์ชันที่นิยมใช้ในการเทรน Deep Learning มากที่สุดในปัจจุบัน เมื่อเราดูโครงสร้างภายในโมเดล Deep Neural Networks ชื่อดังสมัยใหม่ ก็จะเห็นแต่ ReLU เต็มไปหมด แล้ว ReLU มีดีตรงไหน ต่างกับ Sigmoid อย่างไร เราจะมาเรียนรู้กัน

Continue reading “ReLU Function คืออะไร ทำไมถึงนิยมใช้ใน Deep Neural Networks ต่างกับ Sigmoid อย่างไร – Activation Function ep.3”

Tanh Function คืออะไร เปรียบเทียบกับ Sigmoid Function ต่างกันอย่างไร – Activation Function ep.2

จาก ep ก่อนที่เราเรียนรู้เรื่อง Activation Function คืออะไร ใน Artificial Neural Networks และพูดถึง Sigmoid Function แต่ในปัจจุบัน Activation Function ที่ได้รับความนิยมมีอีกหลายตัว หนึ่งในนั้นคือ Tanh

แล้ว Tanh ต่างกับ Sigmoid อย่างไร ทำไมถึงต้องมี Tanh ขึ้นมาอีก

Continue reading “Tanh Function คืออะไร เปรียบเทียบกับ Sigmoid Function ต่างกันอย่างไร – Activation Function ep.2”

Activation Function คืออะไร ใน Artificial Neural Networks, Sigmoid Function คืออะไร – Activation Function ep.1

ในสมองของมนุษย์คนหนึ่ง จะประกอบด้วยหน่วยเล็ก ๆ เรียกว่า นิวรอน (Neuron) จำนวนประมาณ 8 หมื่น 6 พันล้านนิวรอน ดังรูปด้านบน และแต่ละนิวรอนก็จะเชื่อมต่อโยงใยกันด้วยเส้นประสาทเรียกว่า ไซแนปส์ (Synapse) รวมแล้วประมาณ 1 พันล้านล้านไซแนปส์ ซึ่งนักวิทยาศาสตร์คอมพิวเตอร์ได้นำมาเป็นแนวคิดในการออกแบบ Artificial Neural Networks

Continue reading “Activation Function คืออะไร ใน Artificial Neural Networks, Sigmoid Function คืออะไร – Activation Function ep.1”

Data Augmentation คืออะไร ประโยชน์ของ Data Augmentaion ในการเทรน Deep Learning – Regularization ep.1

ปัญหาหลักอย่างนึงในการเทรน Deep Learning คือ Dataset ของเรามีข้อมูลตัวอย่างไม่เพียงพอ สมมติว่าเราปิ๊งสุดยอดไอเดีย ที่จะสร้าง App ใหม่ ที่ใช้ Machine Learning ขึ้นมา เราเปิดเว็บเพื่อ Search Google หาข้อมูลตัวอย่าง มาไว้เทรนโมเดล เรานั่ง Search Google Images หารูปภาพอยู่หลายชั่วโมง นั่งจัด นั่ง Clean ข้อมูลที่ไม่เกี่ยวข้องออกไป สุดท้ายเราได้ รูปมา 500 รูป ถ้าหาแบบนี้ 10 วัน ก็ 5,000 รูป แต่เรารู้มาว่าโมเดลที่ดัง ๆ ใช้ข้อมูลในการเทรน เกิน 1 ล้านรูปขึ้นไปทั้งนั้น แล้วเราจะทำอย่างไรดี

Continue reading “Data Augmentation คืออะไร ประโยชน์ของ Data Augmentaion ในการเทรน Deep Learning – Regularization ep.1”

สอน Deep Learning สร้างโมเดล Deep Neural Networks ประมาณค่า ตำแหน่งหัว Head Pose – Regression ep.1

ในเคสนี้ เราจะสร้างโมเดลแบบ Regression คือ โมเดลที่ Output เป็นค่าต่อเนื่อง หมายถึง ให้ตอบเป็นค่าอะไรก็ได้ ในช่วงที่กำหนด สมมติว่า 0-5 ก็จะเป็นค่าอะไรก็ได้ เช่น 1.555555, 2.3456789, 0.0000000002865, 4.99999999999999 แต่ใน Dataset นี้คือ ตำแหน่งพิกัด x, y ของจุดศูนย์กลางของหัว

Continue reading “สอน Deep Learning สร้างโมเดล Deep Neural Networks ประมาณค่า ตำแหน่งหัว Head Pose – Regression ep.1”

สอนวิธี Contribute Open Source Software Project ส่ง Pull Request แก้ Bug บน GitHub Fastai – OSS Contribution ep.2

จาก ep ที่แล้ว ที่เรากำลังจะช่วยแก้ Bug ใน Tensorboard callback บน GitHub ของ fastai ซึ่งเป็น Bug ที่ทำให้ไม่มีการแสดง Embedding ใน Tensorboard เราได้ศึกษา หาข้อมูล สื่อสาร จนได้ไฟเขียวให้จากทีมงานเรียบร้อย ใน ep นี้เราจะมาเริ่มลงมือแก้ไขโค้ดกันจริง ๆ Commit และ Push ไปไว้บน Github ไปจนสร้าง Pull Request (PR) สำหรับให้ทีมงานเข้ามาดึงโค้ดของเราไป Merge รวมกับโค้ดต้นฉบับ ให้คนทั่วไปได้ใช้ ตามขั้นตอนดังนี้

Continue reading “สอนวิธี Contribute Open Source Software Project ส่ง Pull Request แก้ Bug บน GitHub Fastai – OSS Contribution ep.2”

เริ่มต้น Contribute Open Source Software แก้ Bug ใน Fastai เรื่อง Tensorboard Integration – OSS Contribution ep.1

จากในบทความก่อนหน้า เรื่อง Visualization Deep Neural Networks ด้วย Tensorboard ทั้ง 2 Ep (1, 2) ถ้าสังเกตตรง import จะเห็นว่าต่างกัน เนื่องจากใน Official Library ของ fastai มี Bug ทำให้ไม่แสดง Embedding ในแท็ป Projector เป็นเหตุให้เราต้องหา Library ตัวอื่นมาใช้แทน แต่ถ้าเราไม่อยากใช้ Library ภายนอก

เนื่องจาก Fast.ai เป็น Open Source Software Project เรามีทางเลือก 2 ทาง 1. คือรอให้ทาง Official เค้าแก้ 2. เราเข้าไป Contribute ช่วยเค้าแก้ ในเคสนี้เราจะลองข้อ 2 เพราะไม่อยากรอ แต่ปัญหาคือเราจะเริ่มต้นอย่างไร

Continue reading “เริ่มต้น Contribute Open Source Software แก้ Bug ใน Fastai เรื่อง Tensorboard Integration – OSS Contribution ep.1”

Visualization Embedding ภายในโมเดล Deep Neural Networks – Tensorboard ep.2

ใน ep นี้เราจะมาใช้ Tensorboard ทำ Visualization ให้กับ Embedding ขนาด 50 มิติ Projector ให้ออกมาเป็น 3D กราฟสวย ๆ ให้เราสามารถหมุนไปมา เลือกกรองหนังเรื่องที่เราต้องการ ดูความใกล้เคียง ของหนังที่เกี่ยวข้อง เพื่อให้เราตีความ เข้าใจได้ง่ายขึ้น

Continue reading “Visualization Embedding ภายในโมเดล Deep Neural Networks – Tensorboard ep.2”

Visualization ภายในโมเดล Deep Neural Networks แสดงผลการเทรน Deep Learning ด้วย Tensorboard ep.1

ตามปกติเราจะคิดว่า Deep Neural Networks เป็นเหมือน Black Box หรือกล่องดำ ที่เราไม่สามารถจะเข้าใจการทำงานภายในได้ Tensorboard คือเครื่องมือที่จะช่วยให้เราส่องทะลุเข้าไปเห็นถึงการทำงานภายในของโมเดล ตั้งแต่การเทรน Deep Learning, Metrics, Gradient, Embedding, Optimization, Etc. ให้เราเห็นภาพ และเข้าใจมากขึ้น ช่วยให้การ Debug, Hyperparameter Tuning ทำได้ง่ายขึ้น

Continue reading “Visualization ภายในโมเดล Deep Neural Networks แสดงผลการเทรน Deep Learning ด้วย Tensorboard ep.1”