Data Science Essential week 2 : Machine learning (สรุปเนื้อหาส่วนทฤษฎี)

Krirk Arunoprayote
botnoi-classroom
Published in
3 min readAug 19, 2020

บทความนี้เป็นการสรุปเนื้อหาส่วนทฤษฎี จากคลาส DSE by BotNoi week 2 เรื่อง Machine learning ครับ

Machine Learning คืออะไร?

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

ในที่นี่จะยกตัวอย่างกระบวนการเรียนรู้ของมนุษย์ 2 แบบ ที่ machine learning ได้นำแนวความคิดไปปรับใช้

1. Supervised Learning

หมายถึง กระบวนการเรียนรู้ที่มีผู้สอนคอยบอกคำตอบที่ถูกต้อง ตัวอย่างที่ชัดเจนคือ การเรียนรู้ของเด็กทารก ที่เริ่มจดจำคำศัพท์ต่างๆ ผ่าน flash card โดยผู้สอนจะโชว์ flash card แล้วบอกเด็กว่า ภาพนี้คือคำว่าอะไร เมื่อทำกระบวนการนี้ซ้ำๆ เด็กก็จะเริ่มจดจำได้ว่า ภาพนี้ คือ คำนี้ เช่น เห็นรูปแมว ก็บอกได้ว่าเป็น cat และเมื่อเด็กเห็นแมวของจริง ก็สามารถบอกได้ว่าสัตว์ตัวนี้ก็คือ cat

ซึ่ง machine learning ก็ได้นำกระบวนการเรียนรู้นี้ไปประยุกต์ใช้อย่างแพร่หลาย ตัวอย่างเช่น การทำ neural network เพื่อให้ machine สามารถจำแนกตัวเลข 0–9 ที่เขียนด้วยลายมือได้ ก็เริ่มทำโดยการป้อนข้อมูลภาพตัวเลขที่เขียนด้วยลายมือจำนวนหนึ่ง พร้อมกับ label บอกว่าแต่ละภาพหมายถึงตัวเลขอะไร ให้กับ neural network

ตัว neural network ก็จะพยายามเรียนรู้จากข้อมูลจนสามารถจำแนกภาพได้ โดยถ้าเป็นภาพเลข 7 ที่เขียนด้วยลายมือ algorithm ก็ควรจำแนกเป็นเลข 7 ให้ได้ โดยในช่วงแรกๆ algorithm อาจจะยังให้คำตอบที่ผิด แต่เมื่อฝึก train ด้วยข้อมูลจำนวนมากขึ้น และอาจจะทำซ้ำหลายๆ รอบ algorithm ก็จะค่อยๆ ปรับทิศทางจนให้คำตอบออกมาถูกต้องมากขึ้น มีความแม่นยำขึ้น และนำไปใช้งานได้จริงในที่สุด

2. Reinforcement Learning

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

machine learning ก็ได้นำหลักการนี้ไปใช้อย่างแพร่หลายเช่นกัน ยกตัวอย่างเช่น OpenAI ที่สร้าง bot ขึ้นมา 2 ทีมแล้วแข่งกันเล่นซ่อนหา ซึ่งผู้สร้าง AI ก็ไม่ได้บอกวิธีว่าต้องทำอย่างไรถึงจะชนะ ทำให้ bot ของแต่ละทีมก็ต้องลองผิดลองถูกหลายๆ ครั้ง กว่าจะได้กลยุทธ์ที่สามารถชนะอีกทีมได้ และเมื่ออีกทีมหนึ่งเปลี่ยนกลยุทธ์จนกลับมาเป็นฝ่ายชนะ ฝ่ายที่แพ้ก็จะพยายามลองผิดลองถูกเพื่อกลยุทธ์ใหม่ๆ ที่จะทำให้ฝ่ายตนเองชนะได้ ในบางครั้ง AI ก็ลองผิดลองถูกจนได้กลยุทธ์ที่ผู้สร้าง AI เองคาดไม่ถึงได้อีกด้วย

การประยุกต์ใช้กับงานด้าน Computer Vision

ปัจจุบันก็ได้มีการนำหลักการ machine learning ไปประยุกต์ใช้ในหลายๆ ทาง เช่น การทำระบบ object recognition ที่สามารถระบุได้ว่า วัตถุที่กล้องเห็น เป็นวัตถุอะไรบ้าง ,ระบบ Emotion recognition ที่สามารถทำนายได้ว่า คนในภาพกำลังมีความรู้สึกอย่างไร , ระบบ Document segmentation ที่ช่วยจำแนกว่าเอกสารนี้เป็นเอกสารประเภทไหน , หรือระบบ Optical Character recognition ที่ช่วยอ่านข้อมูลจากเอกสาร hard copy ได้

การประยุกต์ใช้กับงานด้าน Natural Language Processing

Chat bot ก็มีการนำหลักการ machine learning ไปใช้เช่นกัน เช่น สามารถทำนายสิ่งที่ผู้ใช้พิมพ์มาได้ว่ามี intent แบบไหน แล้วเลือกคำตอบที่ถูกต้องมาตอบได้อย่างเหมาะสม

การประยุกต์ใช้กับงานด้าน Data Science

