Автоматический подбор параметров движка

Тема в разделе "Машинное отделение", создана пользователем WildCat, 16 фев 2007.

  1. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    WinPooh, кстати - по ссылке только один эксперимент. Второй к генетическим алгоритмам/спускам не имеет никакого отношения. Никогда не слышал о поисках экстремумов при помощи нейроных сетей :) Второй пост это просто бред "не в тему"

    А в первом эксперименте вывод:

    Вывода приведенного тобой там нет!
  2. Fruit Александр

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    12.02.2006
    Сообщения:
    2.201
    Симпатии:
    64
    Репутация:
    3
    Оффлайн
    В пользу автоматической настройки ОФ говорят ещё несколько непоняток. Мож только для меня?
    1 Очень короткий срок создания супер движка http://www.vrichey.de/cct6/index_table.htm - начало 2004г. В декабре 2005г Рыбка уже на 100-150 пунктов сильнее Shredder 9. +800 пунктов за 1,5 года!
    2 Очень близкая оценка с фруктовыми движками (Fruit, Toga). Если не клон (я уверен, чте не клон), то почему?
    3 Огромный размер движка, по сравнению с другими программами. Почему?
  3. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    За полтора года можно приблизится вполную к экстрмуму на очень плохой функции от 1000 параметров, даже с очень медленным и неточным рассчетом её значений (как в нашем случае) Но врятли Васик брал за основу свою ОФ. Скорей всего он взял нечто хорошее, и прибавил свои таблицы.
  4. Fruit Александр

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    12.02.2006
    Сообщения:
    2.201
    Симпатии:
    64
    Репутация:
    3
    Оффлайн
    Из интервью с Васиком:

    07. Майкл Дайози:

    Почему Рыбка настолько сильнее, чем все остальные, какие знания, методы поиска есть у Рыбки, которых другие движки не имеют? Чего нет в Рыбке, что есть у других?

    Васик Райлих:

    Трудно сказать наверняка. Компьютерные шахматы в настоящее время слишком трудны для любого из нас, чтобы быть способным ответить на такой вопрос с полной уверенностью. Я попробовал дать Рыбке как хорошую оценочную функцию, так и эффективный поиск. Мое личное мнение - оценка позиции у Рыбки лучше, чем у ее главных конкурентов (и очень отличается) , в то время как ее поиск имеет сопоставимое качество (и отличается меньше).

    Мнение главного Зубра... О вреде автоматики ничего не сказано. :)
  5. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Мнение остальных такое-же - в Рыбке очень сильна Оценка. А в чем сила оценки в Рыбке - Васик несколько раз проговаривался, потом стирая свои посты. А вот Сергей Марков эти посты сохранил :)

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

    Для сравнения - я абсолютно не умею играть в шашки, и поэтому понятия не имею какой ход хороший, а какой плохой. Но несколько раз ззапустив счет с разных начальных точек я могу с уверенностью сказать - c5 хорошая шашка, а e5 плохая.
    Сам к этому выводу я не пришел бы никогда. Насчет остальных полей (за исключением первого ряда) и шашисты-гроссы ничего внятного сказать не могут. Что-же говорить о двухшашечных сочетаниях...

    Например h6,a7 в один голос все гроссы говорят что это сильные поля... Но это не так.
    h6 - скорей слабое поле, а a7 - среднее, может чуть лучше среднего.

    Так-же и любой автор сильной шахматной программы - по сравнению с ней не умеет играть в шахматы. И ничего он ей сказать не может. Это программа может ему сказать, а дальше сам автор уже вправе отредактировать вручную полученный набор признаков.
  6. Chemer Максим

    • Участник
    Рег.:
    14.09.2006
    Сообщения:
    1.674
    Симпатии:
    13
    Репутация:
    0
    Адрес:
    Запорожье
    Оффлайн
    Мое мнение такое! Целевая функция - шахматная сила - вычисляется наигрыванием партий. Для того, что бы получить ее значение с точностью до 0,01 % нужно наиграть очень (очень-очень) много партий (я думаю около 10^5). и тех 200 - 500 партий, что у вас на итерации явно недостаточно, все потуги сжерает погрешность. Невозможно вычислить правильный градиент из-за погрешности. Поэтому и нет сходимости.
  7. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    У кого как :) У меня сходимость есть, и выше я писал - всего партий значительно больше чем 10^5. На итерации у меня не 500, а 2000 партий. И этого достаточно! Недостаточно для градиентного спуска из одной точки. Но у меня другие методы.
    То есть градиент не вычисляется. Используются методы случайных направлений с запоминанием нескольких хороших точек. Мои методы хорошо ищут окресности локальных экстремумов, а дальше я доведу до ума уже градиентным спуском с большим числом партий.

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

    На практке именно в таких ситуациях экстремумы и ищут - медленный и неточный расчет целевой функции. И всё нормально работает. Ссылки на публикации я в этой ветке давал. Несколько ссылок давал и в других ветках.
  8. Fruit Александр

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    12.02.2006
    Сообщения:
    2.201
    Симпатии:
    64
    Репутация:
    3
    Оффлайн
    2-3х фигурные сочетания в зависимости от чего? От пешечных структур, видов центра или просто сочетания?
  9. Chemer Максим

    • Участник
    Рег.:
    14.09.2006
    Сообщения:
    1.674
    Симпатии:
    13
    Репутация:
    0
    Адрес:
    Запорожье
    Оффлайн
    Такое ощющение, что на Васика трудится целый вычислительный массив мейнфреймов. :D
  10. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Не нужен комплекс майнфреймов :)
    Проще всего - это сделать проект распределенных вычислений, а на каждой итерации дробить партии между тестерами (тогда количество особей можно увеличить хоть до тысячи)

    Либо пойти моим путем - у меня три компа, один из них двухядерный. Я могу наигрывать больше 50000 партий за сутки (с контролем несколько секунд на партию)
    За месяц - полтора миллиона партий. Это не так уж и мало :)

    Без всяких зависимостей. У Васика первые версии плавали в Эндшпиле, у меня в шашках получилось тоже самое - из-за того что не разделил таблицы по типам и стадиям партии - Чисто на полученных таблицах программа весьма сильно играет в миттельшпиле, и плавает в эндшпиле (если не использовать ЭБ)

    Мне кажется что тут есть какая-то связь. Что-то мне моя ситуация напоминает :)
    Может первые беты новой Рыбки? :)
  11. TopicStarter Overlay

    WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    А как я их могу сделать разными? У меня нет никаких таких знаний, которые позволили бы это сделать.
  12. Orlov Учаcтник

    • Участник
    Рег.:
    27.02.2007
    Сообщения:
    177
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Ну попробовать например экспериментальным путем. А откуда у тебя знания про одну таблицу? Как то же ты ее изначально выдумал?
  13. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Эксперементальным путем найти экстрмум функции нескольких переменных? :)
    При этом абсолютно не зная её поведения...
    Так мы и пришли опять к методам поиска экстремумов, чем тут и занимаемся.
  14. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.491
    Симпатии:
    3.118
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Так уж и абсолютно.
  15. Orlov Учаcтник

    • Участник
    Рег.:
    27.02.2007
    Сообщения:
    177
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Ну взял же он где-то таблицы для фигур? С этих значений и начался поиск экстремума :)
    Тогда почему от них пляшем?
  16. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Человек на основе интуиции может дать начальную точку, и дальше с неё сдвинуться не в состоянии.
  17. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Угу, абсолютно. На данный момент у меня тестовая версия шашечной программы играет в грссмейстерскую силу, но при этом я до сих пор ничего не понимаю в шашках, и о ценности полей в шашках могу сказать только то, что посчитала моя программа. Для меня все поля абсолютно равноценны, и ничего о поведении функции я сказать не могу.
  18. Orlov Учаcтник

    • Участник
    Рег.:
    27.02.2007
    Сообщения:
    177
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    А если интуиция подвела и мы взяли ошибочную точку отсчета ? Как можно автоматически настраивать
    64 переменные (для одной таблицы) с применением математических методов полагаясь только на интуицию? Попахивает валюнтаризмом :)
  19. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Мат. методы не полагаются на интуицию :)
    Настройка, поиск экстремумов Функции от 64 параметов не является чем-либо особо страшным. У меня в соседней ветке дана ссылку на программу - последняя версия которой легко ищет экстремум функции от 3000 параметров, это наверно "немного" больше 64-ех?

    От точки отсчета ничего не зависит, особенно если мы накладываем сетку на пространство, либо используем очень большой шаг при мутации особи.

    И если на плохих алгоритмах я легко настроил таблицу из 28 параметров в шашках (На самом деле это кусок оценки простой из таблицы на 82 параметра!!! Я сдуру включил всё в одну таблицу, и настраивал функцию от 82 параметров, и как видите нормально её нстроил, причем достаточно быстро)
    - почему бы в шахматах не настроить несколько таблиц на 64 параметра с хорошими алгоритмами? :)
  20. Orlov Учаcтник

    • Участник
    Рег.:
    27.02.2007
    Сообщения:
    177
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Понятно. Но давайте рассмотрим конкретный пример WildCat. Таблица стоимости фигур 100(зафиксирована), 400, 400,
    600, 1200. Максимальная дельта для фигуры мне кажется не больше 30(ну примерно). Т.е. максимум не может быть больше 430, а минимум меньше 370. Так? Говорить о том что в данном случае мы получим где-то в этом диапазоне (370-430)экстремум для фигуры (или значение близкое к нему нельзя). Это если я правильно понял будет всего лишь локальный максимум. Поправьте если не прав. При увеличении шага кол-во партий растет невероятно !!! и все вырождается в конце концов в бесконечность шахмат :)
  21. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Растет невероятно лишь при бесконечном числе параметров. Мы же эмулируем реальную оценку некоторой функцией, от весьма небольшого числа параметров. И вот для такого числа параметров и для такого вида ОФ - найти Экстремум не так уж и сложно.

    Насчет локального. Многократно писал в этой ветке - алгоритмы, которые на данный момент используются мной ищут не локальный экстрмум, а глобальный. И не используются методы подстройки одного, конкретного параметра. Это покоординатный спуск - он имеет очень плохую сходимость, и так мы экстремум никогда не найдем. Используются методы поиска экстремума сразу по всему пространству.

    Да, используя покоординатный спуск мы постоянно будем сидеть в локальных экстремумах - поэтому на плохих функциях, с оврагами - он не используется. И я его не использую.
  22. TopicStarter Overlay

    WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Читал книдку Нимцовича - все фигуры должны быть в центре. Вот отсюда и можно выдумать какую-то кривую таблицу. Но из каких соображений ее можно раздвоить?
    Это только для короля понятно. А для остальных фигур...
  23. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Я сумел раздвоить таблицы - для короля (Это понятно), для пешки (в эндшпиле пешки должны идти в ферзи), Для Ферзя (В эндшпиле нужна централизация ферзя)

    Конь у меня ужастный, как его настраивать вручную я не понимаю - коня оценивает за счет признака сильный конь (Конь на слабом поле противника, перед его слабой пешкой), и хороший конь против плохого Слона (то-же самое, но вражеский слон еще и упирается в эту пешку "Сзади"), ну и небольшой минус краю, и минус углам a8 и h8.

    Ну и чем центральнее, тем лучше.

    Слона настроить несложно - Централизация + бонус большим диагоналям для фианкетирования, и для него возможности важнее.

    Пешка - Таблицы "от балды".
  24. Orlov Учаcтник

    • Участник
    Рег.:
    27.02.2007
    Сообщения:
    177
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    "а ты читал о вреде формального подхода к центру" :) Так вот. Разумно предположить что в конце игры фигуры должны стоять центрее. Особенно дальнобойные. Что касается пешек, см. последний пост NS. Абсолютно с ним согласен. Бонусы за кандидатов в проходные в конце игры должны возрастать в разы.
  25. Orlov Учаcтник

    • Участник
    Рег.:
    27.02.2007
    Сообщения:
    177
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Это теория. Если можно дайте реальный пример с исходными данными WildCat.
    Если точнее: Какова дельта для слона и коня (для простоты не рассматривая ничего более) должна быть что бы все работало в данном конкретном случае. Ведь поиск максимума функции с двумя параметрами одновременно есть частный случай поиска максимума с количеством параметров N. Не так ли?
  26. Chemer Максим

    • Участник
    Рег.:
    14.09.2006
    Сообщения:
    1.674
    Симпатии:
    13
    Репутация:
    0
    Адрес:
    Запорожье
    Оффлайн
    Надеюсь, что через год Кошка и Анечка, а может потом и Греко будут во всю юзать автоматический подбор параметров, выпускать новые версии и драть Тогу и Карася. В любом случае хочется в это верить. :D А потом может быть и мой движок...
  27. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.491
    Симпатии:
    3.118
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Я иногда подумываю, что при очередном переписывании Греки стоит вынести все параметры оценки в какие-то конфигурационные файлы, чтобы автоматизировать потом подстройку. Но после этого я обычно думаю следующую мысль - а где мне взять столько машинного времени, чтобы гонять миллионы тестовых партий :)
  28. MikhailK Mikhail Kalenkov

    • Участник
    Рег.:
    12.10.2006
    Сообщения:
    454
    Симпатии:
    0
    Репутация:
    0
    Адрес:
    Moscow
    Оффлайн
    У меня есть доступ к небольшому кластеру на Xeon'ах, Athlon'ах и Opteron'ах. Всего в кластере около 20 машин, многие из них двухпроцессорные или двухядерные. Можно попробовать погонять движки там. Запустить на несколько дней шахматное рубилово мне будет несложно. Если интересно, то можно обсудить детали.
  29. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.491
    Симпатии:
    3.118
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Спасибо за предложение, буду иметь в виду. Правда, вряд ли это понадобится в ближайшие, скажем, полгода...
  30. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Так у меня-же есть пост на эту тему!
    Для примера - Три способа порождений.

    1. Возьмем случайную точку на пространстве.
    k[1]:=1;
    k[2]:=3+Random()*2; Конь от 3 до 5.
    k[3]:=3+Random()*2; Слон от 3 до 5.
    k[4]:=4+Random()*3; Ладья от 4 до 7.
    k[5]:=7+Random()*10; Ферзь от 7 до 17-ти.

    2. Возьмем точку в некоторой окресности хорошей точки.
    For i:=2 to 5 do k:=k+Random()-0.5;

    3. Возмем среднюю между двумя точками.
    i:=0;
    j:=0;
    While i=j do
    Begin
    i:=Random(50)+1;
    j:=Random(50)+1;
    End;
    И теперь берем среднее значение между вектоорами K i-той j-той Особи.

    Случайный поиск в чистом виде. Что еще нужно? За неделю сходится не по пяти параметрам как в данном тесте, а по 28!

    Я писал посты - ДЕЛЬТА МОЖЕТ БЫТЬ ЛЮБАЯ, второй способ можно ВООБЩЕ убрать.
    Сканирование пространства, и усереднение двух точек. Больше ничего не надо. Нет никакой дельты. Для такого малого числа параметров Сойдется даже чистое сканирование пространства.
  31. TopicStarter Overlay

    WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    ишто?

    А вот и нет. Как раз дальнобойным центр по барабану. Они скорее его обстреливать должны, чем там стоять.

    У меня нет таких бонусов. Так что если они возрастут в разы ничего не изменится :p
    А продвинутость проходных ценна всю дорогу, а не только в конце.
  32. TopicStarter Overlay

    WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Я сделаю новую версию на этой неделе. Пока занят тем, что все переустанавливаю после нападения вирусов.
  33. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Чтоб не копаться в чужих исходниках, кто нибудь может всё-таки дать какое-нибудь хорошее определение "кандидата в проходные"?
  34. TopicStarter Overlay

    WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Вот новая версия: www.igorkorshunov.narod.ru/WildCatGen.rar
    30 версий в 10 кругов. Размножаются почкованием.
    Скачивайте все, кто хочет помогать.
    Программу нужно просто запускать и все. Желательно почаще. И во время работы программы компьютер не трогать.

    Можно попробовать создать собственный вариант настроек. Для этого сразу после запуска остановить и исправить один из файлов prs, но не 0.prs.
  35. Fruit Александр

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    12.02.2006
    Сообщения:
    2.201
    Симпатии:
    64
    Репутация:
    3
    Оффлайн
    Может хотя бы винампик можно? :)

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