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


22

Я работаю с Convolutional Neural Networks (CNNs) в течение некоторого времени, в основном над данными изображений для семантической сегментации / сегментации экземпляров. Я часто представлял softmax выхода сети как «тепловую карту», ​​чтобы увидеть, насколько высоки активации на пиксель для определенного класса. Я интерпретировал низкие активации как «неопределенные» / «неуверенные» и высокие активации как «определенные» / «уверенные» предсказания. В основном это означает интерпретацию выхода softmax (значений в пределах ) как вероятности или (не) достоверности измерения модели.(0,1)

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

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


РЕДАКТИРОВАТЬ: Чтобы уточнить то, что я спрашиваю здесь, я уточню мои идеи до сих пор, отвечая на этот вопрос. Однако ни один из следующих аргументов не объяснил мне **, почему это вообще плохая идея **, как мне неоднократно говорили коллеги, руководители, и это также указано, например, здесь, в разделе "1.5"

В классификационных моделях вектор вероятности, полученный в конце конвейера (вывод softmax), часто ошибочно интерпретируется как достоверность модели

или здесь, в разделе «Фон» :

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


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

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

Это означает, что вывод softmax не устойчив к «незаметным возмущениям» и, следовательно, его вывод не пригоден для использования в качестве вероятности.

В другой статье рассматривается идея «softmax output = trust» и утверждается, что с этой интуицией сети можно легко одурачить, создавая «высоконадежные выходы для неузнаваемых изображений».

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

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

Тем не менее: не является ли это, в общем, просто вопросом обобщения свойств NN в целом? То есть, что NN с потерей softmax плохо обобщаются на (1) «незаметные возмущения» или (2) выборки входных данных, которые находятся далеко от обучающих данных, например, неузнаваемые изображения.

Следуя этим рассуждениям, я до сих пор не понимаю, почему на практике с данными, которые не подвергаются абстрактному и искусственному изменению, по сравнению с данными обучения (т. Е. Большинством «реальных» приложений), интерпретация вывода softmax как «псевдоверенности» является плохой идея. В конце концов, они, похоже, хорошо отражают то, в чем уверена моя модель, даже если она не верна (в этом случае мне нужно исправить свою модель). И разве неопределенность модели не всегда "только" приближение?


4
(-,)(0,1)

2
(0,1)(0,1)

Мне нравится, как вы сформулировали это: «В конце концов, они, кажется, хорошо отражают то, в чем уверена моя модель, даже если она не верна (в этом случае мне нужно исправить свою модель)».
HeyWatchThis

Ответы:


14

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

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

Chuan Go et. al., работая с Килианом Вайнбергером, разработал эффективное решение для калибровки предсказанных вероятностей нейронных сетей в этой статье: https://arxiv.org/pdf/1706.04599.pdf

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


1
Спасибо @cgnorthcutt, я слышал, что люди упоминали об этом много раз и с тех пор искали эту статью, действительно хороший отзыв
Теофиль Пейс

Большое спасибо. Вот ссылка на реферат (вместо статьи) для интересующихся: arxiv.org/abs/1706.04599
Waylon Flinn

3

То, что называется softmax в ML, имеет то же уравнение, что и многочленное логистическое уравнение. Последний может быть использован для расчета вероятностей. На практике это широко используется в оценке вероятностей дефолта в конкурентной структуре рисков для ипотеки, например, см. Уравнение. 4 в этой статье .

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

Чем это отличается от машинного обучения? По-разному. Я мог бы решить применить его к ипотечным дефолтам, тогда это не сильно изменилось бы. С другой стороны, в разных приложениях это может не работать. Если вы не моделируете вероятность явно, как в моем примере, то выходные данные вашей модели могут не отражать вероятность соответствующим образом.


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

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

1

Softmax распределяет «вероятность» 0-1 между доступными классами. Это не выражает неуверенность, это не функция PDF. Если вы хотите выразить неуверенность, вы должны искать байесовские нейронные сети. Взгляните на этот документ: Неопределенность в глубоком обучении. Некоторые относительно недавние вероятностные структуры:

Интересный программный доклад Зубина Гахрамани (Кембриджский университет)

Взгляните на этот документ: Сети плотности смеси :

Я думаю, вы можете реализовать это и добавить в качестве последнего слоя в CONVNET. Если вы реализуете это, не забывайте, что делиться - это забота ;-) Удачи


1

В работе « Выпадение как байесовское приближение: представление модельной неопределенности в глубоком обучении» Ярин Гал и Зубин Гахрамани утверждают следующее

При классификации прогнозируемые вероятности, полученные в конце конвейера ( выход softmax ), часто ошибочно интерпретируются как достоверность модели. Модель может быть неопределенной в своих прогнозах даже при высоком выходе softmax (рис. 1). Прохождение точечной оценки функции (сплошная линия 1a) через softmax (сплошная линия 1b) приводит к экстраполяциям с неоправданно высокой достоверностью для точек, далеких от обучающих данных.Икс* например, будет классифицироваться как класс 1 с вероятностью 1.

Вот рисунок 1.

введите описание изображения здесь

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.