0 of 16 lessons complete (0%)
Exit Course

Lesson 12 – Key Concepts in ML

Overfitting

เป้าหมายที่สำคัญที่สุดของการเทรน ML model คือการได้โมเดลที่ทำงานได้ดีกับ data ที่ใช้เทรนและ unseen data ที่มันไม่เคยเห็นมาก่อน

ถ้าโมเดลทำงานได้ดีกับ train data แต่ไม่สามารถใช้งานได้เลยกับ unseen data เราเรียกปัญหานี้ว่า “Overfitting” คือ scenario ที่ algorithm เรียนรู้ train data ดีเกินไปจนไม่สามารถนำไปใช้กับข้อมูลชุดใหม่ได้ (ซึ่งผิดกับโจทย์ของ ML ตั้งแต่แรก ที่อยากได้โมเดลที่ generalize ได้ดีกับ unseen data)

ในรูปด้านล่าง Overfitting เกิดขึ้นในรูปขวามือสุด โมเดลทำนาย train data ได้ถูกต้อง 100% แต่ถ้าเรานำโมเดลนี้ไปใช้กับ test data (unseen) โมเดลอาจจะได้ค่าความถูกต้องที่ต่ำมาก

Overfitting Problem ที่มา Educative

✅ เป้าหมายของการสร้าง ML model คือรูปตรงกลาง optimal model คือโมเดลที่ทำงานได้ดีกับ train, test, validate data ในอนาคต (หรือ data ที่มันไม่เคยเห็นมาก่อน)

What is Algorithm

Machine Learning เรียกได้ว่าเป็น Algorithm รูปแบบหนึ่ง นิยามของ algorithm คือขั้นตอนหรือ steps ที่เรากำหนดไว้เพื่อแก้ปัญหาหนึ่งๆ

ความหมายของ algorithm จาก Google

เราจะมองว่าการทำกับข้าว เป็น algorithm รูปแบบหนึ่งก็ได้ มาลองตัวอย่าง algorithm สำหรับทำมาม่าถ้วย

  1. ต้มน้ำ 200 ml ให้เดือด
  2. เปิดถ้วยมาม่า
  3. ฉีกซองเครื่องปรุงเทลงในถ้วยมาม่า
  4. เทน้ำร้อนใส่ถ้วย รอ 1 นาที

ถ้าเราทำตาม step 1-4 ได้อย่างถูกต้อง เราก็จะได้มาม่าอร่อยๆทานได้ทันที ML algorithm ทุกตัวที่เรารู้จักในโลกนี้ก็ทำงานเป็น steps แบบนี้เลย ต่างกันที่ steps ของ ML จะเป็นการคำนวณตัวเลขเป็นหลัก i.e. computation

ML and Pokemon

ปัจจุบันมี ML algorithms ให้เราเลือกใช้หลายร้อยหลายพันตัว (เฉพาะ caret ใน R ก็เทรนได้ 200+ กว่าโมเดลแล้ว)

แอดชอบมอง ML algorithms เป็นเหมือน Pokemon ที่เราเล่นตอนเด็กๆ Pokemon แต่ละตัวจะเก่งกันคนละแบบ ML algorithms ก็เช่นกัน หน้าที่ของเรา (trainer) คือเลือกใช้ ML ให้เหมาะสมกับปัญหานั้นๆ

ในชีวิตจริงการเลือกใช้ ML algorithms ให้เหมาะสมกับปัญหาตรงหน้าเราเป็นทั้ง art + science การค้นหา algorithm ที่ใช่ ต้องอาศัยเวลา ประสบการณ์ และ experimental mindset

ส่วนตัวแอดคิดว่าความท้าทายนี้คือจุดเริ่มต้นของ AutoML เลย ทีม ML engineer จึงเขียน algorithm ให้คอมพิวเตอร์เข้ามาช่วยหา algorithm ที่ดีที่สุดให้เรา (มนุษย์ไม่ต้องเสียเวลาหาเอง)

AutoML is an algorithm to find the best algorithm for a specific problem

แอดทอย

Model = Data + Algorithm

Model = Data + Algorithm หรือเราจะเขียนในรูปแบบของ function คณิตศาสตร์แบบนี้ก็ได้

Model = Algorithm(Data) 

เราป้อนข้อมูลให้กับ ML algorithm เพื่อสร้างเป็น model ขึ้นมาใช้งาน บางทีแอดก็ชอบเรียก model/ algorithm สลับๆกัน แต่ความหมายจริงๆคือตามที่เราเขียนด้านบนนะครับ 😁

How Algorithm Works

แล้ว ML algoriithms ทำงานยังไง? ในพาร์ทนี้แอดจะอธิบายแบบง่ายๆ โดยยกตัวอย่างของ Linear Regression

ตัวอย่าง linear regression income = f(years of education) ที่มา ISLR หน้า 18

ถ้านักเรียนเข้าใจการทำงานของ Linear Regression ก็จะเข้าใจ ML ตัวอื่นๆหมดเลย เพราะมันทำงานบนหลักการเดียวกัน Idea ของ ML นั้นง่ายเหลือเชื่อ

ทบทวนสั้นๆ Linear Regression Algorithm ใช้แก้ปัญหา Regression โดยทำนายตัวแปรตามที่เป็นตัวเลข (numerical value)

# Linear Rgression
y = f(x1, x2, x3)

ถ้าเรา fit model เสร็จแล้ว (fitting อีกความหมายหนึ่งคือการ training model) เราจะได้สมการหน้าตาแบบนี้

y = b0 + b1*x1 + b2*x2 + b3*x3

เราใช้สมการนี้ในการทำนายผลค่า y ได้เลยแค่แทนค่า x1, x2, x3 ไปในสมการ

หน้าที่ของ linear regression algorithm คือการหาค่าสัมประสิทธิ์ (coefficient): b0 b1 b2 b3 ที่ทำให้ค่า error ของสมการต่ำที่สุด โดย error คำนวณมาจาก

error = actual_y - predicted_y

Note – error ของ regression มีหลายแบบ แต่ตัวที่เราชอบใช้คือ MSE (Mean Squared Error) และ RMSE (Root Mean Squared Error) ถ้าใครเคยอ่าน ML textbooks บางทีเราจะเรียก error ว่า cost function

สรุปคือ ML algorithms มันทำงานคล้ายๆกับ optimization model โดยทั่วไปเราจะกำหนด objective function ขึ้นมา เช่น ค่า error ในสมการด้านบนที่เราอยากให้มีค่าต่ำที่สุด (minimize error)

และปล่อยให้ linear regression algorithm ทำหน้าที่หา coefficient b0, b1, b2, … ที่ทำให้ค่า predicted_y เข้าใกล้กับ actual_y มากที่สุด (หรือ error ต่ำที่สุดนั่นเอง)

⭐ Algorithm เรียนรู้จากข้อมูลเพื่อหาค่า optimal coefficients ที่ดีที่สุดให้เรา เป็นที่มาของคำว่า Machine Learning

Formative Quiz