компьютеры и го
Feb. 29th, 2012 09:48 pmПридется, кажется, расстаться еще с одним привычным и уютным знанием о мире: что компьютеры, хоть в шахматы уже давно всех побеждают, очень плохо играют в Го. Оказывается, именно в этой области в последние несколько лет случился рывок вверх (англ.)
Новая программа Zen19 играет на уровне 5-го любительского дана; статья объясняет, что это примерно 100-е место среди всех игроков в Америке. И это во много раз лучше того, как программы играли еще лет 5 назад.
Конечно, еще есть профессиональные даны, и в Японии, Корее и Китае живут, я думаю, много тысяч игроков, играющих лучше этой программы - но огромный прогресс налицо. При этом обидно, что этот прогресс достигнут по сути дела тем же путем, каким компьютеры победили в шахматах - путем слепого бездумного перебора. Только в Го это перебор вероятностный, методом Монте-Карло (в статье это подробнее объясняется).
Было бы намного интереснее, если бы компьютеры учились лучше играть в Го путем "понимания" хотя бы в некотором смысле, путем, похожим на человеческое мышление об этой игре. К сожалению, не похоже, чтобы нынешний чемпион Zen19 включал в себя "глубокие" знания об игре (его исходники недоступны, так что в точности неизвестно). Более того, подход Монте-Карло очень удобно разбивать на параллельные потоки. Это значит, что с ростом вычислительной мощности сила Zen19 скорее всего будет еще расти и расти. И возможно, именно такой подход в итоге победит всех игроков-людей, как это уже произошло в шахматах.
Новая программа Zen19 играет на уровне 5-го любительского дана; статья объясняет, что это примерно 100-е место среди всех игроков в Америке. И это во много раз лучше того, как программы играли еще лет 5 назад.
Конечно, еще есть профессиональные даны, и в Японии, Корее и Китае живут, я думаю, много тысяч игроков, играющих лучше этой программы - но огромный прогресс налицо. При этом обидно, что этот прогресс достигнут по сути дела тем же путем, каким компьютеры победили в шахматах - путем слепого бездумного перебора. Только в Го это перебор вероятностный, методом Монте-Карло (в статье это подробнее объясняется).
Было бы намного интереснее, если бы компьютеры учились лучше играть в Го путем "понимания" хотя бы в некотором смысле, путем, похожим на человеческое мышление об этой игре. К сожалению, не похоже, чтобы нынешний чемпион Zen19 включал в себя "глубокие" знания об игре (его исходники недоступны, так что в точности неизвестно). Более того, подход Монте-Карло очень удобно разбивать на параллельные потоки. Это значит, что с ростом вычислительной мощности сила Zen19 скорее всего будет еще расти и расти. И возможно, именно такой подход в итоге победит всех игроков-людей, как это уже произошло в шахматах.
no subject
Date: 2012-02-29 08:02 pm (UTC)Я когда-то пробовал писать программу, которая бы в шашки "думала". Рассуждал так: сильный шашист смотрит на позицию и подсознательно вспоминает множество аналогичных. И понимает: в таких позициях принято играть так-то. Можно попробовать оценить схожесть позиций. Я брал множество бессмысленных параметров вроде суммы расстояний от шашек до разных прямых с разными весами. И надеялся, что можно как-то выделить множество позиций, где надо играть одним образом, от множества позиций, где надо играть другим образом. Ничего не вышло. Но при каком-то уровне развития вычислительной мощности уже может быть и выйдет.
no subject
Date: 2012-02-29 08:20 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2012-02-29 08:34 pm (UTC)no subject
Date: 2012-02-29 08:41 pm (UTC)Мой опыт с подобными knn-алгоритмами подсказывает, что бывает трудно найти "правильные" метрики. Ещё труднее при ограниченных вычислительных ресурсах оптимизировать веса. А если набрать наугад слишком много метрик/измерений, то начинается curse of dimensionality. В общем, там много подводных камней.
(no subject)
From:no subject
Date: 2012-02-29 10:07 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2012-03-01 07:22 pm (UTC)Для шведок, кстати, я хотел написать в своё время ai, но за это, блин, не платят) Так что отложил до пенсии))
Шведки
Date: 2012-03-02 06:53 pm (UTC)Это пока так, но все потому что боты играют пока сами за себя. Боюсь, что как только найдется энтузиаст, который научит боты "видеть" обе доски, то у человека шансов будет мало. Ибо боты быстрее.
no subject
Date: 2012-02-29 08:03 pm (UTC)тем же путем, каким компьютеры победили в шахматах - путем слепого бездумного перебора
Я полагаю, что гроссмейстеры играют в шахматы точно так же - именно путем слепого бездумного массивно параллельного перебора, и слепая бездумность этого перебора - причина того, что сознанием факт перебора не осознаётся.
no subject
Date: 2012-02-29 08:16 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:гроссмейстеры играют в шахматы
From:Re: гроссмейстеры играют в шахматы
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2012-02-29 08:04 pm (UTC)интроспекция, все-таки, не слишком надежная вещь, мне кажется.
no subject
Date: 2012-02-29 08:15 pm (UTC)(*) можно возразить что на бессознательном уровне и оценки - перебор, но мы этого не осознаем, но мне кажется это не так.
(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2012-02-29 08:05 pm (UTC)no subject
Date: 2012-02-29 08:08 pm (UTC)В определенной степени, это наблюдается и в научных численных расчетах.
Ага, я вот численно подобрал такую формулу
Date: 2012-03-01 08:18 pm (UTC)путем слепого бездумного перебора
Date: 2012-02-29 08:17 pm (UTC)no subject
Date: 2012-02-29 08:21 pm (UTC)no subject
Date: 2012-02-29 08:24 pm (UTC)(no subject)
From:no subject
Date: 2012-02-29 08:23 pm (UTC)http://xkcd.com/1002/
no subject
Date: 2012-02-29 08:33 pm (UTC)no subject
Date: 2012-03-01 12:07 am (UTC)(no subject)
From:(no subject)
From:no subject
Date: 2012-02-29 08:46 pm (UTC)так что конечно ура программистам что двигают вперёд науку, но игра от этого лучше не станет.
no subject
Date: 2012-02-29 10:12 pm (UTC)(no subject)
From:Ага
From:no subject
Date: 2012-02-29 10:40 pm (UTC)> путем, каким компьютеры победили в шахматах - путем слепого
> бездумного перебора.
Это всё заблуждения :) Скажу, как ведущий российский шахматный программист :)
Шахматы, с т.з. вульгарного перебора — задача чрезвычайно неудачная.
Количество позиций с ростом глубины поиска растёт экспоненциально.
Скажем, если мы возьмём стартовую позицию, то картина получится такая
(первый столбец — глубина перебора, второй — количество позиций):
1 20
2 400
3 8902
4 197281
5 4865609
6 119060324
7 3195901860
8 84998978956
9 2439530234167
10 69352859712417
11 2097651003696806
Современная типовая персоналка в состоянии просматривать примерно 1
миллион позиций в секунду. Значит, для перебора на 11 полуходов из
стартовой позиции потребуется 2097651004 секунды. То есть почти 67
лет. И это стартовая позиция, в которой ветвление сравнительно
небольшое.
Программа, думающая над ходом по 2 минуты, сможет в практической игре
просматривать варианты всего на 5—6 полуходов. Много это или мало? Это
значит, что такая программа сможет решить не любую задачку-трёходовку,
что под силу почти любому рядовому шахматисту. Гроссмейстер же в
практической игре просматривает некоторые варианты на 12—16 полуходов,
что абсолютно недостижимо путём перебора «в лоб».
По этой же причине, увеличение скорости компьютеров не приводит к
существенному выигрышу. Задача полного перебора на 16 полуходов как
была возможной 20 лет назад, так и останется ей очень и очень надолго,
если не навсегда.
Поэтому точка зрения, что компьютер обыгрывает человека за счёт того,
что может быстро перебрать все варианты — ошибочная.
Скажем так, если программу чемпиона мира 15-летней давности запустить
на современном «железе», то её рейтинг вряд ли превысит 2400 пунктов.
То есть прогресс в почти 1000 пунктов произошёл отнюдь не за счёт
ускорения железа, но за счёт совершенствования алгоритмов.
В типичной современной шахматной программе есть:
1. Переборный механизм — но это не тупой перебор в лоб, а довольно
сложная процедура, варьирующая глубину просмотра разных вариантов в
зависимости от самых различных факторов. Скажем, моя программа в
типичном миттельшпиле просматривает варианты на глубину от 5—6 до 50
полуходов. То есть есть варианты, которые будут брошены за
бесперспективностью очень рано, а есть варианты — которые будут
просчитаны чуть ли не до конца игры.
2. Оценочная функция — тоже очень сложный механизм, построенный на
основе статистического анализа. Это функция, которая позволяет оценить
позицию без просмотра вариантов, на основе различных компонентов
позиции и их сочетания. Такая функция учитывает огромное количество
самых разных вещей — соотношение материала, пешечную структуру,
мобильность фигур, атаку на короля и т.д. и т.п. Причём отдельные
позиционные компоненты могут легко перевешивать соотношение материала.
Фактически программа руководствуется оценочной функцией не только для
оценки просматриваемых вариантов, но и для управления самим перебором,
то есть разделение на эти два основных компонента довольно условны.
no subject
Date: 2012-02-29 10:44 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2012-02-29 11:31 pm (UTC)Но согласен, что стиль игры у гошных программ действительно неважный. Го - игра стратегическая и это, в некотором смысле, диалог. Ну и игра с го-программой - это примерно как диалог с Элизой. Прикольно, но и только.
Кстати, в текущее время людям, которые серьезно занимаются го, не рекомендуют играть с программами.
(Хотя, конечно, программа может помочь с тактикой, в просчете локальных задач).
К нам на работу недавно приходила Чизу Кобаяси, очень известный профессиональный го игрок из Японии. Она рассказывала, что автор программы Zen много играл со своей программой и в результате стал играть в ее нечеловеческом "стиле". Не знаю только, стал он играть от этого сильнее или нет.
no subject
Date: 2012-03-03 04:27 am (UTC)Надо же, какие люди! Я помню когда она в первый раз приехала в Ленинград и учила нас - гошную молодежь - на семинаре в Клубе Шахматиста на Желябова - году в 1983-м наверно. Симпатичная страшно, мы ее называли "Кобаяшка обаяшка". Давно это было...
(no subject)
From:no subject
Date: 2012-02-29 11:39 pm (UTC)Я даже долгое время подумывал организовать конкурс программ, но реально вряд ли найдутся желающие убивать время на дурака. Хотя в России есть группа людей, которая играет турниры в дурака, по-серьезноме, и очень на крупные ставки. Они кстати ввели там правило удваивания, как в нардах, что еще больше усложнило игру. Кажется, там Анатолий Карпов был то ли организатором, то ли президентом ассоциации. Может, их заинтересовало бы быть спонсором.
no subject
Date: 2012-03-01 03:03 am (UTC)no subject
Date: 2012-03-01 05:28 am (UTC)no subject
Date: 2012-03-01 05:06 am (UTC)no subject
Date: 2012-03-01 07:48 am (UTC)no subject
Date: 2012-03-03 04:29 am (UTC)(no subject)
From:no subject
Date: 2012-03-01 02:23 pm (UTC)Просто те, кто пишут реализации подкидного дурака для мобильников, чаще всего не особо разбираются в разработке AI.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2012-03-20 08:42 am (UTC)