Снова о сознании, счете и чуйке

Jan 22, 2018 07:33

Наткнулся случайно на статью, которая мне показалась интересной. Автор записи - Andrej Karpathy, Director of AI at Tesla. Тема - возможность приложения успехов, достигнутых машинами на полях классических настольных игр, к реальным задачам.

Я уже как-то писал на эту тему, но раздел про нейронные сетей скипнул из-за недостаточной компетентности в этом вопросе.

Легко представить идеальную игру, в которой компьютеру будет максимально трудно. Это должна быть:
1) Игра с неполной информацией.
2) Игра с множеством разнородных аспектов, имеющих стратегическую важность.
3) Игра с неизменно большой вариативностью осмысленных ходов, лучше вообще не дискретная.
4) Игра, в которой нужно принимать решения с очень далеко идущими последствиями.
5) Игра, которая находится под большим влиянием не формализуемого фактора, например, фактора случайности.
6) Игра, которая подразумевает участие как можно большего числа игроков.

Вот, теперь подоспело логическое продолжение того поста.

Из упомянутой статьи, перескажу ту часть, которая по существу, опустив вводную. Если вдруг кто-то из читателей провел последний год на подводной лодке и не знает, что такое AlphaGo, это можно легко нагуглить. Ну или понять из контекста.

Почему го поддалась нейросети пересказ

Можно выделить 7 причин

1) У игры есть четкие и полные правила, не подверженные случайным и внешним воздействиям, в соответствии с которыми, одинаковая последовательность действий обоих игроков всегда ведет к одинаковому результату.
2) Полнота информации.
3) Дискретное пространство действий. Количество возможных ходов большое, но не бесконечное, и тем более не континуальное.
4) У нас есть идеальный симулятор, позволяющий точно выяснить последствия действий - сама игра. Это достаточно сильное предположение, если речь идет о го, или любой другой игре, но в реальной жизни оно до сих пор выполняется редко. (При всем потрясающем развитии численного моделирования, оно все еще лимитирует возможности машинного обучения - nik_pog).
5) Каждая партия относительно короткая - она включает в себя примерно 200 ходов. Это очень мало в сравнении с реальными задачами, где для получения поддающегося оценке результата могут потребоваться многие тысячи элементарных действий.
6) Ясная и быстрая оценка позволяет получить огромный опыт проб и ошибок. Другими словами, агент может выигрывать и проигрывать миллионы раз, учась медленно, но верно. (Параметр "медленно", в связи с 4, задается только скоростью кластера, и, в связи с 5, получается не так уж медленно - nik_pog). Именно так обычно работают нейронные сети.
7) Огромная база сыгранных людьми партий позволяет программе начинать не "с нуля". (пункт с самого начался казался слабым и успешно снят версией AlphaGo Zero - nik_pog)

В чем разница с роботами, решающими реальные задачи пересказ

Рассматривается немного юмористический, на взгляд автора, пример приложения методики AlphaGo к роботу-сортировщику с Amazon Picking Challenge, задача которого заключается в том, чтобы находить заказанный товар на складе и транспортировать его с полки на упаковку. Казалось бы, речь идет о самой простой, рутинной, "механической" работе, которая, на проверку, оказывается не такой уж и механической.

