เส้นทางการเรียนรู้ของ Machine Learning


รูปแสดง learning path ของ machine learning ที่เป็นเส้นทางที่ recommend ให้สำหรับคนที่สนใจอยากเรียนรู้เรื่องนี้


คนส่วนใหญ่คิดว่าการเรียน Machine Learning ยากเพราะ
  • เจอสมการ Math กับทฤษฎีต่างๆ ที่เราดูแล้วไม่เข้าใจ
  • ไม่ได้เป็นวิชาปกติในหลักสูตรการเรียนการสอน
  • อาศัยความรู้หลายแขนงมากจนไม่รู้ว่าจะเริ่มตรงไหนดี
  • ไม่มีเวลา


การเรียนรู้แบบนี้เป็นการเรียนรู้แบบ bottom-up ที่บอกให้เราต้องไปเรียนรู้พวก linear algebra หรือพวก probability theory & statistics ก่อน


การเรียนรู้ด้านบนเป็นการเรียนรู้แบบ top-down ซึ่งจะทำให้เราเข้าใจ machine learning มากขึ้น และรู้สึกสนุกในการเรียนรู้ควบคู่ไปด้วยกัน


เริ่มต้น #1 กับ #2 จะเป็นการเรียนรู้แค่ว่า machine learning คืออะไร มี learning ประเภทไหนบ้าง ต่อไปคือการที่เราเรียนรู้ว่าทำไมเราถึงต้องเอา machine learning มาใช้ มีแอพพลิเคชั่นอะไรบ้างในธุรกิจที่เราสามารถนำเอา machine learning ไปประยุกต์ใช้ให้ก่อประโยชน์


พอได้เรียนรู้ #1 กับ #2 แล้ว เราก็จะมาเรียนรู้ถึงโปรเซสของ “applied” machine learning (ขั้นตอน #3) กัน ว่าแต่ละขั้นตอนในการสร้างโมเดลเราต้องทำอะไรบ้าง


ขั้นตอน #4 เราจะใช้เวลาในขั้นนี้เยอะ จะเป็นขั้นตอนที่เราได้นำเอา machine learning process ไปประยุกต์ใช้กับข้อมูลจริง ไปลองหัดใช้ tool ต่างๆ ลองออกไปมีส่วนรวมใน communities รวมถึงการไปร่วมแข่งขัน


ขั้นตอน #1 ถึง #4 เรายังไม่ต้องลงลึกถึงทฤษฎีมาก ให้เน้นการใช้งาน และการนำเอา machine learning ไปก่อประโยชน์กับธุรกิจ ฝึกให้ชำนาญ แล้วเราค่อยๆ เข้าสู่ขั้นตอนที่ #5


ขั้นตอนที่ #5 จะเป็นการที่เราไปเรียนรู้ถึงทฤษฎีต่างๆ ที่ใช้ใน machine learning ไม่ว่าจะเป็นเรื่อง linear algebra, probability theory and statistics, optimization, calculus, หรือ algorithm complexity การค่อยๆ เรียนรู้เรื่องพวกนี้จะทำให้เราเข้าใจในโมเดลที่เราสร้างมากขึ้น ว่าจริงๆ แล้วโมเดลทำงานอย่างไร เกิดขึ้นมาได้อย่างไร และที่สำคัญคือ เราจะสามารถแก้ไขโมเดลหรือปรับค่าโมเดลของเราได้ดีขึ้นอีกด้วย


ขั้นตอนทั้ง 5 ขั้นตอน จริงๆ แล้วเราสามารถเริ่มที่ขั้นตอนไหนก่อนก็ได้ จะเริ่มที่ #5 แล้วไป #2 แล้วไป #3 ก็ได้เช่นกัน สามารถเอาไปปรับใช้ให้เข้ากับแนวทางของตัวเองได้ ขั้นตอนข้างต้นเป็นขั้นตอนที่เสนอไว้เพราะว่าเป็นแนวทางที่สนุก และส่งเสริมการเรียนรู้ของเราได้ดีกว่าเส้นทางอื่นๆ


