Комментарии 54
Я посмотрел несколько партий сыгранных AlphaGo Zero и больше всего меня впечатляет тот факт, что во многих позициях он играет варианты понятные человеку чисто интуитивно. Когда я смотрел игры master — это можно было объяснить тем что master и предыдущие версии учились на играх людей. Но то что ИИ сам, без участия человека пришел к "пониманию" игры, которое похоже на человеческое, на мой взгляд, говорит о том, что мы люди — не такие уж и тупые :)
Я совсем не специалист в ML, но мне кажется что принципы похожи, только если издалека смотреть. Человека (кроме умения перебором просчитывать позиции) учат каким-то принципам, которые просто сформулированы словами, например говорят, что в начале партии нужно занимать углы, что от стенки нужно прыгать на N+1 камень и тд. Учат какой-то своеобразной эстетике, говорят что кейма — хорошая форма, а пустой треугольник — плохая. То есть знания передаются в достаточно общем виде, и нет отбора более эффективного игрока. Я, если честно, ожидал, что манера игры Zero будет сильнее отличаться от человеческой.
Спасибо, я гляну ролик. Мне с высоты моего (тоже не сказать что высокого) 2 дана показалось, что я вижу параллели между игрой сильнейших про и zero. Конечно вполне возможно что мне просто показалось :)
Что касается формы, я не берусь определять что такое хорошая, а что такое плохая форма. Моя мысль в том, что у людей такое понятие существует, а вот у AlphaGo — вряд ли. Но при этом, создается ощущение, что AlphaGo соглашается с нашим интуитивным пониманием того, что такое хорошая форма.
"Принципы" которым учат — это знания людей выраженные в более простой форме.
На хабре была хорошая статья, где автор ML научил играть в шахматы а потом регрессионным анализом достал "стоимость" каждый из фигур, которые были приблизительно равны тем, что "написаны в учебнике".
(хотя для некоторых профессиональных игроков они отличались. я склоняюсь к тому, что это зависит от стиля игры. Например играя против одного игрока ты "боишься" его слонов, против другого лучше "бояться" коня.)
Вот, кстати, эта статья: https://habrahabr.ru/post/254753/
del
Я правильно понимаю, что из-за отсутствия MCTS в процессе игры, Zero в одной и той же позиции всегда будет выбирать один и тот же ход? А в версии master MCTS вносит некоторую случайность в игру?
И еще вопрос, время на обдумывание хода играет какую-то роль в версии Zero?
Время на обдумывание у Fan, Lee, Master и Zero одинаковое — 5 секунд на ход. Учитывая, что правила состязаний ограничивают время на партию, а не время на ход, думаю, они просто взяли с запасом.
Посмотрел сейчас внимательнее партии где zero играл белыми, master чаще делает новые ходы:
http://www.alphago-games.com/view/eventname/agzero_vs_agmaster/game/0/move/17
http://www.alphago-games.com/view/eventname/agzero_vs_agmaster/game/4/move/23
http://www.alphago-games.com/view/eventname/agzero_vs_agmaster/game/8/move/21
А вот тут zero разные ходы сыграл:
http://www.alphago-games.com/view/eventname/agzero_vs_agmaster/game/10/move/24
http://www.alphago-games.com/view/eventname/agzero_vs_agmaster/game/2/move/24
Получается во всех версиях есть какой-то случайный фактор при выборе хода.
Почему на победу в го потребовалось столько времени? Там так много вариантов?Количество вариантов — проблема важная, но не главная.
Грубо говоря, да.
Самая главная трудность там в функции оценки позиции. Ходы мало перебрать — нужно ещё понять, насколько они хороши. В шахматах позиция оценивается по относительно понятному набору критериев, которые более-менее можно формализовать. А в го оценка позиции поддается формальному описанию гораздо сложнее, она более комплексная и «человеческая».
Но в точки я думаю выиграю железную башку. (самообман)
Выиграйте, потому что за нейросети для точек пока никто не брался :)
Lol, да, точки… :) Когда по школе прошла эпидемия этой игры, образовалось несколько сильных игроков, выиграть у которых было очень трудно. И я стал по вечерам после (а иногда, каюсь, вместо) домашнего задания играть сам с собой двумя шариковыми ручками разного цвета. Через где-то месяц-два стал стабильно выигрывать у всех доступных рекодсменов. Стал, так сказать, Альфа-Точкой. ) Через неделю-две после этого со мной перестали играть от слова вообще. Интересно, что через года три, уже в армии, встретил такого же, как оказалось, Альфа-Точку: после пары часов напряжённой работы наших естественных нейросетей он-таки выиграл! И отказался играть со мной от слова вообще (а я был реально в шоке, слёзно просил дать возможность отыграться...). Эхх, детство...
В этом свете интересно отметить, что у Master и Zero идентичный алгоритм тренировки, идентичная архитектура, а все отличия заключаются в фичах, подаваемых на вход, и том, что Zero не тренируется на играх людей. И выигрывает.
Присутствует ещё одно отличие. Точнее важный нюанс. У Мастера по-видимому было 20 блоков, а значит и сравнивать его нужно с 20-блочным Зеро. Источники:
bestchinanews.com
sports.sina.com.cn
Но тогда выходит, что Мастер сильнее Зеро при равной глубине сети. Отсюда, rollout'ы со встроенными фичами всё же видимо приносят пользу. В принципе их использование выглядит вполне логично — «интуиция» нейросети, это конечно хорошо, но конкретный перебор rollout'ов должен бы удачно её дополнять.
Ещё один важный момент. При тренировке, а если конкретно — самоигре, использовалось 2000 TPU (источник см. выше). То есть ресурс для тренировки требуется всё же очень и очень приличный. Но, конечно, если высококачественные партии уже есть (например человеческие), то для оптимизации параметров много ресурсов не надо.
Это, мягко говоря, не совсем так, да и 2000 TPU выглядит как «редактор не дал написать дохреналион».Это число, которое легко вычисляется из доступных данных. 5 миллионов игр, 0.4s на каждый ход — это 6000 дней. В реальности это, как они утверждают, заняло 3 дня. То есть в кластере должно быть 2000 машин, минимум с одним TPU каждая. То есть TPU могло быть и больше — но 2000 там были точно.
Выше уже указали как можно оценить число TPU для тренировки. Сам я тоже недавно писал, что статья в Nature содержит немало «замыленных» мест:
kasparovchess.crestbook.com
Хотя у новой технологии не просматривается каких-то принципиальных ограничений сверху, тем не менее современные шахматные программы очень высоко подняли планку уровня игры, которую не так-то просто преодолеть. В первую очередь, обратите внимание на то, что шахматные программы, пользуясь специальными правилами, в среднем рассматривают всего 1,5 вариантов на позицию, из 30-40 возможных. Можно ли превзойти такую высокую эффективность, используя policy? Не факт. Во вторых, value оценивает позицию в тысячи раз медленнее, чем линейная оценочная функция шахматных программ. Миллисекунды вместо долей микросекунд. И хотя value по-видимому будет оценивать качественнее, но зато и пропорционально медленнее. Так что, выигрыш у Стокфиша или Комодо, всё ещё большой вопрос. Хотя, конечно, очень интересно было бы понаблюдать за такими попытками.
Альфа Зеро против прошлогоднего Стокфиш 8 — 28 побед, 72 ничьи, 0 поражений. Играли по минутке на ход. Железо — 4 TPU против 64-х ядер (хэш 1 Гб).
tests.stockfishchess.org
Очень забавная картинка есть в книжке у Курцвейла: там чувак сидит за столом и ошалело выписывает таблички со словами «only human could ...». На полу их, выкинутых в мусор — гораздо больше, чем на стене, признанных правдивыми, причём половину из тех, которые были [оправданно] на стене в момент выхода книги… сейчас пора бы снять. Вот тут есть.
Доживём ли мы до времени, когда стена окажется девственно пуста? Кто знает…
U — добавка, стимулирующая поиск новых путей; она больше в начале тренировки и меньше — в дальнейшем
Каким образом она меняется? Как захочется разработчику?
очень похоже на cross-entropy loss...
В статье очень мало об этом. Что такое кросс-этропия? Зачем она здесь? Прошу прощения, если я выгляжу невежественно, никогда не встречал это.
Создаёт дочерние ноды с P согласно p
Создает до конца дерева? По одному ноду за проход? Как это связано с P?
Некоторые фразы туманно воспринимаются. Мой уровень очень далек от авторского, чтобы сразу понять, что он имеет в виду.
1) В общем и целом, да, как захочется разработчику. Какой-то идеальной эвристики здесь не существует, ты всегда ищешь устраивающий конкретно тебя баланс между использованием хороших вариантов и поиском новых, тут очень много влияющих факторов. Если нужен конкретный пример, перечитай часть про Upper Confidence Bounds — это ровно то же самое Q + U, где Q = v, а правая часть — как раз U.
2) У тебя есть распределение, которое предсказала нейросеть, и есть распределение, которое ты получил через MCTS. Твоя задача — дать сети такой фидбек, чтобы в следующий раз её предсказание как можно точнее соответствовало тому, что ты получил через симуляции. Почитай вот тут, думаю, поможет, плюс в видео Семён обсуждает этот момент чуть подробнее, чем я. Увы, я не мог уместить весь machine learning в один пост =)
3) Смотри. Вернись к описанию оригинального MCTS, первые два шага. Мы прошли по дереву, дошли до конечной ноды, и создали дочернюю ноду для этой конечной. Всё, больше мы в этот проход ничего не создаём. В АГЗ то же самое, только мы создаём не одну дочернюю ноду, а все возможные дочерние ноды, и у каждой из них P (вероятность, что из всех дочерних нод мы выберем именно эту) будет равна соответствующему элементу p (выданного нейросетью вектора, который говорит, какая вероятность у какого хода из данной позиции). Совсем понятийно — мы скормили нейросети текущую позицию, она нам выдала массив 19х19, в котором говорит: вероятность сходить в точку с координатами [1;1] — 0.01825, в точку с координатами [1;2] — 0.0097 и так далее для каждого легального хода вплоть до точки с координатами [19;19]. Всё, мы для каждого из этих ходов создаём ноду, и в P записываем вот эту вот вероятность. Так чуть понятнее?
Всегда точно определённая среда, для которой есть идеальный и простой симулятор; никаких случайностей, никаких внешних вмешательств.
Го — игра с полной информацией. Немножко похоже на предыдущий пункт, но тем не менее — нам известно абсолютно всё, что происходит.
При этом, нейросеть — отличный инструмент для моделирования детерминированной среды (пусть даже синтетической, у человека происходит так-же с его категориальным мышлением) на основе хаотичных данных. Так что уже скоро человеки познакомятся лично с Богом-Машиной. Ведите себя хорошо.
ral если ты читал про SC2, то по аналогии с StarCraft 2, это тоже самое что управлять всего одним юнитом в стратегии, не задумываясь о ресурсах и создании новых.
Dota 2 — одна из самых командных игр потому что способности одних персонажей, хорошо сочетаются с другими. И в добавок к этому у игроков много разных вещей о которых нужно думать:
- Выбор героев. Одни герои лучше сочетаются с другими, другие лучше противостоят определенным героям противника. Выбор из более чем 110 героев 5 героев на команду, команд две. За каждого отдельного персонажа стратегия игры отличается и может ещё изменятся в зависимости от героев противника/их "материального состояния" = В матче с OpenAI герой всегда один и тот же и матч "зеркальный"
- Покупка предметов — более 100 разных предметов. У каждого персонажа в игре есть инвентарь на 6 предметов. Как одноразовых "расходников" которые тратятся, так и пассивных(работают постоянно, пока лежат в инвентаре) и активных(которые нужно применять в определенные моменты). Некоторые предметы можно брать на 1-2 героев на команду, т.к. при правильном использовании они дают выгоду всей команде. = В матче OpenAI герои были 1х1 что уже урезает число возможных вариантов с 6 * 5 до 5. Некоторые предметы дорогие, а игра 1х1 часто заканчивается достаточно быстро, поэтому бОльшая часть из предметов недоступна. Вдобавок к этому, OpenAI "искуственно" запретили некоторые предметы. (о причине мне не ведомо)
- Принятие решений. В игре персонаж становится гораздо сильнее с дорогими предметами, поэтому часто персонажей делят на роли Core(Основа, которая в будущем должна выиграть игру), которая занимается фармом(процессом убивания вражеских/нейтральных юнитов, для получения денег) и саппортов(помощники, которые делают всё, чтобы их "Основа" чувствовала себя чудесно и мешают "Основе" противника. И тут как раз игра в полной мере раскрывает стратегический потенциал.
Core-игрок должен понимать, когда ему лучше выходить на бой с противником, а когда лучше заниматься добычей денег, должен "чувствовать" игру, чтобы понимать, когда на него могут делать вылазку противники.
Support-игрок должен правильно распределять ресурсы — у него не так много денег, поэтому он должен стараться использовать их максимально эффективно, помогать союзникам и нападать на героев оппонента.
По последнему пункту в OpenAI было ничего общего с командной Dota.
Да, он понимал что ему нужно наносить герой оппоненту и убивать его по возможности, а в свободное время "фармить", но это всего одна линия, с которой, по сути, выходить было нельзя. Распределения ролей тоже не было. Командного взаимодействия тоже не было.
Я уверен, что до 2020 года не будет ничего, что сможет сравниться с людьми по навыку игры Dota 2 и похожие игры, потому что, имхо, это решение требует совершенно нового подхода, которое должно быть на порядок лучше(как минимум, для этой задачи)
Э… я бы поосторожнее умножал варианты. :) Комбинаций героев, предметов и прочего много, но очень многие из них заведомо неэффективные. Скажем, в шахматах можно всё начало игры разваливать ряд пешек миллионами способов, но ни один ИИ углубляться в разбор этих ходов не будет, поэтому что это заведомо провальная стратегия.
У командного ИИ будет очевидное преимущество преимущество — идеальное микро в любом бою и идеальное взаимодействие между юнитами: способности будут использоваться в идеальной последовательности с выравниванием до миллисекунды, реакция на действия противников будет моментальная. Не знаю, как там в доте, а в хотсе "элитный ИИ" собирается в очень недурной шарик смерти, который без АоЕ-шных способностей разобрать не так-то просто. Элитный ИИ обыгрывают не в бою, а с помощью дыр в логике ИИ — ИИ по сути умеет только точно целиться и собираться в шарик смерти, всё остальное практически по нулям.
Что требуется от OpenAI для победы в 5v5 — это довести макро до уровня, когда оно не будет помножать на ноль божественный микро. Это мне кажется реалистичным, особенно учитывая, что разрабы не брезгуют добавлять костыли к самообучению.
Речь о нейронках и самообучении.
Да, некоторые комбинации герой-предмет заведомо слабые, но суть RL(Reinforcement Learning) в том, что он может найти удачные моменты даже в случае если для этого придётся чем-то пожертвовать (аналог гамбита). Так что ему в любом случае нужно будет попробовать все вариации предметов, причём не один раз.
По поводу шахмат при обучении ИИ как раз и поиграется со всеми фигурами. Но достаточно быстро(относительно) сделает выводы о выгоде от фигур.
В то же время в Dota 2 где матчи длятся очень долго(особенно для AI с не обученным RL) 115 героев, по 6 слотов у каждого, где может быть один из ~130 предметов, с учётом команды...
Идеально микро появится совсем не скоро… Того же OpenAI обыграли в 1х1 на равных условиях и это с учётом того что учили его одного, только для этого типа игры.
Какие мощности понадобятся для того, чтобы сделать что-то что может конкурировать с командой "любительского уровня" страшно представить.
Про ботов в HotS'е: в доте такое сложно будет провернуть из-за специфики игры. Некоторые способности направлены на длительные дизейблы по врагам стоящим рядом друг с другом, в то время как другие позволяют расправляться с теми, что разрознены. Я понятия не имею, как с этим будут бороться. Поживём — увидим.
2020 год — это мой самый "позитивный" прогноз. Так делаю ставку на 2025-2035.
Я думаю все ограничения, которые ввели были сделаны, чтобы не мучить разработчиков попытками формально описать правила для сетей.
Я уверен, что до 2020 года не будет ничего, что сможет сравниться с людьми по навыку игры Dota 2 и похожие игры, потому что, имхо, это решение требует совершенно нового подхода, которое должно быть на порядок лучше(как минимум, для этой задачи)А. До 2020го. То есть два года всего? Ну тогда, скорее всего, соглашусь.
Ничего «совершенно нового» тут не нужно, нужно просто время чтобы уже существующие схемы «довести до ума» и дать сети полное описание всей игры.
Это всё равно как утверждать, что между русскими и 100-клеточными шашками — море разницы. Для человека, наверное, да, а для робота — разница чисто количественная и очень небольшая.
Как и сказал JustRoo в доте было много ограничений. Добавлю, что на некоторые моменты модель натренировали специально (например блокинг крипов был "захардкожен", а не бот сам до него "додумался").
Про SC2 лучше процитировать ребят из DeepMind
Our initial investigations show that our agents perform well on these mini-games. But when it comes to the full game, even strong baseline agents, such as A3C, cannot win a single game against even the easiest built-in AI. For instance, the following video shows an early-stage training agent (left) which fails to keep its workers mining, a task that humans find trivial. After training (right), the agents perform more meaningful actions, but if they are to be competitive, we will need further breakthroughs in deep RL and related areas.
Машинное обучение создало новую отрасль и прецендент
Соединение сильных сторон компьютера и человека…
Если запустить эту машину на год — два — то все дебюты окажутся проанализированны. И выведенны лучшие стратегии для игры
Привет из 2024
AlphaGo Zero совсем на пальцах