Machine Learning Ep.1: บทนำ

stackpython
2 min readJan 18, 2020

--

เคยสงสัยมั้ยครับว่าทำไม Netflix แนะนำหนังที่ตรงกับความชอบของเราได้หรือ เจ้าสมาร์ทโฟนของเราเนี้ยรู้ได้ยังไงว่าเป็นเจ้าของมือถือคือผู้ปลดล็อคหน้าจอ เบื้องหลังของเทคโนโลยีในปัจจุบันรอบตัวเราล้วนแล้วแต่มี Machine Learning เข้ามาเกี่ยวข้องทั้งนั้น บทความนี้ผมก็จะมาเล่าให้ฟังคร่าวๆว่า คำว่า Machine Learning คืออะไรพร้อมกับสาธิตตัวอย่างเบื้องต้นให้ดูกันครับ

ภาพจาก ia.acs.org.au

Machine Learning คืออะไร?

Machine Learning คือเบื้องหลังการทำงานของพวกปัญญาประดิษฐ์หรือที่เราเคยได้ยินกันอย่างคุ้นหูว่า AI(Artificial Intelligence) นั่นเอง โดยอ้างอิงข้อมูลจากที่เรามีอยู่ในมือไปสอนตัว Machine

Machine Learning ใช้ทำอะไร?

หลังจากที่เราป้อนข้อมูลให้ Machine ของเราแล้วหน้าที่หลักๆของเครื่องเลยก็จะเป็นเรื่องการทำนายครับ ไม่ว่าจะเป็นเรื่อง ชอบ/ไม่ชอบ , เป็นโรค/ไม่เป็นโรค , ปริมาณสินค้าที่ควรผลิตในเดือนถัดไป

Machine Learning มีอยู่ 2 ประเภทนั่นคือ

  1. Supervised Learning : การเรียนรู้ประเภทนี้คือเราจะต้องสอนระบบว่า ถ้าป้อน 1 เข้าไปจะต้องตอบ 2 นะเช่น ตอนที่เราสอนระบบให้รู้จักหน้าคนโดยใส่รูปหน้าเข้าไป เราสามารถเช็คคำตอบจากระบบได้ว่ามันทำนายถูกหรือผิดจากข้อมูลที่เราให้มันเรียนรู้ ยกตัวอย่างเช่น เราสามารถตรวจสอบได้ว่าหนังที่ Netflix แนะนำเรามานั้นตรงกับความชอบของเราหรือไม่, เราสามารถเช็คกับ Siri ได้ว่าคำพูดที่เครื่องตรวจจับได้ตรงกับคำพูดที่เราพูดออกไปจริงๆหรือเปล่า
  2. Unsupervised Learning : การเรียนรู้ประเภทนี้คือเราจะให้ระบบจำแนกประเภทของข้อมูลด้วยตัวของมันเองด้วยเกณฑ์บางอย่าง ยกตัวอย่างเช่น
ภาพจาก Wikipedia: Cluster Analysis

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

เรามาลองดูตัวอย่างง่ายๆกันเลยดีกว่านะครับ

สมมติเราสำรวจคน 15 คนว่าปริมาณน้ำที่ดื่มในแต่ละวันกับความเร็วเฉลี่ยในระยะการวิ่ง 100 เมตรเราจะเห็นว่ามันสอดคล้องกันไปในทางเดียวกันใช่มั้ยครับ

ทีนี้เราจะแบ่งส่วนนึง ไว้สอนระบบของเรา ข้อมูลที่เราใช้สอนระบบจะเรียกว่า Training Data (สีเขียว) ส่วนข้อมูลที่เราจะนำมาทดสอบจะเรียกว่า Testing Data (สีดำ) โดยจะยังไม่พูดถึงวิธีการแบ่งนะครับว่าควรเอาข้อมูลไหนมาสอนระบบ

หลังจากที่นำข้อมูลที่อยากทดสอบออกจากระบบก็จะเหลือแค่ Training Data

ทีนี้เราจะสร้างเส้นตรงขึ้นมาเพื่อทำนายแนวโน้มของข้อมูลโดยใช้ Linear Regression ยกตัวอย่างเช่น ถ้าจำนวนน้ำที่ดื่มเท่ากับ 5 ลิตรต่อวัน เราจะทำนายว่าความเร็วเฉลี่ยในการวิ่ง 100 เมตร จะประมาณ 4.72 เมตรต่อวินาที

ดเกดเดเดเดกเกกเก
ภาพจาก subhadipml.tech/fundamentals-of-bias-and-variance/

เพิ่มเติม: ทำไมเราไม่ใช้เส้นที่มัน fit กับ Training Data(จุดสีฟ้า) 100 % เลยหละ? คำตอบคือเพราะเวลาทดสอบจริงๆแล้วโมเดลพวกนี้มั่กจะทำนายได้ไม่ดีสังเกตได้จาก Testing Data(จุดสีเขียว) ในรูปด้านบน

จากรูปจะเห็นได้ว่าเส้นของเรายังทำนายได้ไม่ดีเท่าไหร่ใน Testing Data เนื่องจากว่าผมไม่ได้เลือกชุดข้อมูลที่ดีสุดสำหรับการสอนระบบนั่นเอง ซึ่งในบทความต่อไปนั้นเราก็จะมาอธิบายให้ฟังกันครับว่า แล้วเราควรแบ่งจุดไหนเอาไว้เทรนกับทดสอบระบบ

สรุป

  • Machine Learning คือส่วนการเรียนรู้ของปัญญาประดิษฐ์
  • Machine Learning มีไว้สำหรับทำนายกับแยกแยะข้อมูล
  • Machine Learning แบ่งได้เป็น 2 ประเภทคือ Supervised กับ Unsupervised

ก็จบกันไปเป็นที่เรียบร้อยนะครับสำหรับบทความแรกที่ผมเขียน หากถูกใจเพื่อนๆก็สามารถกด Clap เพื่อเป็นกำลังใจหรืออยากแนะนำเพิ่มเติมตรงไหนก็ Response กันมาได้เลยครับ

--

--

stackpython
stackpython

Responses (2)