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

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

Исследователи из Google опубликовали в 2015 году работу, где проиллюстрировали проблему таким примером:


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

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

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

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

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


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


Сверху примеры подходящих изображений, снизу — неподходящих

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

То есть, на соревновательной стадии — в отличие от разогрева — алгоритм может воздерживаться от ответа, но по итогам обработки датасета в неопределенное должны попасть не больше 20% изображений.

Технические требования к алгоритмам таковы:

  • 80% картинок должны быть распознаны. Ошибки не допускаются. Если участники присоединяются уже в ходе соревновательной стадии, то должны успешно обработать 2 предыдущих датасета.
  • Пропускная способность должна быть не менее 1 изображения в минуту на Tesla P100.
  • Система должна быть легко читаемой, написанной на TensorFlow, PyTorch, Caffe или NumPy. Слишком запутанные и трудновоспризводимые системы могут быть сняты с конкурса решением судей.

Если защитный алгоритм продержится без ошибок 90 дней — его создатели заберут половину призового фонда.

Атакующие получают доступ к нетренированным моделям и ко всему исходному коду алгоритмов.

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

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

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

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


  1. Xandrus
    18.09.2018 00:47

    Научите гугл обходить атаки на машинное зрение.


  1. alexstup
    18.09.2018 05:51

    Ого, что случилось? У гугла закончились деньги?


  1. a_e_tsvetkov
    18.09.2018 09:22

    Похоже гугл зашел в тупик.


  1. sanchezzzhak
    18.09.2018 10:36

    Черный квадрат — классическая атака.


  1. Frankenstine
    18.09.2018 11:32

    совершенно неуязвимая к любым атакам нейросеть

    А разве это теоретически хотя бы возможно?


    1. Deerenaros
      18.09.2018 20:09

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


      1. Frankenstine
        19.09.2018 09:37

        Проблема «безопасности» распознавания, мне кажется, сводится к тому, что нейросети, фактически, выполняют однозначное сложное математическое преобразование из входящего сигнала X в выходной Y (однозначное означает, что каждому X соответствует один и тот же Y) при котором влияние определённых небольших частей входного сигнала намного больше влияния всего остального сигнала. Изменение этой небольшой части сигнала, соответственно, и приводит к «ошибке распознавания». Очевидно, что даже увеличивая число таких частей до, скажем, 5-10% от общего объёма входного сигнала, никак на качество не повлияет — достаточно будет найти каким-либо образом эти части и воздействовать через них. Можно ли построить такую нейросеть (или натренировать), чтобы 80% выходного сигнала определялось более чем 20% входного? Мне кажется пока нейросети до такого не доросли. Ну, будет вместо атаки одного пикселя атака 10 пикселей, это ведь дела не меняет.
        В общем, ждём результатов соревнования.


        1. Deerenaros
          19.09.2018 10:38

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


  1. scorp13
    18.09.2018 12:08

    Хорошая попытка, SkyNet, но нет.


  1. andreykul
    18.09.2018 17:09

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


  1. NickFornit
    18.09.2018 17:49

    Дело в том, что нейросети “глубокого обучения” работают вообще на так как локальные нейросети мозга и эмулируют, в лучшем случае, дорефлекторный уровень распознавания, зато намного лучше и точнее, чем природные распознаватели. Но понимание того, что на картинке – это совсем другое. Это требует использования модели понимания – уровень осознанной произвольности. Там тоже есть иллюзии, но уже не из-за путаницы в элементарных признаках, а из-за недостаточности более общего контекста понимания, что не позволяет определить смысл воспринимаемого. Подробнее: scorcher.ru/12787


    1. Sychuan
      19.09.2018 11:57

      Но понимание того, что на картинке – это совсем другое. Это требует использования модели понимания

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


      1. Vinchi
        19.09.2018 16:59

        Например велосипед, на котором нарисован попугай?


        1. Sychuan
          19.09.2018 21:44

          Например велосипед, на котором нарисован попугай?

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


  1. Arqwer
    18.09.2018 19:35

    А какие ограничения на adversarial examles? А то я в пэинте могу так нарисовать попугая, что ни один алгоритм в жизни не догадается что это попугай, но человеку будет очевидно: попугай.


  1. Vinchi
    19.09.2018 16:58

    Ну я так вижу есть несколько путей решения:
    1. Аугментация изображений теми же методами какими создаются атакующие изображения
    2. Использование GAN — только таких которые работают и обчаются очень быстро, иначе бы не было ограничений на производительность
    3. Использование новых методов регуляризации. Распознавание образов сейчас уже очень точное, и может быть стоит пожертвовать частью точности, ради снижения атаки.