Introduction to Machine Learning

ยุคทองของ Machine Learning!

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

  • Imperial College London: Computing (Machine Learning), MSC

  • University College London: Machine Learning, MSc

  • University of Bristol: Advanced Computing – Machine Learning, Data Mining and High Performance Computing, MSc

ที่เห็นเปิดๆ กันเยอะๆ นี่ คอร์สเต็มเร็วตลอดเลย มาดูกันดีกว่าค่ะว่า ที่ดังๆ ได้รับความนิยมกัน ตกลงแล้ว Machine Learning นี่คืออะไรกันแน่ …

 

Machine Learning คืออะไร?

คำว่า “Machine” แปลตรง ๆ ก็คือ “เครื่องจักร” ซึ่งในที่นี่ก็จะหมายถึง  เจ้าเครื่องสมองกล (คำเรียกสมัยก่อน) หรือ สมัยนี้ก็คือ “คอมพิวเตอร์” นั่งเอง ส่วนอีกคำ “Learning” ก็จะหมายความว่า  “การเรียนรู้”

ดังนั้น  “Machine learning” แปลเป็นภาษาไทยก็คือ  “การเรียนรู้ของเครื่องจักร”  นั่นเอง การเรียนรู้ของเครื่องจักรนี้ คือ การทำให้คอมพิวเตอร์มีความสามารถในการเรียนรู้ได้ด้วยตัวเอง โดยการเขียนโปรแกรม ให้คอมพิวเตอร์มีการปรับตัว จดจำ สร้างเงื่อนไข การตัดสินใจต่างๆ  จนในที่สุดคอมพิวเตอร์ก็จะฉลาดพอที่จะทำการตัดสินใจบนข้อมูลใหม่ที่ไม่เคยได้เห็นมาก่อนได้สำเร็จ 

คอมพิวเตอร์ ทำได้ยังไง? …

คอมพิวเตอร์ทำเรื่องเหลือเชื่อเหล่านี้ได้ โดยอาศัย ข้อมูล ที่ถูกป้อนเข้าไปก่อนหน้าโดยมนุษย์นั่นเอง เมื่อได้รับข้อมูล คอมพิวเตอร์ก็จะเรียนรู้รูปแบบของข้อมูล เมื่อได้รับ ข้อมูลมากพอ คอมพิวเตอร์จะทำการสร้างกฏขึ้นมา เพื่อให้สามารถทำการตัดสินใจ บนข้อมูลใหม่ที่เข้ามาได้ในอนาคต … 

screen-shot-2016-10-23-at-13-15-09

ประเภทของ Machine learning ?

ประเภทของ Machine Learning (ML) แบ่งตามรูปแบบการเรียนรู้ได้แบบ 2 ประเภทใหญ่ๆ คือ Supervised Learning และ Unsupervised Learning

  1. Supervised Learning : การเรียนรู้แบบมีผู้สอน
  2. Unsupervised Learning : การเรียนรู้แบบไม่มีผู้สอน


Supervised Learning
:

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

Student#1       Data:   height = 180 cm., hair length = 10 cm.
Class:   Male
Student#2      Data:    height = 150 cm. hair length = 35 cm.
Class:   Female
….
….
ในทางหลักการแล้ว ถ้าโมเดลของเราถูกต้อง ให้ข้อมูลมากขึ้น คอมพิวเตอร์ก็จะยิ่งเก่งขึ้น เหมือนกับ ยิ่งสอน ยิ่งเก่งนั้นเอง สุดท้ายคอมพิวเตอร์ก็จะทำการสร้างกฏขึ้นมาเพื่อใช้ในการแบ่งกลุ่มของเด็กชายและหญิง เช่น ถ้าเด็กมีความสูงมากกว่า 170 cm.  ผมสั้นกว่า 20 cm.  ต้องเป็นเด็กผู้ชายนะ เป็นต้น
                   if height > 170 and hair length < 20
                   then  class = Male
                   else class = Female

ต่อมาเมื่อมาเด็กคนใหม่เข้ามาในห้องเรียน คอมพิวเตอร์ก็จะเทียบกฏนั้นดูว่า เด็กที่เข้ามาใหม่นี้ เป็น ผู้หญิง หรือ ผู้ชาย …

screen-shot-2016-10-23-at-13-54-10ฟังดูแล้ว ก็เหมือนการสร้างกฏทั่วไปใช่มั้ยคะ … ไม่ใช่ค่ะ!  ที่ฉลาดกว่านั้นคือ กฏเหล่านี้ จะมีสามารถมีการเปลี่ยนแปลงได้อยู่เสมอ ในระหว่างการเรียนรู้ นอกจากนั้น ถ้าเด็กคนใหม่ที่เข้ามา มีข้อมูลที่แตกต่างกับเด็กทั้งผู้หญิง และ ผู้ชาย ที่คอมพิวเตอร์เคยถูกสอนมา คอมพิวเตอร์ก็จะต้องมีความสามารถในการตัดสินใจอย่างถูกต้องว่า เด็กคนนั้น เป็น ผู้หญิง หรือ ผู้ชาย ด้วยค่ะ … จุดนี้เอง คือ ความฉลาดของ Machine Learning ค่ะ

 

