Как определить достоверность предсказания нейронной сети?

22

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

# Training data
[1.02, 1.95, 2.01, 3.06] : [1.0]
[2.03, 4.11, 5.92, 8.00] : [2.0]
[10.01, 11.02, 11.96, 12.04] : [1.0]
[2.99, 6.06, 9.01, 12.10] : [3.0]

здесь выходные данные - это градиент входного массива, если он был бесшумным (не фактический градиент).

После обучения сети выходные данные должны выглядеть примерно так для данного входа.

# Expected Output
[1.01, 1.96, 2.00, 3.06] : 95% confidence interval of [0.97, 1.03]
[2.03, 4.11, 3.89, 3.51] : 95% confidence interval of [2.30, 4.12]

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

Джон
источник
3
Если вы ищете интервал, который будет содержать будущую реализацию , то вы ищете интервал прогнозирования , а не доверительный интервал , который относится к ненаблюдаемым параметрам . Это часто путают.
С. Коласса - Восстановить Монику

Ответы:

20

Похоже, вы ищете , то есть интервал, который содержит заранее определенный процент будущих реализаций. (Посмотрите на тег Wiki для и для разницы.)

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

Тем не менее, вы, возможно, захотите взглянуть на алгоритм Майкла Файндта NeuroBayes, который использует байесовский подход для прогнозирования прогнозируемой плотности.

