Читаем Искусственный интеллект. Машинное обучение полностью

5. Применение метода кластеризации K-means: Мы создаем объект `KMeans` с указанным количеством кластеров и применяем его к стандартизированным данным методом `fit`. Затем мы используем полученную модель для предсказания кластеров для каждого клиента.

6. Визуализация результатов: Мы визуализируем результаты кластеризации, размещая каждого клиента на плоскости с осью X (возраст) и осью Y (расходы), окрашивая их в соответствии с прогнозируемым кластером. Также мы отображаем центры кластеров (центроиды) красными крестами.


Обучение с подкреплением (Reinforcement Learning)

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

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

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


Пример 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

Перейти на страницу:

Похожие книги

Об интеллекте
Об интеллекте

В книге "Об интеллекте" Джефф Хокинс представляет революционную теорию на стыке нейробиологии, психологии и кибернетики и описывающую систему "память-предсказание" как основу человеческого интеллекта. Автор отмечает, что все предшествующие попытки создания разумных машин провалились из-за фундаментальной ошибки разработчиков, стремившихся воссоздать человеческое поведение, но не учитывавших природу биологического разума. Джефф Хокинс предполагает, что идеи, сформулированные им в книге "Об интеллекте", лягут в основу создания истинного искусственного интеллекта - не копирующего, а превосходящего человеческий разум. Кроме этого книга содержит рассуждения о последствиях и возможностях создания разумных машин, взгляды автора на природу и отличительные особенности человеческого интеллекта.Книга рекомендуется всем, кого интересует устройство человеческого мозга и принципы его функционирования, а также тем, кто занимается проблемами разработки искусственного интеллекта.

Джефф Хокинс , Джеф Хокинс , Сандра Блейксли , Сандра Блэйксли

Зарубежная компьютерная, околокомпьютерная литература / Технические науки / Прочая компьютерная литература / Образование и наука / Книги по IT