Supervised Learning
Supervised ML คือ การเรียนรู้โดยที่มี Dataset เเละ Answer จะพูดตามหลักคณิตศาตร์ก็คือ ถ้ากำหนด x,x1,x2,…. คือ Input ข้อมูลที่เราจะรับมา เเละ f(x,x1,x2,….) ฟังชั่นการทำของของ ML จะได้ว่า f(x,x1,x2,….) = y ซึ่ง y คือ Answer นั่นเอง
เเล้วมันคือยังไง
การที่เรามี Answer อยู่นั่นสามารถหาความสัมพันธ์ระหว่างข้อมูลได้เป็นฟังชั่น
f(x,x1,x2,….) = y ตามที่ได้กล่าวไว้
ตัวอย่าง
ในการ Predict ราคาของแร่ชนิดหนึ่ง เรามีข้อมูลที่ได้มา
(ตัวอย่างข้อมูล จากการ Random โดยสมองน้อยๆ โดยเเถวเเรกคือ น้ำหนักของแร่ เเถวที่สองคือราคา)
เเล้วถ้าน้ำหนัก n จะมีราคาเท่าไหร่ ???
ข้อมูลที่กล่าวมาเราสามารถไปพล็อตเป็นกราฟได้ดังนี้
ดูจากกราฟ เเล้ว ราคาน่าเพิ่มขึ้นเป็นเส้นตรง ( ในกรณีนี้เท่านั่น ) โดยสมการเส้นตรงก็คือ
y = c + mx
เเต่เราจะเเทน c เเละ m ด้วย θ0 เเละ θ1
จะได้ว่า y = (θ0) + (θ1)x
“ สิ่งที่เรา ( ML ) ต้องทำก็คือการหาค่าที่เหมาะสมสำหรับ θ0 เเละ θ1 ”
หากหาได้เเล้วเราจะได้กราฟ เส้นตรง ซึ่งกราฟเส้นตรงนี้คือ f(x) เพื่อหาค่า y ด้วย x ใดๆ
สมการของเส้นตรงนี้จะประมาณนี้
f(x) = y = -58.15 + 62x
ลองเเทนค่า x = 5 ; f(x = 5) = 251.85
เเละ x = 10 ; f(x = 10) = 561.85
*** ความเเม่นยำของการ Predict จะขึ้นอยู่กับข้อมูลได้มา เเละตัวแปรต่างๆที่ใช้
Cost Function
ประโยชน์Cost Function นั้นเอาไว้คำนวณว่า θ0,θ1 ที่เราใช้อยู่นั้นมีความเหมาะสมขนาดไหนหากค่า Cost ของเราเยอะหมายถึงไม่เหมาะสมอย่างมาก ควรจะเปลี่ยนใหม่ เเละยิ่ง Cost น้อยเเสดงว่า θ0,θ1 ของเราเหมาะสมที่จะนำไปใช้งานต่อ
ตัวอย่างข้างต้นใช้วิธี Linear regression ในการหาสมการดังกล่าว โดยการหาค่า θ0 เเละ θ1 ด้วยสมการด้านล่าง
โดยสมการนี้จะทำให้ได้ค่า θ0 เเละ θ1 ที่เหมาะสมหากเราวนทำสมการนี้ซ้ำๆ (Iterations) เป็นจำนวนที่เหมาะสมเเละกำหนด α (learning rate) ของสมการของเราที่เหมาะสมยิ่งทำให้ได้ผลลัพท์ที่ดีไปด้วย(ใช่ครับกำหนดเองล้วนๆ) เดี๋ยวเราจะเจาะลึกใน Section ของ Linear Regression
ในสมการนี้เรานำ Answer มาใช้ในการคำนวน Cost Function ( J(θ0,θ1) ) หรือความแม่นยำของ hypothesis ของเรา (ศัพท์เริ่มเยอะขึ้นทุกที 555+) ซึ่งสมการเต็มๆของมันคือ
ซึ่ง h(x) คือ hypothesis หรือก็คือ ฟังชั่นจำลอง y = (θ0) + (θ1)x ที่เราลองเติม θ0,θ1 ของเราลงไปในการ Iteration เเต่ละครั้ง
เเล้วเราจะไล่เก็บค่า Cost ของของการ Iteration ของครั้งนั้นโดยการเเทนค่า (x,y) ใน Dataset ทั้งหมดตั้งเเต่ 1 ถึง m (จำนวนข้อมูลทั้งหมด) Cost ของ hypothesis ที่เราจำลองขึ้นมาทั้งนี้เพื่อนำไปเปลี่ยนแปลง θ0,θ1 ของเราให้ถูกต้องยิ่งขึ้น
“ยิ่งค่า Cost เยอะ จะทำให้ θ0,θ1 เปลี่ยนแปลงไปเยอะ เช่นกันยิ่งค่า Cost น้อย จะทำให้ θ0,θ1 เปลี่ยนแปลงไปน้อย”
Gradient Descent
เราจะนำ Cost function ของเรามาใช้ประโยชน์ในการเปลี่ยนแปลงค่า θ0,θ1 ให้เหมาะสมด้วย Gradient Descent
Gradient Descent เป็น algorithm การ Train รูปเเบบหนึ่ง ที่ทำให้ค่า Cost function มีค่าน้อยที่สุด ( ถ้าไม่มีอะไรผิดพลาด 555 ) โดยหน้าตาของมันจะเป็นประมาณนี้
ก่อนอื่นขออธิบายหลักการของมันก่อน
โดยเราจะมีกราฟสามมิติ ที่มีแกน θ0,θ1 เเละ J(θ0,θ1) เป็นกราฟที่โชว์ว่าช่วงค่าใดที่เหมาะสมที่สุดโดยยิ่งส่วนไหนเป็นสีดำ แปลว่าช่วงนั่นยิ่งให้ทำให้ค่า Cost นั้นน้อย ( ซึ่งเป็นผลดี )
#กราฟสามมิตินี้อาจจะไม่เหมือนกันเเล้วเเต่งาน
การทำงานจะเป็นอย่างนี้
- เเทนค่า θ0,θ1 ลงใน hypothesis
- คำนวณ J(θ0,θ1) หรือ Cost Function
- ทำการ derivative Cost Function เพื่อหาอัตตราการเปลี่ยนแปลงของ Cost Function
- อัพเดทค่า θ0,θ1 ใหม่
โดยการ Iteration แต่ละครั้งควรจะทำให้ Cost Function นั้นลดลง ( ดูที่กราฟ Gradient Line) เพื่อไป Converge (บรรจบ) ที่จุดต่ำสุดหรือจุด Lowest Cost
α (learning rate) มีไว้ทำไม ?
α (อัลฟา) มีไว้สำหรับการที่กันไม่ให้ Gradient line หลุดออกนอกกราฟ เพราะบางทีอัตราการเปลี่ยนแปลงของ Cost Function อาจจะทำให้ θ0,θ1 หลุดออกนอกกราฟได้ เราควรมีการกำหนดค่า α ให้เหมาะสมโดยค่าที่นิยมใช้จะอยู่ที่ ( 0.01 , 0.03 , 0.1 ,0.03 , 1 ) ทั้งนี้ α ยังทำให้การ Gradient มีประสิทธิภาพมากขึ้นในกรณีที่กราฟนั้นเป็นกราฟที่รูปร่างไม่ค่อยสวยนัก เอาเป็นว่าเราสามารถเปลี่ยน α หากการค่า Cost Function ของเราไม่ดีนัก
Summary
Supervised ML คือ การที่เราหาความสัมพันธ์ระหว่าง Dataset เเละ Answer เป็นฟังชั่นทางคณิตศาตร์มาเป็นตัว Predict ข้อมูลต่างๆที่เราต้องการ โดยในการหาฟังชั่นนั้นเราจะนำ Answer มาเป็นตัวหาค่า Cost Function เพื่อบ่งบอกว่าความสัมพันธ์ของเรา ณ ตอนนั้นเป็นยังไงเเละควรจะไปต่อในเเนวทางไหน นั้นเอง
Next Topic :: Linear Regression ⏩ Here