ประเภทของ Machine Learning

Pongthep Vijite
DAMAGeek
Published in
2 min readMar 3, 2018

หมายเหตุ ผู้อ่านสามารถดู table of contents ของบทความ machine learning ได้ที่ https://goo.gl/BExvUQ

ในบทความนี้เราจะมาเริ่มต้นทำความรู้จักกับประเภทของ machine learning ซึ่งสามารถแบ่งออกได้เป็น 3 กลุ่มใหญ่ๆคือ supervised learning , unsupervised learning และ reinforcement learning.

Supervised learning

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

โดยส่วนใหญ่ในการใช้ supervised learning ในชีวิตจริงมักถูกนำไปใช้แทนการทำงานแบบ rule base คือมีกฏหรือรูปแบบการทำงานที่ตายตัวหรือสามารถอธิบายเหตุผลออกมาได้อย่างชัดเจน ตัวอย่างเช่นในกรณีการขอสินเชื่อ โดยปกติแล้วแต่ละธนาคารจะมีข้อกำหนดหลักๆ ในการพิจารณาอยู่แล้วว่าถ้ามีประวัติการเงินแบบนี้ อายุประมาณนี้ เงินเดือนแบบนี้ จะสามารถปล่อยสินเชื่อในวงเงินได้ไม่เกินเท่าไร จริงๆถ้ามองดีๆจะพบว่าเราได้มีการใช้ supervised learning กันมาอย่างยาวนาน อย่างเวลาเด็กจบใหม่เข้าทำงานที่สาขาของธนาคารในส่วนงานที่เป็นงานลักษณะ rule base พนักงานธนาคารหน้าเคาน์เตอร์ พวกที่ทำงานมาก่อนหรือ senior ก็จะต้องมาอธิบายหรือสอนว่าถ้ามีลูกค้ามายืนคำร้องว่าจะฝากเงินหรือถอนเงินจะต้องทำขั้นตอนตามนี้ 1 2 3 ตามนี้ถ้ากรอกข้อมูลแล้วได้ผลลัพธ์แบบนี้ถือว่าการฝากหรือถอนนั้นเสร็จสมบูรณ์ นี้คือตัวอย่างหนึ่งของการทำงานแบบ supervised learning จากคน สู่ คน

Unsupervised learning

unsupervised learning เป็นกลุ่ม algorithm ที่ไม่มี label หรือการสอนอย่างชัดเจนว่าถ้าทำงานแล้วได้ผลลััพธ์แบบนี้หมายถึงถูกหรือผิด ตัวอย่างเช่นถ้ามีคน 100 คนในห้องแล้วให้เราทำการแบ่งกลุ่ม 100 คนนั้นเป็น 2 กลุ่ม ในกรณีนี้ไม่มีกฏชัดเจนว่าเราต้องแบ่งตามเพศ , อายุ , สีเสื้อหรืออื่นๆ แค่แบ่งออกมาให้ได้ 2 กลุ่มซึ่งเราอาจจะแบ่งว่าใครอยู่กลุ่มห้องส่วนหน้าคือกลุ่ม 1 ส่วนใครอยู่ครึ่งห้องหลังคือกลุ่ม 2

อีก 1 ตัวอย่างของ algorithm ในกลุ่ม unsupervised learning คือการลดรูปตัวแปร ตัวอย่างเช่นเรามีข้อมูลของการเข้าใช้งาน website ของ user แบ่งตามชั่วโมงการเข้าใช้งานในรูปแบบ tabular ดังนี้

รูปตัวอย่าง ช่วงเวลาการเข้าใช้งานของ user แบ่งตามชั่วโมง

ถ้าเราต้องการ plot ข้อมูลดังกล่าวในรูปแบบของ scatter plot เราจำเป็นต้องลดตัวแปรจาก 24 ตัว (ตามหลายชั่วโมง 00:00–23:00) ให้เหลือแค่ 2 ตัวแปรคือแกน x กับ y เพื่อใช้งานการ plot ผลที่ได้ก็จะออกมาตามดังนี้

รูปตัวอย่างหลังจากลดตัวแปร (เป็นรูปจำลองที่ไม่ผ่านการประมวลลผลจริง)

จะเห็นได้ว่าการทำงานแบบ unsupervised learning จะเป็นการทำงานแบบไม่มี label หรือกฏที่ตายตัว จากตัวอย่าง 2 ตัวอย่างข้างต้นจะเห็นว่าทั้งการแบ่งคนในห้องเป็น 2 กลุ่มหรือการลดรูปข้อมูลจาก 24 columns มาเป็น 2 columns เกิดจากการกำหนดตัวเลขขึ้นมาเองตามที่ผู็สร้างเห็นว่าเหมาะสมทั้งสิ้น

Reinforcement learning

reinforcement learning เป็นกลุ่ม algorithm ที่มีรูปแบบที่ซับซ้อนกว่า 2 แบบแรกมากโดยส่วนตัวผมเองยังไม่เคยใช้ในการทำงานจริง ในบทความนี้จึงขออธิบายคราวๆแล้วกันนะครับ

โดยหลักของ reinforcement learning จะเป็นรูปแบบของการประมวลผล action ในทุกๆการเคลื่อนไหวของ computer อย่างเช่น alphago ที่มีการคำนวณทางเลือกในแต่ละครั้งที่เดินหมาก base จากข้อมูลที่เคยเรียนรู้มา หรือ การทำงานของ robot ที่ประมวลผลเลือกประทำ action ต่างๆจากสภาพแวดล้อมที่เปลี่ยนไป

ตามหลักของ reinforcement learning จะมีการ set goal หรือ reward ของ computer เอาไว้ว่าเราต้องการจะให้ computer ตัวนี้ทำงานอะไรหรือแต่ละ action มีค่า reward เท่าไร จากนั้นก็ทำการให้มันเรียนรู้ตามสภาพแวดล้อมซึ่งอาจจะมาจาก sensor หรือ input ในรูปแบบต่างๆว่า ถ้าเกิด input เข้ามาแบบนี้แล้วเราเลือก action แบบนี้จะทำให้เราเข้าใกล้ goal หรือได้รับ reward เป็นค่าเท่าไร เพื่อหา base choice ของ action ตามสถานะการนั้นๆ

ตัวอย่างง่ายๆในชีวิตประจำวันของเราที่น่าจะใกล้เคียงกับการทำงานของ reinforcement learning คือให้เรานึกภาพว่าเราเดินเข้าห้องในบ้านตอนกลางคืนที่มืดสนิทเพื่อเดินไปเปิดไฟ เราสามารถเปรียบการเปิดไฟเป็น goal ส่วนมือและขาเป็น sensor เพื่อรับ input จากสิ่งที่อยู่รอบตัวที่เราเดินก้าวเข้าไปในห้อง ทุกๆก้าวที่เราเดินเข้าไปมือและขาจะสัมผัสสิ่งต่างๆในห้องเพื่อทำให้เรารู้ว่าเราเดินถูกทางที่นำไปยัง switch ไฟแล้วหรือไม่ จากนั้นก็ประมวลผล action ในก้าวถัดไปว่าเราควรเดินต่อหรือเปลี่ยนทิศทาง

--

--