В настоящее время нейронные сети используются практически в каждой отрасли нашей цифровой жизни. Они помогают искать понравившиеся музыкальные произведения, ведут с человеком общение (тест Тьюринга), подбирают новости по предпочтениям, выполняют сложные математические вычисления и участвуют в тестировании программного обеспечения (далее – ПО). Однако, в рамках тестирования ПО, существует область, где применение нейронных сетей ставится под вопрос в сравнении с тестированием с участием специалиста в этой области. В данной статье будут рассмотрены примеры успешных реализаций нейросетей в области игр, а также учтены их недостатки и их особенности в тестировании. Для начала следует обратиться к теории.
Искусственная нейронная сеть (ИНС) – математическая модель, а также ее программное или аппаратное воплощение, построенная по принципу организации и функционирования биологических нейронных сетей – сетей нервных клеток живого организма [1–4, 8, 10].
Принцип работы нейронной сети состоит в нахождении зависимостей и изменении весов и уменьшении некоторой функции ошибки. Если действие верное, то вес, который связан с данным нейроном будет увеличиваться, если нет – уменьшаться. С такой целью чаще всего применяется метод градиентного спуска.
В большинстве случаев нейронные сети применяются преимущественно в следующих задачах:
• распознавание образов и классификация;
• принятие решений и управление, • прогнозирование;
• аппроксимация;
• сжатие данных и ассоциативная память;
• анализ данных;
• оптимизация.
Среди основных архитектур нейросетей можно выделить самые популярные:
• обучение с учителем – перцептрон;
• обучение без учителя – нейронная сеть Кохонена, самоорганизующаяся карта Кохонена и нейронная сеть Хопфилда;
• смешанное обучение – сеть радиальнобазисных функций.
Для организации процесса тестирования игры и поиска уязвимостей могут наиболее подойти сети радиальных базисных функций для выполнения процессов аппроксимации и оптимизации решений сети, поскольку в рамках игр перед нейросетью как и перед игроком стоит задача находить наиболее оптимальный способ достижения результата [3, 6, 7].