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
สังเกตว่าเสารถเข็นสามารถทรงตัวได้เอง