Skip to content

Category: Machine learning

Machine Learning #10 | Underfitting VS Overfitting

ห่างหายจากการเขียนบล็อกไปพอสมควรเนื่องจากก่อนหน้านี้งานค่อนข้างยุ่ง เริ่มด้วยเรื่องเบาๆ ก่อนดีกว่า

ในขั้นตอนการเทรนโมเดล เราต้องทำ cross-validation เพื่อเป็นการตรวจสอบว่าโมเดลที่เราเทรนนั้นมัน complex พอที่จะ handle หรือ generalize พอที่จะ predict data ที่เราต้องการหรือเปล่า  การทำ cross-validation นั้นเป็นการตรวจสอบเบื้องต้นว่า model ของเรามันมาถูกทางแล้วหรือยัง มีแนวโน้มจะดีขึ้นหรือไม่แค่นั้นเอง ไม่ได้สะท้อนถึงประสิทธิภาพที่แท้จริงของ model จนกว่าจะเอาไปใช้กับข้อมูลจริง

สมมุติว่าเราต้องการทำ linear regression เมื่อนำ training data มาพล็อตตามแกน x,y แล้วได้กราฟแบบนี้

เรียนรู้ Machine learning ลุยเขียนโค้ดก่อนเลยดีไหม?

ผมเป็นคนนึงที่ถ้าจะศึกษาอะไรมักจะลงมือก่อนเพราะคิดว่าทำไปเรียนรู้ไป เดี๋ยวก็เข้าใจเอง ติดตรงไหนค่อยไปอ่านใน document ตอนที่ศึกษา machine learning ก็เหมือนกัน คือรู้มาบ้างว่ามันคืออะไร concept เป็นยังไง ก็ตั้งโจทย์ขึ้นมาแล้วก็ download พวก machine learning library ของภาษาที่อยากเขียนมาลองทำตาม sample code, document ไปเรื่อยๆ ซึ่งก็แน่นอนว่าได้ผลลัพธ์ตาม document อยู่แล้ว

สำหรับอะไรที่มันตรงไปตรงมาหรือเป็นความรู้เฉพาะอย่าง programming language เราสามารถลงมือเขียนเลยได้ เขียนบ่อยๆ เดี๋ยวก็เขียนเป็น (เขียนเป็นกับเขียนได้ดีคนละเรื่องนะ) แต่กับ machine learning แล้วผมรู้สึกว่ามันทำแบบนั้นไม่ได้ เพราะเป็นสาขาวิชาประยุกต์เลยมีพื้นฐานหลายอย่างที่เราต้องรู้ก่อนลงมือทำ เลยอยากบันทึกสิ่งที่เกิดขึ้นระหว่างที่ผมเรียนรู้ machine learning เสียหน่อย

Machine Learning #9 | Gradient Descent

โพสต์ที่แล้ว เรารู้อัลกอริทึมของ Linear Regression ไปแล้วว่ามันทำงานยังไงแต่มีอีก task ที่เราต้องสนใจคือการ optimize ค่า Cost function ให้น้อยที่สุดเพื่อให้ได้ model ที่ fit กับ training set ที่สุด ตัวอย่างที่แล้วผมกำหนดให้ เราเลยได้กราฟความสัมพันธ์ระหว่าง กับ เป็นเส้นโค้งหงายขึ้นเป็นรูปถ้วย (blow shape) ใน 2 มิติ แต่ในความเป็นจริง อาจเป็นค่าใดๆ…

Machine Learning #8 | Linear Regression ตอนที่ 2

โพสต์ที่แล้วเกี่ยวกับ Linear Regression เราพอจะรู้ concept คร่าวๆ แล้วสิ่งที่เราต้องสนใจคือ

  1. สมการ hypothesis h(\theta) = \theta_0 + \theta_1x
  2. การ represent ข้อมูลกับ cost function J(\theta_0, \theta_1) =\frac{1}{2m}\sum^{m}_{i=1} (h_{\theta}(x^{i} ) -  y^{i})^2
  3. และเป้าหมายของเราคือการ minimize cost function