Melaksanakan Jadual Q dalam Python
Contoh ringkas pembelajaran Q.
Melaksanakan Jadual Q dalam Python ialah pelajaran Python Academy percuma di CoddyKit. Ini ialah pelajaran 3 daripada 5. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Python Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Python Academy merangkumi sejumlah 5 pelajaran.
Melaksanakan Pembelajaran-Q dalam Python
Dalam pelajaran ini, kita akan melaksanakan algoritma Pembelajaran-Q yang ringkas dalam Python. Ejen akan belajar menavigasi dunia grid untuk memaksimumkan ganjarannya.

Menentukan Persekitaran
Kita menentukan dunia grid 4×4 yang ringkas. Ejen bermula di penjuru kiri atas dan mesti sampai ke penjuru kanan bawah untuk menerima ganjaran.
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] = 10Memulakan Jadual-Q
Jadual-Q dimulakan dengan zeros untuk semua pasangan keadaan-tindakan.
# Initialize the Q-Table
q_table = np.zeros((num_states, num_actions))
print("Initial Q-Table:")
print(q_table)Melaksanakan Algoritma Pembelajaran-Q
Kita menggunakan parameter berikut:
- α (Kadar Pembelajaran): Mengawal sejauh mana maklumat baharu mengatasi maklumat lama.
- γ (Faktor Diskaun): Menentukan pemberat ganjaran masa hadapan berbanding ganjaran serta-merta.
- ε (Kadar Penerokaan): Mengimbangi penerokaan dan eksploitasi.
# 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 - 1Menilai Dasar yang Dipelajari
Selepas latihan, kita menilai dasar dengan mengikuti tindakan optimum yang disimpan dalam Jadual-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)Memvisualisasikan Jadual-Q
Kita boleh memvisualisasikan Jadual-Q untuk memahami nilai yang dipelajari bagi setiap pasangan keadaan-tindakan:
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()Kelebihan Pembelajaran-Q
Pembelajaran-Q menawarkan beberapa manfaat:
- Mudah difahami dan dilaksanakan.
- Boleh mengendalikan persekitaran stokastik.
- Menuju kepada dasar optimum dengan penerokaan yang mencukupi.
Batasan Pembelajaran-Q
Pembelajaran-Q mempunyai beberapa batasan:
- Tidak boleh diskalakan dengan baik untuk persekitaran yang mempunyai ruang keadaan-tindakan yang besar.
- Pembelajaran mungkin perlahan dalam persekitaran yang kompleks.
- Memerlukan perwakilan keadaan-tindakan yang ditakrifkan dengan baik.
Ringkasan dan Langkah Seterusnya
Dalam pelajaran ini, kita telah:
- Melaksanakan algoritma Pembelajaran-Q yang ringkas dalam Python.
- Melatih ejen untuk menavigasi dunia grid menggunakan Jadual-Q.
- Menilai dasar yang dipelajari dan memvisualisasikan Jadual-Q.
Seterusnya, kita akan meneroka Pembelajaran-Q Mendalam, yang menggunakan rangkaian neural untuk mengendalikan persekitaran dengan ruang keadaan-tindakan yang besar.

Pelajari Python dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 76
- Pelajaran
- 320
Soalan Lazim
Adakah pelajaran “Melaksanakan Jadual Q dalam Python” percuma?
Ya — teks penuh “Melaksanakan Jadual Q dalam Python” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Python Academy, tingkat taraf kepada CoddyKit PRO. Kursus Python Academy merangkumi sejumlah 5 pelajaran.
Apakah yang akan saya pelajari dalam “Melaksanakan Jadual Q dalam Python”?
Contoh ringkas pembelajaran Q. Anda berlatih Python Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Python Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Python Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 5.
Berapa lamakah pelajaran “Melaksanakan Jadual Q dalam Python” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Python Academy ini?
Ya. Setiap pelajaran Python Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Konsep Asas Pembelajaran Pengukuhan
- Konsep Jadual Q
- Melaksanakan Jadual Q dalam Python
- Pembelajaran Q Mendalam
- Meneroka OpenAI Gym