มาทำความรู้จักกับ Reinforcement Learning แบบเบาๆกันเถอะ

Nut Chukamphaeng
3 min readNov 11, 2018

--

หลายคนอาจจะเคยได้ยินคำว่า Reinforcement learning แต่อาจจะยังไม่รู้ความหมายของมัน ซึ่งจริงๆแล้ว ความหมายของมันก็คือ เป็นวิธีการหนึ่งของการทำ Machine learning นั่นเอง

ประเภทของ Machine learning

โดยวิธีการของมันก็คือ การเรียนรู้สิ่งต่างๆจากการลองผิดลองถูก เช่น เด็กคนหนึ่งต้องการที่จะเรียนรู้การทำให้ตัวเองอบอุ่นด้วยการใช้เตาผิง

ดังนั้น สิ่งที่ต้องสนใจหลักๆเลยก็คือ เด็ก และ เตาผิง

โดยเด็กจะเรียนรู้ด้วยการลองขยับเข้าไปใกล้เตาผิงดู แล้วผลลัพธ์ก็คือ ทำให้เด็กอบอุ่นขึ้น เด็กจึงรู้ว่าการเข้าใกล้เตาผิงทำให้ได้ผลลัพธ์ที่ดี

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

“ ทำให้สุดท้ายแล้วเด็กเริ่มเรียนรู้ว่าการที่เราอยู่ใกล้ไฟ มันทำให้อบอุ่น แต่ถ้าใกล้มากเกินไปมันจะเผา ซึ่งการเรียนรู้แบบนี้ก็เป็นการเรียนรู้อย่างง่ายของมนุษย์เรา “

และ Reinforcement learning ซึ่งต่อจากนี้จะเรียกสั้นๆว่า RL ก็ใช้หลักการเดียวกันในการทำให้คอมพิวเตอร์ของเรามีการเรียนรู้จากการลองผิดลองถูก

จะเห็นได้จากข่าวเด่นๆเกี่ยวกับ AI ที่เอาชนะแชมป์ Go ของโลก ในปี 2016 มาแล้ว หรือจะเป็น AI ที่เล่นเกมส์ Dota 2 ในปี 2017 และ Dota2 แบบ 5vs5 ในปี 2018 ซึ่ง AI พวกนี้ก็มีเบื้องหลังเป็น RL ทั้งนั้นเลย

แล้วเราจะทำให้ AI ของเราเรียนรู้ยังไง ให้มันเก่งได้ยังไง ?

ซึ่งเนื้อหาต่อจากนี้จะเป็นการอธิบายพื้นฐานของการทำงานของ RL โดยจะมีเนื้อหาค่อนข้างลงลึกทางด้านเทคนิคนิดหน่อย สำหรับใครที่สนใจก็สามารถไปอ่านต่อได้เลย GO GO ~

Reinforcement Learning Process

เรามาทำความรู้จักกับ Model ทางคณิตศาสตร์ที่มาช่วยเราแก้ปัญหา นั้นก็คือ Markov Decision Process (MDP) นั้นเอง มันคืออะไรเนี่ยยย ดูน่ากลัวจังเลย แต่มันมีประโยชน์มากเลยนะ

MDP
  • Agent ก็คือ ตัว AI ของเราที่คอยดูว่า ถ้าสถานะการณ์ (state) แบบนั้นแบบนี้ควรเลือกทำอะไร (action) โดยเราจะบอกว่าอะไรควรทำไม่ควรทำ ก็จะตัดสินใจจากประสบการณ์
AlphaGo
  • ประสบการณ์ ก็เกิดจากการที่ลองผิดลองถูก ซึ่งเวลา action แต่ละครั้ง ก็จะได้ reward แล้วเราก็เรียนรู้ว่า ถ้า state แบบนี้ ควรเลือก action อะไร หลังจากทำ action นั้นแล้ว state ต่อไปเป็นอะไร

ซึ่งตัว agent ของเราก็จะลองผิดลองถูกไปเรื่อยๆ เกิดการเรียนรู้ ว่าเล่นยังไงให้ Maximize expected discount reward หรือก็คือ เล่นยังไงให้เราได้ reward จาก environment มากที่สุด (สมการข้างล่าง)

ค่า gamma หรือที่เรียกกันว่า discount rate มีค่าอยู่ในช่วง 0–1

  • ถ้าค่า gamma มีค่ามาก แปลว่าเราให้ความสำคัญกับ reward ในแบบ long term
  • ในทางตรงข้าม ถ้า gamma มีค่าน้อย แปลว่าเราสนใจ reward ในแบบ short term
Thanks to Thomas Simonini

ถ้าเราอยากให้หนูกินชีสมากที่สุด ซึ่งแมวก็อยากกินหนู แล้วเราบอกว่าเราให้ความสนใจแบบ short term ก็คือ เราให้ความสำคัญกับชีสที่อยู่ใกล้ตัวเรามากกว่า ชีสที่อยู่ไกล ถึงมันจะเยอะก็ตาม เพราะถ้า เราสนใจเอาแต่ตัวที่ให้เยอะ เราอาจโดนกินก็ได้

Policy

สำหรับ RL แล้ว เราต้องการหา optimal policy, ซึ่งเป็นตัวคอยบอกเราว่า เราควรเลือก action อะไรใน state ที่เราอยู่

และแน่นอนว่า เราหวังว่าถ้าเรา action ตาม policy นี้ เราจะได้ reward มากที่สุด

แต่ก็อีกนั้นแหละ ในชีวิตจริง ไม่มีอะไรที่ absolute จริงๆ เราเลยมี policy อยู่ 2 แบบคือ deterministic กับ stochastic, ซึ่งแบบ stochastic จะแสดง probability distribution ของ action แทน การเลือก action นั้นตรงๆ

ซึ่งทั้งหมดนี้ เรามาเขียนใหม่ก็จะได้เป็น

และทั้งหมดนี้ก็เป็นพื้นฐานของ RL สำหรับใครที่สนใจอยากศึกษาเพิ่มเติมก็สามารถติดตามบทความต่อๆไปได้นะครับ

--

--