Deep Learning в шахматах

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

  1. TopicStarter Overlay

    WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.492
    Симпатии:
    3.122
    Репутация:
    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
    Rom, Michael-13 и EvgeniyZh нравится это.
  2. TopicStarter Overlay

    WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.492
    Симпатии:
    3.122
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
  3. Camon14 Хранитель традиций

    • Заслуженный
    • Ветеран
    • Заблокирован
    • Старожил
    Рег.:
    28.05.2012
    Сообщения:
    18.567
    Симпатии:
    10.939
    Репутация:
    687
    Оффлайн
    а зачем закрывать проект, если программа самообучающаяся? пусть прога за соседним компом играет и учится :oops:
  4. Michael-13 Господин

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

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

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

    • Участник
    • Старожил
    Рег.:
    15.02.2010
    Сообщения:
    1.112
    Симпатии:
    167
    Репутация:
    6
    Оффлайн
    Если изначально программа обучается на первых 12 полуходах, то как она нормально может играть эндшпиль и миттельшпиль, от этого и результаты так себе, подход неправильный.
  8. TopicStarter Overlay

    WinPooh В.М.

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

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

    WinPooh,
  10. Jadn Заслуженный

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    10.05.2006
    Сообщения:
    3.626
    Симпатии:
    2.535
    Репутация:
    52
    Оффлайн
    Ну так среди этих 150 миллионов были и эндшпильные и миттельшпильные.
  11. nn Заблокирован

    • Участник
    • Заблокирован
    • Старожил
    Рег.:
    25.03.2007
    Сообщения:
    1.459
    Симпатии:
    3.109
    Репутация:
    124
    Нарушения:
    31
    Оффлайн
  12. EvgeniyZh Учаcтник

    • Участник
    Рег.:
    07.02.2014
    Сообщения:
    487
    Симпатии:
    112
    Репутация:
    15
    Адрес:
    Ришон ле Цион, Израиль
    Оффлайн
    Если вы имеете представление, как это может работать хоть примерно, напишите об этом статью, может и выстрелит.
  13. просроченый_кмс Старожил

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

    • Участник
    Рег.:
    07.02.2014
    Сообщения:
    487
    Симпатии:
    112
    Репутация:
    15
    Адрес:
    Ришон ле Цион, Израиль
    Оффлайн
    Перефразирую. Что вы подразумеваете под
    Что должно меняться в самой программе? Какие её элементы?
    Почему вы считаете что это приведет к увеличению производительности? При чём тут квантовые эффекты?
  15. просроченый_кмс Старожил

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

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

Поделиться этой страницей