Оптимизируем футбол с помощью Machine Learning

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Поскольку я люблю футбол и получать зачеты в вузе, то настало время объединить это и написать обзор статьи специально для https://github.com/spbu-math-cs/ml-course.

Сама статья

О чем, зачем и почему?

Как известно, к победе в футбольном матче приводит грамотное использование ошибок оппонента и минимизация собственных. Авторы статьи задаются вопросом — как следует себя вести футболисту, находящемуся в критической ситуации, то есть моменте, когда высоки шансы потери мяча или забитого гола. Считается, что в этих эпизодах нельзя отдать пас, можно лишь сфолить, выбить мяч в аут, отправить его в сторону ворот или совершить ошибку. Основной метрикой успеха являются ожидаемые голы (популярная модель xG). Все просто: чем показатель больше, тем лучше.

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

Основные идеи

  • Марковская модель владения мячом

  • Спектральная кластеризация для моделирования прессинга

  • CNN-LSTM нейросеть для получения вероятностного распределения на возможных действиях

  • Новая функция вознаграждения, основанная на оценках нейросети

  • Нахождение оптимальной стратегии с помощью off-policy Deep RL

Что нового?

Это одна из первых работ, в которой применяется reinforcement learning для анализа футбольного матча и оценки ожидаемых голов. До этого исследователи использовали сверточные нейросети для оценки вероятности возможных пасов, RL для оценки качества позиционирования игроков и ценности каждого действия игрока.

Модель владения

Для подсчета владений авторы опираются на данные InStat (https://instatsport.com/football), определяя владение команды как последовательность действий, начинающуюся осмысленным касанием мяча одним из игроков команды и заканчивающуюся голом, потерей мяча, перехватом, выносом его в аут, словом, приостановкой игры.

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

Конечный автомат, описывающий одно владение
Конечный автомат, описывающий одно владение

Прессинг

Футбольные тренеры выделяют три зоны прессинга: игроков, находящихся в непосредственной близости мяча (intervention zone), игроков, находящихся вне первой зоны, но все еще около мяча (mutual help zone) и оставшихся соперников, не принимающих участия в эпизоде (cooperation zone)

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

Суть заключается в построении графа, вершинами которого являются 4хмерные точки (координаты игрока, а также горизонтальная и вертикальная составляющая его скорости) и получении центров с помощью применения K-means к собственным векторам лапласиана графа, относящимся к нулевому собственному числу.

Для реализации алгоритма используется K-means из scikit (весь код тут), поэтому смены метрики не происходит. Таким образом, метод потенциально неустойчив к смене единиц измерения, что вызывает вопросы.

Сравнение результатов применения двух алгоритмов
Сравнение результатов применения двух алгоритмов

Формирование и отбор признаков

Помимо 44 признаков, соответствующих координатам и скоростям игроков, в исследовании учитывают:

  • расстояние до ворот

  • угол между штангами (при взгляде с точки владения)

  • часть тела, которой совершено действие

  • время до конца тайма

  • результат действия

  • команда, владеющая мячом

  • количество соперников в каждой из зон прессинга

Обучать пробовали тремя способами:

  1. Не используя данные о прессинге, позициях и скорости, максимально сократив размерность вектора признаков

  2. Не используя данные о прессинге

  3. Не используя данные о позициях и скорости

Таким образом, каждое владение длины n может быть описано набором из n пар векторов {признаки действия — one-hot описание действия}.

Нейросеть

Были использованы разные сети, но лучшие результаты показала CNN-LSTM сеть с архитектурой, представленной ниже.

Архитектура сети, выдающей вероятности действий
Архитектура сети, выдающей вероятности действий

CNN используется для выделения пространственных признаков, а LSTM учитывает предыдущие действия, сохраняя последовательную структуру владения.

Важно отметить, что для достижения фиксированной размерности (длины владения) короткие владения дополнялись нулевыми состояниями, а длинные обрезались. Итоговая длина владения выбрана равной 10.

От себя добавлю, что можно было бы вместо LSTM добавить Attention layer, с помощью которого определить оптимальное ограничение длины, а не брать с потолка.

Reinforcement learning

В качестве функции награды используется концепция ожидаемых голов. Для каждого действия во время владения считается Possession Value(PV), равная вероятности удалить и забить гол в данной ситуации:

PV(X) = \mathbb{P}(goal, shot| X) = \mathbb{P}(shot| X)\: \cdot\: \mathbb{P} (goal|shot, X)

Первый множитель мы умеем получать, поскольку это выход нейросеть, а второй считаем при помощи логистической регрессии (решает задачу классификации гол/нет, обучена на 15000 ударов).

В случае, если был нанесен удар, мы получаем награждение PV(X), если удара не последовало, но удалось сохранить владение — разность между PV внешнего и следующего состояния, при потере мяча отнимается 0.1.

Награда каждого владения — сумма наград по всем действиям внутри него. Определим игровой эпизод как непрерывную последовательность владений одной команды. Его награда будет вычисляться как взвешенное среднее наград всех действий каждого владения, подсчет которых был описан выше (с учётом discount factor γ = 0.99). 

R(episode) = \frac{\sum_{t = 0}^{\infty} \gamma^t \cdot reward(s_t, a_t)}{ \sum_{t = 0}^{\infty} \gamma^t}

Обучение проходит с помощью метода policy gradient (градиентный спуск для марковских процессов принятия решений, подробнее тут и в самой статье).

Результаты и выводы

Поскольку провести футбольный матч повторно невозможно, для оценки качества используется off-policy policy evaluation(OPE, подробнее).

Результаты обучения нейросети на трех видах признаков
Результаты обучения нейросети на трех видах признаков

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

В сравнении с действиями футболистов во врем матча модель показывает очень хороший результат:

Ожидаемая средняя награда сместилась с -0.1 в настоящем матче до +0.45 у модели, а дисперсия уменьшилась.

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

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

Источник: https://habr.com/ru/post/667860/


Интересные статьи

Интересные статьи

Рассказываем, как мы, ML princesses [Napoleon IT] стали победителями кейса от Минприроды «Защита редких животных», и решили задачу по созданию сервиса, способного распознавать в дикой природе особо ре...
В этой статье хочу рассказать почему мне понадобилась платформа для сообщества, какие варианты реализации я нашел и за что выбрал именно Flarum. Также в статье есть пошаговая инструкция для новичков п...
В середине 2020 года в СИБУРе запустился проект, направленный на автоматизацию процесса лидогенерации (поиска потенциальных клиентов). Вызов состоял в том, что в B2B, а особенно промышленности и произ...
Ваш новый разработчик только что закончил подписывать трудовой договор и с горящими глазами готов закрывать по 15 задач в день. На его пути стоит лишь одно препятствие — ...
Всем привет, меня зовут Дмитрий Кузин (Application Development Senior Analyst в Accenture), и в своей статье я делюсь историей о том, как запрос на решение задачи в корпоративной рассыл...