Во-первых, неуклюжие и шумные движения робота в трех измерениях не удовлетворяют условиям 1 и 3. Во-вторых, робот не получает всю необходимую информацию о своем окружении "на халяву", иногда ее нужно собирать по запросу с внешних датчиков, что нарушает условие 2. В-третьих, даже для такого повседневного случая у нас нет достаточно хорошей численной модели. Да, на проверку, корректное описание всех сил, которые будут действовать, когда читатель возьмет с полки пирожок, оказалось не слишком тривиальной задачей. В-четвертых, при определенных условиях, количество шагов на пути к успеху может быть гораздо больше, чем количество ходов в го. А с ростом длины последовательности действий время, необходимое для обучения сети методом проб и ошибок, растет не линейно, потому что усиливается проблема определения ответственности за конечный результат. В-пятых, в реальном мире для робота гораздо сложнее собрать миллионы проб и ошибок. Мало того, что прототипу чисто физически нужно все это откатать, провальные действия могут вывести его из строя, а успешные вырабатывают ресурс. Можно тренировать робота на симуляторе, но см. выше. Если говорить о более общем случае, чем робот-сортировщик, многие задачи еще и не имеют тривиальной функции оценки. Например, как вы автоматически оцените успешность робота-повара? Наконец, никакой возможности напрямую опереться на опыт сыгранных людьми партий тут вообще нет и быть не может, по понятным причинам.

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

Далее мой собственный текст

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

Ладно бы с моделированием. Задача написания адекватного симулятора морского, воздушного, или, если мы говорим про фантастику, космического боя, который отражал бы реальность хотя бы с той точностью, с которой люди на самом деле принимают ее в расчет, - скорее всего, исключительно вопрос наличия заказа. Во времена Холодной войны, когда мощные компьютеры были в дефиците, по заказу оборонных ведомств стран НАТО были разработаны многие варгеймы, что, впоследствии, породило моду на подобные развлечения и среди гражданских. По аналогии, разработка еще и обречена окупиться. Да, пока все бабушки/дедушки и часть тетенек/дяденек постсоветского пространства клеймят игры чем-то исключительно детским и исключительно вредным, на Западе игры широко используются в обучении, потому что интерактив запоминается лучше. Ну и потому, что это больше соответствует американской концепции подготовки кадров. И это то, что восхищает в американцах. Создаем лазертаг для тренировки военных, продаем гражданскую версию, окупаем затраты дважды. Создаем варгейм для тренировки военных, продаем гражданскую версию, окупаем затраты дважды. Создаем симулятор для тренировки нейросети...

Ладно бы с тысячами ходов. Во-первых, это чисто инженерная задача. Во-вторых, это очень большая проблема, когда речь идет о стратегии, и чуть меньшая, когда речь идет об оперативном искусстве, но не там острее всего нужна нейросеть. Вспоминая огромные потери ВС РФ в Грозном или ВСУ на Донбассе (как наиболее близкие темы, понятно, что натовцы тоже временами губили солдат почем зря), допущенные в ситуации подавляющего превосходства в силах из-за решений, которые могли быть приняты только при полностью неадекватной оценке обстановки, невольно задумываешься о том, сколько жизней мог бы спасти именно тактический компьютер. Даже не в качестве штуки, которая принимает решения, а банально в качестве консультативного органа, который способен быстро выдать оценку предлагаемого варианта, просчитав вероятные ходы обеих сторон на несколько дней. Кроме того, что гораздо ценнее, тактический компьютер может, как это уже сделала шахматная программа, обратить внимание людей на многие вещи, людям отнюдь не очевидные, и сильно помочь с выработкой новой доктрины. То есть, снять вечную проблему генералов, готовящихся к прошлой войне. В-третьих, если задуматься о том, какие именно решения в гипотетической армии будущего следует переложить на тактический компьютер, а какие оставить на совести живых командиров на местах, можно резко снизить число условных "ходов".

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

Похожий пример на суше - Геттинсберг. По очкам это чистая ничья, феерический провал последнего дня со стороны конфедератов (вошедший в историю как High Water Mark или "Весь второй день мы видим, что попытки атаковать пехотой через открытую местность проваливаются с огромными потерями, хм... чем мы займемся на третий день, Ли? Тем же, что и вчера, Лонгстрит...") компенсировал феерическое же раздолбайство первого дня со стороны северян. Но в контексте кампании южане потеряли шанс выиграть войну, который, в контексте войны оказался последним. И только с учетом этих более высоких уровней решение генерала Ли устроить High Water Mark вместо того, чтобы спокойно отойти, сохранив армию, кажется оправданным. Потому что при наличии понимания, что это не слишком большой, но, скорее всего, последний шанс выиграть войну, рисковать стоило. Мы можем знать лишь вероятность, лишь случай полный господин, из всех сценариев возможных он представляет нам один(С). В общем же случае, это откровенный идиотизм, что, разумеется, и скажет тактический компьютер.

