Читать книгу Искусственный интеллект. Машинное обучение онлайн
row = max(0, row – 1)
elif action == 'down':
row = min(grid_world.shape[0] – 1, row + 1)
elif action == 'left':
col = max(0, col – 1)
elif action == 'right':
col = min(grid_world.shape[1] – 1, col + 1)
return (row, col)
# Функция для проверки завершения игры и получения награды
def get_reward(state):
row, col = state
if grid_world[row, col] == 1: # Если достигли целевой ячейки
return 10, True
return 0, False # Игра продолжается
# Функция для запуска игры
def play_game():
state = (0, 0) # Начальное состояние агента
total_reward = 0
done = False
while not done:
state = take_action(state)
reward, done = get_reward(state)
total_reward += reward
return total_reward
# Запуск игры
total_reward = play_game()
print("Total reward:", total_reward)
```
Это простой пример задачи обучения с подкреплением, где агент играет в игру "Сетка мира", перемещаясь по полю и получая награду за достижение целевой ячейки.
Пример 2
Рассмотрим пример задачи с использованием обучения с подкреплением. Давайте представим симуляцию игры в кости, где агент должен научиться выбирать наилучшие действия (выбор числа от 1 до 6) для максимизации своего выигрыша.
```python
import numpy as np
class DiceGame:
def __init__(self):
self.state = 0 # текущее состояние – результат броска кости
self.done = False # флаг окончания игры
self.reward = 0 # награда за текущий шаг
def step(self, action):
# Выполняем действие – бросаем кость
self.state = np.random.randint(1, 7)
# Вычисляем награду
if action == self.state:
self.reward = 10 # выигрыш, если действие совпало с результатом броска
else:
self.reward = 0 # нет выигрыша
# Устанавливаем флаг окончания игры (игра заканчивается после одного хода)
self.done = True
return self.state, self.reward, self.done
def reset(self):
# Сбрасываем состояние игры для нового эпизода
self.state = 0
self.done = False
self.reward = 0
return self.state
# Пример простой стратегии выбора действий – всегда выбираем число 3
def simple_strategy(state):
return 3
# Основной код обучения с подкреплением