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

การเรียนรู้แบบ Deep Q

การใช้โครงข่ายประสาทเทียมสำหรับการเรียนรู้แบบเสริมกำลัง

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

การเรียนรู้แบบ Q เชิงลึกคืออะไร

การเรียนรู้แบบ Q เชิงลึก

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

การเรียนรู้แบบ Deep Q — ภาพประกอบ 1

เหตุใดจึงต้องใช้การเรียนรู้แบบ Q เชิงลึก

เหตุใดจึงต้องใช้การเรียนรู้แบบ Q เชิงลึก

การเรียนรู้แบบ Q เชิงลึกช่วยแก้ข้อจำกัดของการเรียนรู้แบบ Q แบบดั้งเดิม:

  • รองรับพื้นที่สถานะที่มีหลายมิติ เช่น รูปภาพ
  • ไม่จำเป็นต้องจัดเก็บตาราง Q ขนาดใหญ่ไว้ในหน่วยความจำ
  • สรุปใช้กับสถานะต่าง ๆ ได้โดยใช้โครงข่ายประสาทเทียม

อัลกอริทึม DQN

อัลกอริทึม DQN

การเรียนรู้แบบ Q เชิงลึกใช้โครงข่ายประสาทเทียมที่เรียกว่า เครือข่าย Q เพื่อประมาณค่า Q ขั้นตอนหลักมีดังนี้:

  1. เริ่มต้นเครือข่าย Q ด้วยน้ำหนักสุ่ม
  2. โต้ตอบกับสภาพแวดล้อมเพื่อรวบรวมทูเพิลประสบการณ์ (state, action, reward, next_state)
  3. อัปเดตเครือข่าย Q โดยใช้สมการเบลล์แมน:

Q(s, a) ≈ r + γ max(Q(s', a'))

การสร้างเครือข่าย Q

การสร้างเครือข่าย Q

เครือข่าย Q เป็นโครงข่ายประสาทเทียมแบบส่งต่อไปข้างหน้าอย่างง่าย ซึ่งรับสถานะปัจจุบันเป็นข้อมูลเข้าและส่งออกค่า Q สำหรับการกระทำที่เป็นไปได้ทั้งหมด:

import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense

# Define the Q-Network
q_network = Sequential([
    Dense(24, activation='relu', input_shape=(state_space_size,)),
    Dense(24, activation='relu'),
    Dense(action_space_size, activation='linear')
])

q_network.compile(optimizer='adam', loss='mse')

การเล่นซ้ำประสบการณ์

การเล่นซ้ำประสบการณ์

การเรียนรู้แบบ Q เชิงลึกใช้เทคนิคที่เรียกว่า การเล่นซ้ำประสบการณ์ เพื่อปรับปรุงการเรียนรู้:

  • จัดเก็บประสบการณ์ (state, action, reward, next_state) ไว้ในบัฟเฟอร์หน่วยความจำ
  • สุ่มตัวอย่างชุดข้อมูลย่อยของประสบการณ์เพื่อฝึกเครือข่าย Q
from collections import deque

# Initialize replay memory
memory = deque(maxlen=2000)

# Add experience to memory
memory.append((state, action, reward, next_state, done))

การฝึกเครือข่าย Q

การฝึกเครือข่าย Q

เราฝึกเครือข่าย Q โดยใช้ประสบการณ์จากบัฟเฟอร์หน่วยความจำ:

import numpy as np

# Sample a batch of experiences
batch_size = 32
batch = random.sample(memory, batch_size)

# Train the Q-Network
for state, action, reward, next_state, done in batch:
    target = reward
    if not done:
        target += gamma * np.max(q_network.predict(next_state[np.newaxis, ...]))
    q_values = q_network.predict(state[np.newaxis, ...])
    q_values[0][action] = target
    q_network.fit(state[np.newaxis, ...], q_values, epochs=1, verbose=0)

เครือข่ายเป้าหมาย

เครือข่ายเป้าหมาย

เพื่อทำให้การฝึกมีเสถียรภาพ DQN จะใช้ เครือข่ายเป้าหมาย:

  • คงเครือข่ายอีกชุดหนึ่งไว้สำหรับคำนวณค่า Q เป้าหมาย
  • คัดลอกน้ำหนักจากเครือข่าย Q ไปยังเครือข่ายเป้าหมายเป็นระยะ

ข้อดีของการเรียนรู้แบบ Q เชิงลึก

ข้อดีของการเรียนรู้แบบ Q เชิงลึก

การเรียนรู้แบบ Q เชิงลึกมีประโยชน์หลายประการ:

  • รองรับพื้นที่สถานะที่มีหลายมิติ เช่น รูปภาพ
  • สรุปใช้กับสถานะต่าง ๆ ได้โดยใช้โครงข่ายประสาทเทียม
  • สามารถแก้โจทย์ที่ซับซ้อน เช่น เกม Atari และการควบคุมหุ่นยนต์

สรุปและขั้นตอนถัดไป

สรุปและขั้นตอนถัดไป

ในบทเรียนนี้ เราได้:

  • สำรวจพื้นฐานของการเรียนรู้แบบ Q เชิงลึก
  • สร้างเครือข่าย Q เพื่อประมาณค่า Q
  • อภิปรายการเล่นซ้ำประสบการณ์และเครือข่ายเป้าหมายเพื่อให้การฝึกมีเสถียรภาพ

ถัดไป เราจะสำรวจ OpenAI Gym และนำการเรียนรู้แบบเสริมกำลังไปใช้ในสภาพแวดล้อมจำลอง

การเรียนรู้แบบ Deep Q — ภาพประกอบ 10

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

บทเรียน “การเรียนรู้แบบ Deep Q” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การเรียนรู้แบบ Deep Q” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Python Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Python Academy มีบทเรียนทั้งหมด 5 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การเรียนรู้แบบ Deep Q”

การใช้โครงข่ายประสาทเทียมสำหรับการเรียนรู้แบบเสริมกำลัง คุณปฏิบัติ Python Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Python Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Python Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 5 บทเรียน

บทเรียน “การเรียนรู้แบบ Deep Q” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Python Academy นี้ได้ไหม

ได้ บทเรียน Python Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

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