Примечания к исследованию нейронной сети 4 - слой softmax + логарифмическая функция стоимости

алгоритм

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

Помимо кросс-энтропийного метода, есть еще один способ улучшить нейросеть — добавление слоя нейронов softmax

слой нейронов softmax

Слой нейронов softmax определяет новыйвыходной слой, его положение в нейронной сети показано на следующем рисунке:

image.png

для вводаzjL=kwjkLakL1+bjLz^L_j=\sum_kw^L_{jk}a^{L-1}_k+b^L_j, метод softmaxt применяет функцию softmax вzjLz^L_jвыше, то есть дляjjНейрон, значение активации которого равно:

ajL=ezjLkezkLa^L_j=\frac{e^{z^L_j}}{\sum_ke^{z^L_k}}

k\sum_kУказывает, что суммирование выполняется на всех нейронах.Формула показывает, что функция softmax будет выполнять две операции над входным значением нейрона:

  • будет введено промежуточное значениеzjLz^L_jчерез экспоненциальную функциюexe^xсопоставить с[0,+][0,+\infty]в пространстве
  • На неотрицательном интервале найдите долю отображенного значения каждого нейрона в сумме всех значений

Согласно приведенной выше формуле сумма выходных значений активации всех нейронов должна быть равна 1, а именно:

jajL=jezjLkezkL=1\sum_j a^L_j=\frac{\sum_j e^{z^L_j}}{\sum_ke^{z^L_k}} = 1

То есть выходные данные слоя softmax можно рассматривать как распределение вероятностей, и во многих задачах можно напрямую использовать значение активации вывода.ajLa^L_jИнтерпретируется как вероятность принадлежности входной выборки к определенной категории, что является очень удобным способом решения задачи.

функция softmaxt

Si=eijejS_i=\frac{e^i}{\sum_je^j}

Принцип softmax для увеличения скорости обучения

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

C=lnayLC=-\ln a^L_y

Рассчитать функцию стоимости по параметрамwwиbbЧастная производная от (процесс расчета):

CbjL=ajLyj\frac{\partial C}{\partial b^L_j}={a^L_j-y_j}
CwjkL=ajL1(ajLyj)\frac{\partial C}{\partial w^L_{jk}}=a^{L-1}_j(a^L_j-y_j)

Этот метод также исключаето'(z)\sigma'(z)чтобы избежать проблемы падения скорости обучения. Таким образом, небольшой эффект «функции стоимости softmax + логарифмического правдоподобия» может быть эквивалентен: «квадратичная функция стоимости + перекрестная потеря энтропии».

Почему это называется софтмакс

Добавьте нормальную сумму в функцию softmaxcc, формула принимает вид:

ajL=eczjLkeczkLa^L_j=\frac{e^{cz^L_j}}{\sum_ke^{cz^L_k}}

Из смысла формулы, объясненной ранее, видно, что увеличениеccПосле этого сумма всех значений активации вывода по-прежнему равна 1. когдаc=1c=1Функция softmax получается, когдаc+c\rightarrow +\inftyчас,ajL1a^L_j\rightarrow 1, что делает невозможным различение разности вероятностей каждого класса,softsoftСмысл в том, чтобы сгладить кривую распределения вероятностей, чтобы малые числа имели определенное значение.

иmaxmaxСмысл легче понять, т.exe^xИз изображения функции видно, что она очень быстро растет и может отображать большие числа в большое пространство, а маленькие числа — в относительно небольшое пространство, эффективно достигая цели отсеивания максимальной вероятности.

Обратное распространение softmax и логарифмическое правдоподобие

В алгоритме обратного распространения для вычисления ошибкидельта\delta, в алгоритме обратного распространения softmax+log-правдоподобия его формула расчета выглядит следующим образом:

дельтаjL=ajLyj\delta^L_j=a^L_j-y_j

которыйCbjL\frac{\partial C}{\partial b^L_j}значениедельтаjL\delta^L_j, процесс доказательства был написан в предыдущих примечаниях.