понедельник, 21 сентября 2015 г.

Нейросеть Giraffe за 72 часа научилась играть в шахматы на уровне международного мастера ФИДЕ



Студент Имперского колледжа Лондона Мэтью Лай (Matthew Lai) разработал компьютерную программу Giraffe, которая трое суток играла в шахматы сама с собой — и смогла извлечь все предметно-ориентированные знания, необходимые для игры на уровне международного мастера ФИДЕ. Для этого ей достаточно вычислительных ресурсов нормального компьютера. Обучение нейросети происходило 72 часа в 20 тредов на машине с двумя 10-ядерными процессорами Xeon E5-2660.

В научной работе автор пишет, что после тренировки в течение 72 часов программа выбирала наилучший возможный ход в 46% случаев, а один из трёх наилучших ходов — в 70% случаев. Это очень неплохой результат даже для обычных шахматных программ.

Всем известен факт, что компьютеры лучше людей играют в шахматы, но не все понимают, за счёт чего они добиваются победы, ведь простого брутфорса недостаточно для перебора всех 10123 возможных ходов и ответов противника.

Во-первых, шахматные программы ограничивают максимальную глубину расчёта ветвей. Во-вторых, начиная с Deep Blue и заканчивая нынешним чемпионом среди компьютерных шахмат Komodo, они вряд ли победили человека, если бы настройку модуля оценки позиции не проводил гроссмейстер или очень хорошо разбирающиеся в шахматах люди, как группа разработчиков Deep Blue из компании IBM. В программу изначально закладывают базу дебютов и характерные приёмы игры, вроде защиты короля пешкой или атаки на короля в открытой позиции с разноцветными слонами.

Грамотная оценка позиции позволяет программе выбрать более предпочтительную ветвь для развития партии.

В связи с этим становится понятнее, почему новая программа Giraffe так отличается от остальных. Её никто не настраивал, она сама училась играть. К тому же, вместо банального брутфорса ветвей с ограничением по глубине, программа использует «вероятностный» подход. Она более глубоко прорабатывает те ветви, для которых больше вероятность длинного продолжения.

На иллюстрации показано дерево решений. Жёлтым цветом обозначены узлы дерева, видные стандартному алгоритму с ограничением на длину ветвей. Зелёным цветом — узлы, видные только алгоритму с ограничением по вероятности (Giraffe). Красным цветом обозначены узлы, видные для обоих алгоритмов.


Такой алгоритм основан на предпосылке, что соперник тоже ответит лучшим ходом среди возможных — и партия затянется на максимальное количество ходов. Именно такие ветви Giraffe выбирает для более глубокого анализа. В каком-то смысле логика работы программы похожа на логику опытных шахматистов, которые «интуитивно» чувствуют наиболее выгодные пути развития партии.

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


Вот как в программе представляется позиция.


P.S. Профессор компьютерных наук Себастьян Трун (Sebastian Thrun) одним из первых в мире применил нейросети в шахматных программах. В середине 90-х он разработал программу NeuroChess. Впрочем, как и нынешняя программа Giraffe, та разработка тоже не могла обыграть лучших представителей «классической школы».


