CS: GO - это игра, наполненная множеством читеров, вызывающих недовольство сообщества. В погоне за запретом читеров разработчикам читов всегда удавалось опережать меры по их защите. Но может ли это измениться? Можно ли использовать методы искусственного интеллекта и машинного обучения, чтобы противостоять читам и сделать эту гонку немного ближе?

В прошлом месяце Гейб Ньюэлл из Valve упомянул в своем AMA на сабреддите / r / The_Gaben, что:

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

Это заявление дает представление о том, как машинное обучение оказывается полезным даже для Valve, и они действительно планируют использовать его для улучшения различных аспектов своей деятельности. Ютубер и уважаемый член сообщества 3kliksphilip упомянули в своем видео Будущее CS: GO от Valve AMA, что, возможно, ИИ можно использовать для обнаружения новых видов читов, для выявления агрессивных игроков и хулиганов в игре и даже для помощи в наблюдении. Хотя его голос звучал очень взволнованно и казалось, что он принимает желаемое за действительное, он думал, что этого, вероятно, никогда не произойдет, но он был прав на деньгах.

Недавний ответ на сабреддите / r / GlobalOffensive от представителя Valve из VAC (Valve Anti-Cheat) приносит хорошие новости с некоторым отличным пониманием того, что методы машинного обучения уже применяются в CS: GO, и первые результаты тоже были многообещающими!

Комментарий объясняет:

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

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

Ежедневно проводится более миллиона матчей CS: GO, поэтому, чтобы не отставать, вам понадобится система, способная анализировать и обрабатывать каждую демонстрацию каждого матча с точки зрения каждого игрока, что в настоящее время означает, что вам понадобится центр обработки данных, способный питание тысяч ядер процессора.

Хорошая новость в том, что мы начали эту работу. Ранняя версия системы уже развернута и отправляет дела в Overwatch. Поскольку результаты были многообещающими, мы продолжим эту работу и со временем расширим систему.

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

Наука и математика

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

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

Приведенная выше блок-схема пытается объяснить, как в настоящее время этот подход опробуется компанией Valve. Обратите внимание, что это может быть неточно и носит исключительно общий характер. Эта последовательность алгоритмов машинного обучения здесь разделена на три различных этапа: 1. Обучение, 2. Тестирование и 3. Проверка.

На этапе обучения демоверсии CS: GO разбираются на различные функции и передаются в алгоритм. Примеры функций: точность попадания, движение игрока, движение прицела, коэффициент стрельбы при прицеливании, коэффициент стрельбы при видимом поле зрения (когда враг виден), время попадания и т. Д.. Redittor / u / PM_ME_SOME_STORIES пытался реализовать алгоритм нейронной сети, и они также предоставили пару примеров статей для изучения того, какие функции могут быть полезны для обучения модели. У каждой из этих характеристик есть веса, которые описывают, насколько они важны для определения того, жульничает игрок или нет. Например, попадание в голову и время для удара являются важными факторами, поэтому у них есть шанс иметь более высокий весовой коэффициент. Все эти веса рассчитываются на этапе тренировки. Каждый демонстрационный экземпляр, который запускается через модель, изменяет веса в зависимости от того, содержит ли демонстрация читерство или нет. Valve имеет доступ к тысячам демонстраций людей, которые обманывают и не обманывают, что представляет собой чрезвычайно богатый набор данных для начала, и это помогает тренировать эффективную модель.

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

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

Эффективность и проблемы

Этот тип модели машинного обучения постоянно обновляет свои веса и помогает противодействовать изменениям, которые разработчики читов могут внести, чтобы избежать такой модели. Модель похожа на черный ящик, который принимает предыдущие результаты и новые данные обучения / тестирования. В отличие от жестко запрограммированной стандартной статистической модели, границы эвристики не могут быть определены, даже если они определены, вероятность изменения этих ребер / функций и их весов очень высока, поскольку модель находится в постоянном процессе обучения на основе прошлых результатов и новые данные. Следовательно, попытки противодействия оказываются тщетными.

Комментарий Valve также объясняет, что для настройки такой системы будет использовано много ресурсов, поскольку демоверсия должна анализироваться и обрабатываться с точки зрения всех 10 игроков. Ежедневно проводятся миллионы игр по поиску партнеров, поэтому для полного анализа демонстраций алгоритмы машинного обучения должны быть развернуты в центрах обработки данных, помимо серверной архитектуры. Исследования по выполнению логического вывода на грани продолжаются. Это означает, что модель может быть построена и обучена в этих центрах обработки данных, но модель может быть развернута вместе с серверами CS: GO, где демонстрации могут быть классифицированы на грани. По мере внедрения новых алгоритмов и обучения старых алгоритмов решения этих проблем в конечном итоге будут найдены.

Конечно, недостатком является то, что эта система находится на начальной стадии и может использоваться только в очевидных и вопиющих случаях, например, с помощью спин-ботов. По мере того, как эти модели узнают все больше и собираются все больше данных, можно также проверять хитрые читы. Это все еще только начало, и приложения в CS: GO не ограничиваются только обнаружением читерства. Очень интересно видеть, как достижения в области компьютерных наук могут помочь в решении постоянно присутствующей проблемы в Counter Strike. Я предлагаю вам надеть шляпу исследователя и начать помогать этим моделям машинного обучения стать более «разумными», выполняя некоторые кейсы Overwatch!

Вопросы и отзывы приветствуются @ SidiPi7.