หลังจากเราได้ Model เป็นสมการ
y= 219x-2607.7
เราสามารถนำ Model มาทำนายได้แล้วครับ
สมมุติเราต้องการหาราคาหอเมื่อมีขนาดพื้นที่
40 ตารางเมตร
เราสามารถหาได้โดยการนำไปเข้าสมการดังนี้ครับ
y = 219(40)-2607.7 =
6152.3
จะเห็นว่าจะได้ราคาประมาณ 6000 กว่าบาทหรือนั่นก็คือ 6152.3 บาท
“แล้วเราจะหาค่า m และ b ในสมการ
y=mx+b อย่างไร?”
ในการหา m และ b นั้นเราจะใช้ Machine
learning ในการหาโดยมีขั้นตอนการทำงานดังรูป
·
จากรูปหลักการทำงานด้านบนเราจะนำข้อมูลที่เรามีอยู่แล้ว(Feature)และรู้ผลลัพธ์อยู่แล้ว(Label)ให้ Machine learning ทำการเรียนรู้
·
โดยในการเรียนรู้นั้นตอนแรก ML จะสร้าง Model ขึ้นมาก่อนซึ่ง Model ดังกล่าวยังไม่สามารถทำนายข้อมูลได้ถูกต้อง
·
จึงต้องเข้าสู่กระบวนการ Train ข้อมูลเพื่อทำการปรับ Model ให้ถูกต้องมากที่สุดโดยกระบวนการ Train จะทำงานโดยการนำ Model มาทำนายผลจากข้อมูล(Feature)
·
ซึ่งก็จะมีทั้งการทำนายที่คลาดเคลื่อนกับความเป็นจริงไปมาก
หรือใกล้ความเป็นจริง (ในการดูข้อมูลว่าผลทำนายที่ได้คลาดเคลื่อนไปมากหรือใกล้ความเป็นจริงเราใช้ Cost Function ในการดู)
·
ก็นำเอาค่าความเคลื่อนที่ได้ ไปปรับ Model เข้าหาผลลัพธ์ที่ถูกต้อง
·
หลังจากนั้นจะทำการ Train ไปเรื่อยๆและปรับค่า Model ไปเรื่อยๆ
จนใกล้เคียงข้อมูลจริงมากที่สุด
“Cost Function คืออะไร?”
จากขั้นตอนการทำงานของ Machine
learning จะเห็นว่าจะมีการเข้า Cost Function
แล้ว Cost Function คืออะไร
Cost Function คือ สมการในการหาค่าความ
Error ของ Model ที่ใช้ในการทำนาย(Predict)
ซึ่งค่า Cost Function ยิ่งมีค่ามากแสดงว่า Model
ที่ใช้ในการทำนาย(Predict) ยิ่งมีความ Error
มาก
ในสมการ Cost Function จะมีหลากหลายสมการที่ใช้ในการคำนวณหาค่า
Error ซึ่งในที่นี้เราจะใช้สมการที่เรียกว่า Mean Squared Error (MSE) โดยมีสมการดังนี้
หรือมองเป็นรูปภาพได้ดังนี้ครับ
“แล้วเราจะไปปรับค่า
Model อย่างไร?”
เนื่องจาก Model เราคือสมการเส้นตรง y=mx+b
ดังนั้นเราสามารถปรับค่า m และ b เพื่อให้ได้ค่า Cost Function ที่น้อยที่สุดที่เป็นไปได้
“แล้วเราจะรู้ได้อย่างไรว่าควรปรับค่า m เท่าไหร่ ปรับค่า b เท่าไหร่”
ในการปรับค่า m ค่า b เราจะพิจราณาจาก
Gradient Descent Derivation ในการปรับค่า m และ ค่า b โดยหลักการ Gradient Descent เป็นดังนี้ครับ
Gradient Descent คือ การหา Slop ที่ไล่ลงมารื่อยๆ จากรูปด้านล่างดังนึ้ครับ
จากรูปจะเห็นว่าเป็น
รูประฆังหงาย ที่เกิดจากการนำเอาค่า Cost Function ที่เราปรับ Model มาหลายๆครั้งมาคำนวณค่า
Cost Function แล้วเอามา Plot จะเกิดเป็นรูประฆังหงายดังรูป
โดยค่าที่อยู่ก้นระฆังนั้นจะหมายความว่าค่า Cost Function มีค่าเท่ากับ
0 หรือหมายความว่า model ที่ใช้ในการคำนวณนั้นมีความคลาดเคลื่อนจากข้อมูลจริงเป็น
0 หรือมีความแม่นยำมากๆในการทำนาย ดังนั้นจึงสรุปได้ว่า ถ้าค่า
Cost function ยิ่งอยู่บริเวณก้นระฆังมากเท่าไหร่แสดงว่า Model
นั้นย่อมมีความแม่นยำมาก
“แล้วเราจะรู้ได้อย่างไรว่าจะปรับค่า
m และ b ในสมการ y=mx+b เท่า
ไหร่บ้าง”
เราจะดูค่า แนวโน้มว่า m และ b ควรปรับเพิ่มขึ้นหรือปรับลดลงโดยดูจากความชันของจุดข้อมูลที่เราทำการ
Train แต่ละครั้ง
“แล้วเราจะดูความชันอย่างไร”
เราจะใช้คณิตศาสตร์ Calculus ในเรื่องของการหาอนุพันธ์(derivative) นั่นเอง โดยการหาอนุพันธ์ (derivative) ของฟังก์ชันใดๆ จะได้สมการความชันของฟังก์ชันนั้นๆ
ยกตัวอย่างการหาอนุพันธ์
สมมุติเรามีสมการ
หรืออาจจะเขียนใหม่ได้ว่า
ซึ่งสามารถนำสมการมาวาดกราฟได้ดังนี้
ทำการอนุพันธ์สมการ
จะได้
จะเห็นว่าสมการ
จะเป็นสมการที่บอกความชัน
ณ จุดใดๆ ของสมการ
เช่นเราต้องการรู้ความชัน
ที่ x = -5 เราก็เอาค่า x ไปแทนในสมการ
ซึ่งค่าความชันที่ได้เป็น -10 ดังรูป
หรือหากเราต้องการจะรู้ความชันที่
x=5 เราเอาค่า x ไปแทนในสมการ
ค่าความชันที่ได้เป็น 10 ดังรูป
จากตัวอย่างจะเห็นว่า
การหาอนุพันธ์ จะได้สมการที่บอกความชันของแต่ละจุดซึ่งความชันที่ได้จะมีค่า
เป็นจำนวนเต็มบวก หรือจำนวนเต็มลบ
โดย
ค่าเป็นจำนวนเต็มลบ จะหมายถึงกราฟมีความลาดชันลง
ค่าเป็นจำนวนเต็มบวก จะหมายถึงกราฟมีความลาดชันขึ้น
ซึ่งหากเรารู้ว่าค่าความชันเป็นจำนวนเต็มบวก
เราก็ต้องลดค่า x ลง
เพื่อให้เข้าใกล้ก้นรูประฆัง
แต่หากเรารู้ว่าค่าความชันเป็นจำนวนเต็มลบ
เราก็ต้องเพิ่มค่า x ขึ้น
เพื่อให้เข้าใกล้ก้นรูประฆังเช่นกัน
เราจึงเอาความชันนี่แหละมาประยุกใช้ในการปรับ
Model
จากที่เรารู้ว่าสมการในการตรวจสอบความคลาดเคลื่อนของ
Model ที่เรียกว่า Cost
Function ซึ่งเราใช้สมการที่เรียกว่า Mean Squared Error (MSE) ที่มีหน้าตาสมการดังนี้
เราก็เอาสมการดังกล่าวมาเข้าอนุพันธ์ก็จะได้
เราก็จะได้สมการที่ใช้ในการบอกความชันแล้วครับ
หลังจากเราได้สมการความชันของ
Cost Function แล้วเราก็จะเอาสมการดังกล่าวมาใช้ในการปรับค่า
m และ b ครับ
เพื่อให้เข้าใจในการทำงานมากขึ้นจะมีการทำงานของ
Machine learning ดังนี้
Feature ในที่นี้พื้นที่ (m2)
|
Label ในที่นี้คือค่าเช่าหอต่อเดือน (บาท)
|
22.5
|
2100
|
24
|
2800
|
26
|
3250
|
26.5
|
3600
|
30
|
3800
|
32
|
4300
|
34.5
|
4600
|
36.5
|
5000
|
38
|
5800
|
42
|
7000
|