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

Проблема враждебных входов

Рассмотрим изображение ниже: это знак остановки? Для человеческого глаза, даже с несколькими дополнительными отметками, это действительно знак остановки. А что, если бы за определение знака отвечала глубокая нейронная сеть? Что ж, глубокие нейронные сети уже являются важной частью технологии автономных транспортных средств и во многих случаях отвечают за расшифровку изображений, снятых мощными камерами автономного транспортного средства. Оказывается, исследователи обнаружили, что незначительное изменение знака Стоп, изображенного ниже, приводит к тому, что глубокая нейронная сеть идентифицирует его как знак Ограничение скорости 45!?

Давайте рассмотрим другое изображение, на этот раз числа. Человеческому глазу легко увидеть, что число на изображении равно 7. И снова, как мы покажем в следующем разделе, мы можем обмануть глубокую нейронную сеть, предсказав число на изображении как 2.

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

В настоящее время можно задаться вопросом, что заставляет нейронные сети быть обманутыми вышеуказанными входными данными. Короткий ответ заключается в том, что благодаря конструкции нейронных сетей злоумышленник, имеющий доступ к нейронной сети, может выяснить, какие изменения в типичных входных данных приведут к неверному прогнозу. Мы пытаемся дать интуитивное объяснение того, как этот обман осуществляется противником, в разделе Почему существуют входные данные противника?. На самом деле также было показано, что злоумышленник может создавать враждебные входные данные для нейронных сетей, не имея полного доступа к сети. Как мы обсудим позже, эта слабость может иметь разрушительные последствия, когда нейронные сети развертываются в реальных приложениях, таких как автономное вождение, распознавание речи и обнаружение вредоносных программ. Читатели, которых больше интересуют практические последствия этих вопросов, могут перейти к разделу под названием Практические угрозы из-за враждебной информации.

Учитывая вышеизложенное, вполне естественно задаться вопросом, существуют ли такие враждебные входы естественным образом, без вмешательства противника. Например, может ли автономное транспортное средство увидеть знак «Стоп» во время грозы и классифицировать его как знак «Ограничение скорости 65»? Каковы последствия таких ошибок? Чтобы ответить на вышеуказанные вопросы, мы должны сначала понять, что такое состязательные входные данные и как они обманывают нейронные сети.

Что такое враждебные входы?

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

Рассмотрим задачу классификации рукописных цифр MNIST, где набор данных состоит из изображений рукописных цифр в оттенках серого от 0 до 9, а задача классификации машинного обучения состоит в том, чтобы правильно пометить цифру на заданном входном изображении. Ниже мы приводим несколько примеров таких изображений.

Мы построили и обучили нейронную сеть правильно классифицировать приведенные выше изображения (т.е. она присвоила этим изображениям метки классов: 2, 7, 9, 0 и 6). Теперь изучите изображения ниже — они кажутся очень похожими на изображения выше — однако каждое из этих изображений было неправильно классифицировано одной и той же нейронной сетью (т. е. она присвоила изображениям метки классов: 4, 2, 3, 9 и 1). ниже) . То есть мы смогли построить состязательные изображения из исходных изображений, которые выглядят почти идентичными человеческому глазу, но обманули нейронную сеть, заставив ее делать неверные прогнозы.

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

Что такое нейронные сети?

Нейронная сеть — это алгоритм машинного обучения, который приблизительно моделируется человеческим мозгом. Как следует из названия, нейронная сеть состоит из сети узлов (нейронов), организованных послойно, где слой — это просто набор нейронов. Например, 5-слойная нейронная сеть со 100 нейронами в каждом слое означает, что нейронная сеть состоит из 5 различных слоев (подробнее см. ниже), где каждый слой состоит из 100 узлов (нейронов). Кстати, о терминологии: чем больше слоев состоит из нейронной сети, тем она глубже, поэтому термины нейронная сеть и глубокая нейронная сеть используются взаимозаменяемо. Подобласть машинного обучения, в которой используются нейронные сети (или глубокие нейронные сети), называется глубоким обучением. Для более полного ознакомления с нейронными сетями мы отсылаем читателя к легкодоступным материалам по глубокому обучению и сверточным нейронным сетям.

