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

Норма градиента после пакетной нормализации

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

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

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

Нормализация пакета · Описывает нормализацию пакета и её производные.

Проект использует линейное правило с двумя признаками. Обученные веса дают оценки или нормированную массу.

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

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

Используется в разделах источника: 6.4 Общая шкала для сравнения чисел

Формула градиента удаляет направление среднего и направление нормированного пакета из входящего градиента.

Эти операции определяют структурированные слои сети и их анализ.

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

∥∇(r∘B(β,γ))(b)∥22=γ2σb2(∥∇r(b)∥2−1m⟨1,∇r(b)⟩2−1m⟨B(0,1)(b),∇r(b)⟩2),\|\nabla(r\circ\mathcal{B}^{(\beta,\gamma)})({b})\|_{2}^{2}=\frac{\gamma^{2}}{\sigma_{b}^{2}}\big(\left\|\nabla r({b})\right\|^{2}-\frac{1}{m}\langle\mathbf{1},\nabla r({b})\rangle^{2}-\frac{1}{m}\langle\mathcal{B}^{(0,1)}({b}),\nabla r({b})\rangle^{2}\big),

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

Обозначения

bb
Действительный вектор пакета длины m.
σbσb
Положительное стандартное отклонение пакета.
γγ
Действительный масштаб.
rr
Дифференцируемая скалярная потеря.
B(0,1)B⁽⁰,¹⁾
Пакет, нормированный с нулевым сдвигом и единичным масштабом.
11
Вектор единиц.

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

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

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

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

Вы выбираете

  • input.gamma = 1

Начальные значения в коде

  • g = [1, 0, 1]

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

Выражение результата: { gradient, squaredNorm, rightSide }

  • sigma = Math.sqrt(2 / 3)
  • z = [-1 / sigma, 0, 1 / sigma] Использует: sigma
  • meanComponent = dot([1, 1, 1], g) / 3 Использует: dot, g
  • normalizedComponent = dot(z, g) / 3 Использует: dot, z, g
  • gradient = g.map( (v, i) => (input.gamma / sigma) * (v - meanComponent - normalizedComponent * z[i]), ) Использует: g, input.gamma, sigma, meanComponent, normalizedComponent, z
  • squaredNorm = dot(gradient, gradient) Использует: dot, gradient
  • rightSide = (input.gamma ** 2 / (sigma * sigma)) * (dot(g, g) - dot([1, 1, 1], g) ** 2 / 3 - dot(z, g) ** 2 / 3) Использует: input.gamma, sigma, dot, g, z

Возвращает

Пример результата
gradient
массив (3 элементов): [≈0,4082, ≈-0,8165, ≈0,4082]
squaredNorm
1
rightSide
1

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

Результат

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

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

Используются пакет [−1,0,1], r(z) = z₁+z₃ и указанная γ. Градиент этой линейной потери равен [1,0,1] всюду, поэтому он совпадает в b и в нормированном выходе. Код вычисляет градиент по правилу цепочки через якобиан и обе стороны тождества квадрата нормы. Утверждение источника принимает m ≥ 2, действительные β и γ и дифференцируемую r. Формула требует σb > 0, хотя показанное утверждение говорит о любом пакете: у постоянного пакета знаменатель равен нулю. В источнике напечатано ∇r(b); для общей нелинейной r обычное правило цепочки вычисляет входящий градиент в B(b), поэтому напечатанный аргумент может требовать уточнения.

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