Как использовать нейронные сети для анализа теннисных матчей? |
||
МЕНЮ Искусственный интеллект Поиск Регистрация на сайте Помощь проекту ТЕМЫ Новости ИИ Искусственный интеллект Разработка ИИГолосовой помощник Городские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Техническое зрение Чат-боты Авторизация |
2019-06-08 16:52 Доброго времени суток всем, меня зовут Сергей Елисеев, я работаю в области машинного обучения, в частности занимаюсь разработкой сверточных нейронных сетей для моделирования и прогнозирования различных стохастических процессов. И сегодня я хотел бы рассказать вам о том, как можно использовать нейронные сети для анализа теннисных матчей. Использование нейронных сетей позволяет промоделировать практически любой процесс, имеющий в основе логический центр с точностью вплоть до 3-х сигма отклонений от истинного значения в будущем. 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. Возможно покажется удивительным, но действительно коэффициенты на линии одной из самых авторитетных контор плывут к полученным в программе (к сожалению я не успел на раннюю линию Pinnacle и забрал всего лишь за 1.64, вместо 2.62). Безусловно, такое происходит не всегда, но динамика того, что программа неплохо определяет коэффициенты сохраняется, часто именно к указанным программой коэффициентам движутся линии ближе к матчу. Надеюсь, чтобы было интересно, если действительно так, готов к критике, готов ответить на вопросы в комментариях. От Вас как всегда ожидаю поддержки и активности. Спасибо за прочтение статьи!Автор: Сергей Елисеев Источник: m.vk.com Комментарии: |
|