PythonでのQテーブル実装
Q学習の簡単な例に取り組みます
「PythonでのQテーブル実装」はCoddyKit上の無料Python Academyレッスンです。 これはレッスン3/5です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはPython Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Python Academyコースには全5レッスンが含まれています。
PythonでQ学習を実装する
PythonでQ学習を実装する
このレッスンでは、Pythonで簡単なQ学習アルゴリズムを実装します。エージェントは、報酬を最大化するためにグリッドワールド内を移動する方法を学習します。

環境を定義する
環境を定義する
エージェントが左上の隅から開始し、報酬を受け取るために右下の隅へ到達しなければならない、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] = 10Qテーブルを初期化する
Qテーブルを初期化する
Qテーブルは、すべての状態と行動の組み合わせを0で初期化します。
# 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学習にはいくつかの限界があります。
- 状態と行動の空間が大きい環境にはうまく対応できません。
- 複雑な環境では学習に時間がかかることがあります。
- 状態と行動を適切に表現する方法が必要です。
まとめと次のステップ
まとめと次のステップ
このレッスンでは、次のことを行いました。
- Pythonで簡単なQ学習アルゴリズムを実装しました。
- Qテーブルを使って、エージェントにグリッドワールド内の移動を学習させました。
- 学習した方策を評価し、Qテーブルを可視化しました。
次は、ニューラルネットワークを使って状態と行動の空間が大きい環境に対応するDeep Q学習について学びます。

よくある質問
「PythonでのQテーブル実装」レッスンは無料ですか?
はい。「PythonでのQテーブル実装」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Python Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Python Academyコースには全5レッスンが含まれています。
「PythonでのQテーブル実装」で何を学びますか?
Q学習の簡単な例に取り組みます ブラウザで直接実行するハンズオンコードでPython Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Python Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのPython Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/5です。
「PythonでのQテーブル実装」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このPython Academyレッスンでコードを書いて実行できますか?
はい。すべてのPython Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 強化学習の基本概念
- Qテーブルの概念
- PythonでのQテーブル実装
- Deep Q-Learning
- OpenAI Gymを使ってみる