С. Коласса - Восстановить Монику
источник
1
Это может быть другой полезный документ - нейронная сеть, которая изучает распределение: google.com/…
Pro Q
@Stephan: ссылка исчезла ((
Мэтью Друри,
@MatthewDrury: какую ссылку вы имеете в виду? Все три работают нормально для меня.
С. Коласса - Восстановить Монику
Можете ли вы привести нас к простой демонстрации / примеру Ternsorflow с NN Predictive Distribution?
Мартин Тёгерсен
@ MartinThøgersen: извините, нет, я не использую Tensorflow ...
С. Коласса - Восстановить Монику
5

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

Если ваша частота ошибок при классификации некоторых данных S размераeS , 95% -ный доверительный интервал для вашей частоты ошибок определяется как: e ± 1,96 n .

e±1.96e(1e)n

(см. книгу «Машинное обучение» Тома Митчелла, глава 5.)

РЕДАКТИРОВАТЬ

Думаю, мне следует сформулировать более общий случай: где общий выбор дляzN

e±zNe(1e)n,
zN перечислены в следующей таблице:
confidence level    80%    90%    95%    98%    99%
values of zN       1.28   1.64   1.96   2.33   2.58
MP85
источник
1
Для этого потребуется нормальное асимптотическое распределение
user2879934
4
Для больших размеров выборок (что довольно часто встречается в ML), как правило, можно с уверенностью предположить, что. В этом не было необходимости, просто попросите разъяснений, ну да ладно.
mp85
4

Интервалы прогнозирования (PI) в задачах непараметрической регрессии и классификации, таких как нейронные сети, SVM, случайные леса и т. Д., Трудно построить. Я хотел бы услышать другие мнения по этому поводу.

Однако, насколько мне известно, конформное прогнозирование (CP) является единственным принципиальным методом построения калиброванного PI для прогнозирования при непараметрической регрессии и задачах классификации. Учебное пособие по CP см. В Shfer & Vovk (2008), J. Machine Learning Research 9 , 371-421 [pdf].

utobi
источник
3

Я не знаю ни одного способа сделать это точно.

μσ(xi,yi)logN(yiμ(xi),σ(xi))μ(xi)yiσ(xi)

yiμ(xi)σ(xi)N(0,1)

и другие
источник
1
σ+
Есть ли какие-либо конкретные примеры использования NN для вывода параметров распределения, обученных по вероятности записи?
Мисс Палмер
3

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

Например, в 10 000 сетей, обученных, как обсуждалось выше, можно получить 2,0 (после округления прогнозов регрессии нейронной сети) 9 000 из этих времен, поэтому вы могли бы прогнозировать 2,0 с 90% -ным доверительным интервалом. Затем вы могли бы создать массив CI для каждого сделанного прогноза и выбрать режим отчета в качестве основного CI.

Тони С
источник
2
Мне было бы любопытно, почему это предложение было отвергнуто, поскольку оно по сути является начальной загрузкой немного нетрадиционным способом (компонент округления проблемы позволяет легко проверить, насколько уверена нейронная сеть в отношении прогноза). На самом деле я не возражаю против того, чтобы тот, кто проголосовал против, мог бы объяснить, почему это не является правильным решением предложенного вопроса. Я учусь сам и буду благодарен за отзывы!
Тони С
1
Я не проголосовал, но из того, что я понимаю, предложенный метод будет выводить интервалы, которые фиксируют предсказанные значения модели, это не то же самое, что интервалы, которые фиксируют истинные значения.
Мисс Палмер
3

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

Они сравнивают четыре подхода:

1: Дельта-метод 2: Байесовский метод 3: Оценка средней дисперсии 4: Бутстрап

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

В качестве альтернативы непосредственному выводу интервалов прогнозирования байесовские нейронные сети (BNN) моделируют неопределенность параметров NN и, следовательно, фиксируют неопределенность на выходе. Это трудно сделать, но популярные методы включают в себя запуск исключения MC во время прогнозирования или ансамблирование .

Мисс палмер
источник
1
На самом деле это довольно легко сделать с помощью Bayesian Deep Learning. См., Например, edwardlib.org/tutorials/bayesian-neural-network
DeltaIV
2

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

Распределение результатов от нескольких различных прогонов может использоваться в качестве доверительных интервалов.

Смотрите статью « Dropout как байесовское Сближение: Представление неопределенности модели в Deep Learning » Посмотреть на YouTube презентация Эндрю Роуэн - байесовский Deep Learning с Эдвардом (и трюк с использованием Dropout)

user1141008
источник
1

Нет никакого способа, все модели ML не о понимании феноменов, а о методах интерполяции с надеждой, «что это сработает». Начните с таких вопросов уверенности, робустнес на шум нет ответов.

Итак, чтобы получить что-то, пожалуйста, используйте различные прикладные и фундаментальные науки:

  • Используйте контроль (и сделайте предположение о динамике)

  • Использовать выпуклую оптимизацию (с некоторыми дополнительными условиями для функции)

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

  • Использовать обработку сигнала (с некоторыми допущениями, что сигнал ограничен полосой)

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

Нет никакого способа дать какую-либо уверенность без какого-либо предварительного предположения, поэтому проблема не в методе DL, но это проблема любого метода, который пытается интерполировать без ЛЮБОГО предварительного предположения - нет способа получить что-то интеллектуально без алгебры с помощью алгебры.

NN и различные методы ML предназначены для быстрого прототипирования, чтобы создать «что-то», которое, кажется, работает «в некотором роде», проверено перекрестной проверкой.

Еще глубже регрессионная аппроксимация E [Y | X] или ее оценка может быть абсолютно неверной задачей (возможно, pdf в точке Y = E [Y | X] имеет минимум, а не максимум), и таких тонких много. вещи.

Также позвольте мне напомнить две неразрешимые проблемы в AI / ML, которые по ряду причин могут быть забыты за лозунгами красоты:

(1) Это методы интерполяции, а не экстраполяции - у него нет возможности справляться с новыми проблемами

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

bruziuz
источник
как насчет моделирования ошибки из набора обучающих данных, чтобы «предсказать» ошибку для вывода?
Джако
Даже предположим, что это аддитивный "Предикат_for_mean" + "Предсказание_Для_еррор". Вы можете представить любую схему для прогнозирования сигнала и ошибки отдельно. Но еще раз - если мы «только интерполируем», мы не можем сказать что-то уверенно. Мы прогнозируем температуру на поверхности. Да, вы можете сказать, что мой прогноз "20" и прогноз для ошибки "5". Это говорит о том, что я думаю, что реальный ответ лежит в [20-5, 20 + 5], но чтобы действительно понять, что это значит, нам нужно понять реальный феномен и математическую модель. И ML не об обоих из этого. Другие области делают некоторые предварительные предположения.
bruziuz