Softmax часто используется в машинном обучении. Можете ли вы объяснить функцию своими словами? Вот что я заметил при использовании.

Softmax — это функция, которая вычисляет доли чисел нелинейным способом. См. рисунок 1. Например, если у вас есть три числа [1, 1, 8], то он вычисляет [e¹, e¹, e⁸] и вычисляет каждую дробь (см. C). Хорошо, теперь в чем отличие от обычного расчета дроби?

Есть две особенности:

  • Затронут большим выбросом (например, наиболее значимое число больше следующего числа более чем на 4).
  • Зависит от значений, а не долей входных данных

Давайте посмотрим А и С.

Входы одинаковые, но большая разница в наибольшем количестве на выходе. Обычная дробь дает 0,8, но softmax дает 0,98, что намного больше, чем 0,8. Это показывает, что наибольший выброс сильно влияет на softmax. Если разрыв между первым и вторым наибольшим числом во входных данных равен 4, соответствующее отношение на выходе будет e⁴ (около 55), что означает, что наибольшее число в 55 раз больше следующего, хотя исходное соотношение было 4. .

Затем см. C и D.

Вход C и D имеют одинаковые дроби. Тем не менее, выходы очень разные. Разрыв рос, и отношение наибольшего числа тоже становилось больше.

В заключение, функция softmax — это функция, которая имеет тенденцию преувеличивать наибольшее число в зависимости от входных значений.