Supervised learning การแก้ปัญหา

สวัสดีคร้าบ ผมอู๋ ตอนนี้ทำงานเป็น Data Scientist อยู่ LINE MAN Wongnai ครับ เนื่องจากผมได้ทำงานกับทางทีมฝั่งธุรกิจค่อนข้างเยอะ เพื่อนำ machine learning หรือ ML เข้าไปช่วยแก้ปัญหาในหลายด้าน

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

บทความนี้ผมจึงตั้งใจเขียนสำหรับคนทั่วไป ที่เคยได้ยินคำว่า machine learning หรือ ML แต่ไม่รู้ว่ามันคืออะไร? แล้วทำไมมันฮิตมากในช่วง 2–3 ปีที่ผ่านมา…

วันนี้ผมจะมาอธิบายไอเดีย + เปรียบเทียบตัวอย่างง่ายๆ ให้ฟังครับ!

วัตถุประสงค์ของบทความนี้ง่ายๆ ครับ ผมตั้งใจว่าถ้าเราอ่านบทความนี้แล้วไปเจอคนคุยเรื่อง ML อย่างน้อยเราน่าจะพอนึกออกว่า..

  • ML คืออะไร? ทำอะไรได้บ้าง?
  • เวลาคุยกับทีม data ที่เค้าว่าเทรนโมเดล มันคืออะไร? ทำยังไง? ทำแล้วได้อะไร? สุดท้ายหน้าตามันเป็นยังไงหนอ?

มาเริ่มกันเลย!!

Table of Content

  • Human vs Machine Learning
  • Machine Learning คืออะไร?
  • ประเภทของ Machine Learning
    - Supervised Learning
    - Unsupervised Learning
    - Reinforcement Learning
  • สรุป ML สามคำ
Human vs Machine learning

ก่อนเข้าเรื่อง machine learning ผมขอเปรียบเทียบกับ human learning หรือการเรียนรู้ของคนก่อนครับ ถามว่า เรามีหลักการเรียนรู้สิ่งใดสิ่งนึงอย่างไร?

การเรียนรู้ของมนุษย์ผ่านการรู้จำของสมอง

ลองนึกภาพตอนเด็กๆ เรารู้จักหมา แมวได้ยังไง?

พ่อแม่อาจชี้ให้ดูแล้วพูดกรอกหูเราว่า “นี่แมวนะ!” พูดครั้งแรก เราอาจจะยัง งงๆ แต่พอครั้งถัดๆ ไปทุกครั้งที่เจอแมว เราจะโดนกรอกหูว่า “โน่นแมว นู่นแมว นี่แมว แมวๆๆๆๆ..” โอ้ยย จนสุดท้ายเราจะเริ่มชิน

เมื่อย้ำหลายๆ รอบเข้า สมองเราจะจำได้ว่า เออว่ะ หูแหลมๆ ตัวเล็กๆ ขนสั้นๆ ตาแป๋วๆ คมๆ คือ “แมว”

กระบวนการนี้เรียกว่า “การเรียนรู้”… ซึ่งสมองเราสามารถจดจำสิ่งต่างๆ ได้จาก “ข้อมูล” ที่ถูกส่งผ่านทางประสาทสัมผัสเข้าสู่สมอง

ไอเดียของ Machine learning ก็ไม่ต่างกันครับ

การที่เราจะสอนคอม ให้ “เรียนรู้” เราต้องการ input คือ “ข้อมูล (data)” เพื่อใช้ในการตัดสินใจเลือก output ให้สอดคล้องกับข้อมูลที่เรียนมา ฟังแล้วอาจดู งงๆ ลองดูตัวอย่างกันครับ

ตัวอย่างการเรียนรู้ของ Machine

จากตัวอย่างเดียวกัน เนื่องจากหุ่นยนต์ไม่มีระบบสัมผัสเหมือนคน เราจึงต้องเปลี่ยนข้อมูลเป็นรูปแบบที่มันอ่านรู้เรื่อง ซึ่งก็คือ แถว/คอลัมน์ หน้าตาเหมือนตาราง Excel

เราจะใช้ข้อมูลเกี่ยวกับแมว เป็น input ในที่นี้อาจจะเป็น “ขนาดตัว, น้ำหนัก, ขนสั้น/ยาว” พร้อมข้อมูลกำกับ (label) ว่า “แมวหรือหมา (0/1)”

