[แชร์ประสบการณ์] โค้ดชิวๆ: หัดเขียน A.I. แบบ AlphaGo กันแบบชิวๆ

เมื่อวันที่ 25 เมษายน ที่ผ่านผมได้มีโอกาสได้ไปร่วมงาน
โค้ดชิวๆ: หัดเขียน A.I. แบบ AlphaGo กันแบบชิวๆ


บัตรขายดีมากกก ซื้อแทบไม่ทัน
สถานที่ : LuanchPad สุรศักดิ์

13076907_1083376588372846_7902305078452684861_n
จัดโดย สมาคมโปรแกรมเมอร์ไทย

โดยผู้ที่มาแชร์ความรู้กับพวกเราคราวนี้คือ พี่ กานต์ อุ่ยวิรัช จาก Pronto Tools

image

เริ่มต้นด้วยการพูดถึงตัว Machine Learning แบบพื้นฐานสุดๆ
การ Generalize ข้อมูลต่างๆ

แนะนำประเภทของ Machine Learning ให้ได้รู้จักกันแบบคร่าวๆ
– Supervied Learning
– Unsupervise Learning เราไม่บอก lable มัน ให้มัน Classify ให้
– Reinforcement Learning เปรียบเทียบกะการฝึกสัตว์เลี้ยง

ต่อมาก็ถึงพระเอกของเรา AlphaGo คืออะไร
AlphaGo คือ AI ที่ใช้เล่นโกะ ทีนี้มันต่างกะคนอื่นอย่างไร หมากรุก เรามาสารถ Brute Force ได้ด้วยความสามารถของ PC ได้ แต่โกะ มีความเป็นไปได้มากกว่านั้น (ว่ากันว่าความเป็นไปได้นั้นมากกว่าจำนวนอนุภาคบนโลก) จึงต้องมีอัลกอลิทึ่มในการตัดสินใจว่าจะใช้การเดินแบบไหน จึงมีการนำ Deeplearing มาเทรน โดยนำ Supervise learing มาใช้ Reinforcement Learning มาพัฒนาด้วยการแข่งกับตัวเอง มีการ Simulate โดยใช้ Monte Carlo Method

เรียนรู้การเขียน OX กัน
เริ่มจากการเขียนโดยใช้ Minimax Decistion กันก่อน
Minmax คือ โครงสร้าง Tree ที่ Recursive ไปเรื่อยๆ โดยมีการให้คะแนน ถ้าถูกต้อง ให้แต้ม O ชนะ -1 X ชนะ +1 เลือก MAX Reccu หา Min, Min Reccu หา MAX

Coding Time
https://github.com/zkan/tictactoe
move หา Acction ทั้งหมดก่อน

Alpha-Beta Pruning จะเก็บแทร็ค Alpha Beta ไว้ A node max update มัน หาค่า Max ที่ดีที่สุด(เริ่มที่ค่าที่น้อยที่สุด) Beta=~Alpha ถ้ามันหาค่าที่น้อยกว่า min ไม่ได้แล้วมันจะพรุนทิ้ง วิธีนี้ไม่ช่วยในการเดิน Go

Reinforcement Learning(RL)
y = f(x),z
หมานั่งอยู่นิ่งๆ ถ้ามันหยิบของ
Agent ทำ Act ได้ Reward(รางวัลที่ได้ใน ST นั้น) ละ State(สภาพ Agent)

Policy(Lookup Table)
Agent พยายามหา Optimum Policy

Google Deepmind ก็เลยใช้ Deep Q-learning มาทำ AI โดยเริ่มจากเล่นเกม(Research จะดูว่าลองกี่ Trial ยิ่งน้อยยิ่งดี)

image

ในงานมีการให้ลองเล่น Mystery Game ด้วยยยย
เป็นการจำลองสิ่งที่ Agent ทำให้มนุษย์เข้าใจ ใช้ Explo
Q-Learing ดี Q มีค่ามากขึ้น take action เอา Q ที่ดีขึ้น
ค่อยๆจูน Learning Rate Discount factor คือจุดหมาย
พูดถึงเรื่องการให้ Reward อัพเดท Lookup Table(Q) ไปเรื่อยๆ
เราใส่ Planing เข้าไป ทำให้มันฉลาดขึ้น

Slide ในงานครับ : http://www.slideshare.net/zkan/ai-alphago

ขอบคุณพี่กานต์ และสมาคมโปรแกรมเมอร์ไทย มากๆนะครับที่ช่วยจัดงานนี้ขึ้นมา ขอให้จัดต่อๆไปอีกครับผม
ขอบคุณพี่ๆ เพื่อนๆ น้องๆ ห้องแลป SAIG : Software and Application Interested Group @KMITL ที่อุปการะค่าบัตรเข้างานเพื่อนำความรู้มาแบ่งปันกันครับ

Join the Conversation

1 Comment

Leave a comment

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: