AI กับ Python - การเรียนรู้แบบเสริมกำลัง

ในบทนี้คุณจะได้เรียนรู้รายละเอียดเกี่ยวกับแนวคิดการเสริมสร้างการเรียนรู้ใน AI ด้วย Python

พื้นฐานของการเรียนรู้การเสริมแรง

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

กระบวนการเรียนรู้นี้คล้ายกับการเรียนรู้ภายใต้การดูแล แต่เราอาจมีข้อมูลน้อยมาก รูปต่อไปนี้แสดงแผนภาพบล็อกของการเรียนรู้การเสริมแรง -

Building Blocks: สภาพแวดล้อมและตัวแทน

สภาพแวดล้อมและตัวแทนเป็นส่วนประกอบหลักของการเรียนรู้การเสริมกำลังใน AI ส่วนนี้จะกล่าวถึงรายละเอียด -

ตัวแทน

ตัวแทนคืออะไรก็ได้ที่สามารถรับรู้สภาพแวดล้อมของมันผ่านเซ็นเซอร์และกระทำต่อสภาพแวดล้อมนั้นผ่านเอฟเฟกต์

  • human agent มีอวัยวะรับความรู้สึกเช่นตาหูจมูกลิ้นและผิวหนังขนานกับเซ็นเซอร์และอวัยวะอื่น ๆ เช่นมือขาปากสำหรับเอฟเฟกต์

  • robotic agent แทนที่กล้องและตัวค้นหาระยะอินฟราเรดสำหรับเซ็นเซอร์และมอเตอร์และตัวกระตุ้นต่างๆสำหรับเอฟเฟกต์

  • software agent ได้เข้ารหัสบิตสตริงเป็นโปรแกรมและการดำเนินการ

คำศัพท์ของตัวแทน

คำศัพท์ต่อไปนี้ใช้บ่อยกว่าในการเรียนรู้แบบเสริมกำลังใน AI -

  • Performance Measure of Agent - เป็นเกณฑ์ที่กำหนดว่าตัวแทนประสบความสำเร็จเพียงใด

  • Behavior of Agent - เป็นการกระทำที่ตัวแทนดำเนินการหลังจากลำดับการรับรู้ใด ๆ ที่กำหนด

  • Percept - เป็นอินพุตการรับรู้ของตัวแทนในอินสแตนซ์ที่กำหนด

  • Percept Sequence - เป็นประวัติศาสตร์ของทุกสิ่งที่ตัวแทนได้รับรู้จนถึงปัจจุบัน

  • Agent Function - เป็นแผนที่จากลำดับศีลไปสู่การกระทำ

สิ่งแวดล้อม

บางโปรแกรมทำงานในไฟล์ artificial environment จำกัด เฉพาะอินพุตแป้นพิมพ์ฐานข้อมูลระบบไฟล์คอมพิวเตอร์และเอาต์พุตอักขระบนหน้าจอ

ในทางตรงกันข้ามตัวแทนซอฟต์แวร์บางตัวเช่นซอฟต์แวร์โรบ็อตหรือซอฟต์บอตมีอยู่ในโดเมน softbot ที่สมบูรณ์และไม่ จำกัด เครื่องจำลองมีไฟล์very detailedและ complex environment. ตัวแทนซอฟต์แวร์จำเป็นต้องเลือกจากการดำเนินการที่หลากหลายแบบเรียลไทม์

ตัวอย่างเช่น softbot ที่ออกแบบมาเพื่อสแกนการตั้งค่าออนไลน์ของลูกค้าและแสดงรายการที่น่าสนใจให้กับลูกค้าทำงานในไฟล์ real เช่นเดียวกับ artificial สิ่งแวดล้อม.

คุณสมบัติของสิ่งแวดล้อม

