ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ

Обучение с подкреплением: как ИИ учится играть, не зная правил

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

Здесь у модели нет учителя с ответами — есть только очки за хорошие ходы и штрафы за плохие, и из этого она сама выводит, как побеждать.
Обучение с подкреплением — это обучение методом проб, ошибок и наград. Не «вот правильный ответ», а «попробуй, и я скажу, стало лучше или хуже».

Чем это отличается от обычного обучения

В большинстве задач сети показывают примеры с ответами: вот фото — это кот. Но представьте, что нужно научить ИИ играть в шахматы или управлять роботом. Правильного хода в каждый момент никто не знает — есть только итог: выиграл или проиграл, дошёл или упал. Здесь работает другой подход. Модель действует, получает награду (число: хорошо или плохо) и постепенно понимает, какие действия ведут к успеху.

Словарь из трёх слов

АгентТот, кто учится и принимает решения (наш ИИ)
СредаМир, в котором он действует (игра, лабиринт, дорога)
НаградаСигнал от среды: насколько хорош был ход

Цикл прост: агент смотрит на текущее состояние среды, совершает действие, среда меняется и выдаёт награду. Цель агента — выбрать такую стратегию (политику), чтобы суммарная награда за всю игру была максимальной.

Главная сложность — отложенная награда

В шахматах за блестящий ход в начале партии очков не дают — награда (победа) приходит через сорок ходов. Как понять, что именно тот ранний ход всё решил? Это центральная трудность. Алгоритмы учатся раздавать заслугу назад во времени: если партия выиграна, ходы, которые к ней привели, чуть повышаются в ценности. Так агент постепенно начинает ценить действия, чья выгода проявится лишь в будущем.

Разведка против добычи

Есть и фундаментальная дилемма. Допустим, агент нашёл ход, дающий немного очков. Стоит ли всегда его повторять (добыча известного) или иногда пробовать новое в надежде на лучшее (разведка)? Если только эксплуатировать находку — никогда не узнаешь, нет ли пути выгоднее. Если только исследовать — растеряешь очки на бесконечных экспериментах. Хорошие алгоритмы держат баланс: чаще делают лучшее известное, но иногда рискуют.

Простейший пример награды

import random

# два игровых автомата с разной щедростью
chances = {"A": 0.3, "B": 0.7}
value   = {"A": 0.0, "B": 0.0}   # оценка ценности, агент её ещё не знает

for step in range(2000):
    arm = random.choice(["A", "B"])      # пробуем наугад (разведка)
    reward = 1 if random.random() < chances[arm] else 0
    value[arm] += 0.01 * (reward - value[arm])   # подтягиваем оценку к опыту

print({k: round(v, 2) for k, v in value.items()})
# оценки сходятся к ~0.3 и ~0.7 — агент сам нащупал, что B щедрее

Почему это привело к громким победам

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

Не только игры

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

#агент#игры ИИ#награда#обучение с подкреплением