Basic Data Science : Support Vector Machine (ตอน 1 )

หากมีจุดสามจุดดังนี้ a=[4,6],b=[8,8],c=[4,8]
และสมการ Hyperplane
 w^x^=0 
w^=[0.51.010.0] 
x^=[x1x21]

นำเอา a,b,c แทนเข้าไปในสมการ Hyperplane ได้ผลดังนี้
a = [4,6] [0.51.010.0][461]=4
b = [8,8] [0.51.010.0][881]=2
c = [4,8] [0.51.010.0][481]=0

สังเกตุเครื่องหมายของผลลัพธ์ของสมการหลังจากผ่านข้อมูลจุด a,b,c  ออกมาเป็น ,+,0 ตามลำดับ เมื่อนำไป plot  

รูปที่  1


จากรูปที่ 1 แสดงให้เห็นว่า ถ้าค่าของสมการ Hyperplane ออกมาน้อยกว่า 0 จุดอยู่ใต้เส้น หากมากกว่า 0 จะอยู่เหนือเส้น และหากเท่ากับ 0 จะอยู่บนเส้น สรุปออกมาได้ดังรูปที่  2

รูปที่ 2 


พิจารณารูปที่ 2  ถ้าหากถูกขอให้พิจารณาความมั่นใจในการแยกจุด C ออกจากจุด A  และการแยกจุด B ออกจากจุด A น่าจะได้คำตอบว่า การแยกจุด C ออกจากจุด A จะให้ความมั่นใจสูงกว่า ทั้งนี้เพราะเรามองได้ชัดว่าระยะห่างระหว่างจุด C กับ Hyperplane มากกว่ากว่าจุด B

เราทราบแล้วว่าการใช้ สมการ hyperplane ร่วมกับ hypothesis function สามารถใช้แบ่งกลุ่มข้อมูลได้ คำถามที่เกิดขึ้นคือหากเรามี hyperplane มากกว่า 1 hyperplane แล้ว เราควรเลือก hyperplane ไหนที่เหมาะกับ data set ที่มีอยู่

รูปที่ 3


ระยะทางระหว่างจุดกับเส้นตรง สามารถหาได้จากสมการ [1]

D=ax1+bx2+ca2+b22(1)

รูปแบบของสมการ vector

 D=wx+b∣∣w∣∣(2)

พิจารณาสมการ (2) จะเห็นว่า เมื่อนำค่าจาก  data set มาแทนค่าลงสมการที่ละจุดไปเรื่อย ๆ ค่าที่ออกมานั้นก็คือระยะห่างระหว่างจุดที่เป็นตัวแทนของข้อมูลกับเส้น hyperplane  (การนำเอาค่า  ∣∣w∣∣ ซึ่งเป็นค่าคงที่ไปหารก็คือการทำ normalize ค่าของระยะทาง) ค่านี้ต่อไปจะเรียกว่า "margin"

หากเปรียบการหา hyperplane เป็นการสร้างถนนคั่นระหว่างข้อมูลสองกลุ่ม เราก็กำลังพยายามสร้างถนนให้กว้างที่สุดเท่าที่จะทำได้ แต่ต้องไม่กว้างเกินไปจนไปทับอยู่บนตัวข้อมูล

เราสามารถทดสอบได้โดยการนำเอา data set มาทดสอบกับ hyperplane ทุก hyperplane ซึ่งจะได้ค่าของ hyperplane ออกมา เลือกค่าที่น้อยที่สุดของแต่ละ hyperplane มาเทียบกัน แล้วเลือก hyperplane ที่ให้ค่ามากที่สุดเป็น hyperplane ที่เหมาะสม

รูปที่ 4

ดูตัวอย่าง

dataset=[1,3],[2,5],[2,7],[4,4],[4,6],[7,5],[8,3],[4,8],[4,10],[7,10],[7,9],[8,8],[9,7],[10,10]

สมการ hyperplane :

β1=(0.5,1.0)(x1,x2)10
β2=(0.3,1.0)(x1,x2)8
β3=(0.7,1.0)(x1,x2)10

ค่า minimum ของแต่ละ hyperplane :
β1=0.00
β2=0.38
β3=0.08

ได้ว่าสมการ hyperplane ที่สองให้ค่าสูงสุดจากค่า margin ที่มากที่สุดในสามค่าที่ได้ ดังนั้น hyperplane ที่สองจึงเป็น hyperplane ที่เหมาะสมที่สุด


hyperplane ที่ 1 และที่ 3 ให้ผลของการแบ่งข้อมูลได้ไม่ค่อยดีนัก จะเห็นว่ามีข้อมูลบางส่วนไปอยู่บน hyperplane


hyperplane ที่สองให้ภาพการแบ่งกลุ่มข้อมูลที่ดีกว่า ไม่มีข้อมูลไปอยู่บน hyperplane

แสดง hyperplane ที่เหมาะสมพร้อม margin

Hyperplane ที่เหมาะสมควรให้ค่า margin ที่มากที่สุดเมื่อแทนที่ด้วย data set ที่มีอยู่
βi=w^ix^i,i=1,2,3,..,n
B=min(βi) 
เลือก hyperplane ที่ให้ค่า max(Bi)



เอกสารอ้างอิง
[1] https://smarter-machine.blogspot.com/2018/07/perpendicular-distance-from-point-to.html

ความคิดเห็น