Deep Learning в шахматах

Тема в разделе "Машинное отделение", создана пользователем WinPooh, 22 сен 2015.

  1. WinPooh
    Оффлайн

    WinPooh В.М. Команда форума

    Репутация:
    95
    В параллельных ветках эта работа уже упоминалась, но, мне кажется, она достойна отдельной темы.
    Шахматная программа Giraffe: http://arxiv.org/pdf/1509.01549v2
    Автор - Matthew Lai из Лондона.

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

    Далее внутри каждой группы производится оптимизация параметров на основе игры программы с собой же - алгоритм TD(lambda) или какие-то его варианты. Для поиска весов задействуется нейронная сеть с двумя внутренними слоями, что, по словам автора, позволяет автоматически извлекать новые типы признаков позиции, а не просто подстраивать коэффициенты. Кроме того, машинное обучение используется ещё для управления поиском (в варианте probability-driven) и сортировки ходов в узлах дерева.

    Обучение состояло в игре по 12 полуходов из примерно 150 миллионов начальных позиций. Интересен способ их генерации: было взято 5 миллионов позиций из высококачественной базы партий, и в каждой сделано по одному возможному ходу за одну из сторон. Утверждается, что это даёт нужные статистические характеристики для полученного массива.

    В результате программа хорошо научилась решать Strategic Test Suite (на уровне 6-го Stockfish), но в турнирных условиях пока держится на уровне 2300-2400. Впрочем, задачи обыгрывать топ-движки и не ставилось, это пока чисто исследовательский проект.

    Обсуждения с участием автора:

    http://talkchess.com/forum/viewtopic.php?t=57409
    http://talkchess.com/forum/viewtopic.php?t=57557
    http://talkchess.com/forum/viewtopic.php?t=57558
     
    Последнее редактирование: 22 сен 2015
    Rom, Michael-13 и EvgeniyZh нравится это.
  2. WinPooh
    Оффлайн

    WinPooh В.М. Команда форума

    Репутация:
    95
  3. Camon14
    Оффлайн

    Camon14 Хранитель традиций баннер

    Репутация:
    688
    а зачем закрывать проект, если программа самообучающаяся? пусть прога за соседним компом играет и учится :oops:
     
  4. Michael-13
    Оффлайн

    Michael-13 Господин

    Репутация:
    29
    Посмотрите первую ссылку - http://arxiv.org/pdf/1509.01549v2 , и поймете, что программа при заданных установках достигла своего максимума (см.рис.4, стр.25).
    Для дальнейшего совершенствования, нужно перестраивать программу. Видимо, сама нейронная сеть не способна грамотно оценить и достаточно эффективно "автоматически извлекать новые типы признаков позиции, а не просто подстраивать коэффициенты".
     
  5. Rom
    Оффлайн

    Rom Старожил

    Репутация:
    28
    Я так понимаю, в нейросети Жирафа всего 2 скрытых слоя, в то время как в нейросети АльфаГо целых 12-13 (и таких нейросетей две). Так что есть ещё большое поле для экспериментов. В некотором смысле надо начинать всё с нуля, с точки 60-летней давности. Не ясно даже будет ли эффективно работать с нейросетью стандартная альфа-бета, или же только Монте-Карло, как в Го, или же что-то ещё. Надеюсь автор подучится в Google и вернется к этому вопросу.
     
    Последнее редактирование: 1 апр 2016
  6. Michael-13
    Оффлайн

    Michael-13 Господин

    Репутация:
    29
    Заставить программу искать что-то неизвестное - задача очень интересная.
    К примеру, в фолдинге белка люди справляются лучше компьютера.
    Например люди мыслят образами, пятнами (захват центра, атака на короля), целями (активизация фигура) а не конкретными вариантами. В этом плане программа для игры в Го - выглядит многообещающей.
     
  7. просроченый_кмс
    Оффлайн

    просроченый_кмс Старожил

    Репутация:
    6
    Если изначально программа обучается на первых 12 полуходах, то как она нормально может играть эндшпиль и миттельшпиль, от этого и результаты так себе, подход неправильный.
     
  8. WinPooh
    Оффлайн

    WinPooh В.М. Команда форума

    Репутация:
    95
    Мне кажется, в оригинальной статье не говорится, что она обучалась только на первых 12 полуходах. Можете привести дословную цитату?
     
  9. просроченый_кмс
    Оффлайн

    просроченый_кмс Старожил

    Репутация:
    6
    Я думаю уже давно пора развивать эволюционное программирование, когда не значения внутри нейросети, а вообще сама программа меняется случайным образом, но это наверно более рерурсная задача, с другой стороны эволюция внутри компа происходит быстрее, но если и запускать такое то не шахматную задачу, а создание искусственного интеллекта, но тут другой вопрос мне кажется обычный комп не сможет это сделать, должно быть что то гибкое со случайностями типа квантовой основы.

    WinPooh,
     
  10. Jadn
    Оффлайн

    Jadn баннер

    Репутация:
    52
    Ну так среди этих 150 миллионов были и эндшпильные и миттельшпильные.
     
  11. nn
    Оффлайн

    nn Старожил

    Репутация:
    124
  12. EvgeniyZh
    Оффлайн

    EvgeniyZh Учаcтник

    Репутация:
    15
    Если вы имеете представление, как это может работать хоть примерно, напишите об этом статью, может и выстрелит.
     
  13. просроченый_кмс
    Оффлайн

    просроченый_кмс Старожил

    Репутация:
    6
    Какое там представление, я лишь разделяю точку зрения что без квантовых эффектов вряд ли создать искусственный интеллект. Вероятно это же происходит и внутри нейронов мозга.
     
  14. EvgeniyZh
    Оффлайн

    EvgeniyZh Учаcтник

    Репутация:
    15
    Перефразирую. Что вы подразумеваете под
    Что должно меняться в самой программе? Какие её элементы?
    Почему вы считаете что это приведет к увеличению производительности? При чём тут квантовые эффекты?
     
    Последнее редактирование: 9 апр 2016
  15. просроченый_кмс
    Оффлайн

    просроченый_кмс Старожил

    Репутация:
    6
    Квантовые эффекты пока не причём, меняться должна программа, случайным образом тысячи изменений в программе, если вдруг что то получилось размножать, но каждую надо тестировать на куче партий в общем при ограниченных ресурсах это тупиковый путь.

    Кстати вот интересная статейка что может вытворять железо
    ЭВОЛЮЦИЯ ЖЕЛЕЗА
    https://kiwibyrd.org/2016/03/05/211/