На softmax есть сотни объяснений и статей. Да! он хорошо объясняет концепции, и приложение тоже вау!
Но давайте попробуем демистифицировать его, его сможет понять даже полный новичок. Вот вам самое интуитивно понятное объяснение функции Softmax, которая в основном используется в искусственных нейронных сетях.
Представьте, что у вас есть корзина с разными фруктами: яблоками, апельсинами, бананами, виноградом и клубникой. Теперь вы хотите знать, какой фрукт самый любимый среди ваших друзей. Функция softmax может помочь вам в этом!
Функция softmax работает, присваивая баллы каждому фрукту, указывая, насколько ваши друзья любят каждый фрукт. Чтобы получить эти баллы, вы попросите каждого друга оценить каждый фрукт по шкале от 1 до 10. Допустим, у вас есть три друга: Зайд, Амр и Бакр.
Вот оценки, которые они дают для каждого фрукта:
Zaid: Яблоки — 7, Апельсины — 6, Бананы — 8, Виноград — 9, Клубника — 5
Amr : Яблоки — 9, Апельсины — 4, Бананы — 5, Виноград — 7, Клубника — 8
Бакр: Яблоки — 6, Апельсины — 8, Бананы — 7, Виноград — 6, Клубника — 9
Теперь вы можете использовать функцию softmax для преобразования этих оценок в вероятности, которые сообщают вам вероятность того, что каждый фрукт является фаворитом.
Для этого берем рейтинги и применяем формулу softmax:
Вероятность яблок = e^(рейтинг яблок) / (сумма e^(рейтинг всех фруктов))
Вероятность апельсинов = e^(рейтинг апельсинов) / (сумма e^(рейтинг всех фруктов))
Вероятность бананов = e^ (рейтинг бананов) / (сумма e^(рейтинги всех фруктов))
Вероятность винограда = e^(рейтинг винограда) / (сумма из e^(рейтинги всех фруктов))
Вероятность клубники= e^(рейтинги клубники) / (сумма e^(рейтинги всех фруктов ))
После выполнения расчетов вы получите вероятности для каждого фрукта. Фрукт с наибольшей вероятностью считается фаворитом среди ваших друзей.
Например, предположим, что вероятности таковы:
Вероятность яблок: 0,12
Вероятность апельсинов: 0,04
Вероятность бананов: 0,06
Вероятность винограда: 0,08
Вероятность клубники: 0,70
Из этих вероятностей мы видим, что клубника имеет наибольшую вероятность, поэтому это любимый фрукт среди ваших друзей.
Таким образом, используя функцию softmax, вы можете определить, какой фрукт вам больше всего нравится, основываясь на оценках ваших друзей.
В искусственной нейронной сети у нас часто есть набор выходных данных, которые представляют вероятности различных классов или категорий. Функция softmax помогает нам преобразовать набор чисел в распределение вероятностей, где сумма значений равна 1.
Функция softmax принимает входной вектор и вычисляет степень каждого элемента в векторе. Затем он нормализует эти возведенные в степень значения, разделив их на сумму всех возведенных в степень значений. Выходы функции softmax взаимосвязаны. Сумма вероятностей Softmax всегда будет равна единице: 0,12 + 0,04 + 0,06 + 0,08 + 0,70 = 1,00. В этом случае, если мы хотим увеличить вероятность одного класса, другой должен уменьшиться на такую же величину.
Вот формальное определение функции softmax для вектора x:
softmax(x) = e^(x) / сумма(e^(x))
Разобьем его на более простые шаги:
Шаг 1. Возведение в степень
Для каждого элемента входного вектора x вычислить e^(x), где e — математическая константа примерно равно 2,71828.
Шаг 2: Подведение итогов
Сложите все возведенные в степень значения из шага 1.
Шаг 3: Нормализация
Разделите каждое возведенное в степень значение из шага 1 на сумму, полученную на шаге 2.
Полученные значения после нормализации представляют вероятности различных классов или категорий. Чем выше значение для конкретного класса, тем выше вероятность.
Функция softmax обычно используется в выходном слое нейронной сети, когда мы хотим получить распределение вероятностей по нескольким классам. Это гарантирует, что вероятности положительны и в сумме равны 1, что упрощает интерпретацию прогнозов сети.
Используя функцию softmax, нейронная сеть может назначать более высокие вероятности правильным классам и более низкие вероятности неправильным классам, помогая в процессе принятия решений.