КулЛиб - Классная библиотека! Скачать книги бесплатно
Всего книг - 712467 томов
Объем библиотеки - 1400 Гб.
Всего авторов - 274471
Пользователей - 125054

Новое на форуме

Новое в блогах

Впечатления

Влад и мир про Владимиров: Ирландец 2 (Альтернативная история)

Написано хорошо. Но сама тема не моя. Становление мафиози! Не люблю ворьё. Вор на воре сидит и вором погоняет и о ворах книжки сочиняет! Любой вор всегда себя считает жертвой обстоятельств, мол не сам, а жизнь такая! А жизнь кругом такая, потому, что сам ты такой! С арифметикой у автора тоже всё печально, как и у ГГ. Простая задачка. Есть игроки, сдающие определённую сумму для участия в игре и получающие определённое количество фишек. Если в

  подробнее ...

Рейтинг: 0 ( 0 за, 0 против).
DXBCKT про Дамиров: Курсант: Назад в СССР (Детективная фантастика)

Месяца 3-4 назад прочел (а вернее прослушал в аудиоверсии) данную книгу - а руки (прокомментировать ее) все никак не доходили)) Ну а вот на выходных, появилось время - за сим, я наконец-таки сподобился это сделать))

С одной стороны - казалось бы вполне «знакомая и местами изьезженная» тема (чуть не сказал - пластинка)) С другой же, именно нюансы порой позволяют отличить очередной «шаблон», от действительно интересной вещи...

В начале

  подробнее ...

Рейтинг: +1 ( 1 за, 0 против).
DXBCKT про Стариков: Геополитика: Как это делается (Политика и дипломатия)

Вообще-то если честно, то я даже не собирался брать эту книгу... Однако - отсутствие иного выбора и низкая цена (после 3 или 4-го захода в книжный) все таки "сделали свое черное дело" и книга была куплена))

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

  подробнее ...

Рейтинг: +1 ( 1 за, 0 против).
DXBCKT про Москаленко: Малой. Книга 3 (Боевая фантастика)

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

В общем герою (лишь формально вникающему в разные железки и нейросети)

  подробнее ...

Рейтинг: +1 ( 1 за, 0 против).
Влад и мир про Черепанов: Собиратель 4 (Боевая фантастика)

В принципе хорошая РПГ. Читается хорошо.Есть много нелогичности в механике условий, заданных самим же автором. Ну например: Зачем наделять мечи с поглощением душ и забыть об этом. Как у игрока вообще можно отнять душу, если после перерождении он снова с душой в своём теле игрока. Я так и не понял как ГГ не набирал опыта занимаясь ремеслом, особенно когда служба якобы только за репутацию закончилась и групповое перераспределение опыта

  подробнее ...

Рейтинг: 0 ( 0 за, 0 против).

Надежность нейронных сетей: укрепляем устойчивость ИИ к обману [Кэти Уорр] (pdf) читать онлайн

Книга в формате pdf! Изображения и текст могут не отображаться!


 [Настройки текста]  [Cбросить фильтры]

Beijing

Boston Farnham Sebastopol

Tokyo

Надежность
нейронных
сетей
Укрепляем устойчивость ИИ к обману

Кэти Уорр

2021

ББК 32.988.02-018-07
УДК 004.056.53
У64

Уорр Кэти
У64 Надежность нейронных сетей: укрепляем устойчивость ИИ к обману. — СПб.:
Питер, 2021. — 272 с.: ил. — (Серия «Бестселлеры O’Reilly»).
ISBN 978-5-4461-1676-8
Глубокие нейронные сети (DNN) становятся неотъемлемой частью IT-продуктов, провоцируя
появление нового направления кибератак. Хакеры пытаются обмануть нейросети с помощью
данных, которые не смогли бы обмануть человека.
Кэти Уорр рассматривает мотивацию подобных атак, риски, которые влечет вредоносный ввод,
а также методы повышения устойчивости ИИ к таким взломам. Если вы специалист по data science,
архитектор системы безопасности и стремитесь повысить устойчивость систем с ИИ или вас просто
интересует различие между искусственным и биологическим восприятием, то эта книга для вас.

16+ (В соответствии с Федеральным законом от 29 декабря 2010 г. № 436-ФЗ.)

ББК 32.988.02-018-07
УДК 004.056.53

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

ISBN 978-1492044956 англ.

ISBN 978-5-4461-1676-8

Authorized Russian translation of the English edition of Strengthening Deep
Neural Networks ISBN 9781492044956 © 2019 Katy Warr
This translation is published and sold by permission of O’Reilly Media, Inc.,
which owns or controls all rights to publish and sell the same.
© Перевод на русский язык ООО Издательство «Питер», 2021
© Издание на русском языке, оформление ООО Издательство «Питер»,
2021
© Серия «Бестселлеры O’Reilly», 2021
© Павлов А., перевод с англ., 2020

Краткое содержание
Предисловие........................................................................................................ 10

Часть I. Общие сведения об обмане
искусственного интеллекта
Глава 1. Введение................................................................................................. 19
Глава 2. Мотивация к атакам................................................................................. 38
Глава 3. Основные понятия ГНС............................................................................ 48
Глава 4. ГНС-обработка изображений, аудио- и видеоданных............................... 76

Часть II. Генерация вредоносных входных данных
Глава 5. Базовые принципы вредоносных входных данных................................. 104
Глава 6. Методы генерации вредоносных искажений.......................................... 132

Часть III. Понимание реальных угроз
Глава 7. Схемы атак против реальных систем..................................................... 168
Глава 8. Атаки в физическом мире...................................................................... 185

Часть IV. Защита
Глава 9. Оценка устойчивости модели к вредоносным входным данным............. 202
Глава 10. Защита от вредоносных входных данных............................................. 221
Глава 11. Дальнейшие перспективы: повышение надежности ИИ....................... 261
Приложение. Справочник математических обозначений.................................... 267
Об авторе........................................................................................................... 269
Об обложке........................................................................................................ 270

Оглавление
Предисловие........................................................................................................ 10
Для кого предназначена книга.......................................................................... 11
Структура издания............................................................................................ 12
Условные обозначения...................................................................................... 14
Использование примеров программного кода.................................................... 14
Математические обозначения............................................................................ 15
Благодарности................................................................................................... 15
От издательства................................................................................................ 16

Часть I. Общие сведения об обмане
искусственного интеллекта
Глава 1. Введение................................................................................................. 19
Неглубокий обзор глубокого обучения.............................................................. 19
Очень краткая история глубокого обучения...................................................... 21
Неожиданное открытие: оптические иллюзии искусственного интеллекта........ 23
Что такое вредоносные входные данные........................................................... 26
Вредоносное искажение............................................................................... 28
Неестественные вредоносные входные данные............................................ 29
Вредоносная заплатка.................................................................................. 31
Вредоносные образы в физическом мире..................................................... 33
Вредоносное машинное обучение в более широком смысле.............................. 35
Последствия воздействия вредоносных входных данных................................... 36
Глава 2. Мотивация к атакам................................................................................. 38
Обход веб-фильтров.......................................................................................... 39
Репутация в Интернете и управление брендом.................................................. 41
Камуфляж против видеонаблюдения................................................................. 42
Личная конфиденциальность в Интернете......................................................... 43

Оглавление   7

Дезориентация автономных транспортных средств........................................... 44
Устройства с голосовым управлением................................................................ 46
Глава 3. Основные понятия ГНС............................................................................ 48
Машинное обучение.......................................................................................... 48
Концептуальные основы глубокого обучения.................................................... 50
Модели ГНС как математические функции......................................................... 55
Входные и выходные данные ГНС................................................................. 58
Внутреннее содержимое ГНС и обработка
с прямым распространением........................................................................ 59
Как обучается ГНС....................................................................................... 63
Создание простого классификатора изображений............................................. 69
Глава 4. ГНС-обработка изображений, аудио- и видеоданных............................... 76
Изображения..................................................................................................... 77
Цифровое представление изображений....................................................... 78
ГНС для обработки изображений.................................................................. 80
Общие сведения о сверточных нейронных сетях.......................................... 81
Аудиоданные..................................................................................................... 87
Цифровое представление аудиоданных........................................................ 88
ГНС для обработки аудиоданных.................................................................. 89
Общие сведения о рекуррентных нейронных сетях...................................... 91
Обработка речи............................................................................................ 94
Видеоданные..................................................................................................... 96
Цифровое представление видеоданных....................................................... 96
ГНС для обработки видеоданных.................................................................. 96
Соображения о вредоносности.......................................................................... 97
Классификация изображений с помощью сети ResNet50.................................... 99

Часть II. Генерация вредоносных входных данных
Глава 5. Базовые принципы вредоносных входных данных................................. 104
Входное пространство..................................................................................... 105
Обобщение обучающих данных.................................................................. 110
Эксперименты с данными вне распределения............................................ 113
Что «думают» ГНС........................................................................................... 114
Искажающая атака: максимальный эффект
при минимальном изменении.......................................................................... 120

8  

Оглавление

Вредоносная заплатка: максимальное отвлечение внимания........................... 122
Оценка выявляемости атак.............................................................................. 123
Математические методы оценки искажения............................................... 124
Особенности человеческого восприятия..................................................... 127
Резюме............................................................................................................ 129
Глава 6. Методы генерации вредоносных искажений.......................................... 132
Методы белого ящика...................................................................................... 135
Поиск во входном пространстве................................................................. 136
Использование линейности модели............................................................ 139
Вредоносная значимость............................................................................ 148
Повышение надежности вредоносного искажения...................................... 154
Разновидности методов белого ящика........................................................ 156
Методы ограниченного черного ящика............................................................ 157
Методы черного ящика с оценкой.................................................................... 163
Резюме............................................................................................................ 166

Часть III. Понимание реальных угроз
Глава 7. Схемы атак против реальных систем..................................................... 168
Схемы атак...................................................................................................... 168
Прямая атака............................................................................................. 170
Атака с копированием................................................................................ 171
Атака с переносом...................................................................................... 173
Универсальная атака с переносом.............................................................. 177
Многократно используемые заплатки и искажения.......................................... 179
Сводим все вместе: комбинированные методы и компромиссы........................ 183
Глава 8. Атаки в физическом мире...................................................................... 185
Вредоносные объекты..................................................................................... 187
Изготовление объекта и возможности камеры............................................ 187
Углы обзора и окружение........................................................................... 189
Вредоносный звук........................................................................................... 195
Возможности микрофона и системы воспроизведения................................ 196
Положение аудиосигнала и окружение....................................................... 197
Осуществимость атак с использованием физических
вредоносных образов...................................................................................... 200

Оглавление   9

Часть IV. Защита
Глава 9. Оценка устойчивости модели к вредоносным входным данным............. 202
Цели, возможности, ограничения и знания злоумышленника.......................... 204
Цели.......................................................................................................... 204
Возможности, осведомленность и доступ................................................... 209
Оценка модели................................................................................................ 211
Эмпирические метрики устойчивости......................................................... 212
Теоретические метрики устойчивости........................................................ 218
Резюме............................................................................................................ 219
Глава 10. Защита от вредоносных входных данных............................................. 221
Улучшение модели.......................................................................................... 222
Маскирование градиентов.......................................................................... 223
Вредоносное обучение.................................................................................... 226
OoD-обучение................................................................................................. 236
Оценка неопределенности случайного отсева............................................ 241
Предварительная обработка данных............................................................... 248
Предварительная обработка в общей последовательности обработки........ 249
Интеллектуальное удаление вредоносного контента.................................. 253
Сокрытие информации о целевой системе....................................................... 254
Создание эффективных механизмов защиты от вредоносных
входных данных.............................................................................................. 257
Открытые проекты..................................................................................... 257
Получение общей картины......................................................................... 258
Глава 11. Дальнейшие перспективы: повышение надежности ИИ....................... 261
Повышение устойчивости за счет распознавания контуров............................. 262
Мультисенсорные входные данные.................................................................. 263
Вложенность и иерархия объектов.................................................................. 265
В заключение.................................................................................................. 266
Приложение. Справочник математических обозначений....................................... 267
Об авторе........................................................................................................... 269
Об обложке........................................................................................................ 270

Предисловие
Искусственный интеллект (ИИ) получил широкое распространение в со­
временном мире. Умные машины ежедневно выполняют анализ сложных
данных: системы видеонаблюдения распознают лица, цифровые помощни­
ки — устную речь, а автономные транспортные средства и роботы справля­
ются с задачей навигации в неупорядоченном и неограниченном физическом
мире. ИИ уже не только конкурирует с человеческими возможностями
в таких областях, как обработка изображений, аудиоданных и текста, но
часто и превосходит человека по скорости и уровню точности.
Несмотря на все достижения в сфере ИИ, не так давно выяснилось, что глу­
бокие нейронные сети (ГНС) — алгоритмы, входящие в состав большинства
систем ИИ, — подвержены вредоносным атакам, использующим неопасные,
на первый взгляд, входные данные. ГНС можно обмануть, внеся во входные
данные незначительные изменения, которые будут незаметными для челове­
ка. Так, небольшие изменения изображений, которые незаметны человеку,
могут заставить ГНС неправильно интерпретировать их содержимое. Ввиду
того, что многие системы ИИ получают свои входные данные из внешних
источников — устройств с голосовым управлением или социальных сетей, —
подверженность вредоносным входным данным открывает новую, часто
весьма интригующую, угрозу безопасности. В данной книге рассказывается
о такой угрозе, о том, какие выводы о ГНС позволяет сделать ее наличие
и как сделать ИИ более устойчивым к атакам.
На примере реальных сценариев, в которых ИИ применяется в нашей повсе­
дневной жизни для обработки изображений, аудио- и видеоданных, в книге
рассматриваются мотивация таких атак, их осуществимость и создаваемые
ими риски. Здесь представлены как интуитивное, так и математическое
объяснение темы и рассмотрены способы повышения устойчивости интел­
лектуальных систем к вредоносным входным данным.

Предисловие   11

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

Для кого предназначена книга
Целевая аудитория этой книги:
‰‰ специалисты по работе с данными, использующие ГНС. Вы узнаете, как
можно создавать глубокие нейронные сети с более высокой степенью
устойчивости к вредоносным входным данным;
‰‰ архитекторы программных решений и архитекторы по безопасности,
внедряющие в рабочие процессы глубокое обучение на основе изображе­
ний, аудио- и видеоданных из непроверенных источников. Прочитав эту
книгу, вы узнаете, какие риски для информационного обеспечения вашей
организации могут представлять вредоносные данные и какие стратегии
уменьшения рисков существуют;
‰‰ все, кто интересуется различиями между искусственным и биологическим
восприятием. Если вы относитесь к данной категории, то, прочитав книгу,
получите общее представление о глубоком обучении и узнаете, почему
алгоритмы, которые, казалось бы, точно имитируют человеческое вос­
приятие, иногда дают серьезный сбой. Вы также узнаете, где и как ис­
пользуется ИИ в современном мире, как искусственное обучение может
развиться в ближайшие годы, имитируя биологический интеллект.
Издание рассчитано на людей с любым уровнем подготовки. В число ос­
вещаемых тем входит ИИ, человеческое восприятие аудиоданных и изо­
бражений, обеспечение информационной безопасности. В книге намеренно
используется кросс-дисциплинарный подход, чтобы рассмотреть эту за­
хватывающую и быстро развивающуюся область с различных точек зрения.
Для чтения книги не обязательно иметь представление о глубоких нейронных
сетях. Все, что необходимо знать, изложено во вводной главе о ГНС (см. гла­
ву 3). Если же вы специалист по данным и знакомы с методами глубокого
обучения, то можете пропустить эту главу.

12  

Предисловие

Материал изложен в доступной форме, понятной читателям как с математи­
ческой подготовкой, так и без. Дополнительные математические выкладки
приводятся на тот случай, если читателю интересно, какие формулы лежат
в основе некоторых концепций глубокого обучения и вредоносных входных
данных. Если вы уже подзабыли, чему вас учили на уроках математики в стар­
ших классах школы, загляните в приложение — в нем кратко объясняются
используемые в книге математические обозначения.
Примеры кода приводятся как дополнительные сведения для разработчиков
программного обеспечения или специалистов по данным, желающих приме­
нить теоретические знания на практике. Код написан на языке Python в виде
блокнотов Jupiter. В книгу включены только те фрагменты кода, которые
важны для изложения материала, полный же код можно найти в репозитории
GitHub (github.com/katywarr/strengthening-dnns). Там же содержатся подробные
инструкции по запуску кода.
Эта книга не о безопасности машинного обучения в целом; основное внима­
ние в ней уделяется именно ГНС-технологиям для обработки изображений
и аудио­данных, а также способам их одурачить, не вводя в заблуждение
человека.

Структура издания
Книга разбита на четыре части.
Часть I «Общие сведения об обмане искусственного интеллекта».
Несколько глав содержат базовые сведения о вредоносных входных данных
и мотивации атак, разъясняются основные концепции глубокого обучения
для обработки изображений и аудиоданных.
‰‰ Глава 1 включает общие сведения о вредоносных атаках на ИИ и о глу­
боком обучении в целом.
‰‰ В главе 2 рассматривается мотивация, стоящая за генерацией вредоносных
изображений, аудио- и видеоданных.
‰‰ Глава 3 содержит базовые сведения о глубоких нейронных сетях. Чита­
тели, уже знакомые с основами глубокого обучения, могут пропустить
эту главу.

Предисловие   13

‰‰ В главе 4 представлен общий обзор глубоких нейронных сетей, исполь­
зуемых для обработки изображений, аудио- и видеоданных. Это поможет
понять концепции, изложенные далее в книге.
Часть II «Генерация вредоносных входных данных».
В продолжение вводных глав части I в главах 5 и 6 подробно объясня­
ется, что представляют собой вредоносные входные данные и как они
создаются.
‰‰ В главе 5 дается концептуальное разъяснение идей, лежащих в основе
генерации вредоносных входных данных.
‰‰ В главе 6 разъясняются вычислительные методы, используемые для
генерации вредоносных входных данных.
Часть III «Понимание реальных угроз».
На основе изложенной в части II информации о методах в части III рассма­
тривается, каким образом злоумышленник может запустить реальную атаку
и с какими препятствиями ему придется при этом столкнуться.
‰‰ В главе 7 рассматриваются реальные атаки и сложности применения
в реальных системах методов, описанных в части II.
‰‰ Глава 8 посвящена угрозам, исходящим от вредоносных объектов или
вредоносных звуков, создаваемых в физическом мире.
Часть IV «Защита».
На основе материала, изложенного в части III, в данной части рассмат­
риваются методы обеспечения устойчивости к вредоносным входным данным.
‰‰ Глава 9 посвящена эмпирическим и теоретическим методам оценки
устойчивости нейронных сетей.
‰‰ В главе 10 рассматриваются последние тенденции в области усиления
защиты ГНС-алгоритмов от вредоносных входных данных. В конце главы
представлен более глобальный анализ того, какие защитные меры мож­
но ввести в ту последовательность обработки, частью которой является
нейросетевая обработка.
‰‰ Наконец, в главе 11 рассказывается, по каким направлениям может пойти
развитие ГНС в ближайшие годы.

14  

Предисловие

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

Используется для обозначения адресов электронной почты и URLадресов.
Моноширинный

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

Так обозначается совет или рекомендация.

Таким образом оформлены примечания общего характера.

Так обозначается предупреждение.

Использование примеров программного кода
Вспомогательные материалы (примеры программного кода, упражне­
ния и т. д.) доступны для скачивания по адресу https://github.com/katywarr/
strengthening-dnns.
Эта книга призвана помочь вам в работе. Примеры кода из нее вы можете
использовать в своих программах и документации. Если объем кода не­
существенный, связываться с нами для получения разрешения не нужно.

Предисловие   15

Например, для написания программы, использующей несколько фрагментов
кода из этой книги, разрешения не требуется. А вот для продажи или рас­
пространения компакт-диска с примерами из книг издательства O’Reilly
нужно получить разрешение. Ответы на вопросы с использованием цитат
из этой книги и примеров кода разрешения не требуют. Но для включения
объемных примеров кода из этой книги в документацию по вашему про­
граммному продукту разрешение понадобится.
Мы приветствуем указание ссылки на источник, но не делаем это обяза­
тельным требованием. Такая ссылка обычно включает название книги, имя
автора, название издательства и ISBN. Например: «Надежность нейронных
сетей. Кэти Уорр (Питер). Copyright 2019 Katy Warr, 978-5-4461-1676-8».
Если вам покажется, что использование кода примеров выходит за рамки
оговоренных выше условий и разрешений, свяжитесь с нами по адресу
permissions@oreilly.com.

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

Благодарности
Я очень благодарна команде издательства O’Reilly за то, что они предоставили
мне возможность написать эту книгу и обеспечили потрясающую поддержку
на протяжении всего процесса. Выражаю особую благодарность за помощь
и поддержку редактору Мишелю Кронину (Michele Cronin), а также Деборе
Бейкер (Deborah Baker), Ребекке Демарест (Rebecca Demarest) и Соне Сарубе
(Sonia Saruba) из редакционного отдела. Также спасибо Нику Адамсу (Nick
Adams) из отдела верстки за то, что оформил сложные математические фор­
мулы с помощью LaTeX.
Спасибо вам, мои научные редакторы: Нихил Будума (Nikhil Buduma),
Пин-Ю Чен (Pin-Yu Chen), Доминик Монн (Dominic Monn), Ясин Наджи
(Yacin Nadji)! Ваши комментарии были очень полезны. Доминик заслужи­
вает особой благодарности за то, что проверял программный код и предлагал
способы его улучшения.

16  

Предисловие

Я очень признательна своим коллегам из компании Roke Manor Research за
обратную связь, на основе которой был создан ряд интересных материалов по
глубокому обучению, кибербезопасности и математике. Спасибо вам, Алекс
Коллинз (Alex Collins), Роберт Хэнкок (Robert Hancock), Даррен Ричардсон
(Darren Richardson) и Марк Уэст (Mark West)!
Данная книга в значительной мере основана на результатах последних иссле­
дований, и я поблагодарю всех исследователей, которые любезно позволили
мне использовать изображения, демонстрирующие результаты их работы.
Спасибо моим детям за то, что были всегда готовы прийти мне на помощь:
Элеонор постоянно оказывала мне моральную поддержку, а Дилан терпеливо
разъяснял смысл некоторых математических конструкций, используемых
в научных работах.
Cпасибо моему мужу Джорджу за то, что приносил мне чай и читал первые
черновики. Прости, что не смогла включить в книгу все твои шутки!

От издательства
Некоторые иллюстрации для лучшего восприятия нужно смотреть в цвет­
ном варианте. Мы снабдили их QR-кодами, перейдя по которым вы можете
ознакомиться с цветной версией рисунка.
Ваши замечания, предложения, вопросы отправляйте по адресу comp@piter.com
(издательство «Питер», компьютерная редакция).
Мы будем рады узнать ваше мнение!
На веб-сайте издательства www.piter.com вы найдете подробную информацию
о наших книгах.

Часть I

Общие сведения
об обмане искусственного
интеллекта

В этой части книги в общих чертах рассмотрено, что такое глубокие нейрон­
ные сети (ГНС, англ. DNN — deep neural network), как их могут обманывать
вредоносные входные данные и почему они уязвимы к такому обману.
В главе 1 для начала вы узнаете, что следует понимать под вредоносными
входными данными, и небольшой исторический экскурс в этом поможет. Вы
познакомитесь с результатами одного интересного исследования, которое
позволило сделать ценные выводы в отношении глубоких нейронных сетей
и возможных способов их обмана. Далее, в главе 2, узнаете, к каким резуль­
татам может потенциально привести воздействие вредоносных входных
данных и какую цель может преследовать злоумышленник в случае реаль­
ного обмана искусственного интеллекта, лежащего в основе таких систем,
как сайты социальных сетей, системы голосового управления и автономные
транспортные средства.
В заключительных главах части I представлены базовые сведения об ис­
пользовании глубоких нейронных сетей для работы с изображениями,
аудио- и видеоданными — на случай, если вы еще не знакомы с этой обла­
стью или нужно освежить память. Эта информация — основа для понимания
концепций, изложенных в остальных частях книги. В главе 3 рассмотрены
основные принципы машинного и глубокого обучения, а в главе 4 — типич­
ные способы расширения и применения этих принципов в случае работы

18  Часть I. Общие сведения об обмане искусственного интеллекта
с изображениями, аудио- и видеоданными. В конце некоторых глав при­
ведены примеры кода — к ним мы еще не раз вернемся при рассмотрении
вопросов о том, как могут создаваться вредоносные входные данные и как
можно от них защититься.
К завершению этой части вы будете понимать примеры вредоносных данных,
с какой целью они создаются, против каких систем они могут использовать­
ся. В части II рассмотрены способы создания вредоносных входных данных
для обмана глубоких нейронных сетей, используемых для обработки изо­
бражений и аудиоданных.

Глава 1

Введение
В книге рассматриваются глубокие нейронные сети — алгоритмы глубокого
обучения, лежащие в основе многих аспектов искусственного интеллекта.
ИИ — обширная дисциплина создания интеллектуальных машин, копиру­
ющих такие способности человеческого интеллекта, как обработка и интер­
претация изображений, звука и речи, обучение и взаимодействие с непред­
сказуемым физическим и цифровым окружением или логическое мышление
с помощью абстрактных идей и концепций. Хотя ИИ использует и другие
методы, в частности методы машинного обучения (МО, англ. ML — machine
learning) и традиционные алгоритмы программирования, возможность глу­
бокого обучения имитировать способности человеческого интеллекта делает
ГНС наиболее важным направлением в разработке ИИ. Глубокие нейронные
сети способны имитировать, а зачастую даже превосходить человеческие воз­
можности при выполнении многих задач, таких как обработка изображений,
распознавание речи и интерпретация текста. Однако данная книга не о том,
насколько точными и быстрыми могут быть глубокие нейронные сети; она
о том, каким образом их могут обманывать злоумышленники и как можно
усилить их защиту от такого обмана.
Для начала разберемся, что представляют собой глубокие нейронные сети,
а затем сделаем небольшой исторический экскурс, чтобы понять, когда
впервые стало известно, что ГНС не всегда возвращают тот ответ, которого
от них ожидают. В оставшейся части вводной главы речь пойдет о том, что
подразумевается под вредоносными входными данными и к каким послед­
ствиям они потенциально могут привести в современном мире, где ИИ за­
нимает все более важное место.

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

20  Часть I. Общие сведения об обмане искусственного интеллекта
данных. Такой обучаемый алгоритм называют моделью, поскольку он пред­
ставляет собой модель характеристик обучающих данных, которые исполь­
зуются для его построения.
ГНС являются подмножеством более широкого множества алгоритмов,
называемых искусственными нейронными сетями (ИНС). В основе искус­
ственных нейронных сетей лежат идеи, зародившиеся в 1940-е и 1950-е годы,
когда ученые впервые задумались о возможности искусственной имитации
человеческого интеллекта и процесса обучения с помощью алгоритмов, на­
веянных нейробиологическими моделями. Именно поэтому общая структура
искусственных нейронных сетей часто описывается в терминах нейробио­
логических конструкций, таких как нейроны, аксоны и связывающие их
синапсы.
Архитектура (или структура) ИНС обычно включает в себя несколько
слоев. Данные поступают в первый слой искусственных нейронов, которые
заставляют соединенные с ними искусственные синапсы активировать
следующий слой и т. д., пока последний слой нейронов не выдаст оконча­
тельный результат. На рис. 1.1 упрощенно показано, как могла выглядеть
высокосложная искусственная нейронная сеть компьютера Deep Thought
из фантастического романа Дугласа Адамса (Douglas Adams) «Автостопом
по Галактике», написанного в 1979 году.1 Она принимает на вход данные
и возвращает смысл жизни.

Рис. 1.1. Упрощенная схема возможной реализации ГНС компьютера Deep Thought, предназначенного
для определения смысла жизни
1

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

Глава 1. Введение   21

