Как использовать нейронные сети для анализа теннисных матчей?

МЕНЮ


Искусственный интеллект
Поиск
Регистрация на сайте
Помощь проекту

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости

Новостная лента форума ailab.ru


Доброго времени суток всем, меня зовут Сергей Елисеев, я работаю в области машинного обучения, в частности занимаюсь разработкой сверточных нейронных сетей для моделирования и прогнозирования различных стохастических процессов. И сегодня я хотел бы рассказать вам о том, как можно использовать нейронные сети для анализа теннисных матчей.

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

1 этап

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

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

Рис.1. Элементарный перцептрон (участок нейронной сети)

Что такое нейросеть простым языком? Это модель формы теннисиста. Весовые коэффициенты - это его параметры (скрытые, мы их не знаем, они лишь числа, которые получаются в результате тренировки и не имеют никакого реального значения). Входные сигналы - это прошлые матчи, процент подачи за последний матч, за предпоследний, за 2 средний, за 3 средний и т.д. (за 2 средний на этом покрытии, за 3 средний на этом покрытии и т.д.), точно также с эйсами и другими параметрами. Т.е. берется как отдельный параметр статистика не только за последний матч, не только за последние 5 матчей, не только за последние N матчей на покрытии, а каждый из этих параметров отдельно взятые. Так же берутся как статистический параметр коэффициенты авторитетных букмекерских контор. Так же само берется для второго теннисиста и загоняется в эту же сеть.

2 этап

Мы имеем сухую сеть, с кучей входящих данных и случайными весовыми коэффициентами. (В математике это все выражается матричным уравнением, в это углубляться не буду - кому нужно - могу ответить). Далее происходит обучение - мы загоняем данные - получаем на выходе вероятность победы каждого из теннисистов (в виде коэффициентов, всего 2 выходящих параметра, после десятков входящих). После чего происходит корректировка коэффициентов (обучение с учителем), в этом углубляться не буду, методов много, я многие перепробовал. Добивается того, что сеть выдает верные коэффициенты (близкие к среднему по авторитетным конторам). Таким образом происходит гравировка коэффициентов на 100+ матчах из истории, чтобы сделать сетку усредненно нулевой (в минусе от маржи).

3 этап

Следующий этап - тонкая настройка. Мы берем совершенно другие матчи на том же покрытии и начинаем делать rough fit - вручную, итеративно подбирать поправки к весовым коэффициентом на выборке 1000 матчей таким образом, чтобы коэффициенты намеренно уходили из зоны букмекерского нуля в любую сторону. Все значения поправок несущий долгосрочный перевес на линией записываются при прогнозируемом положительном мат.ожидании с погрешностью не более двух сигм. После выборки положительных поправок и исправленных весовых коэффициентов эти поправки заносятся группами (по 2, по 3, по 4 и т.д.) во всевозможных комбинациях согласно законов комбинаторики, в которых определяются группы поправок и их комбинаторную комбинацию, несущую наибольший перевес при условии отклонения не более двух сигма.

Исходная комбинаторная комбинация натренированная не предыдущих сезонах и есть рабочей версией текущего сезона. В итоге мы получаем рабочую модель, внутренностей которой мы не знаем с весовыми коэффициентами аксонов, которые не имеют по отдельности смысла и не несут смысловой нагрузки. Эдакий черный ящик, на вход которого мы подаем статистику, а на выходе получаем всего лишь два результата - два коэффициента двух спортсменов, о котором знаем лишь то, что он статистически имеет преимущества над линией за предыдущие 1-2 года, при обработке результатов за 3-4 последних года.

Что получаем

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

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

Т.е. окончательный результат - статистический анализ миллионов прогонов внутри сети, т.е. миллионов моделирований определённого события внутри нейронной сети, а окончательный выдаваемый коэффициент - это четкий усредненный пик, мода выборки. Есть и другие пики, но они откидываются либо потому что не имеют смысла (падение в локальную потенциальную яму графика при неправильной флуктуации), либо потому что количество таких моделирований существенно меньше, чем у выбранного. Опять же, есть погрешность ± 1.3-1.4 ?.(Вероятность попадания истинного значения в указываемый интервал около 80%), вероятность попасть в кольцо около радиусом 0.15(в мерах коэффициента) 95%(погрешность около ±2?).

Пример анализа матча

Рассмотрим матч ( я уже делал подобную статью, решил воспользоваться диаграммами из неё, чтобы заново не создавать) 27 мая 2019 года Краинович — Тьяфо.

Диаграмма матча Краинович — Тьяфо. Коэффициент на Краиновича.

Данная диаграмма является четким результатом работы нейронной сети по анализу матча Краинович — Тьяфо. Интенсивность цвета, показывает насколько часто сеть выдает именно такой окончательный коэффициент на Филиппа Краиновича, параметр Balance указывает устойчивость полученного решения (углубляться не буду, но параметр должен быть относительно близок к 1).

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

Итак, видим, что наибольшая интенсивность около коэффициента 1.32.
Пики 0.44 и 1.51 откидываем, первый пик откидывается из-за того, что не имеет смысла, а второй пик откидывается, т.к. есть более стабильное решение в точке 1.32, а точка 1.52 есть нестабильная. Поэтому я и выбрал, как единственное лучшее решение коэффициент 1.32 и сделал ставку с преимуществом на Краиновича за 1.64.

Динамика коэффициентов по линии Pinnacle Sports

Возможно покажется удивительным, но действительно коэффициенты на линии одной из самых авторитетных контор плывут к полученным в программе (к сожалению я не успел на раннюю линию Pinnacle и забрал всего лишь за 1.64, вместо 2.62). Безусловно, такое происходит не всегда, но динамика того, что программа неплохо определяет коэффициенты сохраняется, часто именно к указанным программой коэффициентам движутся линии ближе к матчу.

Надеюсь, чтобы было интересно, если действительно так, готов к критике, готов ответить на вопросы в комментариях. От Вас как всегда ожидаю поддержки и активности. Спасибо за прочтение статьи!Автор: Сергей Елисеев


Источник: m.vk.com

Комментарии: