Определение и количественная оценка случайной и эпистемической неопределенности в глубоких нейронных сетях

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

В качестве простого примера этого режима отказа в DNN рассмотрим обучение DNN для задачи двоичной классификации. Вы могли бы разумно предположить, что выход softmax (или сигмоид) DNN может быть использован для измерения того, насколько уверенным или неопределенным является DNN в своем прогнозе; можно ожидать, что выход softmax, близкий к 0 или 1, будет указывать на уверенность, а выход, близкий к 0,5, укажет на неопределенность. В действительности, выходы softmax редко бывают близкими к 0,5 и чаще всего близки к 0 или 1 независимо от того, делает ли DNN правильный прогноз. К сожалению, этот факт делает ненадежные оценки наивной неопределенности (например, энтропии по выходам softmax).

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

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

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

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

Для тех, кто больше всего интересуется примерами кода, вот два блокнота Jupyter, один с примером игрушечной регрессии, а другой - с примером классификации игрушек. В разделе Примеры и приложения ниже также есть фрагменты кода на основе PyTorch.

Что мы подразумеваем под «неопределенностью»?

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

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

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

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

Эпистемическую неопределенность можно объяснить на примере регрессии. Предположим, мы подбираем модель линейной регрессии и у нас есть независимые переменные x между -1 и 1 и соответствующие зависимые переменные y для всех x. Предположим, мы выбрали линейную модель, потому что считаем, что когда x находится между -1 и 1, модель является линейной. Однако мы не знаем, что происходит, когда тестовый образец x * выходит далеко за пределы этого диапазона; скажем, при x * = 100. Таким образом, в этом сценарии есть неопределенность в спецификации модели (например, истинная функция может быть квадратичной), и есть неопределенность, потому что модель не увидела данных в диапазоне тестового образца. Эти неопределенности могут быть объединены в неопределенность относительно знания истинного распределения, генерирующего данные, что является эпистемической неопределенностью.

Термины выборочный и эпистемический в отношении вероятности и неопределенности, похоже, были введены в современный лексикон Яном Хакингом в его книге Возникновение вероятности, », В котором обсуждается история вероятности с 1600-1750 гг. Эти термины непонятны для непосвященного читателя, но их определения связаны с самым глубоким вопросом в основах вероятности и статистики: Что означает вероятность? Если вы знакомы с терминами частотный и байесовский, то вы увидите соответствующую взаимосвязь между случайной (объективной) и эпистемической (субъективной) неопределенностью. Я не собираюсь решать этот философский вопрос в этом сообщении в блоге, но знаю, что определения случайной и эпистемической неопределенности имеют нюансы, и то, что попадает в какую категорию, является спорным. Для более полного (но все же применяемого) обзора этих терминов, взгляните на статью: «Алеаторий или эпистемический? Это имеет значение?""

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

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

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

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

Оценка неопределенности в DNN

В последние годы появилось изобилие предлагаемых методов оценки неопределенности в DNNS. Обычно оценка неопределенности формулируется в контексте байесовской статистики. В стандартной DNN для классификации мы неявно обучаем дискриминационную модель, в которой мы получаем оценки максимального правдоподобия весов нейронной сети (в зависимости от функции потерь, выбранной для обучения сети). Эта точечная оценка весов сети не поддается пониманию того, что модель знает и чего не знает. Если вместо точечной оценки мы найдем распределение по весам, мы сможем выбрать веса сети, с помощью которых мы можем вычислить соответствующие выходные данные.

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

В этой статье мы рассмотрим популярный и простой в реализации метод оценки неопределенности в DNN, разработанный Ярин Галь и Зубин Гахрамани. Они показали, что выпадение можно использовать для определения приблизительного распределения весов DNN (как обсуждалось ранее). Затем, во время прогнозирования, отсев используется для выборки весов из этого приближенного распределения - аналогично созданию ансамбля экспертов.

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

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

