# Как работает Softmax: математика и логика мультиклассовых нейросетей

Источник: https://www.youtube.com/watch?v=LLux1SW--oM
Канал: DeepLearning.AI
Опубликовано: 25.08.2017

---

Эндрю Ын, основатель DeepLearning.AI, представляет глубокий разбор алгоритма регрессии Softmax — расширения логистической регрессии для задач мультиклассовой классификации. В рамках учебного курса рассматривается переход от простого бинарного выбора (0 или 1) к распознаванию множества объектов, что является фундаментом для современных систем компьютерного зрения и обработки естественного языка.

## 🐾 От бинарного выбора к множественным классам
[[JUMP:0:00]]

До этого момента большинство примеров классификации в нейронных сетях ограничивались бинарным подходом: является ли объект кошкой (1) или нет (0) [0:13]. Однако реальные задачи часто требуют распознавания одного из множества возможных классов. Регрессия Softmax (Softmax regression) — это математическое обобщение логистической регрессии, которое позволяет модели предсказывать принадлежность входных данных к одному из $C$ классов [0:27].

Эндрю Ын приводит наглядный пример классификации изображений животных:

*   **Класс 1:** Кошки [0:40].
*   **Класс 2:** Собаки.
*   **Класс 3:** Цыплята.
*   **Класс 0:** «Ничего из вышеперечисленного» (например, фото коалы) [0:55].

Для формализации задачи используется переменная $C$, обозначающая общее количество классов. Индексация классов в такой системе обычно идет от $0$ до $C-1$ [1:11]. В примере с животными $C = 4$, а метки принимают значения 0, 1, 2 или 3 [1:24].

## 🏗️ Архитектура выходного слоя Softmax
[[JUMP:1:36]]

Для реализации мультиклассовой классификации структура нейронной сети претерпевает изменения. В выходном слое (обозначаемом как $L$) количество нейронов теперь должно соответствовать количеству классов $C$ [1:50]. Каждый узел выходного слоя отвечает за вычисление вероятности принадлежности объекта к конкретному классу при заданных входных данных $X$ [2:03].

Ключевые особенности выходных данных:

1.  **Векторный формат:** Прогноз модели ($\hat{y}$) представляет собой вектор размерности $4 \times 1$ (в случае четырех классов) [2:29].
2.  **Сумма вероятностей:** Все значения в выходном векторе должны быть положительными и в сумме давать ровно 1 (100%) [2:43].
3.  **Интерпретация:** Первый узел выводит вероятность класса «прочее», второй — «кошка» и так далее [2:15].

## 🔢 Математический алгоритм вычислений
[[JUMP:2:55]]

Процесс получения вероятностей в слое Softmax разделен на несколько этапов. Сначала, как и в любом другом слое, вычисляется линейная часть $Z^{[L]}$ [3:09]:
$$Z^{[L]} = W^{[L]} \cdot A^{[L-1]} + b^{[L]}$$

После получения вектора $Z$ (который в примере имеет размерность $4 \times 1$) применяется специфическая функция активации Softmax [3:35]. Эндрю Ын описывает этот процесс через временную переменную $T$:

*   **Экспоненциальное преобразование:** Вычисляется $T = e^{Z^{[L]}}$ поэлементно. Если элемент в $Z$ был равен 5, то соответствующий элемент в $T$ станет $e^5$ [3:47].
*   **Нормализация:** Каждый элемент вектора $T$ делится на сумму всех элементов этого вектора [4:14].

Математически это выражается формулой для каждого элемента $i$:
$$a_i^{[L]} = \frac{t_i}{\sum_{j=1}^{C} t_j}$$

Это гарантирует, что на выходе мы получим распределение вероятностей [4:43].

## 🧮 Практический пример: расчет вероятностей
[[JUMP:5:08]]

Для закрепления материала Эндрю Ын разбирает конкретный числовой пример. Предположим, вектор $Z^{[L]}$ после линейных вычислений принял вид $[5, 2, -1, 3]$ [5:08].

1.  **Вычисление $T$ (экспоненты):**
    *   $e^5 \approx 148,4$
    *   $e^2 \approx 7,4$
    *   $e^{-1} \approx 0,4$
    *   $e^3 \approx 20,1$ [5:37].
2.  **Суммирование:** Общая сумма элементов вектора $T$ составляет $176,3$ [5:51].
3.  **Финальный расчет $\hat{y}$:**
    *   $148,4 / 176,3 = 0,842$ (84,2% — вероятность класса 0).
    *   $7,4 / 176,3 = 0,042$ (4,2% — класс 1).
    *   $0,4 / 176,3 = 0,002$ (0,2% — класс 2).
    *   $20,1 / 176,3 = 0,114$ (11,4% — класс 3) [7:02].

Главное отличие Softmax от других функций активации (таких как Sigmoid или ReLU) заключается в том, что она принимает на вход вектор и выдает вектор [8:00]. В Sigmoid активация одного нейрона зависит только от его собственного значения $z$, в то время как в Softmax значение каждого выходного нейрона зависит от значений всех остальных узлов слоя из-за этапа нормализации [8:27].

## 📈 Визуализация решающих границ
[[JUMP:8:40]]

Если рассмотреть нейронную сеть без скрытых слоев, где входные данные $X$ напрямую подаются на слой Softmax, модель будет строить линейные решающие границы [9:25]. Эндрю Ын демонстрирует графики, где пространство разделено на несколько зон (для 3, 4, 5 и 6 классов) [11:07].

По словам лектора, решающая граница между любыми двумя классами в такой конфигурации будет линейной [10:29]. Однако при добавлении глубоких скрытых слоев нейронная сеть становится способной изучать гораздо более сложные нелинейные границы для разделения множества классов [11:33]. Это делает Softmax мощным инструментом в составе глубоких архитектур.