ГНС обучается своему поведению, а точнее, запоминает условия и степень
необходимого срабатывания синапсов и нейронов на примерах, или образ­
цах. Сеть принимает эти образцы в виде обучающих данных и корректирует
свое поведение до тех пор, пока не станет вести себя нужным образом. Этот
процесс обучения при создании ГНС называют глубоким обучением по той
причине, что, в отличие от обычной ИНС, модель ГНС включает в себя до­
полнительные слои нейронов между слоем, принимающим входные данные,
и слоем, выдающим конечный результат. ГНС используются в том случае,
когда входные данные или задача являются слишком сложными для того,
чтобы можно было применять простые ИНС или традиционные методы
машинного обучения.
Очень важно понимать следующее: как и любой другой алгоритм МО, мо­
дель ГНС просто реализует математическую функцию. Хотя описание этой
модели в терминах взаимосвязанных нейронов упрощает ее концептуальное
понимание, вы никогда не увидите упоминания нейронов и синапсов в про­
граммной реализации нейронной сети.
В основе глубоких нейронных сетей лежит мощный математический фун­
дамент, который позволяет аппроксимировать любую математическую
функцию. То есть при наличии достаточных данных и вычислительных мощ­
ностей обучаемая ГНС может научиться отображать любой набор (сложных)
входных данных на требуемый результат. Это делает глубокое обучение
особенно полезным для анализа данных без четко выраженной структуры
и ключевых признаков. В частности, модели ГНС показали свою эффектив­
ность в таких областях, как обработка изображений, перевод с одного языка
на другой, распознавание речи, прогнозирование погоды и тенденций раз­
вития финансового рынка. Что еще примечательно, глубокие нейронные
сети также можно научить генерировать данные (например, реалистичные
изображения или текст), имитируя при этом творческие способности чело­
века. Последние достижения в области ГНС открыли просто потрясающие
возможности для решения сложных вычислительных задач, в силу чего такие
сети распространяются все шире во многих сферах деятельности.

Очень краткая история глубокого обучения
В начале XXI века глубокое обучение и нейронные сети представляли собой
достаточно узкую область исследований, интересную исключительно спе­
циалистам. Глубокие нейронные сети, как правило, носили теоретический
характер и трудно поддавались реализации. Основным препятствием для

22  Часть I. Общие сведения об обмане искусственного интеллекта
практической реализации ГНС является то, что обучение модели ГНС (по
сути, обучение алгоритма правильной работе) требует огромного количества
обучающих данных и вычислительных ресурсов. Кроме того, обычно обуча­
ющие данные также должны быть размечены; то есть каждому обучающему
примеру должен соответствовать правильный ответ. Например, в обучающем
наборе изображений с каждым изображением должны быть связаны данные,
описывающие, что содержит изображение и, возможно, в какой части изо­
бражения находится это содержимое.
Несколько разных способов обучить модель МО
Существует несколько способов обучить модель МО (подробное описание
этих методов и примеры их применения в машинном обучении см. в главе 3).
yy Обучение с учителем. Это обучение модели МО с использованием полно­
стью размеченного набора данных. Модель обучается на примерах — вход­
ных данных с соответствующими ожидаемыми ответами.
yy Обучение без учителя. Это использование неразмеченных наборов данных
с целью обучить модель машинного обучения замечать паттерны в данных.
Алгоритму не предоставляются ответы в ходе обучения, но, несмотря на
это, он стремится выявить в данных паттерны.
yy Обучение с частичным привлечением учителя. Это обучение с использо­
ванием частично размеченных обучающих данных.
yy Обучение с подкреплением. Создание модели путем ее постоянного тести­
рования с помощью системы, выдающей определенную оценку. При этом
не используется обучающий набор данных, модель обучается за счет
взаимодействия с окружающей средой.

Чтобы обучить ГНС выполнению такой сложной задачи, как визуальное
распознавание, как правило, требуются десятки тысяч или даже миллионы
обучающих примеров, каждый из них должен быть правильно размечен.
Энтузиасты машинного обучения очень быстро поняли, что сбор большо­
го количества размеченных данных представляет собой поистине непо­
сильную задачу. Однако развитие Интернета на стыке веков в одночасье
сделало эту задачу осуществимой. Такие интернет-гиганты, как Google
и Facebook, начали использовать доступные им огромные океаны данных
для обучения моделей, предназначенных для ряда бизнес-задач, таких как
перевод с одного языка на другой. Одновременно с этим исследователи
инициировали краудсорсинговые проекты, направленные на разметку
обучающих наборов данных вручную. Новаторский пример — проект

Глава 1. Введение   23

ImageNet, давший толчок развитию технологий на базе ГНС для машин­
ного распознавания образов.
ImageNet
ImageNet (www.image-net.org) — это база данных со ссылками на изображения, созданная для стимулирования прогресса в области машинного
зрения. Она содержит ссылки на более чем 14 миллионов изображений,
каждое из которых отнесено к одной категории или более в зависимости
от содержимого изображения. Эта база данных имеет иерархическую
структуру, что позволяет варьировать уровень обобщения (например,
можно использовать категорию «собака» или более конкретную категорию
породы собак — «лабрадор»). При реализации проекта ImageNet использовался краудсорсинг для ручного аннотирования каждого изображения.
Начиная с 2010 года в рамках данного проекта проводится ежегодный
конкурс ILSVRC (ImageNet Large Scale Visual Recognition Challenge —
конкурс по широкомасштабному распознаванию образов в ImageNet),
призванный стимулировать исследования в области программного
обеспечения для визуального распознавания объектов.

Вместе с тем развивались и аппаратные технологии. Так, в частности, новые
графические процессоры (GPU) для обработки компьютерной графики
и изображений (особенно игровые) уже были способны быстро производить
сложную матричную обработку — как раз то, что нужно для обучения ГНС.
Примерно с 2010 года стала возможной разработка глубоких нейронных
сетей. ГНС быстро достигли уровня точности и скорости, не уступающего,
а иногда и превосходящего человеческие способности в таких областях ИИ,
как визуальное распознавание и перевод устной речи.

Неожиданное открытие: оптические иллюзии
искусственного интеллекта
Во время активного развития и повышения точности глубоких нейронных
сетей в 2013 году К. Шегеди вместе с рядом других ученых опубликовал ста­
тью «Интригующие свойства нейронных сетей»1, которая была представлена
публике на проходившей в следующем году Международной конференции
по репрезентационному обучению (International Conference on Learning
1

Szegedy C. et al. Intriguing Properties of Neural Networks // ICLR, 2014. bit.ly/2X2nu9c.

24  Часть I. Общие сведения об обмане искусственного интеллекта
Representations, ICLR). Эта работа показала, что алгоритмы глубокого обуче­
ния можно обманом заставить выдавать некорректные результаты.
В статье были рассмотрены алгоритмы глубоких нейронных сетей для
классификации изображений. В качестве входных данных они принимают
изображение и классифицируют его по основному содержанию. Например,
изображение может быть классифицировано как «стол», если стол — основ­
ной объект в изображении. Несмотря на то что такие нейронные сети на тот
момент считались передовым подходом к классификации изображений, они
делали неожиданные ошибки, когда им на вход подавались изображения
с множеством умышленных и незаметных для человека изменений пикселей.
Хотя человек не видел в изображении никаких изменений, эти незначитель­
ные модификации заставляли нейронные сети совершать грубые ошибки
классификации.
На рис. 1.2 представлены три примера неправильно классифицированных
изображений, которые были рассмотрены в названной статье. В левом столбце
показаны исходные изображения, которые были корректно классифицирова­
ны ГНС-алгоритмом. В центральном столбце — те вредоносные искажения,
которые были созданы специально для показанных слева исходных изобра­
жений. Степень этих искажений была уменьшена путем умножения каждого
пиксельного искажения на понижающий коэффициент. После добавления
уменьшенных (и менее заметных) искажений к исходному изображению
были получены новые изображения (см. рис. 1.2, справа). Все изображения
в правом столбце были ошибочно классифицированы тем же алгоритмом
как страус (Struthio camelus), несмотря на то что для человеческого глаза они
выглядят так же, как оригиналы.
Это открытие заинтриговало не только специалистов в области ИИ, но и тех,
чья деятельность не была связана с интеллектуальными машинами. Тот факт,
что глубокие нейронные сети потенциально можно так легко обмануть, при­
влек внимание массовой прессы. В некоторых статьях данное явление было
названо оптическими иллюзиями искусственного интеллекта.
Возможно, из-за того, что нейронные сети основаны на нейробиологических
моделях и имитируют свойства человеческого интеллекта, мы и предположи­
ли, что они практически «думают», как люди. Поскольку концепции глубоких
нейронных сетей изначально навеяны упрощенными моделями синапсов
и нейронов человеческого мозга, было вполне уместным предположить, что
глубокие нейронные сети интерпретируют изображения аналогично тому,
как это делает зрительная кора головного мозга, — однако это не так. Впол­
не очевидно, что нейронные сети не классифицируют изображения путем

Глава 1. Введение   25

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

Рис. 1.2. Незначительные искажения ведут к неправильной классификации изображений.
Слева представлены исходные изображения, справа — изображения с искажениями, которые были
неверно классифицированы как страус (изображения взяты из статьи Шегеди и др. от 2014 года)

После выхода первой статьи Шегеди и др. было установлено, что такая
уязвимость к обману есть и при обработке речи и текста, а значит, данное
явление не ограничивается только областью ГНС для обработки изобра­
жений, а охватывает более широкий спектр ГНС-технологий. Учитывая
постоянный рост роли глубоких нейронных сетей в нашей жизни, это были
очень важные новости.

26  Часть I. Общие сведения об обмане искусственного интеллекта

Что такое вредоносные входные данные
В сфере обработки изображений концепция вредоносных входных данных
подразумевает создание оптических иллюзий, которым подвержен только
искусственный интеллект. Так, вредоносное изображение может быть сге­
нерировано путем добавления в изображение кошки множества, казалось
бы, неважных пикселей, которые заставят ИИ относить данное изображение
к категории «собака», но не внесут в него каких-либо заметных изменений
признаков, которые, по мнению человека, являются характерными для со­
баки. Вредоносные входные данные также могут представлять собой опреде­
ленные метки на дорожном знаке, которые будут восприниматься человеком
как граффити, но в то же время заставят автономное транспортное средство
интерпретировать знак неправильно. Можно привести примеры и из сферы
обработки аудиоданных. Например, включение в речь слабо слышимых
вредоносных команд, ведущих к существенным ошибкам винтерпретации
речи системой автоматического распознавания речи. Все эти сценарии об­
условлены самими моделями ГНС.
Термин «вредоносный образ» (adversarial example) впервые использован
Шегеди и его коллегами для описания примеров, подобных тем, что пред­
ставлены на рис. 1.2. Иногда он подразумевает входные данные, созданные
с целью заставить модель возвращать неверный результат, вне зависимости
от того, удается ли таким данным действительно обмануть нейросеть или
нет. Однако обычно этот термин подразумевает только те входные данные,
которые сумели обмануть нейросеть. В этой книге термины «вредоносные
входные данные» и «вредоносный образ» используются как синонимы, под­
разумевая входные данные, которые успешно обманывают нейросеть, за­
ставляя ее выдавать предсказания, которые являются неверными с точки
зрения человека. Соответственно, под невредоносными входными данными
тут подразумеваются данные, которым не удается обмануть нейросеть, даже
если они были созданы с вредоносной целью.
Вредоносное ПО как вредоносные входные данные
В настоящее время растет интерес к использованию нейронных сетей
для выявления вредоносного ПО, поскольку присущая программному
обеспечению вариабельность и постоянное развитие вредоносного ПО
не позволяют четко определить, какие признаки программного обеспечения могут указывать на наличие угрозы.

Глава 1. Введение   27

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

В этой книге мы сосредоточимся на моделях ГНС, предназначенных для
обработки цифровых представлений визуальной и звуковой информации,
с обработкой которой так легко справляется наш биологический мозг. Изо­
бражения и аудиоданные представляют собой непрерывные данные, включая
пиксели и звуковые частоты с непрерывным распределением значений.
В отличие от них такие виды сложных данных, как текст, представляют со­
бой дискретные данные и не состоят из количественно измеримых величин.
В дискретной предметной области сложнее создать вредоносный образ, ко­
торый мог бы оставаться незамеченным, поскольку в такой области трудно
количественно измерить «небольшое» изменение. Так, например, небольшое
изменение в слове может быть малозаметным, когда оно выглядит как опе­
чатка, либо явным, когда оно придает слову совершенно другой смысл.
В случае систем искусственного интеллекта для обработки изображений
и аудиоданных «неправильный» результат не всегда отличается от того,
что воспринимает человек — иногда вредоносному образу удается также
обмануть и биологический (человеческий) интеллект. Возникает вопрос:
должен ли ИИ интерпретировать мир точно так же, как это делаем мы? Как
правило, нам не нужно, чтобы ИИ имитировал человеческое мышление
до такой степени, чтобы при этом дублировались и ошибки человеческого
восприятия. Большинство вредоносных образов, рассматриваемых в этой
книге, не может обмануть человеческий мозг — биологическую нейронную
сеть. Эти примеры демонстрируют модели угроз и подчеркивают различие
между искусственным и человеческим интеллектом.
Хотя любой алгоритм машинного обучения в какой-то мере уязвим к вредо­
носным входным данным, глубокие нейронные сети обладают повышенной
степенью уязвимости, поскольку они лучше справляются с задачами, в кото­
рых трудно четко определить, по каким признакам данных следует произво­
дить обучение. То есть мы слабо представляем, какие аспекты данных важны
для алгоритма ГНС, или не понимаем этого вообще. Если мы не понимаем,
на основе каких аспектов данных алгоритм принимает решения, то можем ли
мы надеяться на проведение хороших тестов для проверки устойчивости

28  Часть I. Общие сведения об обмане искусственного интеллекта
алгоритмов? Вредоносные входные данные используют то обстоятельство,
что модели глубокого обучения, как правило, имеют дело с миллионами
возможных вариантов входных данных, основываясь лишь на небольшом
количестве изученных примеров1. Обученные модели должны одновременно
обладать и достаточной гибкостью, чтобы справляться с вариабельностью
данных, и способностью обобщать новые данные. Как следствие, поведение
глубокой нейронной сети остается непроверенным для большинства воз­
можных входных данных и часто может быть неожиданным.
Шегеди и его коллеги описали так называемую искажающую атаку, однако
существуют и другие методы обмана глубоких нейронных сетей. В следу­
ющих разделах вы познакомитесь с некоторыми разновидностями таких
методов и основной терминологией, используемой в области вредоносных
входных данных.

Вредоносное искажение
Образы, представленные на рис. 1.2, являются примером так называемой искажающей атаки — генерации вредоносных изображений путем создания точно
рассчитанных модификаций исходного изображения, меняющих каждый
пиксель на очень маленькую величину. Еще один способ такой атаки — внести
более существенные изменения в несколько тщательно отобранных пикселей.
Количество изменяемых пикселей и величина изменений, вносимых в каждый
пиксель, могут варьироваться, однако общий эффект от изменений всегда
остается незначительным, чтобы эти изменения не были заметны человеку.
Искажение может казаться случайным, не являясь таковым; изменение каж­
дого пикселя досконально подбирается таким образом, чтобы был получен
желаемый результат. Далее в этой книге будет показано, как рассчитываются
такие искажения для получения вредоносных входных данных.
Вредоносные искажения могут создаваться не только для изображений.
Аналогичные методы применяются, например, и для аудиоданных (рис. 1.3).
При этом используется тот же принцип — в аудиоданные вносятся неболь­
шие изменения с целью внести ошибку в вычисления ГНС. Однако в то
время, как во вредоносных изображениях используется пространственное
измерение для внесения искажений в пиксели, во вредоносных аудиоданных
производится искажение частот, распределенных по времени.
1

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

Глава 1. Введение   29

Так, например, незначительные и незаметные для человека изменения часто­
ты голоса на протяжении речевого сегмента могут привести к неправильной
интерпретации предложения моделями преобразования речи в текст1.

Рис. 1.3. Вредоносные искажения, вносимые в изображение с целью обмануть классификатор
изображений и в аудиоданные с целью обмануть систему преобразования речи в текст

Неестественные вредоносные входные данные
В 2015 году Нгуен (Nguyen) совместно с другими исследователями опубли­
ковал статью под названием «Глубокие нейронные сети можно легко обма­
нуть: высоковероятные предсказания для нераспознаваемых изображений»2.
Исследование показало, что, когда неважен реализм изображения, могут
генерироваться вредоносные данные, не похожие совершенно ни на что,
которые с высокой степенью вероятности будут классифицироваться глу­
бокими нейронными сетями. На рис. 1.4 показаны некоторые примеры,
приведенные в этой статье.
1

Carlini N., Wagner D. Audio Adversarial Examples: Targeted Attacks on Speech-to-Text //
IEEE Deep Learning and Security Workshop, 2018. bit.ly/2IFXT1W.

2

Nguyen A. et al. Deep Neural Networks Are Easily Fooled: High Confidence Predictions for
Unrecognizable Images // Computer Vision and Pattern Recognition, 2015. bit.ly/2ZKc1wW.

30  Часть I. Общие сведения об обмане искусственного интеллекта

Рис. 1.4. Сгенерированные компьютером вредоносные образы, не распознаваемые
человеком, и категории, к которым они были отнесены современными ГНС
(изображение из статьи Нгуена и др. от 2015 года)

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

Глава 1. Введение   31

Вредоносная заплатка
Вместо того чтобы создавать вредоносный образ путем распределения из­
менений по всем входным данным, злоумышленники также могут сфоку­
сироваться на какой-то одной области и тем самым отвлечь внимание ГНС
от тех аспектов данных, которые она должна рассматривать.
Вредоносные заплатки представляют собой тщательно подобранные «на­
клейки», которые накладываются на данные. Эти заплатки отвлекают вни­
мание глубокой нейронной сети от релевантных аспектов входных данных,
заставляя ее выдать неверный результат. На рис. 1.5 представлен пример
вредоносной заплатки, сгенерированной исследователями
компании Google. Эта «наклейка» математически оптими­
зирована так, чтобы с точки зрения ГНС представлять собой
более заметный признак, по сравнению с объектом, существу­
ющим в реальном мире, что с высокой степенью вероятности
обеспечит ошибку классификации.

Рис. 1.5. Сгенерированная компьютером вредоносная заплатка, которая с высокой степенью вероятности
ведет к ошибочному отнесению банана к категории «тостер» (из статьи Брауна и др. от 2017 года1)
1

Brown T. B. et al. Adversarial Patch. 2017. bit.ly/2IDPonT.

32  Часть I. Общие сведения об обмане искусственного интеллекта
Хотя такое вредоносное изменение очевидно для человека, он может не при­
дать этому значения, особенно если оно не очень бросается в глаза и не влияет
на общую интерпретацию изображения. Так, например, заплатка может быть
помещена у края изображения и маскироваться под логотип. В данном случае
вряд ли можно отнести изображение к категории «тостер» вместо категории
«банан» еще и в силу того, что заплатка была специально сделана заметной
для ГНС, но не для человека.
Теперь посмотрим, как этот принцип действует для аудиоданных. Аудио­
заплатка представляет собой звуковой клип, который является достаточно
коротким или достаточно тихим для того, чтобы его проигнорировал слуша­
тель-человек. Подобно тому как для вредоносной заплатки на изображении
необходимо подобрать оптимальный размер и пространственное располо­
жение, для аудиозаплатки требуется подобрать подходящее расположение
во времени и интенсивность. Принцип действия вредоносных заплаток для
изображений и аудиоданных показан на рис. 1.6.

Рис. 1.6. Вредоносные заплатки, помещаемые на изображение с целью обмануть классификатор
изображений и в аудиоданные с целью обмануть систему для преобразования речи в текст

Глава 1. Введение   33

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

Вредоносные образы в физическом мире
Вредоносный образ, представленный на рис. 1.2, был сгенерирован путем
цифровых манипуляций; в этом случае путем изменения данных изображе­
ния на уровне пикселей. Однако это предполагает, что у злоумышленника
должен быть доступ к цифровому формату тех данных, которые передаются
модели — как, например, в том случае, когда злоумышленник загружает
цифровое изображение (допустим, в формате JPEG) на веб-сайт, произво­
дящий его обработку.
Во многих случаях злоумышленник может получить доступ только к фи­
зическому миру1, чтобы повлиять на данные, поступающие на восприни­
мающее устройство (такое как микрофон или камера), которое генери­
рует цифровые данные. При этом злоумышленник может использовать
сгенерированные цифровые вредоносные заплатки в виде двумерных или
даже трехмерных объектов в пределах сцены. Шариф и др. успешно про­
демонстрировали этот принцип в статье «Аксессуары для преступления:
реальные скрытые атаки на современные системы распознавания лиц» 2,
используя вредоносные очки, позволяющие надевшему их человеку вызвать
сбой в работе программного обеспечения для распознавания лиц. Пример
таких очков показан на рис. 1.7.
Когда у злоумышленника нет возможности повлиять на цифровое представ­
ление данных, ему, безусловно, гораздо труднее осуществить искажающую
атаку. Часто приведенный в качестве примера сценарий вредоносной атаки
в физическом мире состоит в изменении окружающей среды таким образом,
чтобы автономное транспортное средство приняло неправильные решения
в отношении рулевого управления, ответной реакции, скорости и т. д. после
1

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

2

Sharif M. et al. Accessorize to a Crime: Real and Stealthy Attacks on State-of-the-Art
Face Recognition // Proceedings of the 2016 ACM SIGSAC Conference on Computer
and Communications Security, 2016. bit.ly/2x1Nebf.

34  Часть I. Общие сведения об обмане искусственного интеллекта
обработки полученных камерой видеоданных. Это означает, что поведение
транспортного средства может измениться при изменении дорожной раз­
метки, окраски других транспортных средств или дорожных знаков. Эйкхолт
с коллегами доказал возможность проведения вредоносных атак в реальном
мире с использованием принципов искажающей атаки1.

Рис. 1.7. Вредоносные очки, созданные с целью обмануть системы распознавания лиц
(изображение из статьи Шарифа и др. от 2016 года)

На рис. 1.8 приведены примеры искажающей атаки с использованием обыч­
ного дорожного знака остановки. Данная атака заставляет ГНС неправильно
интерпретировать знак, следовательно, потенциально может обмануть авто­
номное транспортное средство.

Рис. 1.8. Физическое искажение знака остановки может обмануть автономное транспортное средство,
использующее видеоданные (изображение из статьи Эйкхолта и др. от 2018 года)
1

Eykholt K. et al. Robust Physical-World Attacks on Deep Learning Visual Classification //
Computer Vision and Pattern Recognition, 2018. bit.ly/2FmJPbz.

Глава 1. Введение   35

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

Вредоносное машинное обучение
в более широком смысле
В данной книге рассматриваются вредоносные образы для нейронных сетей,
обрабатывающих изображения и аудиоданные. Однако эти примеры являют­
ся составной частью более широкой группы атак, называемой вредоносным
машинным обучением (вредоносным МО). Этот термин включает в себя все
виды потенциальных атак на алгоритмы машинного обучения (ГНС и более
классические алгоритмы машинного обучения) и все типы данных2.
Вредоносные образы иногда (правильно) называют атаками уклонения,
подразумевая под этим модификацию входных данных с целью избежать
их распознавания алгоритмом МО. Однако вредоносные входные данные
могут использоваться не только для уклонения. Хотя большинство рассма­
триваемых в этой книге атак являются атаками уклонения, некоторые из
них таковыми не являются. Так, например, злоумышленник может напра­
вить в систему поток вредоносных образов, заставляющих ее генерировать
множество ложноположительных результатов, что потенциально может
привести к отказу в обслуживании.
1

Carlini, Wagner. Audio Adversarial Examples.

2

Впервые услышав выражение «вредоносное машинное обучение», можно ошибочно
подумать, что подразумевается машинное обучение, используемое злоумышленником
для атаки на систему.

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

Последствия воздействия
вредоносных входных данных
Модели ГНС широко используются в современном мире для решения задач
в нашей повседневной жизни. Кроме того, системы ИИ, которые содержат
эти модели, часто обрабатывают данные, не имея контроля над ними (на­
пример, получая входные данные из цифровых онлайн-источников или из
физического мира). Вот несколько примеров таких систем:
‰‰ системы распознавания лиц для контроля доступа или видеонаблюдения;
‰‰ веб-фильтры для выявления загруженных на сервер изображений, нося­
щих непристойный или оскорбительный характер;
‰‰ автономные транспортные средства, действующие в неограниченной
физической среде;
‰‰ выявление обмана телефонных систем с голосовым управлением;
‰‰ виртуальные ассистенты с голосовым управлением.
Если ГНС можно так легко обмануть с помощью вредоносных образов,
не представляет ли это киберугрозу для решений на базе ИИ, которые
получают данные из ненадежных источников? Насколько большую угрозу
представляют вредоносные входные данные для безопасности и целостности
систем, используемых в повседневной жизни? И наконец, к каким стратегиям
снижения риска могут прибегнуть разработчики таких систем, чтобы предот­
вратить использование злоумышленниками этого направления атаки?

Глава 1. Введение   37

Чтобы ответить на эти вопросы, нужно разобраться с тем, что движет зло­
умышленниками и какими возможностями они обладают. Необходимо по­
нять, почему глубокие нейронные сети уязвимы к вредоносным входным
данным и каким образом их можно сделать менее подверженными такому
обману. И, кроме того, нужно понять, составной частью какой последователь­
ности обработки являются ГНС, как эта обработка может сделать системы
более (или менее) устойчивыми к атакам. На сегодняшний день пока нет
ни одного известного способа сделать ГНС абсолютно устойчивой к вредо­
носным входным данным, однако понимание этой проблемы и с позиции
злоумышленника, и с позиции защищающейся организации позволяет раз­
работать более эффективные меры защиты.
Вредоносные входные данные представляют интерес с еще одной точки
зрения: различия в том, как обрабатывают информацию человек и ГНС,
показывают разницу между биологическими и искусственными нейронны­
ми сетями. Несмотря на то что глубокие нейронные сети были изначально
навеяны нейробиологическими моделями и в относящейся к ним терми­
нологии присутствует слово «нейронный», дисциплина разработки эффек­
тивного глубокого обучения стала главным образом сферой деятельности
математиков и специалистов по анализу и обработке данных. ГНС, по сути,
представляет собой сложную математическую функцию, которая принимает
входные данные и генерирует результат. А обучение модели ГНС — это фак­
тически задача математической оптимизации, направленная на итеративное
изменение параметров сложной функции для максимального повышения
ее точности. Уже сам факт наличия вредоносных входных данных говорит
о принципиальной ошибочности представления о том, что ГНС воплощает
в себе модель, приближенную к человеческому мышлению.
Наконец, не следует забывать и о риске внесения в компьютерную систему
разрушающего, мошеннического или вредоносного поведения в том случае,
если какой-либо алгоритм системы может дать сбой при обработке непро­
веренных входных данных. Обеспечение устойчивости компьютерной си­
стемы к вредоносным входным данным должно быть неотъемлемой частью
процесса обеспечения качества компьютерной системы, имеющей в своем
составе алгоритмы машинного обучения.

Глава 2

Мотивация к атакам
Сегодня технологии на базе глубоких нейронных сетей уже прочно вошли
в нашу жизнь. Например, такие виртуальные помощники, как Amazon Alexa,
Apple Siri, Google Assistant и Microsoft Cortana, используют модели глубо­
кого обучения для понимания речевых аудиоданных. Многие алгоритмы
для обеспечения и контроля сетевых взаимодействий (таких как веб-поиск)
основаны на глубоких нейронных сетях для распознавания тех данных, ко­
торыми они оперируют. Модели глубокого обучения все чаще используются
в областях применения с высокими требованиями к безопасности, таких как
автономные транспортные средства.
Многие технологии на базе ИИ получают данные непосредственно из
физического мира (например, с камер) или используют цифровые пред­
ставления данных, предназначенные для человека (например, изображения,
загружаемые на сайты социальных сетей). Это потенциально может вести
к проблемам, поскольку при обработке данных из ненадежных источников
любая компьютерная система становится уязвимой к атакам. За созданием
вредоносных входных данных, использующих эти уязвимости, могут стоять
самые разные мотивы, однако их можно разделить на следующие основные
категории.
‰‰ Уклонение. Сокрытие контента от автоматического цифрового анализа.
Примеры см. в разделах «Обход веб-фильтров» на с. 39, «Камуфляж
против видеонаблюдения» на с. 42 и «Личная конфиденциальность
в Интернете» на с. 43.
‰‰ Влияние. Воздействие на автоматизированные решения для получения
личной, коммерческой или организационной выгоды. Примеры см. в раз­
деле «Репутация в Интернете и управление брендом» на с. 41.
‰‰ Дезориентация. Создание хаоса с целью дискредитировать или нарушить
работу организации. Примеры см. в разделах «Дезориентация автономных
транспортных средств» на с. 44 и «Устройства с голосовым управлением»
на с. 46.

Глава 2. Мотивация к атакам   39

В данной главе приведено несколько примеров возможной мотивации для
создания вредоносных образов. Это далеко не полный список, но он дает
представление о характере и разнообразии типов угроз.

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

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