What - Machine learning คืออะไร?
Machine Learning คือ ศาสตร์หนึ่งที่มีเป้าหมายที่จะพัฒนาคอมพิวเตอร์โปรแกรมขึ้นเพื่อเอาไปทำงานใดงานหนึ่งแทนมนุษย์ และเมื่อมีข้อมูลป้อนให้โปรแกรมนั้นมากขึ้น โปรแกรมนั้นๆ จะสามารถทำงานได้ดีขึ้น


Types of learning - การเรียนรู้ของคอมพิวเตอร์
แบ่งออกเป็น 3 ประเภทใหญ่ๆ ได้แก่
  • Supervised Learning
  • Unsupervised Learning
  • Reinforcement learning

การเรียนรู้แบบ Supervised Learning
คือการเรียนรู้แบบที่เราสอนคอมพิวเตอร์ให้เรียนรู้ความสัมพันธ์ระหว่างข้อมูลและคำตอบ เมื่อมีข้อมูลใหม่เข้ามา คอมพิวเตอร์จะสามารถเลือกคำตอบที่เหมาะสมมาตอบเราได้ แบ่งปัญหาออกได้เป็น 2 ปัญหาคือ
  • Regression
  • Classification


ปัญหา Regression
เป็นการหาความสัมพันธ์ระหว่างข้อมูลกับค่าคำตอบของเราที่เป็นตัวแปรแบบ continuous ยกตัวอย่างเช่น ถ้าเรามีขนาดของพื้นที่เราต้องการหาว่าจะมีราคาเท่าไหร่ ในที่นี้ราคาจะเป็นตัวแปรแบบ continous


ปัญหา Classification
เป็นการหาความสัมพันธ์ระหว่างข้อมูลกับค่าคำตอบของเราที่เป็นตัวแปรแบบ discrete ยกตัวอย่างเช่น ถ้าเรามีข้อมูลลักษณะของหมากับแมว เราต้องการหาว่าข้อมูลลักษณะนี้เป็นหมาหรือแมว ในที่นี้ชนิดของสัตว์จะเป็นตัวแปรแบบ discrete


การเรียนรู้แบบ Unsupervised Learning
การเรียนรู้แบบที่เราสอนคอมพิวเตอร์โดยให้ข้อมูลไปอย่างเดียว ไม่ได้ให้คำตอบไปด้วย โดยคอมพิวเตอร์มีหน้าที่ไปหาโครงสร้างลักษณะของข้อมูลมาให้เรา เช่น เราสามารถสอนคอมพิวเตอร์ให้เรียนรู้ข้อมูลและสามารถแบ่งกลุ่มของข้อมูลมาให้เราได้


การเรียนรู้แบบ Reinforcement Learning
เป็นการเรียนรู้ที่เราจะสอนให้คอมพิวเตอร์สามารถตัดสินใจภายใต้แต่ละสถานการณ์เพื่อที่จะหาผลลัพธ์ที่ดีที่สุดออกมาให้เรา จะเป็นการสอนแบบ trial & error รับ feedback กลับมาเรียนรู้ว่าผลลัพธ์ที่ออกมาแบบไหนดีหรือไม่ดี