สภาพแวดล้อมมีคุณสมบัติหลายเท่าดังที่กล่าวไว้ด้านล่าง -

  • Discrete/Continuous- หากมีสถานะของสภาพแวดล้อมที่แตกต่างและกำหนดไว้อย่างชัดเจนจำนวน จำกัด สภาพแวดล้อมจะไม่ต่อเนื่องมิฉะนั้นจะเกิดขึ้นอย่างต่อเนื่อง ตัวอย่างเช่นหมากรุกเป็นสภาพแวดล้อมที่ไม่ต่อเนื่องและการขับขี่เป็นสภาพแวดล้อมที่ต่อเนื่อง

  • Observable/Partially Observable- หากเป็นไปได้ที่จะกำหนดสถานะที่สมบูรณ์ของสิ่งแวดล้อมในแต่ละช่วงเวลาจากการรับรู้สิ่งนั้นจะสังเกตได้ มิฉะนั้นจะสังเกตได้เพียงบางส่วนเท่านั้น

  • Static/Dynamic- หากสภาพแวดล้อมไม่เปลี่ยนแปลงในขณะที่ตัวแทนกำลังทำหน้าที่แสดงว่าเป็นแบบคงที่ มิฉะนั้นจะเป็นแบบไดนามิก

  • Single agent/Multiple agents - สภาพแวดล้อมอาจมีเอเจนต์อื่นซึ่งอาจเหมือนหรือต่างกันกับเอเจนต์

  • Accessible/Inaccessible- หากอุปกรณ์รับความรู้สึกของตัวแทนสามารถเข้าถึงสถานะที่สมบูรณ์ของสภาพแวดล้อมตัวแทนนั้นสามารถเข้าถึงสภาพแวดล้อมได้ มิฉะนั้นจะไม่สามารถเข้าถึงได้

  • Deterministic/Non-deterministic- หากสถานะต่อไปของสิ่งแวดล้อมถูกกำหนดโดยสถานะปัจจุบันและการกระทำของตัวแทนอย่างสมบูรณ์สภาพแวดล้อมจะถูกกำหนด มิฉะนั้นจะไม่ถูกกำหนด

  • Episodic/Non-episodic- ในสภาพแวดล้อมที่เป็นฉาก ๆ แต่ละตอนประกอบด้วยตัวแทนรับรู้แล้วแสดง คุณภาพของแอคชั่นขึ้นอยู่กับตอนนั้น ๆ ตอนต่อมาไม่ได้ขึ้นอยู่กับการกระทำในตอนก่อนหน้า สภาพแวดล้อมแบบเป็นตอนนั้นง่ายกว่ามากเพราะตัวแทนไม่จำเป็นต้องคิดล่วงหน้า

การสร้างสภาพแวดล้อมด้วย Python

สำหรับการสร้างตัวแทนการเรียนรู้การเสริมแรงเราจะใช้ OpenAI Gym แพ็คเกจที่สามารถติดตั้งได้ด้วยความช่วยเหลือของคำสั่งต่อไปนี้ -

pip install gym

มีสภาพแวดล้อมที่หลากหลายในโรงยิม OpenAI ซึ่งสามารถใช้เพื่อวัตถุประสงค์ต่างๆ มีไม่กี่คนCartpole-v0, Hopper-v1และ MsPacman-v0. พวกเขาต้องการเครื่องยนต์ที่แตกต่างกัน เอกสารรายละเอียดของOpenAI Gym สามารถพบได้ใน https://gym.openai.com/docs/#environments.

รหัสต่อไปนี้แสดงตัวอย่างของรหัส Python สำหรับสภาพแวดล้อม cartpole-v0 -

import gym
env = gym.make('CartPole-v0')
env.reset()
for _ in range(1000):
   env.render()
   env.step(env.action_space.sample())

คุณสามารถสร้างสภาพแวดล้อมอื่น ๆ ในลักษณะเดียวกันได้

การสร้างตัวแทนการเรียนรู้ด้วย Python

สำหรับการสร้างตัวแทนการเรียนรู้การเสริมแรงเราจะใช้ OpenAI Gym แพคเกจตามที่แสดง -

import gym
env = gym.make('CartPole-v0')
for _ in range(20):
   observation = env.reset()
   for i in range(100):
      env.render()
      print(observation)
      action = env.action_space.sample()
      observation, reward, done, info = env.step(action)
      if done:
         print("Episode finished after {} timesteps".format(i+1))
         break

สังเกตว่าเสารถเข็นสามารถทรงตัวได้เอง