Machine Learning: บทนำ
โดย ชิตพงษ์ กิตตินราดร | ธันวาคม 2562
Machine learning (ML) เป็นการประยุกต์คณิตศาสตร์และวิทยาศาสตร์คอมพิวเตอร์เพื่อทำให้คอมพิวเตอร์สามารถเรียนรู้และตัดสินใจได้โดยไม่ต้องกำหนดกฏและเงื่อนไขตายตัว
ML เรียนรู้ด้วยการอ่านข้อมูลที่มนุษย์เตรียมให้ และประมวลผลข้อมูลนั้นเพื่อให้สามารถตัดสินใจตามที่ต้องการ โดยการตัดสินใจที่ ML ทำได้ มีหลายรูปแบบ เช่น
- พยากรณ์ว่าข้อมูลชิ้นใหม่ที่ ML ไม่เคยเห็น มีค่าเท่าใด หรืออยู่ในหมวดหมู่ใด
- จัดข้อมูลเป็นกลุ่มๆ โดยให้ข้อมูลที่มีคุณลักษณะคล้ายกันอยู่ในกลุ่มเดียวกัน
- ตรวจหาข้อมูลชิ้นที่ผิดปกติแปลกไปจากพวก
- จำแนกข้อมูลบางอย่างออกจากข้อมูลทั้งหมด เช่น จำแนกเสียงพูดออกจากเสียงสภาพแวดล้อม
- แนะนำข้อมูลชิ้นใหม่ที่คาดว่ามนุษย์น่าจะสนใจโดยเรียนรู้จากความสนใจเดิม
จะเห็นว่าประโยชน์ของ ML มีหลากหลายมาก สำหรับใครหรือองค์กรที่อยากใช้ ML ในงานของตนเอง สิ่งที่จำเป็นต้องมี (หรือต้องสร้างให้มี) คือ:
- ข้อมูล: ML ทำงานได้ด้วยการเรียนรู้จากข้อมูล ไม่ใช่ด้วยการป้อนกฏเกณฑ์เข้าไป ดังนั้นผู้ใช้ ML จึงต้องเตรียมข้อมูลที่มีคุณภาพและมีปริมาณเพียงพอ เพื่อให้ ML เรียนรู้ได้ผลดี เรื่องนี้เป็นเรื่องสำคัญและมีรายละเอียด จะอธิบายโดยละเอียดในส่วนต่อๆ ไป
- ทักษะ Programming: ปัจจุบันนิยมใช้ภาษา Python เป็นภาษาหลักในการทำ ML ดังนั้นควรมีความรู้พื้นฐาน Python เช่น มีความเข้าใจหลักการเขียนโปรแกรม การสร้างและคำนวนตัวแปร ประเภทและโครงสร้างข้อมูลแต่ละประเภท การเขียนเงื่อนไข เช่น if, for, while loop และการเรียกใช้ Library ต่างๆ เช่น numpy (สำหรับการคำนวน Vector และ Matrix), pandas (สำหรับการจัดการและวิเคราะห์ข้อมูลแบบตาราง), matplotlib (สำหรับการพล็อตกราฟเพื่อแสดงผลเป็นภาพ)
- ทักษะในการใช้ ML Framework: ในอดีตเราต้องเขียนโค้ดเพื่อแปลงสมการคณิตศาสตร์ให้กลายเป็น Algorithm เพื่อคำนวนด้วยตนเอง ซึ่งต้องใช้ความรู้และมีความซับซ้อนค่อนข้างมาก แต่ปัจจุบันมีผู้สร้างซอฟท์แวร์อำนวยความสะดวกในการทำ ML ให้เราใช้ได้ฟรีๆ แบบ Open-source จึงแนะนำให้เรียนรู้วิธีใช้ Framework เหล่านี้ โดย Framework ที่นิยม เช่น scikit-learn สำหรับ Machine learning และ TensorFlow สำหรับ Deep learning
- ความรู้เกี่ยวกับ ML: ศึกษาหลักการทำงานของ ML Algorithm ประเภทต่างๆ การเตรียมข้อมูล วิธีการทดสอบความแม่นยำของโมเดล การปรับแต่งโมเดลให้ทำงานได้ดีขึ้น การแก้ปัญหาทางเทคนิคต่างๆ ความรู้เหล่านี้สำคัญมาก ถ้าขาดความรู้ความเข้าใจเรื่องเหล่านี้ก็จะไม่สามารถพัฒนา ML ที่ดีได้ ถึงแม้จะใช้เครื่องมือต่างๆ เป็นก็ตาม
ประเภทของปัญหา Machine learning
ปัญหา Machine learning สามารถจำแนกได้ 2 ประเภทใหญ่ๆ คือ
-
Supervised learning: คือปัญหาที่ในชุดข้อมูลนั้นมีคำตอบอยู่แล้ว ตัวอย่างเช่น:
- Regression: หาคำตอบที่เป็นตัวเลข เช่น ให้ข้อมูลโภชนาการของเด็กคนหนึ่ง พยากรณ์ว่าเด็กคนนี้จะมีความสูงกี่ ซ.ม.
- Classification: หาคำตอบที่เป็นหมวดหมู่ เช่น ให้ภาพ X-ray ทรวงอก พยากรณ์ว่าคนไข้เป็นมะเร็งปอดหรือไม่ (คำตอบมีแต่ ใช่/ไม่ใช่ เรียกว่า Binary classification) หรือให้ข้อมูลเกี่ยวกับครอบครัวของเด็กคนหนึ่ง ทำนายว่าเด็กคนนี้จัดอยู่ในกลุ่มพัฒนาการดี / พัฒนาการปกติ / พัฒนาการช้า (คำตอบมีหลายกลุ่ม เรียกว่า Multiclass classification)
-
Unsupervised learning: คือปัญหาที่ยังไม่มีใครรู้ว่าคำตอบที่ถูกต้องคืออะไร
- Clustering: จัดกลุ่มข้อมูล เช่น มีข้อมูลผู้บริจาค ต้องการจัดกลุ่มผู้บริจาคเป็น 3 กลุ่ม เพื่อออกแบบกลยุทธ์การสื่อสารกับลูกค้าแต่ละกลุ่มที่ต่างกันออกไป
- Non-clustering: ปัญหาอื่นๆ ที่ไม่ใช่การจัดกลุ่ม เช่น ตรวจหาข้อมูลชิ้นที่มีความผิดปกติจากพวก (Anomaly detection) แนะนำข้อมูลที่ผู้ใช้น่าจะสนใจ (Recommendation system) เป็นต้น
นอกจากนี้ยังมี ML ประเภทอื่นๆ สำหรับงานเฉพาะด้าน เช่น Reinforcement learning คือการเรียนรู้ที่มีกลไกการเสริมแรงเพื่อให้คอมพิวเตอร์มีพฤติกรรมที่เราต้องการ เป็นต้น
ตอนนี้เรารู้จักแล้วว่า Machine learning คืออะไร มีกี่ประเภท เอาไปทำอะไรได้บ้าง และถ้าจะทำ ML ต้องมีความรู้และทักษะอะไรบ้าง ในตอนต่อไปจะเริ่มอธิบายกลไกการทำงานของ ML อย่างง่ายที่สุด คือ Linear regression
หน้าแรก | บทที่ 2 Linear Regression Algorithm
This work is licensed under a Creative Commons Attribution 4.0 International License.