เบื้องหลังการพัฒนา AlphaGo โดย David Silver จากทีม DeepMind

by shyyonk
25 March 2016 - 02:56

โชคดีที่เมื่อวานนี้ผมมีโอกาสเข้าฟังสัมมนาหัวข้อ "AlphaGO: Mastering the game of Go with deep neural networks and tree search" โดยวิทยากรคือ Dr. David Silver จาก DeepMind ซึ่งเป็นบุคคลสำคัญในทีมวิจัยและพัฒนา AlphaGo จาก Google DeepMind

David เป็นหนึ่งในผู้เขียนบทความวิชาการชื่อเดียวกันกับหัวข้อสัมมนา ซึ่งอธิบายเทคนิคเบื้องหลังความสำเร็จของ AlphaGo และได้ตีพิมพ์ในนิตยสาร Nature เมื่อไม่กี่เดือนที่ผ่านมา (คนซ้ายสุดในภาพ)

สัมมนานี้จัดโดย Centre for Computational Statistics and Machine Learning (CSML) ที่มหาวิทยาลัย University College London (UCL) ครับ

แก้ไข: นำรูปภาพออกสไลด์ออกทั้งหมดเนื่องจากผู้เขียนได้รับอีเมลแจ้งเตือนว่าห้ามเผยแพร่ภาพสไลด์ครับ จึงเปลี่ยนบางภาพเป็นภาพจากบทความที่ตีพิมพ์แทน

วันนี้ David Silver มาเล่าเรื่องราวรวมๆ หลายเรื่องทั้ง 1) เทคนิคที่อยู่เบื้องหลังการทำงานของ AlphaGo 2) การพัฒนาขึ้นอย่างก้าวกระโดดของ AlphaGo หลังจากชนะการแข่งขันกับ Fan Hui และ 3) วิสัยทัศน์ของเขาว่าความสำเร็จของ AlphaGo จะสามารถนำไปประยุกต์ใช้ในด้านไหนได้บ้าง

ทำไมต้องเป็นหมากล้อม (Go)?

เหตุผลที่เลือกหมากล้อม เพราะเป็นเกมที่มีความเป็นไปได้ของทางเลือกมากมายมหาศาลถึง 10^170 แบบ ด้วยความสามารถในการประมวลผลของคอมพิวเตอร์ในปัจจุบัน ยังเป็นไปไม่ได้ในทางปฏิบัติที่จะสามารถคำนวณความเป็นไปได้ทั้งหมดให้ทันในการเล่นจริง จึงทำให้เป็นเกมที่มีความท้าทายสูงมากที่จะทำให้คอมพิวเตอร์เล่นได้เท่าเทียมกับมนุษย์เนื่องจากวิธีการค้นหาความเป็นไปได้ทั้งหมดเหมือนที่ใช้ในหมากรุกนั้น ไม่สามารถนำมาใช้ได้

ระหว่างบรรยายมีการเปิดวิดีโอให้ดูด้วยว่า หากเราแสดงตาเดินที่เป็นไปได้ทั้งหมดในการเล่นโกะหนึ่งตาออกมาเป็นแผนภูมิต้นไม้จะเป็นอย่างไร แน่นอนว่าเยอะแยะมากมายมหาศาลจนดูกันไม่ทันเลยทีเดียว

เบื้องหลังการทำงานของ AlphaGo

ส่วนนี้ขออธิบายคร่าวๆ เนื่องจากผมไม่ได้เป็นผู้เชี่ยวชาญด้าน Machine Learning (ยอมรับว่าฟังไปก็เข้าใจบ้างไม่เข้าใจบ้าง) และก็มีบทความเกี่ยวกับเรื่องนี้พอสมควรแล้ว แต่หลักๆ คือ AlphaGo อยู่บนพื้นฐานของเทคนิคที่เรียกว่า Convolutional Neural Network และมี neural network 2 แบบที่สนับสนุนการตัดสินใจ นั่นคือ Policy network และ Value network โดยมีลำดับขั้นตอนในการเทรนเจ้าสองเน็ตเวิร์คนี้หลายขั้นตอนด้วยกัน ทั้งการศึกษาจากบันทึกการเล่นหมากของนักเล่นโกะมืออาชีพ (supervised learning) และการฝึกโดยการแข่งกับตัวเอง (self-play + reinforcement learning)

