Учёные МТУСИ нашли наиболее точный способ прогнозирования ошибок в программном коде
Исследователи МТУСИ определили, какие алгоритмы машинного обучения лучше всего подходят для выявления дефектов в программном обеспечении.
Сегодня программный код лежит в основе работы практически всех устройств — от бытовой техники до сложных телекоммуникационных систем. При этом объём «ошибочного» кода в реальных проектах значительно меньше корректного, что усложняет задачу его обнаружения. Об этом CNews сообщил представитель МТУСИ.
Чтобы найти наиболее эффективное решение, команда ученых МТУСИ под руководством Юрия Леохина и Тимура Фатхулина сравнила сразу несколько алгоритмов машинного обучения. В исследовании участвовали как классические модели — наивный байесовский классификатор и метод опорных векторов (SVM), — так и более современные подходы: Random Forest, нейросеть MultiLayer Perceptron, а также алгоритмы градиентного бустинга.
Перед обучением модели данные специально подготовили: с помощью метода SMOTE искусственно увеличили долю примеров с ошибками, чтобы алгоритмы могли одинаково хорошо распознавать и «хороший», и «проблемный» код.
Каждую модель оценивали по трём ключевым показателям: точность (насколько редко модель ошибается), полнота (сколько реальных ошибок она находит), F1-мера (сбалансированная оценка качества).
Дополнительно для большинства моделей провели оптимизацию параметров, чтобы раскрыть их максимальный потенциал.
По итогам серии экспериментов наилучшие результаты показал алгоритм XGBoost. Он продемонстрировал высокую точность обнаружения дефектов, устойчивость к разным типам данных, а также быстрое обучение и высокую скорость работы.
По мнению исследователей, применение моделей на основе алгоритма XGBoost позволит разработчикам заранее находить уязвимые участки кода, снижать число сбоев и повышать надёжность цифровых систем.
В дальнейшем учёные МТУСИ планируют доработать модель XGBoost, чтобы ещё больше повысить её точность и производительность.
XGBoost (Extreme Gradient Boosting) — это высокопроизводительная реализация алгоритма градиентного бустинга, используемая в машинном обучении для решения задач классификации, регрессии и ранжирования. Это оптимизированная распределённая библиотека с открытым исходным кодом. XGBoost строит модель путём последовательного добавления слабых моделей (обычно деревьев решений) в ансамбль. Каждая новая модель фокусируется на исправлении ошибок, допущенных предыдущими моделями.