กระบวนการยัดข้อมูลพร้อม label กำกับ ให้กับ machine เรียกว่า การเทรนนิ่ง (training) นั่นเอง (จริงๆ ML บางประเภทไม่จำเป็นต้องมี label ซึ่งจะพูดถึงในตอนท้าย)

สุดท้ายเราจะได้ผลลัพธ์เป็น “โมเดล” ที่สามารถแยกแยะแมวจากน้ำหนักกับขนได้ (ตามข้อมูลที่เราสอนมัน) พูดง่ายๆ คือ ต่อไปถ้าเราเจอตัวอะไรเดินผ่าน เราจับมาวัด ขนาด น้ำหนัก ขน ยัดเป็น input ใส่โมเดลนี้ เราจะรู้ได้ว่าตัวนี้เป็นแมวหรือหมา!

หลังจากนี้ถ้าได้ยินคำว่า “เทรนโมเดล” สรุป มันคือการยัดข้อมูลผ่านกระบวนการอะไรสักอย่างใน machine (น้อง Wall-E ในรูป) แล้วได้ผลออกมาเป็นโมเดลที่ใช้ทำนาย (predict) ผลลัพธ์ได้

สรุป Machine Learning คืออะไร?

ย้อนกลับมาที่คำถามเดิม “machine learning คืออะไร?” เราตอบสั้นๆ ได้ว่า

วิธีการสอนคอมให้ “เรียนรู้แพทเทิร์นจากข้อมูล” เพื่อ “สร้างโมเดล” สำหรับ “ทำนายผล” จากข้อมูลใหม่ที่ไม่เคยเห็น (unseen data)

นี่คือไอเดียกว้างๆ ของ ML ครับ ยังไม่ต้องคิดถึงกระบวนการนะ ลองคิดดู แค่จากนิยามนี้ แสดงว่า …

ถ้าเรามีข้อมูลอะไรสักอย่างที่มีความสัมพันธ์กัน เราสามารถใช้ ML เพื่อให้ทำนายข้อมูลในอนาคตอะไรก็ได้ที่ต้องการ !

เช่น ทายราคาหุ้นจากปัจจัยในตลาด, ทายชนิดสัตว์จากรูปลักษณ์, พยากรณ์อากาศจากค่าความชื้น หรือแม้แต่การหาอัตราการเกิดโรคร้ายจากผลการตรวจสุขภาพ…

จะเห็นว่าประโยชน์มันมหาศาลมากกก ด้วยความเจ๋งนี้ + ยุคปัจจุบันที่เต็มไปด้วยข้อมูลมหาศาลสำหรับเทรน machine ไม่แปลกใจเลยที่ทำไม ML ตอนนี้ถึงสำคัญมากๆ!

ประเภทของ Machine Learning Model

คำถามต่อมา… แล้ว เราสร้าง/เทรนโมเดลยังไงล่ะ?

วิธีการเทรนโมเดลมีเยอะมากครับ ขึ้นกับอัลกอริทึมในการเทรน ชื่อที่เราคุ้นๆ ก็อาจจะมี Linear regression, Neural Network หรือ Deep Learning ซึ่งจะไม่ขอลงลึกในบทความนี้ แต่จะเน้นอธิบายให้เห็นภาพว่า คำว่าเทรนนั้น เป้าหมายของมันคืออะไร? เราต้องการหาอะไร? แล้วกระบวนการคร่าวๆ ของมันเป็นยังไง?

เป้าหมายของการเทรน ขึ้นอยู่กับประเภทของ ML ซึ่งถูกแบ่งออกเป็น 3 ประเภท มาลุยกันทีละตัวครับ!

https://nowenlightenme.com/2018/03/18/types-of-machine-learning/1) Supervised Learning

แปลตรงๆ เรียนรู้แบบ supervised คือ “มีคนสอน” พูดง่ายๆ คือ machine ถูกสอนจาก data ที่มาพร้อมเฉลย! เฉลยที่ว่าคือ label นั่นเอง ตัวอย่างเช่น ข้อมูลสำหรับแยกแยะแมว-หมา จากตัวอย่างที่แล้ว

ตัวอย่างข้อมูลพร้อม label ของ ML แบบ Supervised learning

