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 แล้วได้กราฟแบบนี้

5 Comments

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

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

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

Leave a Comment

Machine Learning #9 | Gradient Descent

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

1 Comment

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
1 Comment

Machine Learning #7 | Linear Regression ตอนที่ 1

Linear Regression เป็น predictive model แบบหนึ่ง ใช้ทำนายข้อมูลแบบ continuous เป็นช่วงของตัวเลข เช่น 1-100, 0.01-0.99 ซึ่งต่างจาก classification model ที่ผลลัพธ์เป็นแบบ discrete เป็นคลาสหรือเลเบิล เช่น 0, 1 ;  สัตว์, พืช แค่ 2 คลาส หรือหลายคลาสก็ได้ เช่น หนังแนวแอคชั่น, คอมเมดี้, สารคดี, ไซไฟ ฯลฯ อะไรก็ว่าไปแล้วแต่ข้อมูล

สมมุติเรามีข้อมูล 2 ชุดที่มีความสัมพันธ์กัน เช่น ราคาบ้านกับพื้นที่บ้าน, คะแนนของเทอมต้นกับคะแนนของเทอมปลาย, จำนวนคนกับชั่วโมงที่ทำงานเสร็จ ฯลฯ เมื่อให้สิ่งที่เราต้องการทำนายเป็นแกน y (ผลลัพธ์) และข้อมูลอีกชุดคือแกน x (ฟีเจอร์) เมื่อนำข้อมูลทั้ง 2 ชุดมาพล็อตกราฟจะได้จุดที่เพิ่มขึ้นหรือลดลงเป็นเชิงเส้น (linear) ดังรูป

1 Comment

Machine Learning #6 | การคำนวณ Entropy และ Information gain

โพสต์ที่แล้วเกี่ยวกับ Machine learning เรารู้จัก Entropy คุณสมบัติของมันไปแล้วและรู้แล้วว่าเอาไปใช้ในการทำ feature selection ได้ คราวนี้มาลองคำนวณ entropy ดูบ้าง และอีกคำที่ควรรู้คือ “Information gain” ซึ่งเป็นการเทียบความ entropy ก่อน-หลังว่ามีการเปลี่ยนแปลงเท่าไหร่

Leave a Comment

Machine Learning #5 | ทำความเข้าใจ Entropy กันสักหน่อย

โพสต์ที่แล้วผมพูดถึง Entropy (ภาษาไทยใช้ว่าคำว่า “ความแปรปรวน” ฟังแล้วไม่เก็ตเลยว่าคืออะไร) ซึ่งผมบอกถึงประโยชน์ของมันว่าใช้ในการทำ Feature selection ได้  โพสต์นี้เรามาทำความเข้าใจคำว่า entropy กัน

2 Comments