ด้วยการฝึกฝนแบบนี้ ทำให้ AlphaGo สามารถเอาชนะโปรแกรมอื่นที่สร้างมาเพื่อเล่นโกะเช่นเดียวกัน (CrazyStone, Zen, Pachi, Fuego, GnuGo) ได้อย่างขาดลอย

เพื่อทดสอบ DeepMind จึงได้จัดการแข่งขันกับคนจริงที่เป็นแชมป์ยุโรป Fan Hui และชนะไปอย่างขาดลอย 5-0 ดังที่ทุกคนน่าจะได้ทราบกันดี

เกิดอะไรขึ้นหลังจากแข่งกับ Fan Hui?

David อธิบายว่า AlphaGo ตัวที่แข่งกับ Fan เป็นตัวเดียวกับที่เขียนลงในนิตยสาร Nature แต่เป็นคนละตัวกับที่ใช้แข่งกับ Lee Sedol ครับ

หลังจากชนะ Fan แล้ว DeepMind กลับมาพัฒนา AlphaGo เพิ่มอีก (แต่ David ไม่ได้อธิบายลงรายละเอียดนัก อาจจะเก็บไว้เขียนอีกหนึ่งบทความก็เป็นได้ ผมฟังออกได้ประมาณว่าพัฒนาเพิ่มเติมในส่วนของ self-play ให้ดียิ่งขึ้น) แต่แสดงกราฟเปรียบเทียบให้เห็นว่า AlphaGo เวอร์ชั่น Lee Sedol เก่งขึ้นกว่าเวอร์ชั่น Fan Hui อีกเยอะเลยทีเดียว (สามารถเอาชนะ AlphaGo เวอร์ชั่น Fan Hui ได้โดยให้แต้มต่อ 4 หมาก) เมื่อถึงจุดนั้น DeepMind จึงจัด Challenge เพื่อท้าแข่งกับ Lee Sedol นั่นเองครับ

David แสดงรายละเอียดเปรียบเทียบที่น่าสนใจหลายอย่างระหว่าง Lee กับ AlphaGo ซึ่งเขาก็ให้เครดิตกับ Lee มากทีเดียวว่า Lee มีสมองที่มหัศจรรย์มาก เมื่อเทียบกับพลังประมวลผลที่ AlphaGo จะต้องใช้ สังเกตว่าทั้งคู่ใช้เวลาฝึกฝนเท่าๆ กันพอดีครับที่ 30,000 ชั่วโมง (สำหรับ AlphaGo คือชั่วโมงของ GPU ที่ใช้ในการเทรน AlphaGo)

วิเคราะห์ 5 เกมกับ Lee Sedol

David อธิบายพร้อมแสดงกราฟของ evaluation value ที่ AlphaGo ใช้ในการตัดสินใจว่าตนจะชนะหรือไม่ ในแต่ละเกมจากทั้งหมด 5 เกมให้ดู ที่น่าสนใจคือในเกมที่สอง หมากที่ทำให้ AlphaGo ได้เปรียบและชนะไปในที่สุดคือตาที่ลงที่ P5 ตอนที่ลงไปนั้น กูรูหมากล้อมที่ดูอยู่ทั้งหมดต่างมองเห็นเป็นทางเดียวกันว่าเป็นความผิดพลาดอย่างชัดเจน แต่กลับกลายเป็นว่าเป็นหมากดีที่ทำให้ AlphaGo ออกนำและชนะ Lee ไปได้ในที่สุด

