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

คำถามที่พบบ่อย
บทเรียน “การเรียนรู้แบบ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- แนวคิดพื้นฐานของการเรียนรู้แบบเสริมกำลัง
- แนวคิด Q-Table
- การนำ Q-Table ไปใช้ใน Python
- การเรียนรู้แบบ Deep Q
- สำรวจ OpenAI Gym