0Pricing
Python Academy · レッスン

PythonでのQテーブル実装

Q学習の簡単な例に取り組みます

「PythonでのQテーブル実装」はCoddyKit上の無料Python Academyレッスンです。 これはレッスン3/5です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはPython Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Python Academyコースには全5レッスンが含まれています。

PythonでQ学習を実装する

PythonでQ学習を実装する

このレッスンでは、Pythonで簡単なQ学習アルゴリズムを実装します。エージェントは、報酬を最大化するためにグリッドワールド内を移動する方法を学習します。

PythonでのQテーブル実装 — イラスト1

環境を定義する

環境を定義する

エージェントが左上の隅から開始し、報酬を受け取るために右下の隅へ到達しなければならない、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] = 10

Qテーブルを初期化する

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テーブル実装 — イラスト10

よくある質問

「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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 強化学習の基本概念
  2. Qテーブルの概念
  3. PythonでのQテーブル実装
  4. Deep Q-Learning
  5. OpenAI Gymを使ってみる
← Python Academyに戻る