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

Очень интересная недавняя статья, которая была освещена сегодня в блоге The Morning Paper, демонстрирует простой и элегантный подход к тестированию нейронных сетей.

В основном они говорят, что текущие методы тестирования Deep Learning «в значительной степени зависят от данных, помеченных вручную, и поэтому часто не могут выявить ошибочное поведение для редких входных данных».

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

Они изучают реалистичные дополнения к тестовым изображениям, чтобы максимизировать две цели:

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

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

Параллельное достижение обеих этих целей помогает выявить редкие и потенциально опасные виды поведения.

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

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