Ниже приведено изображение, взятое из этих материалов, изображающее послойную структуру нейронных сетей. На изображении изображена трехслойная нейронная сеть с 4 узлами (нейронами) в первом слое, 4 узлами (нейронами) во втором слое и 1 узлом (нейроном) в последнем слое (читатель должен игнорировать использование «скрытого» слоя). и «выходной» слой на данный момент). Входной слой не считается частью нейронной сети, это просто представление входных данных на основе узлов (на изображении ниже он состоит из 3 узлов). Каждый узел в сети имеет номер. Например, если вход представляет собой изображение в оттенках серого 28 x 28, то значение каждого пикселя изображения будет храниться ровно в одном узле из 784 узлов входного слоя. Стрелки, соединяющие узел с каждым узлом в слое справа, означают, что значение из данного узла будет передаваться всем узлам в слое справа от него. Следовательно, нейронная сеть делает прогнозы, проталкивая значения из входного слоя через сеть и, наконец, через выходной слой, который является ответом на заданную проблему. Например, сеть может взять изображение кошки во входном слое и вывести 0,99 в выходной слой, что может быть вероятностью, которую сеть присваивает входному изображению, являющемуся кошкой.

Одна из основных причин успеха нейронных сетей [AG1] заключается в том, что им нужны только размеченные данные, чтобы научиться решать конкретную задачу. Это означает, что если мы обеспечим нейронную сеть достаточным количеством изображений кошек и собак, где каждое изображение кошки помечено как кошка, а каждое изображение собаки помечено как собака, сеть сможет сама изучить сложные отношения, необходимые для определения того, новый образ – кошка или собака. С этим кратким введением в нейронные сети мы теперь можем приступить к пониманию того, как они делают прогнозы.

Как глубокие нейронные сети делают прогнозы?

Классификация — это задача присвоения метки класса заданному вводу, т. е. при заданном вводе x присвоить его классу k. Например, в задаче классификации рукописных цифр MNIST по заданному изображению рукописной цифры задача классификации состоит в том, чтобы отнести ее к классу от 0 до 9. Для большинства проблемных областей вход x принадлежит некоторому подмножеству конечномерного евклидова пространства, которое обычно называют входным пространством. Любой вход является точкой в ​​этом входном пространстве, а затем глубокая нейронная сеть делит это пространство на небольшие замкнутые области и присваивает каждой области метку класса. Можно думать о каждом слое нейронной сети как о последовательном изучении входного пространства, а затем последовательном делении входного пространства на все больше и больше областей. На выходном слое каждой замкнутой области назначается конкретная метка класса.

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

Первый слой (Слой 0) этой нейронной сети использует 4 линии для разделения входного пространства, в результате чего получается 9 замкнутых областей, второй слой (Слой 1) добавляет больше строк на каждую замкнутую область, чтобы дополнительно разделить каждую замкнутую область на большее количество замкнутых областей, а третий уровень (уровень 2) дополнительно разделяет каждую замкнутую область аналогичным образом, а также присваивает метку класса каждой замкнутой области во входном пространстве. Затем окончательная классификация нейронной сети основывается на метках классов, которые последний слой (третий слой на изображении выше) присваивает каждой замкнутой области. То есть после действия последнего слоя каждой вложенной области присваивается метка класса, и любой вход, принадлежащий к той же вложенной области, будет назначен той же меткой класса нейронной сетью. Поскольку нейронная сеть использует этот процесс для разделения всего входного пространства, она может присвоить метку класса любому входу. Теперь мы объясним, как это приводит к созданию враждебных входных данных.

Почему существуют враждебные входы?

Несмотря на то, что описанный выше процесс разделения входного пространства очень мощный, он также делает нейронную сеть уязвимой для враждебных входных данных. Это связано с тем, что во многих случаях соседние регионы имеют разные метки классов (на самом деле в большинстве случаев это так и есть — причины, по которым соседние регионы могут иметь одинаковые метки классов, носят более технический характер и не имеют решающего значения для данного обсуждения). Таким образом, злоумышленник может взять ввод, принадлежащий закрытой области с меткой класса k (мы предполагаем, что k — правильная метка), и изменить его на очень небольшую величину, так что теперь ввод будет сдвинут на соседняя замкнутая область с другим ярлыком класса j. Когда этот измененный ввод будет представлен нейронной сети, сеть классифицирует его как принадлежащий к классу j. Следовательно, злоумышленник тем самым изменил метку класса, которую будет предсказывать нейронная сеть, с правильной на неправильную. Однако, поскольку ввод был изменен лишь на небольшую величину, он по-прежнему очень похож на исходный ввод, вызывая явление враждебности. В качестве технического отступления здесь важно отметить, что это явление, возможно, усугубляется в многомерных пространствах, поскольку большинство точек сосредоточено на границе решения.

