Подробно объясните принцип softmax и его взаимосвязь с потерей перекрестной энтропии.

искусственный интеллект глубокое обучение
Подробно объясните принцип softmax и его взаимосвязь с потерей перекрестной энтропии.

1. определение софтмакс

Китайское название softmax — экспоненциальная нормализация, которая часто используется в моделях с несколькими классификациями. Предположим, мы хотим разделить на k категорий, а выход модели представляет собой вектор (a1, a2, ... ak), мы можем использовать softmax для нормализации вектора, а сумма элементов вектора после обработки равна 1 , Формула softmax выглядит следующим образом:

Pi=eaij=1keajP_i=\frac{e^{a_i}}{\sum_{j=1}^{k}{e^{a_j}}}

2. Численная стабильность softmax

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

Pi=ceaij=1kceaj=eai+logcj=1keaj+logcP_i=\frac{ce^{a_i}}{\sum_{j=1}^{k}{ce^{a_j}}}=\frac{e^{a_i+logc}}{\sum_{j=1}^{k}{e^{a_j+logc}}}

Чтобы экспонента была как можно ближе к выходу за пределы, просто позвольтеlogcЗначение очень маленькое, обычно берем:

logc=max(ai)logc = -max(a_i)

3. Вывод софтмакс

Мы получаем прогнозируемую вероятность Pi класса i с помощью softmax, рассматривая два случая:

Когда i==j,

Laj=eaij=1keajeai2j=1keaj2=Pi(1Pi)\frac{\partial{L}}{\partial{a_j}}=\frac{e^{a_i\sum_{j=1}^{k}{e^{a_j}}}-{e^{a_i}}^2}{{\sum_{j=1}^{k}{e^{a_j}}}^2}=P_i(1-P_i)

Когда i!=j,

Laj=eaieajj=1keaj2=PiPj\frac{\partial{L}}{\partial{a_j}}=\frac{-e^{a_i}e^{a_j}}{{\sum_{j=1}^{k}{e^{a_j}}}^2}=-P_iP_j

4. Взаимосвязь между потерями перекрестной энтропии и softmax

Перекрестная энтропийная потеря определяется следующим образом:

L=i=1kyilogPiL=-\sum_{i=1}^{k}{y_ilogP_i}

В приведенной выше формулеyi, 1, если истинный класс выборки равен i, и 0 в противном случае.

Вычислите производную перекрестной энтропии (цепное правило + добавление подслучай):

Laj=LPiPiaj=yiPiPi(1Pi)+ijyiPiPiPj=yj+yjPj+ijyjPj=yj+Pj\frac{\partial{L}}{\partial{a_j}}=\frac{\partial{L}}{\partial{P_i}}\frac{\partial{P_i}}{\partial{a_j}}= \frac{-yi}{P_i}P_i(1-P_i)+\sum_{i≠j}\frac{y_i}{P_i}PiPj=-y_j+y_jP_j+\sum_{i≠j}y_jP_j=-y_j+P_j

Весь процесс вывода кажется сложным, но окончательный результат очень прост и понятен: это вероятность j, предсказанная softmax.PiP_iи настоящие этикеткиyjy_jзначение отклонения.