Page 199 - python
P. 199
173
ตัวอยางที่ 12.14 การสรางโมเดลจากโครงขายประสาทเทียมที่สรางขึ้น
def predict(x1,x2):
w1 = 0.5
w2 = 1.7
theta = 1.80
z = x1*w1 + x2*w2 - theta
if z >=0: return 1
else: return 0
print(predict(0,0))
print(predict(0,1))
print(predict(1,0))
print(predict(1,1))
ตัวอยางที่ 12.14 การสอนโมเดลเพื่อตองการคาน้ําหนักที่มีคาความผิดพลาดนอยที่สุดแลวนําคา
น้ําหนักเหลานั้นสรางเปนสูตรเพอทํานายผลลัพธของขอมูล โดยในตัวอยางนี้คือการแกปญหาของ AND
ื่
ี
Gate พบวาภายหลังการ train model ไดผลลัพธที่รอบที่ 16 คาน้ําหนักไมมการเปลี่ยนแปลง ตัวแปร
ั
ื
ํ
ั
w1 = 0.5 ตวแปร w2 = 1.7 และตวแปร theta = 1.80 นามาสรางสตรการคานวณ คอ x1*w1 + x2*w2
ู
ํ
- theta เมื่อผลลัพธมีคามากกวาหรือเทากับ 0 ใหคืนคาเปน 1 หากไมใชใหคืนคาเปน 0 เขียนสูตรลงใน
ิ
ฟงกชั่น predict(x1,x2) โดยรับอารกมเมนต 2 ตัว คือ x1 และ x2 จากนั้นทําการเรียกฟงกชั่น predict()
ี
โดยปอนอารกิวเมนตใหมคา (0,0) (0,1) (1,0) และ (1,1) พบวาผลลัพธมีคา 0, 0, 0 และ 1 แกปญหา
And Gate ไดถูกตอง 100%
12.11 Gradient Descent
Gradient Descent คือ กระบวนการคนหาคาของตัวแปร weight และ bias ที่ทําใหฟงกชั่น
( ) หรือ cost function มีคาต่ําสุดโดยไมใชวิธีการแกสมการหลายตัวแปร แตใชการเคลื่อนทตามแนว
ี่
ความชนของสมการซึงทางานไดรวดเรวและมประสิทธภาพ
็
ั
่
ี
ิ
ํ
พิจารณาสมการพาราโบลา ( ) = ( + 2) + 3 ตองการหาคาตัวแปร x ที่ทําใหคา y ต่ําสุด
ซึ่งจะใชแคลคูลัส คือ ( ) = 0 เมื่อ คือ ความชัน ณ จุดใด ๆ เมื่อความชัน = 0 คือเปนเสนตรง
ขนานกับแกน x วิธีการหาจุดต่ําสุดของสมการ คือการหาอนุพนธของฟงกชั่น ในตัวอยางนี้มีคาเทากับ
ั
2 + 4 แกสมการหาคา = −2 ดังนั้น คา x ที่ -2 จะทําใหคา y ต่ําสุด