ตัวอย่างการนำ machine learning ไปใช้ในงาน data science

งานด้าน Data Science ก็นำ machine learning มาใช้อย่างหลากหลาย เช่น

  • การทำนายการย้ายค่ายผู้ให้บริการโทรศัพท์มือถือ โดยนำข้อมูลของผู้ใช้ว่าผู้ใช้ที่เคยย้ายค่ายมักมีรูปแบบของพฤติกรรมเป็นอย่างไร เพื่อทำนายว่าเดือนต่อไป ผู้ใช้คนไหนมีโอกาสจะย้ายค่ายบ้าง เพื่อให้ฝ่ายดูแลลูกค้าพยายามดึงลูกค้าไว้ให้อยู่กับค่ายต่อไป
  • การทำนาย transaction การใช้บัตรเครดิตที่ผิดปกติ โดยการตรวจดูข้อมูลการใช้บัตรเครดิตว่าโดยปกติแล้ว ผู้ใช้บัตรเครดิตมักมีรูปแบบการใช้งานอย่างไร ถ้าตรวจพบรูปแบบการใช้งานที่ผิดปกติ จะได้ให้ทีมดูแลรีบเข้าไปตรวจสอบ เพื่อป้องกันความเสียหายที่อาจเกิดขึ้นได้
  • การทำระบบ recommendation system เช่น Netflix หรือ Youtube ก็จะดูข้อมูลของผู้ใช้ว่าเราเคยชม content แบบไหนมา แล้วทำนายว่า เราน่าจะชอบ content แบบนี้ด้วย แล้วเสนอ content ใหม่แนะนำให้เรารับชม เพื่อดึงให้ผู้ใช้ใช้เวลากับ platform ของเรามากขึ้น
  • การทำ predictive maintenance โดยอาจตรวจหารูปแบบสัญญาณจาก hardware ว่ารูปแบบใดที่เกิดขึ้นพร้อมกันน่าจะเป็นรูปแบบที่ผิดปกติ (anomaly detection) เพื่อจะได้รีบเข้าไปตรวจสอบ เพื่อบำรุงรักษาก่อนที่ความเสียหายจะเกิดขึ้นจริง
  • การทำ personal marketing เช่น การนำข้อมูลผู้ใช้มาวิเคราะห์ว่า ผู้ที่เคยซื้อของแบบนี้มักจะชอบของแบบนี้ด้วย แล้วแนะนำให้ผู้ใช้เห็นสินค้าใหม่นั้น หรือ ทำโปรโมชั่นสินค้าที่ผู้ใช้สนใจส่งให้โดยตรง เป็นการทำการตลาดแบบใหม่ที่ตรงใจผู้ใช้มากขึ้น
  • การทำนายยอดขาย เช่น นำข้อมูลในอดีตมาวิเคราะห์หารูปแบบความสัมพันธ์ของข้อมูลแต่ละอย่าง แล้วนำข้อมูลใหม่มาทำนายได้ว่า ยอดขายน่าจะเป็นเช่นไร

ความสัมพันธ์ระหว่าง machine learning กับ AI

จากแผนภาพ ก็จะเห็นว่า Machine Learning ก็คือสาขาย่อยสาขาหนึ่งของ AI นั่นเอง ถ้าเราทำความเข้าใจ algorithm ต่างๆ ของ machine learning ได้ก็จะเป็นรากฐานที่ดีในการเรียนรู้งานด้าน AI ในสาขาต่างๆ ได้อย่างดี

Machine Learning Pipeline

Pipeline ในการทำ machine learning

กระบวนการทำ machine learning จะเป็นกระบวนการที่ต้องทำซ้ำหลายๆ ครั้ง เพราะคำตอบหรือโมเดลที่เราคิดมาในครั้งแรกมักจะไม่ใช่คำตอบที่ดีที่สุด โดย Pipeline จะมีดังนี้

  1. เก็บรวมรวมข้อมูล
  2. ค้นหา/สกัด feature ที่น่าจะมีผลต่อการทำนายออกมา
  3. นำข้อมูลเข้าไป train ใน model
  4. นำข้อมูลอีกส่วนหนึ่งมาทดสอบดูว่า model ทำงานได้ดีแค่ไหน ถ้ายังไม่ดีก็อาจปรับปรุง model หรืออาจเปลี่ยนไปใช้ model อื่น แล้วย้อนกลับไปทำข้อ 2 อีกครั้ง
  5. เมื่อได้ model ที่มี performance ที่น่าพอใจแล้วจึงนำไปใช้งานจริง

Model มีการเรียนรู้อย่างไร?

การเรียนรู้ของ model

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

เริ่มแรก model ก็จะสุ่มหาเส้นตรงมาเส้นหนึ่งเป็นตัวแทนของข้อมูลทั้งหมด แล้ว model ก็จะคำนวณหา error ว่า ค่าของเส้นนี้ แตกต่างจากค่าของข้อมูลจริงมากเท่าไหร่ จากนั้นก็จะมีการขยับเส้นไปในทิศทางที่จะทำให้ค่า error ทั้งหมดลดลง

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

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

--

--

Krirk Arunoprayote
botnoi-classroom

AI enthusiast, currently working as Data Scientist at Botnoi Consulting Co., Ltd.