Разделы

ПО

Учёные МТУСИ нашли наиболее точный способ прогнозирования ошибок в программном коде

Исследователи МТУСИ определили, какие алгоритмы машинного обучения лучше всего подходят для выявления дефектов в программном обеспечении.

Сегодня программный код лежит в основе работы практически всех устройств — от бытовой техники до сложных телекоммуникационных систем. При этом объём «ошибочного» кода в реальных проектах значительно меньше корректного, что усложняет задачу его обнаружения. Об этом CNews сообщил представитель МТУСИ.

Чтобы найти наиболее эффективное решение, команда ученых МТУСИ под руководством Юрия Леохина и Тимура Фатхулина сравнила сразу несколько алгоритмов машинного обучения. В исследовании участвовали как классические модели — наивный байесовский классификатор и метод опорных векторов (SVM), — так и более современные подходы: Random Forest, нейросеть MultiLayer Perceptron, а также алгоритмы градиентного бустинга.

Перед обучением модели данные специально подготовили: с помощью метода SMOTE искусственно увеличили долю примеров с ошибками, чтобы алгоритмы могли одинаково хорошо распознавать и «хороший», и «проблемный» код.

Каждую модель оценивали по трём ключевым показателям: точность (насколько редко модель ошибается), полнота (сколько реальных ошибок она находит), F1-мера (сбалансированная оценка качества).

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

Как отечественная ИТ-инфраструктура обеспечила биометрическую революцию в России
Как отечественная ИТ-инфраструктура обеспечила биометрическую революцию в России Импортонезависимость

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

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

В дальнейшем учёные МТУСИ планируют доработать модель XGBoost, чтобы ещё больше повысить её точность и производительность.

XGBoost (Extreme Gradient Boosting) — это высокопроизводительная реализация алгоритма градиентного бустинга, используемая в машинном обучении для решения задач классификации, регрессии и ранжирования. Это оптимизированная распределённая библиотека с открытым исходным кодом. XGBoost строит модель путём последовательного добавления слабых моделей (обычно деревьев решений) в ансамбль. Каждая новая модель фокусируется на исправлении ошибок, допущенных предыдущими моделями.