การนำ Q-Table ไปใช้ใน Python
ตัวอย่างง่าย ๆ ของการเรียนรู้แบบ Q
การนำ Q-Table ไปใช้ใน Python เป็นบทเรียน Python Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 5 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Python Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Python Academy มีบทเรียนทั้งหมด 5 บทเรียน
การนำการเรียนรู้แบบ Q ไปใช้ใน Python
การนำการเรียนรู้แบบ Q ไปใช้ใน Python
ในบทเรียนนี้ เราจะนำอัลกอริทึมการเรียนรู้แบบ Q อย่างง่ายไปใช้งานใน Python ตัวแทนจะเรียนรู้การเคลื่อนที่ในโลกแบบตารางเพื่อเพิ่มรางวัลให้ได้สูงสุด

การกำหนดสภาพแวดล้อม
การกำหนดสภาพแวดล้อม
เราจะกำหนดโลกแบบตารางขนาด 4×4 อย่างง่าย โดยให้ตัวแทนเริ่มต้นที่มุมซ้ายบนและต้องไปถึงมุมขวาล่างเพื่อรับรางวัล
import numpy as np
# Define the environment
num_states = 16 # 4x4 grid
num_actions = 4 # Up, Down, Left, Right
# Define rewards (-1 for each step, +10 for the goal)
rewards = np.zeros(num_states)
rewards[-1] = 10การเริ่มต้นตาราง Q
การเริ่มต้นตาราง Q
ตาราง Q จะเริ่มต้นด้วยค่า zeros สำหรับคู่สถานะ-การกระทำทั้งหมด
# Initialize the Q-Table
q_table = np.zeros((num_states, num_actions))
print("Initial Q-Table:")
print(q_table)การนำอัลกอริทึมการเรียนรู้แบบ Q ไปใช้
การนำอัลกอริทึมการเรียนรู้แบบ Q ไปใช้
เราใช้พารามิเตอร์ต่อไปนี้:
- α (อัตราการเรียนรู้): ควบคุมว่าข้อมูลใหม่จะแทนที่ข้อมูลเก่ามากน้อยเพียงใด
- γ (ปัจจัยลดค่า): กำหนดน้ำหนักของรางวัลในอนาคตเมื่อเทียบกับรางวัลทันที
- ε (อัตราการสำรวจ): สร้างสมดุลระหว่างการสำรวจกับการใช้ประโยชน์จากสิ่งที่เรียนรู้
# Parameters
alpha = 0.1 # Learning rate
gamma = 0.9 # Discount factor
epsilon = 0.1 # Exploration rate
# Q-Learning loop
num_episodes = 1000
for episode in range(num_episodes):
state = 0 # Start at the first state
done = False
while not done:
# Exploration or exploitation
if np.random.rand() < epsilon:
action = np.random.randint(num_actions) # Explore
else:
action = np.argmax(q_table[state]) # Exploit
# Transition to the next state
next_state = (state + action) % num_states # Simplified transition logic
reward = rewards[next_state]
# Update Q-value
q_table[state, action] = q_table[state, action] + alpha * (
reward + gamma * np.max(q_table[next_state]) - q_table[state, action]
)
# Move to the next state
state = next_state
done = state == num_states - 1การประเมินนโยบายที่เรียนรู้
การประเมินนโยบายที่เรียนรู้
หลังการฝึก เราจะประเมินนโยบายโดยทำตามการกระทำที่เหมาะสมที่สุดซึ่งจัดเก็บไว้ในตาราง Q:
# Evaluate the policy
state = 0
optimal_path = [state]
while state != num_states - 1:
action = np.argmax(q_table[state])
state = (state + action) % num_states # Simplified transition logic
optimal_path.append(state)
print("Optimal Path:", optimal_path)การแสดงภาพตาราง Q
การแสดงภาพตาราง Q
เราสามารถแสดงภาพตาราง Q เพื่อทำความเข้าใจค่าที่เรียนรู้สำหรับคู่สถานะ-การกระทำแต่ละคู่:
import matplotlib.pyplot as plt
import seaborn as sns
# Visualize Q-Table
plt.figure(figsize=(10, 8))
sns.heatmap(q_table, annot=True, fmt=".2f", cmap="coolwarm")
plt.title("Q-Table Heatmap")
plt.xlabel("Actions")
plt.ylabel("States")
plt.show()ข้อดีของการเรียนรู้แบบ Q
ข้อดีของการเรียนรู้แบบ Q
การเรียนรู้แบบ Q มีประโยชน์หลายประการ:
- เรียบง่ายและนำไปใช้ได้ง่าย
- รองรับสภาพแวดล้อมแบบสุ่มได้
- จะบรรลุนโยบายที่เหมาะสมที่สุดเมื่อมีการสำรวจอย่างเพียงพอ
ข้อจำกัดของการเรียนรู้แบบ Q
ข้อจำกัดของการเรียนรู้แบบ Q
การเรียนรู้แบบ Q มีข้อจำกัดบางประการ:
- ไม่สามารถขยายรองรับสภาพแวดล้อมที่มีพื้นที่สถานะ-การกระทำขนาดใหญ่ได้ดี
- การเรียนรู้อาจช้าในสภาพแวดล้อมที่ซับซ้อน
- ต้องมีการแทนค่าสถานะ-การกระทำที่กำหนดไว้อย่างชัดเจน
สรุปและขั้นตอนถัดไป
สรุปและขั้นตอนถัดไป
ในบทเรียนนี้ เราได้:
- นำอัลกอริทึมการเรียนรู้แบบ Q อย่างง่ายไปใช้ใน Python
- ฝึกตัวแทนให้เคลื่อนที่ในโลกแบบตารางโดยใช้ตาราง Q
- ประเมินนโยบายที่เรียนรู้และแสดงภาพตาราง Q
ถัดไป เราจะสำรวจการเรียนรู้แบบ Q เชิงลึก ซึ่งใช้โครงข่ายประสาทเทียมเพื่อรองรับสภาพแวดล้อมที่มีพื้นที่สถานะ-การกระทำขนาดใหญ่

คำถามที่พบบ่อย
บทเรียน “การนำ Q-Table ไปใช้ใน Python” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การนำ Q-Table ไปใช้ใน Python” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Python Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Python Academy มีบทเรียนทั้งหมด 5 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การนำ Q-Table ไปใช้ใน Python”
ตัวอย่างง่าย ๆ ของการเรียนรู้แบบ Q คุณปฏิบัติ Python Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Python Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Python Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 5 บทเรียน
บทเรียน “การนำ Q-Table ไปใช้ใน Python” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Python Academy นี้ได้ไหม
ได้ บทเรียน Python Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- แนวคิดพื้นฐานของการเรียนรู้แบบเสริมกำลัง
- แนวคิด Q-Table
- การนำ Q-Table ไปใช้ใน Python
- การเรียนรู้แบบ Deep Q
- สำรวจ OpenAI Gym