Ошибки и программное обеспечение шли рука об руку с момента зарождения компьютерного программирования.
Со временем разработчики разработали набор методов тестирования и отладки программ перед их развертыванием, но эти методы больше не применимы к современным системам глубокого обучения.
Сегодня основной практикой в области машинного обучения можно назвать обучение на определенном наборе данных, а затем тестирование на другом наборе.
Таким образом можно рассчитать среднюю производительность моделей, но также важно гарантировать надежность, то есть приемлемую производительность в худшем случае.
В этой статье мы описываем три подхода для точного выявления и устранения ошибок в обученных прогностических моделях: состязательное тестирование, устойчивое обучение и формальная проверка [формальная проверка].
Системы с ML по определению не стабильны.
Даже системы, которые превосходят людей в определенной области, могут с трудом решать простые проблемы, создавая тонкие различия.
Например, рассмотрим проблему внесения помех в изображения: нейронную сеть, которая может классифицировать изображения лучше, чем люди, можно легко обманом заставить поверить, что ленивец — это гоночная машина, добавив к изображению небольшое количество тщательно рассчитанного шума.
Состязательные входные данные, наложенные на обычное изображение, могут сбить с толку ИИ.
Два крайних изображения отличаются не более чем на 0,0078 для каждого пикселя.
Первый с вероятностью 99% классифицируется как ленивец.
Второе - как гоночная машина с вероятностью 99%.
Эта проблема не нова.
В программах всегда были ошибки.
За десятилетия программисты накопили впечатляющий набор методов — от модульного тестирования до формальной проверки.
Эти методы хорошо работают в традиционных программах, но адаптировать эти подходы для тщательного тестирования моделей ML чрезвычайно сложно из-за масштаба и отсутствия структуры в моделях, которые могут содержать сотни миллионов параметров.
Это указывает на необходимость разработки новых подходов к обеспечению надежности систем МО.
С точки зрения программиста, ошибка — это любое поведение, не соответствующее спецификации, то есть запланированной функциональности системы.
В рамках наших исследований в области искусственного интеллекта мы изучаем методы оценки соответствия систем машинного обучения требованиям не только к обучающему и тестовому набору, но и к списку спецификаций, описывающих желаемые свойства системы.
Такие свойства могут включать устойчивость к достаточно небольшим изменениям входных данных, ограничения безопасности, предотвращающие катастрофические сбои, или соответствие прогнозов законам физики.
В этой статье мы обсудим три важные технические проблемы, с которыми сталкивается сообщество ML, пытаясь сделать системы ML надежными и надежными, отвечающими желаемым спецификациям:
- Эффективная проверка соответствия спецификациям.
Мы изучаем эффективные способы проверки того, что системы машинного обучения соответствуют свойствам (таким как надежность и инвариантность), которые требуют от них разработчик и пользователи.
Один из подходов к обнаружению случаев, когда модель может отклоняться от этих свойств, заключается в систематическом поиске худших показателей.
- Обучение моделей машинного обучения для соответствия спецификациям.
Даже при достаточно большом объеме обучающих данных стандартные алгоритмы МО могут создавать прогнозные модели, которые не соответствуют желаемым спецификациям.
Нам необходимо пересмотреть алгоритмы обучения, чтобы они не только хорошо работали с обучающими данными, но и соответствовали желаемым спецификациям.
- Формальное доказательство того, что модели ML соответствуют желаемым спецификациям.
Необходимо разработать алгоритмы, обеспечивающие соответствие модели желаемым спецификациям для всех возможных входных данных.
Хотя в области формальной верификации подобные алгоритмы изучаются уже несколько десятилетий, несмотря на впечатляющий прогресс, эти подходы нелегко масштабировать до современных систем машинного обучения.
Проверка соответствия модели желаемым характеристикам.
Устойчивость к состязательным примерам — довольно хорошо изученная проблема в DL. Один из основных выводов — важность оценки поведения сети в результате сильных атак и разработки прозрачных моделей, которые можно достаточно эффективно анализировать.
Мы вместе с другими исследователями обнаружили, что многие модели устойчивы к слабым состязательным примерам.
Однако они дают почти 0% точность для более сильных состязательных примеров ( Атали и др.
, 2018 г.
, 2018 г.
).
Хотя большая часть работы сосредоточена на редких ошибках в контексте обучения с учителем (и в основном классификации изображений), существует необходимость распространить применение этих идей на другие области.
В недавней работе с состязательным подходом к обнаружению катастрофических сбоев мы применяем эти идеи для тестирования сетей обучения с подкреплением, предназначенных для использования в средах, чувствительных к безопасности.
Одна из проблем разработки автономных систем заключается в том, что, поскольку одна ошибка может иметь серьезные последствия, даже небольшая вероятность отказа не считается приемлемой.
Наша цель — создать «конкурента», который поможет заранее (в контролируемой среде) распознавать такие ошибки.
Если злоумышленник сможет эффективно определить входные данные для наихудшего случая для данной модели, это позволит нам выявить редкие случаи сбоя до ее развертывания.
Как и в случае с классификаторами изображений, оценка производительности против слабого противника создает ложное ощущение безопасности во время развертывания.
Этот подход аналогичен разработке программного обеспечения с использованием «красной команды» [red-teaming — привлечение сторонней команды разработчиков, которые берут на себя роль злоумышленников с целью обнаружения уязвимостей / прим.
перев.
], однако выходит за рамки поиска сбоев, вызванных злоумышленниками, а также включает ошибки, возникающие естественным путем, например, из-за недостаточной генерализации.
Мы разработали два взаимодополняющих подхода к состязательному тестированию сетей обучения с подкреплением.
В первом случае мы используем оптимизацию без производных, чтобы напрямую минимизировать ожидаемое вознаграждение.
Во втором мы изучаем функцию состязательной ценности, которая эмпирически предсказывает, в каких ситуациях сеть может потерпеть неудачу.
Затем мы используем эту изученную функцию для оптимизации, уделяя особое внимание оценке наиболее проблемных входных данных.
Эти подходы составляют лишь небольшую часть богатого и растущего пространства потенциальных алгоритмов, и мы очень заинтересованы в будущем развитии этой области.
Оба подхода уже демонстрируют значительные улучшения по сравнению со случайным тестированием.
Используя наш метод, вы сможете за несколько минут найти недостатки, на поиск которых раньше уходили дни, а возможно, их вообще нельзя было найти( Уэсато и др.
, 2018b. ).
Мы также обнаружили, что состязательное тестирование может выявить качественно иное поведение сетей по сравнению с тем, что можно было бы ожидать от оценки на случайном наборе тестов.
В частности, с помощью нашего метода мы обнаружили, что сети, выполнявшие задачу навигации по 3D-карте и обычно выполняющие эту задачу на человеческом уровне, не смогли найти цель в неожиданно простых лабиринтах ( Рудерман и др.
, 2018 г.
).
Наша работа также подчеркивает необходимость разработки систем, устойчивых к естественным сбоям, а не только к противникам.
При проведении тестов на случайных выборках мы практически никогда не сталкиваемся с картами с высокой вероятностью отказа, однако состязательное тестирование показывает наличие таких карт. Вероятность провала остается высокой даже после удаления многих стен, то есть упрощения карт по сравнению с исходными.
Модели поездов, соответствующие спецификациям
Состязательное тестирование пытается найти контрпример, нарушающий спецификации.Часто переоценивается соответствие моделей этим спецификациям.
С математической точки зрения спецификация — это определенная связь, которая должна поддерживаться между входными и выходными данными сети.
Это может принимать форму верхней и нижней границы или некоторых ключевых входных и выходных параметров.
Вдохновленные этим наблюдением, несколько исследователей ( Рагунатан и др.
, 2018 г.
, 2018 г.
, 2018 г.
, 2018 г.
), включая нашу команду из DeepMind ( Двиджотам и др.
, 2018 г.
, 2018 г.
), работал над алгоритмами, инвариантными к состязательному тестированию.
Это можно описать геометрически – мы можем ограничить( Элерс 2017 , Кац и др.
2017 год , Мирман и др.
, 2018 г.
) худшее нарушение спецификации, ограничение пространства выходных данных на основе набора входных.
Если эта граница дифференцируема по параметрам сети и может быть быстро вычислена, ее можно использовать во время обучения.
Затем начальное ребро может распространяться через каждый уровень сети.
Мы показываем, что распространение границы интервала происходит быстро, эффективно и, вопреки тому, что считалось ранее, дает хорошие результаты ( Говаль и др.
, 2018 г.
).
В частности, мы показываем, что он может достоверно снизить частоту ошибок (т. е.
максимальное количество ошибок, которые может вызвать любой злоумышленник) по сравнению с современными классификаторами изображений на наборах данных из баз данных MNIST и CIFAR-10.
Следующая цель — изучить правильные геометрические абстракции для вычисления завышенных аппроксимаций пространства выходных данных.
Мы также хотим обучить сети так, чтобы они надежно работали с более сложными спецификациями, описывающими желаемое поведение, такими как ранее упомянутая инвариантность и соответствие физическим законам.
Формальная проверка
Тщательное тестирование и обучение могут существенно помочь в создании надежных систем машинного обучения.Однако формально, какое бы масштабное тестирование ни было, не может гарантировать, что поведение системы будет совпадать с нашими желаниями.
В крупномасштабных моделях перебор всех возможных выходных данных для заданного набора входных данных (например, незначительные изменения изображений) кажется трудным для реализации из-за астрономического количества возможных изменений изображений.
Однако, как и в случае с обучением, можно найти лучшие подходы к установлению геометрических ограничений на набор результатов.
Формальная проверка — это тема текущих исследований DeepMind. Сообщество машинного обучения разработало несколько интересных идей для вычисления точных геометрических границ выходного пространства сети (Кац и др.
, 2017, Венг и др.
, 2018 г.
, 2018 г.
).
Наш подход ( Двиджотам и др.
, 2018 г.
), основанный на оптимизации и двойственности, состоит в формулировке задачи проверки в терминах оптимизации, которая пытается найти наибольшее нарушение проверяемого свойства.
Задача становится вычислимой, если мы используем в оптимизации идеи двойственности.
В результате мы получаем дополнительные ограничения, уточняющие границы, рассчитанные при перемещении интервала распространения границы с помощью так называемых секущих плоскостей.
Это надежный, но неполный подход: могут быть случаи, когда интересующее нас свойство удовлетворяется, но граница, вычисленная этим алгоритмом, недостаточно строга, чтобы наличие этого свойства можно было формально доказать.
Однако, получив границу, мы получаем формальную гарантию отсутствия нарушений этого свойства.
На рис.
Этот подход графически проиллюстрирован ниже.
Этот подход позволяет нам расширить применимость алгоритмов проверки на сети более общего назначения (функции активатора, архитектуры), общие спецификации и более сложные модели DL (генеративные модели, нейронные процессы и т. д.), а также спецификации, выходящие за рамки состязательной устойчивости ( Цинь, 2018 г.
).
Перспективы
Развертывание МО в ситуациях высокого риска имеет свои уникальные проблемы и проблемы и требует разработки технологий оценки, которые гарантированно обнаруживают ошибки с малой вероятностью.Мы считаем, что последовательное обучение на основе спецификаций может значительно повысить производительность по сравнению со случаями, когда спецификации неявно возникают из данных обучения.
Мы с нетерпением ждем результатов продолжающихся исследований в области состязательной оценки, надежных моделей обучения и проверки формальных спецификаций.
Потребуется гораздо больше работы, прежде чем мы сможем создать автоматизированные инструменты, гарантирующие, что реальные системы ИИ «сделают все правильно».
В частности, мы очень довольны прогрессом в следующих областях:
- Обучение состязательной оценке и проверке.
По мере того, как системы ИИ масштабируются и становятся более сложными, становится все труднее разрабатывать алгоритмы состязательной оценки и проверки, которые в достаточной степени адаптированы к модели ИИ.
Если мы сможем использовать всю мощь ИИ для оценки и проверки, этот процесс можно будет масштабировать.
- Разработайте общедоступные инструменты для состязательной оценки и проверки.
Важно предоставить инженерам и другим пользователям ИИ простые в использовании инструменты, которые проливают свет на потенциальные виды сбоев системы ИИ до того, как эти сбои приведут к широкомасштабным негативным последствиям.
Это потребует некоторой стандартизации состязательных оценок и алгоритмов проверки.
- Расширение круга состязательных примеров.
До сих пор большая часть работ по состязательным примерам была сосредоточена на устойчивости моделей к небольшим изменениям, обычно в области изображений.
Это стало отличным испытательным полигоном для разработки подходов к состязательной оценке, надежному обучению и проверке.
Мы начали изучать различные спецификации свойств, которые имеют непосредственное отношение к реальному миру, и с нетерпением ожидаем будущих исследований в этом направлении.
- Требования к обучению.
Спецификации, описывающие «правильное» поведение систем ИИ, зачастую сложно точно сформулировать.
Поскольку мы создаем все более интеллектуальные системы, способные к сложному поведению и работе в неструктурированных средах, нам нужно будет научиться создавать системы, которые могут использовать частично сформулированные спецификации и получать дальнейшие спецификации на основе обратной связи.
Чтобы гарантировать, что вклад разработчиков будет гарантированно положительным, нам необходимо преодолеть множество технических препятствий.
Мы стремимся изменить ситуацию в этой области и рады сотрудничать с сообществом для решения этих проблем.
Теги: #Машинное обучение #искусственный интеллект #DeepMind
-
Я, Бот И Мое Шило
19 Dec, 24 -
Gpl И Некоторые Опенсорсеры: Я Возмущен!
19 Dec, 24 -
Спокойной Ночи? Дети!
19 Dec, 24 -
Участие В Работе Над Javafx
19 Dec, 24