Читать книгу Гений кода. Истории самых впечатляющих ИИ-проектов, которые уже меняют жизнь - Ар'лан ис'Дрекхэм - Страница 7
Часть 2: Рождение титанов. Истории прорывов, изменивших правила игры
Глава 6. DeepMind играет в Atari: Как ИИ научился играть в игры, не зная правил (Reinforcement Learning)
ОглавлениеКрючок: Щенок перед телевизором
Представь, что ты принёс в дом маленького щенка. Он ещё ничего не знает. Ты включаешь телевизор, ставишь старую приставку Atari с игрой Breakout (это где нужно отбивать шарик платформой, разбивая кирпичи) и говоришь: «Играй».
Щенок смотрит на экран. Видит движущиеся пиксели. Видит платформу, которую можно двигать. Он не знает правил. Он не знает, что нужно отбивать мяч. Он не знает, что кирпичи нужно разбивать. Он просто тыкает лапой в джойстик.
Сначала он двигает платформу влево, вправо, просто так. Мяч падает. На экране появляется надпись «Game Over». Щенок не понимает, что случилось. Он снова тыкает. Снова мяч падает.
Но через несколько часов происходит чудо. Щенок начинает ловить мяч. Он двигает платформу туда, куда летит шарик. Ещё через несколько часов он не просто ловит, а целится так, чтобы разбить все кирпичи. А через день он находит идеальную стратегию, о которой не догадываются даже люди.
Примерно так в 2013—2015 годах мир наблюдал за тем, как программа DeepMind училась играть в 49 игр Atari, не зная ничего – только глядя на пиксели.
Герой: Вундеркинд с душой геймера
За этим проектом стоит человек с необычной судьбой – Демис Хассабис.
В 4 года он начал играть в шахматы. В 8 лет уже программировал. В 13 лет стал гроссмейстером по шахматам (второй в мире рейтинг в своей возрастной группе). В 17 лет бросил школу, чтобы работать… геймдизайнером. Да-да, он создавал игры. Одна из них – знаменитый симулятор больницы Theme Hospital, где нужно лечить смешных пациентов.
Потом он ушёл в науку, защитил диссертацию по нейробиологии (изучал, как работает память и воображение у людей) и в 2010 году основал компанию DeepMind.
Его гениальность была в синтезе:
– Он понимал, как устроены игры (как геймдизайнер).
– Он понимал, как устроен мозг (как нейробиолог).
– Он понимал, как устроен ИИ (как программист).
И он задал вопрос: «А что, если заставить компьютер учиться так же, как учится ребёнок? Не по правилам, а методом проб и ошибок?»
Конфликт: Как научить тому, чему сам не знаешь
До DeepMind все игры, в которые выигрывал компьютер, были «заточены» под конкретную задачу. Deep Blue обыграл Каспарова, но не умел играть даже в крестики-нолики. Это были узкие специалисты.
Хассабис хотел создать общий интеллект – программу, которая сможет научиться чему угодно, просто глядя на экран.
Но как это сделать? Если ты учишь нейросеть распознавать котов, ты показываешь ей котов и говоришь: «Вот кот, молодец». А здесь нет правильных ответов. Есть только экран, джойстик и счёт в углу. Ты даже не знаешь, какой ход правильный, потому что результат может наступить через 1000 шагов.
Представь, что ты учишь кого-то играть в шахматы, но не говоришь правила и не показываешь, как ходят фигуры. Ты просто даёшь джойстик и говоришь: «Смотри на экран и крути. Если в конце счёт вырастет – значит, ты делал что-то правильно». Как тут вообще можно чему-то научиться?
Развязка: DQN – игрок, который запоминает сны
Команда DeepMind придумала элегантное решение. Они создали систему под названием Deep Q-Network (DQN).
В ней было три гениальных компонента.
Компонент 1: Глаза (Свёрточная нейросеть).
Как и в AlexNet, DQN использовала нейросеть, которая смотрела на пиксели. Она училась распознавать на экране важные объекты: мяч, платформу, кирпичи, врагов. Это был её «зрительный котелок».
Компонент 2: Инстинкт (Q-learning).
Второй компонент – это математический метод, который оценивал, насколько хорошо совершить то или иное действие в данной ситуации. Скажем, если мяч летит влево, то нажать «влево» – это хорошо (+10 баллов к будущей победе), а нажать «вправо» – глупо (-100 баллов). Нейросеть училась предсказывать эту «ценность» каждого действия.
Компонент 3: Память снов (Experience Replay).
Это был главный трюк. Обычно, когда мы учимся, мы учимся на последовательности событий. Но в играх события сильно связаны: 100 кадров подряд мяч просто летит. Если учиться на этом, нейросеть «зациклится» и будет думать, что мир всегда такой.
DeepMind придумали гениально простую вещь: они заставили программу запоминать свой игровой опыт (действие, ситуацию, награду) в специальный «буфер памяти». А потом, во время обучения, они не кормили её последними кадрами, а случайно выбирали кусочки из всей памяти.
Это как если бы ты учился играть на гитаре не просто повторяя одно и то же упражнение, а вспоминая все свои попытки за месяц – и удачные, и провальные – и анализируя их вперемешку. Мозг так не делает, но для машины это оказалось секретом успеха.
Инсайт: Момент, когда мир ахнул
В 2013 году DeepMind показала первые результаты на семи играх. В 2015 году вышла статья в журнале Nature про 49 игр. Результаты были сенсационными.
– Breakout (Арканоид): Сначала программа играла хуже ребёнка. Через 2 часа – как средний игрок. Через 4 часа она нашла идеальную стратегию: пробить дыру в боку, загнать мяч за стену кирпичей и дать ему там летать, снося всё подряд. Люди до этого додумывались не сразу.
– Pong (теннис): Обыграла человека всухую.
– Space Invaders: Набрала в 2—3 раза больше очков, чем профессиональный игрок.
– Video Pinball (пинбол): Превысила человеческий результат в 200 раз.
Из 49 игр DQN показала результат лучше предыдущих алгоритмов в 43 играх, а в половине случаев играла лучше человека.
Куда не дотянулся гений
Конечно, были и провалы. Самая знаменитая игра, в которой DQN опозорилась, – Montezuma’s Revenge («Месть Монтесумы»).
Это бродилка, где нужно собирать ключи, открывать двери, избегать ловушек. Награда (очки) выпадает очень редко – только когда ты нашёл сокровище в конце уровня. Между первым шагом и наградой – сотни действий. Нейросеть не могла понять, какое именно действие привело к успеху. Она просто тыкалась как слепая и умирала.
Это показало важную вещь: DQN отлично работает там, где награда частая и понятная, но пасует перед долгосрочным планированием. (Эту проблему потом будут решать другие архитектуры).
Сделка века: Google платит 650 миллионов
Самое забавное в этой истории – как DeepMind купили.
В 2014 году, ещё до публикации в Nature, Хассабис пришёл на переговоры с Google. Он показал демо: программа играет в Breakout, сама учится, находит стратегии.
Ларри Пейдж (сооснователь Google) смотрел и не мог поверить своим глазам. Он понял, что это не просто игра. Это технология, которая может оптимизировать всё: от охлаждения дата-центров до показа рекламы.
Google купила DeepMind за 400 миллионов фунтов стерлингов (около 650 миллионов долларов). Для компании, у которой не было готового продукта, а были только идеи и пара статей, это было невероятно.
Наследие: От Atari к AlphaGo и дальше
Именно технология DQN стала фундаментом для всего будущего DeepMind:
– AlphaGo (2016), обыгравшая чемпиона мира по го, использовала те же принципы обучения с подкреплением, только усложнённые.
– AlphaFold, решившая задачу сворачивания белков, тоже наследница этой философии.
– Оптимизация серверов Google: DQN научили экономить электроэнергию на охлаждении (об этом будет отдельная глава).
Твой ход: Чему нас учит история с приставкой
– Награда должна быть понятной. Если ты хочешь чему-то научиться (или научить нейросеть), нужна частая и честная обратная связь. Без неё даже гений заблудится, как в Montezuma’s Revenge.
– Ошибки – это опыт. Метод «воспроизведения опыта» (Replay) – гениальная метафора для жизни. Иногда полезно не просто мчаться вперёд, а остановиться, вспомнить свои прошлые действия (и удачные, и нет) и понять, что сработало, а что нет.
– Синтез – сила. Хассабис победил не потому, что был лучшим программистом, а потому что понимал игры, мозг и математику одновременно. Самые крутые прорывы случаются на стыке дисциплин.
P.S.
Знаешь, что сказал Демис Хассабис, когда его спросили, зачем он учит ИИ играть в игры?
«Игры – это идеальная песочница для интеллекта. Если мы научимся создавать интеллект в игре, мы сможем применить его в реальности: в медицине, энергетике, науке».
Оказалось, он не шутил.