Наиболее показателен пример Бородинской битвы, которая в наших учебниках истории до сих пор считается победой, потому что "нанесли существенный урон армии противника и смогли сохранить силы для грядущих сражений". На самом же деле, основание сомнительное, и правильная оценка полностью зависит от уровня, который мы выберем. Тактическая ничья (примерно равные потери, ни одна из сторон не достигла решительного успеха), оперативная победа французов (дорога на Москву открыта), стратегическая победа русских (см. выше). Если бы компьютер разыграл подобное сражение в своей идеальной модели, как он должен был бы его оценить? Сильно зависит от общего контекста. Будь это сражение не битвой за Москву, а битвой за Берлин - чистая победа французов. После Берлина отступать некуда. Будь это сражение за Петербург, еще бабушка надвое сказала, но в реальности Наполеон проваливается даже обиднее, чем Ли. Ли хотя бы наступал на правильную столицу.

Перспективы

Итак, до тактического компьютера, который можно было бы применить к реальной войне, нам еще далеко. Что же является следующим шагом? А следующим шагом является программа, которая не оставляет человеку шансов в старкрафте, героях, доте или других классических дисциплинах киберспорта. Пока мы не можем ничего сделать с моделью или функцией оценки, надо работать в том классе, где на простых примерах уже все получилась, решая чисто технические проблемы с вариативностью ходов и продолжительностью партии. На сладкое: в киберспорте часто разыгрываются большие деньги, а у перечисленных игр огромное количество увлеченных поклонников, и даже не очень совершенный, но полезный для тренировки симулятор можно будет неплохо продать под слоганом "Expert AI mode".

Да, я в курсе, что для некоторых бабушек/дедушек и части тетенек/дяденек постсоветского пространства шахматы - жутко интеллектуальная игра. Да, игра продержалась тысячу лет именно потому, что она невероятно глубокая, за счет чего довольно сложная. Но на "последний интеллектуальный бастион" ни при каком раскладе не тянет. Это все еще игра с бесконечно высоким уровнем абстракции, тогда как классические РТС хотя бы претендуют на отражение чего-то, похожего на реальность. Хоть и, по прежнему, сильно абстрактное. О тактическом компьютере как чем-то реализуемом можно будет говорить, когда напишут нормальный ИИ для Hearts of Iron, или другой игры, заявленной как симулятор военных действий. Это творение я вспомнил отнюдь не случайно, а потому что человек, который видел, как ведет себя тамошний ИИ, определенно не захочет служить под командованием тактического компьютера, как минимум на современном техническом уровне :)

Если бы я решал, куда идти дальше в этой области, нацелился бы на "Героев 3". Мы сохраняем дискретное пространство решений (но существенно его расширяем), идеальный симулятор, ясную оценку и огромное множество сыгранных людьми партий. У нас все еще довольно маленькая нагрузка на технику, что позволяет программе быстро сыграть миллионы собственных партий. Зато мы переходим к непосредственному штурму двух бастионов, которые до сих пор давались технике сложно: неполной информации и фактору случайности. Покерные программы сейчас кое-как умеют с этим работать, но даже в такой концептуально старой игре, как "герои", неполной информации гораздо больше, чем в покере, и случайность надо учитывать на существенно более длительном (в элементарных решениях) промежутке.

Это все равно гораздо проще, чем создать тактический компьютер, сравнимый с человеческим мозгом, но было бы значимой вехой.

фантастика, история, техника

Previous post Next post
Up