Можно спросить, откуда противник узнает, какие изменения приведут к смещению ввода в нужную соседнюю область? Короткий ответ заключается в том, что злоумышленник использует знания нейронной сети для создания необходимых противоборствующих изменений. Длинный ответ требует более глубокого понимания нейронных сетей, того, как они обучаются, базовых вычислений и оптимизации. Поэтому мы опускаем его, так как изложение этой темы не является нашей целью. Однако было показано, что злоумышленники также могут создавать вводные данные противника без детального знания целевой нейронной сети. Крайне важно понять, сколько таких областей может быть создано нейронными сетями, чтобы понять, насколько легко создавать враждебные входные данные. Чтобы проиллюстрировать этот процесс, мы используем изображение ниже, которое показывает, как однослойная нейронная сеть с 1024 нейронами делит двумерное входное пространство (мы игнорируем детали проекции, используемые авторами для простоты).

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

Это поднимает вопрос: насколько нейронные сети восприимчивы к таким враждебным входным данным? Ответ варьируется и во многом зависит от такого расположения линий или кривых во входном пространстве. Рассмотрим нейронную сеть, которая может присвоить правильную метку класса любому входу из проблемной области. Может ли эта нейронная сеть по-прежнему быть восприимчивой к враждебным входам? да. В зависимости от того, как сеть разделила входное пространство, все еще могут существовать области с меткой класса k (что является правильной меткой), которые являются соседями областей с другой меткой класса. . Следовательно, противник просто должен исказить исходный ввод таким образом, чтобы он переместился в одну из соседних областей с другой меткой класса, чтобы обмануть сеть.

Вышеупомянутое явление имеет далеко идущие последствия для безопасности в таких задачах, как распознавание лиц, классификация вредоносных программ, автономное вождение, финансовые прогнозы и многие другие. Злоумышленник может использовать эти знания, чтобы маскироваться под кого-то другого, изменять прогнозы в критически важных для бизнеса системах и т. д. Учитывая критическое влияние этой проблемы, естественно задаться вопросом, как мы можем защититься от нее.

Как мы можем защититься от враждебных входных данных?

Как объяснялось выше, враждебные входные данные создаются путем внесения небольших изменений в исходный ввод. Однако эти небольшие изменения на входе приводят к большим изменениям на выходе нейронной сети (т.е. изменяются предсказания сети). Таким образом, одним из естественных подходов к защите от враждебных входных данных будет гарантия того, что выходные данные сети не изменятся на большую величину, если злоумышленник внесет небольшие изменения во входные данные. Эта, казалось бы, простая цель, однако, труднодостижимая на практике. Большинство методов пытаются достичь этой цели, налагая штрафы на нейронную сеть на этапе ее обучения, чтобы контролировать количество изменений в выходе сети по отношению к небольшим изменениям на входе (мы не объясняем детали того, как происходит это наказание, поскольку оно требует более глубокое понимание нейронных сетей и деталей может отвлечь от основного вопроса). Хотя это решение защищает нейронную сеть от враждебных входных данных (требуется большее изменение исходного ввода, чтобы обмануть сеть), оно не решает проблему полностью. Из-за того, как нейронная сеть разделяет входное пространство, все еще возможно создавать враждебные входные данные.

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

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

Практические угрозы из-за действий противника

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

Технология автономного вождения использует глубокие нейронные сети для различных задач, таких как обнаружение объектов и сегментация сцены (определение, к какому классу принадлежит каждый пиксель изображения). Было показано, что нейронные сети, отвечающие за сегментацию воспринимаемого изображения, можно обмануть, заставив некорректно сегментировать сцену, например: увидеть грузовики или автомобили там, где их нет, или не увидеть пешехода там, где он есть. Другое направление работы показало, что состязательные входные данные существуют и в реальном мире (т.е. можно создать состязательный ввод, распечатать его и обмануть нейронную сеть, которая смотрит на эту картинку). Сочетая эти два свойства, можно увидеть, что автономная система вождения, которая использует только глубокое обучение для восприятия на низком уровне, может быть легко обманута противником. Даже без присутствия противника крайне важно учитывать, как автономные транспортные средства ведут себя в экстремальных условиях (или крайних случаях).

Еще одно мощное применение глубокого обучения — помощники на основе распознавания речи, такие как Siri, Alexa и Google Now. Они также уязвимы для враждебных входных данных, поскольку было показано, что можно создавать неслышимые команды, которые обманывают этих голосовых помощников, заставляя их выполнять простые задачи, такие как инициирование вызова Face-time. То есть злоумышленник может создавать голосовые сигналы, которые не слышны человеку, но обманывают голосового помощника, заставляя его выполнить ту или иную задачу. Еще раз, учитывая возможности голосового помощника и деликатность задачи, это критическая проблема безопасности для таких систем распознавания голоса.

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

Вывод

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