Векторизованное доказательство без суммирования и индексов.

TL; DR

Обратное распространение - это основа глубокого обучения. Несмотря на то, что существует множество литературы по этому вопросу, мало кто подробно объясняет, откуда берутся формулы градиентов (∂ loss / ∂ W), необходимых для обратного распространения. Даже когда они объясняют, математика имеет тенденцию становиться длинной и заполненной индексами повсюду из-за большой размерности проблемы: у вас есть индекс для количества выборок, индекс для количества слоев и один для количества нейронов. в каждом слое.

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

Итак, идея этой статьи состоит в том, чтобы элегантно продемонстрировать формулы обратного распространения с использованием только векторизованного исчисления: Итак, никаких индексов i, j, k,… и никакого суммирования ∑ вообще! (Единственный индекс, который мы будем использовать, - это обозначить слой.)

Вступление

Предположим, у нас есть следующая архитектура нейронной сети (NN)

Наша NN имеет два скрытых слоя и один выходной слой из трех классов. Мы будем использовать активацию softmax для всех слоев.

Обучение этой модели означает минимизацию нашей функции потерь, которая представляет собой кросс-энтропию (логарифм потерь). Поскольку у нас есть 3 класса, потеря журнала составляет: 𝜉 (Y, X, W₁, W₂, W₃) = сумма [Yжурнал (X₃)]
Где: сумма представляет собой сумму всех элементов в матрице, а представляет собой поэлементное произведение двух матриц одинаковой формы. также называют произведением Адамара.

X₀ - это матрица размером n × 3, где n - размер мини-пакета.
W₀ - это матрица 3 × 5. У него есть веса для перехода от слоя 0 к 1.
X₁
- это матрица размера n × 5. Он представляет преобразование данных первого слоя.
W₁
представляет собой матрицу 5 × 4. У него есть веса для перехода со слоя 1 на 2.
X₂
- это матрица размера n × 4. Он представляет преобразование данных второго уровня.
W₂
представляет собой матрицу 4 × 3. Он имеет веса для перехода от уровня 2 к уровню 3.
X₃
- это матрица размера n × 3. Он представляет преобразование данных третьего уровня.
Y
- это матрица размером n × 3, где 3 - количество классов.

В основном цель этой статьи - продемонстрировать следующее дифференциальное выражение: (★)

где 𝜹₂ = Y - X₃
и 𝜹₁ = (𝜹₂ .W₂ ) X₂ ○ (1 - X₂)
и 𝜹₀ = (𝜹₁ .W₁) X₁ ○ (1 - X₁ ).
и ○ продукт Адамара.
и : продукт Фробениуса

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

Таким образом, на каждом шаге Wᵢ обновляется следующим образом: [Wᵢ = Wᵢ + 𝛼 * Xᵢ 𝜹ᵢ] где 𝛼 - скорость обучения.

Если вам интересно, как найти (★), то эта статья для вас!

Ключевые результаты требовали доказательства

1. Ссылка на полиномиальную регрессию.

На самом деле, если вы возьмете два последних уровня нашей сети, это будет в основном полиномиальная логистическая регрессия с X₂ в качестве входных данных и X₃ в качестве выходных прогнозов:

Если 𝜎 - функция softmax, мы можем написать X₃ = 𝜎 (X₂W₂).
Если Z₂ = X₂W₂, мы можно написать X₃ = 𝜎 (Z₂).

Таким образом, убыток можно записать следующим образом: 𝜉 = сумма [Ylog (𝜎 ( Z₂))]

Итак, если мы согласимся с тем, что это действительно проблема полиномиальной логистической регрессии, то мы получим следующие результаты:

Чтобы статья оставалась краткой, мы не будем вдаваться в подробности того, как рассчитать эти градиенты. Но если вас интересует доказательство, дайте мне знать, и я постараюсь написать об этом статью.

Еще одна интересная вещь, на которую следует обратить внимание, заключается в том, что, поскольку мы используем активацию softmax для всех слоев, мы можем сделать вывод:

2. Дифференцирующие функции матриц.

Эта часть очень важна, потому что она предоставит нам элегантный способ показать окончательное выражение (★).

f: Матрица - ›Скалярная

Давайте рассмотрим f как функцию, которая принимает матрицу и выводит скаляр. Если f дифференцируема, то:

Таким образом, дифференциал f записывается следующим образом:

где : означает произведение Фробениуса [A: B = след (AB)] .

f: Скаляр - ›Скаляр, применяется поэлементно к матрице

Давайте рассмотрим f как простую функцию, которая принимает скаляр и выводит скаляр. Теперь обозначим F как функцию, которая применяет f к каждому элементу матрицы независимо. Если f дифференцируема, то:

Таким образом, дифференциал f записывается следующим образом:

где - это продукт хадамара, который мы видели ранее.

3. Свойства произведений Адамара и Фробениуса.

Пусть A, B и C - три матрицы одинаковой формы.

  • Свойства продукта Адамара:

Он имеет в основном те же свойства, что и простое скалярное умножение, но для матриц.

Коммутативный AB = BA
Ассоциативный A(BC) = (A B)C = AB C
Распространение по сравнению с добавлением A (B + C) = AB + AC

  • Свойства продукта Frobenius:

Распределение по сложению A: (B + C) = A: B + A: C

Следующее свойство особенно интересно, и его можно просто доказать, заменив оператор «:» формулой следа.

Совместные свойства двух продуктов:

Порядок операций:
«○» имеет более высокий приоритет, чем «:», и оба они имеют более низкий приоритет, чем матричное умножение «.» то есть: "." ›« ○ »› «:»
Таким образом, A: BCD = A: (B (CD))

Наиболее важным свойством между двумя операторами является следующее:

и это можно просто продемонстрировать, заменив оператор «:» формулой трассировки.

Доказательство формул обратного распространения

1. Определение убытков

Если мы объединим 1.a и 2.a, мы получим

Поскольку Z - это матричное умножение, оно отличается следующим образом:

Таким образом

Теперь у нас есть дифференциал 𝜉 на W₂ и X₂ с 4 строками доказательства.

2. Различение скрытых слоев

Теперь давайте обратимся к последнему скрытому слою.
Если мы объединим 1.b и 2.b, мы получим:

Таким образом, 𝜹₂W₂: d X₂ становится

Теперь у нас есть дифференциал 𝜹₂W₂: d X₂, с 6 строками доказательства.

Помещение этого обратно в до дает нам

Вот и все. Остальные просто повторяют этот шаг для оставшихся слоев.

Сделав для 𝜹₁W₁: d X₁ то же, что и для 𝜹₂W₂: d X₂ получаем:

3. Собираем все вместе

Наконец, поместив все обратно в d𝜉, мы получим окончательное уравнение (★)

где 𝜹₂ = Y - X₃
и 𝜹₁ = (𝜹₂ .W₂ ) G₁ = (𝜹₂ .W₂) X₂ ○ (1 - X₂)
и 𝜹₀ = (𝜹₁ .W₁ ) ○ G = (𝜹₁ .W₁) X₁ ○ (1 - X₁)

Тада! 🎉

Заключение

Лично я считаю, что это доказательство более элегантно и его легче воспроизвести по памяти, не заглядывая в учебник. Я надеюсь, что это относится и к вам, и я надеюсь, что вам понравилась эта статья.

использованная литература