Норма градиента после пакетной нормализации
Проект с пингвинами
Проект использует 342 записи Palmer с нужными измерениями: 240 для обучения, 102 для проверки. Выбранные примеры для обучения определяют масштабирование и параметры модели. Исходный CSV
Этот проект обучает веса с помощью softmax, в отличие от лаборатории на главной странице, где используются ближайшие средние по видам. Те же измерения пингвинов, но разные методы классификации. Предсказания могут различаться.
Нормализация пакета · Описывает нормализацию пакета и её производные.
Проект использует линейное правило с двумя признаками. Обученные веса дают оценки или нормированную массу.
Рассмотрите понятие рядом с проектом: предположения источника могут отличаться. Эти наблюдения не доказывают теорему.
Вход: 12 × 2; Проверка на новых данных: 102 · #58 · 40.6 мм, 193 мм. Известный ответ: Адели; Прогноз: Адели · [≈0,7383; ≈0,2444; ≈0,01737].
Используется в разделах источника: 6.4 Общая шкала для сравнения чисел
Формула градиента удаляет направление среднего и направление нормированного пакета из входящего градиента.
Эти операции определяют структурированные слои сети и их анализ.
Пример формулы источника
Иллюстрация · Вымышленные конечные входы иллюстрируют выражение. Они не доказывают общего тождества, оценки или существования.
Обозначения
- Действительный вектор пакета длины m.
- Положительное стандартное отклонение пакета.
- Действительный масштаб.
- Дифференцируемая скалярная потеря.
- Пакет, нормированный с нулевым сдвигом и единичным масштабом.
- Вектор единиц.
Пример формулы источника
Этот пример использует свои входные данные и предположения. Его изменение не меняет проект.
Измените значение или код и запустите пример. Это конечная иллюстрация, а не доказательство теоремы.
Поток данных в этом примере
Код изменён. Сбросьте его, чтобы вернуть схему примера.
Вы выбираете
input.gamma= 1
Начальные значения в коде
g=[1, 0, 1]
Вычисляется здесь
Выражение результата: { gradient, squaredNorm, rightSide }
sigma=Math.sqrt(2 / 3)z=[-1 / sigma, 0, 1 / sigma]Использует:sigmameanComponent=dot([1, 1, 1], g) / 3Использует:dot,gnormalizedComponent=dot(z, g) / 3Использует:dot,z,ggradient=g.map( (v, i) => (input.gamma / sigma) * (v - meanComponent - normalizedComponent * z[i]), )Использует:g,input.gamma,sigma,meanComponent,normalizedComponent,zsquaredNorm=dot(gradient, gradient)Использует:dot,gradientrightSide=(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.
Результат
Техническая формулировка
Используются пакет [−1,0,1], r(z) = z₁+z₃ и указанная γ. Градиент этой линейной потери равен [1,0,1] всюду, поэтому он совпадает в b и в нормированном выходе. Код вычисляет градиент по правилу цепочки через якобиан и обе стороны тождества квадрата нормы. Утверждение источника принимает m ≥ 2, действительные β и γ и дифференцируемую r. Формула требует σb > 0, хотя показанное утверждение говорит о любом пакете: у постоянного пакета знаменатель равен нулю. В источнике напечатано ∇r(b); для общей нелинейной r обычное правило цепочки вычисляет входящий градиент в B(b), поэтому напечатанный аргумент может требовать уточнения.
Источник: Выражение из статьи