Вопрос или проблема
Я нашел в интернете, что производная функции активации кросс-энтропии с активацией softmax равна (выход – ожидаемое), что очень меня запутало. Если, например, ожидаемое значение равно 1, и так как выход всегда меньше 1 (softmax), разве это не означает, что производная отрицательна, и что если мы обучим наши веса с этим градиентом, веса будут уменьшаться, и тогда выход уменьшится в следующей итерации, что приведет к увеличению ошибки? Как это работает?
Как вы упомянули, (выход-ожидаемое) посмотрите, это значение будет меньше 0 (отрицательное, так как выход<1 и ожидаемое=1) Теперь w_new = w_old - скорость_обучения*производная теперь, основываясь на производной, w_new может быть больше или меньше, чем w_old.
Я думаю, что ваше предположение о том, что при отрицательной производной веса уменьшаются, неверно. Также даже если веса уменьшаются, утверждение, что выход тоже уменьшится, также неверно.
Ответ или решение
Как работает перекрестная энтропия с функцией активации Softmax?
Интеграция понятий
В контексте задач многоклассовой классификации, сочетание функции активации Softmax и функции потерь перекрестной энтропии (Cross-Entropy) является стандартом, обеспечивающим эффективное обучение нейросетей. Давайте рассмотрим, как эти два компонента взаимодействуют и каким образом это может вызвать путаницу.
Функция Softmax
Функция активации Softmax преобразует выходные данные нейронной сети в вероятностное распределение, где сумма всех выходных значений равна 1. Для класса ( k ), выходное значение ( y_k ) вычисляется по формуле:
[
y_k = \frac{e^{zk}}{\sum{j} e^{z_j}}
]
где ( z_k ) — это линейная комбинация признаков и соответствующих весов для класса ( k ).
Перекрестная энтропия
Функция потерь перекрестной энтропии измеряет расхождение между вероятностным распределением, выданным моделью (через Softmax), и истинным распределением (обычно представляемым одним «горячим» вектором, где 1 соответствует правильному классу). Она определяется как:
[
L = -\sum_{k} y_k \log(\hat{y}_k)
]
где ( \hat{y}_k ) — это предсказанная вероятность для класса ( k ).
Производная перекрестной энтропии
Согласно вашей путанице, важный момент заключается в понимании производной функции потерь по отношению к выходу Softmax. Производная функции потерь — это
[
\frac{\partial L}{\partial z_k} = \hat{y}_k – y_k
]
где ( y_k ) — это ожидаемое значение (обычно 1 для правильного класса и 0 для остальных), а ( \hat{y}_k ) — выданное Softmax значение.
Пояснение вычитания
Когда вы получаете отрицательное значение от (output – expected), важно отметить, что механизм обновления весов касается того, как эти выводы выравниваются друг с другом, а не абсолютных значений. Если вывод вашей модели для правильного класса (expected = 1) составляет 0.8, то:
[
\frac{\partial L}{\partial z_k} = 0.8 – 1 = -0.2
]
Этот результат показывает, что ваши текущие веса «недостаточно хороши» в предсказании истинного класса. При обновлении весов, используя градиентный спуск:
[
w{\text{new}} = w{\text{old}} – \eta \cdot \frac{\partial L}{\partial w}
]
где ( \eta ) — это коэффициент обучения, обновления весов будут зависеть от знака производной. Если производная отрицательная, вес будет увеличиваться, что, в свою очередь, может повысить вероятность для правильного класса.
Почему вес может не уменьшаться?
Важно помнить, что результаты функции Softmax и градиентный спуск не работают изолированно. Производная может быть отрицательной, но, поскольку вы обновляете веса, изменение этих весов не гарантирует, что выходы будут всегда уменьшаться. Последствия обновления зависят от истории градиентов и текущего состояния весов, которые могут дойти до состояния, когда выходное значение будет более точным.
Заключение
Работа с функциями Softmax и перекрестной энтропии может быть сложной, но понимание их совместной работы является критически важным для успешного обучения моделей машинного обучения. Секрет заключается в оздоровлении весов в ответ на обозначенные ошибки, а не в простом вычитании значений, которые могут на первый взгляд показаться негативными. Обращение к этому взаимодействию обеспечивает улучшение выходных данных и, следовательно, снижение ошибки обучения.