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

เหตุใดจึงต้องใช้การเรียนรู้แบบ Q เชิงลึก
เหตุใดจึงต้องใช้การเรียนรู้แบบ Q เชิงลึก
การเรียนรู้แบบ Q เชิงลึกช่วยแก้ข้อจำกัดของการเรียนรู้แบบ Q แบบดั้งเดิม:
- รองรับพื้นที่สถานะที่มีหลายมิติ เช่น รูปภาพ
- ไม่จำเป็นต้องจัดเก็บตาราง Q ขนาดใหญ่ไว้ในหน่วยความจำ
- ทำให้เรียนรู้ลักษณะทั่วไปข้ามสถานะต่าง ๆ ได้โดยใช้โครงข่ายประสาทเทียม
อัลกอริทึม DQN
อัลกอริทึม DQN
การเรียนรู้แบบ Q เชิงลึกใช้โครงข่ายประสาทเทียมที่เรียกว่า เครือข่าย Q เพื่อประมาณค่า Q ขั้นตอนหลักมีดังนี้:
- เริ่มต้นเครือข่าย Q ด้วยน้ำหนักแบบสุ่ม
- โต้ตอบกับสภาพแวดล้อมเพื่อรวบรวมชุดข้อมูลประสบการณ์
(state, action, reward, next_state) - ปรับปรุงเครือข่าย 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 และนำการเรียนรู้แบบเสริมกำลังไปใช้ในสภาพแวดล้อมจำลอง

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