|
Революция в шахматном мире: AlphaZero от Google обыграл StockFish | ☑ | ||
---|---|---|---|---|
0
Lama12
08.12.17
✎
12:28
|
http://www.newsru.com/sport/08dec2017/deep.html
AlphaZero обыграла Stackfish Программа которую делали люди и рассчитывающую 70 000 000 позиций в секунду проиграла матч из 100 партий самообучающемуся искусственному интеллекту который оценивал всего 80 000 позиций в секунду. В сухую! На обучение игре в шахматы AlphaZero потратило 4 часа. Тут предварительный доклад программистов https://arxiv.org/pdf/1712.01815.pdf Я в шоке. |
|||
112
VS-1976
11.12.17
✎
15:59
|
(111) Мне кажется что товарищ хочет донести мысль что если бы у противника было побольше времени подумать ( производительность железа выше ), то возможно он бы играл лучше.
|
|||
113
NSSerg
11.12.17
✎
16:01
|
Попробую еще раз объяснить. Альфа играла на 4 TPU по 45 Терафлоп.
Берем Альфу, на этом компе, проводим матчи с 1 Komodo 11.01 MP x64 16GB 1800X 3,6 GHz 2 Deep Shredder 13 x64 16GB 1800X 3,6 GHz 3 Komodo 9.1 MP x64 2GB Q6600 2,4 GHz 4 Stockfish 6 MP x64 2GB Q6600 2,4 GHz Считаем получившийся рейтинг Альфы, и добавляется строчка в http://ssdf.bosjo.net/long.txt Альфа 4 TPU х 45 Терафлоп, и напротив неё рейтинг. (109) Так понятно? |
|||
114
NSSerg
11.12.17
✎
16:02
|
(113) Рейтинги этих четырех движков на указанном железе известны, поэтому когда будет получен результат матчей, можно будет посчитать рейтинг Альфы на 4 TPU х 45 Терафлоп.
|
|||
115
NSSerg
11.12.17
✎
16:14
|
(112) Если на другом железе сила выше (ежу понятно что на разном железе разная сила), никто не мешает посадить альфу на другое железо, и добавить еще строчку в рейтинг-лист, с указанием другого (более мощного железа), и другого, более высокого рейтинга.
Например как сделано для этого движка. 32 Deep Shredder 11 x64 2GB Q6600 2,4 GHz rating: 3014 49 Deep Shredder 11 256MB Athlon 1200 rating: 2897 Неужели непонятно, что именно поэтому железо и указывается, что играли разные движки на разном железе, а на разном железе разная сила? |
|||
116
NSSerg
11.12.17
✎
16:17
|
Или вот
192 Genius 4.0 DOS Pentium 90 MHz 2304 202 Genius 4.0 DOS 486/50-66 MHz 2268 |
|||
117
ilou
11.12.17
✎
16:44
|
(114) ладно свою мысль я донес. По поводу рейтингов вообще никаких вопросов нет, рано или поздно дадут они данную информацию и можно будет этот рейтинг сосчитать.
|
|||
118
Вафель
11.12.17
✎
16:44
|
мне кажетеся специально параметры сток фиша подбирали так чтобы он все игры проиграл.
-Эх выигрывает нас. -Давайте отключим библиотеку дебютов. -Все равно выигрывает -Эндшпили тоже отключим -Еще чуть чуть нужно -Может времени поменьше поставим, версию постарее возьмем? |
|||
119
ilou
11.12.17
✎
16:47
|
Вполне вероятно, что так оно и было, я все ж сомневаюсь, что на типовом железе, можно обогнать расчет вариантов.
|
|||
120
ilou
11.12.17
✎
16:48
|
Если бы только ИИ запилило свою "математику", но и опять же она работать будет у "него в голове", а не из формул.
|
|||
121
NSSerg
11.12.17
✎
16:56
|
(117) Донес - это когда её, мысль, собеседник понял. Я так и не понял.
(119) Что значит "Обогнать расчет вариантов"? Альфа - тоже переборный движок, только у него более мощная, но более медленная оценочная функция. (120) Оценочная функция Альфы - тоже формула, но существует она в виде нейронной сети с весами. Её легко можно переписать под любой обычный CPU - только считаться будет медленно. (118) Отключения ЭБ и я не понял. Это вообще какая-то жесть, ибо на текущий момент шестифигурки фактически неотъемлемая часть стока. Дебютная не является неотъемлемой частью. Но у стока дебютную отобрали, а Альфе поставили, еще вдобавок и обучаемую. |
|||
122
ilou
11.12.17
✎
17:08
|
(121) ох, тебя шатает от мысли о рейтинге к мысли о НС.
С рейтингом надеюсь ты понял, что рано или поздно напишут товарищи, кого они обыграли и на каких машинах и можно будет посчитать, что да как, ну а если не напишут, то значит все плохо, это то же понятно. Мысль, что сам рейтинг не дает представление о системе, я понял. .он описывает, что кто-то кого-то обыграл и на этом все, это мы то же обсудили, т.е. или дадут данные или нет. по НС я понял, что у тебя свое представление о данной области знаний, по факту, ты пишешь, по следующей аналогии, что "клетка - это просто молекулы, которые взаимодействуют", но это уже совсем другой подход к данным. |
|||
123
NSSerg
11.12.17
✎
17:25
|
(122) Опять я ничего не понял. Что значит свое представление? Нейронная сеть, она и в Африке нейронная сеть.
Я всего лишь отвечаю на посты, но отвечать очень тяжело, ибо по большей части я не понимаю что ты пишешь, для меня это бессвязный набор слов. Рейтинг не дает представление о том кто кого обыграл. Рейтинг эта единица измерения силы. Любой движок на конкретном железе (и любой игрок, человек) имеет силу, измеряется она в единицах рейтинга Эло. То есть рейтинг Эло - это число, которое показывает силу. Если Hiarcs 10 HypMod 256MB Athlon 1200 MHz имеет рейтинг 2834 (58-ая строчка в http://ssdf.bosjo.net/long.txt), значит на этом железе (256MB Athlon 1200 MHz) в Классические шахматы он играет чуть сильнее Карлсена, чей рейтинг 2829 https://2700chess.com/players/carlsen Это у тебя мысли скачут. Ты умудрился связать НС - с невозможностью измерения силы движка, использующего НС в качестве оценочной функции. |
|||
124
NSSerg
11.12.17
✎
17:29
|
(122)
+(123) Попробую теперь объяснить как устроен движок - совсем упрощенно это переборная часть + ОФ(оценочная функция) ОФ бывает простой, тогда движок будет быстрый, бывает сложной, тогда движок будет медленный. Устройство Альфы в целом не отличается от других движков. Основное отличие в том что в качестве ОФ у него используется НС (очень медленная, но очень мощная ОФ), а в качестве переборных алгоритмов похоже mcts. Ты пытаешься рассуждать о тех вещах, которые не понимаешь - как устроен шахматный движок, что такое рейтинг и т.д. И в итоге получается бессвязный набор слов. |
|||
125
NSSerg
11.12.17
✎
17:37
|
https://2700chess.com/
Вот рейтинг-лист людей (Это Live! рейтинг) Несмотря на то, что ну никак нельзя сравнить мощность "железа человека" и железа на котором играют программы - все равно у людей тоже есть рейтинг, благодаря которому можно узнать кто сильнее, и насколько. Так как рейтинг ssdf откалиброван на людях, то можно узнать кто сильнее - человек, или конкретная программа на конкретном железе. |
|||
126
NSSerg
11.12.17
✎
17:39
|
Поподробней про рейтинг Эло
https://ru.wikipedia.org/wiki/Рейтинг_Эло |
|||
127
ilou
11.12.17
✎
18:10
|
(123) опять 25, еще раз это сравнение процессора с видеокартой, мягкого с кислым, нельзя их сравнивать, нельзя сравнивать движки работающие на мат анализе и движки работающие на НС на одном и том же железе, как ты этого не понимаешь, если уж и сравнивать, то только результаты, как ты сам выше и писал, результаты в не зависимости от железа, только так.
Но попробую по твоему решить задачу, с другой стороны я понимаю твое упорство, что мол вот есть готовые алгоритмы перебора ходов и выбора оптимального варианта и давайте их сравнивать, мол ограничением у нас будет мощность компьютера, а раз данный параметр у нас ограничен, то остается качество кода. у НС есть некоторая потребность в мощности в рамках которого она работает, больше ей просто не нужно, вот это и должно быть ограничение (это очень грубо), если уж на то пошло, а не просто какой-то компьютер, вот эту систему и должны тебе по идее написать по Альфа0, но что для тебя будет значит TPU хз и как находить аналог и будет ли он аналогом я ума не приложу. |
|||
128
NSSerg
11.12.17
✎
18:45
|
(127) я ни разу не пытался сравнить производительность нейронных сетей на процессоре и tpu (кстати, это не видеокарта)
Я всего-лишь написал что те-же алгоритмы можно запустить на cpu. При чем тут сравнение производительности? Я ни разу в ветке не предложил сравнить игру движка (и силу движков) на нейронных сетях и классической ОФ на одном железе. Я писал что Альфа должна играть на своем железн (на TPU), а классические движки на своем. Вы кому и на какую фразу отвечаете? |
|||
129
NSSerg
11.12.17
✎
18:49
|
И еще раз - альфа такой же переборнвй движок.
И если удвоить количество tpu, то на оценку каждой позиции будет уходить в два раза меньше времени, и соответсвенно за то же время Альфа сможет рассмотреть в два раза больше позиций (узлов дерева перебора) с соответствующим ростом силы. Еще раз повторяю - в альфе играет не нейронная сеть, она не выбирает ход, а всего лишь дает оценку позиции, а за выбор хода, так же и а классических движках отвечает перебор. |
|||
130
NSSerg
11.12.17
✎
18:50
|
мне кажется, что так же как рассуждая о рейтинге, вы даже примерно не представляли что это такое, так же и с выбором хода Альфой, вы даже примерно не представляете как это происходит.
|
|||
131
ilou
11.12.17
✎
20:25
|
(130) собственно я понял, что вы сравниваете калькулятор и Альфо0, вас просто терзает мысль, что мол они негодяи книгу ходов запихнули в нейронную сеть и теперь тупым перебором выбирают самую подходящую, а вот программке это сделать не дали и типа требуют от неё все ходы просчитывать заранее с 0ми данными. Еще раз если бы все так было просто, тупой мат анализ и т.д. то всякие нейронные сети были бы не нужны, вы опять говорите, по аналогии "клетка - есть набор взаимодействующих молекул и ничего более", нейронные сети это больше чем набор мат алгоритмов, хотя будет вопрос, а что же это такое, если не система с выбором ходов...
|
|||
132
NSSerg
11.12.17
✎
21:56
|
(131) Еще раз повторить? Вы даже примерно не понимаете как работает Альфа. Я, как разработчик шахматного движка, примерно (или больше чем примерно) понимаю как он работает. И с моей точки зрения вы пишете ахинею.
Какая книга ходов? Еще раз попытаюсь обяснить - на базе НС в Альфе сделана оценочная функция. Не более того. Так же как и любой другой движок, Альфа строит дерево перебора, оценивая листья дерева при помощи ОФ (своей нейронной сети). Правда в mcts немного всё сложнее, но не буду вас грузить. Насчет дебютной книги отдельный разговор, так же считаю что вы к нему просто не готовы. |
|||
133
Lama12
11.12.17
✎
21:57
|
(131) Вообще-то NSSerg все верно говорит. Нейросеть просто оценочная функция.
|
|||
134
Dzenn
гуру
11.12.17
✎
22:22
|
ИИ наступает, как и предсказывал Рэй Курцвейл.
Через 10 лет ждём домашних роботов https://hi-news.ru/technology/prognozy-reya-kurcvejla-na-blizhajshie-25-let.html |
|||
135
КомПрог
11.12.17
✎
23:33
|
(134) Вот здесь эти же прогнозы:
https://youtu.be/WL0Dj50x2Gs |
|||
136
shpioleg
12.12.17
✎
00:34
|
(133) Тогда и шахматиста-человека можно представить как просто оценочную функцию.
|
|||
137
NSSerg
12.12.17
✎
00:52
|
(136) Да причем тут представить? Там прямо в коде написаны переборные алгоритмы, чем больше времени отводится программе тем дальше она считает, а оценка позиции производится за фиксированное время. И выдает НС получая на вход позицию, не ход, а оценку этой позиции.
Точно так-же как и оценочная функция любой другой шахматной программы. Не представить можно, а прямо в коде прописаны переборные алгоритмы, и чем дольше программа думает, тем дальше считает. Для mcts понятие "дальше" конечно условное, но суть в другом. Это обычный переборный движок. |
|||
138
NSSerg
12.12.17
✎
00:52
|
Просто роль оценочной функции играет нейронная сеть, с уже посчитанными весами.
|
|||
139
NSSerg
12.12.17
✎
01:01
|
В (0) же достаточно четкое описание.
Вместо ОФ используется нейронная сеть, не стали использовать Альфа-бету, а в качестве переборного алгоритма используется mcts. Использование mcts с наложенной ОФ - уже давно стандартный метод перебора в ГО. Такой метод перебора использовала моя программа участвовавшая в открытом чемпионате Голландии 2013 года. http://archive.codecup.nl/2013/49/rules_symple.html http://archive.codecup.nl/2013/27/competitionlist.html Игра похожа на ГО, поэтому в ней хорошо работает MCTS (вместо альфа-беты) |
|||
140
Gobseck
12.12.17
✎
01:24
|
(136) +100
Причем среди людей были шахматисты, которые быстро и далеко считали варианты (Михаил Таль) и шахматисты, у которых в голове была "хорошая оценочная функция" (Капабланка, Карпов). |
|||
141
NSSerg
12.12.17
✎
01:33
|
(140) Шахматисты считают все, поэтому ни одного шахматиста нельзя представить как оценочную функцию. И человек выдает ход, а не оценку (а если и выдает оценку позиции, то обязательно подкрепляет её перебором)
В отличии от человека, нейросеть, так же как и обычная ОФ - выдает именно оценку, без какого-либо перебора. И чтоб программа могла играть - её ОФ обязательно нужно подкрепить перебором. |
|||
142
NSSerg
12.12.17
✎
01:35
|
Или иными словами - программа, как и человек - это перебор + ОФ (где у Альфы в качестве ОФ - Нейронная сеть)
|
|||
143
ILM
гуру
12.12.17
✎
06:17
|
(140) У Каспарова были хороши обе ачивки. Про Таля не согласен, он играл скорее интуитивно и эмоционально. У него было видение партии как произведения искусства. По красоте игры, Таля пока ещё никто не превзошёл.
|
|||
144
Зуекщмшср
12.12.17
✎
06:21
|
(143) Накамура иногда выдает талевские партии. Дубов пытается мутить воду в стиле Таля.
|
|||
145
Волшебник
модератор
12.12.17
✎
09:06
|
Искусственный интеллект Гугла оказался фикцией!
Опять перебор, тупая заученная вусмерть нейросеть, которая дальше не обучается, хоть учи её тыщу лет! А-ха-ха! |
|||
146
antgrom
12.12.17
✎
09:21
|
Программа от Гугла просто умеет гуглить.
Поэтому и выигрывает. |
|||
147
NSSerg
12.12.17
✎
15:25
|
Похоже что нейросеть выдает не только оценку позиции, но еще вероятность того что будет сделан тот или иной ход из этой позиции (вероятность того что он лучший), и эта вероятность используется в переборных алгоритмах.
|
|||
148
КомПрог
12.12.17
✎
15:43
|
В 2014г ИИ за 4 часа мог только в пинг-понг научиться играть:
https://youtu.be/y81ryf_eDHA?t=1m46s Прогресс за 3 года поражает. Толи еще будет... |
|||
149
NSSerg
12.12.17
✎
16:01
|
(148) Ничего подобного. Так-же можно было посчитать веса в ОФ.
Не научилась Альфа играть в шахматы за четыре часа. За четыре часа веса в ОФ (нейронной сети) были посчитаны. |
|||
150
ERWINS
12.12.17
✎
17:54
|
NSSerg рекомендую почитать как там сделано.
нейросеть кроме подсчета оценочной функции предсказывает еще и перспективные ходы. Если в первых версиях для ГО это были 2 разные нейросети, то сейчас используется одна и таже. Программа научилась играть за 4 часа, правда на уровне человека, в дальнейшем ее дообцчали ДОЛГО. В остальном ты прав. |
|||
151
ERWINS
12.12.17
✎
18:02
|
"Не научилась Альфа играть в шахматы за четыре часа. За четыре часа веса в ОФ (нейронной сети) были посчитаны."
не научилась играть в Го веса за ... часа были подсчитаны, ненаучилась в .... веса были подсчитаны. А научиться и посчитать веса одно и тоже. Не? |
|||
152
NSSerg
12.12.17
✎
19:23
|
(151) Повторюсь - почитать веса в ОФ за четыре часа умели и раньше.
Нет, посчитать веса в ОФ, и научиться играть в шахматы не одно и то-же. Оценочная функция не умеет играть в шахматы. Ей нужен генератор ходов, исполнитель, переборные алгоритмы и т.д. Более того - Прежде чем ОФ научить (посчитать веса) - её нужно написать. Ровно так-же как и Стокфиш - написана полностью программа, включая переборные алгоритмы и ОФ. Теперь посчитать веса признаков в ОФ - можно достаточно быстро. Так же и Альфа - написана полностью программа, включая переборные алгоритмы и ОФ, и только после этого за четыре часа она была обучена. |
|||
153
NSSerg
12.12.17
✎
19:28
|
(150) Я это знаю, ибо это есть в моих постах на Каспаровчесс. Это не меняет сути. Нейросеть - это все-равно всего-лишь ОФ (понятно что одна ОФ умеет кое-как считать ценность ходов - ценность хода это разница между ОФ в позиции перед ходом, и в позиции после хода), которая еще вдобавок умеет достаточно точно выдавать веса ходов, которые в дальнейшем используются в переборе (MCTS)
И то что её на огромных вычислительных мощностях обучили за четыре часа - в принципе в этом ничего такого нет. А есть - Альфа это первая шахматная программа на MCTS играющая достаточно сильно, и первая шахматная программа с ОФ на Нейронных сетях, играющая достаточно сильно. Ну и что сделало это возможным - это появление TPU. Потому что без TPU производительности для такой силы игры бы не хватило, и на этот проект не обратили бы внимания. |
|||
154
ERWINS
12.12.17
✎
19:35
|
(152) значит не понял суть.
Алгоритм один и тот же под шахматы и под го и под какую то там еще игру. Т.е. если ты поменяешь правила то для фиш тебе придется переписывать программу? например конь ходит как жираф? а тут нет. (153) вероятно сеть не сжимали. Насколько можно ее сжать не известно, но например для картинок в 1000 раз практически без потери точности. Но тогда качество игры при одинаковой вычислительной мощности должно будет практически сравняться. |
|||
155
NSSerg
12.12.17
✎
19:52
|
(154) переборные алгоритмы, оф, представление доски, генераторы и исполнители ходов - разные под разные игры.
если у тебя написаны шахматы, а нужно шашки - придется все переписывать с нуля. если тебе нужно из программы в бразильские шашки сделать программу в русские - меняется генератор ходов и исполнитель, нужно пересчитать веса в оф, и переписать в оф эндшпильный блок. только я не понимаю какое это имеет отношение к теме. что такое «алгоритм один и тот-же» - алгоритм чего? |
|||
156
NSSerg
12.12.17
✎
19:53
|
Нормальная шахматная программа - это достаточно большой количество алгоритмов и эвристик.
Это не один алгоритм. И не два :) |
|||
157
ERWINS
12.12.17
✎
20:01
|
Программа имеет на вход правила ходов и начальную расстановку.
Обрабатывая и формируя веса она учиться играть используя правила ходов. Ей без разницы что ты запихнешь. "это достаточно большой количество алгоритмов и эвристик" - вот в данном случае нейросеть заменяет эвристики собой. Время рукописных программ игры в .... ушло. Скоро такая же судьба постигнет и программистов и сантехников. |
|||
158
NSSerg
12.12.17
✎
20:18
|
(157) Зачем фантазировать? Все не так.
У Альфы полноценные переборные алгоритмы (MCTS), вместо ОФ нейронная сеть. Обученная. Которая кроме ОФ дает веса ходов. На самом деле обучение ОФ нейронными сетями - давно уже стандарт и в ГО и в нарды. В принципе в этом ничего нового нет. Новое только сила, и то что эта схема впервые применена в шахматах. Именно в шахматах не получалось сделать сильную программу на mcts (в другие игры уже 10 лет как получается) И именно в шахматах не получалось сделать ОФ на нейронных сетях (в нарды тоже уже 10 лет как) Но по форумам зачем-то распространяют слухи что Альфа с помощью нейронной сети научилась играть в шахматы. Нет. Нейронная сеть в ней это ОФ, а обучение - это настройка весов в ОФ. Играть в шахматы она умеет вообще без нейронной сети, но естественно очень слабо. Как и любая другая программа с непосчитанными весами в ОФ. Кстати, программе с mcts в принципе ОФ для игры не обязательна, может играть вообще чисто на переборных алгоритмах. |
|||
159
ERWINS
13.12.17
✎
13:00
|
(158)
"У Альфы полноценные переборные алгоритмы (MCTS), вместо ОФ нейронная сеть. Обученная. Которая кроме ОФ дает веса ходов. " - полностью согласен "Новое только сила, и то что эта схема впервые применена в шахматах" - она была применена 3 года назад с хорошими результатами, но разработка была прекращена. "Играть в шахматы она умеет вообще без нейронной сети, но естественно очень слабо" - без ОФ? круть! Тогда можно сказать что она умеет играть в шахматы без перебора, но только слабо - используя веса ходов. |
|||
160
NSSerg
13.12.17
✎
13:34
|
(159)
1.Применена в шахматах она была не только три года назад. Применение нейросети или mcts в ОФ можно считать нормальным, только когда оно дает нормальную силу игры. Всякие Жирафы в нормальную силу не играли. И естественно Жираф не первая неудачная попытка. 2. Зачем ты споришь? Еще раз повторяю - программы с mcts могут играть без ОФ, совсем. Есть примеры достаточно сильных программ в ГО, совсем без ОФ. На всякий случай еще раз повторю ссылку - я автор не только программ на альфа-бете, но и программ на mcts. И знаю о чем говорю. Ссылку в ветке я уже давал. (139) |
|||
161
NSSerg
13.12.17
✎
13:55
|
+ (160) Опечатка. Применение нейросети или mcts в *программе можно считать нормальным...
|
|||
162
ERWINS
13.12.17
✎
14:07
|
Понял. В ГО чистый mcts работает, а вот в шахматах насколько я знаю нет.
|
|||
163
Волшебник
модератор
13.12.17
✎
14:14
|
(148) Вы арканоид с пинг-понгом не путаете?
Роботов для игры в настольный теннис пока не придумано. Есть робопушки, которые выстреливают шарики по программе и/или рандомно. |
|||
164
ERWINS
13.12.17
✎
14:48
|
(162) насколько я помню это связано с конечностью партии в ГО и потенциальной бесконечностью в шахматах.
|
|||
165
ДемонМаксвелла
13.12.17
✎
15:11
|
(164) неверно. дерево перебора в го ветвится быстрее. и партия шахмат не бесконечна, есть, например, правило 50 ходов.
|
|||
166
ERWINS
13.12.17
✎
15:13
|
(165) партия в го не может длиться больше чем 19*19 ходов.
Какома максимальная длительность партии в шахматы? |
|||
167
ДемонМаксвелла
13.12.17
✎
15:19
|
(166) лучше говорить о правиле 75 ходов, там ничья засчитывается автоматом.
теоретически это приводит к верхней планке менее 10 тыс ходов. Но на практике 99,99 % партий (и у людей, и у машин) длятся менее 100 ходов. |
|||
168
ERWINS
13.12.17
✎
15:21
|
(167) а в ГО это 19*19 ходов если кто то раньше не сдастся. Но такое можно не учитывать.
|
|||
169
ДемонМаксвелла
13.12.17
✎
15:29
|
Длина партии растет линейно, а ветвление экспоненциально. Длина партии на количество расчетов сильно не влияет.
|
|||
170
ДемонМаксвелла
13.12.17
✎
15:33
|
||||
171
ERWINS
13.12.17
✎
15:35
|
(169) для MCTS важна длина партии, точнее как часто мы будем приходить к варианту пройгрыш/выйгрыш.
|
|||
172
NSSerg
13.12.17
✎
15:37
|
(166) (171) С этой точки зрения mcts важна не максимальная длина партии, а средняя.
Чем меньше возможных ходов в позиции, тем проще mcts (в шахматы меньше чем в ГО) Чем короче средняя партия - тем проще mcts (в шахматы средняя партия короче чем в ГО) |
|||
173
NSSerg
13.12.17
✎
15:41
|
В шахматы препятствие для MCTS было совершенно другое, а именно то что в шахматы в отличии от ГО - Альфа-бета хорошо играет. Но есть примеры и шахмат на MCTS - но играют слабее альфа-беты. Например WildCat пробовал, можно у него спросить чем закончилось (игра осмысленная, но слабая относительно классической альфа-беты)
А вот уже в шашки говорят были успешные попытки с mcts. Только я уже потерялся, о чем спор? Что сделано нечто феноменальное? Да, но я уже повторял, то что на обучение потрачено 4 часа - это ни о чем. Феноменально что сильно играет MCTS, и что при этом сильно играет с ОФ на нейросетях. Ни то ни другое не удавалось. И если бы не появились TPU, то и не удалось бы. |
|||
174
ERWINS
13.12.17
✎
15:42
|
(172) важна даже не длина партии,а партии с однозначным исходом. Если мы не используем в шахматах ОФ то работать MCTS не будет.
|
|||
175
ERWINS
13.12.17
✎
15:43
|
Спор в твоем утверждении что для шахмат чистый MCTS без ОФ будет работать.
|
|||
176
NSSerg
13.12.17
✎
15:43
|
(174) (175) Будет.
Что ты понимаешь под словом "работать"? И что такое MCTS без ОФ? UCT+RAVE? Будет работать. Будет играть. Несравнимо сильнее чем рандомный движок. |
|||
177
ERWINS
13.12.17
✎
15:44
|
(176) "Несравнимо сильнее чем рандомный движок" жесткое утверждение. Не верю.
|
|||
178
NSSerg
13.12.17
✎
15:48
|
(177) На основании чего не веришь? Я, когда приступал к написанию Symple - вообще не мог понять как mcts работает, и не верил что сможет играть. А оно вона как - играет, осмысленно, видит тактику. То есть у меня есть причины думать что сможет играть.
Потом в шахматы - тоже не верилось что сможет играть, но есть пример WildCata - движок играющий в шахматы на mcts. |
|||
179
NSSerg
13.12.17
✎
15:50
|
(174) Что такое "партия с однозначным исходом"?
|
|||
180
NSSerg
13.12.17
✎
15:51
|
Все партии, наигранные mcts - с однозначным исходом. Конечная позиция имеет однозначный результат.
|
|||
181
ERWINS
13.12.17
✎
15:52
|
(179) победа/поражение или разница в числе камней и т д.
в шахматах почти всегда при случайных ходах будет или ничья очень долгая партия. |
|||
182
NSSerg
13.12.17
✎
16:52
|
(181) MCTS это не случайные ходы. Мы точно оба понимаем о чем идет речь? Что такое RAVE например?
|
|||
183
NSSerg
13.12.17
✎
17:22
|
Применительно к шахматам в качестве RAVE можно использовать статистику ходов, включающую в себя - Какая фигура, откуда, куда пошла, и если взятие, что съела.
У программы, в которой только RAVE - хорошие взятия вылезут в топ, и она начнет объедать рандомный движок. А далее в ТОП вылезут матующие ходы. То есть естественно нет никаких сомнений что только на одном RAVE MCTS-движок будет всё выигрывать у рандомного. Ну и никто не мешает наложить на статистику данные, например SEE, MVV/LVA (это ну никак не ОФ), так что программе не нужно даже набирать статистику по RAVE чтоб объедать, она будет уметь делать это изначально. UCT - вполне достаточно чтоб для 3ЭБ шахматная программа смогла построить готовую эндшпильную библиотеку, в реальном времени, прямо во время партии. Думаю что сможет и для 4ЭБ. Например KBNK, KQKR - думаю что и с этим проблем не будет. И это всё без ОФ. |
|||
184
ERWINS
13.12.17
✎
17:31
|
(183) "хорошие взятия вылезут в топ" игра партии идет до конца. Хорошие взятия алгоритм не увидит, так как может идти очень долго. Если мы например ограничиваем 30 ходами и потом считаем простую стоимость фигур то ваш вариант будет работать.
Неуверен что мат ладья+король вс король можно поставить случайными ходами меньше чем за 1000 ходов. |
|||
185
ERWINS
13.12.17
✎
17:32
|
Мы берем чистый монтекарло который работает на ГО и вероятно не работает на шахматах.
Любые улучшения это эвристика. |
|||
186
NSSerg
13.12.17
✎
17:44
|
(184) То есть как не увидит?
(185) Да, чистый mcts, без ОФ. Согласен даже на только UCT + RAVE + MVV/LVA. Совсем простая схема, аналогичная которой будет работать в ГО. |
|||
187
ERWINS
13.12.17
✎
17:47
|
(186) ты вероятно делаешь предположения что ходы взятий будут в приоритетах и работать форсированные варианты.
но эта эвристика, а мы говорим о чистом монтекарле. |
|||
188
NSSerg
13.12.17
✎
17:47
|
+ (186) Вообще ничего кроме этого. Генератор ходов, исполнитель хода, проверка окончания партии, и простенькая формула для расчета миксующая UCT, вышеописанный RAVE.
И что-то для взятий. Например просто в случае остальных равных - рассматриваем ход лучший по MVV/LVA И утверждаю что такое будет выигрывать 100% против рандомного движка. |
|||
189
ERWINS
13.12.17
✎
17:51
|
(188) согласен с таким утверждением.
|
|||
190
NSSerg
13.12.17
✎
17:54
|
(187) Какие форсированные варианты в mcts? Как это?
Что такое чистый Монте-Карло? Это Монте-Карло без ОФ. Считается минимально играет UCT+RAVE+еще немножечко. |
|||
191
ERWINS
13.12.17
✎
18:06
|
(190) да, такое будет играть.
|
|||
192
ERWINS
13.12.17
✎
18:07
|
"И что-то для взятий" - форсированные варианты?
|
|||
193
NSSerg
13.12.17
✎
18:32
|
(192) нет, не переборное, либо mvv/lva, либо see.
Просто расставить приоритеты для ходов при одинаковой статистике. То же самое что простая сортировка ходов в обычной альфа-бете. Например приоритет по mvv/lva, у взятий приоритет перед остальными ходами. Я бы еще и шахам дал приоритет. Но мы обсуждали совсем другое, что альфа - полноценный движок, который уже умеет играть в шахматы. А обучение нужно только чтоб он играл хорошо. Как и классические шахматные программы с непроставленными весами в оф. Чтоб нормально играла - веса нужно настроить. И настройка за четыре часа, да и еще на сверхмощностях - это не достижение. Достижение Альфы в другом. |
|||
194
ERWINS
13.12.17
✎
18:37
|
Спор начался с фразы "Еще раз повторяю - программы с mcts могут играть без ОФ, совсем." - с ней я согласен для ГО и любой игры с конечным числом шагов в партии и не согласен с шахматами. Кстати с шашками я согласен если не учитывать дамки.
|
|||
195
NSSerg
13.12.17
✎
18:58
|
(194) ты же только что в (190) сказал противоположное.
|
|||
196
NSSerg
13.12.17
✎
19:37
|
Тут наверно стоит разобраться в устройстве шахматной программы. Сортировки ходов не имеют ни малейшего отношения к ОФ.
Может все-таки определимся, может ли играть MCTS без ОФ в шахматы или нет? Допустим если за "может играть" принять например набор 99,9% набранных очков против "рандомного движка" - движка который в любой позиции равновероятно делает ход из списка легальных ходов. в (191) Ты согласился что такое будет играть в шахматы. в (194) Ты опять не согласен. |
|||
197
ERWINS
13.12.17
✎
19:51
|
(196) с таким дополнением "Сортировки ходов не имеют ни малейшего отношения к ОФ" разночтений между нашими позициями нет.
Но я считаю что Сортировка ходов напрямую связана с ОФ и следует из ее статистики. |
|||
198
NSSerg
13.12.17
✎
20:48
|
(197) ты точно знаком с устройством шахматной программы?
мне то доказать что я знаком - ничего не стоит. И я утверждаю, что в шахматных программах ОФ и сортировка ходов - ну никак не свзяны. И если используется сортировка по mvv/lva, see, шахам, истории, киллеры, лучшие ходы - ну ни малейшего отношения к ОФ это не имеет. Мне очень тяжело что-то доказывать, когда собеседник на ходу придумывает новые определения классическим блокам шахматной программы. |
|||
199
NSSerg
13.12.17
✎
20:52
|
mvv/lva - это не статистика, так же как и see.
первое это просто разница номиналов берущей и взятой фигуры, а второе - статичная (без перебора) оценка результата разменов. К ОФ, статистике - это никаким боком. |
|||
200
ERWINS
14.12.17
✎
10:26
|
(198) ты меня не понял. Внос сортировки порядка ходов - это эвристика которая неявно следует из ОФ. В коде это разные куски которые никак не связаны.
(199) ты говоришь с точки зрения реализации, а я с точки зрения общих принципов. |
|||
201
NSSerg
14.12.17
✎
10:49
|
(200) Я тебя понял. Ни в одной сильной программе до сих пор ОФ не использовалась ни явно ни неявно в сортировке ходов.
Может быть можно притянуть за уши на история, киллеры и лучшие ходы - как-то повлияла ОФ, но я их использовать в простейшей программе на MCTS не предлагал. А mvv/lva и see - вообще статические методы. К Которым ну совсем никак нельзя притянуть ОФ. Далее - UCT и RAVE - это часть именно MCTS, переборных алгоритмов, основа MCTS. Поэтому к ОФ их тоже притянуть за уши не выйдет. В альфа-бете программе ОФ - это процедура вызываемая в листьях дерева. В ней нет ни SEE, ни других методов сортировки ходов. И ОФ не используется для сортировки ходов (и если бы даже использовалась, то я не предлагал её использовать в программе на MCTS без ОФ) в MCTS ОФ это добавка к рассчитанной статистике для выбора хода. Обычно это такая-же ОФ как в альфа-бете, но иногда для быстроты счета её делают инкрементальной (она не умеет считать полную ОФ, а умеет считать только разницу в ОФ до хода и после него). То есть все умные слова написанные выше - MVV/LVA, SEE, вытягивание шахов наверх, UCT, RAVE - ну никак невозможно притянуть к ОФ, они не имеют к ней никакого отношения. И еще немного. Кое у кого проскакивает мысль что Альфа вообще научилась играть в шахматы при помощи нейронной сети - конечно же нет. У неё естественно есть полноценный генератор ходов, и без всякой нейронной сети она знает какие легальные ходы (по правилам шахмат) есть в позиции. |
|||
202
ERWINS
14.12.17
✎
12:31
|
(201) В ГО в какой то из версий системе вообще не давали какие ходы легальны, а какие нет. Просто код возврата в случае плохого хода был поражение.
Не исключаю что и тут могли такое реализовать. В случае некорректного кода возврат - поражение. (201) я говорю о неявном использовании ОФ. Например взятия в самом примитивном варианте повышают ОФ - значит повышаем их вес. |
|||
203
NSSerg
14.12.17
✎
14:08
|
(202) >>Не исключаю что и тут могли такое реализовать.
Зря не исключаешь. Не могли. Ибо цели совсем другие. Научить НС правилам - это задачка уровня курсовой, серьезным людям такими извращениями заниматься не пристало, тем более что цель Альфы совершенно иная, и "немного" глобальней. То есть задача написать сильнейшую в мире шахматную программу "немного" глобальней чем задача написать извратный генератор ходов на нейронных сетях, поэтому такого в Альфе точно нет. Никаких проблем у классических генераторов ходов нет, они абсолютно точно генерируют ходы (или легальные ходы в легальном генераторе) - без единой ошибки, и с огромной скоростью, тысячекратно превышающей достаточную для Альфы-Зеро. Поэтому нет смысла заниматься глупостями. >> я говорю о неявном использовании ОФ. Например взятия в самом примитивном варианте повышают ОФ - значит повышаем их вес. Жесть. Ты еще запрети взятия в программе которая не использует ОФ. Или сильные ходы, потому что они повышают ОФ. Еще раз повторюсь - сортировки ходов не имеют ни малейшего отношения к ОФ. А если натягивать сову на глобус - так можно вообще программе в принципе запретить делать ходы. Так как любой ход изменяет значение ОФ. И есть общепринятая терминология, которой вообще желательно придерживаться, иначе понять друг друга будет невозможно. |
|||
204
NSSerg
15.12.17
✎
00:54
|
На каких ресурсах Альфа обучилась за четыре часа, это кстати не 4 TPU
AlphaZero defeated Stockfish after just 4 hours of self-play, using 5,000 first generation TPUs to generate the games and 64 second generation TPUs to train the neural networks https://en.wikipedia.org/wiki/AlphaZero И мнение автора Стокфиш о матче: https://www.chess.com/news/view/alphazero-reactions-from-top-gms-stockfish-author Тем временем Chess.com также получил длинный комментарий от одного из авторов оригинальной книги Stockfish Tord Romstad, который мы дадим в полном объеме: Результаты матчей сами по себе не имеют особого значения из-за довольно странного выбора параметров времени и настроек параметра Stockfish: игры были сыграны в фиксированное время 1 минута / ход, что означает, что Stockfish не использует эвристику управления временем ( много усилий было предпринято для того, чтобы компания Stockfish определила критические моменты в игре и решила, когда потратить дополнительное время на ходу, в фиксированное время за ход сила будет значительно страдать).Используемая версия Stockfish - один год, играла с гораздо большим количеством поисковых потоков, чем когда-либо получала значительное количество тестов, и имела слишком маленькие хеш-таблицы для количества потоков.Я считаю, что процент ничьих был бы намного выше в матче с более нормальными условиями. С другой стороны, нет никаких сомнений в том, что AlphaZero мог бы сыграть лучше, если бы в проект было включено больше работы (хотя «4 часа обучения», упомянутые в документе, очень вводят в заблуждение, когда вы принимаете во внимание огромные аппаратные ресурсы, используемые в течение этих 4 часов).Но в любом случае, Stockfish против AlphaZero - это очень сравнение яблок с орангутанами.Одна из них - обычная шахматная программа, работающая на обычных компьютерах, другая использует принципиально разные методы и работает на специально разработанных аппаратных средствах, которые недоступны для покупки (и это будет выход из бюджета обычных пользователей, если это так). |
|||
205
ERWINS
15.12.17
✎
16:03
|
(204) плата с 4 тенсорными процами стоит 700 долларов. Но она под экспортными ограничениями, так что ее не купишь.
в остальном согласен. |
|||
206
Волшебник
модератор
15.12.17
✎
16:07
|
(170) Это фейк
|
|||
207
ДемонМаксвелла
15.12.17
✎
17:41
|
(206) с чего это? там видео есть, его подделать сложнее, чем сделать робота. И вообще, нафига одному из ведущих производителей промышленных роботов (https://en.wikipedia.org/wiki/KUKA) делать фейки?
|
|||
208
ДемонМаксвелла
15.12.17
✎
17:43
|
(206) они максимум могут приврать насчет силы игры робота из маркетинговых соображений. Но робот то вообще играть умеет.
|
|||
209
ДемонМаксвелла
15.12.17
✎
17:50
|
там в статье о двух таких роботах рассказано. и видео игры обоих есть.
|
|||
210
NSSerg
15.12.17
✎
18:13
|
(205) это развод, TPU не продается.
|
|||
211
КомПрог
18.12.17
✎
17:24
|
Кто-то тут еоворил что-то про покер... получите:
https://hitech.newsru.com/article/18dec2017/libratus Искусственный интеллект превзошел сильнейших игроков в покер |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |