Linear Regression

Machine Learning EP.1

ติดตามข่าวสารที่น่าสนใจ​

อัพเดทเรื่อง Machine Learning ได้ก่อนใครที่นี้ !!

การเรียนรู้ของ ML แบบ Linear Regression EP.1

กลับมาพบกันอีกครั้งแล้วนะคะ ครั้งที่แล้วเราได้รู้กันไปแล้วว่า การเรียนรู้ของ ML หรือ Machine Learning มีการเรียนรู้อย่างไรแบบคร่าวๆ  ซึ่งในรอบนี้เราจะมาเจาะลึกกันลงไปอีกว่า

  • การเรียนรู้ของ ML แบบ Regression มีกระบวนการเรียนรู้อย่างไร
  • Regression คืออะไร
  • Linear Regression คือ อะไร จะหาราคาบ้านจากสมการเส้นตรงนี้ได้อย่างไร 
  • แล้วสมการ Linear Regression ที่ได้แม่นยำที่สุดแล้วหรือยัง? 
  • Cost Function คือ อะไร เราสามารถใช้ Cost Function เข้ามาช่วยหาสมการที่แม่นยำที่สุดได้อย่างไร

หากเพื่อนๆยังไม่รู้ว่า Machine Learning คืออะไรสามารถเข้าไปอ่านในบทความนี้ได้เลย (Machine Learning คือ การเรียนรู้ของคอมพิวเตอร์)

มันไม่ได้ยากอย่างที่คิด ทำใจให้สบายๆ เราจะไปกันอยางช้าๆ เพื่อที่เพื่อนๆจะได้เข้าใจกันง่ายๆนะคะ

การเรียนรู้ของ ML แบบ Regression

Linear regression

