Сравнение системы Эло с системой Сонаса.

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

  1. NS
    Оффлайн

    NS Нефёдов Сергей баннер

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

    При этом метод наискорейшего спуска точно найдет единственный существующий экстремум для системы Сонаса (Так как она линейна, для суммы квадратов получается квадратичная форма, имеющая единственную точку минимума)

    А для системы Эло может и не сойтись - но на таком количестве партий должно быть всё ОК, но если появится несходимость (будет сходиться в локальном экстремуме) - то добавлю Монте-Карло.
     
  2. WildCat
    Оффлайн

    WildCat Коршунов Игорь Команда форума

    Репутация:
    0
    А как угадать, что он локальный?
     
  3. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    Случайные начальные значения, и идем наискорейшим спуском.
    Если каждый раз сходится в одной точке - значит всё ОК, если нет -
    То большим количеством попыток Монте-Карло отбираем несколько лучших, по каждой из лучших идем наискорейшим спуском, как окончательный результат выдаем тот, который дает меньшую сумму квадратов.
     
  4. WildCat
    Оффлайн

    WildCat Коршунов Игорь Команда форума

    Репутация:
    0
    Решал я этим методом одну задачу. Результат был хорошим, но далеким (относительно) от оптимального.
     
  5. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    При большом количестве партий экстремум должен быть один (всё таки не настолько и нелинейна система Эло)
    И есть развитие этого метода - после случайного бросания еще доводим методом покоординатного спуска (либо его модификациями). Может есть еще что-то - нужно литературу почитать, наверняка сейчас уже есть достаточно мощные методы нахождения всех экстремумов.

    Можно еще по координатной сетке - но 20 параметров слишком много, не потянет.
     
  6. WildCat
    Оффлайн

    WildCat Коршунов Игорь Команда форума

    Репутация:
    0
    Да в этой задаче найти решение не должно быть сложно.
    Можно просто посмотреть какой рейтинг дает наибольшую ошибку. По этой координате и спускаемся.
    У меня так Сонас сделан, но там все линейно и просто.
     
  7. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    Покоординатный спуск сходится медленней, чем по градиенту. Так как по градиенту идем по прямой, а покоординатным спуском - лестницей. И наверно возможна несходимость... Хотя с линейной фунцкцией наврно врятли :)
    И выч. мощностей лишних особо не тратим (в схеме когда производную берем один раз, а идем с заданным шагом по этому направлению пока продолжает улучшаться целевая функция)
     
  8. WildCat
    Оффлайн

    WildCat Коршунов Игорь Команда форума

    Репутация:
    0
    Здесь скорость сходимости не имеет значения, т.к. оно сходится очень быстро.
     
  9. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    У тебя универсальная программа с Парсингом PGN-а?
    Я сделал универсал, с парсингом, с выбором необходимого PGN.
    Думаю, что наверно нужно сделать возможность выбора списка файлов...
     
  10. WildCat
    Оффлайн

    WildCat Коршунов Игорь Команда форума

    Репутация:
    0
    Более менее универсальная. Но парсит pgn только, чтобы выдрать из него результаты.
    Список файлов можно задавать.
     
  11. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    Я тоже только выдираю результаты, по строкам
    '[White'
    '[Black'
    '[Result'

    Три возможных результата
    if t1='"0-1"' then
    table[BlackN,WhiteN]:=table[BlackN,WhiteN]+1;
    if t1='"1-0"' then
    table[WhiteN,BlackN]:=table[WhiteN,BlackN]+1;
    if t1='"1/2-1/2"' then
    Begin
    table[BlackN,WhiteN]:=table[BlackN,WhiteN]+0.5;
    table[WhiteN,BlackN]:=table[WhiteN,BlackN]+0.5;
    end;

    Доверительные интервалы считаешь исходя из посчитанного рейтинга соперников?
    Вероятность ничьи какую берешь?
     
  12. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    Система Сонаса:

    E:=0.5+D/800;
    if E>1 then E:=1;
    if E<0 then E:=0;

    2564 "Thinker 4.7a"
    2889 "Rybka 2.0 Beta 8 mp 32-bit"
    2637 "Ruffian 2.1.0"
    2582 "Deep Sjeng 1.6"
    2815 "Fruit 2.2.1"
    2797 "Shredder 10"
    2771 "Spike 1.2 Turin"
    2686 "SmarThink 1.0"
    2642 "Naum 1.91"
    2691 "Glaurung 1.2.1"
    2627 "Gandalf 6.0"
    2669 "The King 3.33"
    2588 "Aristarch 4.50"
    2660 "Pro Deo 1.1"
    2805 "Ktulu 8"
    2551 "Zappa 1.1"
    2663 "SlowChess Blitz WV2.1"
    2853 "Loop 10.32f"
    2597 "Pharaon 3.5.1"
    2765 "Shredder 9.1"
    2847 "Hiarcs X50"

    Сумма квадратов отклонений 1573
     
  13. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    Система Эло:

    2570 "Thinker 4.7a"
    2882 "Rybka 2.0 Beta 8 mp 32-bit"
    2642 "Ruffian 2.1.0"
    2589 "Deep Sjeng 1.6"
    2808 "Fruit 2.2.1"
    2790 "Shredder 10"
    2766 "Spike 1.2 Turin"
    2688 "SmarThink 1.0"
    2645 "Naum 1.91"
    2692 "Glaurung 1.2.1"
    2633 "Gandalf 6.0"
    2670 "The King 3.33"
    2594 "Aristarch 4.50"
    2661 "Pro Deo 1.1"
    2800 "Ktulu 8"
    2558 "Zappa 1.1"
    2664 "SlowChess Blitz WV2.1"
    2847 "Loop 10.32f"
    2605 "Pharaon 3.5.1"
    2760 "Shredder 9.1"
    2836 "Hiarcs X50"

    1573

    Одинаково... :/
     
  14. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    Без округления.
    Эло 1572,67422737493
    Сонас 1573,32631007668

    Особой разницы нет, но и по матчу версий Тоги, и по IKRL - Эло чуть лучше. :)
     
  15. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    Цифры посчитаны исходя из начальных рейтингов 2700, Градиент приводится к виду когда сумма по измерениям равна нулю (средний рейтинг всегда остается 2700)
    Длина шага 0.01 пункта, всё-равно сходится очень быстро :)
    Рейтинги округляются в момент вывода на экран,
    остановка метода в случае когда Градиент нулевой, либо если после шага по градиенту не улучшается сумма квадратов.

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

    Надо посмотреть как ЭлоСтат считает. До сих пор не посмотрел :)
     
  16. WildCat
    Оффлайн

    WildCat Коршунов Игорь Команда форума

    Репутация:
    0
    Я не считаю.
    Кинь исходники в мыло.
     
  17. WildCat
    Оффлайн

    WildCat Коршунов Игорь Команда форума

    Репутация:
    0
    У меня разница между Рыбкой и Заппой 360, а у тебя всего 337.
    Выведи средний рейтинг соперников для каждого движка.
     
  18. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    Коэффициент тоже 800?
    Может разные суммы квадратов минимизируем? Я по отдельным матчам, а ты по итоговому результату каждого движка?
     
  19. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    В первой колонке средний рейтинг соперников (Сумма(Партии * Рейтинг_Соперника))/Сумма(Партии)
    посчитано по системе Сонаса.

    2678 2564 "Thinker 4.7a"
    2717 2889 "Rybka 2.0 Beta 8 mp 32-bit"
    2680 2637 "Ruffian 2.1.0"
    2678 2582 "Deep Sjeng 1.6"
    2725 2815 "Fruit 2.2.1"
    2724 2797 "Shredder 10"
    2717 2771 "Spike 1.2 Turin"
    2715 2686 "SmarThink 1.0"
    2647 2642 "Naum 1.91"
    2723 2691 "Glaurung 1.2.1"
    2658 2627 "Gandalf 6.0"
    2702 2669 "The King 3.33"
    2659 2588 "Aristarch 4.50"
    2694 2660 "Pro Deo 1.1"
    2717 2805 "Ktulu 8"
    2657 2551 "Zappa 1.1"
    2694 2663 "SlowChess Blitz WV2.1"
    2720 2853 "Loop 10.32f"
    2654 2597 "Pharaon 3.5.1"
    2721 2765 "Shredder 9.1"
    2774 2847 "Hiarcs X50"
     
  20. WildCat
    Оффлайн

    WildCat Коршунов Игорь Команда форума

    Репутация:
    0
    У меня коэфициент 850.
     
  21. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    Тогда всё ОК :)
    у тебя 360, у меня 360*800/850=339, один пункт в разнице мог потеряться на округлениях (у тебя чуть меньше 360, у меня чуть больше 338)
     
  22. WildCat
    Оффлайн

    WildCat Коршунов Игорь Команда форума

    Репутация:
    0
    Сделай с коэф. 850 и начальный рейтинг выбери так, чтобы у Shredder 9.1 было 2750.
    Тогда можно будет легко сравить результаты.
     
  23. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    отсортировать по рейтингу?
     
  24. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    2658 2536 "Thinker 4.7a"
    2699 2882 "Rybka 2.0 Beta 8 mp 32-bit"
    2660 2614 "Ruffian 2.1.0"
    2658 2556 "Deep Sjeng 1.6"
    2708 2803 "Fruit 2.2.1"
    2706 2784 "Shredder 10"
    2699 2756 "Spike 1.2 Turin"
    2697 2667 "SmarThink 1.0"
    2624 2619 "Naum 1.91"
    2706 2671 "Glaurung 1.2.1"
    2637 2604 "Gandalf 6.0"
    2683 2648 "The King 3.33"
    2638 2562 "Aristarch 4.50"
    2675 2638 "Pro Deo 1.1"
    2699 2793 "Ktulu 8"
    2636 2522 "Zappa 1.1"
    2675 2642 "SlowChess Blitz WV2.1"
    2702 2844 "Loop 10.32f"
    2632 2571 "Pharaon 3.5.1"
    2703 2750 "Shredder 9.1"
    2760 2837 "Hiarcs X50"

    1573,32614488571
    1573,32614418799
     
  25. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    Да, всё сходится.
    На этих данных Эло чуть лучше, и при этом привычней.
    Наверно всё-таки нет смысла использовать Сонаса.
     
  26. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    Уменьшение квадрата отклонения - я сделал точнее расчет производной (уменьшил дельту), и уменьшил шаг (ошибся, он был всё-таки 0.1, сделал 0.01)
     
  27. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    По ситсеме Эло Сумма квадратов (последний шаг, предпоследний шаг)


    1572,67404203588
    1572,67404159884
     
  28. Crest
    Оффлайн

    Crest Админ, МГ Команда форума Команда форума

    Репутация:
    628
    Установлена премия $ 10000 за лучшую систему обсчета рейтинга

    Сонас, Томпсон и Фридель веселятся на даче и обсуждают мировые проблемы.

    [​IMG]

    Эх, переводик бы статьи почитать...
    Без него наш Енот не сможет побороться и с корнем вырвать из лап буржуев столь необходимые для него и для нас (будем в доле) деньги. :)

    P.S. Есть у нас еще одна забытая тема Проверка систем расчета рейтинга, в которой есть пара полезных постов, и в которой было бы логично дать данную информацию.

    P.P.S. Как оказалось, есть и тема-дубликат Рейтинги Jeff Sonas
    В общем, тем-недорослей полно, а где обсуждать рейтинги - непонятно.
    Пусть будет здесь...
     
  29. MS
    Оффлайн

    MS Михаил Семионенков

    Репутация:
    175
    Речь идёт о системе, на основании которой можно предсказать результаты соревнований. (Явных указаний на то, что это должен быть "рейтинг", т.е. одномерная оценка, я не увидел, т.е. это не о замене Эло).

    В предыдущем конкурсе ("Эло против остального мира") участвовали 258 команд, результат рейтинга Эло - 141-ое место.

    В данном конкурсе модели участников, обученные на 1.8 млн игр, должны предсказать результат 100 тысяч игр за 3 месяца. Конкурс закончится 3-его мая.
     
  30. Crest
    Оффлайн

    Crest Админ, МГ Команда форума Команда форума

    Репутация:
    628
    Серьезно?? Я и не знал, что енотов так много по всему свету... И все же наш Енот круче! :)
     
  31. Kirr
    Оффлайн

    Kirr Команда форума Команда форума

    Репутация:
    8
    Было бы очень неплохо, если бы Енот поучаствовал. Так как в конкурсе оценивается точность предсказаний, а не абстрактная справедливость, то победа Е-рейтингу, конечно, не светит. Но зато мы бы наконец узнали, лучше его Е-рейтинг, чем Эло, или нет (а главное - он бы сам это узнал).

    Мои модели все для статических игроков (движков), поэтому не буду париться с участием (скорее всего). :)
     
  32. Crest
    Оффлайн

    Crest Админ, МГ Команда форума Команда форума

    Репутация:
    628
    Судя по тому, какие бредовые результаты выдает Е-рейтинг на небольшой дистанции в швейцарках, на победу рассчитывать трудно. Но на длинной дистанции у него бывают творческие удачи...