Современная математика глубокого обученияобъяснение для тех, кто не занимается математикой

Обратное распространение через два слоя

Проект с пингвинами

Проект использует 342 записи Palmer с нужными измерениями: 240 для обучения, 102 для проверки. Выбранные примеры для обучения определяют масштабирование и параметры модели. Исходный CSV

Этот проект обучает веса с помощью softmax, в отличие от лаборатории на главной странице, где используются ближайшие средние по видам. Те же измерения пингвинов, но разные методы классификации. Предсказания могут различаться.

Функции и производные · Описывают отображения и изменение их значений.

Векторы проекта имеют два признака; обучающая матрица содержит n строк и два столбца. Инструменты применимы, когда выполнены их предположения.

Рассмотрите понятие рядом с проектом: предположения источника могут отличаться. Эти наблюдения не доказывают теорему.

Вход: 12 × 2; Проверка на новых данных: 102 · #58 · 40.6 мм, 193 мм. Известный ответ: Адели; Прогноз: Адели · [≈0,7383; ≈0,2444; ≈0,01737].

Используется в разделах источника: 2.3 Путь обучения имеет значение

Правило цепочки перемножает отклики каждого этапа на малое изменение. В скалярном примере эти множители — обычные числа.

Пусть Φ(x)=v·ReLU(ux). Вдали от ux=0 производная по u равна v·ReLU′(ux)·x.

Обратное распространение вычисляет, как параметры влияют на выход.

Пример формулы источника

∇W(ℓ)Φ=ϱ(Φ(ℓ−1))∂Φ∂Φ(ℓ+1)∂Φ(ℓ+1)∂Φ(ℓ)=ϱ(Φ(ℓ−1))∂Φ∂Φ(ℓ+1)W(ℓ+1)diag⁡(ϱ′(Φ(ℓ))),\nabla_{W^{(\ell)}}\Phi=\varrho(\Phi^{(\ell-1)})\frac{\partial\Phi}{\partial\Phi^{(\ell+1)}}\frac{\partial\Phi^{(\ell+1)}}{\partial\Phi^{(\ell)}}=\varrho(\Phi^{(\ell-1)})\frac{\partial\Phi}{\partial\Phi^{(\ell+1)}}W^{(\ell+1)}\operatorname{diag}\big(\varrho^{\prime}(\Phi^{(\ell)})\big),

Иллюстрация · Это скалярное вычисление вдали от точки излома ReLU не вычисляет полный матричный градиент общей сети.

Обозначения

W(ℓ)W^{(ℓ)}
Матрица весов слоя ℓ.
ρ′ρ^{\prime}
Производная активации там, где она определена.

Пример формулы источника

Этот пример использует свои входные данные и предположения. Его изменение не меняет проект.

Измените значение или код и запустите пример. Это конечная иллюстрация, а не доказательство теоремы.

Поток данных в этом примере

Вы выбираете

  • input.u = 2
  • input.x = 1
  • input.v = 3

Вычисляется здесь

Выражение результата: { preactivation, activation, activationDerivative, output, gradientU, gradientMatrix: [[gradientU]], gradientShape: [1, 1], }

  • preactivation = input.u * input.x Использует: input.u, input.x
  • activation = Math.max(0, preactivation) Использует: preactivation
  • activationDerivative = preactivation > 0 ? 1 : 0 Использует: preactivation
  • output = input.v * activation Использует: input.v, activation
  • gradientU = input.x * input.v * activationDerivative Использует: input.x, input.v, activationDerivative

Возвращает

Пример результата
preactivation
2
activation
2
activationDerivative
1
output
6
gradientU
3
gradientMatrix
массив (1 элементов): [массив (1 элементов): [3]]
gradientShape
массив (2 элементов): [1, 1]

Прочитайте числа из input и верните результат. Основы JavaScript.

Результат

Включите JavaScript, чтобы запустить пример.

Техническая формулировка

Источник применяет правило цепочки к сети без смещений со скалярным выходом. В источнике градиент показан размером N_(ℓ−1) на N_ℓ. Пример имеет один скалярный вход и один скрытый нейрон, поэтому показанный градиент имеет размер 1 на 1. ReLU не имеет единственной производной в нуле, и код отклоняет этот случай.

Источник: Выражение из статьи