เราสอนคอมพิวเตอร์ว่าสัตว์ตัวที่มี ความสูง, น้ำหนัก และขน แบบนี้ เป็น “หมา” หรือ “แมว” โดยข้อมูลในคอลัมน์ที่ว่าคือ Label (คำกำกับ) นั่นเอง … ผมขอสรุปสั้นๆ ว่า

Supervised learning คือ “การเทรนด้วยข้อมูลที่มาพร้อม label” เพื่อทำนายข้อมูลในอนาคต (predict)

การทำนายข้อมูลในอนาคตยังแยกได้อีกสองแบบย่อยๆ คือ classification กับ regression

Classification vs Regression

ประเภทของการทำนายแบบนี้แบ่งออกเป็นสองแบบตามลักษณะของผลลัพธ์

  1. Classification — คือ การทำนายผลที่เป็นกลุ่ม เช่น ทำนายแมว/หมา, สอบตก/ผ่าน

จากรูป สมมติให้เป็นข้อมูลหมาแมวคล้ายตารางข้างบน ให้มองว่า แกน x , y คือ น้ำหนักกับความยาวขน ส่วนสีน้ำเงินกับแดง แทน label บอกว่า จุดคือ แมว หรือ หมา

จะเห็นว่าการที่เราจะแบ่งกลุ่มหมา-แมวได้ เราต้องรู้ “เส้นแบ่ง” (classifier) ที่ชัดเจนซึ่งคือ เส้นสีดำในรูป ชาว data มักเรียกเส้นนี้ว่า “โมเดล” นั่นเอง!

คำถามต่อมาคือ แล้วเราจะหาเส้นนี้ได้ยังไงล่ะ?… ใช่ครับ คำตอบคือเราต้องทำการ “เทรน” โมเดล! อย่างที่บอกครับ machine learning คือการที่เราเอาข้อมูลสอน machine

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

เมื่อลองผิดลองถูกไปหลายๆ รอบ ตัว machine ก็จะฉลาดขึ้นจนสามารถหาเส้นที่แบ่งข้อมูลได้ดีที่สุดครับ เราลองมาดูตัวอย่างจาก animation ด้านล่างครับ

ตัวอย่างการเรียนรู้ของปัญหาแบบ Classification ด้วย Linear Classifier (Perceptron)

จากรูป iteration หมายถึง จำนวนครั้งที่เราสอน/เทรนโมเดล จะเห็นว่ารอบแรกๆ เส้นเขียวจะเริ่มจากมั่วๆ หลังจากนั้นรอบถัดไป (สังเกตการขยับของเลข iteration) มันจะค่อยๆ เรียนรู้ (learning) แล้วขยับเข้าใกล้จุดเส้นแบ่งขึ้นเรื่อยๆ จน iteration ที่ 7 มันสามารถหาจุดที่แบ่ง หมา-แมว ได้เด็ดขาด จุดนี้เรียกว่าการ “converge” คือจุดที่เราได้เส้นที่แบ่งข้อมูลชุดนี้ได้ดีที่สุด เส้นนี้เราเรียกว่า โมเดล (model) นั่นเอง!

ตอนนี้หลายคนอาจงง ว่ารู้ได้ไงว่าต้องขยับไปทางไหน? แล้วมันทำงานยังไง? อย่าเพิ่งงงฮะ อัลกอริทึมนี้ชื่อว่า Perceptron เป็นโมเดลคลาสสิกของเรื่อง classification แต่ยังไม่ต้องไปสนใจมันครับ ตอนนี้ขอให้รู้ไอเดียไว้ก่อนว่า เทรนนิ่งเนี่ย หน้าตามันเป็นอย่างเงี้ยแหละขยับๆเส้นไปมา ถ้าใครสนใจอยากศึกษาเพิ่มเติมลองดู https://en.wikipedia.org/wiki/Perceptron

ตามที่ว่ามาขอสรุปว่า เป้าหมายของ classification คือ…

Classification Goal = หาเส้นที่แบ่ง (Separate) ข้อมูลได้ ชัด ที่สุด

คำว่า “ชัดที่สุด” ในบางเคส ข้อมูลอาจไม่สามารถแบ่งด้วยเส้นตรงได้ หากจุดแดง และน้ำเงิน มีการ overlap กัน เราอาจใช้โมเดลที่ซับซ้อนขึ้นในการทำนาย เช่น Neural Network หรือ Decision Tree ในการแบ่ง ซึ่งจะพูดถึงบทความถัดๆ ไปครับ