Рис. 2.1. Изображения, загружаемые на сайт социальной сети, могут подвергаться обработке
и проверке искусственным интеллектом перед их добавлением на сайт

Злоумышленник может использовать еще один подход. Если обойти вебфильтр загрузок невозможно, почему бы тогда просто не засыпать его
множеством данных, обеспечивающих дезориентацию и дополнительные
расходы для организации, обеспечивающей защиту? Принимаемое ис­
кусственным интеллектом решение о том, следует ли считать загружаемые
данные «оскорбительными», обычно не является исключительно бинарным.
Это скорее будет статистическая оценка вероятности с некоторым порого­
вым значением. Организации часто используют модерацию человеком для
проверки изображений или данных, оценка которых близка к пороговому
значению. Поэтому генерация большого количества неопасных данных,
классифицируемых искусственным интеллектом как возможно опасные,

Глава 2. Мотивация к атакам   41

негативно скажется на оперативных возможностях организации и может
снизить степень уверенности в точности результатов, выдаваемых искус­
ственным интеллектом.
Если человеку трудно точно установить, почему данные были оценены как
возможно нарушающие политику (поскольку они выглядят как неопасные),
то большой наплыв данных потребует больших затрат времени и человече­
ских ресурсов — по сути, это атака типа «отказ в обслуживании».

Репутация в Интернете и управление брендом
Поисковые системы представляют собой сложные алгоритмы, которые
не только решают, какие результаты следует отобразить в ответ на запрос,
например, «кот на скейтборде», но и определяют последовательность этих
результатов. Очевидно, что с коммерческой точки зрения лучше, если ре­
зультат находится в начале списка. В силу этого компании мотивированы
к тому, чтобы выяснить принцип действия алгоритмов поисковых систем
и добиться того, чтобы их реклама отображалась на первой странице поис­
ковой системы Google или Bing и была хорошо заметна при ее размещении
на веб-страницах. Такая оптимизация в поисковых системах (search engine
optimization, SEO), или просто поисковая оптимизация, является стандарт­
ной отраслевой практикой уже в течение многих лет. SEO играет ключевую
роль в стратегии интернет-маркетинга.
Поисковые системы могут использовать специальных роботов для просеи­
вания и индексирования страниц для отображения в результатах поиска на
основе HTML-метаданных страницы, ее входящих ссылок и содержимого.
Поисковые роботы представляют собой автоматизированные системы на
основе ИИ, работающие без вмешательства человека. Поскольку информация
заголовков легко поддается изменению, поисковые системы обычно больше
полагаются на содержимое. Индексация на основе содержимого также делает
возможным поиск с использованием менее распространенных ключевых
слов, которые не всегда включаются в метаданные.
Характеристики страниц, основанные на их содержимом, особенно интерес­
ны в контексте вредоносных образов. Поскольку обновление изображений
веб-сайта может повлиять на его позицию в результатах поисковой системы,
у компании, желающей повысить видимость сайта для целевой аудитории,
возникает мотив использовать вредоносные искажения или заплатки для
изменения или подкрепления категории изображений без изменения вос­
приятия их человеком.

42  Часть I. Общие сведения об обмане искусственного интеллекта
Существует и более злонамеренный вариант атаки: стремясь подорвать
доверие к организации или отдельному человеку, злоумышленник может
сгенерировать вредоносные изображения, ведущие к ошибочной ассоциации
объекта атаки с чем-то вредящим его репутации. Так, например, вредонос­
ные изображения шоколадного батончика могут быть ошибочно классифи­
цированы поисковой системой как «яд» и включены в число результатов,
выдаваемых при поиске изображений ядов. Даже такая неявная ассоциация
может серьезно сказаться на восприятии бренда потребителями.

Камуфляж против видеонаблюдения
Камеры видеонаблюдения получают свои данные из физического мира,
что заставляет взглянуть на вредоносные входные данные с совершенно
иной точки зрения по сравнению с предыдущими примерами. В данном
случае цифровой контент генерируется на основе данных воспринимающего
устройства (камеры) и не может изменяться посторонними лицами, которые
не являются сотрудниками организации1.
Хотя цифровые данные видеонаблюдения (видеозаписи или неподвижные
кадры) часто по-прежнему отслеживаются людьми, эта задача становится все
более трудноосуществимой из-за возрастания объема информации и затрат
времени на ее обработку. В большинстве случаев данные видеонаблюдения
можно не отслеживать активно в режиме реального времени, а анализи­
ровать позднее в медленном режиме (как, например, при расследовании
преступлений). Организации все чаще прибегают к автоматизированным
методам отслеживания или к сортировке данных с камер видеонаблюдения
с использованием технологий на базе ИИ, например, для автоматического
распознавания в данных видеонаблюдения конкретных лиц или транспорт­
ных средств с выдачей соответствующих оповещений.
Не нужно много фантазии, чтобы вообразить сценарии, в которых у зло­
умышленника может возникнуть желание обхитрить систему. Цель зло­умыш­
ленника может состоять в том, чтобы создать своего рода «плащ-невидимку»,
способный обмануть ИИ, не привлекая лишнего внимания человека. При этом
обычно достаточно просто не допустить активации (генерации) искусствен­
ным интеллектом тревожного сигнала, влекущего за собой тщательную про­
верку изображения или видеозаписи человеком. Например, злоумышленник
может постараться обмануть систему распознавания лиц в режиме реального
1

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

Глава 2. Мотивация к атакам   43

времени, используемую службой безопасности аэропорта. Точно так же недо­
пущение распознавания подозрительной активности системой обнаружения
угроз в режиме реального времени дает злоумышленнику больше возможно­
стей для совершения противоправных действий. При рассмотрении данных
не в режиме реального времени может выявиться, что камеры видеонаблюде­
ния зафиксировали информацию, относящуюся к преступлению, такую как
лица преступников, номерные знаки и т. д., которую можно использовать для
поиска на основе свидетельских показаний после совершения преступления.
Скрыв эту информацию от ИИ, преступник может сделать выявление пре­
ступления менее вероятным.
Конечно, в основе такого обмана могут лежать не только криминальные мо­
тивы. В мире, где отслеживается все и вся, люди стремятся закамуфлировать
заметные черты лица от ИИ, чтобы сохранить личную конфиденциальность.
Для достижения этой цели может использоваться, в частности, нейтральная
одежда или макияж, что позволит привести правдоподобное отрицание про­
тив обвинений в намеренном обмане системы видеонаблюдения, объясняя
ее неправильное функционирование просто как сбой в работе1.
Существует еще один интересный сценарий: что, если злоумышленник
внесет в реальном мире физические изменения, которые не будут казаться
опасными и вредоносными для человека, но заставят систему видеонаблю­
дения поднять ложную тревогу? Это позволит злоумышленнику отвлечь
ресурсы организации в ложном направлении, чтобы совершить реальное
преступление в каком-либо другом месте.

Личная конфиденциальность в Интернете
Многие платформы социальных сетей для улучшения взаимодействия с поль­
зователем извлекают информацию из загружаемых на сайт изображений.
Так, например, Facebook регулярно извлекает и идентифицирует лица на
изображениях для более эффективной разметки изображений, выполнения
поиска и рассылки уведомлений.
Опять же пользователь, желающий сохранить личную конфиденциальность,
может изменить изображения таким образом, чтобы затруднить распозна­
вание лиц для использующегося платформой искусственного интеллекта.
Для камуфлирования лиц от ИИ могут вноситься такие изменения, как
наложение вредоносных заплаток на край изображения.
1

Sharif et al. Accessorize to a Crime.

44  Часть I. Общие сведения об обмане искусственного интеллекта

Дезориентация автономных транспортных средств
Широко известным примером использования ИИ являются автономные
транспортные средства, которые относятся к системам с высокими требо­
ваниями к безопасности. Такие транспортные средства функционируют
в неупорядоченном, неограниченном и постоянно меняющемся физическом
мире. Уязвимость к вредоносным входным данным может при этом привести
к катастрофическим последствиям.
Автономными могут быть не только автомобили. Сегодня автономность по­
лучает все более широкое распространение на море, в воздухе и под водой.
Автономные транспортные средства также используются в ограниченных
и закрытых окружениях, таких как производственные помещения, для вы­
полнения основных или, возможно, опасных задач. Даже при таком огра­
ниченном окружении существует риск получения с камеры вредоносных
входных данных, внесенных сотрудником организации (внутренняя угроза)
или лицом, получившим доступ к рабочей зоне системы. В то же время не сле­
дует забывать о том, что, как правило, автономные транспортные средства
контролируют физическое окружение, руководствуясь не только данными
воспринимающего устройства. Большинство автономных систем получает
информацию из нескольких источников, которые могут включать:
‰‰ внебортовые данные. Большинство автономных транспортных средств
руководствуется данными, получаемыми из одного или нескольких вне­
бортовых централизованных источников1. Внебортовые данные включают
в себя сравнительно статичную информацию (карты и скоростные огра­
ничения), централизованно собираемые динамические данные (например,
сведения об интенсивности дорожного движения) и данные, относящиеся
к конкретному транспортному средству (например, его GPS-координаты).
Все эти типы источников данных уже используются в таких приложениях
для GPS-навигации, как Waze, Google Maps и HERE WeGo.
В других областях применения могут использоваться иные виды внебор­
товых данных. Например, в сфере морских перевозок широко применя­
ется автоматическое отслеживание координат морских судов по данным
автоматических идентификационных систем (АИС). С помощью этих
систем корабли регулярно передают в режиме реального времени свои
идентификационные данные и координаты, что позволяет органам мор­
ской власти следить за их передвижением;
1

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

Глава 2. Мотивация к атакам   45

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

Рис. 2.2. Автономное транспортное средство может корректировать свое положение на дороге на основе
данных камеры

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

46  Часть I. Общие сведения об обмане искусственного интеллекта
транспортного средства — например, они могут парализовать работу до­
рожной сети, усеяв дорогу множеством неопасных с виду наклеек, ошибочно
интерпретируемых как опасные объекты.

Устройства с голосовым управлением
Голосовое управление предоставляет естественный бесконтактный способ
управления многими аспектами нашей жизни. С его помощью можно вы­
полнять широкий круг задач — от управления мультимедийными устрой­
ствами и домашней автоматизации до поиска товаров и совершения покупок
в Интернете. Такие устройства с голосовым управлением, как смартфоны,
планшеты и голосовые помощники, постепенно занимают прочное место
в нашем доме. Лежащая в основе этих устройств обработка речи осуществля­
ется с помощью продвинутых технологий на базе ГНС и отличается высоким
уровнем точности. На рис. 2.3 показано, как может выглядеть простейшая
последовательность обработки для устройства с голосовым управлением.

Рис. 2.3. Виртуальный помощник использует ИИ для обработки речевых данных и выдачи
соответствующего ответа

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

Глава 2. Мотивация к атакам   47

в работе голосового помощника они тем не менее могут подорвать доверие
к нему со стороны пользователей. Помощник, который ведет себя непред­
сказуемо, будет раздражать пользователей и в конечном итоге вызовет у них
отвращение. А если устройство утратит доверие пользователей в домашнем
окружении, ему будет очень сложно заслужить его снова. Потенциально
скрытые команды могут оказаться и не столь безобидными — например, они
могут самопроизвольно отправить СМС или сделать запись в социальной
сети, изменить настройки устройства, выполнить переход по вредоносной
ссылке или изменить настройки домашней системы безопасности.
Для выполнения функций, которым необходим повышенный уровень
безопасности, голосовые помощники требуют дополнительных мер безопас­
ности, чтобы не допустить их случайного или умышленного неправильного
использования. Помощник может спросить: «Вы действительно хотите
приобрести экземпляр книги “Надежность нейронных сетей”?» После этого
будет ожидать подтверждения покупки. Вы вряд ли скажете «да» в нужный
момент, если эта покупка не была инициирована вами, хотя такое и не ис­
ключено. В то же время если есть возможность дать голосовому помощнику
вредоносную команду, то также существует и возможность дать ему вредо­
носный ответ, конечно, при условии, что поблизости не будет никого, кто бы
услышал запрос на подтверждение.
Важной особенностью здесь является то, что вредоносные образы не всегда
действительно наносят вред — они могут использоваться в развлекательных
целях как дополнительный способ передачи команд. С их помощью можно
не только причинить вред, но и извлечь коммерческую выгоду.
Представьте, что вы запаслись попкорном и сели перед телевизором, что­
бы еще раз посмотреть фильм «Сияние». Однако вы решили посмотреть
не обычную версию этого фильма ужасов, а версию с «интегрированной
поддержкой домашнейавтоматизации». Эта версия с расширенной муль­
тимедийной поддержкой содержит вредоносные аудиоданные — скрытые
сообщения для вашей системы домашней автоматизации, призванные
расширить ощущения от просмотра. Так, в какой-то момент в доме может
громко хлопнуть дверь, отключиться свет или, возможно, даже отопление
(чтобы вы немного похолодели от ужаса)...
Что ж, на этой слегка тревожной ноте перейдем к следующей главе, где рас­
смотрены основные понятия ГНС.

Глава 3

Основные понятия ГНС
В данной главе рассмотрены базовые концепции ГНС-моделей, а именно та
разновидность машинно-обучаемых моделей, которая обычно используется
для обработки изображений и аудиоданных. Понимание базовых идей по­
зволит вам лучше усвоить дальнейшее содержание книги, где вредоносные
образы рассматриваются более подробно. После вводной информации далее,
в главе 4, рассматриваются модели интерпретации сложных изображений,
аудио- и видеоданных. В двух главах изложено достаточно информации для
понимания дальнейшего материала о вредоносных образах, но в то же время
это не исчерпывающие сведения о глубоком обучении.
Если вы уже знакомы с принципами глубокого обучения и нейронных сетей,
вы можете пропустить эту главу и главу 4. Если же, наоборот, хотите узнать
больше, чем требуется для понимания этой книги, то в сети Интернет су­
ществует множество прекрасных ресурсов, с помощью которых вы сможете
составить более четкое представление о машинном обучении и нейронных
сетях. Ссылки на некоторые интернет-ресурсы можно найти в GitHubрепозитории этой книги (bit.ly/2x5Kg5I).
В конце этой главы приведены несколько фрагментов кода на языке Python.
Как и во всех остальных главах этой книги, чтение кода является необяза­
тельным для понимания изложенного материала (в том числе описания
вредоносных образов). Если же вас, наоборот, заинтересуют примеры кода,
я рекомендую вам также скачать некоторые из блокнотов Jupiter, предо­
ставленных в соответствующем GitHub-репозитории, и попробовать по­
экспериментировать с ними.

Машинное обучение
Глубокие нейронные сети относятся к более обширной категории машинного
обучения; это способность машин обучаться извлечению паттернов из дан­
ных без явного кодирования правил этих паттернов. Алгоритм, получаемый
в результате такого обучения, называется моделью.

Глава 3. Основные понятия ГНС   49

Модель представляет собой математический алгоритм, параметры которо­
го скорректированы для обеспечения оптимального поведения. Алгоритм
обучается за счет многократного представления ему обучающих данных,
каждый отдельный фрагмент которых является примером того, чему необ­
ходимо обучиться. Каждый обучающий пример обеспечивает постепенное
улучшение модели за счет коррекции ее параметров. После проведения
надлежащей коррекции алгоритма он считается обученным. Затем обычно
проводится оценка точности модели на тестовом наборе данных, отличном от
обуча­ющего набора данных. При этом ожидается, что модель будет хорошо
решать определенную задачу в отношении данных, не содержавшихся в ис­
ходном обучающем наборе, что будет свидетельствовать о ее способности
работать с незнакомыми данными.
Даже традиционное машинное обучение (без использования нейронных
сетей) позволяет создавать модели для решения достаточно сложных задач.
Например, с помощью обучающих данных, отражающих множество раз­
личных характеристик растений (таких как высота, форма листьев, окраска
цветков и т. д.) и соответствующие таксономические категории, можно на­
учить модель машинного обучения определять, к какому роду относится
то или иное растение, на основе предоставленного списка характеристик.
Хотя принадлежность растения к определенному роду может определяться
сложным сочетанием характеристик, при использовании достаточного ко­
личества обучающих примеров и надлежащего метода машинного обучения
полученная в итоге обученная модель сможет классифицировать растения,
не требуя, чтобы программист явно кодировал (или даже понимал) взаимо­
связь между различными характеристиками и родами растений.
Как уже упоминалось в главе 1, существует несколько основных стратегий
обучения МО-моделей.
‰‰ Обучение с учителем. Пример с классификацией растений относится
к категории «обучение с учителем», поскольку в данном случае модель
обучается с помощью характеристик и соответствующих меток, отража­
ющих правильный ответ (род).
‰‰ Обучение без учителя. Осуществляется без использования меток на этапе
обучения. Модели не предоставляются точные ответы — она учится само­
стоятельно выявлять в данных паттерны, аномалии или связи. Модель,
обучаемая с помощью данных о растениях без соответствующих меток,
может научиться группировать растения на основе часто встречающих­
ся сочетаний характеристик. После этого обученная модель сможет

50  Часть I. Общие сведения об обмане искусственного интеллекта
(оценивая характеристики) определять, что новое растение относится
к той или иной группе или, возможно, что новое растение не может быть
отнесено к известным модели группам (то есть выявлять аномалию).
‰‰ Обучение с частичным привлечением учителя. Как вы могли догадаться,
обучение с частичным привлечением учителя представляет собой чтото среднее между обучением с учителем и обучением без учителя, при
котором лишь часть обучающих данных снабжена метками. Обычно
сначала используются неразмеченные данные для выявления паттернов,
а затем — размеченные данные, чтобы повысить точность модели.
‰‰ Обучение с подкреплением. При обучении с подкреплением МО-модель вы­
дает некоторый фидбэк, позволяющий оценить ее эффективность. Модель
корректируется для оптимального достижения определенной цели (такой
как победа в видеоигре) путем многократных попыток достичь цели на
основе фидбэка (например, количественного показателя эффективности)
и внесением соответствующих поправок в используемый подход.
В большинстве случаев в данной книге будет идти речь о моделях, в которых
используется обучение с учителем, поскольку именно в этой области пока
сосредоточена большая часть исследований, посвященных вредоносным
входным данным. Однако концепции вредоносных образов в той же мере
справедливы и для моделей, использующих обучение без учителя, обучение
с частичным привлечением учителя и обучение с подкреплением.

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

Глава 3. Основные понятия ГНС   51

ния часто находятся неструктурированные первичные данные, получаемые
из реального мира, например изображения или аудиоданные. Цифровое
изображение обычно содержит тысячи пиксельных значений, где каждый
отдельный пиксель не представляет важности сам по себе; заключенный
в изображении смысл основан на сложных пространственных взаимосвязях
между пикселями. Подобно этому, аудиоданные представляют собой по­
следовательность распределенных по времени значений, каждое из которых
не представляет важности в отдельности. Звук интерпретируется тем или
иным образом в зависимости от порядка следования этих значений и вели­
чины интервала между ними.
С задачей обработки визуальных и звуковых данных очень хорошо справ­
ляется биологическая нейронная сеть мозга людей и животных. Области
мозга, отвечающие за обработку визуальной и звуковой информации, из­
влекают актуальную информацию из первичных данных, получаемых нами
с помощью глаз и ушей. Обработка звуковых и визуальных данных дается
нам настолько легко, что трудно понять, почему эта задача представляет
сложности для машины.
В качестве простейшего примера рассмотрим распознавание кошки. В данном
случае машине нужно определить границы объекта с учетом окклюзии и за­
тенения, а затем распознать характерные для кошки признаки, что в целом
очень сложно. В то же время для человека эта задача не представляет какихлибо трудностей. Мы можем распознать кошку, располагая минимальной
информацией, — по форме хвоста или лапы или просто по характеру дви­
жения. Мы можем распознать кошку даже в том случае, если она относится
к неизвестной нам породе.
Точно так же обстоит дело с аудиоданными. Люди могут распознавать
звуки и понимать речь, не прилагая к этому каких-либо усилий. Мы от­
фильтровываем и игнорируем фоновый шум, фокусируясь на актуальных
деталях. Интерпретируя речь, мы улавливаем сложные последовательности
различных звуков и трактуем их в зависимости от контекста. Однако для
компьютера это нетривиальная задача, поскольку цифровое содержимое
звукового файла часто носит сложный и неупорядоченный характер, включая
множество разнообразных помех.
Мы, люди, легко справляемся с обработкой визуальных и звуковых дан­
ных. При этом часто даже не можем объяснить, какие признаки и паттерны

52  Часть I. Общие сведения об обмане искусственного интеллекта
характерны для кошки или какие сочетания звуков входят в то или иное
предложение. Наш мозг каким-то образом запоминает эти признаки и пат­
терны, и мы просто применяем выученный алгоритм в повседневной жизни,
считая это чем-то тривиальным. Однако написать код, который бы адекватно
учитывал все сценарии, возможные в физическом мире, просто нереально,
а стандартные алгоритмы МО недостаточно гибки для выявления признаков,
позволяющих справиться с такой степенью сложности.
Если стандартные методы машинного обучения не всегда могут обеспечить
надлежащую обработку аудиоданных и изображений, то методы глубокого
обучения вполне справляются с этой задачей. Модели глубокого обучения от­
лично справляются с множеством сложных вычислительных задач, особенно
когда используются неструктурированные данные (например, изображения,
звуковые или текстовые данные) или данные с труднораспознаваемыми при­
знаками (как, например, в случае предиктивного моделирования1 с большим
количеством переменных).
Когда в главе 1 вводилось определение искусственной нейронной сети
(ИНС), она была схематично представлена в виде искусственных нейронов,
приблизительно напоминающих биологические нейроны, и связей между
ними, опять же очень приблизительно напоминающих аксоны и синапсы
человеческого мозга. Это очень удобно, поскольку позволяет думать об ис­
кусственной нейронной сети как о множестве взаимосвязанных нейронов,
обычно скомпонованных в ряд слоев2, как показано на рис. 3.1. На нем
представлена простейшая разновидность искусственной нейронной сети —
многослойный перцептрон. В такой сети каждый узел одного слоя соединен со
всеми узлами соседнего слоя, поэтому она относится к категории полностью
связанных, или плотных, нейронных сетей.
Первый (см. рис. 3.1, слева) слой, который принимает входные данные, на­
зывается входным слоем. Результат алгоритма выдается на расположенный
справа выходной слой. Между этими двумя слоями находятся так называемые
скрытые слои, представляющие невидимые извне промежуточные результа­
1

Прогнозирование результатов на основе полученных ранее данных.

2

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

Глава 3. Основные понятия ГНС   53

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

Рис. 3.1. Многослойный перцептрон

Эта идея представлена на рис 3.2. Данные поступают в ГНС через первый
(см. рис. 3.1, слева) слой, в той или иной степени активируя нейроны этого
слоя. На деле это означает, что нейронам присваивается значение, отража­
ющее степень активации, или интенсивность. При этом высокой степени
активации нейрона соответствует более высокое числовое значение, а низкой
степени активации — более низкое значение.
Нейроны, сработавшие в одном слое, заставляют связи ретранслировать
эту информацию в следующий слой; таким образом, степень активации
каждого следующего слоя определяется степенью активации предыдуще­
го слоя. Нейроны могут по-разному реагировать на входной сигнал; одни
нейроны могут срабатывать (активироваться) при большей или меньшей
интенсивности входного сигнала, чем другие. Кроме того, некоторые связи
могут быть более сильными, чем другие, то есть обладать бо' льшим весом
и оказывать большее влияние на работу следующих слоев. Окончательный
результат поступает в узлы расположенного справа выходного слоя. Такая
сеть называется сетью прямого распространения, поскольку данные в ней

54  Часть I. Общие сведения об обмане искусственного интеллекта
перемещаются в одном направлении. Информация всегда распространяет­
ся через сеть в прямом направлении, без какого-либо закольцовывания на
предыдущие узлы. Если говорить более формально, то сеть прямого распро­
странения является разновидностью направленного ациклического графа.

Рис. 3.2. Последовательные этапы вычислений в многослойном перцептроне

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

Глава 3. Основные понятия ГНС   55

Модели ГНС как математические функции
До настоящего момента мы рассматривали ГНС как искусственную аппрок­
симацию биологических процессов (мозга), представленную исключительно
концептуально (схематично) в виде нейронов и их взаимосвязей. Однако
в действительности МО-модели (в том числе глубокие нейронные сети)
представляют собой математические функции. Иногда эти функции могут
быть довольно сложными, тем не менее любая МО-модель выражается
математически.
Таким образом, не вдаваясь в подробности, можно сказать, что МО-модель —
это математическая функция, которая принимает некоторые входные дан­
ные и возвращает некоторый результат. Этому определению соответствует
следующая формула:
y = f(x).
Процесс обучения модели сводится к определению того, какой должна быть
функция f.
Для знакомства с математическими основами глубоких нейронных сетей
воспользуемся иллюстративным набором данных Fashion-MNIST. Этот
набор данных можно скачать по адресу http://bit.ly/2WQqbKZ для проведения
экспериментов и тестирования МО-моделей.
Универсальность искусственных нейронных сетей
Ключевое отличие ГНС-модели от обычных методов МО состоит в том,
что ГНС может реализовать универсальную функцию. То есть существует
нейронная сеть, способная реализовать точную аппроксимацию любой
функции1, какой бы сложной она ни была. Для того чтобы ГНС удовле­
творяла принципу универсальности, ей достаточно иметь хотя бы один
скрытый слой.

1

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

56  Часть I. Общие сведения об обмане искусственного интеллекта
Набор данных Fashion-MNIST содержит 70 000 изображений в оттенках
серого цвета с разрешением 28 × 28 пикселей. На каждом изображении
представлен предмет одежды, который может быть отнесен к одной из де­
сяти категорий: «Футболка/топ» (T-shirt/top), «Брюки» (Trouser), «Сви­
тер» (Pullover), «Платье» (Dress), «Пальто» (Coat), «Сандалии» (Sandal),
«Рубашка» (Shirt), «Кроссовки» (Sneaker), «Сумка» (Bag) и «Ботильоны»
(Ankle boot). Примеры изображений из этого набора данных вместе с соот­
ветствующими метками представлены на рис. 3.3.

Рис. 3.3. Набор данных Fashion-MNIST содержит простые изображения предметов одежды вместе
с соответствующими метками

Глава 3. Основные понятия ГНС   57

Набор данных Fashion-MNIST особенно удобен для демонстрации классифи­
кации изображений с помощью ГНС-модели, поскольку он в значительной
мере сокращает присущую изображениям вариабельность. Во-первых, изо­
бражения этого набора являются монохромными и имеют низкое разрешение.
Это снижает степень вариабельности ГНС, необходимой для выполнения
классификации, что позволяет легко обучить ее, не прибегая к использова­
нию специализированного аппаратного обеспечения. Во-вторых, как видно
на рис. 3.3, на каждой картинке представлен только один предмет одежды,
который подогнан по размеру изображения и расположен по центру. Когда
требуется выполнять пространственное позиционирование внутри изобра­
жения, необходимо использовать ГНС с более сложной архитектурой — об
этом речь пойдет в главе 4.
Используя этот набор данных, мы можем поэкспериментировать с простей­
шей нейросетевой классификацией изображений: для некоторого входного
изображения мы будем получать соответствующую категорию одежды.
На рис 3.4 в общих чертах показано, как должна будет работать обученная
ГНС при подаче на ее вход изображения брюк.
ГНС-модель является функцией f. При представлении хорошо обученной
ГНС-модели f для классификации изображения брюк (обозначенное как x)
должно быть возвращено значение y, указывающее на то, что это брюки.

Рис. 3.4. В упрощенном виде схема работы модели для классификации изображений набора
данных Fashion-MNIST выглядит следующим образом: она принимает изображение и возвращает
соответствующую категорию

58  Часть I. Общие сведения об обмане искусственного интеллекта
Не нужно быть математиком, чтобы понять: внутри этой ГНС-модели
должно выполняться множество хитроумных вычислений, транслирующих
изображение в одну из десяти категорий одежды. Сначала мы рассмотрим
входные и выходные данные модели, а затем — ее внутреннее содержимое.
Потом вы узнаете, как следует обучать модель для получения точных
предсказаний.

