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

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

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

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

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

Что изучает машина

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

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

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

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

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

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

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

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

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

Именно этим оружием можно успешно бить модели машинного обучения.

Состязательные атаки и машинное обучение: сравнение

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

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

Например, в следующем примере достаточно добавить на левую картинку с пандой слой шумов – и знаменитая сверточная нейронная сеть (CNN) GoogLeNet начинает ошибочно классифицировать ее как гиббона. Но для человека и левая, и правая картинка выглядят одинаково.

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

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

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

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

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

Эта ситуация может стать проблематичной в нескольких отношениях. Допустим, есть беспилотный автомобиль, который различает дорожные знаки методом машинного обучения. Если ИИ-модель была отравлена так, чтобы любой знак с определенным триггером классифицировался как ограничитель скорости, то злоумышленник фактически может заставить машину принять знак «STOP» за знак ограничения скорости.

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

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

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

Продвинутые методы отравления данных при машинном обучении

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

В статье “An Embarrassingly Simple Approach for Trojan Attack in Deep Neural Networks” (Издевательски простой метод троянской атаки на глубокие нейронные сети) исследователи ИИ из Texas A&M показали, что отравить модель машинного обучения можно всего несколькими крошечными включениями из пикселей и применив для этого умеренные вычислительные мощности.

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

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

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

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

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

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

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

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

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

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

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

