Pull to refresh
0
Питерская Вышка
Не для школы, а для жизни

Градиенты в нейронных сетях для поиска аномалий в данных

Reading time9 min
Views5.8K

В основе машинного обучения лежит предположение, что данные для обучения, тестирования и применения взяты из одного и того же распределения. К сожалению, в процессе применения модели это предположение может нарушаться, что приводит к необъяснимым последствиям — сдвигу распределения. Особенно такие нарушения опасны в областях, где требуется быстро и точно принимать решения: медицина, финансы, self-driving cars. 

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

Меня зовут Глеб Енгалыч, я аспирант Питерской Вышки первого года обучения. В этом посте я расскажу о своей магистерской диссертации «Анализ градиента нейронной сети для поиска аномалий в данных», которую сейчас активно дорабатываю для подачи на конференцию ICML-2022.

Работу я выполнял под руководством Игоря Куралёнка и Василия Ершова из Яндекса.  Игорь – руководитель сервисов машинного обучения в Yandex.Cloud, Василий – руководитель команды ML Tools, в которой работаю и я. Мы интересуемся не только продуктовыми задачами, но и исследованиями в разных областях машинного обучения, а также более общими вопросами, которые помогают понять принципы работы современных нейронных сетей. Например, недавно статья моих коллег Людмилы Гордеевой, Василия Ершова, Олега Гуляева и Игоря Куралёнка Meaning Error Rate: ASR domain-specific metric framework была принята на конференцию KDD’21 (A* level). В этой статье предлагается новый подход для оценивания задачи распознавания речи, который, в отличии от аналогов, принимает во внимание не только распознанный текст как набор слов, но и его суть.

В рабочее же время наша команда создаёт системы распознавания и синтеза речи, различные фреймворки для улучшения процесса обучения и применения моделей, сбора данных в машинном обучении.

Поиск аномалий в данных

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

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

Поиск аномалий в данных – это частный случай более широкой задачи по оценке неопределенности предсказания. Она делится на оценку неопределенности в данных (aleotoric uncertainty) и оценку неопределенности в знаниях (epistemic uncertainty). Простыми словами неопределенность в данных возникает из-за сложной структуры данных, шумов и неоднозначности, а неопределенность в знаниях – из-за того, что модель видела слишком мало примеров или же вовсе не видела какую-либо область данных.  В рамках этой статьи я не буду сильно углубляться в теорию, а сделаю упор на практическом аспекте. Более подробно можно прочитать, например, в (Malinin, 2018).

Поиск аномалий применительно к задаче классификации

Формулировка задачи

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

Для задачи классификации сдвиги распределения могут быть, например, такими:

  • добавление шума к поступающим изображениям;

  • прецеденты, принадлежащие классам, которые отсутствовали в обучающей выборке;

  • прецеденты, которые принадлежат к классу, который был в обучении, но представленные в новой текстуре или форме.  

Задачу поиска аномалий можно сформулировать следующим образом: требуется построить некую модель g, которая бы по прецеденту x выдавала значение g(x), которое можно трактовать как меру аномальности. Затем исследователь выбирает некоторый порог δ: все прецеденты со значением аномальности меньше δ объявляются обычными прецедентами, а остальные – аномалиями. То есть чтобы проверить, является ли x аномалией, требуется проверить, верно ли неравенство g(x) ≤ δ.

Подходы к оценке качества

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

За метрику качества можно брать любые метрики для бинарной классификации, например, ROC-AUC или PR-AUC. Это классические метрики, более подробно о них можно почитать, например, здесь.

Стоит отметить, что это стандартная процедура апробации методов поиска аномалий. Она используется практически во всех статьях, посвященных этой теме. Однако у этой процедуры есть существенный недостаток: она проверяет лишь то, как хорошо метод находит аномалии, но никак не учитывает качество решения исходной задачи классификации на прецедентах, объявленных инлаерами. Мои коллеги из исследовательского отдела Яндекса предлагают новый способ оценивания поиска аномалий, который учитывает этот недостаток (Malinin et al., 2021). В своей работе мы не используем этот способ, так как он еще не прижился в академической среде.

