28 ก.ย. 2019 เวลา 14:43 • วิทยาศาสตร์ & เทคโนโลยี
ทำไมหนอ AI ถึงสามารถเรียนรู้เรื่องต่าง ๆ ได้เอง (Part 1)
Cr: semiconductors.org
จำโนเกีย 3310 ได้ไหม. . .
แล้วจำความยากของ "เกมส์งู" ได้หรือเปล่า?
วันนี้เราลองมาดูกันว่า "AI" สามารถชนะ "เกมส์งู" เองได้ยังไง
AI เรียนรู้ที่จะเล่นเกมส์งูได้ยังไง?
จริง ๆ แล้วเราไม่ต้องสอนอะไรมัน แค่ปล่อยงู AI ออกไปลองผิดลองถูก และส่งต่อความสามารถให้กับงู AI ในรุ่นต่อ ๆ ไป 😎
ซึ่งเมื่อไม่กี่วันที่ผ่านมาผู้ใช้งาน Youtube ชื่อ Chrispresso ได้ Up วีดีโออธิบายวิธีที่ทำให้ AI สามารถเรียนรู้ที่จะเล่นเกมส์งูเองโดยที่เราไม่ต้องสอนมันเลย
** กติกาเกมส์งู **
ง่าย ๆ บังคับงูไปกินแอปเปิ้ล พอได้กินตัวก็จะยาวขึ้น แต่ถ้าบังคับไปชนกำแพงหรืองับตัวเองก็ตาย "Game Over" ถ้ากินจนงูเต็มจอได้ คุณชนะ!!
1
เกมส์งูสุดควาสสิค Cr: raspberrypi.org
สำหรับการสร้างให้ AI เรียนรู้เองได้เราจะใช้สิ่งที่เรียกว่า Neural Network กับ Genetic Algorithm ในการทำให้เหล่าประชากร " งู AI " ได้เรียนรู้วิธีการเล่นเกมส์
ด้วยการเลียบแบบการทำงานของเซลประสาทในร่างกายเราที่ทำงานสอดประสานกันเป็นโครงข่าย
Neural Network จะประกอบด้วย การเชื่อมโยงกันระหว่าง Node
จากรูป Node หนึ่ง ๆ จาก Layer (แถว) แรกจะสามารถเชื่อมโยงไปได้ทุก Node ในแถวที่ 2 โดยเส้นที่เชื่อมโยงจะมี 2 สี
สีแดงหมายถึงเชื่อมต่อกันไม่ได้ ส่วนสีฟ้าเชื่อมต่อได้
Neural Network จะมี 3 layer หลัก อันได้แก่
1. Input Layer
2. Hidden Layer ซึ่งสำหรับ AI งูนี้จะมี 2 ชั้น
3. Output Layer
โดย Hidden Layer นั้นคือชั้นสำหรับการเรียนรู้สำหรับ AI
เมื่อ AI ได้ข้อมูลจาก Input Layer (จุดสีเขียว) ระบบก็จะเชื่อมต่อมายัง Learning layer (จุดสีฟ้า)
ยิ่งสีฟ้าสว่างมากแสดงว่ามีแนวโน้มในการส่งสัญญานต่อมาก และจะส่งสัญญานไปสู่ Node ใน Layer ถัดไปเรื่อยๆ จนเป็น Output ในที่สุด
สำหรับ AI เล่นเกมส์งูนี้ Output จะมีได้แค่ค่าเดียว ก็คือหัวงูจะหันไปทางไหน
ในส่วน Input Layer ข้อมูล Input จะได้รับจากเซนเซอร์ ซึ่งแบ่งเป็น 3 ส่วน
- ส่วนการมองของงู (Vision)
- ทิศการเคลื่อนที่หัวงู (Direction)
- ทิศการเคลื่อนที่หางงู (Tail Direction)
Direction และ Tail Direction เป็นข้อมูลแบบที่มีหลายทางเลือก แต่มีข้อมูลเกิดได้แค่ค่าเดียว
เช่น หัวงูไปได้ 4 ทิศ ได้แก่ บน ล่าง ซ้าย ขวา แต่จากรูปนี้ หัวงูเลี้ยวซ้ายอยู่ ส่วนหางงูกำลังวิ่งขึ้น
และตอนนี้ " งู AI " ก็ยังตัดสินใจจะไปทางซ้ายต่อ (Output)
สำหรับการมอง (Vision) เราสามารถกำหนดทิศการมองได้เป็น 4, 8, หรือ 16 ทิศ รอบหัวงูตามรูป
โดย Vision สามารถมองเห็นข้อมูล Input ได้ 3 อย่างคือ
1. ระยะห่างจากกำแพง (โดนกำแพงคือตาย)
2. การมีหรือไม่มีแอปเปิ้ลในทิศที่มอง (กินแอปเปิลเพื่อให้ได้คะแนน)
3. มีหรือไม่มีส่วนของตัวงูอยู่ในทิศที่มอง (งับตัวเองไม่ได้ ตาย)
ซึ่งข้อ 2 และ 3 นอกจากกำหนดค่ารับรู้เป็น ใช่หรือไม่ใช่ ยังสามารถกำหนดเป็นค่าระยะ เช่นเดียวกับข้อ 1 ก็ได้ ซึ่งจะมีผลต่อวิวัฒนาการของ AI (ไว้จะมาพูดถึงในส่วนของผลการทดสอบ)
จากรูป ตัวงูเริ่มที่ 3 ช่องสีแดง แอปเปิ้ลคือสีเขียว หัวงูคือช่องที่มีขีดการมอง 8 ทิศ จะเห็นได้ว่าหัวงูกำลังวิ่งไปทางซ้ายและหางวิ่งขึ้นบน
สำหรับการมอง 8 ทิศ Input จะมีทั้งหมด 24 ตัวแปร ไล่จากทิศการมอง V0 ไป V7 หมุนตามเข็มนาฬิกา
และนี่ก็คือ Neural Network ของ AI เล่นเกมส์งูตัวนี้
Cr: medium.com
โดย Neural Network นั้นสามารถนำมาประยุกต์ใส่ Hidden Layer ซ้อนเพิ่มให้เหมาะกับลักษณะงานที่ต้องการให้ AI เรียนรู้
ในตอนต่อไปจะมาพูดถึง Genetic Algorithm อีกหนึ่งกลวิธีที่ใช้การเลียนแบบธรรมชาติและเป็นอีกส่วนสำคัญที่ทำให้ AI นั้นสามารถวิวัฒนาการได้เหมือนกับสิ่งมีชีวิต 😉
เครดิตรูปอื่น ๆ: Cap จากวีดิโอใน link

ดูเพิ่มเติมในซีรีส์

โฆษณา