จากการที่ David ย้อนมาตรวจสอบวิเคราะห์ข้อมูลความมั่นใจ (evaluation value) ในตานั้น พบว่า AlphaGo เชื่อว่าความเป็นไปได้ที่ผู้เล่นที่เป็นคนจะลง P5 ในตานี้มีน้อยมากๆ (ประมาณ 1/1000 หรือ 1/10000 นี่แหละครับ ขออภัยไม่ได้จดมา) แต่ด้วยการประเมินแล้ว AlphaGo พบว่าเป็นหมากที่ดีที่สุดแล้วในตานั้น

ผมคิดว่าสิ่งนี้ทำให้เห็นว่า AlphaGo สามารถหาแนวทางการเล่นใหม่ๆ ที่ฉีกออกจากแนวทางเดิมๆ ที่มนุษย์เราเล่นกันได้และคนเราเองก็สามารถเรียนรู้เพิ่มจาก AlphaGo ได้เช่นกัน

เปรียบเทียบกับ Deep Blue

หากเปรียบเทียบกับ Deep Blue ที่สามารถเอาชนะแชมป์หมากรุกได้ จะเห็นว่าแนวคิดเบื้องหลังการพัฒนาต่างกัน ตรงที่ Deep Blue มีการวางแนวทางการเล่นมาจากผู้เชี่ยวชาญหมากรุก แต่ AlphaGo เรียนรู้เองจากบันทึกหมากของผู้เล่นโปรอื่นๆ รวมถึงการฝึกฝนโดยการเล่นกับตัวเอง

Deep Blue ใช้วิธีการค้นหาตาเดินทั้งหมด แต่ AlphaGo ค้นหาเฉพาะบางส่วนของตาเดินทั้งหมด แล้วเลือกเดินตาที่คิดว่าดีที่สุดจากส่วนนั้น ทำให้เห็นว่าปริมาณการคำนวณตาเดินในแต่ละตาน้อยกว่า Deep Blue อย่างมาก (200,000,000 กับ 60,000)

อนาคต AlphaGo ทำอะไรต่อไป?

David อธิบายว่าความเป็นไปได้ที่จะนำเทคนิคเดียวกับที่ใช้ใน AlphaGo ไปประยุกต์ใช้ในด้านอื่นๆ อีก ได้แก่

  1. สุขภาพ ที่สามารถให้บริการการรักษาพยาบาลแบบเฉพาะบุคคล (personalized health care) ได้ โดยวิเคราะห์จากข้อมูลการรักษาในอดีต
  2. หุ่นยนต์ในบ้าน แบบเดียวกับ BayMax นั่นแหละครับ (มีรูป BayMax อยู่บนสไลด์ด้วย!)
  3. สมาร์ทโฟน เป็นผู้ช่วยในสมาร์ทโฟน (แน่นอนว่าคงเป็นแอนดรอย)

ถาม-ตอบ?

สุดท้ายขอสรุปคำถามและคำตอบบางส่วนจากช่วงถามตอบมาให้สั้นๆ นะครับ

คำถาม: เป็นไปได้ไหมที่จะฝึกฝน AlphaGo จากการเล่นกับตัวเอง (self-play) เพียงอย่างเดียว?
คำตอบ: David บอกว่ายังไม่ได้ทดลองจึงยังตอบให้ชัดเจนไม่ได้ แต่คิดว่าจะต้องใช้เวลาในการเทรนนานขึ้นแน่นอน และจะเสียการตัดสินใจพื้นฐานตามสัญชาตญาณมนุษย์ (default assumption of human) ไป เช่นตาหมากที่เลือกลงได้หลายๆ แบบในช่วงแรกๆ ของเกม AlphaGo จะเลือกหมากที่ใกล้เคียงคนจริงมากที่สุด

คำถาม: AlphaGo จะเป็น open-source ไหม?
คำตอบ: ไม่

คำถาม: AlphaGo สามารถแก้ปัญญา overfitting ได้อย่างไร?
คำตอบ: เนื่องด้วยทีมงานมีข้อมูลสำหรับเทรน (training data) จำนวนมหาศาล จึงลดปัญหานี้ลงไปได้มาก

Blognone Jobs Premium