Датасеты

Самым популярным бенчмарком для классификации изображений является датасет ImageNet-1k (далее просто ImageNet) (Russakovsky et al., 2015). На его основе были созданы бенчмарки для поиска аномалий в случае задачи классификации изображений. Дальше кратко опишу датасеты, которые мы использовали:

  • ImageNet-O (Hendrycks et al., 2018) – это некоторое подмножество датасета ImageNet-22k, не пересекающееся с ImageNet-1k. Этот датасет представляет сдвиг, в котором добавляются новые классы, которые модель раньше не видела. Ниже приведены два примеры изображений из ImageNet-O. Чёрный цвет – это настоящий класс, а красный – предсказанный класс и уверенность в предсказании (softmax-вероятность предсказания). Стоит отметить, что классов Photosphere и Verdigris в оригинальном датасете ImageNet нет.

  • ImageNet-R (Hendrycks et al., 2020) состоит из изображений, принадлежащих классам оригинального датасета ImageNet, но представленных в других текстурах и формах. То есть в классе «soccer_ball» будут не фотографии реальных футбольных мячей, а разнообразные поделки, рисунки, татуировки, смоделированные на компьютере картинки, изображающие мяч.

  • ImageNet-A (Hendrycks and Dietterich, 2018) – это естественные adversarial примеры. То есть изображения, которые очень сложно корректно классифицировать нейронными сетями. Например, в классе «fox_squirrel» будут фотографии белок, которые, вне зависимости от архитектуры сети и random seed будут классифицироваться как всё, что угодно, только не белки.

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

  • ImageNet-C (Hendrycks, 2019) это зашумленная версия тестовой части ImageNet. Датасет состоит из нескольких видов шумов и нескольких уровней силы шума. В этой работе мы используем лишь Frosted Glass Blur с уровнем 5. Выбор конкретного шума обусловлен тем, что на нём ResNet-50 показывает худший результат классификации. Далее приведены примеры всех типов шумов.

Краткий обзор существующих решений

  • Maximum Softmax Probability (далее MSP) (Hendrycks and Gimpel, 2016).  Это самый простой и интуитивно понятный метод. В качестве g(x) используется отрицательная максимальная softmax-вероятность. Таким образом, если нейронная сеть выдает какой-то класс с достаточно высокой вероятностью, то прецедент x объявляется инлаером.

  • ODIN (Liang et al., 2017). Это модифицированный метод MSP, который использует дополнительный препроцессинг изображения. Точно такой же препроцессинг используется в предложенном нами градиентном методе.

  • Ансамблевые методы (Malinin et al., 2019), (Malinin, 2018). Это методы, использующие несколько обученных с разными random seed нейронных сетей одинаковой архитектуры. Их предсказания агрегируются определённым образом, чтобы получить меру аномальности прецедента. Ансамблевые методы математически обоснованы, но слишком тяжелы для интеграции в production-системы.

Градиентный метод

Мотивация

Мы решили использовать анализ градиентов для решения поставленной задачи, вдохновленные двумя подходами:

  • Influence functions (Koh and Liang, 2017). Авторы этой статьи отвечают на вопрос: как изменится предсказание нейронной сети, если из обучающего датасета изъять прецедент z? Оказывается, что ответ на этот вопрос можно сформулировать с помощью первой и второй производной по весам модели.

  • Neural Tangent Kernel (Jacot et al., 2018). В этой статье анализируется поведение бесконечно широких нейронных сетей с точки зрения пространства производных по весам модели.

Формулировка метода

Теперь все готово к формулировке предложенного в моей работе градиентного метода.

Задачу классификации чаще всего решают с помощью минимизации кросс-энтропии:

-\sum\limits_{c=1}^{C}y_{o, c}\log p_{o, c}

