Исследователи из Колумбийского и Лихайского университетов разработали систему для тестирования алгоритмов глубокого обучения. С помощью этой системы разработчики проверили нейросети, в том числе управляющие беспилотными автомобилями, и обнаружили в них тысячи ошибок, проявляющихся в необычных для нейросетей условиях. Разработка будет представлена на конференции SOSP 2017 в Китае 29 октября.
Для автоматизации сложных задач, таких как управление автомобилем, все чаще используется не фиксированные алгоритмы с набором заранее определенных правил, а машинное обучение. Этот подход требует времени и тренировок на больших наборах данных, но в результате позволяет получить программу, способную выполнять сложные задачи — например, обнаружение неявных закономерностей или распознавание образов.
Несмотря на преимущества, этот подход имеет явный недостаток: устройство алгоритма, а тем более системы из нескольких алгоритмов разных типов, может быть настолько сложным, что даже его разработчикам практически невозможно понять, из-за чего именно возникла та или иная ошибка и как ее исправить.
Для тестирования обычных алгоритмов используются разные методы, в том числе и дифференцированное тестирование, при котором разным программам, выполняющим одну и ту же функцию дают одни и те же входные данные, и, сравнивая результат, разработчики могут обнаружить ошибку. В своей разработке американские исследователи решили использовать похожий подход. Они решили сравнивать аналогичные по функциям нейросети, давая им одинаковые данные, которые выходят за рамки обычных условий. К примеру, в случае с беспилотными автомобилями это может быть слишком темное освещение при слишком быстрой скорости движения.
Поскольку в случае с нейросетями большая часть правил не пишется программистами, а формируется в процессе тренировки, исследователи решили ввести для их тестирования аналог понятия покрытия кода — метрики, которая показывает, какая доля кода программы была выполнена в процессе тестирования. Измерение покрытия кода используется для совершенствования тестов, чтобы они охватывали максимальный объем кода. Новую метрику исследователи назвали покрытием нейронов.
Разработчики протестировали свой алгоритм под названием DeepXplore с помощью больших наборов данных для тренировки алгоритмов разного назначения, например, данные проекта Udacity self-driving car challenge, предназначенного для обучения и сравнения алгоритмов для беспилотных автомобилей, а также наборов данных для тренировки программ, обнаруживающих вредоносное программное обеспечение. Таким образом они смогли обнаружить несколько тысяч ошибок в общедоступных алгоритмах. К примеру, исследователи сделали две версии фотографии резкого поворота на дороге, в которых отличалась только освещенность. В случае с плохой освещенностью управляющий автомобилем алгоритм неправильно оценил обстановку, и неожиданно принял решение свернуть в сторону металлического ограждения дороги.
Особенность DeepXplore заключается еще и в том, что он может генерировать наиболее сложные для тестируемого алгоритма входные данные. Разработчики предлагают использовать это для тренировки поведения алгоритмов в сложных и редко встречающихся условиях. Разработанное ими программное обеспечение опубликовано на GitHub.
В 2015 году американские исследователи создали алгоритм, который умеет самостоятельно исправлять ошибки в исходном коде программ. А недавно австралийские исследователи разработали метод исправления «квантовых ошибок» с помощью машинного обучения. Исследователи надеются, что это позволит увеличить время жизни кубитов квантовых компьютеров и увеличить надежность систем на их основе.
Григорий Копиев
Как большие языковые модели стали напористыми
Мнение редакции может не совпадать с мнением автора
Большие языковые модели способны на многое, но все же пока не дотягивают до искусственного интеллекта из научной фантастики. Тем не менее скорость развития ИИ и то, чем он может стать в будущем, вызывает обеспокоенность — в том числе у тех, кто над ним работает. В книге «Если кто-то его создаст — все погибнут. Почему сверхчеловеческий ИИ уничтожит нас всех» («Corpus»), переведенной на русский язык Евгением Поникаровым, руководители Института исследований машинного интеллекта (MIRI) Элиезер Юдковский и Нейт Соарес рассказывают, почему уверены, что существующие методы разработки ИИ приведут к катастрофе, и как ее можно предотвратить. Предлагаем вам ознакомиться с фрагментом о том, как ИИ-модели учатся во что бы то ни стало добиваться цели.