Входные и выходные данные ГНС
Каждому нейрону входного слоя присваивается значение, отражающее
некоторый аспект входных данных. Таким образом, во входных данных из
набора Fashion-MNIST каждый нейрон входного слоя представляет одно
пиксельное значение входного изображения. Поскольку каждое изобра­
жение содержит 28 × 28 пикселей, входной слой модели должен состоять
из 784 нейронов. (Очевидно, что представленная на рис. 3.4 схема с пятью
нейронами во входном слое сильно упрощена.) Каждому нейрону в этом
слое присваивается значение от 0 до 255, отражающее интенсивность соот­
ветствующего пикселя1.
Выходной слой представляет собой еще один ряд числовых значений, отра­
жающий тот результат, который научилась генерировать ГНС. Обычно этот
результат представляет собой ряд предсказаний, ассоциированных с каждой
отдельной категорией. Поскольку в наборе данных Fashion-MNIST пред­
ставлено десять категорий одежды, в выходном слое должно быть десять
нейронов, содержащих десять числовых значений, каждое из которых будет
отражать относительную вероятность принадлежности изображения к соот­
ветствующей категории одежды. Значение первого нейрона будет отражать
вероятность принадлежности изображения к категории «Футболка/топ»
(T-shirt/top), значение второго — вероятность принадлежности к категории
«Брюки» (Trouser) и т. д.
Поскольку в данном случае решается задача классификации, ответ ГНС
представляет тот нейрон выходного слоя, который обладает наибольшей
степенью активации (наибольшим значением). В примере, показанном на
рис. 3.4, при успешном выполнении классификации моделью наибольшей
1

На практике полезно масштабировать эти значения таким образом, чтобы они на­
ходились в диапазоне от 0 до 1.

Глава 3. Основные понятия ГНС   59

степенью активации будет обладать нейрон, соответствующий категории
«Брюки» (Trouser).
Ряд входных данных (пиксельные значения) и ряд выходных данных (ве­
роятности принадлежности к категориям одежды) можно математически
представить в виде векторов. Соответственно, приведенную выше формулу
лучше выразить в виде функции, принимающей вектор входных данных x
и возвращающей вектор выходных данных y:

,

где i — количество нейронов во входном слое (784 для набора данных FashionMNIST), а n — количество нейронов в выходном слое (10 для набора данных
Fashion-MNIST).
Таким образом, вы уже поняли, что такое математическая функция, пред­
ставляющая ГНС. Эта функция принимает один вектор (входные данные)
и возвращает другой вектор (выходные данные). Но что именно представляет
собой эта функция?

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

60  Часть I. Общие сведения об обмане искусственного интеллекта
на рис. 3.5 большим кругом. Рассмотрим, как вычисляется его значение
активации.

Рис. 3.5. Укрупненная схема нейрона в сети, иллюстрирующая
его функцию активации

Значение отдельного нейрона определяется степенями активации нейронов
предыдущего слоя, каждый из которых обозначен на схеме буквой а с нижним
индексом, указывающим на номер нейрона.
Простейшая нейронная сеть прямого распространения имеет два типа на­
страиваемых параметров.
‰‰ Вес. С каждой связью сети ассоциировано отдельное весовое зна­
чение. Оно определяет силу связи или степень влияния активации
текущего нейрона на следующий нейрон. На рис. 3.5 веса обозначены
буквой w с нижним индексом, указывающим номер соответствующей
связи.
‰‰ Порог. С каждым нейроном сети ассоциировано отдельное пороговое
значение. Оно определяет, насколько нейрон активен. На рис. 3.5 порог
обозначен буквой b.
Степень активации отдельного нейрона (расположенного за входным сло­
ем) определяется совокупным влиянием входящих связей с поправкой на
его порог. Влияние каждой отдельной связи равно произведению степени
активации исходного нейрона на вес связи. На рис. 3.5 влияние первой

Глава 3. Основные понятия ГНС   61

связи равно произведению веса этой связи на степень активации первого
исходного нейрона:
.
Теперь нужно сложить все составляющие, чтобы получить совокупный
входной сигнал от всех входящих соединений:
.
И добавить порог, ассоциированный со следующим нейроном:
.
Чтобы добиться от ГНС требуемого поведения, результат этих вычислений
необходимо передать функции активации. Обозначим функцию буквой A.
В результате получим формулу для вычисления степени активации любого
отдельного нейрона сети (за исключением нейронов входного слоя, степень
активации которых определяется непосредственно входными данными):
.
При обработке данных в нейронных сетях могут использоваться функции
активации различных типов. Конкретный тип функции активации явно
определяется для каждого нейрона на стадии определения архитектуры сети
и зависит от типа сети и конкретного слоя.
В частности, для скрытых слоев ГНС хорошие результаты показывает рек­
тификационная функция активации (ReLU — Rectified Linear Unit). Скры­
тые слои нейронной сети наилучшим образом поддаются обучению, когда
срабатывание нейрона могут вызывать лишь большие входные влияния,
подобно тому, как синапсы человеческого мозга срабатывают при превыше­
нии некоторого порога. Функция ReLU действует по такому же принципу.
Все достаточно просто — когда входной сигнал функции ReLU:

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

62  Часть I. Общие сведения об обмане искусственного интеллекта
использовать последний слой, который будет принимать вычисляемые
сетью количественные показатели — так называемые логиты — и масшта­
бировать их так, чтобы они представляли собой вероятности и, соответ­
ственно, в совокупности равнялись 1. Нейроны этого слоя будут выполнять
масштабирование, используя другую разновидность функции активации,
а именно softmax.

Рис. 3.6. Функция ReLU

Применив все вышесказанное к модели для классификации данных из набора
Fashion-MNIST, можно внести определенные уточнения в рис. 3.4. Хотя мы
можем использовать произвольное количество скрытых слоев и произволь­
ное количество нейронов в каждом скрытом слое, в этом отношении есть
некоторые эмпирические правила, соблюдение которых обеспечит хорошие
результаты. Обычно достаточно использовать один скрытый слой, количество
нейронов в котором находится в диапазоне между количествами нейронов
во входном и выходном слоях. Допустим, в нашем случае используются два
скрытых слоя по 56 нейронов в каждом. На рис. 3.7 показано, как при этом
будет выглядеть архитектура сети.
Следующая часть головоломки: как производится коррекция имеющихся
весов и порогов для обеспечения эффективной работы сети?

Глава 3. Основные понятия ГНС   63

Рис. 3.7. Архитектура ГНС для классификации изображений
с использованием набора данных Fashion-MNIST

Как обучается ГНС
Как мы успели выяснить, ГНС-модель представляет собой математиче­
скую функцию f. В подразделе «Входные и выходные данные ГНС» на
с. 58 она выражена в виде функции, принимающей вектор входных дан­
ных и возвращающей выходной вектор. В упрощенном виде это можно
записать так:
y = f(x),
где полужирное начертание символов x и y указывает, что это векторы.
Функция f включает в себя множество параметров, определяющих все веса
и пороговые значения сети. Их необходимо должным образом скорректиро­
вать, чтобы сеть выдавала ожидаемый результат при любых входных данных.
Поэтому перепишем предыдущую формулу, указав, что функция принимает

64  Часть I. Общие сведения об обмане искусственного интеллекта
не только входное изображение, но и набор параметров, представляющих веса
и пороговые значения. При этом символ Θ (тета) обозначает все значения
весов и порогов сети:

Процесс обучения сети сводится к коррекции этих весов и порогов (Θ), чтобы
при каждом представлении сети обучающих входных данных она возвращала
значение, как можно меньше отличающееся от правильной метки классифи­
кации. Не стоит недооценивать задачу оптимизации всех этих параметров —
функция ГНС включает в себя по одному пороговому значению на каждый
скрытый нейрон и по одному весовому параметру на каждую связь. Таким
образом, это дает следующую формулу для каждого слоя:
количество параметров на каждый слой =
= (количество узлов в предыдущем слое * количество узлов в слое) +
+ количество узлов в слое.
Например, для модели классификатора данных из набора Fashion-MNIST,
представленной на рис. 3.7, требуется скорректировать 48 722 параметра —
и это еще сравнительно простая нейронная сеть! Поэтому неудивительно,
что для обучения ГНС требуются большое количество обучающих примеров
данных и значительные вычислительные затраты.
Перед началом обучения веса и пороговые значения сети инициализируются
случайными значениями. При этом сеть выдает очень плохие результаты — ей
еще нужно пройти обучение. На этом этапе обучения производится много­
кратная коррекция весов и порогов для оптимальной работы ГНС во всем
диапазоне обучающих данных в надежде, что это обеспечит корректный
результат и при предъявлении ей новых примеров.
Процесс обучения выглядит следующим образом. Сети многократно пред­
ставляются примеры входных данных из обучающего набора; при этом
каждый раз вычисляется количественный показатель отклонения сети от
ожидаемых меток, ассоциированных с обучающими входными данными.
Этот количественный показатель называют штрафами или потерями сети
и вычисляют с помощью функции штрафов, или функции потерь, — специ­
альной функции для количественной оценки того, насколько качественно
сеть выполняет свою задачу. При больших штрафах сеть плохо справляется
со своей задачей, а при малых штрафах она работает хорошо.

Глава 3. Основные понятия ГНС   65

Функция штрафа принимает большой набор параметров, в том числе непо­
средственно функцию ГНС (f) со всеми ее весами и порогами (то есть всеми
теми параметрами, которые обозначаются буквой Θ), а также обучающие
примеры. Требуются и метки обучающих примеров, которые определяют,
как должен выглядеть «хороший» ответ, то есть служат в качестве контроль­
ных данных.
Соответственно, для одного обучающего примера функция штрафа может
быть выражена следующим образом:
,
где C — функция штрафа для ГНС f с параметрами Θ; x — представленный
сети обучающий пример; l — соответствующее целевое предсказание.
Так что же в действительности делает эта функция C? Существует множе­
ство способов оценить эффективность работы модели при представлении ей
одного обучающего примера. В простейшем случае можно просто вычесть
ожидаемые метки из реальных значений, которые выдает ГНС для данного
обучающего примера. Это разница обычно возводится в квадрат, чтобы
в случае значительного расхождения между целевыми метками и пред­
сказанными вероятностями генерировались непропорционально большие
значения штрафа. Такой подход позволяет компенсировать большие рас­
хождения между целевыми и предсказанными значениями.
Оценка штрафа для отдельного обучающего примера производится с по­
мощью следующего выражения:

,

где li равно 1, когда i соответствует правильной целевой категории, и 0 в про­
тивном случае.
То есть штрафы для одного обучающего примера составляют:

66  Часть I. Общие сведения об обмане искусственного интеллекта
Допустим, что, производя обучение классификатора изображений из набора
Fashion-MNIST, мы представили ему изображение брюк и он возвратил нам
следующий вектор:

.

С этим изображением ассоциирована целевая метка «Брюки» (Trouser),
которая соответствует второму значению вектора. В идеале это предсказа­
ние должно приближаться к 1, а не быть равным текущему значению 0,119.
Если бы сеть работала идеально, она возвратила бы следующий вектор
предсказаний:

.

Величина штрафа для данного образца равна квадрату разности между це­
левым вектором и вектором предсказаний:

.

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

Глава 3. Основные понятия ГНС   67

вычислить средний квадрат всех ошибок. Такая функция потерь называется
среднеквадратической ошибкой (Mean Squared Error, MSE).
Другие функции потерь применяют различные алгоритмы расчета потерь
на этапе обучения. Для моделей классификации обычно используется функ­
ция потерь на основе категориальной перекрестной энтропии. Такая функция
с более высокой вероятностью лучше справляется с компенсацией ошибок
сети. Применение разновидности этого будет продемонстрировано в при­
мере кода в конце этой главы.
Для улучшения работы сети необходимо скорректировать ее веса и пороговые
значения так, чтобы средний штраф снизился до минимально возможного
уровня. То есть нужно скорректировать параметры Θ таким образом, что­
бы выражение штрафа давало наилучший результат для всех возможных
обучающих примеров. Это обеспечит оптимальную настройку сети. Такая
коррекция производится с помощью метода градиентного спуска.
Чтобы понять, что собой представляет метод градиентного спуска, представь­
те, что у сети есть только один настраиваемый параметр Θi, а не тысячи таких
параметров. Процесс настройки параметра можно представить графически,
как показано на рис. 3.8. По оси X откладываются значения настраиваемого
параметра. Для любого значения x можно вычислить среднюю величину
штрафа сети, используя выбранную функцию потерь (например, MSE).
Конечно, график на рис. 3.8 очень упрощен — для реальной сети нужны ты­
сячи таких графиков, по одному для каждого параметра, — но в то же время
он хорошо иллюстрирует общий принцип.
Каждая точка этой кривой представляет величину штрафа для конкретной
комбинации весов и пороговых значений сети. В начале обучения, сразу после
инициализации параметров случайными значениями, штрафы достаточно
высоки, и нужно найти значения параметров, которые обеспечат снижение
штрафа до минимального уровня.
Метод градиентного спуска сводится к вычислению с помощью математи­
ческих методов градиента функции штрафа для текущей стадии обучения
(то есть для текущих значений параметров Θ). На основе этого градиента
оценивается необходимость в увеличении или уменьшении каждого веса
и порога сети для улучшения ее работы. Многократное повторение этой про­
цедуры позволяет оптимизировать параметры сети для получения хорошего
результата. Как показано на рис. 3.8, вы как бы скатываетесь вниз по «склону»
графика функции. При этом существует риск попадания в не самую лучшую

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

Рис. 3.8. При использовании градиентного спуска производится коррекция параметров сети
для минимизации штрафа (потерь) на этапе обучения

Для расчета необходимых поправок в веса и пороги на этапе обучения ГНС
применяется так называемый метод обратного распространения ошибки,
который сводится к вычислению потерь для выходного слоя и «проталкива­
нию» их через сеть в обратном направлении с внесением соответствующих
поправок в веса и пороги. В основе данного метода лежат сложные матема­
1

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

Глава 3. Основные понятия ГНС   69