Евклидову норму градиента кросс-энтропии по весам модели можно использовать в качестве меры аномальности:

g(x) = ||\nabla_\theta \Bigg(-\sum\limits_{c=1}^{C}y_{o, c}\log p_{o, c}\Bigg)||_2

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

Далее можно более подробно расписать градиент кросс-энтропии, чтобы декомпозировать его в произведение двух множителей:

\nabla_{\theta} \ell(\mathbf{x}, \hat{\theta})= \left. -\nabla_{\theta} \log \frac{\max_{c'} e^{h_{c'}(\mathbf{x}, \theta)} }{\sum_{c=1}^k e^{h_c(\mathbf{x}, \theta)}} \right|_{\hat{\theta}} = S(\mathbf{x}, \hat{\theta}) G(\mathbf{x}, \hat{\theta}) \text{, where}S(\mathbf{x}, \hat{\theta})= \frac{1}{1 + \sum_{c \ne \hat{c}} e^{(h_c(\mathbf{x}, \hat{\theta})-h_{\hat{c}}(\mathbf{x}, \hat{\theta}))}}G(\mathbf{x}, \hat{\theta})= -\sum_{c \ne \hat{c}}e^{(h_c(\mathbf{x}, \hat{\theta})-h_{\hat{c}}(\mathbf{x}, \hat{\theta}))} \left.\frac{\partial ( h_{\hat{c}}(\mathbf{x}, \theta) - h_c(\mathbf{x}, \theta))}{\partial \theta} \right|_{\hat{\theta}}

S-часть – это в точности максимум softmax-вероятности, а G-часть – это множитель, отвечающий за производную по весам модели. Такая декомпозиция позволяет отделить два источника информации друг от друга. В качестве градиентного метода можно использовать произведение (S(x, θ) * G(x, θ)) или же просто G(x, θ).

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

Вместо обычного softmax будем использовать softmax с температурой T:

S_c(x, T) = \frac{\exp{(h_c(x / T, \theta))}}{\sum\limits_{i=1}^{C}\exp{(h_i(x / T, \theta))}}

Вместо прецедента x возьмем

x_p = x - \varepsilon\text{sign} (-\nabla_x\log S_{c'}(x, T))

Затем к прецеденту xp применяется описанное выше вычисление нормы градиента, чтобы получить функцию g(x).

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

Результаты экспериментов

Для экспериментов были выбраны две архитектуры нейронных сетей: ResNet-18 и ResNet-50. Для экспериментов с ResNet-50 были обучены четыре модели с разным random seed для тестирования ансамблевых методов.

Наши градиентные методы – это G-part и SG-part. Из таблицы видно, что предложенные методы превосходят все остальные бейзлайны в семи случаях из восьми. G показывает себя лучше практически всех бейзлайнов, в то время как SG обгоняет G на ImageNet-O, но ему не хватает качество на ImageNet-A/R/C относительно прочих бейзлайнов. Это достаточно неожиданный эффект, которому у нас пока нет объяснений. Таким образом, G-part уже достаточно для превосходства над другими решениями, но его результат на каких-то определённых доменах можно улучшить, добавив информацию от последнего слоя сети, то есть softmax-предсказание модели.

Стоит отметить, что единственный бейзлайн, которому проиграли градиентные методы, – это ансамбли. Сравнение с ними несколько некорректно, так как это гораздо более «тяжёлые» методы чем MSP, ODIN и предложенные G-part и SG-part. Ансамбли практически невозможно применять на практике, в отличие от других, более «лёгких» методов, которые можно без проблем встраивать в продуктовые задачи. Таким образом, в этом проигрыше нет ничего необычного, но и нет ничего страшного.

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

Заключение

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

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


Другие проекты наших студентов:

Tags:
Hubs:
Total votes 15: ↑15 and ↓0+15
Comments5

Articles

Information

Website
spb.hse.ru
Registered
Founded
1998
Employees
201–500 employees
Location
Россия
Representative
Павел Киселёв