Unsupervised Learning :

การเรียนรู้แบบไม่ต้องมีผู้สอน การทำงานก็จะตรงกันข้ามกับแบบแรก คือ ไม่ต้องสอน ไม่ต้องใส่ข้อมูลให้คอมพิวเตอร์เลยว่า นักเรียนผู้หญิง หรือ ผู้ชาย ควรจะมีลักษณะเป็นอย่างไร … การทำงานคือ “ถาม” คอมพิวเตอร์เลยค่ะ ว่าให้ช่วยแบ่งกลุ่มข้อมูลชุดนี้ออกเป็น 2 กลุ่มให้หน่อย? (การทำงานแบบนี้ ส่วนใหญ่จะขึ้นอยู่กับข้อมูลที่เราไม่มีความรู้เบื้องต้นอยู่เลย) 

จากนั้นใส่ข้อมูลที่มีเข้าไป คอมพิวเตอร์จะทำการคำนวณ และ แยกข้อมูลออกเป็นสองกลุ่มตามรูปแบบของข้อมูล ซึ่งผลที่ได้ อาจจะเป็นการแบ่งกลุ่มนักเรียน หญิง/ชาย หรือ นักเรียน อ้วน/ผอม หรือ แม้แต่ ครู/นักเรียน ก็ได้ค่ะ … เพราะว่า การแบ่งกลุ่มนี้ได้มาจากพื้นฐานความแตกต่างข้อมูลล้วนๆ ที่คอมพิวเตอร์สามารถตรวจหาได้จากการคำนวณ โดยที่ไม่มีการสอนนั่นก่อนล่วงหน้าค่ะ ..

screen-shot-2016-10-23-at-14-10-39

การนำ Machine Learning มาใช้งาน

ในการนำ  Machine Learning มาใช้งานจริงในขั้นตอนพื้นฐาน ก็จะขึ้นอยู่กับว่า รูปแบบของปัญหา และ ลักษณะของข้อมูลที่เรามีเป็นแบบไหน มาดู 2 รูปแบบ ของปัญหาง่ายๆ กันค่ะ

1. ปัญหา Classification 

ปัญหาประเภทนี้เรียกอีกอย่างได้ว่า ปัญหาการ  “จัดกลุ่ม” ของข้อมูล คือ เราต้องรู้ก่อนว่า เราต้องการจัดกลุ่มของข้อมูลออกเป็น กี่กลุ่ม กลุ่มอะไรบ้าง ที่สำคัญคือ เราจะต้องมีข้อมูลตัวอย่างว่า แต่ละกลุ่มที่เราต้องการ มีลักษณะเป็นอย่างไร ตัวอย่างเช่น ปัญหาการจัดกลุ่มลูกค้า ออกเป็น กลุ่มที่เราจะนำเสนอบัตรเครดิต กับ กลุ่มที่ไม่นำเสนอ … ในปัญหานี้เราก็จะต้องมีข้อมูลก่อนว่า ลูกค้าที่มีพื้นฐานอะไรบ้างที่มีประวัติซื้อของ และ จ่ายเงินดี จากประวัติการใช้บัตรเครดิต กับ ลูกค้าอีกกลุ่มที่ไม่ค่อยจับจ่าย หรือ ประวัติจ่ายคืนไม่ดี เป็นต้น 

แน่นอนว่าปัญหาประเภทนี้ การเลือกใช้ Machine Learing ก็ต้องเลือกโมเดลที่มีการทำงานแบบ  Supervised Learning  เช่น Multi-layer Neural Network เป็นต้น

2. Clustering problem

ปัญหาประเภทนี้มักจะเป็นปัญหาที่ยากกว่า และ เป็นปัญหาที่เราไม่มีความรู้เบื้องต้นเลยว่าข้อมูลที่มีเป็นอย่างไร มีกลุ่มไหนรวมอยู่บ้าง ปัญหาประเภทนี้ จะเรียกอีกอย่างได้ว่า ปัญหาการ “แบ่งกลุ่ม” ของข้อมูล

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

แน่นอนว่าปัญหาที่คาดการณ์อะไรล่วงหน้าไม่ได้แบบนี้ การจะทำงาน เราก็จะต้องเลือกใช้ Machine Learning แบบ Unsupervised Learning  เช่น Self-Organizing Map Neural Network เป็นต้น

ทั้งหมดที่กล่าวมา ถือว่าเป็นพื้นฐานของ Machine Learning หวังว่าคงจะได้แนวคิดคร่าวๆ กันนะคะ ว่า Machine Learning นี่คืออะไร และ เอามาใช้ทำอะไรได้บ้างนะคะ …

 

 

 

 

 

 

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s