Why - ทำไมเราถึงต้องศึกษา Machine learning และเราสามารถนำเอามาประยุกต์ใช้งานได้อย่างไรบ้าง
เนื่องจาก Machine learning ในปัจจุบันสามารถช่วยลด human error ในงานไปได้เยอะมาก และช่วยให้เราสามารถสืบค้นสกัดเอา knowledge ออกมาจากข้อมูลขนาดใหญ่ได้ ในปัจจุบันมี applications เกิดขึ้นมาใหม่เยอะมากที่สามารถนำเอามาใช้ประโยชน์ได้ เช่น
  • Self-driving car - ช่วยมนุษย์ขับรถมีความปลอดภัยสูงขึ้น
  • Chatbot - ช่วยในหลายๆ เรื่องเช่น สามารถช่วยให้ call center ทำงานได้ดีขึ้น
  • Churn prediction - ช่วยทำนายว่าลูกค้าคนไหนจะยกเลิกบริการของเรา
  • Movie recommendation - ช่วยแนะนำหนังใหม่ๆ หรือหนังที่เรายังไม่เคยดูขึ้นมา
  • Cancer diagnosis - ช่วยวิเคราะห์ตรวจหาโรคมะเร็ง


Process of “applied” machine learning

  • Data cleansing/exploration/preparation - การทำความสะอาดข้อมูล การสำรวจข้อมูล และการเตรียมข้อมูล
  • Feature engineering - การทำ engineer กับ feature ต่างๆ
  • Outlier treatment - การจัดการกับ outlier
  • Missing value treatment - การจัดการกับข้อมูลที่ขาดหาย
  • Data modeling - การสร้างโมเดลจากข้อมูล
  • Model validation - การตรวจสอบความถูกต้องของโมเดล
  • Model evaluation - การวัดผลและประเมินประสิทธิภาพของโมเดล
  • Model deployment - การนำโมเดลไปใช้งานจริง


Practice

Join communities
การเข้าร่วมกับชุมชนต่างๆ เพื่อรับข้อมูลข่าวสาร พบปะพูดคุย และเปลี่ยนความรู้และประสบการณ์


Learn from experts
การเรียนรู้จากผู้เชี่ยวชาญ


Participate Kaggle competitions
เข้าร่วมการแข่งกันของ Kaggle


Listen to podcast
ฟัง podcast ต่างๆ ที่เกี่ยวกับ Machine learning


Subscribe newsletters
การลงทะเบียนรับข่าวสารจากทางเว็บต่างๆ


Learn toolbox

Python

  • Numpy - http://www.numpy.org/
  • Pandas - https://pandas.pydata.org/
  • Scikit-Learn - https://scikit-learn.org/
  • Tensorflow - https://www.tensorflow.org/
  • Keras - https://keras.io/
R
  • mlr - https://mlr.mlr-org.com/
  • dplyr - https://cran.r-project.org/web/packages/dplyr/vignettes/dplyr.html
  • caret - http://caret.r-forge.r-project.org/


Theory - ทฤษฏีที่ควรศึกษาเพิ่มเติม

  • Linear algebra
  • Probability Theory & Statistics
  • Optimization
  • Algorithm complexity
  • Multivariate calculus


Linear algebra
Linear algebra หรือ พีชคณิตเชิงเส้น เป็นสาขาหนึ่งของคณิตศาสตร์ที่ศึกษาเวกเตอร์ ปริภูมิเวกเตอร์ การแปลงเชิงเส้น และระบบสมการเชิงเส้น ส่วนใหญ่เรานำความรู้ตรงนี้ไปประยุกต์ใช้ในการแก้ระบบสมการเชิงเส้นหลายตัวแปร


Probability Theory & Statistics
ศาสตร์ของความน่าจะเป็นและหลักสถิติ


Optimization
การทำให้โปรแกรมคอมพิวเตอร์ มีประสิทธิภาพเพิ่มขึ้น เพื่อนำมาประมวลผล หรือสามารถดำเนินการโดยใช้หน่วยความจำลดลงและใช้ทรัพยากรน้อยลงได้


Algorithm complexity
การวิเคราะห์ความซับซ้อนของอัลกอริทึ่ม และเป็นกระบวนการที่นำไปสู่การตัดสินใจว่าอัลกอริทึ่มไหนมีประสิทธิภาพมากกว่าในการแก้ไขปัญหา


Multivariate calculus
แคลคูลัสของฟังก์ชันหลายตัวแปร

  • 1