Reinforcement Learning เป็น machine learning algorithm แบบหนึ่ง ที่มีหลักการทำงานเสมือนกับการที่มนุษย์เรียนรู้บางสิ่งบางอย่างด้วยการลองผิดลองถูก และมีการเรียนรู้เกิดขึ้นระหว่างทางว่าการกระทำไหนดีหรือไม่ดี ซึ่ง Reinforcement Learning ประกอบด้วยองค์ประกอบหลัก ดังต่อไปนี้

  • Agent – ผู้กระทำ Action
  • Action (a) – การกระทำของ Agent ที่ส่งผลบางอย่างต่อ Environment
  • Environment – ระบบที่ Agent ต้องมีปฏิสัมพันธ์ด้วย
  • State (s) – สถานการณ์ของ Environment ที่ทาง Agent สามารถรับรู้ได้
  • Policy (π) – หลักการที่ Agent ใช้ในการตัดสินใจเลือก Action หลังจากประเมินสถานการณ์แล้ว
  • Reward (R) – ตัวประเมินผลลัพธ์ที่เกิดจากการกระทำของ Agent เช่น คะแนน กำไรที่ได้รับ หรือ ผลแพ้ชนะ เป็นต้น

Agent จะรับรู้สถานการณ์ (s) ของ Environment จากนั้นจึงใช้ Policy (π)  ในการเลือกทำการกระทำบางอย่าง (a) ที่ส่งผลต่อ Environment ซึ่งผลจากการกระทำ (a) นั้นจะทำให้สถานการณ์ของ Environment เปลี่ยนจากสถานการณ์เดิมไปสู่อีกสถานการณ์หนึ่ง (s’) ดังนั้นหลักการของ Reinforcement Learning คือการเรียนรู้ของ Agent ที่เกิดจากปฏิสัมพันธ์แบบลองผิดลองถูกระหว่าง Agent กับ Environment โดย Agent จะสามารถรับรู้สถานการณ์ของ Environment ผ่าน State และเลือกการกระทำ Action ที่ส่งผลต่อ Environment โดยหวังว่าจะได้ผลลัพธ์ Reward ที่ดีที่สุด รวมทั้งเรียนรู้ผ่านข้อผิดพลาดในอดีตที่เกิดขึ้น

หากเปรียบเทียบกับกรณีนักศึกษาที่อ่านหนังสือเตรียมตัวสอบ เราจะแทนว่า นักศึกษา (Agent) จะรับรู้ถึง สถานการณ์ (State) ของสิ่งรอบตัว (Environment) เช่น นักศึกษารับรู้ว่าคะแนนเก็บปัจจุบันของตนนั้นมีอยู่เท่าไหร่ โดยในการสอบครั้งแรก  นักศึกษาเลือกที่จะไม่อ่านหนังสือสอบ (Action) ทำให้สอบได้คะแนนน้อย ซึ่งเป็นผลลัพธ์ที่ไม่ดี เพราะฉะนั้นเมื่อนักศึกษาเรียนรู้จากการกระทำครั้งก่อนว่า การไม่อ่านหนังสือไปสอบให้ผลลัพธ์ (Reward) ที่ไม่ดี การสอบครั้งต่อไป นักศึกษาจึงตั้งใจจะทำผลลัพธ์ให้ดีขึ้นด้วยการอ่านหนังสือก่อนไปสอบเป็นต้น

