AND Gate Neuron อย่างง่าย กับ Artificial Neural Network
Workshop นี้แสดงตัวอย่างการสร้าง Neuron และสอนให้เรียนรู้จน Neuron กลายเป็น AND Gate โดยใช้ Neuron อย่างง่าย และใช้วิธีคำนวณด้วยมือ ชุดข้อมูล Dataset ที่ใช้สอนคือ คุณสมบัติของ AND Gate ดังตาราง โดยที่ขา Iput ทั้งสอง เทียบได้กับ Feature Input x1, y1และค่าเป้าหมายหรือ target คือค่าที่ต้องการให้ Neuron เรียนรู้
- ถ้า Input เป็น 1,1 ค่า Output y (ที่ต้องการ) =1
- ถ้า Input ขาใดขาหนึ่งเป็น 0 ค่า Output y จะมีค่าเป็น 0 (สรุป x1x2 เป็น Feature ส่วน y เป็น target)
w0 = -.5
x = [[1],
[1]]
x = [[0],
[1]]
# W = weight
W = [[.4, .4]]
W = np.array(W)
x = np.array(x)
s = w0 + np.dot(w, x)
print(s)
Code language: Python (python)
รอบที่ 1:
ปกติแล้ว ค่า weight และ bias (wo) เริ่มต้นจะใช้วิธีการสุ่ม เพราะยังไม่รู้ว่าค่าใดเหมาะสม ที่สุด (เหมือนกับกรณีสุ่มยิงบอล) แต่เพื่อให้รวดเร็วขึ้น ตัวอย่างนี้สมมุติว่านำค่า weight และ bias
(wo) จาก Workshop 1 มาทำต่อ และใช้การคำนวณเหมือนที่ผ่านมา จะได้ผลลัพธ์ดังตารางจะเห็นว่าการทดลอง มีผิด 2 เคส ถูก 2 เคส เท่ากับว่ามี Loss หรือ Error ดังนั้น วิธีการจะ ต้องกลับไปปรับ weight แล้วประมวลผลแบบเดิมใหม่ (การกลับไปปรับค่า เรียกว่า Backpropa-gation ที่กล่าวไปแล้ว ถ้าเปรียบเทียบกับยิงลูกบอลคือ ลงตะกร้า 2 ครั้ง และไม่ลง 2 ครั้ง หรือกาทอดไข่ ก็คือใช้ได้ 2 ครั้ง ใช้ไม่ได้ 2 ครั้ง ฯลฯ)
w0 = -0.5 , w1 = 0.5 , w2 = 0.5 , to = 0
รอบที่ 2:
ได้รับรู้ Error จากรอบที่ 1 มาปรับเปลี่ยนค่า weight สมมุติว่าใช้วิธีลองลดค่า weight ลง 0.1 แล้วทำการคำนวณใหม่ จะได้ดังนี้ (ถ้าเป็นกรณีบอล ก็ทดลองยิงใหม่ แต่กรณีคอมพิวเตอร์ใช้ประมวลผลตามสมการ Sum ที่กล่าวไปแล้ว)
w0 = -0.5 , w1 = 0.4 , w2 = 0.4 , to = 0
จะเห็นว่าผลลัพธ์ตอนนี้ถูกต้องทั้งหมด ไม่มี Error แล้ว ดังนั้นไม่ต้องย้อนกลับไปปรับคำ weight อีก เท่ากับว่า Neuron หรือ Perceptron นี้ได้ทำการสอนหรือ Train เรียบร้อยแล้วจากตัวอย่างเป็นการยกค่าง่าย ๆ ทำสองรอบเสร็จ แต่ในทางปฏิบัติ ต้องย้อนกลับไปทำหลาย
ครั้ง บางทีเป็นร้อย ๆ ครั้งจนกว่าจะได้ Output หรือ y ตรงกับ Target ที่ต้องการ