0Pricing
Python Academy · บทเรียน

การนำ 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 ตัวแทนจะเรียนรู้การเคลื่อนที่ในโลกแบบตารางเพื่อเพิ่มรางวัลให้ได้สูงสุด

การนำ Q-Table ไปใช้ใน Python — ภาพประกอบ 1

การกำหนดสภาพแวดล้อม

การกำหนดสภาพแวดล้อม

เราจะกำหนดโลกแบบตารางขนาด 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 — ภาพประกอบ 10

คำถามที่พบบ่อย

บทเรียน “การนำ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. แนวคิดพื้นฐานของการเรียนรู้แบบเสริมกำลัง
  2. แนวคิด Q-Table
  3. การนำ Q-Table ไปใช้ใน Python
  4. การเรียนรู้แบบ Deep Q
  5. สำรวจ OpenAI Gym
← กลับไปที่ Python Academy