Комментарии (14)


  1. dmitryvolochaev
    15.04.2022 11:08
    +1

    Как система может найти на картинке объект, который мы хотим ей показать? В примере с овцой на пастбище про одну и ту же картинку можно сказать "это овца" и "это пастбище". Когда ребенка учат, что такое овца, ребенок изначально видит некое животное и понимает, что речь идет о нем. Люди понимают указующий жест. Еще есть композиция изображения: фотограф или художник указывает на предмет, помещая его на передний план.

    Может ли ML определять, относится ли конкретный пиксель к предмету или фону? Что если таким методом получать маску объекта и передавать алгоритму классификации только пиксели, выбранные маской?


    1. kocherman
      15.04.2022 16:51
      +1

      OpenCV без труда определяет предметы на фото, расставляет теги, анализируя фон (например, фото сделано на улице или в помещении, время года, и, наверное, самое распространенное - на фото мужчина или женщина).

      Проблема не только в самих пикселях. Сама суть нейронных сетей просто кричит нам о том, что, даже если предыдущие ответы сети были на 99.99% верными, никогда нельзя ставить решение нейронной сети выше решения человека. Нейронная сеть всегда выдает данные имеющие вероятностный характер. Разумеется, если ее тренировать отличать круг от квадрата, показав ей треугольник, она не выдаст правильный результат. Именно этим нейронные сети отличаются от простых алгоритмов, написанных человеком, для которых 2+2 всегда 4, а если нет, то алгоритм выдаст ошибку.

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


    1. Godlux
      15.04.2022 18:53
      +1

      >> Может ли ML определять, относится ли конкретный пиксель к предмету или фону? 

      На мой взгляд вы мыслите как человек. Объект. Пастбище. Известно что ML умеет выделять объекты, если вы поставите перед ним такую задачу, однако для классификации этого может не потребоваться. Для ML это не картинка. Это просто набор байт, лежащий в определённой последовательности.

      Отсюда ответ на вопрос:
      >> Как система может найти на картинке объект, который мы хотим ей показать?

      "Cистема" проверяет, подходит ли этот набор байт под какой либо объект, "прогоняя её" через модель. Для простоты модель можно представить как функцию y = f(x), где y - это класс, который модель присваивает набору входных данных x.

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

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

      Это подводит нас к ответу на третий вопрос:
      >> Что если таким методом получать маску объекта и передавать алгоритму классификации только пиксели, выбранные маской?
      Для начала, следует уточнить, что именно является маской? Посмею предположить, что вы имели ввиду некую составную часть модели, отвечающую за распознание определённого объекта.

      К сожалению, как правило, содержимое модели, например функции f(x) - это чёрный ящик, так что "забрать" маску объекта оттуда будет весьма затруднительно, если не невозможно. Но вопрос же "что если?". Если передать алгоритму классификации только пиксели соответствующие "маске" объекта о', то с наибольшей вероятностью алгоритм классификации классифицирует их как объект о'.


      1. imageman
        16.04.2022 16:46

        "забрать" маску объекта оттуда будет весьма затруднительно

        Именно. Как сделать маску, если мы анализируем спутниковый снимок?

        А как сделать маску если мы анализируем голос ("речь в текст")?

        И таких "а как" набирается очень много и даже составление маски не гарантирует что уничтожим все "отравленные" участки.


        1. Godlux
          16.04.2022 18:08

          По этому поводу есть другие размышления. Например, нам показали как отправление шумом картинки "сводило сеть с ума", но очевидно признаки "панды" там оставались. Почему бы не производить обучение сразу на зашумлённых картинках, чтобы бороться с таким отравлением?

          По поводу паттернов, которые сеть охотно ищет - этим же можно и воспользоваться, поставить перед обучением сеть, которая будет обучена выявлять такие паттерны. QR-код на носу панды явно что-то ненормальное, пусть ищет и блокирует такие снимки до обучения. А желательно ещё добавить логи и реагировать на инциденты с появлением таких картинок.

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


          1. imageman
            16.04.2022 18:21

            Почему бы не производить обучение сразу на зашумлённых картинках, чтобы бороться с таким отравлением?

            Используют. Называется Аугментация (augmentation, “раздутие”). В каких-то случаях может помочь. Но зачастую мы не можем понять как аугментировать. Да и гарантировать, что аугментация полностью стерла яд мы не можем.

            поставить перед обучением сеть, которая будет обучена выявлять такие паттерны

            Какие "такие"? Мы даже не знаем, если ли среди наших обучающих данных отравленные!

            QR-код на носу панды

            QR был приведен чисто для наглядности - демонстрация метки. Представь что-нибудь посложнее, например затемнение каждого второго пикселя на определенную величину. Или добавление заранее подобранного низкочастотного шума. Методы с использованием преобразования Фурье, вейвлеты, DCT. Любые методы внедрения своей отравляющей информации так, что человеческий глаз не заметит подлога (этакая стеганография). Но нейросеть обучается любым закономерностям, даже тем, которые не видны нашему глазу.

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


            1. Godlux
              16.04.2022 20:06

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

              QR был приведен чисто для наглядности - демонстрация метки.

              Да, я привёл это сравнение в продолжение статьи. Впрочем, это неплохое предположение о наглядности: "Чтобы отравление сработало, оно должно быть нагляднее для обучения, нежели правильные признаки." Например, QR-код может быть проще заметить чем ниточки.

              Любые методы внедрения своей отравляющей информации так, что человеческий глаз не заметит подлога (этакая стеганография).

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

              "вот класс со знаком "стоп", вот класс со знаком "ограничение скорости", вот класс "знак стоп с ниткой".

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

              И таких "а как" набирается очень много

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


    1. Vlvd
      15.04.2022 18:53
      +1

      Она находит объект, потому что мы ей его показываем во время обучения. То есть изначально любая object detection модель учится распознавать объекты на обучающем наборе, который представлен картинками. На них в свою очередь мы ей ,как ребёнку в вашем примере, показываем объекты, ограничивая их специальными рамками, bounding box'ами (если объектов несколько, каждый бокс имеет свой класс в соответствии с объектом).
      Пройдя большое число циклов обучения на большом наборе данных модель путём обобщения всех этих данных "понимает", что именно она ищет и начинает предсказывать координаты баундинг боксов на уже незнакомых данных.


  1. dfgwer
    16.04.2022 04:37

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


    1. imageman
      16.04.2022 16:52

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

      снова тренируем на данных в котором больше нет старых признаков

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

      Что-то я не понял сути.... У первичной, к примеру, точность 0,95. У второй - 0,7, у третьей - 0,6. После обработки фото первая нейросеть дала результат "женщина", вторая - "собака", третья - "кошка". И что это нам даст?


      1. dfgwer
        17.04.2022 07:38

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


        1. imageman
          17.04.2022 18:28

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


  1. Chupaka
    16.04.2022 21:26

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

    Кажется, кто-то пытается отравить мою модель распознавания смысла русского языка...


  1. vutmuk123
    18.04.2022 09:40

    объясните пожалуйста, понятия ИИ и ML связные? может ли быть одно без другого?