Gradient Descent

Gradient Descent Algorithm EP.3

จากบทความที่แล้วเราได้พูดถึงเรื่อง Gradient Descent ไปว่า มันมีที่มาอย่างไร ช่วยหาจุดต่ำสุด(Local Minimum)ได้อย่างไร บทความนี้เราจะมาดูวิธีการคำนวณ Gradient Descent Algorithm สำหรับ Linear Regression ว่ามีขั้นตอนอย่างไร โดยเริ่มจาก

  • การนำ Gradient Descent Algorithm มาapplyกับ Linear Regression เพื่อหาสมการประมาณราคาบ้าน (Gradient Descent Algorithm for Linear Regression)
  • คำนวณ Gradient Descent โดย Set Gradient Descent = 0 หาค่าประมาณการ ที่ทำให้ Cost Function มีค่าต่ำที่สุดที่ทำให้ได้สมการประมาณการที่แม่นยำที่สุด

เพื่อนๆสามารถดูบทความย้อนหลังเรื่อง Gradient Descent คือ อะไร EP.2 

Gradient Descent Algorithm for Linear Regression

Objectiveเราจะนำ Cost Function  มาใส่ใน Gradient Descent  เพื่อที่จะ Minimize cost function() และเราต้องคำนวณ 2 parameter พร้อมกัน (Simultaneous)

Gradient Descent Algorithm

วิธีทำ  1. เราแทนค่า Cost Function ใน Gradient Descent จะได้

Gradient Descent Algorithm

2. ทำ Partial Derivative เมื่อแทน(ค่าสมมติ) j=0 และ j=1 แบบ Simultaneous จะได้

25
f5
24

Final Equation

Gradient Descent Algorithm

3. นำทั้งสองสมการ( j=0 และ j=1 ) เข้าไปในสมการ Gradient descent จะได้

Repeat until convergence

Gradient Descent Algorithm

เราจะได้ค่า ค่าใหม่ จากนั้นเราก็เอาค่า ค่าใหม่คู่นี้ ไปแทนในสมการเดิม เราก็จะได้ค่าค่าใหม่อีกค่า ทำแบบนี้ไปเรื่อยๆ ก็จะทำให้เราก้าวไปสู่จุด Local Minimum ในที่สุด 

เมื่อถึงจุด Local Minimum นั้นหมายถึงเราได้สมการ Linear Regression ที่แม่นยำที่สุด จากนั้นเราก็สามารถนำสมการนี้ (เราได้สมการนี้จาก Training Set) ไปใช้ประมาณราคาบ้านกับข้อมูลที่เป็นข้อมูลจริงได้เลย!!! 

หมายเหตุ ในเรื่องจุด Local Minimum เมื่อเราทำ Gradient Descent for Linear Regression มันจะเดินไปที่จุด Local Minimum เดียว แต่ถ้าไม่ใช่ Linear regression มันอาจจะทำให้มีจุด Local Minimum หลายจุด และจุดที่ต่ำสุดเมื่อเปรียบเทียบกับกับจุดอื่นๆ เราเรียกว่า Global Optimum ดังนั้นหากไม่ใช่ Linear Regression การเลือกจุดเริ่มต้นต่างกัน จุดหมายปลายทางก็ต่างกัน เหมือนที่ได้กล่าวไปในตอนต้น 

เมื่อเข้าใจหลักการคร่าวๆแล้วต่อไปเราจะลองมาคำนวนโดยใช้ตัวเลขกัน อาจจะทำให้เพื่อนๆ เข้าใจกันมากขึ้น!

Set Gradient Descent = 0

ในการ คำนวณ Gradient Descent เราจะ Set Gradient = 0 นั้นหมายถึง ค่า Cost Function มีค่าต่ำสุด เราจะหาค่า ที่จุดนี้ ซึ่งมันเป็นค่าประมาณ Parameter ที่ดีที่สุด ที่ทำให้สมการประมาณการ (Linear Regression) แม่นยำที่สุดต่อข้อมูล Training Set ของเรา

1.Prove หาสูตร

เริ่มจากการ Prove หาสูตรที่ใช้หา  สมการเริ่มต้นคือ 

Gradient Descent Algorithm

เขียนได้อีกแบบ

00

หา จากสมการสมการที่ 1 

f2

 หาจากสมการที่ 2 

Gradient Descent Algorithm

Final Equation 

Gradient Descent Algorithm

2. คำนวณกับตัวเลขจริง

1. จากสูตร

Gradient Descent Algorithm

2.Training Set(ชุดข้อมูลของเรา):

42

3.หาค่า ของ 4 ตัวแปรนี้ (ซึ่งเป็นตัวแปรที่อยู่ในสมการที่จะหาค่า)

40.1

4.หา  จากสูตร:                         

44

          แทนค่า

45
46

6.หา  จากสูตร :  

48

           แทนค่า

f6
f7

ตอบ ดังนั้น เมื่อเรา Set Gradient Descent = 0 ค่า ที่ทำให้สมการ Linear Regression แม่นยำที่สุดกับชุดข้อมูล Training Set ก็คือ และ (เราเซทมันเท่ากับ 0 แล้ว นั้นคือจุดที่ slope=0 หรืออีกความหมายคือ ค่า Cost Function มีค่าต่ำที่สุดแล้ว)

หมายเหตุ : 

  • = Intercept
  • = Slope

ดังนั้นเมื่อเราได้ค่า  เราก็เอาใส่เข้าในสมการ Linear Regression เราก็จะได้สมการประมาณการราคาบ้านที่แม่นยำที่สุดสำหรับชุดข้อมูล(Training set)ของเรา คือ

เราสามารถนำสมการนี้ไปใช้ประมาณราคาบ้านต่อไปได้!

จะเห็นได้ว่า ถ้า Set Gradient Descent  = 0 การหาค่า  ได้ไม่ยาก แต่ถ้าเราไม่ได้ Set Gradient Descent = 0 ล่ะ? ในบทต่อไปเราจะมาดูกันว่า เราจะหา Cost Function ที่ต่ำที่สุด โดยไม่ Set Gradient Descent  = 0 และเปรียบเทียบกันว่าแบบไหนดีกว่ากัน (เรื่อง Gradient Descent Algorithm EP.4)

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