2. Regression — คือการทำนายผลเป็นตัวเลขต่อเนื่อง เช่น ทำนายราคาหุ้นจากสภาพตลาด หรือ ทำนาย น้ำหนัก จาก ส่วนสูง และ เพศ ตามตาราง

ตัวอย่างข้อมูลสำหรับ Regression ทายส่วนสูงจากน้ำหนักและเพศ

จะเห็นว่าข้อมูลที่เราต้องการทำนายคือความสูง เป็น “ตัวเลขต่อเนื่อง” (continuous value) ด้วยเหตุนี้ ทำให้โมเดลสำหรับปัญหาแบบ regression มีเป้าหมายต่างกับ classification นั่นคือ…

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

ตัวอย่างง่ายๆ เช่น ร้านอาหารอยากทำนายยอดขายเดือนหน้า เพื่อวางแผน stock วัตถุดิบได้ ยิ่งแม่น หมายความว่าเรายิ่งวางแผนได้ดียิ่งขึ้น

อาจสงสัยกันแล้วว่าเราจะเทรนโมเดลที่ว่านี้ได้ยังไง? มาดูตัวอย่างกันครับ!

ตัวอย่างโมเดลเส้นตรงสำหรับโจทย์ Regression

จากรูปมองว่าแกน x คือ ส่วนสูง แกน y คือ น้ำหนัก เราต้องการเส้นเทรนด์ (trend line) ที่บอกว่า ถ้าส่วนสูง ประมาณนี้ ควรมีน้ำหนักเท่าไร? นั่นคือ…

Regression Goal = หาเส้นที่ผลต่างระหว่างค่าจริงกับค่าทำนาย (error) น้อยที่สุด

หลักการง่ายๆ คือหาเส้นที่ทาบบนข้อมูลแล้วได้ trend ที่ใกล้ข้อมูลมากที่สุด เส้นที่ว่าคือ โมเดล นั่นเอง

เราอาจสร้างโมเดล (เส้นสีน้ำเงิน) จากสมการเส้นตรงง่ายๆ ที่เราเรียนตอนมัธยม คือ

y = mx + c 

โดย m = ความชัน(slope) และ c = จุดตัดกราฟ(intercept)

การเทรนนิ่ง regression model คล้ายกับ classification model ครับ คือค่อยๆ เรียนรู้จาก error พอหลายๆ รอบ (เรียกว่า epoch หรือ iteration) จะสามารถได้โมเดลที่ดีที่สุด คือ เส้นที่นาบจุดได้เนียนที่สุด มี error น้อยที่สุดนั่นเอง

รูป GIF ด้านล่างเป็นตัวอย่างการเรียนรู้ของ regression model ครับ

ตัวอย่างการเรียนรู้โมเดล Regression จากที่นี่

จากรูป รอบ (หรือ epoch) ที่ 1 เส้นจะเริ่ม จากการสุ่ม(random) ค่า m (ความชัน) และ c (จุดตัดกราฟ) ก่อน จะเห็นว่ามันเริ่มที่ไกลมากๆ แต่ในรอบถัดๆ ไป อัลกอริทึมจะค่อยๆ เรียนรู้ และนำ error มาปรับค่า m และ c ไปเรื่อยๆ จนสุดท้ายได้เป็นสมการเส้นตรงที่ทาบจุดข้อมูลแล้วมี error น้อยที่สุด

สังเกตว่าแค่สมการเส้นตรง (ที่เรียกว่า Linear Regression) ไม่สามารถทาบจุดได้เนียนๆ แบบไร้ error ได้ ซึ่งในชีวิตจริง ยังมีโมเดลขั้นสูงให้เลือกใช้อีกมากมาย เช่น polynomial regression, neural network, decision tree ที่สามารถสร้างเส้นที่ทาบจุดได้แบบแทบไม่มี error เลย (แต่ตรงจุดนี้อาจเกิดปัญหา overfitting ตามมา แต่ขอไม่ลงลึกในบทความนี้ครับ)

ตัวอย่างเส้นตรงที่เทรนจากโมเดลประเภท non-linear รูปจากที่นี่