В целом окончательная сетевая структура выглядит примерно так, как показано на рис. 2. Имеется вход x, который подается в DNN с выпадением после каждого уровня (выпадение после каждого слой - это то, что указано изначально, но на практике выпадение после каждого слоя часто делает обучение слишком трудным). Результатом этой DNN является оценочная цель ŷ и оценочная дисперсия или параметр масштаба σ̂.

Этот DNN обучается с функцией потерь, например:

or

Если сеть обучается для задачи регрессии. Первая функция потерь, показанная выше, является вариантом MSE с неопределенностью, а вторая - вариантом L1. Они получены из предположения о распределении Гаусса и Лапласа для правдоподобия, соответственно, где каждый компонент является независимым, а дисперсия (или масштабный параметр) оценивается и аппроксимируется сетью.

Как упоминалось выше, эти функции потерь имеют математическое происхождение, но мы можем интуитивно понять, почему этот параметр дисперсии отражает тип неопределенности: параметр дисперсии обеспечивает компромисс между дисперсией и членом потерь MSE или L1. Если DNN может легко оценить истинное значение цели (то есть получить ŷ близкое к истинному y ), то DNN должна оценить член с низкой дисперсией, чтобы минимизировать потери. Если, однако, DNN не может оценить истинное значение цели (например, имеется низкое отношение сигнал / шум), тогда сеть может минимизировать потери, оценивая высокую дисперсию. Это уменьшит срок потерь MSE или L1, потому что этот член будет разделен на дисперсию; однако сеть не всегда должна делать это из-за члена логарифмической дисперсии, который штрафует высокие оценки дисперсии.

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

Интуиция здесь с этой функцией потерь такова: когда DNN может легко оценить правильный класс компонента, значение ŷ будет высоким для этого класса, и DNN должна оценить низкая дисперсия, чтобы минимизировать добавленный шум (чтобы все образцы были сосредоточены вокруг правильного класса). Если, однако, DNN не может легко оценить класс компонента, значение ŷ должно быть низким, и добавление шума может случайно увеличить предположение для правильного класса. что может в целом минимизировать функцию потерь. (См. Стр. 41 диссертации Алекса Кендалла для более подробного обсуждения этой функции потерь.)

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

Математически эпистемическая и случайная неопределенности (для варианта регрессии MSE):

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

Примеры и приложения

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

Пример регрессии

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

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

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

Иногда использование потерь L1 вместо потерь MSE приводит к лучшей производительности для задач регрессии, хотя это зависит от приложения.

Затем вычисляются оценки случайной и эпистемической неопределенности в этом сценарии, как в приведенной ниже реализации (более подробный контекст см. В блокноте).

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

Пример классификации

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

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

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

Пример медицинского изображения

В этом последнем примере я покажу некоторые результаты и приложения неопределенности на реальном примере, опубликованном в виде доклада на конференции (здесь предварительно напечатан). Исследуемая задача представляет собой задачу преобразования изображения в изображение, похожую на известный пример pix2pix, но с медицинскими изображениями. В данном случае мы хотели сделать изображение мозга на компьютерной томографии (КТ) похожим на соответствующее изображение мозга с помощью магнитного резонанса (МРТ). Это потеря регрессии, и мы использовали вариант MSE потери неопределенности для обучения U-Net, модифицированного для пространственного отсева (см. Здесь для обсуждения того, почему пространственное выпадение ) после каждого слоя и выводить два изображения вместо одного; один вывод - это оценочное MR-изображение, а другой - пиксельная дисперсия.

Примеры входов и выходов показаны на рис. 6. На КТ-изображении слева есть аномалия в левом полушарии затылочной доли (нижняя левая часть мозга на изображении; это легче визуализировать на соответствующем МР-изображении. Направо). DNN обучалась только на здоровых изображениях, поэтому DNN должна игнорировать такие аномальные данные, и она должна отражать это - согласно теории эпистемической неопределенности, как обсуждалось ранее - за счет высокой дисперсии выборки (то есть высокой эпистемической неопределенности). в этом регионе.

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

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

Выводы

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