Как преобразовать выход искусственной нейронной сети в вероятности?

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

Я думаю, есть два пути :

1) Вы получаете один выходной нейрон. Это значение > 0.5 события, вероятно, true, если это значение

2) Вы получаете два выходных нейрона, если значение первого > чем значение второго события, скорее всего, истинно и наоборот.

в этом случае ANN сообщает вам, является ли событие вероятным true или вероятным false. Это не говорит о том, насколько вероятно.

есть ли способ преобразовать это значение в некоторые коэффициенты или напрямую получить коэффициенты из ANN. Я хотел бы получить вывод типа "событие имеет вероятность 84% быть истинным"

7 ответов


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

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

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

Так... Как и где я могу получить "свою долю"?... Все зависит от реализации NN, и что более важно, реализация диктует тип функций нормализации, которые могут быть использованы для приведения значений активации в диапазоне 0-1 и таким образом, что сумма из всех процентов "сложить" до 1. В своей простейшей форме функция активации может использоваться для нормализации значения, а веса входа в выходной слой могут использоваться в качестве факторов для обеспечения "сложения" до 1 вопроса (при условии, что эти веса действительно нормализованы сами по себе).

вуаля!

Claritication: (Примечание Матье)
Не нужно ничего менять в том, как работает сама нейронная сеть; единственное нужно как-то" зацепиться " за логику выход нейроны для доступа к [реальному] значению активации, которое они вычисляли, или, возможно, лучше, для доступа к реальному значению выхода функции активации,до его логического преобразования (который обычно основан на пороговом значении или на некоторой стохастической функции).

другими словами, NN работает как раньше, ни его обучение, ни логика распознавания не изменяются, входы в NN остаются же, как и связи между различными слоями и т. д. Мы получаем только копию действительной активации нейронов в выходном слое и используем ее для вычисления процента. Фактическая формула для расчета процента зависит от характера значения активации и связанной с ним функции (ее масштаба, диапазона относительно выхода других нейронов и т. д.).).
Вот несколько простых случаев (из предложенных правил вывода вопроса ) 1) Если есть один выходной нейрон: должно выполняться отношение значения, предоставляемого функцией активации, к диапазону этой функции. 2) Если есть два (или более выходных нейрона), как, например, с классификаторами: если все выходные нейроны имеют одну и ту же функцию активации, процент для данного нейрона равен значению его функции активации, деленному на сумму всех значений функции активации. Если функции активации различаются, это становится ситуацией в каждом конкретном случае, потому что отдельные функции активации могут быть свидетельствует о целенаправленном желании придать больший вес некоторым нейронам, и процент должен уважать это.


Что вы можете сделать, это использовать сигмовидной передаточной функции на узлах выходного слоя (который принимает диапазоны данных (- inf,inf) и выводит значение в [-1,1]).
Затем с помощью 1-of-n кодировка вывода (один узел для каждого класса), вы можете сопоставить диапазон [-1,1] с [0,1] и использовать его как вероятность для каждого значения класса (обратите внимание, что это работает естественно для более чем двух классов).


значение активации одного выходного нейрона является линейно взвешенной суммой и может быть непосредственно интерпретировано как приблизительная вероятность, если сеть обучена давать выходы в диапазоне от 0 до 1. Это будет иметь тенденцию иметь место, если передаточная функция (или выходная функция) как на предыдущем этапе, так и на конечном выходе также находится в диапазоне от 0 до 1 (обычно сигмоидальная логистическая функция). Однако нет никакой гарантии, что это будет, но ремонт возможен. Более того если sigmoids являются логистические и веса должны быть положительными и сумма до 1, то вряд ли. Как правило, нейронная сеть будет тренироваться более сбалансированным образом, используя сигмоид Танха и веса и активации, которые варьируются от положительных и отрицательных (из-за симметрии этой модели). Другим фактором является распространенность класса - если он составляет 50%, то порог 0.5, вероятно, будет эффективным для логистики и порог 0.0 для tanh. Сигмоид предназначен для того, чтобы толкать вещи к центр диапазона (на backpropogation) и ограничить его от выхода из диапазона (в прямом эфире). Значение производительности (относительно распределения Бернулли) также можно интерпретировать как вероятность того, что нейрон делает реальные предсказания, а не догадывается. В идеале предвзятость предиктора к позитивам должна соответствовать распространенности позитивов в реальном мире (которые могут варьироваться в разное время и в разных местах, например, бычьи рынки против медвежьих, например, кредитоспособность люди, подающие заявку на кредиты против людей, которые не в состоянии сделать кредитные платежи) - калибровка вероятности имеет то преимущество, что любой желаемый уклон может быть легко установлен.

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

в Оценка Брайера и ее декомпозиция Мерфи дают более прямую оценку вероятности того, что средний ответ верен, в то время как информативность дает вероятность того, что классификатор принимает информированное решение, а не догадку, ROC AUC дает вероятность того, что положительный класс будет ранжирован выше отрицательного класса (положительным предиктором), а Каппа даст аналогичное число, которое соответствует информативности, когда Распространенность = смещение.

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

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

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


вы пробовали проф. Предложение Хинтона обучить сеть с функцией активации softmax и ошибкой перекрестной энтропии?

в качестве примера создайте трехслойную сеть со следующим:

linear neurons   [ number of features ]
sigmoid neurons [ 3 x number of features ]
linear neurons   [ number of classes ]

затем обучите их с перекрестной ошибкой энтропии softmax transfer с вашим любимым оптимизатором стохастического спуска / iprop plus / grad спуска. После тренировки выходные нейроны следует нормализовать до суммы 1.

см. http://en.wikipedia.org/wiki/Softmax_activation_function для деталей. Shark Machine Learning framework предоставляет функцию Softmax путем объединения двух моделей. И проф. Хинтон отличный онлайн курс @ http://coursera.com относительно деталей.


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


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

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


при использовании ANN для классификации 2-класса и логистической функции активации сигмоида используется в выходном слое, выходные значения могут быть интерпретированы как вероятности.

поэтому, если вы выбираете между 2 классами, вы тренируетесь с использованием кодировки 1-of-C, где 2 выхода ANN будут иметь значения обучения (1,0) и (0,1) для каждого из классов соответственно.

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

Это может быть обобщено для классификации нескольких классов с использованием функции активации softmax.

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

[1] Bishop, Christopher M. нейронные сети для распознавания образов. Oxford university press, 1995.