Обучение классификатора Softmax: математика потерь и градиентный спуск

DeepLearning.AI 79,1 тыс. 10 мин 3 мин 25.08.2017
Главное

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

🧠 Природа Softmax: «мягкий» против «жесткого» 0:00

В задачах многоклассовой классификации (где количество классов $C > 2$) выходной слой нейронной сети вычисляет вектор $Z^{[L]}$, размерность которого соответствует числу классов . Для преобразования этих сырых значений в вероятности используется активация Softmax.

Процесс вычисления включает два этапа:

  1. Экспоненциальное преобразование: создание временной переменной $t$, где каждый элемент вектора $Z$ возводится в степень $e$ ($e^{z_i}$) .
  2. Нормализация: деление каждого полученного значения на сумму всех экспонент. В результате получается вектор активаций $a^{[L]}$, сумма элементов которого всегда равна единице .

Эндрю Ын объясняет происхождение названия через сопоставление с функцией «Hardmax» .

По утверждению Эндрю Ына, Softmax является прямым обобщением логистической регрессии на случай более чем двух классов . Лектор отмечает, что при $C=2$ Softmax сводится к логистической регрессии, так как вычисление двух зависимых вероятностей (сумма которых равна 1) становится избыточным и математически эквивалентно вычислению одного значения в бинарной классификации .

📉 Математика обучения: функция потерь 2:58

Для настройки параметров нейросети необходимо определить, насколько ее предсказания отклоняются от истины. В случае с Softmax стандартным инструментом является функция потерь (Loss Function), основанная на логарифмах .

Рассмотрим пример с классификацией изображений, где целью является определение кота (второй класс из четырех возможных).

Общая формула функции потерь выглядит как отрицательная сумма произведений истинных меток на логарифм предсказаний: $L = -\sum (y_j \cdot \log \hat{y}_j)$ . Поскольку в векторе $y$ только один элемент равен единице (соответствующий правильному классу), а остальные — нули, формула упрощается до $L = -\log \hat{y}_2$ .

Логика минимизации этой функции, по словам Эндрю Ына, предельно проста:

Статистически этот подход представляет собой форму оценки максимального правдоподобия (Maximum Likelihood Estimation), хотя глубокое понимание этого термина, как считает лектор, не обязательно для практического применения .

📊 Векторизация и стоимость обучения 5:55

Для обучения на всем наборе данных вводится функция стоимости (Cost Function) $J$, которая представляет собой среднее арифметическое потерь на всех обучающих примерах $M$ . Минимизация этой функции осуществляется с помощью градиентного спуска .

При реализации алгоритма критически важна векторизация:

Такая структура позволяет эффективно проводить вычисления сразу для всего пакета данных, не прибегая к медленным циклам for .

🔄 Градиентный спуск и обратное распространение 7:36

Ключевым моментом для реализации градиентного спуска является вычисление производных. Эндрю Ын выделяет центральное уравнение для инициализации процесса обратного распространения (backpropagation) в выходном слое $L$ :

$$dZ^{[L]} = \hat{y} - y$$

Это элегантное выражение показывает, что ошибка на выходном слое — это просто разница между вектором предсказанных вероятностей и вектором истинных меток . Оба вектора имеют размерность $C \times 1$ (в примере — $4 \times 1$).

Тем не менее, Эндрю Ын делает важное замечание о современной практике разработки:

  1. Если вы пишете код «с нуля», вам придется использовать эту формулу для вычисления градиентов по всей сети .
  2. При использовании современных фреймворков глубокого обучения программисту достаточно корректно реализовать только прямое распространение (Forward Prop) .
  3. Фреймворк автоматически вычислит необходимые производные и выполнит обратный проход .

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

💬 Цитаты

«Softmax-регрессия — это обобщение логистической регрессии на более чем два класса.»

«Название Softmax происходит от контраста с так называемым Hardmax, который ставит 1 на место самого большого элемента и 0 на остальные.»

👥 Спикер
📖 Термины
Softmax
Активационная функция, превращающая вектор чисел в вектор вероятностей.
Hardmax
Функция, которая жестко присваивает единицу максимальному значению, а остальным — ноль.
Loss Function (Функция потерь)
Метрика, оценивающая ошибку нейросети на одном конкретном примере.
Backpropagation
Метод вычисления градиентов для обновления весов нейронной сети.
📊 Цифры
⚖️ Другая сторона
Искусственный интеллект Softmax Эндрю Ын DeepLearning.AI Gradient Descent Cross-Entropy