Pull to refresh

Comments 12

называются adversarial machine learning, или по русски все-таки вредоносное машинное обучение.

Все-таки нет. Adversarial — это терминология из теории игр, которая всего лишь подразумевает тренировку моделей в состязательном стиле (игра с нулевой суммой по сути).


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

Нет, просто получится сеть, с отличными от бейзлайна свойствами. Ничто не мешает применить все те же методы атаки на сеть как на blackbox и найти новые коренр кейсы. Оно может помочь только против массированой атаки на однотипные модели: например, если мы знаем, что условная библиотека dlib используется в большинстве систем детектирования/распознавания лиц без изменений базовых моделей, то мы можем однажды подобрав необходимые примеры, атаковать все сервисы, использующие эти модели.

Так я не про архитектуру нейронной сети, а про постановку задачи.
В постановке задачи, которую рассматриваю я, все-таки, данные, которые мы подаем модели — «вредоносные» — заставляют модель намеренно(!!) ошибаться.


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

Интересная статья. В безопасности не шарю(не моя область), так что имею довольно нубский вопрос — а насколько распространено защитное ПО, использующие машинное обучение, и как часто происходят атаки с использованием его же? Плюс, вроде бы спорный момент с соревнованием «снаряд-броня»(конкретно — что «броня» проигрывает). С одной стороны, все верно, сама парадигма машинного обучения предусматривает возможность ошибки. С другой — на практике, серьезные продукты пока выпускают гиганты типа Гугла. Насколько просто хакерской группе обучить хорошую атакующую модель, если Гуглу гораздо легче собирать огромные датасеты, в которых с большей вероятностью будут попадаться всякие левые объекты, и на которых обороняющейся модели легче выучится в правильную сторону?
Широко. За все продукты не отвечу, просто не смотрел, но у Касперских достаточно давно и у Доктора Веба есть. Причем у Касперских есть статьи (и здесь на Хабре тоже) с описанием применяемых механизмов
да, нельзя не согласиться с teecat, можно встретить довольно много продуктов, использующих мл и статистику в частности. Но пока не всегда понятно, это маркетинговый ход или что-то действительно прорывное?!

Про обучить модель хакерами… ну, дело же не в том, чтобы «обучить» такую «волшебную палочку», с помощью которой можно сломатьвсе и сразу. Дело в другом подходе, техниках позволяющих получать принципиально нужную информацию из тех данных, которые получили.
Чем-то это все напоминает обычную эволюцию живых организмов.
Немного уточню. Нам (и иным компаниям отрасли) поступает порядка миллиона образцов в день. Рекорд, который я видел лично — 12 миллионов, по 6 миллионов достаточно часто. Поэтому печалиться о «модели машинного обучения тестируют в довольно статичной среде, где точность зависит от количества данных каждого конкретного класса, но в реальности нельзя гарантировать такое же распределение» нет смысла. И с распределением все замечательно при таком потоке и с отсутствием динамики

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

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

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

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

которые позволяют автоматически выделять признаки (даже такие, которые не интерпретируются человеком)

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

Да, забыл. Машинное обучение сейчас нужно в первую очередь не против бинарных файлов с их возможной обфускацией и полиморфизмом, а против скриптов — их обнаруживать куда сложнее, чем бинарные файлы
Сложность в том, что авторы вредоносных программ знают о том, что для их обнаружения используется нейронная сеть, а не какой-то другой механизм (и у этих авторов может быть тоже такая же нейронная сеть в распоряжении). И тут возможны варианты. Можно, например, наплодить огромное количество почти безвредных вирусов определённого строения, и когда сеть настроится на их обнаружение, выпустить уже по настоящему опасный вирус, но реакция на который окажется «ортогональной», и сеть не распознает, что это — вирус. А по поводу последнего предложения: нужно отдать должное исследователям, которые занимаются методами машинного обучения, но, тем не менее, механизмы, которые лежат в основе работы нейронных сетей, достаточно простые — сети побеждают числом. И потому вряд ли стоит ожидать, что нейронные сети годятся для любых задач, даже если исходить из того, что некоторые задачи им поддаются.

На конференции ICLR 2018 была представлена статья Characterizing Adversarial Subspaces Using Local Intrinsic Dimensionality (https://arxiv.org/abs/1801.02613) предлагающая некий универсальный способ защиты классифицирующих нейросетей от adversarial примеров. Суть в том, что синтетически сгенерированный adversarial пример, как правило, получается очень спицифичный и, если расположить все обычные примеры в некотором пространстве, то adversarial будут легко отличимы от обычных за счёт того, что они будут находится далеко от кластеров обычных примеров.
Обзор этой статьи хорошо сделал Семён Козлов на Новосибирском ods meetup'е https://youtu.be/snXJmvDXkuY?t=34m52s

Спасибо за ссылку)
Интересный подход, обязательно попробуем на наших данных как какой-то poc.
Но я же правильно понимаю, что для этой проверки необходимо будет все пространство со всеми примерами хранить и каждый раз пересчитывать? Будет интересно замерить perfomance :)

Пожалуйста)
Советую ознакомиться с материалами. Пересчитывать всё не нужно, там предлагают смотреть и оценивать окрестность примера. Но как оно выйдет на самом деле — самому интересно, лучше изучите первоисточник :)

Sign up to leave a comment.