จากรูป หลักการเรียนรู้ของ ML คือเราจะมีการใส่ชุดข้อมูล(เป็นชุดข้อมูลที่เรารู้อยู้แล้วว่าผลลัพธ์คืออะไร ยกตัวอย่างเช่น ขนาดบ้านและราคาบ้านของปีก่อนๆ(เราเรียกข้อมูลชุดนี้ว่าTraining Set) ลงไปในคอมพิวเตอร์ เมื่อคอมพิวเตอร์มีการเรียนรู้(Learning Algorithm)แบบ Regression จากชุดข้อมูลแล้ว ก็จะได้สมการ h ที่แสดงความสัมพันธ์ของข้อมูลใน Training Set ออกมา นี่เป็นหลักการคร่าวๆเดี๋ยวเราจะมาลงรายละเอียดกันต่อไป

ก่อนอื่นเรามาดูกันว่า Regression คืออะไร

Regression

คือ การวิเคราะห์ความสัมพันธ์ระหว่างตัวแปร โดยตัวแปรที่เราทราบค่า เรียกว่าตัวแปรอิสระ(X) และตัวแปรที่เราจะประมาณค่า(ต้องการที่จะรู้)เรียกว่าตัวแปรตาม(Y) ซึ่งในการวิเคราะห์แบบ Regression นี้อาจจะมีตัวแปรอิสระ(X)มากกว่า 1 ตัวก็ได้

ซึ่งการประมาณการแบบ Regression จะแบ่งออกเป็น 3 แบบหลักคือ

  • Linear Regression(LR)
  • Non-Linear Regression
  • Logistic Regression

ในบทความนี้เราจะพูดถึงการเรียนรู้แบบ (LR) ซึ่งจะเป็นการวิเคราะห์ความสัมพันธ์ที่มีตัวแปรอิสระ(X) 1 ตัว และตัวแปรตาม(Y) 1 ตัว โดยรูปแบบความสัมพันธ์ระหว่างตัวแปร (X) และตัวแปร (Y) สามารถเขียนแทนด้วยสมการทางคณิตศาสตร์แบบเส้นตรง (Linear Model)

Linear Regression คือ อะไร

จากบทความที่แล้ว เราต้องการดูว่าราคาบ้านที่ต้องการขายราคาเท่าไร? เราก็เอาชุดข้อมูล (Training Set) ในบทความนี้เราจะใช้ข้อมูลขนาด Living Room และ ราคาบ้าน มาพล็อตดังรูป

Linear regression
Linear regression

จากการพล็อตข้อมูลดังรูป จะเห็นได้ว่าข้อมูลมีการกระจายตัวแบบกราฟเส้นตรง ซึ่งสมการเส้นตรงโดยทั่วไปจะเขียนได้ว่า Y= aX +b แต่ใน ML เราใช้สมการ  แทน โดยที่ค่าของ b,a = ตามลำดับ

หลักการของ Linear Regression คือ การหาสมการเส้นตรงที่ประมาณราคาบ้านออกมาได้แม่นยำที่สุด นั่นคือสมการต้องลากทับจุดบนกราฟให้มากที่สุด ซึ่งเราสามารถนำสมการเส้นตรงนี้ไปคำนวณหาราคาบ้านที่เราต้องการขายได้ต่อไป 

แล้วสมการเส้นตรงที่ได้มา แม่นยำที่สุดแล้วหรือยัง?

จริงๆแล้วสมการที่ได้อาจจะประมาณราคาบ้านออกมาได้ในระดับหนึ่ง แต่ถ้าจะให้สมการที่ได้ประมาณการราคาบ้านให้แม่นยำกว่านี้ จะต้องใช้ Cost Function เข้ามาช่วย เพื่อนๆคงจะงงว่า Cost Function คืออะไร เรามาดูกันเลย!

Cost Function คือ

linear regression

จากรูปกำหนดให้ 

 (Yp) = ราคาบ้านที่ได้จากสมการประมาณการ ()

 (Yจริง) = ราคาบ้านที่แท้จริง

จากรูปจะเห็นได้ว่า มีบางจุดที่สมการเส้นตรงด้านบนไม่ได้ลากทับจุด ซึ่งระยะห่างระหว่างจุด (Yจริง) กับ (Yp) เราเรียกว่า error (ระยะห่างระหว่างราคาบ้านจริงกับราคาบ้านที่ได้จากสมการประมาณการ) ซึ่งหาก error มีค่าน้อย(หมายถึงราคาบ้านที่ประมาณออกมาใกล้กับราคาบ้านจริง) ก็จะยิ่งทำให้เส้นตรงนี้มีการประมาณการที่แม่นยำมากขึ้น ซึ่งสมการผลรวมของ error ทั้งหมดเราเรียกว่า Cost Function

ต่อมา เราจะมาดูกันว่า Cost Function มีหน้าตาสมการเป็นอย่างไร เริ่มจาก

cost function คือ

เพิ่มเติม

hypothesis (สมมติฐาน) : คือสมการประมาณราคาบ้านที่ลากผ่านข้อมูลใน Training Set

Parameter : ตัวเลขที่กำหนดจุดตัดและความชันบนแกน

สมการ Cost Function คือผลรวม error ระหว่างราคาบ้านประมาณการกับราคาบ้านจริง สูตรคือ ผลรวมของ (Yp-Yจริง) ทั้งหมดยกกำลังสอง ที่ต้องยกกำลังเพราะว่าค่าที่ได้มันอาจจะเป็นได้ทั้งบวกและลบ  จากนั้นนำผลรวมทั้งหมดมาหารด้วย m เนื่องจากว่าเราต้องการหาค่าเฉลี่ย ที่ทำให้สมการเส้นตรงเข้าใกล้ค่า (Yจริง) มากที่สุด ส่วนการคูณด้วย 1/2 คือมันคือ Batch Size 

เมื่อเรารู้แล้วว่า Cost Function  คืออะไร ต่อไปเราจะมาดูกันว่ามันจะช่วยหา สมการ ที่แม่นยำที่สุดได้อย่างไร

cost function คือ

Idea : เราจะเลือก ที่ทำให้สมการเส้นตรงมีค่าใกล้เคียงค่า (Yจริง) มากที่สุด โดยการ

เพื่อให้เข้าใจง่าย กำหนดให้ จะได้สมการใหม่ดังนี้

แทนค่า  ตามลำดับในสมการ J

นำค่าที่ได้จากการคำนวณบ้างบน มาพล็อตกราฟ ดังรูป

จากรูปแรก จะเห็นได้ว่าเมื่อแทนค่า Theta_1 = 1,000 (เส้นส้ม) ทำให้สมการเส้นตรงลากทับจุด (Yจริง) มากที่สุดเมื่อเทียบกับอีกสองค่า และรูปที่สอง คือการนำค่าจากการคำนวณผ่าน Cost Function ไปพล็อตกราฟแสดงความสัมพันธ์ระหว่างค่า  และ(เพื่อดูว่าจุดไหนจะให้ค่า cost function ต่ำที่สุด) จะเห็นได้ว่าจุดสีส้มคือจุดที่ค่า Cost Function มีค่าน้อยที่สุดเมื่อเทียบกับทั้ง 3 ค่า 

แล้วถ้า ล่ะ? 

 จะได้ สมการเดิมแต่เพิ่ม parameter เป็นสองตัว คือ 

ซึ่งเมื่อเราแทนค่า  แล้วจะได้ สมการเส้นตรงเหมือนเดิม แต่เมื่อนำค่าที่ได้จากการคำนวณผ่าน สมการ Cost Function มาพล็อตกราฟความสัมพันธ์ระหว่างค่าและจะทำให้ได้ภาพ 3 มิติ(รูปแรก)หรือเราสามารถปรับรูปเป็นแบบ Contour Plot (รูปสอง)เป็นการมองภาพจากด้านบน เพื่อให้เราเข้าใจมากขึ้นได้

linear regression
linear regression

การที่เราจะหาค่า ที่ทำให้สมการมีค่าน้อยที่สุด นั้นคือคือจุดตรงกลางหรือก้นแอ่งนี้ เราจะใช้วิธี Gradient Descent ซึ่งเราจะมาอธิบายว่า Gradient Descent คืออะไร แล้ว Gradient Descent จะช่วยหาสมการประมาณราคาบ้านที่มี parameter สองตัวได้อย่างไร เพื่อนๆรอติดตามในบทความหน้าได้เลยค่ะ  

เรื่อง Gradient Descent คือ อะไร EP.2

ติดตามข่าวที่น่าสนใจ

อัพเดทเรื่อง Machine Learning ได้ก่อนใครที่นี้ !!