0Pricing
Learn AI with Python · Урок

Реализация Q-таблицы в Python

Простой пример Q-обучения

«Реализация Q-таблицы в Python» — бесплатный урок Learn AI with Python на CoddyKit. Это урок 3 из 5. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Learn AI with Python, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Learn AI with Python содержит 5 уроков всего.

Реализация Q-обучения на Python

Реализация Q-обучения на Python

В этом уроке мы реализуем простой алгоритм Q-обучения на Python. Агент научится перемещаться по сеточному миру, чтобы максимизировать получаемые вознаграждения.

Реализация Q-таблицы в Python — иллюстрация 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-таблица инициализируется нулевыми значениями zeros для всех пар «состояние — действие».

# 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-обучение имеет некоторые ограничения:

  • Плохо масштабируется для сред с большими пространствами состояний и действий.
  • В сложных средах обучение может быть медленным.
  • Требуется чётко определённое представление состояний и действий.

Итоги и дальнейшие шаги

Итоги и дальнейшие шаги

В этом уроке мы:

  • Реализовали простой алгоритм Q-обучения на Python.
  • Обучили агента перемещаться по миру-сетке с помощью Q-таблицы.
  • Оценили изученную политику и визуализировали Q-таблицу.

Далее мы изучим глубокое Q-обучение, в котором для работы со средами с большими пространствами состояний и действий используются нейронные сети.

Реализация Q-таблицы в Python — иллюстрация 10

Часто задаваемые вопросы

Урок «Реализация Q-таблицы в Python» бесплатный?

Да — полный текст урока «Реализация Q-таблицы в Python» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Learn AI with Python, подпишись на CoddyKit PRO. Курс Learn AI with Python содержит 5 уроков всего.

Чему я научусь в уроке «Реализация Q-таблицы в Python»?

Простой пример Q-обучения Ты практикуешь Learn AI with Python с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Learn AI with Python?

Предыдущий опыт не требуется. Learn AI with Python на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 5.

Сколько времени занимает урок «Реализация Q-таблицы в Python»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Learn AI with Python?

Да. Каждый урок Learn AI with Python включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Основные понятия обучения с подкреплением
  2. Концепция Q-таблицы
  3. Реализация Q-таблицы в Python
  4. Глубокое Q-обучение
  5. Изучение OpenAI Gym
← Назад к Learn AI with Python