alterna ai
ALTERNA AI / ГЛАВА 08 · 05

08.5 Среднее и масштаб одного вектора

На предыдущей странице: с чего начинается обучение.

Вычтем среднее и разделим координаты на общий масштаб. Затем сравним правило, которое учитывает величину без вычитания среднего.

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

Статистика одного примера

Для вектора x из d компонент LayerNorm использует его mean и population variance. В отдельной лаборатории γ=1,β=0 фиксированы:

μ=1d∑ixi,v=1d∑i(xi−μ)2,yi=xi−μv+ϵ.\mu=\frac1d\sum_i x_i,\quad v=\frac1d\sum_i(x_i-\mu)^2,\quad y_i=\frac{x_i-\mu}{\sqrt{v+\epsilon}}.

Для [1,2,3] среднее2, variance2/3. При ε→0 выход [−√1.5,0,√1.5]. С ε=1e−5 значения немного ближе к нулю: variance результата не обязана равняться ровно1. N06 подтверждает выбор осей статистики; числа выведены независимо.

RMS-нормирование не вычитает mean: y=x/√(mean(x²)+ε). Для того же входа второй момент14/3. Постоянный [2,2,2] после LN нулевой, после RMS почти [1,1,1].

Эксперимент. Прибавьте одинаковый offset всем компонентам: LN сохранится, RMS в общем случае изменится. Обнулите вход: epsilon предотвращает деление на0. Эта отдельная модель не добавляет скрытую normalization к XOR trainer.

BatchNorm использует другую ось статистики и может иметь running estimates и различия train/eval. Нельзя переносить эти свойства на LN. В настоящем affine LayerNorm обучаемые γ,β добавляют параметры; здесь их фиксированность подписана.

from math import sqrt
x=[1,2,3]
mu=sum(x)/3
variance=sum((v-mu)**2 for v in x)/3
y=[(v-mu)/sqrt(variance+1e-5) for v in x]
assert mu==2 and variance==2/3 and abs(sum(y))<1e-12

Код повторяет только что разобранные операции. Полный проверяемыйPython-пример главы доступен отдельным файлом; показанный короткий фрагмент не заменяет его реализацию.

Вычитание mean зануляет числитель, epsilon сохраняет знаменатель положительным.

Прямой путь через блок. Как этот вопрос продолжает полученный результат?

Python-примеры главы 08 Академическая база →