อย่างไรก็ตาม ในบางครั้งมนุษย์เรา (Agent) นั้นไม่ได้เลือกที่จะทำบางสิ่งบางอย่าง (Action) โดยขึ้นอยู่กับผลลัพธ์ (Reward) ที่คาดว่าจะได้รับ ณ ตอนนั้นเสมอไป แต่อาจคำนึงถึงผลลัพธ์ในอนาคตด้วย เช่น ในคืนก่อนสอบ นักศึกษาสามารถเลือกได้ว่าจะเล่นเกมหรืออ่านหนังสือ โดยที่การอ่านหนังสือ อาจทำให้นักศึกษาเครียดและมีความสุขน้อยกว่าการเล่นเกม แต่เมื่อคำนึงถึงผลระยะยาว การอ่านหนังสือ แล้วเราทำข้อสอบได้ดี ทำให้เราอาจได้งานดี ๆ ในอนาคต ทำให้ชีวิตมีความสุข ในขณะที่การเล่นเกมนั้น อาจจะทำให้มีความสุข เพลิดเพลินมากกว่าอ่านหนังสือ แต่ก็อาจจะทำให้คุณสอบตก และไม่ได้ทำงานที่ดี ทำให้ชีวิตอาจจะไม่มีความสุขเมื่อเทียบกับการที่เลือกอ่านหนังสือในคืนนั้น ดังนั้นผลรวมของรางวัลตั้งแต่ปัจจุบันจวบจนอนาคต (Cumulative Reward (G_t) อาจถูกนำมาใช้ในการคำนวณผลลัพธ์แทน

    \[G_t = R_{t+1} + R_{t+2} + R_{t+3} + ... = \sum_{k=0}^{\infty} R_{t+k+1}\]

แต่เนื่องด้วยอนาคตนั้นมีความไม่แน่ไม่นอน หมายความว่า ผลลัพธ์ที่เราหวังไว้ในตอนแรกอาจจะไม่ได้เป็นแบบนั้น เช่น การอ่านหนังสือในคืนก่อนสอบอาจจะไม่ได้ทำให้เราสอบผ่าน หรือได้งานดี ๆ เสมอไป หรือแม้กระทั่งการเลือกที่จะเล่นเกมในคืนนั้น ก็อาจจะไม่ได้ส่งผลให้เส้นทางชีวิตย่ำแย่เสมอไป รวมถึงบางครั้งเราก็ไม่อาจสามารถคาดเดาจุดสิ้นสุดได้ หรือบางทีระบบอาจจะไม่มีจุดสิ้นสุดก็ได้ เช่น เกมส์คอมพิวเตอร์ที่เราเล่น เราสามารถเล่นจบเป็นรอบ ๆ ได้ เราจะเรียก Environment จำพวกพวกนี้ว่า Episodic Environment กับอีกประเภทนึงเช่น การเล่นหุ้น ที่มีสามารถเล่นไปเรื่อย ๆ ไม่มีที่ท่าว่าจะจบ กว่าจะจบโลกก็อาจจะแตกเสียก่อน เราจะเรียก Environment จำพวกนี้ว่า Non-episodic task ซึ่งถ้าหากเป็น Non-episodic task ที่อนาคตนั้นไม่รู้จะไปจบที่ใดนั้น และไม่รู้จะเกิดขึ้นจริงรึเปล่า การที่เราจะสามารถคำนวณ Cumulative Reward (G_t) ได้นั้นจำเป็นต้องมีสิ่งที่เรียกว่า Discount Factor (γ) ที่มีค่าระหว่าง 0 ถึง 1 ซึ่งจะมาช่วยในการจำกัดให้ ผลรวมของรางวัลตั้งแต่ปัจจุบันจวบจนอนาคต (Cumulative Reward (G_t)) อยู่ในเซทของ finite number นั่นเอง โดยจะเพิ่ม Discount Factor (γ) ลงในสมการด้านบน

    \[G_t = R_{t+1} + {\gamma}R_{t+2} + \gamma^2R_{t+3} + ... = \sum_{k=0}^{\infty} \gamma^kR_{t+k+1}\]

หลักจากที่ Agent นั้นทำการประเมินสถานการณ์ปัจจุบันผ่าน Cumulative Reward (G_t) แล้วก็จะถึงช่วงเวลาที่ Agent ต้องตัดสินใจว่าจะเลือกการกระทำใด เพื่อที่จะทำไห้ได้ Cumulative Reward (G_t) สูงสุด โดย Agent ใช้หลักในการเลือกการกระทำ π ที่เป็นตัวกำหนดว่า Agent ควรจะเลือกทำ Action ใด ณ​ สถานการณ์ (State) นั้น ๆ ตาม Explore-Exploit Dilemma ที่เลือกใช้ ซึ่งอาจเป็นการกระทำที่คาดหวังว่าจะได้ผลลัพธ์โดยรวมในระยะยาว (Future Cumulative Reward) มากที่สุด หรืออาจจะทำ Random Action เพื่อสำรวจรูปแบบของการกระทำใหม่ๆ  ทั้งนี้ หากทาง Agent สำรวจลองผิดลองถูกจนสามารถเลือก Action ได้ดีที่สุดไม่ว่าจะอยู่ในสถานการณ์ (State) ใด ๆ หรือก็คือ Agent ที่เราฝึกเป็นผู้เชี่ยวชาญวรยุทธ์หนึ่งในใต้หล้าของโจทย์นั้น ๆ แล้ว เราจะเรียกหลักการนั้นว่า Optimal Policy (\pi_\theta) ซึ่งการค้นหา Optimal Policy นั้นถือเป็นหัวใจหลักของการทำ Reinforcement Learning

Explore-Exploit Dilemma เป็นหลักการที่ Agent จะเลือกทำ Action ที่คาดว่าจะได้ผลลัพธ์ที่ดีสุด หรือลองสุ่ม Action เพื่อสำรวจรูปแบบใหม่ ๆ อย่างสมมติว่า ถ้าคุณได้ไปร้านอาหารร้านโปรดเจ้าประจำ คุณจะสั่งอาหารเดิมที่คิดว่าอร่อยที่สุดในทุก ๆ รอบที่มารับประทาน หรือว่าคุณจะเริ่มลองสั่งอาหารใหม่ๆ ในร้านบ้าง ซึ่งการลองสิ่งใหม่ ๆ นี้อาจจะเจอสิ่งที่ดีหรือแย่กว่าก็ได้ สองทางเลือกนี้คือ

  • Explore เป็นการลองสำรวจสิ่งใหม่ ๆ ที่ไม่รู้ว่ามันจะดีหรือร้าย ซึ่งใน Reinforcement Learning จะเป็นการที่ Agent นั้นลองทำ Random Action
  • Exploit เป็นการเลือกสิ่งที่ตนคิดว่ามันดีที่สุดอยู่แล้ว ใน Reinforcement Learning จะเป็นการที่ Agent นั้นทำ Action ที่คาดหวังว่าจะให้ผลลัพธ์โดยรวมในระยะยาว (Future Cumulative Reward) ที่เยอะที่สุดนั่นเอง

Explore-Exploit Dilemma นั้นมีให้เลือกใช้หลากหลายวิธี ขึ้นอยู่กับประเภทโจทย์ที๋ได้รับ โดยเราจะยกตัวอย่างสองวิธีได้แก่

  • Optimistic Initial Values โดยสมมติว่าเริ่มต้นนั้นเราคิดว่าทุกเมนูอาหารนั้นอร่อยเลิศไปเสียทุกอย่าง แต่หลังจากนั้นเราก็เลือกชิมเมนูอาหารที่เราคิดว่าอร่อยที่สุด (ในตอนแรกนั้นเนื่องจากทุกเมนูอร่อยเท่ากันหมดจึงเป็นการสุ่ม) และหลังจากเราเริ่มชิมไปนั้นก็จะพบว่า อาหารที่เราชิมมันไม่ได้เลิศเลออย่างที่เราตั้งไว้ตั้งแต่แรกและลดค่าความอร่อยที่คาดหวังไว้จากอาหารจานนี้ลง และหลังจากนั้นเราก็ชิมอาหารที่คิดว่าอร่อยที่สุด (Exploit) และอาจจะมีการปรับค่าความอร่อยที่คาดหวังไปเรื่อยๆ จนท้ายที่สุดเราก็จะรับรู้ได้ว่าอาหารเมนูไหนอร่อยที่สุด ซึ่งจะสามารถสังเกตได้ว่า Optimistic Initial Values จะไม่มีการ Explore เกิดขึ้น ดังนั้นสำหรับ Environment ที่มี Sample Space ที่เยอะมาก ๆ หรือในกรณีนี้คือการที่ร้านอาหารมีเมนูอาหารเยอะมาก ๆ วิธี Optimistic Initial Values อาจจะไม่เหมาะที่จะเอามาเลือกใช้สักเท่าไหร่
  • Epsilon greedy สมมติเป็นการเลือกเมนูอาหาร ค่า Epsilon เป็นความน่าจะเป็นว่ามีโอกาส  ε ที่คุณจะเลือกกินเมนูอื่นๆ แบบสุ่ม และโอกาส 1-ε ที่คุณจะเลือกกินเมนูที่คุณคิดว่าอร่อยที่สุด โดยตัวแปร   จะมีค่าอยู่ที่ระหว่าง 0 ถึง 1 ซึ่งอาจจะเป็นค่าคงที่ หรือตัวแปรที่แปรผันตามเวลาก็ได้ (ส่วนใหญ่จะนิยมกำหนดค่าเริ่มต้นเป็น 1 เพื่อที่จะเลือกการกระทำ explore ตอนแรกให้มากที่สุด และเมื่อเวลาผ่านไปจะค่อยๆ ลดลงเนื่องจากคิดว่า Agent สำรวจจนพอแล้ว)

สิ่งที่ได้กล่าวไปข้างต้นทั้งหมดเป็นการเปรียบเทียบระหว่างหลักการของ Reinforcement Learning กับชีวิตความเป็นจริงในทุกๆ วันเวลาที่เราตัดสินใจเลือกที่จะกระทำสิ่งต่าง ๆ ในสถานการณ์ใด ๆ ก็ตามซึ่งการที่เราจะนำคอนเซปท์เหล่านี้มาให้ Computer เข้าใจ และสามารถเรียนรู้ในสิ่งต่าง ๆ ได้นั้นจำเป็นต้องใช้โมเดลทางคณิตศาสตร์ที่เรียกว่า Markov Decision Process

Markov Decision Process เป็น Framework สำหรับการตัดสินใจ (Decision Making) ของ Agent เนื่องจาก Environment มีความไม่แน่นอน ทำให้ผลลัพธ์ที่ได้ในบางครั้งไม่แน่นอน (Stochastic) กล่าวคือ การที่ Agent เลือกทำ Action เดิม สำหรับสถานการณ์ (State) เดิม อาจจะไม่ได้ผลลัพธ์แบบเดิมเสมอไป เช่น เกมที่มีผู้เล่นหลายคน หรือการทอยเหรียญหัวก้อยเป็นต้น

โจทย์ Reinforcement Learning ส่วนใหญ่นั้นจะใช้ Model ที่เป็น Markov Decision Process โดยจะมีลักษณะเป็น Directed Graph ที่ชี้ระหว่าง Relation ของแต่ละ State, Action และ Reward ดังรูป โดยค่า r หมายถึง Reward ที่เกิดจากการทำ Action นั้น ๆ และ \rho หมายถึงโอกาสที่จะทำให้ไปสู่อีก State ต่าง ๆ เมื่อกระทำ Action นั้น ๆ

จากภาพจะป็น Markov Decision Process ที่อยู่ในลักษณะของ Directed Graph โดย State จะแทนด้วย Node ต่างๆ และการกระทำแต่ละ Action จะเป็นเส้นนำทางไปสู่ State และ Reward ที่ต่าง ๆ กันออกไป โดยในที่นี้จะกำหนด Concept ของ Reward เป็นตัวเลขง่าย ๆ เพื่อให้ Agent ของเราสามารถตัดสินใจได้ว่าจะเลือกทำ Action ไหน โดยจะมีสถานะเริ่มต้นเป็น Hungry

นอกจากนี้แต่ละ Action ในตัวอย่างจะเป็นแบบ non-deterministic หมายความว่าการเลือกทำ Action เดิมที่ State เดิม อาจจะให้ผลลัพธ์ที่ไม่เหมือนเดิมได้ ยกตัวอย่างเช่น การที่เรามีสถานะหิว กับเราเลือกที่จะกินจะมีโอกาส (\rho = 0.9) ที่จะทำให้เราเข้าสู่สถานะ Full และมีโอกาส (\rho= 0.1) ที่จะเข้าสู่สถานะ Hungry เหมือนเดิม

โดยเมื่อเราอยู่ในสถานะ Hungry นั้นจะมีสอง Action Choice ให้เลือกระหว่าง การกินอาหาร (Eat) และการไม่กินอาหาร (Don’t Eat) ซึ่งเราจะสามารถสรุปสถานการณ์ที่คาดว่าจะเกิดขึ้นทั้งหมดได้สองรูปแบบ

  • ถ้าหากเราเลือก Don’t Eat ก็จะมีโอกาส (\rho = 0.1) ที่เราจะอดตาย (Starve) ซึ่งจะได้รับ Reward เท่ากับ (r = -10) ซึ่งถือว่าเป็น Negative Reward จำนวนมากที่ Agent ไม่ควรจะปล่อยให้เกิดขึ้น และมีโอกาสอีก (\rho = 0.9) ที่เราจะยังหิวเหมือนเดิม (Hungry) ซึ่งจะได้รับ Reward เท่ากับ (r = - 1)
  • ถ้าหากเราเลือก Eat จะมีโอกาส (\rho = 0.9) ที่จะเปลี่ยนสถานะจาก Hungry เป็น Full และได้รับ Reward (r = 1)  แต่ยังมีโอกาสอีก (\rho = 0.1) ที่จะกลับมาหิวเหมือนเดิมเนื่องจากเราอาจจะยังกินไม่อิ่ม และได้รับ Reward (r = -1)

ในเมื่อเป้าหมายหลักคือการที่เลือก Decision ที่ทำให้ Cumulative Reward ที่มากที่สุด เพราะฉะนั้นการเลือกทำ Action Eat นั้นมีโอกาศที่จะทำให้ได้รับ Reward สูงสุด

ในโจทย์ของ Reinforcement Learning นั้นส่วนใหญ่จะมีความซับซ้อนกว่านี้มาก State ที่เป็นไปได้ทั้งหมดอาจจะเยอะกว่าดวงดาวในจักรวาลเสียอีก (เช่น หมากล้อม) และมี Action ให้เลือกทำมากมาย ซึ่งจะใช้ Explore-Exploit Dilemma  ต่างๆ เพื่อให้ Agent สามารถสำรวจ (Explore) แบบลองผิดลองถูกจนสามารถเลือกทำ Action ที่คาดว่าดีที่สุดได้ (Exploit)

เมื่อเริ่มต้นนั้นตัว Agent จะไม่มีความรู้ใดๆ เกี่ยวกับ Environment เลย รวมถึงไม่รู้ด้วยว่า Action ที่ทำไปนั้นจริงๆ แล้วจะได้ Cumulative Reward เป็นเท่าไหร่ ดังนั้น Agent จึงทำการเดา Cumulative Reward ที่คาดว่าจะเกิดขึ้น เรียกว่า Expected Cumulative Reward  โดยในระหว่างการเรียนรู้ Agent จะเลือกกระทำ Action ที่ State ต่าง ๆ โดยพยายาม Maximize ค่า Expected Cumulative Reward แต่เนื่องด้วยการที่เป็น Expected Cumulative Reward ทำให้มันไม่ตรงกับ Actual Cumulative Reward ที่ได้รับ ดังนั้น Agent จึงเกิดการลองผิดลองถูกเกิดขึ้น และมีการปรับแก้ Expected Cumulative Reward ให้ใกล้เคียงกับ Actual Cumulative Reward มากขึ้น ยกตัวอย่างเช่น การขอเงินค่าขนมคุณแม่ เราอาจจะคาดหวังว่าเราได้รับเงิน 100 บาท (Expected Reward) แต่คุณแม่ให้เพียงแค่ 20 บาท (Actual Reward) ดังนั้นครั้งต่อไปเราอาจจะต้องปรับความคาดหวังใหม่ให้ใกล้เคียงกับเงินค่าขนมที่ได้รับจริงมากขึ้น

นอกจากนั้นเมื่อ Expected Cumulative Reward นั้นตรงกับ Actual Reward สำหรับทุก ๆ ความเป็นไปได้ หมายความว่าตัว Agent นั้นได้ทำการ Explore และ Exploit Environment นั้น ๆ จนครบทุกความเป็นไปได้แล้วนั่นเอง

ในหลักการของ Reinforcement Learning นั้น มีเป้าหมายหลักที่ชัดเจนคือการพยายามหา  Optimal Policy (\pi_\theta) โดยการทำให้ Expected Cumulative Reward (E(G_t)) ตรงกับ Actual Cumulative Reward ในทุกๆ State จากนั้น Agent นำ policy มาใช้เลือกทำ action เพื่อพยายาม maximize ค่า Expected Cumulative Reward (E(G_t)) ให้ได้มากที่สุด แต่เนื่องด้วยตอนเพิ่งเริ่มต้นนั้น Agent จะไม่มีประสบการณ์พอที่จะคำนวณ Expected Cumulative Reward (E(G_t)) ให้ตรงกับ Actual Cumulative Reward ที่เกิดขึ้นจริง ๆ ได้ Agent จึงต้องทำการสำรวจ Environment แบบลองผิดลองถูก (Explore) เพื่อปรับค่า Expected Cumulative Reward (E(G_t)) ให้ตรงกัน Actual Value มากที่สุด เพื่อที่จะได้ทำการ Exploit โจทย์ต่าง ๆ ที่ถูกฝึกมาได้

นอกจากนี้โจทย์ส่วนใหญ่ในส่วนของ Reinforcement Learning นั้นจะมี State Sample Space ที่เยอะมากเสียจน Agent ไม่มีทางสำรวจหมดได้ จึงถือเป็นความยากอย่างหนึ่งสำหรับโจทย์ Reinforcement Learning ว่าจะหาวิธี แบบไหน เพื่อที่จะได้ให้ Agent สามารถทำการ Exploit โจทย์ๆ หนึ่งได้อย่างสมบูรณ์แบบ อีกทั้งยังยากที่จะวัดผลได้ว่า วิธีการเรียนรู้ที่เราเลือกใช้ รวมไปถึงสมการรางวัล (Reward function) ที่เราออกแบบมานั้น จะทำให้ Agent สามารถเรียนรู้ที่จะทำโจทย์ต่าง ๆ ได้เก่งขึ้นจริง ๆ

Recommended Posts