ถามว่าถ้างั้นใช้แต่ โมเดลขั้นสูงไปเลยสิ เราจะได้มี error น้อยที่สุด! คำตอบคือไม่ใช่ครับ ในโลกของ data science ยังมีสิ่งที่ต้องคำนึงมากกว่านั้น ไม่ใช่แค่เรื่องความแม่นยำอย่างเดียว สุดท้ายการเลือกใช้ประเภทของโมเดลต้องขึ้นกับข้อมูลและโจทย์ของเราด้วยครับ

สรุป…

จะเห็นว่าเป้าหมายของการทำนายทั้งสองแบบต่างกัน ทำให้ต้องมีวิธีการเทรนโมเดลที่แตกต่างกันไปด้วย ทั้งหมดนี้ ผมอยากให้ได้ไอเดียว่า…

“ที่บอกเทรนอ่ะ เราตั้งใจจะหาเส้นพวกนี้นะ.. โมเดลที่พูดๆ กันอะ คือเส้นพวกนี้ไง!
Classification model = แยก data (separate data)
Regression model = นาบ data (minimize error)

2) Unsupervised learning

วิธีนี้มีหลักการตรงกันข้ามกับ supervised ครับ เพราะ “มีข้อมูล แต่ไม่มี label”
ถ้าเจอข้อมูลที่เราไม่รู้แล้วว่าขนสั้นเป็นแมว ขนยาวเป็นหมา แล้วจะสอน machine อย่างไรดี? นี่เป็นที่มาของ unsupervised learning

Unsupervised learning คือ การเรียนรู้ unlabeled data โดย “จับกลุ่ม” ตามความเหมือนและต่าง จากลักษณะของข้อมูล (feature) วิธีนี้เรียกว่า “clustering”

มองโจทย์แบบนี้ว่า

  1. เรามี data แต่ไม่รู้ว่ามันคืออะไร
  2. เราอยากคลำหาว่า data นี้บอกอะไรเราได้บ้าง
  3. เราใช้วิธี สังเกตลักษณะของข้อมูล แล้วแบ่งกลุ่มตามนั้น
  4. สุดท้าย เราได้ข้อมูลเป็นกลุ่มๆ ที่สามารถใช้วิเคราะห์ต่อยอด หา insight ที่ซ่อนอยู่ได้

Clustering learning process https://giphy.com/gifs/algorithm-rjRgOURbMCxZ6

จากรูปเป็นข้อมูลธุรกรรม (transaction) ของลูกค้า สแกน x และ y เป็นปริมาณการซื้อ และเวลาที่ซื้อในแต่ละ transaction

มาลองทำ clustering พบว่า เมื่อดูจากพฤติกรรมลูกค้า(ปริมาณและเวลาซื้อ) เราสามารถแบ่งเป็นสองกลุ่ม แดง กับ ฟ้า ได้ชัดเจน

เราอาจไม่รู้ในตอนแรกว่าสองกลุ่มคืออะไร แต่ผลลัพธ์นี้ทำให้เราเห็นแพทเทิร์นอะไรบางอย่าง . . .

เมื่อนำข้อมูลมาวิเคราะห์ต่อ เราอาจได้คำตอบว่าสองกลุ่ม แบ่งเป็น ลูกค้าขาจร กับ ขาประจำ เมื่อเรารู้ประเภทลูกค้าเราสามารถ take action กับกลุ่มลูกค้าได้ตรงจุดมากขึ้น

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

3) Reinforcement Learning หรือ RL

ตัวนี้แหวกแนวหน่อย เราสามารถเทรนได้โดยไม่จำเป็นต้องมีข้อมูลให้มันเลย… แต่จะบอกว่าไม่ใช้ข้อมูลเลยก็ไม่ถูกซะทีเดียว เพราะสิ่งที่มันทำคือมันจะค่อยๆ หาข้อมูลด้วยตัวมันเอง จากการลองผิดลองถูกหน้างาน (trial error) และนำข้อมูลสดๆ (live data) จากตรงนั้นมาเรียนรู้ พัฒนาตัวเองไปเรื่อยๆ

ฟังแล้วอาจงงๆ เดี๋ยวรอดูตัวอย่าง Pacman AI ด้านล่างแล้วน่าจะเห็นภาพครับ 😁

ถ้าพูดถึงหลักการของ Reinforcement Learning คือ …

