Чтение онлайн

на главную

Жанры

Искусственный интеллект. Машинное обучение
Шрифт:

Пример 1

Давайте рассмотрим пример задачи обучения с подкреплением на простом примере – агент играет в игру "Сетка мира" (Gridworld). В этой игре агент находится на игровом поле, представленном в виде сетки, и его целью является достижение целевой ячейки, избегая при этом препятствий.

Для начала определим игровое поле. Давайте создадим сетку размером 4x4, где каждая ячейка может быть либо пустой, либо содержать препятствие или целевую ячейку.

```python

import numpy as np

#

Создание игрового поля

grid_world = np.array([

[0, 0, 0, 0], # Пустая ячейка

[0, -1, 0, -1], # Препятствие (-1)

[0, 0, 0, -1], # Препятствие (-1)

[0, -1, 0, 1] # Целевая ячейка (1)

])

```

Теперь создадим простое правило для агента: если агент находится в ячейке, он может выбирать случайное действие: двигаться вверх, вниз, влево или вправо. Если агент попадает в препятствие, он не двигается и остается на месте. Если агент достигает целевой ячейки, он получает награду +10 и игра завершается.

```python

import random

# Функция для выполнения действия в игре

def take_action(state):

row, col = state

if grid_world[row, col] == -1: # Если попали в препятствие, остаемся на месте

return state

action = random.choice(['up', 'down', 'left', 'right']) # Случайное действие

if action == 'up':

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

# Основной код обучения с подкреплением

env = DiceGame

total_episodes = 1000

learning_rate = 0.1

discount_rate = 0.99

q_table = np.zeros((6, 6)) # Q-таблица для хранения оценок ценности действий

for episode in range(total_episodes):

state = env.reset

done = False

while not done:

action = simple_strategy(state)

next_state, reward, done = env.step(action)

# Обновление Q-таблицы по формуле Q(s,a) = Q(s,a) + ? * (reward + ? * max(Q(s',a')) – Q(s,a))

q_table[state – 1, action – 1] += learning_rate * (reward + discount_rate * np.max(q_table[next_state – 1, :]) – q_table[state – 1, action – 1])

state = next_state

print("Q-таблица после обучения:")

print(q_table)

```

Этот код реализует простую симуляцию игры в кости и обновляет Q-таблицу на основе наград, полученных в процессе игры. Мы используем простую стратегию, всегда выбирая число 3. Однако, в реальных приложениях, агент мог бы изучать и выбирать действия на основе обучения Q-таблице, которая представляет собой оценку ценности различных действий в каждом состоянии.

Таким образом, таксономия задач машинного обучения помогает организовать разнообразие задач в соответствии с их основными характеристиками, что облегчает понимание и выбор подходящих методов и алгоритмов для решения конкретных задач.

1.3.2 Подробный анализ типов задач и подходов к их решению

В данном разделе мы проведем подробный анализ различных типов задач, с которыми сталкиваются специалисты в области машинного обучения, а также рассмотрим основные подходы к их решению.

Поделиться:
Популярные книги

Цеховик. Книга 1. Отрицание

Ромов Дмитрий
1. Цеховик
Фантастика:
попаданцы
альтернативная история
5.75
рейтинг книги
Цеховик. Книга 1. Отрицание

Безымянный раб [Другая редакция]

Зыков Виталий Валерьевич
1. Дорога домой
Фантастика:
боевая фантастика
9.41
рейтинг книги
Безымянный раб [Другая редакция]

Игрок, забравшийся на вершину. Том 8

Михалек Дмитрий Владимирович
8. Игрок, забравшийся на вершину
Фантастика:
фэнтези
рпг
5.00
рейтинг книги
Игрок, забравшийся на вершину. Том 8

Сумеречный Стрелок 2

Карелин Сергей Витальевич
2. Сумеречный стрелок
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Сумеречный Стрелок 2

Диверсант

Вайс Александр
2. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
5.00
рейтинг книги
Диверсант

Приручитель женщин-монстров. Том 2

Дорничев Дмитрий
2. Покемоны? Какие покемоны?
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Приручитель женщин-монстров. Том 2

Приручитель женщин-монстров. Том 4

Дорничев Дмитрий
4. Покемоны? Какие покемоны?
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Приручитель женщин-монстров. Том 4

Путь (2 книга - 6 книга)

Игнатов Михаил Павлович
Путь
Фантастика:
фэнтези
6.40
рейтинг книги
Путь (2 книга - 6 книга)

Эксперимент

Юнина Наталья
Любовные романы:
современные любовные романы
4.00
рейтинг книги
Эксперимент

Начальник милиции

Дамиров Рафаэль
1. Начальник милиции
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Начальник милиции

Ты нас предал

Безрукова Елена
1. Измены. Кантемировы
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Ты нас предал

Восход. Солнцев. Книга VII

Скабер Артемий
7. Голос Бога
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Восход. Солнцев. Книга VII

Идеальный мир для Лекаря 20

Сапфир Олег
20. Лекарь
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 20

Тринадцатый

NikL
1. Видящий смерть
Фантастика:
фэнтези
попаданцы
аниме
6.80
рейтинг книги
Тринадцатый