Какие функции общих затрат используются при оценке производительности нейронных сетей?
подробности
(не стесняйтесь пропустить остальную часть этого вопроса, мое намерение здесь состоит в том, чтобы просто дать пояснение по обозначению, которое ответы могут использовать, чтобы помочь им быть более понятными для широкого читателя)
Я думаю, что было бы полезно иметь список общих функций затрат, а также несколько способов их использования на практике. Так что, если другие заинтересуются этим, я думаю, что вики-сообщество, вероятно, является лучшим подходом, или мы можем снять его, если это не по теме.
нотация
Итак, для начала я бы хотел определить обозначение, которое мы все используем при их описании, чтобы ответы хорошо соответствовали друг другу.
Это обозначение из книги Нильсена .
Нейронная сеть с прямой связью - это множество слоев нейронов, соединенных вместе. Затем он принимает на входе, что вход «течет» через сеть, а затем нейронная сеть возвращает выходной вектор.
Более формально, назовите активацией (он же выход) нейрона j t h в слое i t h , где a 1 j является элементом j t h во входном векторе.
Затем мы можем связать вход следующего слоя с его предыдущим с помощью следующего отношения:
где
- функция активации,
- вес отнейрона k t h вслое ( i - 1 ) t h донейрона j t h вслое i t h ,
- смещениенейрона j t h вслое i t h , и
представляет значение активациинейрона j t h вслое i t h .
Иногда мы пишем чтобы представить ∑ k ( w i j k ⋅ a i - 1 k ) + b i j , другими словами, значение активации нейрона перед применением функции активации.
Для более кратких обозначений мы можем написать
Чтобы использовать эту формулу для вычисления выхода сети прямой связи для некоторого входа , установите a 1 = I , а затем вычислите a 2 , a 3 , ..., a m , где m - количество слоев.
Введение
Функция стоимости - это мера того, «насколько хорошо» нейронная сеть работает в отношении заданной обучающей выборки и ожидаемого результата. Это также может зависеть от таких переменных, как вес и отклонения.
Функция стоимости - это одно значение, а не вектор, потому что она оценивает, насколько хорошо нейронная сеть работает в целом.
В частности, функция стоимости имеет вид
где - это веса нашей нейронной сети, B - смещения нашей нейронной сети, S r - вход одной обучающей выборки, а E r - желаемый выход этой обучающей выборки. Обратите внимание, что эта функция также потенциально может зависеть от y i j и z i j для любого нейрона j в слое i , потому что эти значения зависят от W , B и S r .
В обратном распространении функция стоимости используется для вычисления ошибки нашего выходного слоя, , через
.
Который также может быть записан как вектор через
.
Мы предоставим градиент функций стоимости в терминах второго уравнения, но если кто-то хочет доказать эти результаты самостоятельно, рекомендуется использовать первое уравнение, потому что с ним легче работать.
Требования к функции стоимости
Для использования в обратном распространении функция стоимости должна удовлетворять двум свойствам:
1: функция стоимости должна быть записана как среднее
функции перерасхода для отдельных примеров обучения, x .
Это позволяет нам вычислить градиент (относительно весов и смещений) для одного примера обучения и запустить Gradient Descent.
2: Функция затрат не должно зависеть от любых значений активации нейронной сети , кроме выходных значений в L .
Технически функция стоимости может зависеть от любого или z i j . Мы просто налагаем это ограничение, чтобы можно было использовать обратное распространение, потому что уравнение для нахождения градиента последнего слоя является единственным, которое зависит от функции стоимости (остальные зависят от следующего слоя). Если функция стоимости зависит от других уровней активации, кроме выходного, обратное распространение будет недопустимым, поскольку идея «обратного хода» больше не работает.
Кроме того, функции активации должны иметь выход для всех j . Таким образом, эти функции затрат должны быть определены только в этом диапазоне (например, √ справедливо, поскольку нам гарантированоa L j ≥0).
источник
Ответы:
Вот те, кого я понимаю до сих пор. Большинство из них работают лучше всего, когда заданы значения от 0 до 1.
Квадратичная стоимость
Также известный как среднеквадратичная ошибка , максимальная вероятность и суммарная квадратичная ошибка , это определяется как:
Градиент этой функции стоимости по отношению к выходу нейронной сети и некоторому образцу :r
Стоимость кросс-энтропии
Также известный как отрицательная логарифмическая вероятность Бернулли и бинарная перекрестная энтропия
Градиент этой функции стоимости по отношению к выходу нейронной сети и некоторому образцу :r
Экспоненциальная стоимость
Это требует выбора некоторого параметра который, по вашему мнению, даст вам желаемое поведение. Обычно вам просто нужно поиграть с этим, пока все не заработает.τ
Градиент этой функции стоимости по отношению к выходу нейронной сети и некоторому образцу rr
Расстояние Хеллингера
Градиент этой функции стоимости по отношению к выходу нейронной сети и некоторому образцу rr
Расхождение Кульбака – Лейблера
Также известен как информационное расхождение , информационное усиление , относительная энтропия , KLIC или дивергенция KL (см. Здесь ).
Градиент этой функции стоимости по отношению к выходу нейронной сети и некоторому образцу rr
Обобщенная дивергенция Кульбака – Лейблера
От сюда .
Градиент этой функции стоимости по отношению к выходу нейронной сети и некоторому образцу rr
Расстояние Итакура - Сайто
Также отсюда .
Градиент этой функции стоимости по отношению к выходу нейронной сети и некоторому образцу rr
источник
a*(1-a)
неa*(1+a)
У меня нет репутации, чтобы комментировать, но в последних 3 градиентах есть ошибки знака.
источник