3 комментария:

  1. Этот комментарий был удален автором.

    ОтветитьУдалить
  2. sandricmora17 сентября 2015 в 00:12#
    Для этого ей достаточно вычислительных ресурсов нормального компьютера. Обучение нейросети происходило 72 часа в 20 тредов на машине с двумя 10-ядерными процессорами Xeon E5-2660.
    Я бы сказал даже ниже среднего, чего там.
    –1 anloop17 сентября 2015 в 00:22 (комментарий был изменён)#↵↑
    А я бы спросил так: почему в паре 8ядерных\16потоковых процессоров использовалось всего 20 потоков?\
    Процессоры таки 8ядерные (если мы говорим конкретно про E5-2660)
    http://ark.intel.com/ru/products/64584/Intel-Xeon-Processor-E5-2660-20M-Cache-2_20-GHz-8_00-GTs-Intel-QPI
    0 Coob17 сентября 2015 в 01:49 (комментарий был изменён)#↵↑
    Они бывают разные. v2 и v3 по 10 ядер.

    ark.intel.com/ru/products/75272/Intel-Xeon-Processor-E5-2660-v2-25M-Cache-2_20-GHz
    ark.intel.com/ru/products/81706/Intel-Xeon-Processor-E5-2660-v3-25M-Cache-2_60-GHz

    The evaluator network converges in about 72 hours on a machine with 2x10-core Intel Xeon E5-2660
    v2 CPU
    –1 Sadler17 сентября 2015 в 07:59#↵↑
    Может быть, студент хотел оставить немного ресурсов для собственных нужд?
    0 ilyanik21 сентября 2015 в 10:25#↵↑
    По-моему, это недостаток перевода, и имелось в виду, что «вычислительных ресурсов нормального компьютера» достаточно «для игры на уровне международного мастера ФИДЕ», а не для процесса обучения.
    +7 ankh198917 сентября 2015 в 10:38#
    И это всего лишь магистерская диссертация. Британские ученые не так просты как может показаться. А вообще интересно разобраться в том, что же придумал этот Мэтью: я тут уже пол года бьюсь с решалкой тсумего и никак не могу придумать способ которым бы эта решалка могла запоминать и применять разные трюки (хитрые ходы) для решения.
    +2 Psychopompe17 сентября 2015 в 11:35#↵↑
    Напишите ему, e-mail же есть.
    0 ankh198920 сентября 2015 в 02:35#↵↑
    Прочитал его статью. Ничего не понял. Как обычно бывает в таких диссертациях, цель не объяснить как это работает, а перечислить алгоритмы которые для этого использовались и сдобрить всё это таблицами где в подробно показано насколько новое решение превосходит старые.

    Email мне архив не показывает — требует регистрироваться.
    0 Psychopompe20 сентября 2015 в 03:54#↵↑
    Ну так никто же листинг кода не будет приводить, не имеет смысла.
    Не так уж сложно зарегистрироваться. Выслал в ДМ.
    +5 lucius17 сентября 2015 в 17:29#
    Пусть на игру Го натравит.
    image
    0 ankh198920 сентября 2015 в 01:49#↵↑
    Что это такое на доске? Где вы видели такое джозеки? :)
    +1 ankh198920 сентября 2015 в 12:15#↵↑
    К слову, Мэтью говорит, что его идея применима к Го и уже были некие подвижку в эту сторону (хотя там идея была не совсем такая в «жирафе»): arxiv.org/pdf/1412.3409v2.pdf
    +1 iG0Lka18 сентября 2015 в 00:57#
    А почему так недолго она обучалась?
    А если обучалась дольше то почему не сообщается о том до какого уровня она прокачалась, скажем за неделю?
    +5 alizar18 сентября 2015 в 01:19#↵↑
    Дальше не было особого прогресса


    –4 Vig718 сентября 2015 в 17:44#
    Не вижу ничего особенного. Ну, научилась, да. Но в шахматах X полей, Y фигур и ограниченное количество ходов для каждой фигуры.
    +1 dom1n1k20 сентября 2015 в 00:44#↵↑
    У рояля 88 клавиш, у пианиста 10 пальцев, в нотах 5 линеек — тоже не так много, что там сложного-то?
    0 Vig720 сентября 2015 в 14:07#↵↑
    Не верное сравнение. Я к тому и веду, что в шахматах минимум чувств — только математика.
    0 ankh198920 сентября 2015 в 01:48#↵↑
    Чтобы лучше осознать крутизну того, что он придумал — попробуйте решить более простую задачу, когда на доске несколько фигур и нужно найти лучший ход который приведет к мату в 3-4 хода. Когда это сделать не получится в общем случае, представьте насколько сложнее решить более общую задачу — на любой доске найти лучший ход. Вот Мэтью умудрился как то это сделать.
    0 altman20 сентября 2015 в 23:34#↵↑
    Не понятно, как оценивалась «лучшость» хода

    ОтветитьУдалить
  3. sandricmora17 сентября 2015 в 00:12#
    Для этого ей достаточно вычислительных ресурсов нормального компьютера. Обучение нейросети происходило 72 часа в 20 тредов на машине с двумя 10-ядерными процессорами Xeon E5-2660.

    Я бы сказал даже ниже среднего, чего там.

    А я бы спросил так: почему в паре 8ядерных\16потоковых процессоров использовалось всего 20 потоков?\

    Процессоры таки 8ядерные (если мы говорим конкретно про E5-2660)
    http://ark.intel.com/ru/products/64584/Intel-Xeon-Processor-E5-2660-20M-Cache-2_20-GHz-8_00-GTs-Intel-QPI

    Они бывают разные. v2 и v3 по 10 ядер.

    ark.intel.com/ru/products/75272/Intel-Xeon-Processor-E5-2660-v2-25M-Cache-2_20-GHz
    ark.intel.com/ru/products/81706/Intel-Xeon-Processor-E5-2660-v3-25M-Cache-2_60-GHz

    The evaluator network converges in about 72 hours on a machine with 2x10-core Intel Xeon E5-2660
    v2 CPU

    Может быть, студент хотел оставить немного ресурсов для собственных нужд?

    По-моему, это недостаток перевода, и имелось в виду, что «вычислительных ресурсов нормального компьютера» достаточно «для игры на уровне международного мастера ФИДЕ», а не для процесса обучения.


    И это всего лишь магистерская диссертация. Британские ученые не так просты как может показаться. А вообще интересно разобраться в том, что же придумал этот Мэтью: я тут уже пол года бьюсь с решалкой тсумего и никак не могу придумать способ которым бы эта решалка могла запоминать и применять разные трюки (хитрые ходы) для решения.

    Напишите ему, e-mail же есть.

    Прочитал его статью. Ничего не понял. Как обычно бывает в таких диссертациях, цель не объяснить как это работает, а перечислить алгоритмы которые для этого использовались и сдобрить всё это таблицами где в подробно показано насколько новое решение превосходит старые.

    Email мне архив не показывает — требует регистрироваться.

    Ну так никто же листинг кода не будет приводить, не имеет смысла.
    Не так уж сложно зарегистрироваться. Выслал в ДМ.


    Пусть на игру Го натравит.
    image


    Что это такое на доске? Где вы видели такое джозеки? :)

    К слову, Мэтью говорит, что его идея применима к Го и уже были некие подвижку в эту сторону (хотя там идея была не совсем такая в «жирафе»): arxiv.org/pdf/1412.3409v2.pdf


    А почему так недолго она обучалась?

    А если обучалась дольше то почему не сообщается о том до какого уровня она прокачалась, скажем за неделю?


    Дальше не было особого прогресса

    Не вижу ничего особенного. Ну, научилась, да. Но в шахматах X полей, Y фигур и ограниченное количество ходов для каждой фигуры.

    У рояля 88 клавиш, у пианиста 10 пальцев, в нотах 5 линеек — тоже не так много, что там сложного-то?


    Не верное сравнение. Я к тому и веду, что в шахматах минимум чувств — только математика.



    Чтобы лучше осознать крутизну того, что он придумал — попробуйте решить более простую задачу, когда на доске несколько фигур и нужно найти лучший ход который приведет к мату в 3-4 хода. Когда это сделать не получится в общем случае, представьте насколько сложнее решить более общую задачу — на любой доске найти лучший ход. Вот Мэтью умудрился как то это сделать.



    Не понятно, как оценивалась «лучшость» хода

    ОтветитьУдалить