การสร้าง RL model เริ่มจากเราตั้งเป้าหมายว่าอยากให้ บอทบรรลุเป้าอะไร ถ้าทำถูกเราจะให้รางวัล ส่วนทำผิดจะหักคะแนน วิธีการนี้เรียกว่าระบบ Reward system ครับ โดยที่…

วิธี Reward system เป็นตัวกำหนด Action ของบอท หลังจากเทรนไปเรื่อยๆ บอทจะค่อยๆ พัฒนาตัวเองจนสุดท้ายสามารถบรรลุเป้าหมายที่ตั้งไว้ได้

อ่านหลักการแล้วอาจยังมองไม่เห็นภาพ แนะนำลองดูตัวอย่างการเทรนบอท Pacman ด้วย Deep Reinforcement Learning ดูครับ เงื่อนไขคือ Pacman ไม่มีข้อมูล (ประวัติการเดิน) ให้ แต่มีกำหนดเกณฑ์ให้คือกินเม็ดได้แต้ม โดนปีศาจก็ตาย (เสียแต้ม) แล้วเราให้บอทไปลองผิดลองถูกตามกฎที่ตั้งไว้ จะเห็นว่ารอบแรก Pacman จะเริ่มจากวิ่งไม่เป็น พอผ่านไปรอบท้ายๆ แล้ว สเต็ปโหดมากก

การพัฒนาของ Pac-man bot จากการเทรน Deep Reinforcement Learning https://github.com/tychovdo/PacmanDQN

จะเห็นว่า บอทโหดมากกกกก OMG

https://camo.githubusercontent.com/bed04007ee2e5cd61804f4cf831c4cba6d61ecde/687474703a2f2f692e696d6775722e636f6d2f4d4e70724f46332e676966

เทคนิค RL พิสูจน์แล้วว่าสามารถเทรนบอทให้แข่งกับคนได้โหดมากๆ เช่น AlphaGo เล่นโกะชนะแชมป์โลกโกะแบบชิลๆ ส่วนบอท Dota2 ก็สามารถชนะทีมระดับแนวหน้าได้แล้ว นอกจากนี้ RL ยังใช้เทรนการทำงานของ self-driving car หรือ รถไร้คนขับอีกด้วย

จบแล้ววคร้าบ

ขอบคุณที่อ่านจนจบครับ ผมขอสรุปแบบ “ขอสามคำ” ไว้ให้จำกันง่ายๆ ตามนี้ครับ

  • ML คือ? — “train model predict”= สอนคอมจาก ข้อมูลเพื่อสร้างโมเดลไว้ทำนายข้อมูลในอนาคต
  • Training Model คือ? — “teach from data” สอน machine ด้วยข้อมูลตัวอย่าง → เพื่อ ทำนายข้อมูลในอนาคต ขึ้นกับประเภทของ ML…
  • 1. Classification — “แบ่งข้อมูล” = หาเส้นที่ แบ่งข้อมูล ได้ชัดที่สุด
  • 2. Regression — “นาบข้อมูล” = หาเส้นที่ นาบข้อมูล ได้ เนียนที่สุด (error น้อยสุด)
  • 3. Clustering — “แบ่งกลุ่มข้อมูล” = แบ่งกลุ่มข้อมูลจากความ เหมือน/ต่าง
  • 4. Reinforcement Learning — “ลองผิดลองถูก” = เรียนรู้จากการ ลองผิดลองถูก (Trial Error) ถ้าเจอคำนี้ให้จิ้นถึง Pac-man bot
  • จบแล้วครับ สุดท้ายผมขอแปะเทียบการ learning สามแบบ ให้ดูกันง่ายๆ ครับ

Learning process — Classification vs Regression vs Clustering

ศึกษาเพิ่มเติม
  • What is Machine Learning?
    https://www.youtube.com/watch?v=R9OHn5ZF4Uo
    https://www.quora.com/What-is-machine-learning-4
  • Coding with ML
    https://www.youtube.com/watch?v=2FOXR16mLow
  • Bias and Variance
    https://www.youtube.com/watch?v=EuBBz3bI-aA

สำหรับคนที่สนใจอยากมาเป็นส่วนหนึ่งของทีม Data ที่ LINE MAN Wongnai สามารถดูรายละเอียดและสมัครได้ที่ https://careers.lmwn.com/development