Дисперсия и стандартное отклонение 📊
Представь две модели машинного обучения, которые ты гоняешь на одном и том же датасете. Первая на пяти запусках с разными сидами даёт accuracy 0,84 / 0,84 / 0,85 / 0,84 / 0,83. Вторая — 0,79 / 0,91 / 0,72 / 0,95 / 0,83. Средняя точность у обеих одинаковая: 0,84. Если ты смотришь только на среднее, модели неотличимы. А по факту это два совершенно разных инженерных объекта: первую можно выкатывать в прод, вторую — нет, потому что ты не знаешь, что она выдаст завтра на новых данных. Разница между ними живёт не в матожидании. Она живёт в разбросе.
Матожидание из прошлого урока отвечает на вопрос «где центр». Но центр — это только половина истории, причём часто менее важная половина. Человек ростом 175 см и человек, который наполовину состоит из карлика ростом 100 см и наполовину из баскетболиста 250 см, имеют одинаковое «среднее», но это разные ситуации. Средняя температура по больнице — классическая шутка ровно про это. Инвестиционный портфель с доходностью «в среднем 10 %» может быть скучным депозитом, а может быть рулеткой, где половину лет ты теряешь 40 %. Чтобы отличить одно от другого, нужна вторая характеристика — числовая мера того, насколько сильно величина гуляет вокруг своего центра.
Эта мера называется дисперсией. И она не просто «ещё одно число рядом со средним» — она оказывается настолько фундаментальной, что через неё выражается половина практического машинного обучения. Почему увеличение батча вчетверо снижает шум градиента только вдвое? Дисперсия. Почему на тестовой выборке из 500 объектов вы не отличите модель с 90 % точности от модели с 91 %? Дисперсия. Почему нейросеть без нормализации входов сходится в десять раз медленнее? Дисперсия. Почему глубокая сеть с неудачной инициализацией не обучается вообще? Дисперсия сигнала, которая затухает или взрывается от слоя к слою. Почему ансамбль из десяти моделей лучше одной? Опять дисперсия.
В этом уроке мы построим всю конструкцию с нуля: от вопроса «а как вообще измерить разброс одним числом» до формул, которыми ты будешь пользоваться каждый рабочий день. Разберём, почему в определении стоит квадрат, а не модуль; выведем рабочую формулу, по которой дисперсию реально считают; поймём, почему сдвиг данных на константу не меняет разброс, а умножение на константу меняет его в квадрате; докажем ключевой факт про $\sigma/\sqrt{n}$, из которого растёт вся статистика выборок; познакомимся с неравенством Чебышёва — универсальной гарантией, работающей вообще для любого распределения; и закончим стандартизацией $Z = (X-\mu)/\sigma$, которую ты уже сто раз вызывал как StandardScaler, не задумываясь, откуда она берётся.
🎯 Ты узнаешь:
- Что такое дисперсия $D(X) = E(X - EX)^2$, откуда берётся рабочая формула $D(X) = E(X^2) - (EX)^2$ и почему в определении квадрат, а не модуль отклонения
- Почему стандартное отклонение $\sigma = \sqrt{D(X)}$ — это то, что реально показывают в отчётах, и в чём его главное преимущество перед дисперсией
- Как работают свойства $D(aX+b) = a^2 D(X)$ и $D(X+Y) = D(X) + D(Y)$ (второе — только для независимых!) и почему на этом стоит правило $\sigma/\sqrt{n}$
- Что гарантирует неравенство Чебышёва для любого распределения и как из него вырастает правило трёх сигм
- Где дисперсия работает в ML: bias-variance разложение, шум градиента и размер батча, доверительный интервал метрики, стандартизация признаков, инициализация Xavier и He, усреднение ансамблей
История: откуда это взялось?
Идея «измерить разброс» появилась не в математике, а в астрономии — и от чистой безысходности. В XVIII веке астрономы измеряли положение одной и той же звезды по десять раз и получали десять разных чисел. Что делать с этим набором? Роджер Котс ещё в 1722 году предложил брать среднее, но никто не мог объяснить, почему именно среднее и насколько ему можно верить. Нужна была мера «качества» измерений — насколько кучно они легли.
Решающий шаг сделал Карл Фридрих Гаусс в работе «Theoria motus corporum coelestium» (1809), где он разбирал задачу вычисления орбиты астероида Церера по горстке зашумлённых наблюдений. Гаусс исходил из принципа наименьших квадратов и показал: если ошибки измерений распределены по кривой, которую мы сегодня зовём нормальной, то оптимальная оценка получается минимизацией суммы квадратов отклонений. Квадрат отклонения появился как рабочий инструмент задолго до того, как его назвали дисперсией. Параллельно Пьер-Симон Лаплас в «Théorie analytique des probabilités» (1812) доказал, что средние из большого числа наблюдений сами распределены нормально, и в его выкладках величина «средний квадрат отклонения» стала центральным техническим объектом.
Само слово «дисперсия» (variance) в современном смысле ввёл Рональд Фишер в статье «The Correlation between Relatives on the Supposition of Mendelian Inheritance» (1918). Фишер решал совершенно конкретную биологическую задачу: как менделевская генетика с её дискретными генами порождает непрерывную изменчивость признаков вроде роста. Ему потребовалось нечто, что можно раскладывать на слагаемые: вклад наследственности плюс вклад среды плюс вклад взаимодействия. Среднее так не раскладывается, среднее отклонение по модулю — тоже. А вот дисперсия раскладывается идеально: для независимых вкладов дисперсии просто складываются. Именно это свойство аддитивности и сделало дисперсию королевой статистики — из него вырос дисперсионный анализ ANOVA, которым Фишер перевернул сельскохозяйственные эксперименты в Ротамстеде.
Термин «стандартное отклонение» появился чуть раньше: его в 1894 году предложил Карл Пирсон, до этого пользовались громоздким «среднеквадратичным отклонением» (root mean square error), заимствованным у Гаусса. Пирсон же закрепил обозначение $\sigma$ — греческую сигму, которая с тех пор стала одним из самых узнаваемых символов в науке. Когда в 1980-е Motorola запустила методологию управления качеством «шесть сигм», она использовала ровно ту же пирсоновскую букву. А сегодня, когда ты пишешь в PyTorch nn.init.kaiming_normal_(w), под капотом выбирается стандартное отклонение $\sqrt{2/n_{\text{in}}}$ — прямое применение фишеровской аддитивности дисперсий, только к сумме сигналов, приходящих в нейрон.
Зачем нужна мера разброса и почему именно квадрат
Интуиция: два стрелка
Представь двух стрелков на стрельбище. Первый кладёт все пули в узкую кучку, но кучка смещена на 10 см вправо от центра мишени. Второй в среднем попадает точно в яблочко, но пули разлетаются по всей мишени в радиусе 30 см. У кого результат лучше?
Правильный ответ: они плохи по-разному, и эти два вида «плохо» нужно измерять разными числами. Смещение кучки — это про матожидание: $EX \neq$ цель. Разлёт пуль — это про разброс. Первого стрелка можно починить одним поворотом прицельной планки. Второго — только годами тренировок. В машинном обучении эта же пара называется bias и variance, и мы к ней вернёмся отдельным разделом; пока просто зафиксируй, что «в среднем правильно» и «стабильно» — это две независимые характеристики, и вторую надо уметь считать.
Давай разберёмся, как её сконструировать. Мы хотим одно число, которое отвечает на вопрос: насколько далеко в типичном случае величина $X$ уходит от своего центра $EX$?
Попытка первая: среднее отклонение — и почему оно проваливается
Самая наивная идея: взять само отклонение $X - EX$ и усреднить его. Посчитаем для конкретного примера. Пусть $X$ принимает значения $-10$ и $+10$ с вероятностями по $0{,}5$. Тогда $EX = 0$, а отклонения равны $-10$ и $+10$. Их среднее:
$$E(X - EX) = 0{,}5 \cdot (-10) + 0{,}5 \cdot (+10) = 0$$Получили ноль. И это не случайность конкретного примера — по свойству линейности матожидания:
$$E(X - EX) = E(X) - E(EX) = EX - EX = 0$$Здесь мы пользуемся тем, что $EX$ — это число, константа, и матожидание константы равно ей самой. Значит, среднее отклонение всегда равно нулю, для любой случайной величины. Информации в нём ноль в самом буквальном смысле: плюсы и минусы взаимно уничтожаются. Такая мера бесполезна.
Вывод: отклонения нужно сделать неотрицательными, прежде чем усреднять.
Попытка вторая: модуль отклонения
Логичный следующий ход — взять модуль: $E|X - EX|$. Эта величина реально существует, называется средним абсолютным отклонением (MAD, mean absolute deviation), и для нашего примера равна $0{,}5 \cdot 10 + 0{,}5 \cdot 10 = 10$. Отражает разброс честно. Почему же математика выбрала не её?
Причин несколько, и все они практические, а не эстетические.
Причина 1: модуль не дифференцируем в нуле. Функция $|t|$ имеет излом при $t = 0$, у неё там нет производной. А значит, любая задача оптимизации вида «подбери параметр так, чтобы разброс был минимален» превращается из гладкой в негладкую. Квадрат $t^2$ гладкий везде, его производная $2t$ — простая линейная функция. Именно поэтому метод наименьших квадратов существует и решается в одну формулу, а «метод наименьших модулей» требует итерационных алгоритмов линейного программирования. Когда ты обучаешь линейную регрессию с MSE, ты получаешь решение в замкнутой форме $\hat{\beta} = (X^TX)^{-1}X^Ty$; с MAE-лоссом замкнутой формы нет.
Причина 2 — главная: квадрат аддитивен, модуль нет. Вот тот самый фишеровский аргумент. Если $X$ и $Y$ независимы, то
$$E(X + Y - E(X+Y))^2 = E(X - EX)^2 + E(Y - EY)^2$$Дисперсии складываются. Это то, ради чего всё затевалось: сложную систему можно разложить на независимые источники шума и просуммировать их вклады. Для модуля ничего похожего нет: $E|X + Y - \ldots|$ никак не выражается через $E|X - EX|$ и $E|Y - EY|$ — их приходится считать заново для каждой комбинации. Без аддитивности не было бы ни ЦПТ, ни ANOVA, ни закона $\sigma/\sqrt{n}$, ни формул инициализации нейросетей.
Причина 3: квадрат — это геометрия. $E(X-EX)^2$ — это в точности квадрат «расстояния» от случайной величины до её среднего в евклидовом смысле. Всё, что ты знаешь про теорему Пифагора, ортогональные проекции и минимизацию расстояний, переносится на случайные величины один в один. Независимость превращается в ортогональность, дисперсия суммы — в теорему Пифагора, регрессия — в проекцию на подпространство. С модулем такой геометрии нет.
Причина 4: квадрат сильнее реагирует на выбросы. Это одновременно достоинство и недостаток. Отклонение в 10 единиц даёт вклад 100, а отклонение в 1 единицу — вклад 1. То есть один объект, улетевший далеко, весит как сто объектов, отклонившихся немного. Если тебя интересуют именно катастрофические отклонения (риск в финансах, редкие отказы в проде), это ровно то, что нужно. Если у тебя грязные данные с битыми записями, дисперсия раздувается от пары мусорных строк — и тогда MAD оказывается разумной робастной альтернативой. Знать про этот компромисс полезно, но по умолчанию рабочий инструмент — квадрат.
Определение: Дисперсией случайной величины $X$ называется математическое ожидание квадрата её отклонения от матожидания:
$$D(X) = E\big(X - EX\big)^2$$Дисперсию также обозначают $\mathrm{Var}(X)$, $\sigma^2$ или $\sigma_X^2$. Она определена, если соответствующее матожидание конечно.
Раскроем определение для двух основных случаев. Для дискретной величины со значениями $x_1, x_2, \ldots$ и вероятностями $p_1, p_2, \ldots$, где $\mu = EX$:
$$D(X) = \sum_i (x_i - \mu)^2 p_i$$Для непрерывной величины с плотностью $f(x)$:
$$D(X) = \int_{-\infty}^{+\infty} (x - \mu)^2 f(x)\,dx$$В обоих случаях это буквально «средний квадрат промаха»: каждое отклонение возводим в квадрат и усредняем с весом, равным вероятности (или элементу вероятности $f(x)\,dx$).
Примеры с разбором
Пример 1 (простой): монетка с выигрышем
Ты подбрасываешь честную монету. Орёл — получаешь 100 рублей, решка — теряешь 100 рублей. Найди дисперсию выигрыша $X$.
Решение:
Шаг 1. Величина $X$ принимает значения $+100$ и $-100$, каждое с вероятностью $0{,}5$.
Шаг 2. Считаем матожидание:
$$EX = 0{,}5 \cdot 100 + 0{,}5 \cdot (-100) = 50 - 50 = 0$$Игра честная, в среднем ты ничего не выигрываешь и не проигрываешь.
Шаг 3. Считаем отклонения от среднего: $100 - 0 = 100$ и $-100 - 0 = -100$.
Шаг 4. Возводим в квадрат и усредняем:
$$D(X) = 0{,}5 \cdot 100^2 + 0{,}5 \cdot (-100)^2 = 0{,}5 \cdot 10000 + 0{,}5 \cdot 10000 = 10000$$Ответ: $D(X) = 10000$ (рублей в квадрате).
Обрати внимание на единицы измерения: рубли в квадрате. Что такое «квадратный рубль», не понимает никто, и это ровно та проблема, которую решает стандартное отклонение — о нём через два раздела.
Пример 2 (средний): три модели с одинаковым средним
Три модели дают на валидации следующие распределения ошибки $X$ (в процентах):
- Модель A: $X = 10$ с вероятностью 1 (детерминированная)
- Модель B: $X = 5$ или $X = 15$, каждое с вероятностью $0{,}5$
- Модель C: $X = 0$ или $X = 20$, каждое с вероятностью $0{,}5$
Найди $EX$ и $D(X)$ для каждой.
Решение:
Шаг 1. Модель A. $EX = 10$. Отклонение единственное и равно нулю: $D(X) = 1 \cdot (10-10)^2 = 0$.
Шаг 2. Модель B. $EX = 0{,}5 \cdot 5 + 0{,}5 \cdot 15 = 2{,}5 + 7{,}5 = 10$. Отклонения: $-5$ и $+5$.
$$D(X) = 0{,}5 \cdot 25 + 0{,}5 \cdot 25 = 25$$Шаг 3. Модель C. $EX = 0{,}5 \cdot 0 + 0{,}5 \cdot 20 = 10$. Отклонения: $-10$ и $+10$.
$$D(X) = 0{,}5 \cdot 100 + 0{,}5 \cdot 100 = 100$$Шаг 4. Сравниваем. У всех трёх матожидание одинаковое — 10 %. А дисперсии: 0, 25 и 100. Модель C в четыре раза «разбросаннее» модели B по дисперсии.
Ответ: $EX = 10$ у всех; $D_A = 0$, $D_B = 25$, $D_C = 100$.
📌 Это тот самый случай из вступления в чистом виде: среднее не различает модели вообще, дисперсия различает мгновенно.
Пример 3 (сложный): дисперсия индикатора события
Пусть событие $A$ происходит с вероятностью $p$. Введём индикатор $I_A$: он равен 1, если $A$ произошло, и 0 иначе. Найди $D(I_A)$ и определи, при каком $p$ дисперсия максимальна.
Решение:
Шаг 1. Матожидание индикатора:
$$E I_A = 1 \cdot p + 0 \cdot (1-p) = p$$Матожидание индикатора равно вероятности события — фундаментальный факт, который мы разобрали в уроке про матожидание.
Шаг 2. Отклонения: при исходе «1» отклонение равно $1 - p$, при исходе «0» — равно $0 - p = -p$.
Шаг 3. Считаем дисперсию по определению:
$$D(I_A) = p \cdot (1-p)^2 + (1-p) \cdot (-p)^2 = p(1-p)^2 + (1-p)p^2$$Шаг 4. Выносим общий множитель $p(1-p)$:
$$D(I_A) = p(1-p)\big[(1-p) + p\big] = p(1-p) \cdot 1 = p(1-p)$$Шаг 5. Ищем максимум $g(p) = p - p^2$ на отрезке $[0;1]$. Это парабола ветвями вниз, вершина в точке $p = 1/2$. Значение в вершине: $g(0{,}5) = 0{,}25$.
Проверим: при $p = 0{,}9$ дисперсия $0{,}9 \cdot 0{,}1 = 0{,}09$; при $p = 0{,}5$ — $0{,}25$; при $p = 0{,}99$ — $0{,}0099$. Действительно максимум в середине.
Ответ: $D(I_A) = p(1-p)$, максимум $0{,}25$ достигается при $p = 0{,}5$.
📊 Почему это важно для ML. Формула $p(1-p)$ — самая часто используемая дисперсия во всём прикладном ML, и вот почему. Твоя accuracy на тесте — это доля правильных ответов, то есть среднее индикаторов «угадал / не угадал». Значит, дисперсия одного такого индикатора равна $p(1-p)$, и вся неопределённость метрики выражается через неё. Заодно формула объясняет неочевидный факт: чем ближе модель к 50 % accuracy, тем шумнее измерение метрики, а модель с точностью 99 % измеряется гораздо стабильнее. Именно поэтому оценить «хорошую» модель на маленьком тесте проще, чем отличить две посредственные.
Рабочая формула: $D(X) = E(X^2) - (EX)^2$
Зачем нужна вторая формула
Определение $D(X) = E(X-EX)^2$ отлично объясняет смысл, но считать по нему неудобно. Смотри, что приходится делать: сначала пройти по всем значениям и посчитать $EX$, потом пройти второй раз, вычитая уже известное $\mu$ и возводя в квадрат. Два прохода по данным. Если у тебя массив из миллиарда чисел на диске или поток событий, которые нельзя сохранить, второй проход — это дорого или вовсе невозможно.
Рабочая формула позволяет обойтись одним проходом: копи две суммы — сумму значений и сумму квадратов — и в конце получишь и среднее, и дисперсию. Именно так устроены агрегатные функции VAR() в базах данных, running_mean и running_var в BatchNorm, счётчики метрик в Prometheus.
Вывод
Разберём по шагам. Обозначим $\mu = EX$ — это конкретное число, а не случайная величина, что критично для выкладки.
Шаг 1. Раскроем квадрат разности внутри матожидания:
$$D(X) = E(X - \mu)^2 = E\big(X^2 - 2\mu X + \mu^2\big)$$Шаг 2. Применим линейность матожидания — матожидание суммы равно сумме матожиданий:
$$D(X) = E(X^2) - E(2\mu X) + E(\mu^2)$$Шаг 3. Вынесем константы. Число $2\mu$ выносится из матожидания: $E(2\mu X) = 2\mu \cdot E(X) = 2\mu \cdot \mu = 2\mu^2$. А $\mu^2$ — вообще константа, её матожидание равно ей самой: $E(\mu^2) = \mu^2$.
$$D(X) = E(X^2) - 2\mu^2 + \mu^2$$Шаг 4. Приводим подобные:
$$D(X) = E(X^2) - \mu^2 = E(X^2) - (EX)^2$$Готово.
Теорема (рабочая формула дисперсии): Для любой случайной величины с конечным вторым моментом
$$D(X) = E(X^2) - (EX)^2$$Словами: средний квадрат минус квадрат среднего.
Мнемоника, которую стоит запомнить намертво: «средний квадрат минус квадрат среднего». Порядок слов важен — если перепутать, получится $(EX)^2 - E(X^2)$, а это всегда $\le 0$, и ты сразу увидишь ошибку по отрицательному ответу.
Побочный результат: неравенство Йенсена в миниатюре
Из формулы мгновенно следует любопытный факт. Дисперсия по своему определению — это матожидание квадрата, то есть неотрицательной величины, значит $D(X) \ge 0$. Подставляем:
$$E(X^2) - (EX)^2 \ge 0 \quad \Longrightarrow \quad E(X^2) \ge (EX)^2$$Средний квадрат всегда не меньше квадрата среднего. Причём равенство достигается ровно тогда, когда $D(X) = 0$, то есть когда величина вообще не случайна — принимает единственное значение с вероятностью 1.
Это частный случай неравенства Йенсена для выпуклой функции, и в ML он всплывает постоянно: например, средняя ошибка ансамбля никогда не хуже ошибки среднего предсказания — прямое следствие того же неравенства.
Примеры с разбором
Пример 4 (простой): игральная кость
Найди дисперсию числа очков при броске честной кости.
Решение:
Шаг 1. Значения $1,2,3,4,5,6$, каждое с вероятностью $1/6$.
Шаг 2. Матожидание:
$$EX = \frac{1+2+3+4+5+6}{6} = \frac{21}{6} = 3{,}5$$Шаг 3. Средний квадрат:
$$E(X^2) = \frac{1 + 4 + 9 + 16 + 25 + 36}{6} = \frac{91}{6} \approx 15{,}1667$$Шаг 4. По рабочей формуле:
$$D(X) = \frac{91}{6} - 3{,}5^2 = \frac{91}{6} - \frac{49}{4} = \frac{182 - 147}{12} = \frac{35}{12} \approx 2{,}9167$$Проверим по определению. Отклонения от $3{,}5$: $-2{,}5;\ -1{,}5;\ -0{,}5;\ 0{,}5;\ 1{,}5;\ 2{,}5$. Их квадраты: $6{,}25;\ 2{,}25;\ 0{,}25;\ 0{,}25;\ 2{,}25;\ 6{,}25$. Сумма $= 17{,}5$, делим на 6: $17{,}5/6 = 2{,}9167$ ✅ Совпало.
Ответ: $D(X) = 35/12 \approx 2{,}92$.
Пример 5 (средний): непрерывная величина с плотностью $f(x) = 2x$
Случайная величина задана плотностью $f(x) = 2x$ на отрезке $[0;1]$ и нулём вне его. Найди дисперсию.
Решение:
Шаг 1. Проверим, что это действительно плотность:
$$\int_0^1 2x\,dx = x^2\Big|_0^1 = 1 \quad ✅$$Шаг 2. Матожидание:
$$EX = \int_0^1 x \cdot 2x\,dx = \int_0^1 2x^2\,dx = \frac{2x^3}{3}\Big|_0^1 = \frac{2}{3}$$Шаг 3. Второй момент:
$$E(X^2) = \int_0^1 x^2 \cdot 2x\,dx = \int_0^1 2x^3\,dx = \frac{2x^4}{4}\Big|_0^1 = \frac{1}{2}$$Шаг 4. Рабочая формула:
$$D(X) = \frac{1}{2} - \left(\frac{2}{3}\right)^2 = \frac{1}{2} - \frac{4}{9} = \frac{9 - 8}{18} = \frac{1}{18} \approx 0{,}0556$$Ответ: $D(X) = 1/18 \approx 0{,}056$, $\sigma = 1/(3\sqrt{2}) \approx 0{,}236$.
📌 Обрати внимание: плотность $2x$ «прижимает» массу к правому краю отрезка, поэтому среднее $2/3$ смещено вправо от середины, а разброс меньше, чем у равномерного распределения на том же отрезке ($1/12 \approx 0{,}083$). Чем сильнее плотность сконцентрирована, тем меньше дисперсия.
Пример 6 (сложный): равномерное распределение на $[a; b]$
Выведи формулу дисперсии для равномерного распределения на отрезке $[a;b]$.
Решение:
Шаг 1. Плотность постоянна: $f(x) = \dfrac{1}{b-a}$ при $x \in [a;b]$.
Шаг 2. Матожидание — середина отрезка (это мы знаем из прошлого урока, но проверим):
$$EX = \int_a^b \frac{x}{b-a}\,dx = \frac{1}{b-a} \cdot \frac{x^2}{2}\Big|_a^b = \frac{b^2 - a^2}{2(b-a)} = \frac{(b-a)(b+a)}{2(b-a)} = \frac{a+b}{2}$$Шаг 3. Второй момент:
$$E(X^2) = \int_a^b \frac{x^2}{b-a}\,dx = \frac{1}{b-a} \cdot \frac{x^3}{3}\Big|_a^b = \frac{b^3 - a^3}{3(b-a)}$$Разложим разность кубов: $b^3 - a^3 = (b-a)(b^2 + ab + a^2)$, сокращаем:
$$E(X^2) = \frac{a^2 + ab + b^2}{3}$$Шаг 4. Рабочая формула:
$$D(X) = \frac{a^2+ab+b^2}{3} - \frac{(a+b)^2}{4}$$Приводим к общему знаменателю 12:
$$D(X) = \frac{4(a^2+ab+b^2) - 3(a^2 + 2ab + b^2)}{12} = \frac{4a^2 + 4ab + 4b^2 - 3a^2 - 6ab - 3b^2}{12}$$$$D(X) = \frac{a^2 - 2ab + b^2}{12} = \frac{(b-a)^2}{12}$$Ответ: $D(X) = \dfrac{(b-a)^2}{12}$, откуда $\sigma = \dfrac{b-a}{2\sqrt{3}} \approx 0{,}289(b-a)$.
Проверим на частном случае: для $[0;1]$ получаем $1/12 \approx 0{,}0833$ — тот же ответ, что даёт прямое интегрирование. ✅
📊 Почему это важно для ML. Формулу $(b-a)^2/12$ ты фактически используешь каждый раз, когда инициализируешь веса равномерным распределением. nn.init.xavier_uniform_ кладёт веса в $U[-a; a]$, и чтобы дисперсия получилась заданной ($\mathrm{Var} = a^2/3$), библиотека решает уравнение и берёт $a = \sqrt{3 \cdot \mathrm{Var}}$. Ниже мы разберём, откуда берётся сама целевая дисперсия. Второй частый случай — квантизация: при округлении числа до сетки с шагом $h$ ошибка округления моделируется равномерной на $[-h/2; h/2]$, и её дисперсия равна $h^2/12$. Это базовая формула в теории квантизации нейросетей: перешёл с fp32 на int8 — оценил добавленный шум как $h^2/12$ и понял, переживёт ли модель.
Стандартное отклонение: возвращаем размерность
Проблема квадратных рублей
Вернёмся к первому примеру: дисперсия выигрыша оказалась 10000 «рублей в квадрате». Это математически корректно, но бессмысленно для интерпретации. Если ты придёшь к продакт-менеджеру и скажешь «дисперсия выручки за месяц составляет 4 миллиарда квадратных рублей», тебя не поймут. И правильно сделают.
Проблема встроена в само определение: мы возводили отклонения в квадрат, значит и единицы измерения возвелись в квадрат. Рубли стали квадратными рублями, секунды — квадратными секундами, проценты — квадратными процентами. Лечится это ровно одним действием: извлечём корень обратно.
Определение: Средним квадратичным (стандартным) отклонением случайной величины $X$ называется корень из дисперсии:
$$\sigma(X) = \sqrt{D(X)}$$Обозначения: $\sigma$, $\sigma_X$, $\mathrm{sd}(X)$, $\mathrm{std}(X)$.
Главное преимущество $\sigma$ — та же размерность, что у самой величины. Если $X$ измеряется в рублях, то $\sigma$ тоже в рублях. Если в миллисекундах отклика сервиса — то в миллисекундах. Если в процентах accuracy — в процентных пунктах. И это меняет всё: теперь число можно положить рядом со средним и сравнить напрямую.
Смотри, как читается результат:
- «Средний чек 3200 ₽, стандартное отклонение 800 ₽» — сразу понятно: типичный чек где-то между 2400 и 4000.
- «Средний чек 3200 ₽, дисперсия 640000» — приходится сначала в уме извлекать корень.
Правило чтения, которым пользуются практики: величина обычно лежит в пределах одного-двух $\sigma$ от среднего. Для нормального распределения в одну сигму попадает 68 % массы, в две — 95 %. Формальные гарантии для произвольного распределения даёт неравенство Чебышёва, до которого мы дойдём чуть позже.
Коэффициент вариации: когда сигмы мало
Есть ситуация, где и стандартное отклонение неудобно: когда надо сравнить разброс у величин разного масштаба. Отклонение 800 ₽ — это много или мало? Зависит от среднего. Для среднего чека 3200 ₽ это заметный разброс; для среднего чека 300 000 ₽ — копейки.
Для таких сравнений вводят коэффициент вариации:
$$CV = \frac{\sigma}{|EX|}$$Это безразмерное число, часто выражаемое в процентах. $CV = 0{,}25$ означает «разброс составляет четверть от среднего». В нашем примере $800/3200 = 0{,}25$, то есть 25 %. Инженерное правило: $CV < 0{,}1$ — очень стабильная величина, $CV > 1$ — величина, у которой шум сопоставим с сигналом, и работать с ней надо осторожно.
Примеры с разбором
Пример 7 (простой): время отклика API
Время ответа сервиса имеет $EX = 120$ мс и $D(X) = 900$ мс². Найди $\sigma$ и коэффициент вариации; интерпретируй.
Решение:
Шаг 1. $\sigma = \sqrt{900} = 30$ мс.
Шаг 2. $CV = 30/120 = 0{,}25 = 25\%$.
Шаг 3. Интерпретация: типичный ответ приходит за $120 \pm 30$ мс, то есть в диапазоне примерно 90–150 мс. Разброс составляет четверть от среднего — это довольно шумный сервис, но не катастрофа.
Ответ: $\sigma = 30$ мс, $CV = 25\%$.
Пример 8 (средний): сравнение двух признаков
В датасете два признака: «возраст клиента» ($E = 40$ лет, $\sigma = 12$ лет) и «доход» ($E = 80\,000$ ₽, $\sigma = 40\,000$ ₽). У какого признака разброс больше?
Решение:
Шаг 1. По абсолютной величине $\sigma$ доход разбросан несопоставимо сильнее: 40 000 против 12. Но сравнивать рубли с годами напрямую бессмысленно.
Шаг 2. Считаем коэффициенты вариации:
$$CV_{\text{возраст}} = \frac{12}{40} = 0{,}30 = 30\%$$$$CV_{\text{доход}} = \frac{40000}{80000} = 0{,}50 = 50\%$$Шаг 3. В относительном выражении доход разбросан сильнее: 50 % против 30 %.
Ответ: по относительному разбросу доход (50 %) превосходит возраст (30 %); прямое сравнение абсолютных $\sigma$ некорректно из-за разных единиц.
📌 Именно из-за этой несопоставимости в ML почти всегда делают стандартизацию признаков — приводят их к общей шкале, где $\sigma = 1$. Про это отдельный раздел ниже.
Пример 9 (сложный): сколько теряет портфель в плохой год
Годовая доходность портфеля имеет $EX = 12\%$ и $\sigma = 20\%$. Оцени, какая доходность соответствует «плохому году» (отклонение на $2\sigma$ вниз) и «очень плохому» ($3\sigma$ вниз). Какая доля лет, по нормальному приближению, окажется убыточной?
Решение:
Шаг 1. Отклонение на $2\sigma$ вниз: $12\% - 2 \cdot 20\% = 12\% - 40\% = -28\%$.
Шаг 2. Отклонение на $3\sigma$ вниз: $12\% - 60\% = -48\%$.
Шаг 3. Убыточный год — это $X < 0$. Переведём порог в сигмы:
$$z = \frac{0 - 12}{20} = -0{,}6$$То есть ноль лежит на $0{,}6$ сигмы ниже среднего.
Шаг 4. Для нормального распределения $P(Z < -0{,}6) \approx 0{,}274$.
Ответ: плохой год $\approx -28\%$, очень плохой $\approx -48\%$; убыточным окажется примерно каждый четвёртый год (27 %).
📊 Почему это важно. Обрати внимание на асимметрию восприятия: «в среднем 12 % годовых» звучит прекрасно, а «каждый четвёртый год в минусе и раз в сто лет минус 48 %» звучит совсем иначе. Это одно и то же распределение, просто описанное через $\sigma$, а не только через среднее. В ML такая же ловушка: модель со средней ошибкой 5 %, но $\sigma$ ошибки 15 %, регулярно будет выдавать в проде дикие предсказания, и пользователи запомнят именно их.
Свойства дисперсии: сдвиг, масштаб и сумма
Свойство 1: дисперсия неотрицательна
$$D(X) \ge 0, \quad \text{причём } D(X) = 0 \iff X = \text{const почти наверное}$$Это очевидно из определения: под матожиданием стоит квадрат, то есть неотрицательное число, а среднее неотрицательных величин неотрицательно. Равенство нулю означает, что квадрат отклонения равен нулю с вероятностью 1 — то есть величина не отклоняется от своего среднего вообще, она константа.
Практический смысл: если ты посчитал дисперсию и получил отрицательное число — ты ошибся. Причём самая частая причина — численная: считая по формуле $E(X^2) - (EX)^2$ на больших числах, можно потерять точность на вычитании двух близких огромных величин (катастрофическое сокращение). Именно поэтому в NumPy и в BatchNorm используют численно устойчивые алгоритмы вроде метода Уэлфорда, а не наивную формулу в лоб.
Свойство 2: дисперсия константы равна нулю
$$D(c) = 0$$Проверим по определению: $E(c) = c$, значит $D(c) = E(c - c)^2 = E(0) = 0$. Константа не разбросана — она всегда равна себе.
Свойство 3: линейное преобразование — главное свойство урока
Теорема: Для любых чисел $a$ и $b$
$$D(aX + b) = a^2 D(X)$$и соответственно
$$\sigma(aX+b) = |a| \cdot \sigma(X)$$
Доказательство. Обозначим $Y = aX + b$. Сначала найдём $EY$, пользуясь линейностью матожидания:
$$EY = E(aX+b) = aEX + b = a\mu + b$$Теперь считаем дисперсию по определению:
$$D(Y) = E\big(Y - EY\big)^2 = E\big(aX + b - a\mu - b\big)^2$$Смотри, что произошло: $b$ и $-b$ сократились. Свободный член исчез из выражения ещё до всяких вычислений.
$$D(Y) = E\big(aX - a\mu\big)^2 = E\big(a(X-\mu)\big)^2 = E\big(a^2 (X-\mu)^2\big) = a^2 E(X-\mu)^2 = a^2 D(X)$$На последнем шаге мы вынесли константу $a^2$ из матожидания. Готово. ∎
Разберём это свойство по частям, потому что каждая половина важна отдельно.
Часть A: сдвиг не влияет на разброс. $D(X + b) = D(X)$. Это геометрически абсолютно понятно: если ты сдвинул всё облако точек вправо на 5 единиц, форма облака не изменилась, разброс тот же. Средний рост россиян в сантиметрах и тот же рост, пересчитанный «на сколько выше 150 см», имеют одинаковую дисперсию.
Часть B: множитель входит в квадрате. $D(aX) = a^2 D(X)$. Вот тут прячется самая частая ошибка в теме. Матожидание линейно: $E(3X) = 3EX$. И рука автоматически пишет $D(3X) = 3D(X)$. Это неверно: $D(3X) = 9 D(X)$. Дисперсия — квадратичная характеристика, и любой множитель заходит в неё во второй степени.
А вот стандартное отклонение ведёт себя «линейно»: $\sigma(3X) = 3\sigma(X)$. Это ещё одна причина любить $\sigma$: она масштабируется так же, как сама величина. Перевёл рубли в тысячи рублей — разделил и среднее, и сигму на 1000, и всё сходится.
Заметь модуль в формуле $\sigma(aX+b) = |a|\sigma(X)$: при $a = -1$ получаем $\sigma(-X) = \sigma(X)$. Отражение относительно нуля разброс не меняет, что логично.
Свойство 4: дисперсия суммы — и почему нужна независимость
Теорема: Если случайные величины $X$ и $Y$ независимы, то
$$D(X+Y) = D(X) + D(Y)$$
Доказательство. Обозначим $\mu_X = EX$, $\mu_Y = EY$. Тогда $E(X+Y) = \mu_X + \mu_Y$ (линейность работает всегда, независимость тут не нужна).
$$D(X+Y) = E\big[(X + Y) - (\mu_X + \mu_Y)\big]^2 = E\big[(X - \mu_X) + (Y - \mu_Y)\big]^2$$Раскроем квадрат суммы:
$$D(X+Y) = E\big[(X-\mu_X)^2\big] + 2E\big[(X-\mu_X)(Y-\mu_Y)\big] + E\big[(Y-\mu_Y)^2\big]$$Первое и третье слагаемые — это $D(X)$ и $D(Y)$. Осталось разобраться со средним, перекрёстным. Вот здесь и только здесь нужна независимость: для независимых величин матожидание произведения равно произведению матожиданий, поэтому
$$E\big[(X-\mu_X)(Y-\mu_Y)\big] = E(X-\mu_X)\cdot E(Y-\mu_Y) = 0 \cdot 0 = 0$$(каждый множитель — среднее отклонение, а оно, как мы выяснили в самом начале, всегда равно нулю). Перекрёстный член обнуляется, остаётся сумма дисперсий. ∎
Этот перекрёстный член $E[(X-\mu_X)(Y-\mu_Y)]$ имеет собственное имя — ковариация $\mathrm{cov}(X,Y)$, и ей посвящён урок 244. Полная формула без всяких предположений выглядит так:
$$D(X + Y) = D(X) + D(Y) + 2\,\mathrm{cov}(X, Y)$$Пока просто запомни: аддитивность дисперсии — это не общее свойство, а награда за независимость. Если величины связаны, добавляется третье слагаемое, и оно может быть какого угодно знака.
Важное следствие для разности:
$$D(X - Y) = D(X) + D(-Y) = D(X) + (-1)^2 D(Y) = D(X) + D(Y)$$Дисперсии складываются даже при вычитании! Это контринтуитивно, но абсолютно логично: вычитание не уменьшает неопределённость, оно добавляет ещё один источник шума. Когда ты сравниваешь метрики двух моделей, $\sigma$ разности больше, чем $\sigma$ каждой в отдельности — вот почему для надёжного сравнения нужно больше данных, чем для оценки одной модели.
Примеры с разбором
Пример 10 (простой): пересчёт температуры
Температура в цехе $X$ измеряется в градусах Цельсия, $D(X) = 4$ (°C²). Найди дисперсию и стандартное отклонение той же температуры в градусах Фаренгейта: $F = 1{,}8X + 32$.
Решение:
Шаг 1. Здесь $a = 1{,}8$, $b = 32$.
Шаг 2. Сдвиг на 32 не влияет вообще. Множитель входит в квадрате:
$$D(F) = 1{,}8^2 \cdot D(X) = 3{,}24 \cdot 4 = 12{,}96$$Шаг 3. Стандартное отклонение: $\sigma(F) = \sqrt{12{,}96} = 3{,}6$. Проверим напрямую: $\sigma(X) = 2$, и $1{,}8 \cdot 2 = 3{,}6$ ✅
Ответ: $D(F) = 12{,}96$, $\sigma(F) = 3{,}6$ °F.
Пример 11 (средний): что будет с дисперсией после нормализации
У признака $X$ известны $EX = 50$ и $D(X) = 25$. Инженер применяет к нему преобразование $Y = \dfrac{X - 50}{5}$. Найди $EY$ и $D(Y)$.
Решение:
Шаг 1. Перепишем преобразование в каноническом виде $aX + b$:
$$Y = \frac{1}{5}X - 10, \quad \text{то есть } a = \frac{1}{5},\ b = -10$$Шаг 2. Матожидание:
$$EY = \frac{1}{5} \cdot 50 - 10 = 10 - 10 = 0$$Шаг 3. Дисперсия:
$$D(Y) = \left(\frac{1}{5}\right)^2 \cdot 25 = \frac{25}{25} = 1$$Ответ: $EY = 0$, $D(Y) = 1$.
📌 Мы только что вручную проделали стандартизацию — то самое, что делает StandardScaler.fit_transform(). Она всегда даёт среднее 0 и дисперсию 1, потому что деление на $\sigma$ даёт множитель $1/\sigma$, а он входит в дисперсию в квадрате: $\frac{1}{\sigma^2}\cdot \sigma^2 = 1$. Отдельный раздел про это — ниже.
Пример 12 (сложный): когда аддитивность ломается
Пусть $X$ принимает значения $-1$ и $+1$ с вероятностями по $0{,}5$. Рассмотри три случая:
- (а) $Y = X$ (полная зависимость, «копия»)
- (б) $Y = -X$ (полная противоположность)
- (в) $Y$ — независимая копия $X$
Найди $D(X+Y)$ в каждом случае и сравни с $D(X)+D(Y)$.
Решение:
Шаг 0. Сначала найдём $D(X)$: $EX = 0$, $E(X^2) = 0{,}5 \cdot 1 + 0{,}5 \cdot 1 = 1$, значит $D(X) = 1 - 0 = 1$. То же и для $Y$ в любом из случаев: $D(Y) = 1$. Значит, «наивная» сумма всегда даёт $D(X)+D(Y) = 2$.
Шаг 1. Случай (а): $Y = X$. Тогда $X + Y = 2X$, и по свойству масштабирования:
$$D(2X) = 2^2 \cdot D(X) = 4 \cdot 1 = 4$$Получили 4 вместо 2 — в два раза больше «наивного» ответа.
Шаг 2. Случай (б): $Y = -X$. Тогда $X + Y = X - X = 0$ — константа!
$$D(0) = 0$$Ноль вместо 2. Разброс полностью уничтожился.
Шаг 3. Случай (в): независимые. Сумма принимает значения $-2$ (вероятность $0{,}25$), $0$ (вероятность $0{,}5$), $+2$ (вероятность $0{,}25$). Считаем: $E(X+Y) = 0$, $E((X+Y)^2) = 0{,}25\cdot 4 + 0{,}5 \cdot 0 + 0{,}25 \cdot 4 = 2$.
$$D(X+Y) = 2 - 0 = 2 \quad ✅$$Только здесь теорема сработала.
Ответ: (а) 4, (б) 0, (в) 2. Формула $D(X+Y)=D(X)+D(Y)$ верна только в случае (в).
📊 Почему это важно для ML. Этот пример — ключ к пониманию ансамблей. Если ты усредняешь десять моделей, обученных на одних и тех же данных с одной и той же архитектурой, их ошибки почти полностью коррелированы — это случай (а), и усреднение почти не помогает. Если модели разнообразны (разные подвыборки, разные признаки, разные архитектуры) — ты приближаешься к случаю (в), и дисперсия реально падает. Вся суть бэггинга и случайного леса — искусственно декоррелировать модели, чтобы приблизиться к идеальной аддитивности. Random Forest даже жертвует качеством отдельных деревьев (случайный выбор подмножества признаков в каждом узле делает дерево хуже), лишь бы снизить корреляцию между ними — потому что выигрыш от декорреляции больше.
Дисперсия суммы $n$ величин и закон $\sigma/\sqrt{n}$
Общая формула
Индукцией из парного случая получаем главный рабочий результат:
Теорема: Если $X_1, X_2, \ldots, X_n$ попарно независимы, то
$$D(X_1 + X_2 + \dots + X_n) = D(X_1) + D(X_2) + \dots + D(X_n)$$
Частный случай, который встречается чаще всего: все величины одинаково распределены (i.i.d. — independent and identically distributed) с общей дисперсией $\sigma^2$. Тогда
$$D\left(\sum_{i=1}^n X_i\right) = n\sigma^2, \qquad \sigma\left(\sum_{i=1}^n X_i\right) = \sigma\sqrt{n}$$Обрати внимание на асимметрию: сумма растёт как $n$ (её матожидание равно $n\mu$), а её стандартное отклонение — только как $\sqrt{n}$. Сумма «убегает» от своего шума. Это, по сути, весь закон больших чисел в одной строке.
Главный вывод: разброс среднего
Теперь возьмём не сумму, а среднее арифметическое:
$$\bar{X} = \frac{X_1 + X_2 + \dots + X_n}{n} = \frac{1}{n}\sum_{i=1}^n X_i$$Считаем его дисперсию. Множитель $1/n$ выносится с квадратом:
$$D(\bar{X}) = \frac{1}{n^2} D\left(\sum X_i\right) = \frac{1}{n^2}\cdot n\sigma^2 = \frac{\sigma^2}{n}$$Извлекаем корень:
$$\boxed{\ \sigma(\bar{X}) = \frac{\sigma}{\sqrt{n}}\ }$$Ключевой результат: стандартное отклонение среднего по $n$ независимым наблюдениям в $\sqrt{n}$ раз меньше стандартного отклонения одного наблюдения.
Эту величину $\sigma/\sqrt{n}$ называют стандартной ошибкой среднего (standard error, SE). Она — фундамент всей практической статистики, и она же — источник главного разочарования любого, кто пытается «просто набрать побольше данных».
Проклятие корня
Вдумайся в то, что означает корень. Чтобы уменьшить шум оценки:
- вдвое — нужно в 4 раза больше данных
- втрое — нужно в 9 раз больше данных
- в 10 раз — нужно в 100 раз больше данных
Точность стоит квадратично. Это самый важный практический факт во всём разделе, и он объясняет огромное количество вещей, которые кажутся несправедливыми:
- Почему A/B-тест на 100 тысячах пользователей всё ещё не может отличить конверсию 3,0 % от 3,1 %.
- Почему увеличение батча с 64 до 256 (в 4 раза дороже по памяти и вычислениям) снижает шум градиента всего вдвое.
- Почему после определённого размера датасета качество модели растёт мучительно медленно (те самые scaling laws с их степенными показателями).
- Почему в физике элементарных частиц, чтобы получить «пять сигм» вместо трёх, коллайдеру нужно работать не в два, а почти в три раза дольше.
Примеры с разбором
Пример 13 (простой): среднее по выборке
Время отклика одного запроса имеет $\sigma = 40$ мс. Какова стандартная ошибка среднего по 100 запросам? По 400?
Решение:
Шаг 1. По 100 запросам:
$$SE = \frac{40}{\sqrt{100}} = \frac{40}{10} = 4\ \text{мс}$$Шаг 2. По 400 запросам:
$$SE = \frac{40}{\sqrt{400}} = \frac{40}{20} = 2\ \text{мс}$$Шаг 3. Наблюдение: чтобы улучшить точность вдвое (с 4 до 2 мс), понадобилось увеличить выборку вчетверо (со 100 до 400).
Ответ: 4 мс и 2 мс.
Пример 14 (средний): сколько замеров нужно
Хотим оценить среднее время отклика с точностью $\pm 1$ мс (в смысле $SE \le 1$). Известно $\sigma = 40$ мс. Сколько запросов нужно измерить?
Решение:
Шаг 1. Записываем условие:
$$\frac{40}{\sqrt{n}} \le 1$$Шаг 2. Умножаем обе части на $\sqrt{n}$ (положительное число, знак сохраняется):
$$40 \le \sqrt{n}$$Шаг 3. Возводим в квадрат:
$$n \ge 1600$$Проверим: $40/\sqrt{1600} = 40/40 = 1$ ✅
Ответ: нужно минимум 1600 запросов.
📌 Обрати внимание на разрыв: для точности 4 мс хватало 100 запросов, для 1 мс нужно уже 1600 — в 16 раз больше ради четырёхкратного улучшения. Квадратичная цена в действии.
Пример 15 (сложный): шум градиента и размер батча
При обучении нейросети градиент по одному объекту — случайный вектор, отклоняющийся от истинного градиента с $\sigma = 0{,}8$ (по некоторой координате). Градиент по мини-батчу размера $B$ — это среднее по $B$ независимым объектам. Найди шум градиента при $B = 64$ и $B = 256$. Во сколько раз снизился шум и во сколько раз выросла стоимость шага?
Решение:
Шаг 1. Градиент по батчу — среднее арифметическое $B$ независимых одинаково распределённых оценок, значит применима формула $\sigma/\sqrt{B}$.
Шаг 2. При $B = 64$:
$$\sigma_{64} = \frac{0{,}8}{\sqrt{64}} = \frac{0{,}8}{8} = 0{,}1$$Шаг 3. При $B = 256$:
$$\sigma_{256} = \frac{0{,}8}{\sqrt{256}} = \frac{0{,}8}{16} = 0{,}05$$Шаг 4. Шум снизился в $0{,}1/0{,}05 = 2$ раза. При этом вычислений на один шаг стало в $256/64 = 4$ раза больше.
Ответ: шум 0,1 и 0,05; батч вырос в 4 раза, шум упал только в 2 раза.
📊 Почему это важно. Это точное объяснение, почему бесконечно увеличивать батч бессмысленно. Ты платишь линейно (в 4 раза больше FLOPs и памяти), а получаешь корень (в 2 раза меньше шума). Отсюда же растёт эвристика «linear scaling rule»: при увеличении батча в $k$ раз увеличивай learning rate примерно в $k$ раз — потому что шаг стал в $\sqrt{k}$ раз точнее, и можно позволить себе шагать смелее. И отсюда же — понятие «критического размера батча» (critical batch size) из работы OpenAI 2018 года: после некоторого $B$ шум градиента перестаёт быть узким местом обучения, и дальнейшее увеличение батча просто жжёт видеокарты без ускорения сходимости.
Неравенство Чебышёва: гарантия для любого распределения
Интуиция
Ты знаешь только две вещи о случайной величине: её среднее $\mu$ и стандартное отклонение $\sigma$. Форма распределения неизвестна — может, оно нормальное, может, дикое двугорбое, может, с тяжёлыми хвостами. Можно ли хоть что-то гарантировать?
Оказывается, да. И это удивительно: не зная про распределение почти ничего, можно дать жёсткую верхнюю границу на вероятность большого отклонения. Логика такая: дисперсия — это средний квадрат отклонения, и она конечна. Если бы величина слишком часто улетала далеко от среднего, эти далёкие вылеты своими огромными квадратами раздули бы дисперсию сверх заданной. Значит, частота далёких вылетов ограничена сверху — и ограничена именно дисперсией.
Пафнутий Львович Чебышёв формализовал это в 1867 году (хотя его учитель Ирене-Жюль Бьенеме получил результат ещё в 1853-м, отчего неравенство иногда зовут неравенством Бьенеме–Чебышёва).
Неравенство Чебышёва: Для любой случайной величины $X$ с конечной дисперсией и любого $\varepsilon > 0$
$$P\big(|X - EX| \ge \varepsilon\big) \le \frac{D(X)}{\varepsilon^2}$$В «сигмах» ($\varepsilon = k\sigma$) это выглядит компактнее:
$$P\big(|X - \mu| \ge k\sigma\big) \le \frac{1}{k^2}$$
Идея доказательства
Разберём по шагам, откуда это берётся — идея красивая и стоит пяти минут.
Шаг 1. Запишем дисперсию как интеграл (или сумму) по всему пространству:
$$D(X) = E(X-\mu)^2 = \int (x-\mu)^2 f(x)\,dx$$Шаг 2. Разобьём область интегрирования на две части: «близко» ($|x - \mu| < \varepsilon$) и «далеко» ($|x-\mu| \ge \varepsilon$). Оба интеграла неотрицательны, поэтому выбросив первый, мы только уменьшим сумму:
$$D(X) \ge \int_{|x-\mu| \ge \varepsilon} (x-\mu)^2 f(x)\,dx$$Шаг 3. На оставшейся области по определению $(x-\mu)^2 \ge \varepsilon^2$. Заменяем подынтегральную функцию на меньшую:
$$D(X) \ge \varepsilon^2 \int_{|x-\mu| \ge \varepsilon} f(x)\,dx = \varepsilon^2 \cdot P(|X-\mu| \ge \varepsilon)$$Шаг 4. Делим обе части на $\varepsilon^2 > 0$:
$$P(|X-\mu| \ge \varepsilon) \le \frac{D(X)}{\varepsilon^2} \qquad ∎$$Что даёт неравенство численно
Подставим разные $k$:
| $k$ | Граница Чебышёва $1/k^2$ | Для нормального распределения (факт) |
|---|---|---|
| 1 | $\le 1$ (бесполезно) | 0,3173 |
| 2 | $\le 0{,}25$ | 0,0455 |
| 3 | $\le 0{,}1111$ | 0,0027 |
| 4 | $\le 0{,}0625$ | 0,0000633 |
| 5 | $\le 0{,}04$ | 0,00000057 |
Видно, что граница Чебышёва очень щедрая — реальная вероятность для нормального распределения на порядки меньше. Это цена универсальности: неравенство обязано работать для любого распределения, включая самое неудобное, поэтому оно вынуждено быть консервативным.
При этом граница достижима: существует распределение, для которого $P(|X-\mu| \ge k\sigma)$ ровно равна $1/k^2$. Например, при $k = 2$: величина принимает значение 0 с вероятностью $0{,}75$ и значения $\pm 2$ с вероятностями по $0{,}125$. Проверь сам — $\mu = 0$, $\sigma = 1$, и ровно четверть массы лежит на расстоянии $\ge 2\sigma$. Улучшить неравенство без дополнительных предположений нельзя.
Правило трёх сигм
Из Чебышёва следует универсальная версия: не менее $8/9 \approx 89\%$ массы любого распределения лежит в пределах трёх сигм от среднего. Но в обиходе «правилом трёх сигм» называют более сильное утверждение, справедливое для нормального распределения:
$$P(|X - \mu| < \sigma) \approx 68{,}27\%$$$$P(|X - \mu| < 2\sigma) \approx 95{,}45\%$$
$$P(|X - \mu| < 3\sigma) \approx 99{,}73\%$$
То есть за пределы трёх сигм нормальная величина выходит примерно в 3 случаях из 1000. Это правило — рабочий инструмент контроля качества (контрольные карты Шухарта), детекции аномалий и первичной чистки данных: точку за пределами $3\sigma$ помечают как подозрительную.
Важная оговорка, которую в реальной работе забывают чаще всего: правило трёх сигм требует нормальности. Для распределений с тяжёлыми хвостами (доходности активов, размеры файлов, длины сессий, длины текстов) вылет за $3\sigma$ может случаться в сотни раз чаще. Знаменитая фраза Нассима Талеба про «событие, которое по нашим моделям должно происходить раз в миллиард лет, случилось трижды за неделю» — ровно об этой ошибке. Если ты не уверен в нормальности, пользуйся Чебышёвым — он даёт слабую, но честную границу.
Примеры с разбором
Пример 16 (простой): применяем Чебышёва
Средний чек в магазине 2000 ₽, $\sigma = 500$ ₽. Оцени сверху вероятность того, что чек отличается от среднего более чем на 1500 ₽.
Решение:
Шаг 1. Переводим порог в сигмы: $1500 / 500 = 3$, то есть $k = 3$.
Шаг 2. По Чебышёву:
$$P(|X - 2000| \ge 1500) \le \frac{1}{9} \approx 0{,}111$$Ответ: не более 11,1 %.
📌 Заметь формулировку: «не более». Чебышёв даёт только верхнюю границу, реальная вероятность может быть намного меньше. Если бы распределение чеков было нормальным, ответ был бы 0,27 % — в сорок раз меньше. Но чеки нормальными не бывают (они скошены вправо), поэтому осторожная оценка тут уместнее.
Пример 17 (средний): обратная задача
Величина имеет $\mu = 100$ и $\sigma = 5$. Внутри какого симметричного интервала гарантированно лежит не менее 96 % массы распределения?
Решение:
Шаг 1. Хотим $P(|X-\mu| \ge k\sigma) \le 0{,}04$. По Чебышёву достаточно потребовать:
$$\frac{1}{k^2} \le 0{,}04$$Шаг 2. Решаем:
$$k^2 \ge \frac{1}{0{,}04} = 25 \quad \Longrightarrow \quad k \ge 5$$Шаг 3. Строим интервал: $\mu \pm 5\sigma = 100 \pm 25$.
Ответ: интервал $[75; 125]$; в нём гарантированно не менее 96 % массы при любом распределении.
Пример 18 (сложный): Чебышёв доказывает закон больших чисел
Пусть $X_1,\ldots,X_n$ независимы, одинаково распределены, $EX_i = \mu$, $D(X_i) = \sigma^2$. Покажи, что при росте $n$ вероятность отклонения выборочного среднего от $\mu$ больше чем на фиксированное $\varepsilon$ стремится к нулю.
Решение:
Шаг 1. Рассмотрим $\bar{X}_n$. Его матожидание: $E\bar{X}_n = \frac{1}{n}\cdot n\mu = \mu$ — оценка несмещённая.
Шаг 2. Его дисперсия, как мы вывели: $D(\bar{X}_n) = \sigma^2/n$.
Шаг 3. Применяем Чебышёва к величине $\bar{X}_n$:
$$P\big(|\bar{X}_n - \mu| \ge \varepsilon\big) \le \frac{D(\bar{X}_n)}{\varepsilon^2} = \frac{\sigma^2}{n\varepsilon^2}$$Шаг 4. При фиксированных $\sigma$ и $\varepsilon$ правая часть — это константа, делённая на $n$. При $n \to \infty$ она стремится к нулю.
Ответ: $P(|\bar{X}_n - \mu| \ge \varepsilon) \le \dfrac{\sigma^2}{n\varepsilon^2} \to 0$ — это и есть закон больших чисел в форме Чебышёва.
📊 Почему это важно. Мы только что за четыре строчки доказали одну из главных теорем теории вероятностей — и весь фундамент под ней это дисперсия среднего $\sigma^2/n$. Именно поэтому валидация на большой выборке имеет смысл, а на маленькой — нет. Подробный разбор ЗБЧ ждёт тебя в уроке 242, а ЦПТ (которая скажет не только «сойдётся», но и «с какой скоростью и по какому закону») — в уроке 241.
Стандартизация: $Z = \dfrac{X - \mu}{\sigma}$
Идея
У нас есть два инструмента: сдвиг (не меняет дисперсию) и масштабирование (меняет её в квадрате множителя). Комбинируя их, можно привести любую случайную величину с конечной ненулевой дисперсией к каноническому виду: среднее 0, дисперсия 1.
Определение: Стандартизацией случайной величины $X$ с $EX = \mu$ и $\sigma(X) = \sigma > 0$ называется преобразование
$$Z = \frac{X - \mu}{\sigma}$$Полученную величину $Z$ называют стандартизованной, а её значения — $z$-оценками (z-scores).
Проверим свойства напрямую.
Матожидание:
$$EZ = E\left(\frac{X-\mu}{\sigma}\right) = \frac{1}{\sigma}\big(EX - \mu\big) = \frac{1}{\sigma}(\mu - \mu) = 0$$Дисперсия: здесь $Z = \frac{1}{\sigma}X - \frac{\mu}{\sigma}$, то есть $a = 1/\sigma$, $b = -\mu/\sigma$. Сдвиг игнорируется, множитель входит в квадрате:
$$D(Z) = \left(\frac{1}{\sigma}\right)^2 D(X) = \frac{\sigma^2}{\sigma^2} = 1$$Всегда 0 и 1, для любого исходного распределения. Форма распределения при этом не меняется — стандартизация не делает величину нормальной, она только перекладывает её на другую линейку. Скошенное распределение останется скошенным, двугорбое — двугорбым.
Что означает z-оценка
Число $z$ отвечает на вопрос: на сколько стандартных отклонений это значение отстоит от среднего? Это универсальная линейка, на которой можно сравнивать несопоставимое.
- $z = 0$ — ровно среднее
- $z = 1$ — на одну сигму выше среднего (для нормального распределения это примерно 84-й процентиль)
- $z = -2$ — на две сигмы ниже (примерно 2,3-й процентиль)
- $|z| > 3$ — кандидат в выбросы
Классический пример: студент получил 85 баллов по математике (где средний балл 70, $\sigma = 10$) и 75 баллов по литературе (где средний 60, $\sigma = 5$). Где он выступил лучше? В абсолютных баллах — по математике. А в z-оценках: $z_{\text{мат}} = (85-70)/10 = 1{,}5$ и $z_{\text{лит}} = (75-60)/5 = 3{,}0$. По литературе результат вдвое выдающееся относительно однокурсников.
Примеры с разбором
Пример 19 (простой): считаем z-оценку
Рост мужчин в популяции: $\mu = 176$ см, $\sigma = 7$ см. Найди z-оценку человека ростом 190 см и рост, соответствующий $z = -1{,}5$.
Решение:
Шаг 1. Прямое преобразование:
$$z = \frac{190 - 176}{7} = \frac{14}{7} = 2$$Шаг 2. Обратное преобразование — выражаем $x$ из формулы $z = (x-\mu)/\sigma$:
$$x = \mu + z\sigma = 176 + (-1{,}5)\cdot 7 = 176 - 10{,}5 = 165{,}5$$Ответ: $z = 2$ для роста 190 см; $z = -1{,}5$ соответствует росту 165,5 см.
Пример 20 (средний): стандартизация выборки вручную
Стандартизуй набор значений признака: $2, 4, 4, 4, 5, 5, 7, 9$. Проверь, что среднее стало 0, а дисперсия 1.
Решение:
Шаг 1. Среднее:
$$\bar{x} = \frac{2+4+4+4+5+5+7+9}{8} = \frac{40}{8} = 5$$Шаг 2. Отклонения: $-3,\ -1,\ -1,\ -1,\ 0,\ 0,\ 2,\ 4$.
Шаг 3. Квадраты отклонений: $9,\ 1,\ 1,\ 1,\ 0,\ 0,\ 4,\ 16$. Сумма $= 32$.
Шаг 4. Дисперсия (делим на $n$, как для распределения):
$$D = \frac{32}{8} = 4, \qquad \sigma = 2$$Шаг 5. Делим каждое отклонение на $\sigma = 2$:
$$-1{,}5;\ -0{,}5;\ -0{,}5;\ -0{,}5;\ 0;\ 0;\ 1;\ 2$$Проверим. Сумма: $-1{,}5 - 0{,}5 - 0{,}5 - 0{,}5 + 0 + 0 + 1 + 2 = 0$ ✅ Сумма квадратов: $2{,}25 + 0{,}25 + 0{,}25 + 0{,}25 + 0 + 0 + 1 + 4 = 8$, делим на 8 → дисперсия 1 ✅
Ответ: $-1{,}5;\ -0{,}5;\ -0{,}5;\ -0{,}5;\ 0;\ 0;\ 1;\ 2$ со средним 0 и дисперсией 1.
Пример 21 (сложный): почему без стандартизации градиентный спуск ходит зигзагом
Пусть модель — линейная регрессия с двумя признаками. Первый признак («возраст», $\sigma_1 = 10$), второй («доход в рублях», $\sigma_2 = 100\,000$). Объясни, как это влияет на градиентный спуск, и что даёт стандартизация.
Решение:
Шаг 1. Что происходит с функцией потерь. Для линейной регрессии с MSE поверхность потерь по весам — квадратичная чаша, и её кривизна по направлению веса $w_j$ пропорциональна $E(x_j^2)$, то есть примерно $\sigma_j^2$ для центрированных признаков.
Шаг 2. Считаем кривизны. По первому признаку кривизна порядка $10^2 = 100$. По второму — порядка $(10^5)^2 = 10^{10}$. Отношение:
$$\kappa \approx \frac{10^{10}}{10^{2}} = 10^{8}$$Это число обусловленности задачи — отношение максимальной кривизны к минимальной.
Шаг 3. Что это значит для шага обучения. Градиентный спуск устойчив только при $\eta < 2/\lambda_{\max}$, где $\lambda_{\max}$ — максимальная кривизна. То есть шаг вынужден подстраиваться под самое крутое направление: $\eta < 2 \cdot 10^{-10}$. Но по пологому направлению с кривизной 100 такой шаг продвигает почти на нуль. Чтобы пройти пологий овраг, нужно порядка $\kappa = 10^8$ итераций.
Шаг 4. Геометрия зигзага. Поверхность потерь — не круглая чаша, а вытянутый овраг с соотношением осей $\sqrt{\kappa} = 10^4$. Градиент в такой геометрии направлен почти перпендикулярно оси оврага, а не вдоль неё. Спуск «бьётся о стенки», отскакивая от одного склона к другому и медленно сползая вдоль дна — это и есть зигзаг.
Шаг 5. Что даёт стандартизация. После $z$-преобразования у каждого признака $\sigma_j = 1$, значит все кривизны становятся одного порядка, $\kappa \approx 1$. Чаша становится круглой, градиент указывает прямо в минимум, спуск сходится за считанные итерации.
Ответ: без стандартизации $\kappa \approx 10^8$ и сходимость катастрофически медленная; стандартизация приводит $\kappa$ к порядку единицы и убирает зигзаг.
📊 Почему это важно. Это самое частое практическое применение дисперсии в ML — и самая частая причина, почему «модель не учится». Стандартизация обязательна для всего, что использует градиентный спуск (линейные модели, SVM, нейросети) и для всего, что считает расстояния (KNN, K-means, ядерные методы, PCA). Она не нужна деревьям и их ансамблям — дерево делает пороговые сплиты, и монотонное преобразование признака ничего для него не меняет. Заодно понятно, зачем нужны Adam и другие адаптивные оптимизаторы: они делят шаг на скользящее среднее квадрата градиента, то есть фактически на его $\sigma$, — это стандартизация, применённая уже к градиентам, а не к признакам.
Практика: 30 заданий
Базовые (задания 1-10)
Задание 1: Случайная величина $X$ задана таблицей: значение $1$ с вероятностью $0{,}2$, значение $2$ с вероятностью $0{,}5$, значение $3$ с вероятностью $0{,}3$. Найди $D(X)$ и $\sigma(X)$.
Задание 2: Найди дисперсию величины, принимающей значения $-2$, $0$ и $3$ с вероятностями $0{,}3$, $0{,}5$ и $0{,}2$.
Задание 3: Модель отвечает правильно с вероятностью $0{,}8$. Рассмотрим индикатор одного ответа ($1$ — верно, $0$ — ошибка). Найди его дисперсию и сравни с дисперсией индикатора при точности $0{,}5$.
Задание 4: Время отклика сервиса имеет $EX = 250$ мс и $D(X) = 2500$ мс². Найди $\sigma$ и коэффициент вариации.
Задание 5: Известно, что $D(X) = 5$. Найди $D(3X + 7)$, $\sigma(3X+7)$ и $D(-2X + 100)$.
Задание 6: $X$ и $Y$ независимы, $D(X) = 9$, $D(Y) = 16$. Найди $D(X+Y)$, $D(X-Y)$ и $D(2X - Y)$.
Задание 7: Одно измерение имеет $\sigma = 15$. Найди стандартную ошибку среднего по $25$ измерениям и по $225$. Сколько измерений нужно, чтобы $SE$ стала равна $0{,}5$?
Задание 8: Величина имеет $\mu = 50$ и $\sigma = 4$. Оцени сверху вероятность того, что она отклонится от среднего не менее чем на $12$.
Задание 9: Accuracy модели на разных сидах имеет $\mu = 0{,}82$ и $\sigma = 0{,}025$. Найди z-оценку прогона с accuracy $0{,}87$ и accuracy, соответствующую $z = -1{,}2$.
Задание 10: Величина распределена равномерно на отрезке $[2; 10]$. Найди $EX$, $D(X)$ и $\sigma$.
Средние (задания 11-20)
Задание 11: Величина $X$ принимает значения $0$, $1$, $2$, $5$ с вероятностями $0{,}1$, $p$, $0{,}4$, $0{,}2$. Найди $p$, затем $EX$, $D(X)$ и $\sigma$.
Задание 12: Непрерывная величина задана плотностью $f(x) = 3x^2$ на отрезке $[0;1]$ и нулём вне его. Найди $EX$, $D(X)$ и $\sigma$.
Задание 13: $X$ и $Y$ независимы, $D(X) = 4$, $D(Y) = 9$. Найди $D(2X - 3Y + 5)$ и $\sigma$.
Задание 14: Ты измеряешь accuracy модели на тестовой выборке. Ожидаемая точность около $0{,}9$. Сколько объектов нужно в тесте, чтобы стандартная ошибка оценки accuracy не превышала $0{,}01$ (один процентный пункт)? А если точность около $0{,}5$?
Задание 15: Два сервиса: A с $\mu_A = 200$ мс и $\sigma_A = 30$ мс, B с $\mu_B = 80$ мс и $\sigma_B = 20$ мс. (а) У какого относительный разброс больше? (б) У какого чаще будет нарушен SLA «ответ не дольше $260$ мс»?
Задание 16: Величина имеет $\sigma = 0{,}5$. Сколько независимых наблюдений нужно, чтобы гарантировать $P(|\bar X - \mu| \ge 0{,}02) \le 0{,}05$ по Чебышёву? Сравни с оценкой в предположении нормальности.
Задание 17: Бросают честную кость $100$ раз. Найди дисперсию и стандартное отклонение суммы очков, а также дисперсию и сигму среднего числа очков за бросок.
Задание 18: Время прогона CI-пайплайна имеет $\mu = 12$ мин и $\sigma = 2{,}5$ мин. (а) Какова z-оценка прогона длительностью $18$ мин? (б) Где стоит поставить порог алерта «$3\sigma$»? (в) Что про частоту срабатывания этого алерта можно сказать без предположения о нормальности?
Задание 19: Веса слоя лежат в диапазоне $[-1; 1]$ и квантуются в int8 — на $256$ равномерных уровней. Считая ошибку округления равномерной на отрезке длиной в один шаг сетки, найди её дисперсию и сигму. Оцени относительный шум, если $\sigma$ самих весов равна $0{,}05$.
Задание 20: Докажи, что среди всех констант $c$ величина $E(X - c)^2$ минимальна при $c = EX$, и что минимум равен $D(X)$. Проверь численно на величине из задания 1.
Продвинутые (задания 21-30)
Задание 21: Есть две оценки одного и того же истинного параметра $\theta = 5{,}0$. Оценка A смещена: $E\hat\theta_A = 5{,}2$, но устойчива: $D(\hat\theta_A) = 0{,}09$. Оценка B несмещённая ($E\hat\theta_B = 5{,}0$), но шумная: $D(\hat\theta_B) = 0{,}20$. Выведи разложение $\text{MSE} = \text{bias}^2 + \text{variance}$ и определи, какая оценка лучше.
Задание 22: Ансамбль из $n$ моделей. Ошибка каждой имеет дисперсию $\sigma^2 = 0{,}04$, а ошибки любых двух моделей коррелированы так, что перекрёстный член равен $\rho\sigma^2$. Выведи дисперсию усреднённого предсказания и посчитай её для $n = 10$ при $\rho = 0{,}6$ и $\rho = 0{,}2$. Что будет при $n \to \infty$?
Задание 23: Нейрон получает $n_{\text{in}} = 256$ входов: $y = \sum_{i=1}^{256} w_i x_i$. Входы независимы, имеют нулевое среднее и дисперсию $1$; веса независимы от входов и друг от друга, имеют нулевое среднее и дисперсию $\mathrm{Var}(w)$. (а) Вырази $D(y)$. (б) Какой должна быть $\mathrm{Var}(w)$, чтобы $D(y) = 1$? (в) Какие границы $[-a;a]$ взять для равномерной инициализации? (г) Что произойдёт с сигналом за $50$ слоёв, если взять вдвое меньшую дисперсию?
Задание 24: Докажи, что число успехов в $n$ независимых испытаниях с вероятностью успеха $p$ имеет дисперсию $npq$. Примени к тесту из $1000$ объектов с частотой ошибок $p = 0{,}03$: найди $\sigma$ числа ошибок, коридор трёх сигм и $\sigma$ доли ошибок.
Задание 25: A/B-тест конверсии. Базовая конверсия $p = 0{,}10$, хотим уверенно ловить прирост в $0{,}5$ процентного пункта (до $0{,}105$). Сколько пользователей нужно в каждой группе, чтобы наблюдаемая разница в $0{,}005$ была не меньше $1{,}96$ сигмы разности?
Задание 26: Inverted dropout: активацию $a$ умножают на маску $m \sim \mathrm{Bern}(1-p)$ и делят на $(1-p)$, где $p$ — вероятность выключения. (а) Покажи, что выход несмещён. (б) Найди дисперсию выхода при $p = 0{,}5$ и $p = 0{,}1$. (в) Как ведёт себя относительный шум суммы по слою из $512$ нейронов?
Задание 27: Мониторинг latency: $\mu = 200$ мс, $\sigma = 50$ мс, проверка раз в минуту ($1440$ раз в сутки). (а) Сколько ложных тревог в сутки даст порог $\mu + 3\sigma$, если распределение нормально? (б) Где поставить порог, чтобы ложных тревог было не больше одной в сутки? (в) Что можно гарантировать без предположения о нормальности?
Задание 28: Оптимизатор усредняет градиенты экспоненциально: $v_t = \beta v_{t-1} + (1-\beta)g_t$, где $g_t$ независимы и имеют дисперсию $\sigma^2$. Найди дисперсию $v_t$ в установившемся режиме и «эффективный размер выборки» — то $n$, при котором обычное среднее по $n$ градиентам дало бы такой же шум. Посчитай для $\beta = 0{,}9$ и $\beta = 0{,}99$.
Задание 29: Инженер стандартизует признак. Обучающая часть: $10, 12, 14, 16, 18$; тестовая: $20, 22$. (а) Стандартизуй тест по статистикам трейна. (б) Что изменится, если посчитать $\mu$ и $\sigma$ по объединённой выборке, и почему так делать нельзя? (в) Почему формулу $E(X^2)-(EX)^2$ опасно применять в лоб к значениям вроде $100\,000\,001$?
Задание 30: Аудитория сервиса состоит из двух сегментов: $70\%$ «быстрых» пользователей со средней сессией $3$ мин и $\sigma_1 = 1$ мин, и $30\%$ «долгих» со средней $15$ мин и $\sigma_2 = 4$ мин. Найди $\mu$ и $\sigma$ по всей аудитории и разложи дисперсию на две части: разброс внутри сегментов и разброс между их центрами.
Частые ошибки
❌ Ошибка 1: выносить множитель из дисперсии линейно
Неправильно: «$D(X) = 5$, значит $D(3X) = 3 \cdot 5 = 15$».
Правильно: $D(3X) = 3^2\cdot 5 = 45$. Множитель входит в дисперсию в квадрате: $D(aX+b) = a^2D(X)$.
Почему важно: это ошибка номер один в теме, и живёт она за счёт того, что для матожидания правило действительно линейное ($E(3X) = 3EX$), рука пишет по инерции. Проверочный рефлекс простой: дисперсия измеряется в квадратах единиц, значит и коэффициент обязан войти в квадрате. Если хочется линейности — работай с $\sigma$: она честно масштабируется, $\sigma(3X) = 3\sigma(X)$.
❌ Ошибка 2: складывать сигмы вместо дисперсий
Неправильно: «$\sigma(X) = 3$, $\sigma(Y) = 4$, независимы, значит $\sigma(X+Y) = 3+4 = 7$».
Правильно: складываются дисперсии, а не сигмы: $D(X+Y) = 9+16 = 25$, откуда $\sigma(X+Y) = 5$.
Почему важно: сигмы ведут себя как катеты прямоугольного треугольника — суммируются «по Пифагору», $\sqrt{3^2+4^2}=5$. Ошибка систематически завышает оценку разброса, и в инженерных расчётах это выливается в перезаложенные допуски и лишние деньги. Мнемоника: складывать можно только то, что аддитивно, а аддитивна именно дисперсия — это её главное свойство, ради которого она и была придумана.
❌ Ошибка 3: думать, что при вычитании дисперсии вычитаются
Неправильно: «$D(X - Y) = D(X) - D(Y) = 9 - 16 = -7$».
Правильно: $D(X-Y) = D(X) + (-1)^2D(Y) = 9+16 = 25$.
Почему важно: отрицательная дисперсия невозможна в принципе, так что такой ответ сам себя опровергает. Содержательно: вычитание не отменяет неопределённость, а добавляет второй независимый источник шума. Прямое практическое следствие — сравнить две модели или две группы в A/B-тесте всегда труднее, чем оценить одну: сигма разности в $\sqrt2$ раз больше сигмы каждой, а значит данных нужно вдвое больше (см. задание 25).
❌ Ошибка 4: применять аддитивность к зависимым величинам
Неправильно: «Усредняю $10$ моделей, у каждой $D = 0{,}04$, значит дисперсия ансамбля равна $0{,}04/10 = 0{,}004$».
Правильно: формула $D(\bar X) = \sigma^2/n$ работает только для независимых слагаемых. Если модели коррелированы с коэффициентом $\rho$, то $D(\bar E) = \rho\sigma^2 + (1-\rho)\sigma^2/n$, и при $\rho = 0{,}6$ получится $0{,}0256$ — в шесть с лишним раз больше обещанного.
Почему важно: это самая дорогая ошибка списка, потому что она не в арифметике, а в предпосылке. Десять моделей, обученных на одних данных одним алгоритмом с разными сидами, коррелированы почти полностью — усреднение почти ничего не даёт. Полная формула $D(X+Y) = D(X)+D(Y)+2\,\mathrm{cov}(X,Y)$ напоминает: аддитивность — это не общее свойство, а награда за независимость.
❌ Ошибка 5: применять $\sigma/\sqrt n$ к зависимым наблюдениям
Неправильно: «Замерил latency $10\,000$ раз подряд за пять минут, $\sigma = 50$ мс, значит стандартная ошибка среднего равна $50/100 = 0{,}5$ мс».
Правильно: соседние замеры за пять минут зависимы (общий прогрев кэша, общая нагрузка, один и тот же деплой). Эффективное число независимых наблюдений может быть в десятки раз меньше $10\,000$, и реальная ошибка — единицы миллисекунд, а не полмиллисекунды.
Почему важно: зависимость наблюдений — главная причина, по которой доверительные интервалы в реальных проектах оказываются обманчиво узкими. Признаки беды: данные идут подряд во времени, относятся к одной сессии/одному пользователю/одному видео, собраны в один короткий период. Лечение — агрегировать до уровня, на котором независимость правдоподобна (не кадры, а видео; не запросы, а сутки), и считать $\sigma/\sqrt n$ уже по нему.
❌ Ошибка 6: считать правило трёх сигм универсальным
Неправильно: «За пределы $\mu \pm 3\sigma$ выходит $0{,}27\%$ значений — значит, порог алерта на $3\sigma$ даст меньше одной ложной тревоги в сутки для любой метрики».
Правильно: цифра $0{,}27\%$ верна только для нормального распределения. Универсальная гарантия даётся Чебышёвым и куда слабее: $P(|X-\mu|\ge3\sigma)\le 1/9 \approx 11\%$.
Почему важно: метрики с тяжёлыми хвостами (latency, размеры ответов, длины сессий, доходности) вылетают за три сигмы в десятки и сотни раз чаще нормального прогноза — как показал расчёт в задании 27, разрыв может быть между одной тревогой в сутки и сотней. Практический стандарт индустрии — эмпирические перцентили ($p95$, $p99$), которые не требуют вообще никаких предположений о форме распределения.
❌ Ошибка 7: считать дисперсию наивно на больших числах
Неправильно: посчитать $\sum x_i^2/n - (\sum x_i/n)^2$ в лоб для значений порядка $10^8$ и получить ноль или отрицательное число.
Правильно: вычесть грубую оценку среднего (сдвиг дисперсию не меняет) или использовать однопроходный метод Уэлфорда, который обновляет статистики инкрементально.
Почему важно: это катастрофическое сокращение — вычитание двух почти равных огромных чисел уничтожает все значащие цифры. Отрицательная дисперсия в логах — не мистика, а типичный симптом. Именно поэтому в numpy, pandas и в running_var внутри BatchNorm стоит устойчивый алгоритм, а не формула из учебника. Рабочее правило: рабочая формула хороша для вывода на бумаге, для кода бери Уэлфорда.
❌ Ошибка 8: считать $\mu$ и $\sigma$ для стандартизации по всей выборке
Неправильно: X_scaled = StandardScaler().fit_transform(X) до разбиения на train и test.
Правильно: scaler.fit(X_train), затем scaler.transform(X_train) и scaler.transform(X_test) — статистики берутся только с обучающей части.
Почему важно: в первом варианте информация о тестовых объектах затекает в само преобразование — это утечка данных. Валидация покажет завышенное качество, а в проде статистик по будущим данным не существует физически. Побочный симптом, по которому ошибку легко поймать: после корректной стандартизации среднее на тесте не равно нулю — и это нормально, так и должно быть.
Главное запомнить
📝 Ключевые понятия
✅ Дисперсия: средний квадрат отклонения от центра, $D(X) = E(X-EX)^2$. Всегда неотрицательна; $D(X) = 0$ ровно тогда, когда величина — константа. Измеряется в квадратах исходных единиц.
✅ Рабочая формула: $D(X) = E(X^2) - (EX)^2$ — «средний квадрат минус квадрат среднего». Позволяет считать дисперсию за один проход по данным (копи сумму значений и сумму квадратов), но на больших числах требует численно устойчивой реализации.
✅ Стандартное отклонение: $\sigma = \sqrt{D(X)}$ — та же размерность, что у самой величины, поэтому именно его кладут рядом со средним в отчёты. Для сравнения разброса у величин разного масштаба — коэффициент вариации $CV = \sigma/|EX|$.
✅ Линейное преобразование: $D(aX+b) = a^2D(X)$ и $\sigma(aX+b) = |a|\sigma(X)$. Сдвиг разброс не меняет вообще; множитель входит в дисперсию в квадрате, а в сигму — линейно.
✅ Аддитивность: для независимых величин $D(X+Y) = D(X)+D(Y)$, и точно так же $D(X-Y) = D(X)+D(Y)$. В общем случае $D(X+Y) = D(X)+D(Y)+2\,\mathrm{cov}(X,Y)$ — аддитивность есть награда за независимость, а не свойство по умолчанию.
✅ Закон $\sigma/\sqrt n$: среднее по $n$ независимым наблюдениям имеет $D(\bar X) = \sigma^2/n$ и $\sigma(\bar X) = \sigma/\sqrt n$. Точность стоит квадратично: вдвое меньше шума — вчетверо больше данных.
✅ Дисперсия индикатора и доли: $D(I) = p(1-p)$, максимум $0{,}25$ при $p = 0{,}5$; для числа успехов $D = npq$, для доли $\sigma = \sqrt{pq/n}$. Отсюда считаются доверительные интервалы accuracy и размеры выборок в A/B-тестах.
✅ Неравенство Чебышёва: $P(|X-\mu|\ge k\sigma) \le 1/k^2$ — работает для любого распределения с конечной дисперсией. Граница щедрая, но честная и достижимая. Правило трёх сигм ($68\,/\,95\,/\,99{,}7\%$) требует нормальности; Чебышёв даёт лишь $\ge 8/9$ внутри трёх сигм.
✅ Стандартизация: $Z = (X-\mu)/\sigma$ даёт $EZ = 0$, $D(Z) = 1$ для любого исходного распределения, но форму не меняет — скошенное останется скошенным. Обязательна для градиентных методов и методов, считающих расстояния; не нужна деревьям.
✅ Разложение MSE: $E(X-c)^2 = D(X) + (EX - c)^2$, то есть ошибка = дисперсия + квадрат смещения. Это и bias-variance для оценок, и объяснение, почему регуляризация намеренно вносит смещение ради снижения разброса, и причина, по которой константный прогноз средним даёт MSE, равную $D(y)$.
✅ Разложение по группам: общая дисперсия = средняя дисперсия внутри групп + дисперсия центров групп. На этом стоят ANOVA, критерий разбиения в регрессионных деревьях и K-means, а в мониторинге — правило «смешанную аудиторию считай по сегментам».
Связь с другими темами курса
Что нужно было знать до этого урока. Фундамент — урок 237 про математическое ожидание: без него дисперсию нельзя даже записать, ведь она сама есть матожидание (только не от $X$, а от $(X-EX)^2$). Особенно активно мы эксплуатировали линейность матожидания — на ней держатся и вывод рабочей формулы, и доказательство $D(aX+b) = a^2D(X)$, и обнуление перекрёстного члена в дисперсии суммы. Понадобилось и матожидание индикатора ($EI_A = P(A)$) — из него мгновенно вылилась формула $p(1-p)$. Из более ранних тем работали независимость событий и величин (без неё аддитивность рушится, что мы разобрали в двенадцатом примере) и схема Бернулли (урок 233), число успехов в которой оказалось нашей главной иллюстрацией: $D = npq$ выводится в три строки через сумму индикаторов. Для непрерывных примеров пригодилось умение считать интегралы от плотности.
Что изучить дальше. Прямое продолжение — урок 239 про моменты случайных величин: там выяснится, что матожидание и дисперсия — только первые два члена целого семейства. Дисперсия окажется вторым центральным моментом, за ней последуют третий (асимметрия, skewness — насколько распределение перекошено) и четвёртый (эксцесс, kurtosis — насколько тяжелы хвосты). Именно эксцесс формализует то, о чём мы предупреждали в разделе про правило трёх сигм. В уроке 240 дисперсия будет посчитана для всех основных распределений — биномиального, Пуассона, нормального, экспоненциального, — и ты увидишь, что у каждого она выражается через параметры. Урок 241 (центральная предельная теорема) объяснит, почему среднее по большой выборке становится нормальным с дисперсией ровно $\sigma^2/n$, а урок 242 (закон больших чисел) уже фактически доказан нами в восемнадцатом примере через Чебышёва. Урок 244 введёт ковариацию и корреляцию — тот самый перекрёстный член, который мы обнуляли независимостью; там же появится матрица ковариаций, без которой не понять PCA. Уроки 245-247 превратят $\sigma/\sqrt n$ в рабочие доверительные интервалы и проверку гипотез.
Где это нужно в жизни.
💻 В программировании. Мониторинг производительности: контрольные карты, пороги алертов, отсев выбросов. Расчёт SLA и запасов по ёмкости — очередь надо закладывать не под средний трафик, а под средний плюс несколько сигм. Оценка времени выполнения задач в планировании (и понимание, почему «в среднем два дня» превращается в неделю — виноват правый хвост). Численные алгоритмы: метод Уэлфорда, устойчивое суммирование, борьба с катастрофическим сокращением. Нагрузочное тестирование: сколько прогонов нужно, чтобы отличить регрессию производительности на $3\%$ от шума.
🤖 В ML/AI. Bias-variance разложение и вся теория регуляризации. Инициализация весов (Xavier, He) — прямой расчёт дисперсии сигнала по слоям. Батч-нормализация, layer norm, RMSNorm — все они управляют дисперсией активаций. Dropout и его несмещённая версия. Размер батча и шум градиента, linear scaling rule, critical batch size. Momentum и Adam как экспоненциальное усреднение с эффективным размером выборки $(1+\beta)/(1-\beta)$. Ансамбли и бэггинг: потолок $\rho\sigma^2$. Стандартизация признаков для градиентных методов, SVM, KNN, K-means и PCA. Квантизация моделей: шум округления $h^2/12$. Оценка доверительного интервала для метрики и расчёт размера тестовой выборки.
📊 В Data Science. Доверительные интервалы и размеры выборок в A/B-тестах — самое частое применение $\sigma/\sqrt n$ на практике. ANOVA и разложение дисперсии по факторам. Детекция аномалий по z-оценкам (с обязательной оговоркой про хвосты). Оценка риска в финансах: волатильность портфеля — это буквально $\sigma$ доходности, а Value-at-Risk считается через квантили. Сегментация аудитории: разложение общей дисперсии на внутригрупповую и межгрупповую напрямую отвечает на вопрос «а есть ли вообще разные сегменты».
🔬 В науке. Погрешность измерений и её распространение через формулы (правило «складываются дисперсии» — основа всей метрологии). Число прогонов эксперимента, необходимое для заявленной точности. «Пять сигм» как стандарт открытия в физике элементарных частиц — бозон Хиггса объявили именно тогда, когда сигнал превысил фон на пять стандартных отклонений. В биологии — наследуемость признака, которая определяется как доля дисперсии, объясняемая генетикой, то есть буквально фишеровское разложение из 1918 года.
Интересные факты
💡 Слово «дисперсия» появилось из-за спора о наследственности — Рональд Фишер ввёл его в 1918 году, разбирая, как дискретные менделевские гены порождают непрерывный разброс роста у людей. Ему нужна была величина, которую можно раскладывать на слагаемые: столько-то разброса от генов, столько-то от среды. Среднее так не раскладывается, среднее по модулю — тоже, а дисперсия раскладывается идеально. Из этого свойства выросли дисперсионный анализ, понятие наследуемости и, спустя сто лет, критерий разбиения в регрессионных деревьях.
💡 «Шесть сигм» на самом деле три с половиной. Методология Motorola обещает $3{,}4$ дефекта на миллион. Но если посчитать честно, вероятность выйти за $6\sigma$ у нормального распределения равна примерно $2$ на миллиард, то есть в тысячу раз меньше. Разница не ошибка: инженеры Motorola заложили допущение, что в реальном производстве среднее процесса дрейфует примерно на $1{,}5\sigma$, и считали хвост от эффективных $4{,}5\sigma$. Так практическая поправка на нестабильность процесса попала в название методологии.
💡 Алгоритм, который сегодня работает в каждой нейросети, занимает полстраницы 1962 года. Б. П. Уэлфорд опубликовал в журнале Technometrics заметку в несколько абзацев: как считать дисперсию за один проход, не вычитая близких больших чисел. Заметку почти не заметили. Сегодня его рекуррентные формулы стоят внутри numpy.var, агрегатов в базах данных, счётчиков Prometheus и в running_var каждого слоя BatchNorm — то есть исполняются на планете, вероятно, триллионы раз в секунду.
💡 Делить на $n-1$ придумали из-за степеней свободы, а не из вредности. Когда дисперсию оценивают по выборке, среднее тоже приходится оценивать по ней же — и данные «расходуют» одну степень свободы на подгонку под собственное среднее. Из-за этого сумма квадратов отклонений систематически занижена, и деление на $n-1$ (поправка Бесселя) ровно это компенсирует. Забавный нюанс: несмещённой при этом становится оценка дисперсии, а корень из неё, то есть оценка $\sigma$, всё равно остаётся слегка смещённым — извлечение корня несмещённость не сохраняет.
💡 Формулу инициализации нейросетей пришлось открывать дважды. Ксавье Глоро и Йошуа Бенжио в 2010 году вывели $\mathrm{Var}(w) = 1/n_{\text{in}}$ из требования «дисперсия сигнала не должна меняться от слоя к слою» — и этим разблокировали обучение глубоких сетей с сигмоидами и гиперболическим тангенсом. Через пять лет Каймин Хэ заметил, что ReLU обнуляет примерно половину активаций и потому режет дисперсию вдвое, — и предложил $2/n_{\text{in}}$. Одна двойка в формуле стала тем, что позволило обучить ResNet на $152$ слоя. До этого сети глубже двадцати слоёв просто не сходились: сигнал затухал, как $0{,}5$ в степени числа слоёв.
Лайфхаки и полезные трюки
1. Считай дисперсию одним проходом — но с оглядкой на числа
Держи два аккумулятора: сумму значений и сумму квадратов. В конце $D = \frac{1}{n}\sum x_i^2 - \left(\frac{1}{n}\sum x_i\right)^2$. Это позволяет считать дисперсию потока, который негде сохранить. Если значения крупные, сначала вычти из всех грубую оценку среднего — сдвиг дисперсию не меняет, зато спасает от потери точности.
Пример: для чисел $100\,000\,001$, $100\,000\,002$, $100\,000\,003$ наивная формула в float64 может вернуть ноль. Вычти $10^8$ — получишь $1, 2, 3$ и честную дисперсию $2/3$.
2. Прикидывай $\sigma$ по размаху
Для примерно колоколообразных данных почти весь диапазон укладывается в шесть сигм, поэтому $\sigma \approx (\max - \min)/6$ для больших выборок и $\approx (\max-\min)/4$ для выборок в десятки значений. Это позволяет проверить посчитанное число на вменяемость за секунду.
Пример: метрика гуляет от $0{,}80$ до $0{,}92$ по двадцати прогонам. Прикидка: $\sigma \approx 0{,}12/4 = 0{,}03$. Если расчёт выдал $0{,}003$ или $0{,}3$ — ищи ошибку в коде.
3. Всегда переводи ответ в $\sigma$ и в $CV$ прежде, чем показывать людям
Дисперсия живёт в квадратах единиц и не читается. Сигма даёт масштаб, коэффициент вариации — относительный масштаб. Пара «среднее ± сигма» плюс $CV$ покрывает почти все вопросы, которые задают к отчёту.
Пример: вместо «дисперсия выручки $640\,000$» скажи «средний чек $3200$ ₽, сигма $800$ ₽, разброс — четверть от среднего». Второе понятно всем, включая тебя через месяц.
4. Проверяй знак и порядок величины сразу
Дисперсия неотрицательна всегда. Отрицательный результат означает одно из трёх: перепутан порядок в рабочей формуле, перепутаны свойства матожидания и дисперсии, или сработало катастрофическое сокращение. Второй тест: $\sigma$ обязана быть сопоставима с типичными отклонениями в данных.
Пример: «$D(2X-3Y+5) = 2\cdot4 - 3\cdot9 + 5 = -14$» — отрицательное число мгновенно ловит ошибку. Правильный ответ $4\cdot4+9\cdot9 = 97$.
5. Держи в голове таблицу «во сколько раз больше данных»
Точность растёт как корень, поэтому: вдвое точнее — вчетверо больше данных, втрое — в девять раз, вдесятеро — в сто раз. Эта прикидка отвечает на половину вопросов планирования эксперимента без всяких формул.
Пример: тест из $1000$ объектов даёт $\sigma$ accuracy около $0{,}01$. Хочешь $0{,}002$ — готовь $25\,000$ объектов, а не $5000$.
6. Для долей и метрик типа accuracy сразу пиши $\sqrt{pq/n}$
Это самая часто нужная формула разброса в прикладном ML. Если $p$ неизвестна, подставь $p = 0{,}5$ — она даёт максимум $pq = 0{,}25$, а значит консервативную (безопасную) оценку. Полезная опорная точка: при $n = 10\,000$ сигма доли не превышает $0{,}5\%$.
Пример: accuracy $0{,}93$ на тесте из $400$ объектов. $\sigma = \sqrt{0{,}93\cdot0{,}07/400} \approx 0{,}0128$, то есть коридор $\pm2\sigma$ — это от $0{,}90$ до $0{,}96$. Разница с моделью в $0{,}95$ на таком тесте ничего не значит.
7. Складывай шумы через дисперсии, а не через сигмы
Когда в конвейере несколько независимых источников шума (шум датчика, шум квантизации, шум аугментации), суммарный разброс считается сложением дисперсий и только потом извлечением корня. Побочный вывод: самый крупный источник доминирует непропорционально сильно, и оптимизировать надо именно его.
Пример: $\sigma_1 = 10$, $\sigma_2 = 3$. Итог: $\sqrt{100+9} = 10{,}44$. Убрать второй источник полностью — выигрыш $4\%$. Уменьшить первый вдвое — выигрыш почти вдвое. Второй источник просто не имеет значения.
8. Прежде чем строить коридор сигм — спроси, одна ли это популяция
Если данные смешаны из разных сегментов, общая сигма раздувается разбросом между центрами, а не реальной изменчивостью. Признак: коридор $\mu \pm 3\sigma$ вылезает в физически невозможную область (отрицательное время, отрицательная цена) или гистограмма двугорбая.
Пример: сессии из двух сегментов дали $\mu = 6{,}6$ мин, $\sigma = 5{,}98$ — коридор трёх сигм уходит в минус одиннадцать минут. Разложение показывает, что $85\%$ дисперсии — это расстояние между сегментами. Считать надо по сегментам отдельно.
Заключение
Мы начали с простого вопроса — «как измерить разброс одним числом» — и прошли путь до формул, которые ты будешь использовать в работе каждый день. По дороге выяснилось, что квадрат в определении стоит не по эстетическим причинам, а потому что только он даёт аддитивность; что $\sigma$ существует ради размерности и читаемости; что множитель входит в дисперсию в квадрате, а сдвиг не входит вообще; что среднее по $n$ наблюдениям шумит в $\sqrt n$ раз меньше — и что этот корень одновременно спасение статистики и её проклятие.
А главное — стало видно, что дисперсия это не «второе число после среднего», а несущая конструкция. Bias-variance, инициализация Xavier и He, размер батча и шум градиента, потолок качества ансамблей, стандартизация признаков, доверительные интервалы метрик, пороги алертов, ошибка квантизации, эффективный размер выборки у momentum — всё это одна и та же формула, повёрнутая разными сторонами. Когда в следующий раз увидишь в статье $\sqrt{2/n_{\text{in}}}$ или деление на $\sqrt{B}$, ты уже будешь знать, откуда именно это взялось.
И ещё одно, что стоит унести с собой. Самые дорогие ошибки в этой теме — не арифметические. Аддитивность дисперсии требует независимости, правило трёх сигм требует нормальности, коридор сигм требует однородности популяции. Все три условия в реальных данных нарушаются постоянно и молча: замеры идут подряд, у latency тяжёлый хвост, аудитория состоит из двух сегментов. Формулу знают все, проверяют условия единицы — и разница между этими двумя группами инженеров огромна.
💡 Совет: заведи привычку рядом с каждым средним, которое ты кому-то показываешь, ставить сигму — и произносить вслух вопрос «а сколько это в сигмах?». Прирост метрики на $1\%$, разница между двумя моделями, всплеск в мониторинге, странный прогон на новом сиде — всё это сначала переводится в сигмы, и только потом обсуждается. Половина «открытий» после такого перевода оказывается обычным шумом, а вторая половина становится по-настоящему убедительной, потому что теперь у тебя есть число, а не впечатление.
В следующем уроке — 239, «Моменты случайных величин» — мы поднимемся на ступеньку выше. Окажется, что матожидание и дисперсия это первые два члена целого семейства характеристик: третий момент измеряет перекос распределения, четвёртый — тяжесть хвостов, ту самую, из-за которой правило трёх сигм врёт на latency и на финансовых доходностях. Ты получишь язык, на котором можно описать форму распределения, а не только его центр и ширину. Так что всё, что ты сегодня посчитал руками, окажется частным случаем — и это самый приятный способ двигаться дальше. 🚀
Понял тему? Закрепи в боте! 🚀
Попрактикуйся на задачах и получи персональные рекомендации от AI
💪 Начать тренировку