тические выкладки, однако они необязательны для понимания материала,
касающегося вредоносных образов1. Но если вы хотите лучше разобраться
в аспектах нейросетевой обработки как для обратного, так и для прямого
распространения (о котором говорилось в предыдущем подразделе), вы
можете воспользоваться ссылками на полезные ресурсы, добавленными
в GitHub-репозиторий этой книги (http://bit.ly/2x5Kg5I).
Метод градиентного спуска играет важную роль в машинном обучении и ча­
сто применяется в этой сфере. Так, данный метод обычно используется для
оптимизации моделей на этапе обучения, однако, как вы увидите в главе 5,
к нему также прибегают и для оптимизации генерации вредоносных образов.

Создание простого классификатора изображений
Создание и обучение с нуля модели глубокого обучения — сложная задача,
требующая понимания математических основ обработки с прямым и об­
ратным распространением. Однако на сегодняшний день уже доступно
множество библиотек для автоматического создания и обучения моделей,
которые позволяют легко создать ГНС без необходимости кодировать ба­
зовые алгоритмы.
Блокнот Jupiter для простого классификатора изображений
Включенный в данную книгу программный код можно скачать из GitHubрепозитория книги (http://bit.ly/2ISaGgG).
Инструкции по доступу к программному коду, его запуску, настройке зависимостей и установке блокнота Jupyter см. в том же GitHubрепозитории (http://bit.ly/2ZxWnEI).
Фрагменты кода, приведенные в данном разделе, можно найти в следующем блокноте Jupyter: chapter03/fashionMNIST_classifier.ipynb (http://
bit.ly/31JsseI).

В этом разделе показаны основные этапы программирования, необходи­
мые для создания модели классификации изображений из набора данных
1

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

70  Часть I. Общие сведения об обмане искусственного интеллекта
Fashion-MNIST на языке Python. Описываемая здесь сеть является примером
того, насколько легко можно создать модель глубокого обучения с помо­
щью открытых программных библиотек. Для создания и обучения модели
использовалась библиотека глубокого обучения TensorFlow в сочетании
с API Keras. Данный пример кода создан на основе обучающих материалов,
предлагаемых в Интернете для ознакомления с Keras1.
Сеть является полносвязанной, то есть каждый узел в каждом ее слое соеди­
нен с каждым узлом следующего слоя. Она также является сетью прямого
распространения, то есть вычислительный процесс последовательно рас­
пространяется в ней от входного слоя через все скрытые слои до выхода из
выходного слоя.
Прежде всего импортируйте необходимые библиотеки — TensorFlow и со­
ответствующую версию Keras:
import tensorflow as tf
from tensorflow import keras

Вместе с библиотекой Keras предоставляются и данные из набора FashionMNIST. Дается два набора данных — один для обучения модели и один
для ее оценки. Оба этих набора представляют собой список изображений
с соответствующими метками. Наличие меток у тестовых данных позволяет
оценить качество работы модели путем последовательного представления
ей каждого тестового изображения и проверки результата на соответствие
ожидаемой метке.
Полезно предусмотреть список названий категорий, соответствующий де­
сяти возможным категориям одежды. Это позволит в дальнейшем выводить
название категории, вместо того чтобы выводить только ее номер (например,
T-shirt/top вместо 0):
fashion_mnist = keras.datasets.fashion_mnist
(train_images,train_labels),(test_images,test_labels) =
fashion_mnist.load_data()
class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat',
'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']
1

Вы можете ознакомиться с исходным обучающим материалом на сайте библиотеки
TensorFlow (http://bit.ly/2KXQnAW). Обучающий материал по библиотеке Keras
(http://bit.ly/2WOw1MZ) может служить отличным базовым руководством по модели
программирования Keras.

Глава 3. Основные понятия ГНС   71

Посмотрим на изображение с индексом 9 на рис. 3.9:
import matplotlib.pyplot as plt
plt.gca().grid(False)
plt.imshow(test_images[9], cmap=plt.cm.binary)

Каждое изображение в наборе данных представляет собой массив пикселей,
каждому из которых соответствует значение в диапазоне от 0 до 255, отража­
ющее его интенсивность. Нужно нормализовать эти значения для входного
слоя ГНС так, чтобы каждое из них находилось в диапазоне от 0 до 1:
train_images = train_images/255.0
test_images = test_images/255.00

Рис. 3.9. Вывод программы

Программный интерфейс Keras предоставляет простой способ последо­
вательного создания слоев модели с помощью соответствующих функций
активации нейронов (в данном случае ReLU или softmax). Приведен­
ный ниже код показывает, как можно создать модель с такой архитек­
турой, как показано на рис. 3.7. На этапе компиляции также указываются

72  Часть I. Общие сведения об обмане искусственного интеллекта
переменные, которые определяют способ обучения модели и способ оценки
ее точности:
model = keras.Sequential([keras.layers.Flatten(input_shape=(28,28)),
keras.layers.Dense(56, activation='relu'),
keras.layers.Dense(56, activation='relu'),
keras.layers.Dense(10, activation='softmax')
])
model.compile(optimizer=tf.keras.optimizers.Adam(), 
loss='sparse_categorical_crossentropy', 
metrics=['accuracy']) 

 Параметр optimizer определяет способ оптимизации сети на этапе обуче­
ния. В данном случае для ускорения обучения лучше выбрать оптимизатор
Adam, использующий интеллектуальный алгоритм градиентного спуска.
 Здесь определяется описанная ранее функция потерь. Функция потерь
sparse_categorical_crossentropy является вариацией функции categorical_
crossentropy, используемой, когда целевые метки передаются в виде единого
списказначений, а не как заполненный нулями массив, в котором соответ­
ствующее значение установлено в 1. Такой способ представления возможен
в том случае, когда верным ответом каждый раз является только одна кате­
гория. Например, метка, определяющая категорию Pullover, представляется
в обучающем наборе данных не в виде массива [0, 0, 1, 0, 0, 0, 0, 0, 0, 0],
а в виде числа 2, поскольку это третья метка в списке, начинающемся с 0.
 Параметр metrics определяет способ оценки сети на этапе обучения.
Теперь посмотрим на полученную модель и убедимся, что она выглядит
нужным нам образом:
model.summary()

Данный код сгенерирует следующий вывод:
_________________________________________________________________
Layer (type)
Output Shape
Param #
=================================================================
flatten_2 (Flatten)
(None, 784)
0
_________________________________________________________________
dense_4 (Dense)
(None, 56)
43960
_________________________________________________________________
dense_5 (Dense)
(None, 56)
3192
_________________________________________________________________
dense_6 (Dense)
(None, 10)
570
=================================================================
Total params: 47,722
Trainable params: 47,722
Non-trainable params: 0

Глава 3. Основные понятия ГНС   73

Выглядит неплохо. Можно заметить, что общее количество параметров со­
впадает с тем значением, которое было вычислено в предыдущем подразделе.
Следуя принципу, изложенному ранее в этом разделе, мы можем обучить
модель с помощью всего одной строки кода. Название используемой здесь
функции fit указывает на то, что модель подгоняется под требования
обучающих данных (to fit на английском языке означает «подгонять»).
Параметр epochs задает количество итераций обучения, или эпох, то есть
указывает, сколько раз будет корректироваться модель на основе уровня
потерь, вычисляемого для всех обучающих примеров. Пусть этот параметр
будет равен 6:
model.fit(train_images, train_labels, epochs=6)

Данный код сгенерирует следующий вывод:
Epoch 1/6
60000/60000 [================] - 4s 66us/sample - loss: 0.5179
Epoch 2/6
60000/60000 [================] - 4s 58us/sample - loss: 0.3830
Epoch 3/6
60000/60000 [================] - 3s 58us/sample - loss: 0.3452
Epoch 4/6
60000/60000 [================] - 4s 59us/sample - loss: 0.3258
Epoch 5/6
60000/60000 [================] - 4s 59us/sample - loss: 0.3087
Epoch 6/6
60000/60000 [================] - 4s 59us/sample - loss: 0.2933
Out[8]:


- acc: 0.8166
- acc: 0.8616
- acc: 0.8739
- acc: 0.8798
- acc: 0.8863
- acc: 0.8913

Как видите, Keras отображает потери и точность модели на каждой стадии
этапа обучения применительно к обучающим данным. Точность модели
определяется как процент правильно классифицируемых ею примеров
обучающих данных. С каждой эпохой потери модели снижаются, а ее точ­
ность возрастает — это градиентный спуск в действии! Веса и пороги модели
корректируются для минимизации потерь (см. рис. 3.8).
Keras предоставляет показанный ниже метод для проверки точности
сгенерированной модели после ее обучения. Поскольку нам нужно убе­
диться, что модель хорошо работает не только на тех данных, которые
были пред­оставлены на этапе обучения, для этой оценки используется
специальный тестовый набор данных (тестовые изображения с ожида­
емыми метками):
test_loss, test_acc = model.evaluate(test_images, test_labels)
print('Model accuracy based on test data:', test_acc)

74  Часть I. Общие сведения об обмане искусственного интеллекта
Данный код сгенерирует следующий вывод:
10000/10000 [================] - 0s 35us/sample - loss: 0.3623 - acc: 0.8704
Model accuracy based on test data: 0.8704

Как видно, точность модели на тестовых данных оказалась чуть ниже, чем
в случае обучающих данных, что говорит о том, что модель слишком сильно
подогнана под обучающие данные. Это пример так называемого переобучения, при котором модель слишком точно подогнана под обучающие данные
и недостаточно обобщена для других данных. Несмотря на это, модель
работает хорошо, возвращая почти 90 % правильных ответов на тестовом
наборе данных.
Посмотрим, какие предсказания генерирует модель для конкретного изо­
бражения из тестового набора данных. Пусть это будет изображение с ин­
дексом 6. Вот код, который будет выводить на экран изображение и соот­
ветствующую ожидаемую метку (рис. 3.10):
image_num = 6
print("Expected label: ", class_names[test_labels[image_num]])
import matplotlib.pyplot as plt
imgplot = plt.imshow(test_images[image_num], cmap=plt.cm.binary)
Expected label:

Coat

Рис. 3.10. Вывод программы

Функция predict библиотеки Keras позволяет сгенерировать предсказания
для некоторого набора входных данных. Следующий код сгенерирует набор
предсказаний для каждого из тестовых изображений и выведет на экран
предсказания для выбранного нами изображения:
predictions = model.predict(test_images)
print("Predictions for image:", predictions[image_num])

Глава 3. Основные понятия ГНС   75

Данный код сгенерирует следующий вывод:
Predictions for image: [2.0931453e-04 2.5958019e-05 5.3381161e-03
9.3024952e-05 9.8870182e-01 3.4905071e-08 5.4028798e-03 2.1192791e-10
2.2762216e-04 1.2793139e-06]

Результат представляет собой вектор, полученный в последнем слое модели
для выбранного изображения. Этот softmax-слой гарантирует, что сумма всех
выходных значений будет равна 1. Чтобы убедиться в этом, суммируем их:
total_probability = 0
for i in range(10):
total_probability += predictions[image_num][i]
print(total_probability)

Данный код выдаст такой результат:
1.0000000503423947

Следующий код извлечет предсказание с наибольшей вероятностью и воз­
вратит строку с соответствующей категорией одежды:
import numpy as np
index_of_highest_prediction = np.argmax(predictions[image_num])
print("Classification: ", class_names[index_of_highest_prediction])
print("Confidence:
", predictions[image_num][index_of_highest_prediction])

Данный код сгенерирует следующий вывод:
Classification: Coat
Confidence: 0.9887018

Изображение было правильно классифицировано как «Пальто» (Coat), и, как
видно, модель сделала это предсказание с достаточной долей уверенности.
Наконец, сохраним модель, чтобы ее можно было использовать позднее:
model.save("../models/fashionMNIST.h5")



 Модель преобразуется в формат HDF5 (https://www.hdfgroup.org) и сохра­
няется в папке models.
Мы еще не раз вернемся к данному классификатору на протяжении этой
книги по мере дальнейшего изучения вредоносных образов.

Глава 4

ГНС-обработка изображений,
аудио- и видеоданных
В главе 3 для иллюстрации принципов нейросетевых технологий мы соз­
дали нейронную сеть, способную классифицировать простые изображения
предметов одежды. Однако в силу предельной простоты данных из набора
Fashion-MNIST приведенный пример нельзя назвать реалистичным. Глубо­
кие нейронные сети могут решать более сложные задачи с использованием
широкого спектра других архитектур, помимо простейшей полностью свя­
занной сети прямого распространения.
Существует много способов проектирования ГНС с различным расположением
слоев, разными типами слоев и способами соединения узлов. Выбор конкрет­
ного типа сети зависит от задачи; кроме того, сочетая разновидности ГНС друг
с другом или с другими алгоритмами, можно решать еще более сложные задачи.
В этой главе рассмотрены способы применения ГНС-технологии для более
реалистичной обработки изображений, аудио- и видеоданных. Опираясь на
изложенные в главе 3 базовые понятия, вы узнаете, какие концепции лежат
в основе нейронных сетей, обычно используемых в этой сфере, и как эти
технологии можно сочетать с традиционными способами вычисления для
получения лучших результатов.
Основное внимание в главе уделено двум ключевым типам сетей — сверточным нейронным сетям (СНС, англ. CNN — convolutional neural networks)
и рекуррентным нейронным сетям (РНС, англ. RNN — recurrent neural
networks). На их примере показаны общие правила обработки изображений
и аудиоданных; кроме того, они упоминаются и в последующих главах.
Хотя для обработки изображений, аудио- и видеоданных применяются
не только СНС и РНС, но и другие типы глубоких нейронных сетей, именно
эти два типа используются наиболее широко. Приведенные здесь описания
носят лишь ознакомительный характер. Для получения дополнительной
информации о том или ином типе сети обратитесь к ресурсам, указанным
в GitHub-репозитории этой книги (http://bit.ly/2x5Kg5I).

Глава 4. ГНС-обработка изображений, аудио- и видеоданных   77

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

Изображения
На самом базовом уровне визуальное восприятие человека позволяет ему
воспринимать свет, а точнее часть электромагнитного спектра с длинами
волн в диапазоне от 200 до 700 нанометров (нм). Свет также можно описать
с помощью частоты — величины, обратной длине волны. Частота измеря­
ется в герцах (Гц) — количестве циклов в секунду; при этом свет находится
в частотном диапазоне примерно от 430 до 750 терагерц (ТГц). Более низкие
частоты соответствуют инфракрасному электромагнитному излучению,
а более высокие частоты — ультрафиолетовому.
В наших глазах есть три типа цветовых рецепторов (колбочек), чувстви­
тельных к различным длинам волн светового излучения. Колбочки первого
типа чувствительны к более длинным волнам видимого спектра (красному
свету), колбочки второго типа — к волнам средней длины (зеленому све­
ту), а колбочки третьего типа — к более коротким волнам (синему свету).
Эти рецепторы посылают в мозг сигналы, когда в них попадает свет опре­
деленного цвета. Так, колбочка, чувствительная к синему краю спектра,
посылает в мозг сигнал при попадании в глаз синего света; величина этого
сигнала зависит от количества синего света. После этого зрительная зона
коры головного мозга сводит сигналы воедино, формируя тот цвет, который
мы воспринимаем.

78  Часть I. Общие сведения об обмане искусственного интеллекта

Цифровое представление изображений
Цифровые изображения состоят из пикселей — дискретных значений, от­
ражающих величину аналогового светового сигнала в соответствующих
точках. Изображения из набора Fashion-MNIST довольно плохо отражают
внешний вид реальных предметов. Во-первых, каждое изображение из на­
бора Fashion-MNIST представлено множеством монохромных пиксельных
значений, находящихся в диапазоне от 0 до 255. При этом значение 0 со­
ответствует черному цвету (минимальной интенсивности), а значение
255 — белому цвету (максимальной интенсивности). Каждое пиксельное
значение занимает ровно 1 байт памяти (поскольку с помощью 8 бит можно
представить 256 различных значений).
Один из подходов к отображению цветных изображений сводится к тому, что­
бы представлять 256 цветов, используя тот же объем памяти. Для этого нужно
определить «цветовую палитру», то есть назначить каждому из 256 значений
соответствующий цвет. Несмотря на довольно большие выразительные воз­
можности, данный метод все же не обеспечивает достаточное разнообразие
и широту диапазона цветов для адекватного отображения реалистичных изо­
бражений. Поэтому на фотографиях каждый пиксель обычно представляется
тремя значениями — по одному для красной, зеленой и синей составляющих
цвета. Для каждого из этих RGB-значений (red, green, blue — «красный, зеле­
ный, синий») обычно выделяется 1 байт памяти, что обеспечивает диапазон
от 0 до 255. При этом цвет отдельного пикселя определяется как комбинация
соответствующих RGB-значений. Такой способ представления отличается
большой гибкостью — RGB-значения в диапазоне от 0 до 255 обеспечивают
палитру из 16 777 216 различных цветов. Вероятно, вы догадались, что идея
формирования цвета из красного, зеленого и синего входных сигналов на­
веяна светочувствительными колбочками человеческого глаза.
Изображения из набора Fashion-MNIST не только являются монохромными,
но и обладают очень низким разрешением — 28 × 28 пикселей; то есть каждое
изображение содержит лишь 784 пикселя.
Для сравнения можно сказать, что даже фотография со сравнительно низким
разрешением 0,3 мегапикселя (Мп) содержит примерно 640 × 480 пикселей.
Современные камеры позволяют снимать фотографии с гораздо большим
пиксельным разрешением (2 Мп и выше).
Точность изображения оценивается глубиной цвета (количеством битов,
используемых для значения каждого пикселя) и количеством пикселей.

Глава 4. ГНС-обработка изображений, аудио- и видеоданных   79

Эти два параметра соответственно называют цветовым разрешением и пространственным разрешением. Как показано на рис. 4.1, снижение про­
странственного разрешения ведет к меньшей плавности линий, а снижение
цветового разрешения — к более «блочным» текстурам.

Рис. 4.1. Эффект от снижения пространственного и цветового разрешения изображения

Общая точность изображения в каждом конкретном случае зависит от того,
как оно снято (от настроек камеры), целей его использования (например,
размера при печати) и имеющихся ограничений памяти. Для обработки
изображений можно использовать несколько распространенных графиче­
ских форматов, однако лучше всего для этой цели подходит формат JPEG
(стандартизированный объединенной группой экспертов по фотографии,
Joint Photographic Experts Group), способный обеспечить и достаточный
реализм при съемке фотографий, требующих большой глубины цвета (за счет
смешивания RGB-составляющих), и высокое пиксельное разрешение.

80  Часть I. Общие сведения об обмане искусственного интеллекта

ГНС для обработки изображений
Простейшим примером обработки изображений является классификация
изображений по их основному содержимому, подобно тому как мы клас­
сифицировали изображения из набора Fashion-MNIST в главе 3. Однако
обычно обработка изображений представляет собой нечто более сложное,
например:
‰‰ классификацию сцены. Классификация сцены (по таким категориям, как
«пляж», «улица» и т. п.) вместо проведения классификации по основному
объекту;
‰‰ обнаружение и локализацию объекта. Примером может служить обнару­
жение на изображении лиц с определением их точного положения;
‰‰ семантическую сегментацию. Детализированное разбиение изображения
на области, соответствующие различным категориям. Пример такого
разбиения показан на рис. 4.2;

Рис. 4.2. Пример сегментации изображений1

‰‰ распознавание лиц. Глубокие нейронные сети могут ис­
пользоваться в системах распознавания лиц. При доста­
точном объеме обучающих данных задача распознавания
лиц становится обычной задачей классификации, в ко­
1

Изображение получено с помощью нейросети SegNet, http://bit.ly/2ZyoOSQ.

Глава 4. ГНС-обработка изображений, аудио- и видеоданных   81

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

Общие сведения о сверточных нейронных сетях
Основная сложность при обработке визуальных данных — правильная ин­
терпретация содержимого изображения вне зависимости от его простран­
ственного положения и размера. В главе 3 мы обошли эту проблему за счет
того, что каждый предмет одежды в наборе данных Fashion-MNIST обладает
примерно одинаковым размером, правильно сориентирован и расположен
по центру изображения.
В реальной жизни такое единообразие в плане размера и расположения
встречается крайне редко. Если ГНС вычисляет вероятность того, что на
картинке изображена кошка, по определенному признаку — усы, то не­
возможно точно сказать, где этот признак усов будет находиться и какого
размера он будет. Это зависит от размера, ориентации и позиции кошки.
То есть нам нужно каким-то хитрым образом извлечь имеющиеся в изо­
бражении паттерны вне зависимости от того, где они расположены. После
извлечения паттернов мы можем использовать их для более высокоуров­
невой обработки изображения.
Извлечение пространственных паттернов — это как раз та задача, с ко­
торой хорошо справляется сверточная нейронная сеть. Это означает, что

82  Часть I. Общие сведения об обмане искусственного интеллекта
СНС наилучшим образом подходит для большинства задач обработки
изображений.
СНС — это сеть, содержащая один сверточный слой (или слой свертки) или
более — слой, который использует некоторый алгоритм извлечения из изо­
бражения признаков вне зависимости от их положения. Сверточный слой
«сворачивает» один фильтр или более по всем участкам изображения.
Это значит, что он производит некоторую фильтрацию на отдельном участке
изображения, затем — такую же фильтрацию на соседнем, пересекающемся
участке и т. д., пока не будет охвачено все изображение. Под сверткой при
этом понимается перемещение фильтра по изображению с небольшим, обе­
спечивающим пересечение приращением, как показано на рис. 4.3.

Рис. 4.3. Последовательное применение сверточного фильтра к изображению

При применении фильтра к отдельному участку изображения генерируется
численное значение, определяющее, насколько точно данный участок изо­
бражения соответствует фильтру признаков.
Чтобы лучше понять, как это работает, рассмотрим простейший фильтр раз­
мером 3 × 3 пикселя, представляющий собой вертикальную темную линию на
светлом фоне, как на рис. 4.4. Это очень простая матрица чисел. На рис. 4.4
представлены примеры применения этого фильтра к двум различным сег­
ментам монохромного изображения размером 3 × 3 пикселя. Сначала фильтр
признаков поэлементно умножается на сегмент изображения (то есть каждое
значение одной матрицы умножается на соответствующее значение другой
матрицы с получением в итоге новой матрицы). Затем вычисляется среднее
значение элементов результирующей матрицы.

Глава 4. ГНС-обработка изображений, аудио- и видеоданных   83

Рис. 4.4. Применение простого фильтра размером 3 × 3 к двум различным
сегментам изображения

Как видите, значение, полученное для сегмента изображения a, сравнительно
высокое — 6, что свидетельствует о том, что это небольшой фрагмент верти­
кальной линии. Для сегмента изображения b фильтр выдает значение –29,
что совершенно верно свидетельствует о том, что данный участок не пред­
ставляет собой вертикальную линию.
Все значения, полученные в результате свертки фильтра по изображению,
помещаются в массив, подаваемый на выход из сверточного слоя. Это так
называемая карта признаков.
На практике фильтры обычно намного сложнее, чем то, что показано на
рис. 4.4, и их параметры оптимизируются в процессе обучения. Как и с весами
и порогами, о которых говорилось в главе 3, фильтры обычно инициализи­
руются случайными значениями, а затем обучаются. При этом сверточные
слои выявляют в обучающих данных важные признаки и инкапсулируют
их в картах признаков.
Здесь сделаем небольшую паузу и уточним, какие именно данные при­
нимает и возвращает сверточный слой. Если сверточный слой находится
в начале сети, то в качестве входных данных он принимает изображение.
Если изображение цветное, представленное RGB-значениями — это трех­
мерный массив, одно измерение которого служит для представления вы­
соты изображения, другое — его ширины и третье — его красного, зеленого
и синего цветовых каналов. Для изображения размером 224 × 224 пикселя
трехмерная «форма» данных, передаваемых нейронной сети, выглядит
следующим образом:
shape = (224, 224, 3)

84  Часть I. Общие сведения об обмане искусственного интеллекта
Сверточный слой может применять не один, а сразу несколько фильтров;
при этом он будет возвращать целый стек карт признаков — по одной карте
на каждый случай применения фильтра к входным данным. Это означает,
что сверточный слой может генерировать больше данных, чем он потребляет!
Чтобы сократить размерность выходных данных (и количество помех), за
слоем свертки обычно размещается слой пулинга (или подвыборки). На этапе
пулинга производится последовательный обход отдельных областей данных
(подобно тому как производится перемещение сверточного фильтра по
изображению). Из данных каждой области «выбирается» единое значение.
Существует несколько подходов к выполнению этапа пулинга. Так, например,
его можно выполнять путем вычисления среднего значения для каждой об­
ласти данных либо путем определения максимального значения. Последний
метод называется макс-пулингом — он производит эффект сжатия данных,
а также несколько снижает точность фильтрации, если отбрасывание мень­
ших значений не обеспечивает точного совпадения с фильтром.
Обычно начальная часть СНС представляет собой чередующуюся после­
довательность слоев свертки и пулинга. Для исключения отрицательных
значений сюда также могут включаться слои с функцией ReLU; обычно они
логически объединяются с операцией свертки. На рис. 4.5 показан один из
возможных способов организации этих слоев.

Рис. 4.5. Типичная схема расположения слоев в СНС

Глава 4. ГНС-обработка изображений, аудио- и видеоданных   85

Как можно расположить сверточные слои для классификации изображений,
показано на рис. 4.6. Представленная здесь СНС использует чередующуюся
последовательность слоев свертки и пулинга для извлечения из изображения
релевантных признаков. Затем извлеченные этими слоями признаки пере­
даются в завершающую часть сети, которая содержит полностью связанные
слои наподобие тех, что использовались в простейшем примере нейронной
сети, рассмотренном в главе 3. Производимые здесь расчеты определяют
окончательный вид выдаваемых сетью предсказаний и соответствующую
категорию изображения.
Вероятно, вы уже начинаете понимать, что между слоями типичной ГНС
передается множество данных, которые имеют вид многомерных массивов.
Эти многомерные массивы называются тензорами (отсюда и название би­
блиотеки TensorFlow в главе 3). Следует отметить, что представленная на
рис. 4.6 схема является сильным упрощением; обычно ГНС для обработки
изображений принимают не одно изображение, а сразу целый набор изо­
бражений.

Рис. 4.6. Пример архитектуры СНС для классификации изображений

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

86  Часть I. Общие сведения об обмане искусственного интеллекта
тестировании и использовании модели. Таким образом, размерность вход­
ного тензора СНС будет равна 4, а не 3. Так, например, когда нейронной
сети передаются 50 цветных изображений размером 224 × 224 пикселя,
четырехмерный входной тензор имеет следующую форму:
shape = (50, 224, 224, 3)

Это означает 50 изображений по 224 × 224 пикселя и три цветовых канала.
Большинство нейронных сетей для обработки изображений включает в себя
сверточные слои и, соответственно, классифицируется как СНС. В то же
время их архитектура может сильно варьироваться. На самом деле одна
из самых интересных задач в области ГНС-обработки в последние годы —
создание новых архитектур, способных повысить точность, ускорить об­
учение или сократить объем занимаемой памяти. Было предложено много
различных подходов к обработке изображений, некоторые из них описаны
во врезке далее.

Некоторые примеры нейронных сетей
для обработки изображений
Помимо прочих, существуют следующие подходы к обработке изображений.
yy VGG. Сеть имеет очень простую архитектуру наподобие той, что представ­
лена на рис. 4.6. Глубина сети при этом обозначается числом в ее названии
(например, VGG16 имеет 16 слоев).
Архитектура VGG была впервые описана Симоняном и Зиссерманом
в статье «Очень глубокие сверточные сети для крупномасштабного распо­
знавания изображений»1. На момент их разработки сети VGG16 и VGG19
считались очень глубокими, однако проблемой этой архитектуры явля­
ется низкая скорость обучения и относительно большие размеры модели
(по сравнению с более поздними архитектурами).
yy ResNet (Residual Neural Network, остаточная нейронная сеть) представляет
собой очень глубокую нейронную сеть. Архитектура призвана решить про­
блему «исчезающих градиентов» на этапе обучения за счет пропуска слоев
в начале. Данная проблема состоит в том, что на этапе обучения градиент
функции штрафа может стать настолько малым, что сеть перестанет обу­

1

Simonyan K., Zisserman A. Very Deep Convolutional Networks for Large-Scale Image
Recognition // ImageNet Large Scale Visual Recognition Challenge, 2014. http://
bit.ly/2IupnYt.

Глава 4. ГНС-обработка изображений, аудио- и видеоданных   87

чаться. Опять же число в названии каждой разновидности архитектуры
ResNet обозначает количество используемых слоев.
Архитектура впервые описана Каймингом Хе и др. в статье «Глубокое
остаточное обучение для распознавания изображений»1.
yy Inception. Первая реализация архитектуры Inception была разработана
компанией Google и называлась GoogLeNet; эта сеть состояла из 22 слоев
и имела примерно 4 миллиона параметров. Позднее компания Google улуч­
шила эту архитектуру, создав ряд новых реализаций, а также разработала
гибридную архитектуру Inception-ResNet.
Архитектура Inception впервые описана Кристианом Шегеди и др. в статье
«Углубление с использованием сверток»2.

Аудиоданные
Звук — это воспринимаемая нашими ушами интерпретация волн давления,
создаваемая в окружающей среде различными источниками вибрации.
Как и любые другие волны, звуковые волны характеризуются их амплитудой и частотой.
Амплитуда волны отражает колебания давления и влияет на наше вос­
приятие громкости звука. Как и свет, частота волны является величиной,
обратной длине волны, измеряемой в герцах (Гц). Короткие звуковые волны
обладают высокой частотой и высоким тоном, а длинные звуковые волны —
низкой частотой и низким тоном. Большинство людей способны слышать
волны в диапазоне от 20 до 20 000 Гц, и именно эти волны мы считаем зву­
ком. Однако для животных или цифровых датчиков этот диапазон может
существенно отличаться.
Простейший способ описания звуков посредством их амплитуды и частоты
не позволяет отразить все особенности. Это хорошо иллюстрируют звуко­
вые волны, показанные на рис. 4.7. Несмотря на явные различия, звуковые
волны a и b имеют одинаковую амплитуду и основную частоту.
1

He K. et al. Deep Residual Learning for Image Recognition // ImageNet Large Scale Visual
Recognition Challenge, 2015. http://bit.ly/2x40Bb6.

2

Szegedy C. et al. Going Deeper with Convolutions // ImageNet Large Scale Visual Reco­
gnition Challenge, 2014. http://bit.ly/2Xp4PIU.

88  Часть I. Общие сведения об обмане искусственного интеллекта

Рис. 4.7. Две сильно отличающиеся звуковые волны
с одинаковой длиной волны (частотой) и амплитудой

Звуковая волна на рис. 4.7, а является примером «идеальной» звуковой
волны, представляющей один тон. А звуковая волна на рис. 4.7, б — пример
зашумленного звука, который мы можем слышать в повседневной жизни, —
волны, формируемой множеством сигналов различной частоты от разных ис­
точников, которые отражаются от объектов и образуют сложные гармоники.

Цифровое представление аудиоданных
Преобразование аналоговых звуковых волн в цифровой формат осуще­
ствляется путем измерения интенсивности волны с регулярным интервалом
дискретизации. Поэтому простейшее цифровое представление аудиосигна­
ла — это последовательность чисел, отражающих интенсивность звуковой
волны в каждый конкретный момент времени.
Здесь опять же не следует забывать о точности, поскольку от нее во многом
зависит, будет ли у злоумышленника возможность для генерации вредонос­
ных аудиоданных. Точность цифровых аудиоданных определяется двумя
факторами: тем, насколько часто отбираются значения, и тем, насколько
точным является каждое значение интенсивности. Это оценивается по
частоте измерения аналоговых данных и точности кодирования каждого
значения, то есть частоте дискретизации и битовой глубине (количеству
бит, используемых для каждого значения) соответственно. Битовая глуби­
на определяет точность измерения каждого звукового значения, подобно
цветовому разрешению визуальных данных.

Глава 4. ГНС-обработка изображений, аудио- и видеоданных   89

Частота дискретизации представляет собой временной эквивалент про­
странственного разрешения изображений применительно к аудиоданным.
Это показано на рис. 4.8.

Рис. 4.8. Эффект от снижения частоты дискретизации
и битовой глубины цифровых аудиоданных

ГНС для обработки аудиоданных
Как и в случае обработки изображений, традиционные методы обработки
звука появились намного раньше, чем ГНС-технологии. Глубокие нейронные
сети избавили нас от необходимости вручную определять характеристики
звука. В то же время при нейросетевой обработке звука по-прежнему приме­
няются традиционные методы для извлечения низкоуровневой информации,
общей для всех задач.
Если не вдаваться в подробности, то при использовании нейросетевых
технологий для обработки аудиоданных можно выбрать один из двух
подходов.
‰‰ Можно произвести обучение сети с использованием сырых цифровых
аудиоданных. Затем следует научить сеть извлекать признаки, относящи­
еся к конкретной задаче. Это позволяет получить очень точные модели;

90  Часть I. Общие сведения об обмане искусственного интеллекта
однако обучение сети с использованием первичных неупорядоченных
аудиоданных требует огромного количества данных, что часто делает
такой подход трудноосуществимым.
‰‰ Можно дать нейронной сети определенную фору, выполнив предвари­
тельную обработку звука традиционными методами, а затем произвести
обучение с помощью предварительно обработанных данных. Такой подход
ведет к сокращению и упрощению этапа обучения, а также уменьшению
объема необходимых для обучения данных.
Предварительная обработка аудиоданных обычно выполняется с использо­
ванием преобразования Фурье — очень изящного математического метода
для разложения сигнала сложной формы, представляющего множество
различных частот (наподобие показанного на рис. 4.7, б), на соответству­
ющие частотные составляющие. Эту информацию затем можно представить
в виде спектрограммы, отражающей изменение частотных составляющих
с течением времени.
Для построения спектрограммы производится расчет амплитуды каждой
частотной составляющей внутри следующих друг за другом (и, возможно,
перекрывающихся) временных окон с использованием преобразования
Фурье. Для графического представления спектрограммы производится объ­
единение временных окон частотных составляющих с отражением значений
интенсивности с помощью цвета; что может получиться в итоге, показано
на рис. 4.9. Слева — общий принцип построения спектрограммы, а справа —
пример реальной спектрограммы.
В некоторых случаях на этапе предварительной обработки могут извлекаться
только актуальные для решаемой задачи аспекты звука с отбрасыванием
всей остальной информации. Например, для более точного соответствия
тому, как звуковые данные обрабатываются в слуховой системе человека,
звуковой сигнал может быть представлен в виде мел-частотного кепстра
(MFC). Это особенно полезно при обработке, имитирующей человеческое
восприятие (например, обработке речи).
Теперь рассмотрим базовую задачу обработки звука — классификацию.
Эта задача является необходимым предварительным этапом для выполне­
ния других, более сложных задач, например обработки речи. Как и в случае
классификации изображений, данная задача сводится к тому, чтобы отнести
звуковой клип к определенной категории в зависимости от его характеристик.
Набор возможных категорий зависит от используемых тестовых данных

Глава 4. ГНС-обработка изображений, аудио- и видеоданных   91

и области применения; это могут быть названия певчих птиц или типы ис­
точников звука, например «двигатель».

Рис. 4.9. Спектрограмма отражает изменение интенсивности по разным частотам с течением времени

Как решить эту задачу с помощью ГНС? Один из способов — просто ви­
доизменить архитектуру СНС так, чтобы на вход подавалось изображение
спектрограммы; при этом данная задача фактически превращается в задачу
обработки изображений. Визуальные особенности спектрограммы будут
указывать на наличие породившего их звука — так, например, лай собаки
будет иметь соответствующие визуальные признаки, которые сможет из­
влечь архитектура СНС. Данное решение, по сути, сводится к преобразо­
ванию временного измерения в пространственное и обработке последнего
с помощью сети.
Еще один способ заключается в том, чтобы использовать другую разно­
видность нейронной сети, способную работать с последовательностями.
Речь идет о так называемой рекуррентной нейронной сети.

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

92  Часть I. Общие сведения об обмане искусственного интеллекта
Примером данных, значение которых определяется их последовательностью,
может служить текст и такая информация с привязкой ко времени, как речь.
Для выявления закономерностей в последовательностях данных нельзя ис­
пользовать обычную ГНС или СНС прямого распространения, поскольку
такие сети принимают во внимание только один фрагмент данных в отдель­
ности. Однако РНС позволяет находить зависимости и паттерны в последо­
вательных данных за счет сохранения определенных данных (или состояний)
в промежутке между последовательными входными сигналами.
Самый простой архитектурный подход к РНС сводится к следующему:
скрытый слой принимает в качестве входных данных не только выходной
сигнал предыдущего слоя, но и свой собственный выходной сигнал. То есть
выходной сигнал слоя подается вперед, в следующий слой (как в преды­
дущих примерах). Но, кроме этого, снова подается на его вход в качестве
дополнительного входного сигнала для его текущих вычислений. Таким
образом, предыдущий выходной сигнал скрытого слоя оказывает влияние
на обработку текущего входного сигнала. На рис. 4.10 показана простая
иллюстрация этого.

Рис. 4.10. Базовый принцип архитектуры РНС

Проблемой простых РНС является то, что они не позволяют выявлять пат­
терны, охватывающие длинные последовательности, то есть зависимости
в данных, которые разделены между собой другими данными. Хорошим

Глава 4. ГНС-обработка изображений, аудио- и видеоданных   93

примером такого случая является речь, где вероятность обнаружения той
или иной фонемы может зависеть от того, какие звуки были произнесены
несколько мгновений ранее. При обучении простой РНС градиент функции
штрафа обычно исчезает или устремляется к бесконечности. Фактически
этап математической оптимизации не может обеспечить правильное решение,
которое бы учитывало взаимосвязи между широко разнесенными последова­
тельными данными. Это не позволяет в достаточной мере минимизировать
функцию штрафа, чтобы РНС хорошо выполняла свою задачу.
Для решения этой проблемы широко используется более сложная разновид­
ность РНС — сеть с долгой краткосрочной памятью (Long Short-Term Memory,
LSTM). Узлы такой сети выглядят сложнее по сравнению с тем, что показано
на рис. 4.10. Они включают в себя компонент, сохраняющий состояние, и ре­
гуляторы потока данных (шлюзы). Эта более сложная архитектура позволяет
и «запоминать» предыдущие данные последовательности, и «забывать» их,
если они не представляют важности. Именно эта способность забывать делает
возможной оптимизацию сети в процессе обучения.
Различные виды LSTM-сетей немного отличаются друг от друга компонов­
кой LSTM-модулей (например, в них могут использоваться разные шлюзы).
LSTM-сети демонстрируют очень хорошие результаты для ряда задач, таких
как распознавание рукописного текста и речи.
Архитектуру LSTM широко применяют для обработки звука, когда требуется
распознавать распределенные по времени звуковые паттерны. Это особенно
актуально для интерпретации звуковых сигналов, смысл которых зависит
от содержания всех его частей (например, пение птиц или речь человека).
На рис. 4.11 показано, как можно использовать РНС для обработки аудио­
данных, предварительно преобразованных в спектрограмму. Предваритель­
но обработанные данные о частотных составляющих представляют собой
двумерный тензор (двумерную матрицу), одно измерение которого служит
для представления амплитуды звука той или иной частоты, а другое — для
представления времени1. В данном примере РНС генерирует такое же ко­
личество фреймов, каждый из которых представляет выходной сигнал РНС
для определенного входного сигнала в последовательности, то есть один
набор частотных составляющих звука для определенного момента времени
генерирует набор вероятностей обнаружения тех или иных звуков.
1

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

94  Часть I. Общие сведения об обмане искусственного интеллекта

Рис. 4.11. Типичная последовательность обработки аудиоданных
с предварительным преобразованием в спектрограмму

Обработка речи
Обработка речи — очень интересная область применения глубоких нейрон­
ных сетей, для которой актуальна тема вредоносных аудиоданных — моти­
вом для создания вредоносного звука является желание обмануть системы
распознавания речи.
Распознавание речи представляет собой чрезвычайно сложную вычисли­
тельную задачу. Во-первых, нужно извлечь из данных звуки, образующие
«строительные блоки» человеческой речи — фонемы. Люди могут нечетко
выговаривать слова, говорить с разным акцентом и разной скоростью, низ­
ким или высоким голосом, и, кроме того, часто присутствует фоновый шум.
Все это существенно затрудняет задачу правильной идентификации каждой
отдельной фонемы. После извлеченные фонемы необходимо соотнести
с реальными словами и предложениями. При этом возможно несколько
вариантов такого отображения; выбор подходящего варианта зависит от
языка и контекста.

Глава 4. ГНС-обработка изображений, аудио- и видеоданных   95

При преобразовании речи в текст нейронная сеть обычно является состав­
ной частью более длинной последовательности обработки. Так, в частности,
типичная последовательность преобразования речи в текст может выглядеть
следующим образом.
1. LSTM-сеть принимает в качестве входных данных MFC-спектрограмму
и выдает список текущих вероятностей для каждого из возможных сим­
волов текстовой системы. Этот этап представлен на рис. 4.11. В английском
языке выдаваемые вероятности будут соответствовать буквам от «a» до «z»
и символу межсловного пробела1.
2. LSTM-сеть выдает распределения вероятностей с той же скоростью,
с какой в нее поступают входные данные. Это серьезная проблема, по­
скольку иногда люди говорят очень медленно, а иногда — очень быстро.
Таким образом, длина последовательности вероятностей соответствует
длине входных аудиоданных, а не длине фонетической транскрипции.
Для сопоставления входных аудиоданных с фонетической транскрипцией
требуется дополнительный этап обработки.
Широкое распространение получил метод коннекционной временной классификации (Connectionist Temporal Classification, CTC)2. Данный метод
фактически сжимает и приводит в порядок вероятности обнаружения
символов таким образом, чтобы из них получились допустимые фразы.
Так, например, приняв высоковероятный выходной сигнал _cc_aa_t, метод
CTC сгенерирует слово cat.
3. У нас уже есть список вероятностей для различных фонетических транс­
крипций, но пока нет окончательной фразы. Последний шаг состоит в том,
чтобы взять наиболее вероятные «первичные» фразы и сопоставить их
с расшифровкой, подходящей для используемого языка. Это не всегда
возможно в силу того, что слова часто обладают одинаковыми характери­
стиками (например, в английском языке многие слова нельзя однозначно
сопоставить с их фонетическим эквивалентом). Поэтому на данном этапе
обработки обычно используется языковая модель, включающая в себя
информацию о языке, вероятности различных последовательностей,
произношении, грамматике и именах.
1

Существует также отличный от пробела специальный пустой символ для представ­
ления пропусков в аудиоданных.

2

Graves A. et al. Connectionist Temporal Classification: Labelling Unsegmented Sequence
Data with Recurrent Neural Networks // Proceedings of the 23rd International Confe­rence
on Machine Learning (2006): 369–376. http://bit.ly/2XUC2sU.

96  Часть I. Общие сведения об обмане искусственного интеллекта

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

Цифровое представлениевидеоданных
Видеоданные представляют собой последовательность изображений, на­
зываемых кадрами. Соответственно, точность видеоданных определяется
разрешением изображений и количеством кадров, снимаемых за секунду
(частотой кадров).

ГНС для обработки видеоданных
Видеоданные можно анализировать, просто рассматривая каждое изображение
в отдельности — во многих случаях этого будет вполне достаточно. Напри­
мер, обнаружение и распознавание лиц может выполняться кадр за кадром,
то есть путем поочередной подачи каждого кадра в нейронную сеть.
Вместе с тем дополнительное временное измерение также открывает воз­
можности для интерпретации движения. Это позволяет углубить интер­
претацию видеоданных до более сложной семантической интерпретации,
такой, например, как:
‰‰ отслеживание сущностей. Отслеживание траекторий конкретных объ­
ектов (например, людей или транспортных средств) в течение какого-то
времени. Это может включать в себя логический вывод позиционной
информации в том случае, когда объект заслоняется чем-то другим или
покидает сцену;
‰‰ распознавание действий. Углубление концепции распознавания объектов
до обнаружения активности в пределах сцены с помощью дополнитель­
ной информации о движении. Примером может служить распознавание
управляющих жестов устройства или обнаружение в пределах сцены
определенного поведения (например, агрессии). Возможность распо­
знавать действия в видеоданных позволяет выполнять и другую высоко­
уровневую обработку, такую как создание описаний для видеороликов.
Как и в случае изображений и звука, в сфере обработки видео тоже суще­
ствуют традиционные подходы, в которых не используются нейронные сети.

Глава 4. ГНС-обработка изображений, аудио- и видеоданных   97

Но опять же глубокие нейронные сети избавляют нас от необходимости
вручную определять правила для выделения признаков.
Неудивительно, что временной компонент повышает сложность обработки
кадров. В то же время существуют методы, позволяющие справиться с до­
полнительным измерением за счет использования архитектурных принципов,
описанных ранее для СНС и РНС. Так, например, один из подходов сводится
к трехмерным сверткам. Это расширение принципов свертки, используемых
в СНС для обработки изображений, включающее в себя третье временное
измерение смены кадров, которое обрабатывается таким же образом, как
пространственные измерения в пределах каждого кадра. Еще один подход
заключается в том, чтобы совместить пространственное обучение СНС с по­
следовательным обучением РНС. Это можно реализовать с помощью СНС
для извлечения признаков из каждого кадра с последующим использованием
этих признаков в качестве последовательных входных данных для РНС.
Если для цветных изображений входные данные нейронной сети пред­
ставляют собой четырехмерный тензор, то для видео это уже пятимерный
тензор. Так, например, одноминутный видеоролик с частотой дискретизации
15 кадров в секунду будет в целом содержать 900 кадров. Допустим, что это
видео с низким разрешением (224 × 224 пикселя), в RGB. Таким образом,
четырехмерный тензор будет такой формы:
shape = (900, 224, 224, 3)

Если во входном пакете десять таких видеороликов, эта форма станет пя­
тимерной:
shape = (10, 900, 224, 224, 3)

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

98  Часть I. Общие сведения об обмане искусственного интеллекта
обучаемыми параметрами, поскольку понимание архитектуры целевой сети
и ее параметров играет важную роль при генерации вредоносных образов.
‰‰ Архитектура модели. На верхнем уровне архитектура модели определяет
тип используемых в модели слоев и порядок их следования. Она также
определяет заранее заданные аспекты конфигурации модели. В примере
кода, рассмотренном в конце главы 3, мы определили количество слоев,
типы слоев (ReLU и softmax) и размер каждого слоя. Для более сложных
сетей, таких как СНС, потребуется принять дополнительные архитектур­
ные решения, например, о размере и количестве фильтров в сверточном
слое, типе пулинга и размере окна пулинга, а также величине шага свертки
на каждом из этапов пулинга и свертки.
‰‰ Параметры модели. Наиболее очевидными параметрами модели явля­
ются веса и пороги, какие, например, мы определяли на этапе обучения
в примере из главы 3. При наличии более сложных слоев обычно тре­
буется обучить и ряд других параметров, например параметры каждого
сверточного фильтра.
Архитектур, специально предназначенных для той или иной конкретной за­
дачи, не существует, в то же время есть широко используемые архитектурные
шаблоны, такие как сверточные слои или LSTM-модули.
Проведенные к настоящему моменту исследования вредоносных входных
данных главным образом касались классификации изображений и (в мень­
шей степени) распознавания речи, однако такому обману могут подвергаться
и другие аналогичные типы задач. Так, например, хотя вредоносные изобра­
жения чаще всего используются для обмана классификаторов изображений,
вредоносные методы могут применяться и в отношении семантической сег­
ментации, обнаружения и локализации объекта, поскольку это фактически
расширение базовой задачи классификации1. Еще одним примером является
распознавание лиц — генерация вредоносных входных данных для обмана
систем распознавания лиц осуществляется практически так же, как генера­
ция вредоносных изображений для обеспечения ошибочной классификации
других объектов. В то же время часто возникают другие сложности — напри­
мер, вредоносные искажения обычно трудно замаскировать на лице. В сфере
аудиоданных доказана возможность применения вредоносных образов для
распознавания речи; однако те же методы могут быть применены и для
более простых задач (таких как голосовая верификация и классификация
более простых аудиоданных).
1

Xie C. et al. Adversarial Examples for Semantic Segmentation and Object Detection //
International Conference on Computer Vision, 2017. http://bit.ly/2KrRg5E.

Глава 4. ГНС-обработка изображений, аудио- и видеоданных   99

Классификация изображений
с помощью сети ResNet50
Для иллюстрации классификации изображений в примерах данной книги
используется модель ResNet50. Эта модель выбрана произвольным образом
из числа доступных в Интернете моделей, в основном из-за ее компактности
(она занимает лишь 102 Мбайт). При этом известно, что все остальные ней­
ронные сети для классификации изображений, существующие на текущий
момент, также уязвимы к вредоносным входным данным.
В этом разделе описывается последовательность действий по загрузке клас­
сификатора ResNet50 и генерации предсказаний для одного или нескольких
изображений. Мы воспользуемся этими инструкциями позднее, когда будем
тестировать вредоносные образы.
Фрагменты кода можно найти в файле chapter04/resnet50_classifier.ipynb
в GitHub-репозитории этой книги (http://bit.ly/2IpkqQy).

Для начала нужно импортировать библиотеки TensorFlow и Keras, а также
модель ResNet50:
import tensorflow as tf
from tensorflow import keras
from keras.applications.resnet50 import ResNet50
import numpy as np



model = ResNet50(weights='imagenet', include_top=True)



 Мы будем использовать NumPy для работы с изображением как с много­
мерным массивом.
 Эта команда создает модель ResNet50, обученную на наборе данных
ImageNet. Выражение include_top=True говорит о том, что в данном случае
используются заключительные слои нейронной сети, которые выполняют
классификацию. Этот параметр предусмотрен в силу того, что классифика­
ционные слои не требуются, если модель используется исключительно для
извлечения признаков.
Как и в случае классификатора Fashion-MNIST, полезно посмотреть, что
представляет собой данная модель:
model.summary()

100  Часть I. Общие сведения об обмане искусственного интеллекта
Эта команда сгенерирует следующий вывод (в силу большой глубины сети
ResNet50 это очень длинная таблица, поэтому здесь показаны только строки
с данными о начальных и заключительных слоях):
________________________________________________________________________________
Layer (type)
Output Shape
Param # Connected to
================================================================================
input_1 (InputLayer)
(None, 224, 224, 3) 0
________________________________________________________________________________
conv1_pad (ZeroPadding2D)
(None, 230, 230, 3) 0
input_1[0][0]
________________________________________________________________________________
conv1 (Conv2D)
(None, 112, 112, 64) 9472
conv1_pad[0][0]
________________________________________________________________________________
bn_conv1 (BatchNormalization) (None, 112, 112, 64) 256
conv1[0][0]
________________________________________________________________________________
activation_1 (Activation)
(None, 112, 112, 64) 0
bn_conv1[0][0]
________________________________________________________________________________
pool1_pad (ZeroPadding2D)
(None, 114, 114, 64) 0
activation_1[0][0]
________________________________________________________________________________
max_pooling2d_1 (MaxPooling2D) (None, 56, 56, 64)
0
pool1_pad[0][0]
________________________________________________________________________________
...
________________________________________________________________________________
activation_49 (Activation)
(None, 7, 7, 2048)
0
add_16[0][0]
________________________________________________________________________________
avg_pool (GlobalAveragePooling2(None, 2048)
0
activation_49[0][0]
________________________________________________________________________________
fc1000 (Dense)
(None, 1000)
2049000 avg_pool[0][0]
================================================================================
Total params: 25,636,712
Trainable params: 25,583,592
Non-trainable params: 53,120

Теперь получим изображение для классификации (рис. 4.12):
import matplotlib.pyplot as plt
img_path = '../images/koala.jpg' 
img = image_from_file(img_path, (224,224))
plt.imshow(img)



 Подборку изображений вы найдете в репозитории, но можете использовать
и собственное изображение.
 image_from_file — это простая вспомогательная утилита, которая от­
крывает изображение и масштабирует его до размера 244 × 244 пикселя
перед подачей в классификатор. Код этой функции не приводится здесь
для краткости, однако она включена в виде Python-утилиты в GitHubрепозиторий.

Глава 4. ГНС-обработка изображений, аудио- и видеоданных   101

Рис. 4.12. Вывод программы

Перед подачей изображения на вход сети ResNet50 его необходимо предва­
рительно обработать. Функцию, выполняющую предварительную обработку,
предоставляет библиотека Keras (preprocess_input):
from keras.applications.resnet50 import preprocess_input
normalized_image = preprocess_input(img)

Этап предварительной обработки подготавливает изображение таким об­
разом, чтобы оно было представлено в том же формате, что и изображения,
применявшиеся для обучения сети. Как он будет выглядеть, зависит от
используемой модели. Для модели ResNet50 функция preprocess_input вы­
полняет такие преобразования изображения, как:
‰‰ нормализация — вычитание RGB-значений, усредненных по всему на­
бору обучающих данных, центрирует данные вокруг нулевого среднего
значения для каждого из каналов. Такая нормализация обучающих дан­
ных повышает скорость обучения сети. Последующие тестовые данные
должны проходить такую же нормализацию;
‰‰ изменение порядка следования каналов — модель ResNet50 обучена на
изображениях с порядком следования каналов BGR, а не RGB. Если изо­
бражение представлено в формате RGB, необходимо изменить порядок
следования каналов.
Подробное описание шагов предварительной обработки вы найдете
в файле chapter04/resnet50_preprocessing.ipynb (http://bit.ly/2WO9rUx)
в GitHub-репозитории этой книги.

102  Часть I. Общие сведения об обмане искусственного интеллекта
Теперь мы можем передать нормализованное изображение классификатору:
normalized_image_batch = np.expand_dims(normalized_image, 0)
predictions = model.predict(normalized_image_list)



 Классификатор принимает набор изображений в виде массива np.arrays,
поэтому функция expand_dims должна добавить к изображению дополни­
тельную координатную ось. В данном случае создается набор, содержащий
одно изображение.
После этого последний слой классификатора выдаст нам вектор предска­
заний — большой массив, отражающий степень вероятности для каждой
категории. Мы можем легко вывести первые три категории вместе с соот­
ветствующими предсказаниями, используя для этого следующий код:
from keras.applications.resnet50 import decode_predictions
decoded_predictions = decode_predictions(predictions, top=3)



predictions_for_image = decoded_predictions[0]
for pred in predictions_for_image:
print(pred[1],' : ', pred[2])

 decode_predictions — это удобная вспомогательная утилита, которая из­
влекает из массива predictions наибольшие показатели (в данном случае
извлекаются первые три показателя) и сопоставляет их с соответствующими
метками.
Вот как выглядит результат:
koala : 0.999985
indri : 7.1616164e-06
wombat : 3.9483125e-06

Как видно, модель ResNet50 просто прекрасно справилась с классификацией!
Далее в книге будет показано, что после внесения в то же изображение не­
значительного искажения данная модель уже значительно хуже справляется
со своей задачей.

Часть II

Генерация вредоносных
входных данных

Из части I вы узнали, что представляют собой вредоносные входные данные
и из каких побуждений они могут создаваться, а также изучили основные
принципы глубокого обучения применительно к изображениям и аудиодан­
ным. В части II вы познакомитесь с математическими и алгоритмическими
методами генерации вредоносных данных.
Для начала в главе 5 дано концептуальное разъяснение идей, лежащих в ос­
нове генерации вредоносных данных. Из этой главы вы узнаете, почему глу­
бокие нейронные сети можно обмануть, внеся во входные данные небольшие
изменения, не влияющие на восприятие изображения или звука человеком.
А также каким образом можно математически оценить величину изменений,
достаточных для того, чтобы сделать входные данные вредоносными, и как
особенности человеческого восприятия могут влиять на возможность внести
незаметные изменения в изображения и аудиоданные.
В главе 6 в продолжение темы разъясняются конкретные вычислительные
методы генерации вредоносных входных данных на основе проведенных
в этой области исследований. Вы изучите математические основы некото­
рых методов, а также узнаете различия между ними. Для иллюстрации этих
методов приведено несколько примеров кода, использующих нейронные
сети, представленные в главах 3 и 4.
К концу этой части вы будете знать, почему можно обмануть глубокие ней­
ронные сети, а также какие принципы и методы применяются для осуще­
ствления этого обмана. Эти знания послужат основой для изучения реальных
угроз, описанных в части III.

Глава 5

Базовые принципы вредоносных
входных данных
В этой главе рассмотрены основные принципы генерации вредоносных об­
разов. Отложим подробное рассмотрение математических основ и конкрет­
ных методов на потом, а пока продолжим развивать идеи, представленные
в предыдущих главах. При этом будем использовать аналогии и приближе­
ния для обеспечения интуитивного понимания, перед тем как углубиться
в детали. Наша цель — в общих чертах понять, каким образом добавление
вредоносного искажения или вредоносной заплатки может заставить ГНС
возвращать неверный результат.
Вкратце напомню изложенное ранее.
‰‰ Вредоносное искажение. Сочетание распределенных по входным данным
незаметных (или почти незаметных) незначительных изменений, за­
ставляющее модель возвращать неверный результат. Для изображения
это могут быть небольшие изменения ряда пикселей, распределенных по
всему изображению.
‰‰ Вредоносная заплатка. Дополнение к определенной (пространственной
или временной) области входных данных, заставляющее модель возвра­
щать неверный результат. Вредоносная заплатка обычно вполне заметна
для человека, но часто камуфлируется под нечто неопасное.
В этой главе показано, как можно генерировать вредоносные искажения и за­
платки путем непосредственного манипулирования цифровыми данными.
Хотя вредоносные искажения и заплатки легче применять непосредственно
к входным данным в цифровой форме, их часто можно применять и в физи­
ческом мире (путем изменения дорожных знаков, например, для автономных
транспортных средств), заставляя датчик (камеру или микрофон) генери­
ровать цифровые входные данные, производящие желаемый вредоносный
эффект. В главе 8 вы узнаете, с какими проблемами сталкивается злоумыш­
ленник, когда у него нет доступа к цифровой форме входных данных.

Глава 5. Базовые принципы вредоносных входных данных   105

Вредоносные атаки можно разделить на две основные категории.
‰‰ Нецелевые атаки. Нецелевая (или неизбирательная) атака производится
с целью заставить ГНС возвращать неверный результат, например совер­
шать ошибку в классификации. Пример такой атаки — попытка обмануть
систему распознавания лиц — при этом неважно, какой именно результат
выдаст ГНС; главное, чтобы в изображении не было распознано лицо
конкретного человека.
‰‰ Целевые атаки. Целевая атака производится для того, чтобы заставить
ГНС сгенерировать некоторый конкретный результат, например заста­
вить автономное транспортное средство не распознать знак остановки.
Неудивительно, что осуществить нецелевую атаку легче, чем целевую, по­
скольку при этом не так важен выдаваемый нейросетью результат, а это дает
больший простор для манипуляций с входными данными. В то же время
в обоих случаях применяются практически одни и те же методы.
Прежде чем перейти к непосредственному рассмотрению атак, посмотрим,
что представляют собой исходные входные данные ГНС и извлекаемые из
них признаки — те характеристики, на основе которых модель принимает
решение. Для целей данной главы применяется классификация изображе­
ний — наиболее хорошо исследованная область применения вредоносных
образов. Однако представленные здесь концепции справедливы не только
для обработки изображений; эти идеи в равной мере применимы и в других
сферах, например в области обработки звука.
Освежите свои знания по математике
На тот случай, если вы незнакомы с применяемыми в этой книге математическими обозначениями (или успели их забыть), в приложении
приводятся примеры их использования с соответствующим кратким
описанием.

Входное пространство
Глубокие нейронные сети представляют собой обучаемые функции, ото­
бражающие некоторый сложный входной сигнал на результат. В главе 3
рассмотрен пример простой задачи классификации изображений с ис­
пользованием набора данных Fashion-MNIST. В главе 4 изложены способы

106  Часть II. Генерация вредоносных входных данных
применения принципов глубокого обучения к другим сценариям, таким как
более сложное распознавание изображений, классификация аудиоданных
и преобразование речи в текст.
В каждом из описанных в предыдущих главах сценариев сеть принимает
сложные входные данные. Так, например, описанный в главе 4 класси­
фикатор ResNet50 принимает данные из набора ImageNet, обрезанные до
размера 224 × 224 пикселя. То есть каждое изображение в общей сложно­
сти содержит 50 176 пикселей. Цвет каждого пикселя определяется тремя
каналами (красным, зеленым и синим); таким образом, каждое изобра­
жение представляется с помощью 50 176 × 3 (150 528) значений. Каждое
из этих значений находится в диапазоне от 0 до 255. Это дает нам просто
ошеломляющую цифру 256150 528 возможных изображений, которые можно
предоставить классификатору!
Аналогичным образом можно подсчитать1, что фотография со сравнительно
низким разрешением 1,3 мегапикселя может представить 256 3 932 160 раз­
личных вариантов изображения. Даже для классификатора монохромных
изображений низкого разрешения из набора Fashion-MNIST возможно
256784 вариантов входных данных2.
Один из способов визуализировать все возможные изображения ГНС — по­
местить каждое в отдельную точку многомерного входного пространства.
Каждое измерение такого пространства представляет одно значение входного
нейрона (или исходный признак). То есть на каждый пиксель приходится
одно измерение (три значения и три измерения на пиксель, если изображение
цветное, и одно значение и одно измерение на пиксель, если изображение
в оттенках серого). Для классификатора ResNet50 входное пространство
будет включать в себя 150 528 измерений, каждое из которых может при­
нимать одно из 256 значений. Для классификатора изображений из набора
Fashion-MNIST входное пространство состоит из 784 измерений.
Поскольку мы не можем представить графически столь сложное пространство
с громадным количеством измерений, для наших целей будем использовать
приведенное на рис. 5.1 сверхупрощение, где каждый из двух рассматрива­
емых наборов данных представлен двумя измерениями.
1

Количество пикселей составляет 1280 × 1024 = 1 310 720. У каждого пикселя есть три
канала, что дает нам 3 932 160 значений, каждое из которых находится в диапазоне
от 0 до 255.

2

Каждое изображение содержит 28 × 28 = 784 пикселя в оттенках серого цвета.

Рис. 5.1. Входные пространства сверхупрощены до двух измерений (очевидно, не в масштабе)

Глава 5. Базовые принципы вредоносных входных данных   107

108  Часть II. Генерация вредоносных входных данных
Каким бы громадным ни казалось такое входное пространство, следует
отметить, что большинство содержащихся в нем возможных изображений
не выглядит как изображение в общепринятом смысле, представляя собой
случайные комбинации пикселей или, возможно, узоры, не отображающие
каких-либо объектов физического мира. Однако в то же время каждое
возможное изображение занимает конкретное положение во входном про­
странстве. Изменение одного пикселя изображения приведет к смещению
в пространстве по соответствующей координатной оси (или нескольким
осям для цветного изображения).
Как описано в главе 3, для каждого входного изображения ГНС возвращает
вектор вероятностей, содержащий по одному значению для каждой воз­
можной категории.
В случае классификатора изображений из набора Fashion-MNIST изобра­
жениям из определенной области входного пространства может быть при­
своена высокая вероятность принадлежности к категории «Сумка» (Bag),
а изображениям из другой области — высокая вероятность принадлежности
к категории «Пальто» (Coat), «Сандалии» (Sandal) или какой-либо другой
категории одежды. Каждой точке входного пространства соответствует набор
из десяти значений, возвращаемых данным классификатором изображений.
Входное пространство и пространство признаков
Под пространством признаков понимается такое же многомерное пространство, но с варьированием по признакам, а не по исходным входным
значениям. То есть пространство признаков представляет собой совокупность различных комбинаций признаков, на основе которых алгоритм
МО производит вычисление предсказаний.
В более традиционных приложениях машинного обучения (в которых
не используется ГНС) подаваемые в обучаемую модель исходные данные
отражают признаки, на основе которых модель вычисляет свои предсказания. Это означает, что пространство признаков в таком случае
совпадает с входным пространством.
В отличие от этого глубокие нейронные сети обычно обучаются извлечению признаков из исходных данных. Следовательно, в контексте
нейронных сетей под пространством признаков следует понимать
пространство с меньшим количеством измерений, содержащее более
сложные признаки, извлеченные ГНС с целью вычисления предсказаний.

Глава 5. Базовые принципы вредоносных входных данных   109

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

Это удобно представить в виде ландшафтных карт с контурами. Более высо­
кие (более темные) участки при этом будут обозначать области с более высо­
кой вероятностью принадлежности к соответствующей категории («Пальто»
(Coat), «Сумка» (Bag) и т. д.). Несмотря на всю простоту данной аналогии,
можно брать ее за основу при дальнейшем рассмотрении математических
разъяснений генерации вредоносных образов.
Для примера увеличим ту область входного пространства, в которой нахо­
дится изображение пальто, отобразив с помощью разной степени затенения
вероятность принадлежности к каждой из десяти категорий изображений.
В результате мы получим набор из десяти ландшафтов предсказаний.
Выглядит он примерно так, как показано на рис. 5.2. Здесь, как и раньше,
используется сверхупрощение представления многомерного входного про­
странства до всего двух измерений.
На каждой из этих карт темным цветом окрашены те области входного
пространства, для которых предсказывается высокая вероятность принад­
лежности к соответствующей категории. Для изображений, содержащихся
в более светлых областях, предсказывается меньшая вероятность принад­
лежности к соответствующей категории.
Изображение относится к одной из категорий в зависимости от того, какое
из предсказаний является наибольшим; при этом часто накладывается до­
полнительное ограничение на его минимальную величину. На рис. 5.2 эта
минимальная величина составляет 0,5 и обозначена на картах сплошной
линией. Соответственно, изображения, которые выходят за эту границу на
ландшафте предсказаний, относятся к другой категории (или не относятся
ни к одной из них). В примере, показанном на рис. 5.2, изображение не вы­
ходит за границу на ландшафте, относящемся к категории «Пальто» (Coat),
и поэтому классифицируется правильно.

110  Часть II. Генерация вредоносных входных данных

Рис. 5.2. Ландшафты предсказаний модели для каждой из категорий — увеличение в крошечной
области входного пространства

Обобщение обучающих данных
Каждый из показанных на рис. 5.2 ландшафтов представляет собой ото­
бражение позиции изображения на конкретную категорию. То есть это
просто графическое представление формулы, отражающей алгоритм работы
нейронной сети:
,
где степень затенения отражает одно из значений в возвращаемом векто­
ре у для изображения пальто, расположенного в позиции х; при условии,
что ГНС обладает набором весов и порогов, обозначенных буквой Θ.
Вспомните, о чем говорилось в подразделе «Как обучается ГНС» на с. 63,
из которого вы узнали, как ГНС обучается путем коррекции всех ее весов
и порогов, обозначенных буквой Θ. Проводя аналогию с ландшафтом, мож­
но рассматривать этот процесс как сдвиг ландшафтов предсказаний таким
образом, чтобы каждый из обучающих примеров оказался на высоте, соот­
ветствующей его фактической категории (или максимально приблизился
к ней). Значения х обучающих примеров остаются неизменными, а ландшафт
видоизменяется так, чтобы ГНС выдавала, насколько это возможно, точный
результат для обучающих данных.

Глава 5. Базовые принципы вредоносных входных данных   111

Градиентный спуск представляет собой процесс итеративной коррекции
параметров функции с целью сместить контуры таким образом, чтобы
обеспечивалась правильная классификация обучающих данных. Перед
началом обучения параметры инициализируются случайными значения­
ми, потому ландшафт плохо соответствует обучающим примерам. В ходе
обучения ландшафт постепенно меняет свою форму по мере изменения
параметров, оптимизируя функцию под обучающий набор. Это иллюстри­
рует рис. 5.3.

Рис. 5.3. Изменение ландшафта предсказаний входного пространства
во время обучения

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

112  Часть II. Генерация вредоносных входных данных
Чтобы модель могла выдавать точные предсказания для всех возможных
вариантов входных данных, она должна «заучить» правильные ландшафты
предсказаний для областей, содержащих и окружающих обучающие при­
меры, а также областей, не содержащих обучающие примеры. Это непростая
задача, поскольку обучающие примеры, как правило, содержатся лишь в не­
большой части входного пространства и, соответственно, многие области
входного пространства будут за пределами того набора данных, на котором
сеть обучена должным образом.
Задача ГНС заключается в том, чтобы обеспечить точные результаты для
всех возможных вариантов входных данных, основываясь на обобщении
характеристик, но при этом точность модели очень сильно зависит от того,
какие именно характеристики обучающих данных будут обобщаться.
Например, какие именно аспекты изображения из набора Fashion-MNIST
заставляют ГНС отнести его к категории «Пальто» (Coat)? Если это не те же
характеристики, которые бы применял человек, то злоумышленник может
использовать это различие для своих неблаговидных целей.
Кроме того, обучающие данные часто не отражают все возможные разновид­
ности входного сигнала. Модель вряд ли сможет выдать точный результат
для данных, находящихся за пределами распределения обучающих данных,
которые называются данными вне распределения, и вредоносные образы
могут использовать эту уязвимость алгоритма.
Данные вне распределения
Данные вне распределения не укладываются в распределение обуча­
ющего набора данных. Если мы рассмотрим набор всех возможных
вариантов входных данных ГНС, то неудивительно, что для задач обработки изображений и аудиоданных большая часть потенциальных
входных сигналов будет находиться за пределами этого распределения.
Так, например, обучающий набор данных Fashion-MNIST содержит
60 000 примеров. Довольно большая цифра, не так ли? Однако она
окажется совсем небольшой, если мы сравним ее с числом возможных
вариантов входных данных для монохромного изображения размером
28 × 28 пикселей, равным 784256. Точно так же, несмотря на то что набор
данных ImageNet содержит свыше 14 миллионов изображений, даже если
мы обрежем изображения до размера 224 × 224 пикселя, обучающий
набор будет отражать лишь очень малую часть входного пространства
всех возможных вариантов (150 528256).

Глава 5. Базовые принципы вредоносных входных данных   113

На практике обучающие данные, как правило, представляют собой примеры реальных данных (таких как фотографии), а данные вне распределения представляют собой данные, которые обычно «не встречаются
в природе». Например, данные вне распределения могут представлять
собой случайные комбинации пикселей или изображения, подвергнутые
необычному преобразованию. Обычно для таких входных данных модель
вполне ожидаемым образом выдает предсказания, не позволяющие уверенно сделать тот или иной выбор. В то же время иногда модель также
уверенно выдает неверный результат.
Распознавание данных вне распределения — очень сложная задача; мы
вернемся к ее обсуждению в главе 10, где рассмотрены способы защиты.

Эксперименты с данными вне распределения
Вы можете для интереса посмотреть, как классификаторы на базе ГНС
могут интерпретировать изображения, генерируемые случайным образом,
или какие-либо необычные изображения. На рис. 5.4 показаны два примера
предсказаний, возвращаемых моделями Fashion-MNIST и ResNet50 при
представлении им случайно сгенерированных изображений.

Рис. 5.4. Предсказания категорий для случайно сгенерированных изображений

114  Часть II. Генерация вредоносных входных данных
Примеры кода: эксперименты со случайными данными
Вы можете протестировать классификатор Fashion-MNIST на случайных изображениях, используя файл chapter05/fashion-MNIST_random_
images.ipynb, размещенный в GitHub-репозитории этой книги (http://
bit.ly/2KsCMlI).
Возможно, вы захотите попробовать улучшить модель путем ее до­
обучения с помощью обучающих изображений, содержащих случайно
сгенерированные пиксели, и дополнительной классификационной
метки «Без категории» (Unclassified). В блокноте Jupyter содержится
код для этого.
В файле chapter05/resnet50_random_images.ipynb (http://bit.ly/2Flr7Bj)
представлен код для тестирования модели ResNet50 на случайных
данных.

Классификатор Fashion-MNIST выдал наибольшую степень вероятности для
категории «Сумка» (Bag) (см. на рис. 5.4, слева), и он относит к этой катего­
рии подавляющее большинство (более 99 %) представляемых ему случайно
сгенерированных изображений. Это означает, что данная модель обучилась
относить к категории сумок большую часть своего входного пространства.
При этом изображение часто идентифицируется как «Сумка» (Bag) не на
основе определенных пикселей, а просто потому, что оно не относится
ни к какой другой категории. Модель ResNet50, по крайней мере, уже не дает
уверенного ответа в отношении случайно сгенерированного изображения,
то есть не производит его неверную идентификацию.

Что «думают» ГНС
Для вычисления предсказаний математическая функция ГНС выделяет
и количественно оценивает характеристики данных. При этом определенные
характеристики визуальных данных могут представлять для алгоритма боль­
шую важность, чем другие. Например, определенная комбинация пикселей
может указывать на наличие такого признака, как «нос собаки», тем самым
увеличивая вероятность того, что на изображении представлена собака.
Это вполне логично, однако каким образом можно выяснить, какие именно
признаки ГНС принимает в расчет? Иными словами, что «видит» (если
данные визуальные) или «слышит» (при аудиоданных) модель? Такая ин­
формация может быть полезной при создании вредоносных образов.

Глава 5. Базовые принципы вредоносных входных данных   115

Лучше всего это можно проиллюстрировать опять же на примере классифи­
кации изображений. Можно взять каждый отдельный пиксель изображения
и рассчитать его значимость для конкретной категории, то есть степень его
влияния на отнесение изображения к определенной категории. Высокое
значение этого показателя будет говорить о большой важности пикселя при
совершении нейросетью выбора в пользу конкретной категории, а низкое
значение — о его малой важности при совершении этого выбора. Для ра­
боты с изображениями можно представить все эти значения в виде карты
значимости и посмотреть, какие аспекты изображения учитывает ГНС при
отнесении его к той или иной категории.
Математические основы значимости
Значимость оценивается путем вычисления частной производной от выход­
ного сигнала по входному сигналу:

.
Если небольшое изменение входного сигнала ведет к значительному измене­
нию выходного сигнала, то входной сигнал является значимым.
Таким образом, значимость конкретного пикселя i для категории j определя­
ется путем вычисления следующей частной производной:

.
Теоретически это градиент измерения i в позиции изображения на ландшафте
предсказаний категории j. Чем круче градиент, тем больше значимость. Дан­
ный метод расчета позволяет лишь приблизительно оценить значимость,
поскольку использует непрерывные (линейные) градиенты. О линейности
модели речь пойдет в подразделе «Использование линейности модели» на
с. 139, а также из главе 6 вы узнаете, как показатели значимости могут быть
использованы для создания вредоносных образов.

Примеры кода: генерация карт значимости
Существует несколько пакетов Python для визуализации значимости
пикселей изображения. Представленные в данной главе карты значимости сгенерированы с помощью кода, использующего пакет Python
Keras-vis (http://bit.ly/2RmVXhH).

116  Часть II. Генерация вредоносных входных данных
На тот случай, если вы захотите поэкспериментировать с кодом, использовавшимся для генерации представленных в данной главе карт
значимости, этот код с подробными разъяснениями включен в GitHubрепозиторий данной книги. Для этих экспериментов можно использовать данные модели Fashion-MNIST, включенные в файл chapter05/
fashionMNIST_vis_saliency.ipynb (http://bit.ly/2FeU69N), или данные модели ResNet50, включенные в файл chapter05/resnet50_vis_saliency.ipynb
(http://bit.ly/2XYclaR).

На рис. 5.5 приведен пример изображения вместе с тремя наиболее веро­
ятными категориями согласно нейросетевому классификатору ResNet50.
Под изображением справа представлена соответствующая карта значимо­
сти, на которой более светлым цветом выделены пиксели, представляю­
щие наибольшую важность при генерации предсказаний. Классификатор
ResNet50 выдал три наибольших значения вероятности для категорий
«аналоговые часы» (analog_clock), «настенные часы» (wall_clock) и «звон­
ница» (bell_cote). (Звонница — это небольшое помещение, в котором под­
вешивают колокола.)
Данные из набора ImageNet
В приведенных здесь примерах использовалась модель ResNet50, обученная на данных из набора ImageNet. Если вам интересно посмотреть,
с помощью каких данных обучалась эта модель, поищите в наборе
ImageNet (http://www.image-net.org) обучающие примеры, отнесенные
к различным категориям.

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

Глава 5. Базовые принципы вредоносных входных данных   117

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

Рис. 5.5. Изображение часов с соответствующей картой значимости (классификатор ResNet50)

Эту идею иллюстрирует рис. 5.6. Нейронная сеть возвращает совершенно
разные результаты для двух обрезанных версий одного и того же изобра­
жения.
Для верхнего изображения, где свечи занимают доминирующее положение,
ГНС выдала наибольшую вероятность для категории «свеча» (candle), следом
за которой идет категория «спичка» (matchstick), и, как видно из соответ­
ствующей карты значимости, основное внимание нейросети сосредоточено
на пламени свечей. При этом также выделен и круглый контур торта; по­
скольку такая форма характерна для чугунных котелков, третье по величине
предсказание — «чугунный котелок» (dutch_oven).
На втором изображении свечи частично обрезаны, в результате чего ГНС
ошибочно отнесла его к категории «хоккейная шайба» (puck). Объяснение
такой классификации дает карта значимости — выделенный на изображении
диск напоминает своей формой хоккейную шайбу. При этом ГНС считает

118  Часть II. Генерация вредоносных входных данных
значимой одну из свечей, но не ее пламя. Это может объяснить третье пред­
сказание — «шпиндель» (spindle).

Рис. 5.6. Изображения торта с соответствующими картами значимости (классификатор ResNet50)

Глава 5. Базовые принципы вредоносных входных данных   119

Теперь рассмотрим модель Fashion-MNIST, обучением которой мы занима­
лись в главе 3. Как вы помните, это очень простая нейронная сеть, обученная
производить классификацию изображений с очень низким разрешением по
десяти категориям одежды. Но, несмотря на то что данный классификатор
занимает самую низкую ступень в мире ГНС-моделей, он справляется со
своей задачей с достаточно высокой точностью.
На рис. 5.7 изображены пиксели, которые рассматривались простой моделью
как наиболее важные, когда она правильно классифицировала несколько
таких изображений, как «Брюки» (Trouser) и «Ботильоны» (Ankle boot).
Для более наглядной демонстрации корреляции между пикселями и изо­
бражениями в данном случае карты значимости были наложены на исход­
ные изображения. При этом для простоты на картах значимости показаны
только десять наиболее важных пикселей для определения предсказанной
категории.

Рис. 5.7. Изображения из набора Fashion-MNIST с наложенными на них соответствующими картами
значимости для целевой категории (базовый классификатор)

Как показано на рис. 5.7, при определении категории изображений ГНС
выбирает значимые пиксели довольно неожиданным для нас образом. На­
пример, создается впечатление, что модель научилась распознавать брюки,
основываясь главным образом на пикселях верхних и нижних строк изо­
бражения, вместо того чтобы, к примеру, учитывать форму штанин, по­
вторяющую форму ноги. Точно так же для категории «Ботильоны» (Ankle
boot) наибольшую важность, похоже, представляют определенные пиксели
в области носка ботильона. Неожиданно важную роль опять же играют
определенные кластеры пикселей по краям изображения. Поскольку при
обучении модели требовалось найти простейший способ распознавания

120  Часть II. Генерация вредоносных входных данных
категорий одежды, она могла выбрать не те признаки, которые в первую
очередь использовали бы для этой цели мы, люди. Таким образом, пикселей
по краям изображения достаточно для дифференциации между категориями
одежды ограниченного набора данных Fashion-MNIST.
Теперь, уже зная, что такое входное пространство и значимость, посмотрим,
как эти понятия связаны с генерацией вредоносных входных данных.

Искажающая атака: максимальныйэффект
при минимальном изменении
Как следует из предыдущих разделов, вредоносные образы заставля­
ют ГНС-модель возвращать неверный ответ, используя слабые места
в непротестированных областях входного пространства. Эти примеры
могут вносить искажения, которые не могут обмануть человека, или же
незаметны для него1. Таким образом, какая бы разновидность изменения
ни использовалась для превращения неопасного изображения во вредо­
носное, общий принцип состоит в том, что это должно быть минимальное
изменение данных, производящее максимальный эффект на выдаваемый
нейросетью результат.
Для начала посмотрим, как можно внести искажение — изменение нескольких
значимых пикселей или очень незначительное изменение большого количе­
ства пикселей — в изображение пальто из набора Fashion-MNIST, обеспечив
его ошибочную классификацию. Изменение нескольких пикселей изображе­
ния приведет к его смещению в другую позицию во входном пространстве,
с изменением его положения на исходных ландшафтах, представленных на
рис. 5.2. Этот сдвиг показан на рис. 5.8 с помощью стрелки, идущей от обо­
значенного кружком исходного положения изображения к обозначенному
треугольником «вредоносному» положению изображения.
С одной стороны, изображение нужно изменить достаточно сильно для
того, чтобы оно уже не находилось в области входного пространства, отно­
сящейся к категории «Пальто» (Coat). При целевой атаке дополнительно
требуется, чтобы изображение сместилось в область входного пространства,
1

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

Глава 5. Базовые принципы вредоносных входных данных   121

соответствующую целевой категории. В примере на рис. 5.8 измененное
изображение классифицируется как «Кроссовки» (Sneaker). Таким об­
разом, чтобы сгенерировать вредоносное искажение, необходимо опре­
делить, изменение каких пикселей приведет к наибольшему отклонению
от правильной категории и, возможно, наибольшему смещению в сторону
целевой категории.

Рис. 5.8. Нецелевая атака — смещение за пределы области входного пространства, относящейся
к категории «Пальто» (Coat)

С другой стороны, любое необходимое искажение следует минимизировать
таким образом, чтобы оно не выглядело как значительное изменение с точки
зрения человека. То есть в идеале искажение должно быть минимальным,
чтобы изображение только вышло из области категории «Пальто» (Coat) или
лишь вошло в область целевой категории1. Существует несколько подходов —
можно либо сосредоточиться на изменении тех пикселей, которые являются
1

Вредоносный пример с невысокой степенью надежности может «уйти» обратно в об­
ласть исходной (правильной) категории, если он будет находиться слишком близко
к границе, делающей его вредоносным. Такое может произойти, например, в случае,
когда пиксели изображения претерпевают небольшое изменение в последовательно­
сти обработки до его поступления в нейросетевой классификатор. Более надежный
вредоносный пример может находиться чуть дальше от области исходной категории
или чуть глубже внутри области целевой категории (при целевой атаке).

122  Часть II. Генерация вредоносных входных данных
наиболее важными для изменения категории (наиболее значимыми), либо
изменить много пикселей, но незначительно, чтобы общий эффект от этого
изменения не был заметен.
Несмотря на всю упрощенность, данное объяснение иллюстрирует базовые
принципы, которые лежат в основе любых способов генерации вредоносных
образов. Генерация вредоносных образов обычно сводится к изменению не­
вредоносного образа со смещением его в другую часть входного пространства
таким образом, чтобы предсказания модели изменились до максимального
желаемого эффекта.

Вредоносная заплатка: максимальное
отвлечение внимания
Генерация вредоносной заплатки строится практически на тех же принципах,
что и искажающая атака. Опять же цель здесь — изменить входные данные
таким образом, чтобы они сместились во входном пространстве либо из об­
ласти исходной категории (при нецелевой атаке), либо в область целевой
категории (при целевой атаке). В то же время в данном случае изменяется
лишь некоторая локализованная область изображения, а не все изображение
с искажениями общего характера. Изменяемую область, или заплатку, нужно
оптимизировать таким образом, чтобы изображение сместилось в другую
область входного пространства.
Если цель заключается в том, чтобы обеспечить ошибочное отнесение к кате­
гории «коала», то в идеале заплатка должна отражать все то, что характерно
для типичного коалы, включая каждый аспект, который модель считает
важным для этой категории. Заплатка должна содержать все значимые при­
знаки коалы, чтобы для ГНС она имела даже больше сходства с коалой, чем
любое реальное изображение коалы, то есть это должна быть до крайности
«коалистая» коала. Это позволяет ей надежно занять положение в нужной
области входного пространства, не привлекая внимания к особенностям
исходного изображения. Прекрасным примером такой заплатки является
показанный на рис. 1.5 тостер.
При оптимизации вредоносного образа может также учитываться размер
заплатки, ее позиция в пределах изображения и, возможно, то, как она будет
восприниматься людьми. Изменение размера заплатки и ее позиции в преде­
лах изображения влияет на итоговое положение изображения во входном
пространстве и, соответственно, на его категорию.

Глава 5. Базовые принципы вредоносных входных данных   123

Сверхнормальный стимул
Принцип отвлечения внимания за счет неестественного утрирования
особенностей реальных вещей действует не только в сфере ИИ. Учеными
доказано, что поведение людей и животных подчиняется аналогичному
принципу «сверхнормального стимула».
В 1950-е годы этолог Николас Тинберген (Nikolaas Tinbergen) наглядно
показал, что искусственно утрированные версии природных объектов
могут активнее индуцировать у чаек инстинктивные модели поведения,
чем непосредственно природные объекты1. Он доказал это, используя
увеличенные макеты яиц и сделанные из вязальных спиц «клювы»,
окраска которых утрированно имитировала окраску реального клюва.
Впоследствии психологи распространили эти идеи и на поведение человека в таких областях, как увлечение нездоровой едой, развлечения
и искусство.

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

Tinbergen N. The Herring Gull’s World: A Study of the Social Behavior of Birds. — London:
Collins, 1953. — P. 25.

124  Часть II. Генерация вредоносных входных данных
заметными для человека, чем другие; именно поэтому иногда недостаточно
использовать лишь математическую количественную оценку.
В следующем разделе рассмотрены математические методы оценки разницы
между неопасными и вредоносными входными данными, а в подразделе
«Особенности человеческого восприятия» далее — дополнительные слож­
ности, связанные с особенностями человеческого восприятия.

Математические методы оценки искажения
Существует несколько математических методов оценки расстояния в много­
мерном пространстве. Результат такой оценки называют Lp-нормой, где
значение р определяет конкретный способ расчета расстояния. Краткое
описание этих способов представлено на рис. 5.9.

Рис. 5.9. Графическое представление разновидностей Lp-нормы для случая,
когда количество измерений равно 2

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

Глава 5. Базовые принципы вредоносных входных данных   125

Интересной особенностью многомерных пространств является то, что при
любой размерности такого пространства расстояние между двумя точками
в нем вычисляется аналогично тому, как определяется евклидово расстояние.
И хотя L2-норма хорошо подходит для оценки расстояния в понятных для нас
двумерных и трехмерных пространствах, оказывается, она плохо подходит
для оценки расстояния в пространствах с большим количеством измерений.
L2-норма часто используется при генерации вредоносных образов, но далеко
не всегда является наиболее удобной мерой величины искажения.
Альтернативный способ оценки расстояния сводится к тому, чтобы вы­
числять L1-норму, которая представляет собой просто сумму всех различий
между пикселями. Эта норма называется метрикой «такси» или «расстоянием
городских кварталов» (манхэттенским расстоянием). В то время как L2-норма
оценивает расстояние по прямой, L1-норма напоминает кратчайший путь
движения такси через город с прямоугольной планировкой улиц.
Еще один подход сводится к тому, чтобы оценивать разницу между двумя изо­
бражениями по общему количеству пикселей с отличающимися значениями.
Если говорить в терминах входного пространства, то у двух изображений
просто оценивается количество отличающихся координат.
На языке математики этот показатель называется L0-«нормой»1. Этот подход
кажется вполне обоснованным, поскольку обычно изменение небольшого
количества пикселей является менее заметным по сравнению с изменени­
ем большого количества пикселей. В то же время L0-норма не накладывает
ограничений на величину изменения каждого пикселя, в результате чего
можно получить значительное изменение, затрагивающее лишь небольшую
часть изображения.
Наконец, вы можете утверждать, что на самом деле количество изменя­емых
пикселей не играет какой-либо роли, если изменение каждого пикселя
почти или совершенно незаметно для человеческого глаза. Следуя этому
принципу, можно было бы просто проследить за тем, чтобы максимальный
размер вносимых в пиксели изменений не превышал пороговое значение.
Такой подход с использованием L∞-нормы (нормы бесконечности) получил
широкое распространение в сфере исследований, поскольку он позволяет
вносить в изображение множество очень мелких и незаметных изменений,
которые в совокупности оказывают значительный эффект на классифика­
цию изображения.
1

Здесь намеренно используются кавычки; если вам интересно почему, см. разъяснение
математических основ во врезке далее.

126  Часть II. Генерация вредоносных входных данных

Расчет математических норм
Формулы для расчета Lp-норм выглядят следующим образом. Общая формула
для расчета Lp-нормы:

.
где |d|1, |d|2, ... |d|n — вектор между двумя позициями входного пространства
(например, вредоносным искажением или «заплаткой»).
Прямые скобки обеспечивают положительное значение абсолютной величины
(или модуля) каждого элемента, вне зависимости от того, как направлен вектор
относительно соответствующей оси — в положительном или отрицательном
направлении. Скобки иногда опускают при четном р, поскольку возведение
элементов вектора в четную степень гарантированно обеспечивает положи­
тельный результат.
При р, равном 1, вычисляется L1-норма (норма «такси») по следующей
формуле:

.
То есть требуется просто суммировать абсолютные величины всех пиксель­
ных изменений. При р, равном 2, вычисляется L2-норма (евклидова норма)
по формуле:

,
а при p, равном ∞, вычисляется L∞-норма:

.
Нужно просто определить, чему равно максимальное пиксельное изменение.
И наконец, еще один полезный показатель величины искажения — количество
изменяемых пикселей (то есть количество ненулевых элементов вектора).
Этот показатель называют L0-«нормой», однако он не является математи­
ческой нормой, поскольку при р = 0 необходимо вычислить выражение 00,
результат которого не определен.

Так какой же из описанных показателей лучше использовать злоумыш­
леннику, чтобы эффективно осуществить искажающую атаку? Стоит ли
ему изменить лишь несколько пикселей (минимизировать L0-норму), либо
изменить множество пикселей, следя за тем, чтобы каждое изменение было

Глава 5. Базовые принципы вредоносных входных данных   127

небольшим (минимизировать L∞-норму), либо, возможно, минимизировать
общую величину смещения изображения во входном пространстве (с по­
мощью L2 или L1-нормы)? Ответы на эти вопросы зависят от нескольких
факторов, которые рассмотрены далее в этой книге, в том числе от особен­
ностей человеческого восприятия и нужного уровня устойчивости вредо­
носного образа к предварительной обработке данных.

Особенности человеческого восприятия
При создании вредоносного образа злоумышленнику необходимо сгенери­
ровать такой входной сигнал, который бы неправильно интерпретировался
сетью, но не распознавался как вредоносная атака человеком. Это означает,
что изменение должно быть либо незаметным для человека, либо настолько
незначительным, чтобы человек его сознательно или подсознательно игно­
рировал.
Главная особенность нашего восприятия состоит в том, что в силу физи­
ческих ограничений оно охватывает лишь некоторый диапазон электро­
магнитных и звуковых волн, доступных нашим органам чувств. Поэтому
вполне естественно предположить, что данные, обрабатываемые с помощью
нейросетевых технологий, имитирующих принимаемые человеком решения
в отношении изображений или аудиоданных, должны находиться в рамках
ограничений, налагаемых нашими глазами и ушами. В значительной мере
это действительно так для цифровых данных, рассчитанных на восприятие
человеком. Так, например, такие графические форматы, как PNG, JPEG
и т. д., рассчитаны на представление информации, находящейся в видимой
области. Точно так же обработка аудиоданных обычно ограничена диапа­
зоном слышимых человеком частот или, если мы имеем дело с обработкой
речи, диапазоном частот, издаваемых голосовым трактом человека. Если бы
не было этих ограничений, злоумышленник мог бы обмануть ГНС, просто
дополнив данные невидимой или неслышимой для человека информацией
(пример такой атаки см. в примечании ниже).
«Дельфинья атака»: использование ультразвука
В 2017 году Гуоминь Чжан (Zhang) совместно с другими учеными продемонстрировали возможность эффективного использования ультразвуковых голосовых команд для добавления звуковой вредоносной
заплатки, которая была бы неслышимой для людей, но в то же время
различимой для цифровых помощников (такая разновидность атаки

128  Часть II. Генерация вредоносных входных данных
названа «дельфиньей атакой»)1. Какой бы интересной ни была эта разновидность атаки, ее можно легко предотвратить, просто проследив за тем,
чтобы цифровой помощник отфильтровывал те звуки, которые не может
слышать человек, или, что еще лучше, те звуки, которые не может издавать
человеческий голос. Следовательно, вредоносные атаки, использующие
не воспринимаемые человеком диапазоны частот электромагнитных или
звуковых волн, не могут представлять сколь-нибудь серьезную угрозу.

Если предположить, что все данные представлены в рамках воспринимаемого
человеком диапазона, использование описываемых здесь математических по­
казателей различий осложняется тем, что они присваивают всем элементам
входных данных одинаковые веса. Эти показатели подразумевают, что все
пиксели изображения воспринимаются равномерно и, таким образом, вносят
равный вклад в восприятие этого изображения человеком. Вполне очевидно,
что это не так — доказано, что люди, как правило, меньше замечают изме­
нения в насыщенных деталями областях изображения и больше — в таких
простых областях, как участки ясного неба.
Для аудиоданных вредоносные образы часто генерируются с использованием
показателя искажения, выраженного в логарифмических единицах измере­
ния — децибелах (дБ) и показывающего относительный уровень громкости
искажения по отношению к исходному аудиосигналу. Это позволяет надежно
обеспечить незаметность вредоносных аудиоданных для человека, поскольку
при таком подходе изменения, вносимые в тихих участках аудиосигнала,
будут в любом случае сравнительно небольшими по сравнению с измене­
ниями, вносимыми в его громких участках.
К настоящему времени уже проведено достаточно много исследований по
вопросу о том, какие аспекты изображений и звуковых сигналов привлекают
внимание людей в наибольшей мере, то есть представляют собой значимые
признаки с точки зрения человека, а не с точки зрения машины (о которых
мы говорили в разделе «Что “думают” ГНС» на с. 114). Вредоносные образы
могут быть улучшены за счет смещения искажений тех аспектов входных
данных, которые в меньшей степени интересны человеку и больше интересны
модели. Рассмотрим изображения: люди подсознательно разбивают инфор­
мацию изображения на составные части, уделяя больше внимания переднему
плану и меньше — фону. При этом, используя эффективные и в то же время
1

Zhang G. et al. DolphinAtack: Inaudible Voice Commands // Proceedings of the 2017
ACM SIGSAC Conference on Computer and Communications Security, 2017. http://
bit.ly/2MWUtft.

Глава 5. Базовые принципы вредоносных входных данных   129

простые методы, злоумышленник может обеспечить себе больший простор
действий при создании вредоносных входных данных, например, путем пре­
имущественного размещения искажений в насыщенных деталями фоновых
областях изображений.
В психологии есть понятие «абсолютный порог ощущения» — это величина
стимула, минимально необходимая для того, чтобы человек замечал его
в 50 % случаев.
Неудивительно, что это значение варьируется у разных людей и даже у од­
ного человека в зависимости от аспектов физиологического состояния.
Злоумышленнику, если он знает, при превышении какого порога стимулы
становятся заметными для человека, проще создать вредоносные данные.
Еще один интересный фактор — адаптация органов чувств. Со временем
наши органы чувств становятся менее чувствительными к постоянно дей­
ствующему стимулу, что позволяет нам замечать те изменения, которые
важны для нашего выживания. Например, находясь за рулем автомобиля,
мы спустя некоторое время перестаем замечать шум работающего двига­
теля. Существует и обратная закономерность — мы крайне чувствительны
к резким изменениям в поступающей сенсорной информации, таким как
неожиданные звуки. Соответственно, злоумышленник может повысить свои
шансы остаться незамеченным за счет постепенного увеличения искажения,
которое он вносит в видео- или аудиоданные.

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

.
В этом уравнении f — функция, применяемая алгоритмом ГНС для генерации
результата. Как вы помните из главы 3, буквой Θ обозначаются все параметры

130  Часть II. Генерация вредоносных входных данных

нейронной сети (ее веса и пороги). После успешного обучения эти параметры
уже не подвергаются изменениям; значит, это уравнение можно записать
в упрощенном виде так:

,
где x — та точка исходного входного пространства, в которой находится
входной сигнал.
Что именно обозначают буквы x и y в этом уравнении, зависит от конкретного
типа входных данных и решаемой задачи. Если ГНС используется в качестве
классификатора монохромных изображений, x представляет собой вектор
действительных чисел, каждое из которых отражает значение соответству­
ющего пикселя:
R.

Для классификатора y является отдельной категорией, такой как «собака» или
«кошка», поставленной в соответствие элементу перечисления, получаемому на
основе вектора вероятностей, выдаваемого выходным слоем ГНС (например,
путем определения максимального значения в этом векторе). То есть в данном
случае y является не вектором вероятностей, а числом из диапазона 1... L, где
L — количество категорий. Это можно записать следующим образом:

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

.
где:
yy xadv — вектор, представляющий собой обновленные (вредоносные) вход­
ные данные);
yy x — вектор, представляющий собой исходные входные данные;
yy r — вектор, представляющий собой небольшое изменение исходных вход­
ных данных.
Чтобы вектор xadv успешно справлялся со своей неблаговидной задачей, соот­
ветствующий результат модели (категория) должен отличаться от результата,
выдаваемого для невредоносного входного сигнала. Это можно записать так:

.
При целевой атаке есть дополнительное ограничение:

,
где yt — целевая категория вредоносной атаки.

Глава 5. Базовые принципы вредоносных входных данных   131

Независимо от того, как именно осуществляется атака — с помощью иска­
жения или заплатки, необходимо минимизировать величину вредоносного
изменения r, чтобы сделать его незаметным (или менее заметным) для чело­
века. Если это оценивается с помощью простой Lp-нормы для искажающей
атаки, то задача состоит в том, чтобы найти изображение, расположенное
как можно ближе к x, то есть нужно дополнительно указать, что величина
искажения r должна быть минимально возможной. При нецелевой атаке это
можно записать так:

.
При целевой атаке:

.
Величина числа р зависит от того, какой способ оценки расстояния ис­
пользуется для оценки вредоносного образа. Так, например, если для такой
оценки применяется евклидово расстояние, то предыдущее уравнение будет
выглядеть так:

.
Эта оценка может производиться и более сложным образом, например с учетом
того, как вредоносное искажение влияет на человеческое восприятие, однако
в подавляющем большинстве случаев вредоносные образы оцениваются с по­
мощью Lp-нормы.
Задача злоумышленника — найти оптимальное значение r, которое бы удов­
летворяло предыдущим ограничениям. С математической точки зрения это
можно обеспечить путем применения одного из существующих алгоритмов
условной оптимизации (некоторые из них рассмотрены в главе 6). Какой бы
алгоритм мы ни использовали, он должен найти величину искажения r для
создания вредоносного образа, выражающуюся следующей формулой:

.
При целевой атаке эта задача принимает следующий, чуть более конкрети­
зированный вид:

.

Глава 6

Методы генерации
вредоносных искажений
В главе 5 рассмотрены базовые принципы вредоносных входных данных.
Но как такие данные генерируются на практике? В этой главе представлены
методы генерации вредоносных изображений и приведены некоторые при­
меры кода, с которыми вы сможете поэкспериментировать. Из главы 7 вы
узнаете, как такие методы могут встраиваться в реальные атаки в том случае,
когда ГНС является составной частью более длинной последовательности
обработки и злоумышленнику нужно решать ряд дополнительных проблем,
таких как обеспечение незаметности атаки.
Проекты с открытым исходным кодом
На сегодняшний день существует целый ряд инициатив, направленных
на привлечение широкой общественности к изучению вредоносных атак
и способов защиты от них, таких как CleverHans (bit.ly/2N7t7mG), Foolbox
(foolbox.readthedocs.io) и Adversarial Robustness Toolbox (bit.ly/2XZ7EgW)
компании IBM. Об этих проектах подробно рассказано в главе 10.
Для единообразия во всех примерах кода, приводимых в книге, используется библиотека Foolbox.

Прежде чем приступить к рассмотрению методов создания вредоносных
входных данных, возможно, вы захотите услышать ответ на следующий во­
прос: насколько сложно создать вредоносный образ методом проб и ошибок?
Например, злоумышленник может просто внести в изображение случайное
искажение и посмотреть, как это скажется на предсказаниях модели. К со­
жалению, добиться успеха таким путем злоумышленнику очень непросто.
Поскольку на этапе обучения ГНС производит обобщение на основе обу­
чающих данных, она обычно устойчива к мелким случайным искажениям,
значит, такие изменения вряд ли будут успешными. Представленный на

Глава 6. Методы генерации вредоносных искажений   133

рис. 6.1 пример показывает, что, даже когда величина слу­
чайно генерируемого искажения каждого пикселя становится
достаточно большой, классификатор ResNet50 не перестает
выдавать правильную категорию. Неверная категория вы­
дается только после того, как искажение будет заметным.

Рис. 6.1. Предсказания, выданные моделью ResNet50 для изображения со случайными изменениями;
для каждой итерации указана соответствующая максимальная величина искажения каждого пикселя

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

134  Часть II. Генерация вредоносных входных данных
‰‰ Методы черного ящика с оценкой. Эти методы позволяют корректировать
вредоносные входные данные на основе предварительных предсказаний
(оценок) ГНС. Методы черного ящика с оценкой могут иметь доступ ко
всем оценкам или только к самым высоким из них (например, к десяти
наибольшим). Такие методы занимают промежуточное положение между
методами белого ящика и методами ограниченного черного ящика — для
их использования нужно иметь более подробные сведения о результатах
по сравнению с методами ограниченного черного ящика, но не требует­
ся иметь полное представление об алгоритме модели, как того требуют
методы белого ящика.
Примитивный способ генерации вредоносных искажений
Чтобы поэкспериментировать с кодом, результат работы которого
представлен на рис. 6.1, воспользуйтесь блокнотом Jupyter chapter06/
resnet50_naive_attack.ipynb (bit.ly/2FlGCZN), размещенным в GitHubрепозитории этой книги.
Для классификатора Fashion-MNIST воспользуйтесь блокнотом Jupyter
chapter06/fashionMNIST_naive_attack.ipynb (bit.ly/2WSB1oO).

Какая информация доступна злоумышленнику при использовании каждой
из этих трех групп методов, графически представлено на рис. 6.2.

Рис. 6.2. Информация, доступная злоумышленнику при использовании методов белого ящика,
черного ящика с оценкой и ограниченного черного ящика

Глава 6. Методы генерации вредоносных искажений   135

В оставшейся части этой главы поочередно рассмотрен каждый из этих
методов.

Использование замещающей модели: атаки копией
и переносом
Для разработки и тестирования вредоносных входных данных зачастую мож­
но (и, как вы убедитесь впоследствии, иногда очень полезно) использовать
замещающую ГНС в качестве копии или аппроксимации целевой ГНС. Это
позволяет злоумышленнику сначала разработать атаку, используя методы
белого или черного ящика с оценкой применительно к замещающей нейро­
сети, а затем уже применить ее в отношении реальной цели.
Данный подход имеет преимущество, так как позволяет злоумышленнику
оставаться незамеченным на этапе окончательной доработки атаки (обращение
к реальной модели может вызвать подозрение). Это также единственный до­
ступный вариант действий, если у злоумышленника нет доступа к реальной
модели.
Когда замещающая модель идентична целевой модели, она называется
атакой с копированием (replica attack). Если замещающая модель является
аппроксимацией цели, то это атака с переносом (transfer attack), поскольку
для достижения успеха при этом нужно перенести вредоносные входные
данные на целевой алгоритм.
Описываемые в этой главе методы (белого ящика, черного ящика с оценкой
и ограниченного черного ящика) могут использоваться применительно
и к целевой, и к замещающей сети, потому не отражают степень доступа
злоумышленника к реальной целевой ГНС или его осведомленности о ней.
Более подробно об этом — в главе 7.

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

136  Часть II. Генерация вредоносных входных данных

Поиск во входном пространстве
В главе 5 вы узнали о смещении изображений за границы категорий во
входном пространстве с помощью тщательно подобранных искажений.
При этом ставилась задача минимизировать величину смещения во входном
пространстве (оцениваемую с помощью какой-либо Lp-нормы), в то же время
реализовав требуемую вредоносную цель, будь то целевая или нецелевая
ошибочная классификация. Обратимся еще раз к примеру с набором данных
Fashion-MNIST из этой главы и посмотрим, как внесение изменений в изо­
бражение пальто сказывается на выдаваемых ГНС предсказаниях. При этом
нас главным образом интересует ландшафт предсказаний категории «Пальто»
(Coat), представленный на рис. 6.3 в увеличенном виде.

Рис. 6.3. Нецелевая атака — смещение изображения за пределы области входного пространства,
относящейся к категории «Пальто» (Coat)

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

Глава 6. Методы генерации вредоносных искажений   137

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

Рис. 6.4. Итеративный поиск вредоносного положения во входном пространстве

Как бы просто это ни выглядело на первый взгляд, выполнить такой поиск
не так легко, как кажется. Для этого нужно проверить огромное количество
различных пиксельных изменений и комбинаций. Конечно, можно попы­
таться решить эту задачу методом грубой силы, например перебирая все
возможные варианты небольших искажений входных данных и оценивая,
какой вариант дает наилучший результат. Однако, как объясняется в при­
мечании далее, это трудноосуществимо с точки зрения вычислительных
возможностей.
Многочисленные возможные искажения
Предположим, что разрешение изображения составляет 224 × 224 пик­
селя. Допустим, мы решили сгенерировать все возможные варианты
небольших изменений этого изображения, минимизировав величину
изменения любого конкретного пикселя так, что она равна либо +ε,
либо –ε, где ε — некоторая небольшая величина. Сгенерировав все эти
изменения, мы, возможно, смогли бы проверить каждое из них на предмет соответствия критериям вредоносности. Но сколько вариантов нам
потребовалось бы проверить?

138  Часть II. Генерация вредоносных входных данных
Как вы помните из главы 5, для представления цветного изображения
с низким разрешением (224 × 224 пикселя) требуется 150 528 пиксельных значений (где каждый пиксель имеет три значения для красного,
зеленого и синего цветов).
У каждого генерируемого нами искаженного варианта исходного изображения отдельные пиксельные значения могут остаться без изменений
либо измениться на величину ε в большую или меньшую сторону.
Таким образом, существует 3150 528 комбинаций искажений, при которых
каждое пиксельное значение может изменяться только ровно на величину ε от его исходной величины. Если быть совершенно точными, то из
этой цифры еще нужно вычесть 1, поскольку мы не должны учитывать тот
вариант искажения, при котором каждый пиксель остается неизменным.
Если мы попробуем вычислить это значение с помощью калькулятора, то
он выдаст ошибку переполнения. С другой стороны, можно вычислить
его в ячейке блокнота Jupyter с помощью следующего выражения:
pow(3,150 528) – 1.

(Возвращаемое значение слишком длинное, чтобы приводить его здесь.)

Каким бы трудноосуществимым ни был поиск во входном пространстве,
если у злоумышленника есть доступ к алгоритму ГНС, он получает огромное
преимущество, поскольку с помощью этого алгоритма может сгенерировать
математическую аппроксимацию поиска, уменьшающую количество про­
веряемых комбинаций.
В своем первоначальном исследовании1 Шегеди и др. ускорили процесс по­
иска вредоносных образов в области, окружающей исходное изображение,
используя алгоритм Бройдена — Флетчера — Гольдфарба — Шанно с огра­
ниченной памятью (Broyden-Fletcher-Goldfarb-Shanno, L-BFGS)). Алгоритм
L-BFGS представляет собой математический метод, позволяющий повысить
эффективность поиска во входном пространстве за счет аппроксимации
вероятностных градиентов во входном пространстве вблизи определенной
точки. Ограниченная память здесь означает дальнейшую аппроксимацию
с целью уменьшения объема оперативной памяти, необходимого для вы­
полнения итеративного поиска.
Как оказалось, алгоритм L-BFGS позволяет успешно выявлять вредоносные
образы, но делает это очень медленно и с большими вычислительными затра­
1

Szegedy et al. Intriguing Properties of Neural Networks.

Глава 6. Методы генерации вредоносных искажений   139

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

Использование линейности модели
В 2015 году некоторые из участников первоначального исследования вре­
доносных образов обратились к данной проблеме еще раз. Они доказали,
что для генерации вредоносных образов можно с успехом использовать
такой простой алгоритм, как метод быстрого градиента (Fast Gradient Sign
Method, FGSM)2.
При этом алгоритм FGSM никоим образом не рассматривался как наилучший способ поиска вредоносных входных данных, а скорее, был призван
продемонстрировать ту особенность алгоритмов ГНС, которая существенно
упрощает задачу создания вредоносных входных данных. Рассмотрим, что
представляет собой этот алгоритм, а затем сделаем выводы.
Алгоритм FGSM рассчитывает то направление во входном пространстве,
движение по которому из места размещения изображения является кратчай­
шим путем к ошибочной классификации. Это направление рассчитывается
с использованием градиентного спуска и практически такой же функции
потерь, которая используется при обучении сети (о ней говорилось в под­
разделе «Как обучается ГНС» на с. 63). На концептуальном уровне такой
расчет направления можно рассматривать просто как косвенный способ
оценки крутизны контуров на ландшафте предсказаний в месте размещения
изображения.
Этот расчет вредоносного направления производится очень приблизительно,
с присвоением каждому входному значению (пиксельному значению, или,
иными словами, координатной оси в многомерном входном пространстве)
одного из двух знаков:
‰‰ плюс — указывает, что для обеспечения ошибочной классификации со­
ответствующее входное значение лучше увеличить;
1

Произведенные впоследствии оптимизации этого метода позволили генерировать ис­
кажения более эффективно, как, например, описано Николасом Карлини и Дэвидом
Вагнером в статье «Об оценке устойчивости нейронных сетей» (Carlini N., Wagner D.
Towards Evaluating the Robustness of Neural Networks, 2016). http://bit.ly/2KZoIzL.

2

Goodfellow I. J. et al. Explaining and Harnessing Adversarial Examples, 2015. http://
bit.ly/2FeUtRJ.

140  Часть II. Генерация вредоносных входных данных
‰‰ минус — указывает, что для обеспечения ошибочной классификации со­
ответствующее входное значение лучше уменьшить.
Столь простое присвоение плюсов или минусов может показаться не вполне
логичным, однако метод FGSM не учитывает относительную важность от­
дельных изменений, принимая во внимание лишь их направление (положи­
тельное или отрицательное). Если, например, увеличение одного входного
значения будет обеспечивать более значительный вредоносный эффект, чем
увеличение другого значения, то, несмотря на это, оба значения получат знак
плюс и будут обработаны совершенно одинаково.
Определив направление, метод FGSM вносит крошечное искажение в каж­
дое входное значение (пиксельное значение для изображения), добавляя
его при положительном направлении вредоносного изменения и вычитая
его в противном случае. При этом можно надеяться на то, что из-за этих
изменений изображение лишь немного выйдет за границу области, относя­
щейся к его правильной категории, тем самым обеспечив нам (нецелевой)
вредоносный образ.
Базовый принцип метода FGSM сводится к тому, чтобы изменять все вход­
ные значения (пиксели), но на очень небольшую величину. В основе такого
подхода лежит тот факт, что множество крошечных изменений вдоль каждой
координатной оси многомерного пространства может давать значительное
изменение в совокупности; изменение множества пикселей на крошечную
величину обеспечивает значительное смещение во входном пространстве.
Если вы вспомните о Lp-норме, то вы поймете, что данный метод сводится
к минимизации максимального изменения отдельного пикселя, то есть ис­
пользует L∞-норму.
Самое удивительное в методе FGSM, что он вообще работает! Эта мысль
наглядно изображена на рис. 6.5, где показано входное пространство двух
различных ГНС-моделей. На обоих изображениях показан укрупненный
вид входного пространства, поэтому стрелка, указывающая разницу между
положением исходного изображения и положением нового изображения,
сгенерированного алгоритмом FGSM, в действительности отражает очень
небольшое смещение вдоль каждой координатной оси.
Граница области, относящейся к категории «Рубашка» (Shirt), обозначена
одинаковой сплошной линией в обоих случаях, но, как видите, градиенты
модели слева отличаются большим единообразием. Форма контуров здесь
предполагает плавный, единообразный уклон, в отличие от непоследова­
тельного и сложнопредсказуемого правого ландшафта.

Глава 6. Методы генерации вредоносных искажений   141

Рис. 6.5. Применение метода быстрого градиента (FGSM) в линейной и нелинейной моделях

Направление рассчитываемого алгоритмом FGSM искажения определяет­
ся градиентом в точке расположения исходного изображения. На рисунке
слева простой алгоритм успешно переносит изображение во вредоносную
точку, потому что эти градиенты очень мало изменяются по мере удаления
изображения от исходной точки. Однако, когда градиенты выглядят так, как
показано справа, алгоритму FGSM не удается перенести изображение во вре­
доносную точку, потому что форма градиента вблизи исходного положения
изображения отличается от формы градиентов в более удаленных точках.
Соответственно, сгенерированное алгоритмом изображение по-прежнему
находится в области, относящейся к категории «Рубашка» (Shirt).
В общем случае необходимым предварительным условием для успешного
применения метода FGSM является непрерывность крутизны уклона в не­
котором конкретном направлении. На языке математики это означает, что
реализуемая моделью функция должна демонстрировать линейное поведение.
Когда модель являетсялинейной, мы можем в значительной мере аппрок­
симировать математику для генерации вредоносного искажения, просто
взглянув на локальные градиенты.

142  Часть II. Генерация вредоносных входных данных
Алгоритм FGSM не сможет сгенерировать вредоносные входные данные
наилучшим образом, но он для этого и не предназначен. Продемонстрировав
возможность успешного применения метода FGSM в отношении самых
современных ГНС для классификации изображений, исследователи пока­
зали, что этим алгоритмам в значительной мере свойственна линейность;
ГНС-модели, как правило, обладают единообразными градиентами внутри
ландшафтов входного пространства, как показано на рис. 6.5, слева, а не
такими непоследовательными градиентами, как в правой части этого рисун­
ка. До появления метода FGSM предполагалось, что алгоритмы глубоких
нейросетей формируют более сложные нелинейные градиенты, которые
можно представить в виде ландшафтов с постоянно меняющейся крутизной
и множеством «горбов» и «впадин». Такая линейность имеет место потому,
что при оптимизации на этапе обучения всегда отдается предпочтение самой
простой модели (и простейшим градиентам).
Линейность модели сильно упрощает математические выкладки для генера­
ции вредоносных образов с использованием методов белого ящика, поскольку
позволяет в значительной мере аппроксимировать математику для генерации
вредоносного искажения, просто взглянув на локальные градиенты.
Математические основы метода FGSM
Ниже изложены математические основы алгоритма FGSM. Дополнительные
подробности см. в указанной статье1.
В подразделе «Как обучается ГНС» на с. 63 введено понятие «функция
штрафа», которая служит для оценки того, насколько хорошие результаты
показывает сеть для отдельного входного сигнала. Это можно записать сле­
дующим образом:

.
где:
yy C — функция штрафа глубокой нейросети f с входным сигналом x и пра­
вильным выходным вектором вероятностей y2;
yy Θ — параметры (веса и пороги) сети f.

1

Goodfellow et al. Explaining and Harnessing Adversarial Examples.

2

Классификатор «схлопывает» этот вектор вероятностей до одного значения, пред­
ставляющего наиболее вероятную категорию.

Глава 6. Методы генерации вредоносных искажений   143

Цель обучения нейронной сети состоит в том, чтобы минимизировать штрафы
(оцениваемые с помощью вышеуказанной функции) для всех обучающих при­
меров за счет коррекции весов и порогов. Параметры Θ изменяются до тех пор,
пока сеть не начнет показывать хорошие результаты для обучающих данных.
Теперь посмотрим на функцию штрафа в другом контексте, когда нейронная
сеть уже прошла обучение и ее параметры больше не подвергаются изменени­
ям. На этом этапе обозначенные буквой Θ веса и пороги должны оставаться
неизменными. В то же время изменение входных данных (изображения),
обозначенных буквой x, будет также вести к изменению величины штрафа.
Таким образом, мы можем снова применить функцию штрафа, на этот раз
для оценки эффекта от смещения изображения внутри ландшафта предска­
заний, а не для изменения самого ландшафта предсказаний, как это делалось
на этапе обучения.
Когда изменение величины x повышает уверенность правильного предска­
зания, функция штрафа возвращает меньшее значение. А когда изменение
величины x, наоборот, снижает уверенность правильного предсказания,
величина штрафа увеличивается.
Цель злоумышленника — чтобы изменение величины x увеличило возвраща­
емую этой функцией величину штрафа, поскольку увеличение этой величины
смещает результат от правильного предсказания.
Используя дифференциальное исчисление, можно рассчитать градиенты
функции штрафа для исходного изображения.
Определив знак этих градиентов в соответствии с их направлением, мы по­
лучим необходимое направление движения искажения. Математически это
можно выразить так:

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

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

144  Часть II. Генерация вредоносных входных данных
не выйдет за границу категории, став, таким образом, вредоносным. Наряду
с этим мы можем перепроверять направление градиента на каждой итерации
на тот случай, если модель не является абсолютно линейной. Такой подход
называют базовым итерационным методом1.
Приведенный ниже фрагмент кода демонстрирует пример FGSM-атаки
против классификатора данных из набора Fashion-MNIST, созданного нами
в главе 3. Мы будем использовать в этом примере открытую библиотеку
Foolbox.
Пример кода: градиентная атака
Если хотите поэкспериментировать с кодом FGSM-атаки, приведенным в этом разделе, воспользуйтесь блокнотом Jupyter: chapter06/
fashionMNIST_foolbox_gradient.ipynb (http://bit.ly/2FiRQhO).

Прежде всего следует импортировать необходимые пакеты:
import numpy as np
import matplotlib.pyplot as plt
import tensorflow as tf
from tensorflow import keras

Загрузите модель, сохраненную нами в главе 3, и прогоните через нее те­
стовые изображения:
fashion_mnist = keras.datasets.fashion_mnist
_, (test_images, test_labels) = fashion_mnist.load_data()
test_images = test_images/255.0
model = tf.keras.models.load_model("../models/fashionMNIST.h5")
predictions = model.predict(test_images)





 Загрузка классификатора данных из набора Fashion-MNIST, сохраненного
нами в главе 3.
 Получение предсказаний модели для тестовых данных.
Выберите исходное (невредоносное) изображение и выведите его на экран
(рис. 6.6) вместе с соответствующим предсказанием:
image_num = 7
1



Kurakin A. et al. Adversarial Machine Learning at Scale, 2016. http://bit.ly/31Kr3EO.

Глава 6. Методы генерации вредоносных искажений   145

class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat',
'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']
x = test_images[image_num]
y = np.argmax(predictions[image_num])
y_name = class_names[y]
print("Prediction for original image:", y, y_name)
plt.imshow(x, cmap=plt.cm.binary)

 Измените это число, если хотите выполнить атаку против другого изо­
бражения.
Данный код сгенерирует следующий вывод:
Prediction for original image: 6 Shirt

Рис. 6.6. Вывод программы

Затем создайте модель Foolbox на основе нашей модели Keras:
import foolbox
from foolbox.models import KerasModel
fmodel = foolbox.models.TensorFlowModel.from_keras(model, bounds=(0, 255))

Определите специфику атаки:

146  Часть II. Генерация вредоносных входных данных
attack_criterion = foolbox.criteria.Misclassification()
distance = foolbox.distances.Linfinity




 attack_criterion определяет специфику атаки. В данном случае это просто
обеспечение неправильной классификации.
 Расстояние искажения будет оптимизироваться с помощью L∞-нормы.
Определите метод атаки:
attack = foolbox.attacks.GradientSignAttack(fmodel,
criterion=attack_criterion,
distance=distance)

И запустите атаку:
x_adv = attack(input_or_adv = x,
label = y,
unpack = False) 

 Установка unpack = False означает, что будет возвращаться объект fool­
box.adversarial.Adversarial, а не изображение. Само изображение и другую
информацию о вредоносном образе (например, величину расстояния от ис­
ходного изображения) можно будет извлечь из этого объекта.
Теперь распечатаем результаты (рис. 6.7):
preds = model.predict(np.array([x_adv.image]))



plt.figure()
# Вывод на экран исходного изображения
plt.subplot(1, 3, 1)
plt.title(y_name
plt.imshow(x, cmap=plt.cm.binary)
plt.axis('off')
# Вывод на экран вредоносного изображения
plt.subplot(1, 3, 2
plt.title(class_names[np.argmax(preds[0])])
plt.imshow(x_adv.image, cmap=plt.cm.binary)
plt.axis('off')
# Вывод на экран различий
plt.subplot(1, 3, 3)
plt.title('Difference')
difference = x_adv.image - x
plt.imshow(difference, vmin=0, vmax=1, cmap=plt.cm.binary)
plt.axis('off')
print(x_adv.distance)



plt.show()

 В этой строке мы получаем предсказания для вредоносного образа.
x_adv.image — это компонент объекта Adversarial, представляющий вредо­
носное изображение.

Глава 6. Методы генерации вредоносных искажений   147

 x_adv.distance — объект, представляющий искажение, необходимое для
генерации вредоносного изображения.
Данный код сгенерирует следующий вывод:
normalized Linf distance = 1.50e-04

Рис. 6.7. Вывод программы

Данный код оптимизирован под использование L∞-нормы. Если вы внима­
тельно посмотрите на различия между двумя изображениями, то увидите,
что мы слегка изменили большое количество пикселей.
Прежде чем продолжить, необходимо сделать важную оговорку о приме­
нимости всего того, что говорилось выше о линейности модели, к аудио­
данным. Решения для преобразования речи в текст часто включают в себя
предварительную обработку с применением таких средств, как MFCC
и рекуррентные по своей природе LSTM-модули (см. раздел «Аудиодан­
ные» на с. 87), что вносит в модель нелинейность. Поэтому для успешного
создания вредоносного искажения с использованием такого метода, как
FGSM, в случае системы для преобразования речи в текст потребуется ис­
пользовать множество итеративных шагов, не пытаясь это сделать за один
шаг. Кроме того, присутствие в системах для преобразования речи в текст
последовательности сложной обработки делает генерацию функции потерь
более сложной задачей по сравнению со сферой обработки изображений.
Для этого необходимо минимизировать потери для примера аудиоданных
в рамках всей последовательности обработки (включая такие шаги, как
MFCC и CTC), что, в свою очередь, требует использования более сложных
математических выкладок и повышенной вычислительной мощности1.

1

Carlini, Wagner. Audio Adversarial Examples.

148  Часть II. Генерация вредоносных входных данных

Вредоносная значимость
В разделе «Что “думают” ГНС» на с. 114 введено понятие карт значимости,
позволяющих графически представить те аспекты входных данных, которые
играют наиболее важную роль при расчете предсказаний ГНС. Эта концеп­
ция применяется не только в сфере нейросетевой обработки; такие карты
уже много лет используются для графического представления пикселей (или
групп пикселей), имеющих наибольшую важность для конкретной задачи
машинного распознавания образов.
Расчеты значимости также можно использовать при генерации вредоносных
образов. Знать, какие признаки играют наиболее важную роль при опреде­
лении класса, полезно в том случае, когда нам нужно ограничить искажение
теми областями, изменение которых в наибольшей мере способствует сме­
щению неопасных входных данных в сторону вредоносности. Такой подход,
в частности, демонстрирует метод якобианских карт значимости (Jacobian
Saliency Map Approach, JSMA)1.
Метод JSMA сводится к вычислению показателя вредоносной значимости
для каждого элемента входных данных. В случае изображений такой показа­
тель вычисляется для каждого пиксельного значения (для трех значений на
каждый пиксель для цветных изображений) и отражает его относительную
важность для достижения вредоносной цели. При этом изменение пикселей
с более высоким показателем в большей мере способствует превращению
изображения во вредоносное, чем изменение пикселей с более низким по­
казателем.
Показатель вредоносной значимости конкретного пикселя учитывает сле­
дующие два момента.
‰‰ Влияние изменения пикселя на увеличение вероятностного показателя
для целевой категории (при целевой атаке).
‰‰ Влияние изменения пикселя на уменьшение вероятностных показателей,
выдаваемых для всех других категорий.
Поскольку достижению вредоносной цели в наибольшей мере способству­
ют те изменения входных данных, которые оказывают большое влияние
1

Papernot N. et al. The Limitations of Deep Learning in Adversarial Settings // 1st IEEE
European Symposium on Security & Privacy, 2016. bit.ly/2ZyrSOQ.

Глава 6. Методы генерации вредоносных искажений   149

и в первом и во втором случае, именно такие изменения следует вносить
в первую очередь.
Метод JSMA отбирает те пиксели, которые оказывают наибольшее влияние,
и сдвигает их на заданную величину в актуальном направлении (то есть либо
увеличивает, либо уменьшает их значение). Фактически это смещение на
заданное расстояние вдоль тщательно выбранного направления в многомер­
ном входном пространстве в надежде на то, что изображение попадет в точку
ландшафта предсказаний, удовлетворяющую критериям вредоносности.
Если не удается достичь этой цели, данный процесс повторяется.
Метод JSMA минимизирует количество изменяемых пиксельных значений,
что говорит о том, что для оценки величины изменений на этот раз исполь­
зуется L0-норма.
Математические основы метода JSMA
Для вычисления показателя значимости нужно выяснить, какое относитель­
ное влияние оказывает небольшое изменение каждого входного значения на
каждое выдаваемое предсказание.
Допустим, что у нас есть n входных значений и m выходных категорий. Все
эти относительные изменения можно представить в виде большой матрицы —
так называемой матрицы Якоби — размером m × n. Для каждой комбинации
из пиксельного значения и предсказания эта матрица содержит значение,
указывающее, в какой мере изменение пиксельного значения влияет на со­
ответствующее предсказание.
Каждое из этих значений является производной от функции ГНС f для пред­
сказания j относительно изменения конкретного значения i:1

.
Соответственно выражение для всей матрицы будет выглядеть так:

.

1

Опять же, как и при обратном распространении, эти производные вычисляются
с использованием цепного правила — математического метода, позволяющего рас­
считывать производную от функции f(x) путем представления этой функции в виде
составляющих ее функций каждого слоя ГНС.

150  Часть II. Генерация вредоносных входных данных

На основе этих производных матрицы Якоби, вычисленных для каждой пары
из пиксельного значения и предсказания, мы можем рассчитать значимость
каждого пикселя по отношению к целевой категории, используя следующую
логику.
Значимость увеличения входного значения i для вредоносной целевой кате­
гории t рассчитывается следующим образом:
yy если увеличение этого входного значения ведет к уменьшению целевого
показателя вероятности, то производная:

будет меньше 0. В таком случае данное входное значение не является
вредоносно значимым и просто приравнивается нулю:

;
yy подобным образом, если увеличение входного значения ведет к общему
увеличению предсказаний, выдаваемых для всех других (нецелевых) ка­
тегорий, это не способствует достижению вредоносной цели. Это сумма
всех производных относительно входного значения для всех предсказа­
ний, отличных от целевого. Если эта сумма больше 0, то входное значение
опять же не считается вредоносно значимым и приравнивается 0:

;
yy в противном случае входное значение является вредоносно значимым
и нам остается лишь количественно оценить эту значимость, чтобы ее
можно было сравнивать со значимостью других входных значений. Это
можно сделать путем умножения частной производной, полученной на
первом шаге, на сумму частных производных, полученную на втором
шаге. В силу упомянутых ранее ограничений первый множитель всегда
будет положительным, а второй — отрицательным; поэтому, чтобы сделать
результат положительным, нам следует снабдить это произведение знаком
минус:

.

Глава 6. Методы генерации вредоносных искажений   151

Сведя воедино все вышесказанное, мы можем создать карту значимости s+,
показывающую, в какой мере увеличение каждого входного значения спо­
собствует получению желаемого предсказания:

;
.
Эта карта значимости отражает вредоносную значимость входных значений
в случае их увеличения. Метод JSMA также подразумевает определение того,
какие пиксельные значения в наибольшей мере способствуют обеспечению
неправильной классификации в случае их уменьшения. Лишь немного изменив
логику, мы получим еще одну карту значимости, s−:

;
.
(Обратите внимание, здесь поменялись местами знаки > и