🔴 Сложный ⏱️ 55 минут

Математическое ожидание

📋 Содержание урока

Математическое ожидание ⚖️

Открой исходники любой библиотеки машинного обучения и найди там строчку, где считается функция потерь. Скорее всего, ты увидишь что-то вроде loss = (predictions - targets).pow(2).mean(). Обрати внимание на последнее слово: mean(). Среднее. Ты берёшь ошибку на каждом объекте батча и усредняешь. И вот тут прячется вещь, о которой редко говорят вслух: то, что ты усредняешь по батчу — это оценка совсем другой величины. Настоящая цель обучения — не «сделать маленькой сумму ошибок на этих 64 картинках», а «сделать маленьким математическое ожидание ошибки на всём потоке данных, который модель встретит в реальной жизни». Батч — это выборка. Матожидание — это то, к чему выборка приближается.

Математическое ожидание — самая скромная и самая рабочая характеристика случайной величины. У неё простая формула, детская интуиция («это среднее») и обманчивая лёгкость. Но именно через неё определяются все остальные характеристики: дисперсия, моменты, ковариация, энтропия, KL-дивергенция, любой функционал риска. Если ты понимаешь матожидание как оператор — как машинку, которая берёт случайность и возвращает число, — то дальнейшая теория вероятностей превращается в набор упражнений с этой машинкой. Если не понимаешь — будешь спотыкаться на каждом шаге.

В этом уроке мы разберём матожидание с двух сторон. Со стороны вычислений: как считать его для дискретной величины (сумма) и для непрерывной (интеграл), как считать матожидание функции от случайной величины, не находя её распределение. И со стороны свойств: почему линейность работает всегда — даже если величины дико зависимы, и почему это самый мощный трюк во всей элементарной теории вероятностей. Отдельно разберём случаи, когда матожидания не существует — распределение Коши и петербургский парадокс. Это не экзотика: тяжёлые хвосты в реальных данных ломают наивные средние регулярно.

И, конечно, ML-контекст будет предметным, а не декоративным: почему обучение — это минимизация оценки матожидания, откуда в reinforcement learning берётся дисконтирование и почему без него ряд может расходиться, почему градиент по батчу — несмещённая оценка полного градиента, сколько нейронов в среднем остаётся живыми при dropout и как считать ожидаемую стоимость ошибки, когда ложное срабатывание и пропуск стоят разных денег.

🎯 Ты узнаешь:

  • Как считать $E(X)$ для дискретной величины ($\sum x_i p_i$) и для непрерывной ($\int x p(x)\,dx$), и почему это одна и та же операция
  • Почему матожидание — это буквально центр тяжести распределения, и что это даёт на практике
  • Почему $E(X+Y) = E(X) + E(Y)$ всегда, без всякой независимости — и почему $E(XY) = E(X)E(Y)$ только для независимых
  • Как приём «матожидание индикатора равно вероятности» решает задачи, которые в лоб не решаются вообще
  • Когда математического ожидания просто нет (Коши, петербургский парадокс) и что с этим делать в реальных данных

История: откуда это взялось?

Всё началось с не доигранной партии. В 1654 году французский аристократ и заядлый игрок шевалье де Мере задал Блезу Паскалю задачу о разделе ставки: двое играют до пяти побед, ставка на кону общая, но игру пришлось прервать при счёте 4:3. Как честно поделить деньги? Наивные ответы («пополам», «в отношении 4:3») не выдерживали критики. Паскаль обсудил задачу в переписке с Пьером Ферма, и в этой переписке — считается, что летом и осенью 1654 года — родилась сама идея: справедливая доля игрока равна средневзвешенному его будущих выигрышей, где весами служат вероятности исходов. Это и есть математическое ожидание, только слова такого ещё не было.

Слово появилось у голландца Христиана Гюйгенса. В 1657 году он выпустил трактат «De ratiociniis in ludo aleae» («О расчётах в азартной игре») — первую печатную книгу по теории вероятностей вообще. Гюйгенс не знал переписки Паскаля и Ферма в деталях, он восстановил логику сам, и построил всю книгу вокруг понятия, которое назвал латинским expectatio — «ожидание», «то, чего стоит ждать». Его первое предложение звучит примерно так: если у меня равные шансы получить $a$ или $b$, то моя позиция стоит ровно $(a+b)/2$. Отсюда — «expected value», «математическое ожидание», а в русской традиции ещё и буква $M$ (от «математическое») наряду с $E$.

Дальше история сделала важный поворот. В 1713 году Николай Бернулли сформулировал задачу, которая ломала всю красивую конструкцию: игра, где ожидание бесконечно, но никто в здравом уме не заплатит за неё много. Его двоюродный брат Даниил Бернулли разобрал эту задачу в 1738 году в статье, опубликованной в трудах Петербургской академии наук — отсюда и название «петербургский парадокс». Даниил предложил считать ожидание не денег, а полезности денег, и фактически изобрёл идею, на которой сегодня стоит вся теория принятия решений и функции выгоды в экономике. А строгую форму — матожидание как интеграл Лебега по вероятностной мере — понятие получило только в 1933 году, в аксиоматике Андрея Николаевича Колмогорова, где $E(X) = \int_\Omega X \, dP$ и дискретный, и непрерывный случай наконец стали одной формулой.

Сегодня эта же конструкция стоит в основании машинного обучения. Когда в статье пишут «minimize the expected risk $\mathbb{E}_{(x,y)\sim \mathcal{D}}[\ell(f(x), y)]$» — это буквально гюйгенсовское expectatio, только вместо игральных костей поток данных, а вместо выигрыша — величина ошибки. И когда в reinforcement learning агент максимизирует ожидаемую сумму наград, он решает ту же задачу де Мере: сколько стоит недоигранная партия.


Дискретный случай: средневзвешенное по вероятностям

Интуиция

Представь, что ты смотришь на доход от одного показа рекламы. В 97 случаях из 100 пользователь ничего не делает — доход 0. В 2 случаях из 100 он кликает — доход 5 рублей. И в 1 случае из 100 он покупает — доход 300 рублей. Вопрос: сколько стоит один показ?

Обычное среднее арифметическое трёх чисел $(0 + 5 + 300)/3 = 101{,}67$ — это полная чушь, и понятно почему: оно делает вид, будто все три исхода равноправны. А они не равноправны: нулевой исход случается в сто раз чаще покупки. Значит, каждому значению надо дать вес, равный его вероятности:

$$0 \cdot 0{,}97 + 5 \cdot 0{,}02 + 300 \cdot 0{,}01 = 0 + 0{,}1 + 3 = 3{,}1$$

Вот эти 3 рубля 10 копеек — реальная стоимость показа. Именно по такому числу маркетолог решает, стоит ли покупать трафик по 2 рубля за показ (да, стоит) или по 4 рубля (нет, не стоит).

Есть вторая интуиция, физическая, и она даже полезнее. Представь невесомую линейку, на которой в точках $x_1, x_2, \dots, x_n$ насажены грузики массами $p_1, p_2, \dots, p_n$ (общая масса равна 1, потому что вероятности в сумме дают единицу). Где надо подставить палец, чтобы линейка не перевешивалась ни влево, ни вправо? Ровно в точке $E(X)$. Матожидание — это центр тяжести распределения. Не «типичное значение», не «самое частое», а именно точка баланса.

Из этой картинки сразу следуют две вещи, которые многих спасают от ошибок. Первая: центр тяжести не обязан совпадать ни с одним из грузиков. Матожидание числа очков на кубике равно 3,5 — значения 3,5 на кубике нет и быть не может. Матожидание числа детей в семье 1,7 — полутора детей не бывает. Это нормально: центр тяжести гантели находится в пустоте между шарами. Вторая: один тяжёлый груз далеко на краю утаскивает точку баланса к себе. Отсюда классическое «средняя зарплата по стране» — одна фигура из списка Forbes сдвигает среднее так, что оно перестаёт описывать хоть кого-нибудь.

Определение: Пусть дискретная случайная величина $X$ принимает значения $x_1, x_2, x_3, \dots$ с вероятностями $p_1, p_2, p_3, \dots$, где $p_i = P(X = x_i)$ и $\sum_i p_i = 1$. Математическим ожиданием $X$ называется число

$$E(X) = \sum_i x_i p_i,$$

при условии, что этот ряд сходится абсолютно, то есть $\sum_i |x_i| p_i < \infty$. Если абсолютной сходимости нет, говорят, что математического ожидания не существует.

Обозначения: в русской литературе часто пишут $M(X)$ или $MX$, в англоязычной и в ML — $E[X]$, $\mathbb{E}[X]$, иногда $\mathbb{E}_{X \sim P}[X]$ с явным указанием распределения. Это одно и то же. Мы будем писать $E(X)$, а в ML-контексте — $\mathbb{E}$, как принято в статьях.

Оговорка про абсолютную сходимость — не формальное занудство. Если значений бесконечно много, порядок суммирования не должен влиять на ответ: величина «сколько я в среднем получу» не может зависеть от того, в каком порядке я перечисляю исходы. Абсолютная сходимость — ровно это условие. Мы вернёмся к нему, когда будем разбирать петербургский парадокс.

Свойства, которые видно прямо из определения:

  • Если $X$ принимает единственное значение $c$ (то есть $X$ — константа), то $E(X) = c \cdot 1 = c$
  • $E(X)$ всегда лежит между минимальным и максимальным возможными значениями $X$: центр тяжести не может оказаться за пределами линейки
  • Если все значения $X$ неотрицательны, то $E(X) \geq 0$
  • Матожидание — это число, а не случайная величина. Как только ты его посчитал, случайность закончилась

Примеры с разбором

Пример 1 (простой): игральная кость

Найди математическое ожидание числа очков при одном броске правильной шестигранной кости.

Решение:

Шаг 1. Выпишем распределение. Значения: $1, 2, 3, 4, 5, 6$. Кость правильная, значит все вероятности равны $\tfrac{1}{6}$.

Шаг 2. Подставим в формулу:

$$E(X) = 1 \cdot \frac{1}{6} + 2 \cdot \frac{1}{6} + 3 \cdot \frac{1}{6} + 4 \cdot \frac{1}{6} + 5 \cdot \frac{1}{6} + 6 \cdot \frac{1}{6}$$

Шаг 3. Вынесем общий множитель $\tfrac{1}{6}$:

$$E(X) = \frac{1}{6}(1 + 2 + 3 + 4 + 5 + 6) = \frac{21}{6} = 3{,}5$$

Проверим наш ответ: распределение симметрично относительно точки 3,5 (пары 1 и 6, 2 и 5, 3 и 4 дают одинаковые суммы). Центр тяжести симметричной картинки лежит на оси симметрии — сходится ✅

Ответ: $E(X) = 3{,}5$

📌 Обрати внимание: значения 3,5 кость выдать не может. Матожидание — точка баланса, а не «типичный исход».


Пример 2 (средний): стоит ли играть

В лотерее билет стоит 100 ₽. С вероятностью $0{,}001$ выигрыш составляет 10 000 ₽, с вероятностью $0{,}01$ — 500 ₽, в остальных случаях выигрыша нет. Найди математическое ожидание чистой прибыли игрока с одного билета.

Решение:

Шаг 1. Аккуратно определим случайную величину. Пусть $X$ — чистая прибыль, то есть выигрыш минус стоимость билета. Тогда значения такие:

  • $X = 10000 - 100 = 9900$ с вероятностью $0{,}001$
  • $X = 500 - 100 = 400$ с вероятностью $0{,}01$
  • $X = -100$ с вероятностью $1 - 0{,}001 - 0{,}01 = 0{,}989$

Шаг 2. Проверим, что вероятности в сумме дают единицу: $0{,}001 + 0{,}01 + 0{,}989 = 1$ ✅

Шаг 3. Считаем матожидание:

$$E(X) = 9900 \cdot 0{,}001 + 400 \cdot 0{,}01 + (-100) \cdot 0{,}989$$$$E(X) = 9{,}9 + 4 - 98{,}9 = -85$$

Шаг 4. Интерпретируем. В среднем каждый билет приносит игроку минус 85 рублей. При этом никакой конкретный билет минус 85 не приносит — он приносит либо $-100$, либо $+400$, либо $+9900$. Но на дистанции в тысячи билетов суммарный итог будет близок к $-85$ за билет.

Ответ: $E(X) = -85$ ₽

📌 Полезный приём для проверки: можно было посчитать матожидание выигрыша (без вычета цены): $10000 \cdot 0{,}001 + 500 \cdot 0{,}01 + 0 \cdot 0{,}989 = 10 + 5 = 15$, а потом вычесть 100: $15 - 100 = -85$. Совпало ✅ Почему так можно — увидим в разделе про линейность.


Пример 3 (сложный): бесконечное число значений

Ты бросаешь монету до первого орла. Пусть $X$ — число сделанных бросков. Найди $E(X)$.

Решение:

Шаг 1. Найдём распределение. Событие $\{X = k\}$ означает: сначала $k-1$ решка подряд, потом орёл. Броски независимы, значит

$$P(X = k) = \left(\frac{1}{2}\right)^{k-1} \cdot \frac{1}{2} = \frac{1}{2^k}, \qquad k = 1, 2, 3, \dots$$

Шаг 2. Проверим, что это распределение: $\sum_{k=1}^{\infty} \tfrac{1}{2^k} = \tfrac{1/2}{1 - 1/2} = 1$ ✅

Шаг 3. Записываем матожидание:

$$E(X) = \sum_{k=1}^{\infty} k \cdot \frac{1}{2^k} = \frac{1}{2} + \frac{2}{4} + \frac{3}{8} + \frac{4}{16} + \dots$$

Шаг 4. Здесь удобнее не суммировать ряд в лоб, а использовать приём «расщепления первого шага». Обозначим $E(X) = m$. Первый бросок мы делаем всегда — это даёт вклад 1. Дальше два случая:

  • с вероятностью $\tfrac{1}{2}$ выпал орёл, и всё закончилось (добавка 0)
  • с вероятностью $\tfrac{1}{2}$ выпала решка, и мы оказались ровно в исходной ситуации: ждать орла заново, то есть в среднем ещё $m$ бросков

Шаг 5. Получаем уравнение:

$$m = 1 + \frac{1}{2} \cdot 0 + \frac{1}{2} \cdot m$$$$m - \frac{m}{2} = 1 \quad \Rightarrow \quad \frac{m}{2} = 1 \quad \Rightarrow \quad m = 2$$

Проверим наш ответ: посчитаем частичные суммы ряда: $0{,}5 + 0{,}5 + 0{,}375 + 0{,}25 + 0{,}15625 + 0{,}09375 = 1{,}875$ за шесть слагаемых, дальше сумма продолжает расти и подбирается к 2 ✅

Ответ: $E(X) = 2$

📌 Это частный случай геометрического распределения с $p = \tfrac12$: в общем виде $E(X) = 1/p$. Ждать события с вероятностью $p$ приходится в среднем $1/p$ попыток — правило, которым удобно оценивать всё на свете, от числа запросов до первой ошибки API до числа эпох до срабатывания early stopping.

Почему это важно

Дискретное матожидание — это калькулятор решений. Любой выбор в условиях неопределённости («брать трафик по такой цене или нет», «включать ретрай или нет», «какой порог поставить классификатору») сводится к сравнению двух чисел $E(\text{вариант A})$ и $E(\text{вариант B})$. Причём считать надо именно взвешенно: интуиция человека систематически переоценивает редкие яркие исходы (выигрыш в лотерею) и недооценивает частые скучные (потеря ста рублей), и формула $\sum x_i p_i$ — единственный способ поставить их на одни весы.

В ML дискретное матожидание встречается буквально в каждом softmax-выходе. Когда модель выдаёт распределение по классам $p_1, \dots, p_K$, а каждому классу приписана цена ошибки, ожидаемая цена решения — это сумма $\sum_i c_i p_i$. Именно так работает cost-sensitive классификация, и именно поэтому argmax по вероятности — не всегда оптимальное решение.


Непрерывный случай: сумма превращается в интеграл

Интуиция

Вернёмся к линейке с грузиками. Дискретный случай — это отдельные грузики в отдельных точках. А что, если масса размазана по линейке непрерывно, как неоднородный стержень? Тогда «масса кусочка» шириной $dx$ около точки $x$ равна $p(x)\,dx$, где $p(x)$ — плотность (та самая, из урока 236). Момент этого кусочка относительно нуля — «плечо × масса», то есть $x \cdot p(x)\,dx$. Складываем по всему стержню — и сумма превращается в интеграл.

Формула буквально получается заменой трёх символов: $\sum \to \int$, $x_i \to x$, $p_i \to p(x)\,dx$. Больше ничего не меняется. Это очень типичная для теории вероятностей ситуация: дискретный и непрерывный случай — два лица одной операции, и в общей теории (интеграл по вероятностной мере) они пишутся одной строчкой.

Определение: Пусть непрерывная случайная величина $X$ имеет плотность распределения $p(x)$. Математическим ожиданием $X$ называется число

$$E(X) = \int_{-\infty}^{+\infty} x \, p(x)\, dx,$$

при условии, что интеграл сходится абсолютно, то есть $\int_{-\infty}^{+\infty} |x| \, p(x)\, dx < \infty$. Если абсолютной сходимости нет, математического ожидания не существует.

Практическое замечание: интегрировать «от минус до плюс бесконечности» приходится редко. Если плотность равна нулю вне отрезка $[a; b]$, интеграл сжимается до $\int_a^b x\,p(x)\,dx$ — за пределами отрезка подынтегральная функция тождественно нулевая, и вклада не даёт.

Полезные ориентиры, которые стоит запомнить сразу:

  • Если плотность симметрична относительно точки $c$ (то есть $p(c + t) = p(c - t)$ для всех $t$) и матожидание существует, то $E(X) = c$. Симметричный стержень балансируется в центре
  • Равномерное распределение на $[a; b]$: $E(X) = \dfrac{a+b}{2}$
  • Показательное (экспоненциальное) распределение с параметром $\lambda$: $E(X) = \dfrac{1}{\lambda}$
  • Нормальное распределение $\mathcal{N}(\mu, \sigma^2)$: $E(X) = \mu$ (параметр $\mu$ и есть матожидание, и это видно из симметрии колокола)

Отдельно стоит проговорить одну вещь, которая многих сбивает. Плотность $p(x)$ — это не вероятность. Она может быть больше единицы (например, плотность равномерного распределения на $[0; 0{,}1]$ равна 10). Вероятностью становится только произведение $p(x)\,dx$ — «масса кусочка». Поэтому в формуле матожидания $x$ умножается именно на $p(x)\,dx$, а не на $p(x)$, и интеграл имеет размерность самого $x$, а не размерность вероятности.

Примеры с разбором

Пример 4 (простой): равномерное распределение

Время ожидания автобуса $X$ равномерно распределено на отрезке $[0; 12]$ минут. Найди $E(X)$.

Решение:

Шаг 1. Выпишем плотность. Для равномерного распределения на $[a; b]$ плотность постоянна и равна $\dfrac{1}{b-a}$ внутри отрезка и нулю снаружи. Здесь $a = 0$, $b = 12$:

$$p(x) = \begin{cases} \dfrac{1}{12}, & 0 \leq x \leq 12 \\[4pt] 0, & \text{иначе} \end{cases}$$

Шаг 2. Подставим в формулу и сузим пределы:

$$E(X) = \int_{0}^{12} x \cdot \frac{1}{12}\, dx = \frac{1}{12}\int_0^{12} x\, dx$$

Шаг 3. Берём интеграл:

$$\frac{1}{12} \cdot \left.\frac{x^2}{2}\right|_0^{12} = \frac{1}{12} \cdot \frac{144}{2} = \frac{72}{12} = 6$$

Проверим наш ответ: по формуле $\dfrac{a+b}{2} = \dfrac{0+12}{2} = 6$ ✅ И это логично: плотность симметрична относительно середины отрезка.

Ответ: $E(X) = 6$ минут


Пример 5 (средний): треугольная плотность

Случайная величина задана плотностью $p(x) = 2x$ при $x \in [0; 1]$ и $p(x) = 0$ вне этого отрезка. Найди $E(X)$.

Решение:

Шаг 1. Сначала проверим, что это вообще плотность — интеграл по всей прямой должен равняться единице:

$$\int_0^1 2x\, dx = \left. x^2 \right|_0^1 = 1 - 0 = 1 \ \checkmark$$

Шаг 2. Считаем матожидание:

$$E(X) = \int_0^1 x \cdot 2x\, dx = \int_0^1 2x^2\, dx$$

Шаг 3. Берём интеграл:

$$\left. \frac{2x^3}{3} \right|_0^1 = \frac{2}{3} - 0 = \frac{2}{3} \approx 0{,}667$$

Шаг 4. Проверим на разумность. Плотность растёт линейно: около нуля масса маленькая, около единицы — большая. Значит, центр тяжести должен быть смещён вправо от середины отрезка, то есть больше $0{,}5$. Получили $0{,}667$ — сдвиг вправо есть ✅

Ответ: $E(X) = \dfrac{2}{3}$

📌 Обрати внимание на шаг 1. Проверка нормировки — не ритуал. Если бы кто-то дал тебе «плотность» $p(x) = x$ на $[0;1]$, её интеграл равнялся бы $0{,}5$, и любые дальнейшие вычисления были бы мусором. Всегда проверяй нормировку, прежде чем считать матожидание.


Пример 6 (сложный): показательное распределение

Время до отказа сервера $X$ (в часах) имеет показательное распределение с плотностью $p(x) = \lambda e^{-\lambda x}$ при $x \geq 0$ и $p(x) = 0$ при $x < 0$, где $\lambda = 0{,}004$. Найди среднее время до отказа.

Решение:

Шаг 1. Запишем интеграл:

$$E(X) = \int_0^{+\infty} x \cdot \lambda e^{-\lambda x}\, dx$$

Шаг 2. Берём по частям. Положим $u = x$, $dv = \lambda e^{-\lambda x} dx$. Тогда $du = dx$, а $v = -e^{-\lambda x}$ (проверка: производная $-e^{-\lambda x}$ равна $\lambda e^{-\lambda x}$ ✅).

$$E(X) = \left. \left(-x e^{-\lambda x}\right) \right|_0^{+\infty} + \int_0^{+\infty} e^{-\lambda x}\, dx$$

Шаг 3. Разберёмся с первым слагаемым. При $x \to +\infty$ экспонента $e^{-\lambda x}$ убывает быстрее, чем растёт $x$, поэтому $x e^{-\lambda x} \to 0$. При $x = 0$ выражение тоже равно нулю. Значит, первое слагаемое даёт 0.

Шаг 4. Второй интеграл:

$$\int_0^{+\infty} e^{-\lambda x}\, dx = \left. \left(-\frac{1}{\lambda} e^{-\lambda x}\right) \right|_0^{+\infty} = 0 - \left(-\frac{1}{\lambda}\right) = \frac{1}{\lambda}$$

Шаг 5. Итого $E(X) = \dfrac{1}{\lambda}$. Подставляем $\lambda = 0{,}004$:

$$E(X) = \frac{1}{0{,}004} = 250 \text{ часов}$$

Проверим наш ответ: параметр $\lambda$ — это «интенсивность отказов», отказов в час. Если сервер ломается 0,004 раза в час, то один отказ приходится примерно на $1/0{,}004 = 250$ часов. Размерность и смысл сходятся ✅

Ответ: $E(X) = 250$ часов

📌 Формула $E(X) = 1/\lambda$ — рабочая лошадка в надёжности, теории очередей и оценке latency. И заметь красивую перекличку с геометрическим распределением из примера 3: там ждать события с вероятностью $p$ надо в среднем $1/p$ шагов, здесь ждать события с интенсивностью $\lambda$ надо в среднем $1/\lambda$ времени. Показательное распределение — непрерывный аналог геометрического.

Почему это важно

Непрерывное матожидание — это то, что реально вычисляется под капотом почти всех вероятностных моделей в ML. Когда вариационный автоэнкодер (VAE) оптимизирует ELBO, там стоит $\mathbb{E}_{z \sim q(z|x)}[\log p(x|z)]$ — матожидание по непрерывному распределению латентного кода. Когда байесовская модель делает предсказание, она усредняет по апостериорному распределению параметров: $\mathbb{E}_{\theta \sim p(\theta|D)}[f_\theta(x)]$. Интегралы в этих формулах чаще всего не берутся аналитически, и их заменяют выборочными средними (Монте-Карло) — но объект, который оценивают, это всегда интеграл $\int x p(x) dx$ в той или иной обёртке.

Для инженера практический вывод такой: если ты умеешь читать запись $\mathbb{E}_{x \sim p}[g(x)]$ как «взвешенное среднее $g$ по плотности $p$», ты можешь читать почти любую формулу в ML-статье. А если не умеешь — каждая формула выглядит как непонятная закорючка.


Матожидание как «среднее на длинной дистанции»

Интуиция

У матожидания есть вторая жизнь — экспериментальная. Пусть ты много раз повторяешь один и тот же случайный опыт и записываешь результаты $X_1, X_2, \dots, X_n$. Возьми обычное среднее арифметическое:

$$\overline{X}_n = \frac{X_1 + X_2 + \dots + X_n}{n}$$

Это случайная величина: при каждом новом наборе экспериментов получится другое число. Но чем больше $n$, тем меньше она гуляет, и тем ближе прижимается к $E(X)$. Брось кубик 10 раз — среднее может оказаться и 2,9, и 4,1. Брось 10 000 раз — среднее почти наверняка будет между 3,45 и 3,55.

Почему так — строго разбирается в уроке 242 (закон больших чисел), и там же выясняется, при каких условиях это верно, а при каких ломается. Сейчас нам достаточно рабочей интуиции: матожидание — это то, к чему сходится выборочное среднее. Формула $\sum x_i p_i$ и «усреднить много опытов» — два способа добраться до одного числа: первый теоретический, второй экспериментальный.

Эта двойственность — самая полезная мысль урока для практика. Она объясняет, что мы вообще делаем в машинном обучении:

  • Настоящая цель — минимизировать $\mathbb{E}_{(x,y) \sim \mathcal{D}}[\ell(f(x), y)]$, ожидаемую потерю на всём распределении данных $\mathcal{D}$
  • Распределение $\mathcal{D}$ нам недоступно: мы не знаем, как устроен весь поток данных мира
  • Зато у нас есть выборка — обучающий датасет. И мы минимизируем выборочное среднее $\frac{1}{n}\sum_{i=1}^n \ell(f(x_i), y_i)$
  • Это называется минимизацией эмпирического риска (Empirical Risk Minimization, ERM), и вся её законность держится ровно на том, что выборочное среднее приближает матожидание

📌 И вот отсюда сразу видно, откуда берётся переобучение. Выборочное среднее приближает матожидание, если выборка фиксирована, а функция — тоже. Но мы делаем хитрее: мы подбираем функцию так, чтобы выборочное среднее было минимальным. Модель может «подогнаться» под конкретные $n$ точек и получить эмпирический риск почти ноль, при этом настоящее матожидание ошибки останется огромным. Разрыв между «средним по выборке» и «матожиданием» — это буквально определение переобучения. Валидационная выборка нужна ровно затем, чтобы получить честную оценку матожидания на данных, которые в подгонке не участвовали.

Пример 7 (средний): А/В-тест и практический смысл матожидания

Новый алгоритм рекомендаций увеличивает средний чек с вероятностью $0{,}6$ на 40 ₽, с вероятностью $0{,}25$ не меняет его, и с вероятностью $0{,}15$ уменьшает на 120 ₽. Стоит ли катить его на всех пользователей, если раскатка стоит 30 ₽ на пользователя?

Решение:

Шаг 1. Пусть $X$ — изменение чека на одном пользователе. Значения и вероятности:

  • $+40$ с вероятностью $0{,}6$
  • $0$ с вероятностью $0{,}25$
  • $-120$ с вероятностью $0{,}15$

Шаг 2. Проверим сумму вероятностей: $0{,}6 + 0{,}25 + 0{,}15 = 1$ ✅

Шаг 3. Считаем матожидание выигрыша:

$$E(X) = 40 \cdot 0{,}6 + 0 \cdot 0{,}25 + (-120) \cdot 0{,}15 = 24 + 0 - 18 = 6$$

Шаг 4. Сравниваем с ценой раскатки: ожидаемый прирост 6 ₽ на пользователя, а стоимость раскатки — 30 ₽ на пользователя. Чистое ожидаемое изменение: $6 - 30 = -24$ ₽.

Шаг 5. Интерпретация: несмотря на то что «в большинстве случаев (60%) становится лучше», в среднем изменение убыточно — редкий, но тяжёлый минус в 120 ₽ съедает выигрыш, а стоимость внедрения добивает.

Ответ: $E(X) = 6$ ₽ прироста, что меньше 30 ₽ затрат; катить не стоит, чистое ожидание $-24$ ₽ на пользователя.

📌 Здесь виден классический капкан: «в 60% случаев лучше» и «в среднем лучше» — разные утверждения. Первое — про медиану-подобную характеристику, второе — про центр тяжести. Матожидание учитывает не только частоту, но и размер исходов.

Почему это важно

Связка «матожидание ↔ среднее по многим опытам» — фундамент всего Монте-Карло. Не можешь взять интеграл $\int g(x)p(x)dx$? Насэмплируй $n$ точек из $p$, посчитай $\frac{1}{n}\sum g(x_i)$ — и получишь оценку. Так работает MC-dropout для оценки неопределённости, так оценивается ожидаемая награда в policy gradient, так считается почти любая байесовская величина в практических пайплайнах. Знак $\mathbb{E}$ в статье и цикл по батчу в коде — это одно и то же, увиденное с разных сторон.


Линейность: главное свойство и главный источник ошибок

Интуиция

Из всех свойств матожидания одно стоит особняком по силе и по частоте использования. Это линейность. Формулируется она в двух кусках, и оба стоит выучить наизусть.

Первый кусок — про константы. Если ты умножаешь случайную величину на число и что-то к ней прибавляешь, центр тяжести двигается ровно так же:

$$E(aX + b) = a\,E(X) + b$$

Интуиция физическая и абсолютно прозрачная: умножение на $a$ — это растяжение линейки в $a$ раз (центр тяжести растягивается вместе с ней), прибавление $b$ — сдвиг всей линейки вправо на $b$ (центр тяжести едет вместе). Массы грузиков при этом не меняются, меняются только координаты. Отсюда, кстати, полезное следствие: $E(c) = c$ для константы и $E(-X) = -E(X)$.

Второй кусок — про сумму двух величин, и вот здесь начинается самое интересное:

$$E(X + Y) = E(X) + E(Y)$$

Это равенство верно всегда. Для любых случайных величин, у которых матожидания существуют. Независимость не нужна. Величины могут быть связаны как угодно жёстко — одна может полностью определять другую, — матожидание суммы всё равно равно сумме матожиданий.

Давай проверим на предельно зависимом примере. Бросаем кость, $X$ — выпавшее число, а $Y = 7 - X$ (число на противоположной грани). Более зависимых величин трудно придумать: зная $X$, ты знаешь $Y$ точно. Считаем: $E(X) = 3{,}5$, $E(Y) = E(7 - X) = 7 - 3{,}5 = 3{,}5$. А сумма $X + Y = 7$ всегда, при любом броске, то есть это константа, и $E(X+Y) = 7$. Сравниваем: $3{,}5 + 3{,}5 = 7$ ✅ Линейность выдержала полную зависимость.

Почему так? Потому что матожидание работает «поэлементно» по элементарным исходам, а не по совместному распределению. В каждом исходе $\omega$ значение суммы — это сумма значений: $(X+Y)(\omega) = X(\omega) + Y(\omega)$. При усреднении по исходам суммы разваливаются на две суммы независимо от того, как исходы устроены. Никакого места, где могла бы понадобиться независимость, в этом рассуждении просто нет.

Свойство (линейность математического ожидания): Для любых случайных величин $X$ и $Y$, имеющих математические ожидания, и любых чисел $a, b, c$ выполняется

$$E(aX + bY + c) = a\,E(X) + b\,E(Y) + c.$$

Независимость $X$ и $Y$ не требуется. В общем случае для $n$ величин:

$$E\left(\sum_{i=1}^{n} a_i X_i\right) = \sum_{i=1}^{n} a_i E(X_i).$$

Докажем для дискретного случая, чтобы было видно, где именно «не нужна независимость». Пусть $(X, Y)$ принимают пары значений $(x_i, y_j)$ с совместными вероятностями $p_{ij}$. Тогда

$$E(X+Y) = \sum_i \sum_j (x_i + y_j) p_{ij} = \sum_i \sum_j x_i p_{ij} + \sum_i \sum_j y_j p_{ij}$$

В первой двойной сумме вынесем $x_i$ и просуммируем по $j$: $\sum_j p_{ij} = P(X = x_i) = p_i$ — это маргинальная вероятность. Получаем $\sum_i x_i p_i = E(X)$. Аналогично вторая сумма даёт $E(Y)$. Разложить $p_{ij}$ в произведение $p_i q_j$ (что как раз и означало бы независимость) нам нигде не потребовалось ✅

А вот с произведением всё иначе.

Свойство: Если $X$ и $Y$ независимы, то

$$E(XY) = E(X)\,E(Y).$$

Без независимости это равенство, вообще говоря, неверно.

Здесь независимость критична, и вот почему: в доказательстве приходится писать $E(XY) = \sum_i\sum_j x_i y_j p_{ij}$ и разваливать двойную сумму на произведение двух — а это возможно только если $p_{ij} = p_i q_j$. Ровно то, чего в случае суммы не требовалось.

Контрпример строится за десять секунд. Возьмём тот же кубик: $X$ — выпавшее число, $Y = X$. Тогда $E(X)E(Y) = 3{,}5 \cdot 3{,}5 = 12{,}25$. А $E(XY) = E(X^2) = \frac{1+4+9+16+25+36}{6} = \frac{91}{6} \approx 15{,}17$. Разница почти три единицы. Величины зависимы — равенство разваливается.

📌 Мнемоника, которая спасает на экзаменах и в проде: сумма — всегда, произведение — только для независимых. Если перепутать, ошибка будет тихой: формула даст правдоподобное число, которое окажется неверным.

Примеры с разбором

Пример 8 (простой): линейное преобразование

Известно, что $E(X) = 12$. Найди $E(5X - 3)$ и $E\!\left(\frac{X - 12}{4}\right)$.

Решение:

Шаг 1. Первое выражение — прямое применение формулы $E(aX+b) = aE(X)+b$ с $a = 5$, $b = -3$:

$$E(5X - 3) = 5 \cdot 12 - 3 = 60 - 3 = 57$$

Шаг 2. Второе выражение перепишем в стандартном виде: $\frac{X-12}{4} = \frac{1}{4}X - 3$, то есть $a = \tfrac14$, $b = -3$:

$$E\!\left(\frac{X-12}{4}\right) = \frac{1}{4}\cdot 12 - 3 = 3 - 3 = 0$$

Шаг 3. Осмыслим второй результат: мы вычли из величины её собственное матожидание и поделили на число — получили величину с нулевым матожиданием. Это ровно первая половина операции стандартизации (z-score), которую в ML делают перед обучением почти всегда. Вторая половина — деление на стандартное отклонение — тема следующего урока.

Ответ: $E(5X-3) = 57$; $E\!\left(\frac{X-12}{4}\right) = 0$


Пример 9 (средний): сумма зависимых величин

Из колоды в 36 карт наугад вытягивают 4 карты без возвращения. Пусть $X$ — число тузов среди вытянутых. Найди $E(X)$.

Решение:

Шаг 1. В лоб задача неприятная: надо находить распределение $X$ (гипергеометрическое), считать четыре вероятности $P(X=0), \dots, P(X=4)$ через сочетания и суммировать. Пойдём другим путём.

Шаг 2. Разложим $X$ на слагаемые. Пусть $I_k = 1$, если $k$-я вытянутая карта — туз, и $I_k = 0$ иначе, $k = 1, 2, 3, 4$. Тогда

$$X = I_1 + I_2 + I_3 + I_4$$

Шаг 3. Найдём $E(I_k)$. Матожидание величины, принимающей значения 0 и 1, равно $1 \cdot P(I_k = 1) + 0 \cdot P(I_k = 0) = P(I_k = 1)$. А вероятность того, что любая конкретная по счёту карта окажется тузом, равна $\tfrac{4}{36} = \tfrac19$ — по симметрии: до того как мы что-то увидели, все позиции в колоде равноправны, и вторая карта имеет ровно такие же шансы быть тузом, как и первая.

Шаг 4. Важно: $I_1, I_2, I_3, I_4$ зависимы — если первая карта туз, шансы второй падают. Но линейность нам независимости и не требует:

$$E(X) = E(I_1) + E(I_2) + E(I_3) + E(I_4) = 4 \cdot \frac{1}{9} = \frac{4}{9} \approx 0{,}444$$

Проверим наш ответ: можно рассуждать иначе. Всего в колоде 4 туза; каждый конкретный туз попадает в выборку из 4 карт с вероятностью $\tfrac{4}{36} = \tfrac19$. Ожидаемое число попавших тузов $= 4 \cdot \tfrac19 = \tfrac49$ ✅ Совпало.

Ответ: $E(X) = \dfrac{4}{9} \approx 0{,}44$

📌 Вот она, сила линейности: задача, требующая гипергеометрического распределения, решена в три строки — просто потому, что нам нужно только среднее, а не всё распределение.


Пример 10 (сложный): произведение зависимых и независимых

Бросают две правильные монеты. Пусть $X$ — число выпавших орлов, $Y$ — число выпавших решек. Найди $E(X)$, $E(Y)$, $E(X+Y)$ и $E(XY)$. Сравни $E(XY)$ с $E(X)E(Y)$.

Решение:

Шаг 1. Распределение $X$: значения 0, 1, 2 с вероятностями $\tfrac14, \tfrac12, \tfrac14$. Тогда

$$E(X) = 0\cdot\frac14 + 1\cdot\frac12 + 2\cdot\frac14 = 0 + 0{,}5 + 0{,}5 = 1$$

По симметрии $E(Y) = 1$.

Шаг 2. Заметим, что $X + Y = 2$ всегда (монет две, каждая дала либо орёл, либо решку). Значит, $E(X+Y) = 2$. Проверяем линейность: $E(X) + E(Y) = 1 + 1 = 2$ ✅ И это при том, что $Y = 2 - X$, то есть величины максимально зависимы.

Шаг 3. Теперь произведение. Поскольку $Y = 2 - X$, имеем $XY = X(2-X) = 2X - X^2$. Найдём распределение $XY$ напрямую:

  • $X = 0 \Rightarrow XY = 0 \cdot 2 = 0$, вероятность $\tfrac14$
  • $X = 1 \Rightarrow XY = 1 \cdot 1 = 1$, вероятность $\tfrac12$
  • $X = 2 \Rightarrow XY = 2 \cdot 0 = 0$, вероятность $\tfrac14$
$$E(XY) = 0\cdot\frac14 + 1\cdot\frac12 + 0\cdot\frac14 = \frac{1}{2}$$

Шаг 4. Сравниваем: $E(X)E(Y) = 1 \cdot 1 = 1$, а $E(XY) = 0{,}5$. Не равны! Величины зависимы, и правило про произведение не работает.

Шаг 5. Для контраста возьмём независимый случай: пусть $U$ — число орлов на первой монете, $V$ — число орлов на второй. Они независимы, $E(U) = E(V) = 0{,}5$. Произведение $UV$ равно 1 только если обе монеты дали орла (вероятность $\tfrac14$), иначе 0. Значит $E(UV) = 0{,}25 = 0{,}5 \cdot 0{,}5 = E(U)E(V)$ ✅

Ответ: $E(X) = E(Y) = 1$, $E(X+Y) = 2 = E(X)+E(Y)$, $E(XY) = 0{,}5 \neq 1 = E(X)E(Y)$; для суммы линейность работает при любой зависимости, для произведения — только при независимости.

📌 Кстати, разница $E(XY) - E(X)E(Y)$ — не просто «ошибка». Это осмысленная величина, называется ковариацией, и она измеряет, насколько величины связаны линейно. Здесь она равна $0{,}5 - 1 = -0{,}5$: отрицательная, потому что больше орлов означает меньше решек. Подробно — в уроке 244.

Почему это важно

Линейность матожидания — это математическая причина, по которой стохастический градиентный спуск вообще имеет право работать. Полная функция потерь — это среднее по всему датасету: $L(\theta) = \frac{1}{N}\sum_{i=1}^N \ell_i(\theta)$. Градиент батча — это среднее градиентов по случайно выбранным $B$ объектам. Возьмём матожидание по случайному выбору батча:

$$\mathbb{E}\left[\frac{1}{B}\sum_{i \in \text{batch}} \nabla \ell_i(\theta)\right] = \frac{1}{B}\sum_{i \in \text{batch}} \mathbb{E}\left[\nabla \ell_i(\theta)\right] = \frac{1}{B} \cdot B \cdot \frac{1}{N}\sum_{j=1}^{N}\nabla \ell_j(\theta) = \nabla L(\theta)$$

Мы вынесли матожидание внутрь суммы — это ровно линейность — и получили: градиент батча есть несмещённая оценка полного градиента. Слово «несмещённая» означает буквально «его матожидание равно тому, что мы хотим оценить». Именно поэтому шумный шаг по батчу в среднем идёт в правильную сторону, и именно поэтому SGD сходится, хотя каждый отдельный шаг может уводить не туда.

И заметь важнейшую деталь: объекты в батче при выборке без возвращения зависимы (если объект №5 попал в батч, шансы объекта №7 слегка меняются). Если бы линейность требовала независимости, всё рассуждение развалилось бы. Она не требует — и не разваливается.


Матожидание функции: закон бессознательного статистика

Интуиция

Очень частая задача: у тебя есть величина $X$, и тебе нужно среднее не от неё самой, а от какой-то функции — $E(X^2)$, $E(e^X)$, $E(\ln X)$, $E(|X - 5|)$. Например, $X$ — предсказание модели, а тебе нужна средняя квадратичная ошибка $E((X - y)^2)$.

Наивный путь: найти распределение новой величины $Y = g(X)$ (то есть выяснить, какие значения она принимает и с какими вероятностями), а потом применить обычную формулу. Путь честный, но часто мучительный: найти распределение $e^X$, когда $X$ нормальная, — отдельная история.

Хорошая новость: этого делать не надо. Работает такая формула:

$$E(g(X)) = \sum_i g(x_i)\, p_i \qquad \text{(дискретный случай)}$$$$E(g(X)) = \int_{-\infty}^{+\infty} g(x)\, p(x)\, dx \qquad \text{(непрерывный случай)}$$

То есть: берёшь старые вероятности (старую плотность), но применяешь к значениям функцию $g$. Распределение $g(X)$ искать не нужно.

У этой формулы есть шуточное, но общепринятое имя — Law of the Unconscious Statistician, «закон бессознательного статистика». Название родилось из того, что статистики применяли её машинально, «не приходя в сознание», как будто она очевидна, — хотя строго её надо доказывать.

Почему она верна, видно из простого рассуждения. Матожидание — это усреднение по элементарным исходам. В исходе $\omega$ величина $g(X)$ принимает значение $g(X(\omega))$, а вес этого исхода — его вероятность. Значит, при усреднении к каждому значению $x_i$ приклеен тот же вес $p_i$, что и раньше, просто само значение теперь пропущено через $g$. Единственная тонкость: если разные $x_i$ дают одинаковое $g(x_i)$, их вероятности в «настоящем» распределении $g(X)$ склеятся — но при суммировании это ничего не меняет, потому что склеенные слагаемые всё равно складываются.

Свойство (закон бессознательного статистика, LOTUS): Пусть $g$ — функция, для которой $E(g(X))$ существует. Тогда

$$E(g(X)) = \sum_i g(x_i) p_i \quad \text{или} \quad E(g(X)) = \int g(x)p(x)\,dx,$$

причём распределение самой величины $g(X)$ находить не требуется.

⚠️ И сразу самое главное предупреждение урока по этой теме: в общем случае $E(g(X)) \neq g(E(X))$. Матожидание нельзя «занести внутрь» нелинейной функции. Оно линейно — и только с линейными функциями коммутирует свободно.

Проверим на кубике. $E(X) = 3{,}5$, значит $(E(X))^2 = 12{,}25$. А $E(X^2) = \frac{1+4+9+16+25+36}{6} = \frac{91}{6} \approx 15{,}17$. Разница есть, и она не случайна: для выпуклой функции (какой является $x^2$) всегда $E(g(X)) \geq g(E(X))$ — это неравенство Йенсена, и мы с ним ещё встретимся в курсе. Для вогнутой (логарифм, корень) — наоборот.

Практическое следствие этого различия огромно. «Средний логарифм» и «логарифм среднего» — разные числа, и именно поэтому среднее геометрическое доходностей не равно среднему арифметическому. «Средний квадрат ошибки» больше «квадрата средней ошибки» — и именно поэтому модель, у которой ошибки $+10$ и $-10$ поровну, имеет нулевую среднюю ошибку и стократный MSE.

Примеры с разбором

Пример 11 (простой): E(X²) через LOTUS

Величина $X$ принимает значения $-2, 0, 3$ с вероятностями $0{,}3;\ 0{,}5;\ 0{,}2$. Найди $E(X)$ и $E(X^2)$.

Решение:

Шаг 1. Обычное матожидание:

$$E(X) = (-2)\cdot 0{,}3 + 0 \cdot 0{,}5 + 3 \cdot 0{,}2 = -0{,}6 + 0 + 0{,}6 = 0$$

Шаг 2. Теперь $E(X^2)$ по LOTUS: возводим в квадрат значения, вероятности оставляем прежними:

$$E(X^2) = (-2)^2 \cdot 0{,}3 + 0^2 \cdot 0{,}5 + 3^2 \cdot 0{,}2 = 4 \cdot 0{,}3 + 0 + 9 \cdot 0{,}2 = 1{,}2 + 1{,}8 = 3$$

Шаг 3. Сравним с $(E(X))^2 = 0^2 = 0$. Разница колоссальная: 3 против 0.

Ответ: $E(X) = 0$, $E(X^2) = 3$; $E(X^2) \neq (E(X))^2$.

📌 Величина с нулевым матожиданием совсем не обязана быть «маленькой» — она просто симметрично разбросана вокруг нуля. Насколько сильно разбросана — измеряет как раз $E(X^2)$ и связанная с ним дисперсия, которой посвящён следующий урок.


Пример 12 (средний): нелинейная функция от непрерывной величины

Величина $X$ равномерно распределена на $[0; 3]$. Найди $E(X^2)$ и $E(\sqrt{X})$.

Решение:

Шаг 1. Плотность: $p(x) = \tfrac13$ на $[0;3]$, ноль вне отрезка.

Шаг 2. По LOTUS считаем $E(X^2)$:

$$E(X^2) = \int_0^3 x^2 \cdot \frac13\, dx = \frac13 \cdot \left.\frac{x^3}{3}\right|_0^3 = \frac13 \cdot \frac{27}{3} = \frac13 \cdot 9 = 3$$

Шаг 3. Теперь $E(\sqrt{X})$. Запишем корень как степень: $\sqrt{x} = x^{1/2}$.

$$E(\sqrt X) = \int_0^3 x^{1/2}\cdot \frac13 \, dx = \frac13 \cdot \left. \frac{x^{3/2}}{3/2}\right|_0^3 = \frac13 \cdot \frac{2}{3} \cdot 3^{3/2}$$

Шаг 4. Посчитаем $3^{3/2} = 3\sqrt3 \approx 5{,}196$:

$$E(\sqrt X) = \frac{2}{9}\cdot 3\sqrt3 = \frac{2\sqrt3}{3} \approx \frac{2 \cdot 1{,}732}{3} \approx 1{,}155$$

Шаг 5. Проверим на разумность. $E(X) = 1{,}5$. Тогда $\sqrt{E(X)} = \sqrt{1{,}5} \approx 1{,}225$, а $E(\sqrt X) \approx 1{,}155$ — меньше. Так и должно быть: корень — вогнутая функция, для неё $E(g(X)) \leq g(E(X))$ ✅ А для выпуклого квадрата наоборот: $E(X^2) = 3$ против $(E(X))^2 = 2{,}25$ — больше ✅

Ответ: $E(X^2) = 3$, $E(\sqrt X) = \dfrac{2\sqrt3}{3} \approx 1{,}155$

Почему это важно

LOTUS — это то, чем ты пользуешься каждый раз, когда пишешь функцию потерь. Cross-entropy loss — это $-\mathbb{E}_{y \sim p}[\log q(y)]$: берёшь истинное распределение $p$ и усредняешь по нему логарифм предсказанных вероятностей. Ты не ищешь распределение величины «$\log q$» — ты просто применяешь $\log$ к значениям и взвешиваешь старыми вероятностями. То же самое с KL-дивергенцией $\mathbb{E}_p[\log \frac{p}{q}]$ и с энтропией $-\mathbb{E}_p[\log p]$.

И различие $E(g(X)) \neq g(E(X))$ — это не педантизм, а источник реальных багов в проде. Классика: посчитать среднее логарифмов цен, а потом взять экспоненту и назвать это «средней ценой». Получится среднее геометрическое, оно систематически ниже арифметического. Или: усреднить предсказанные вероятности нескольких моделей, а потом применить сигмоиду — не то же самое, что применить сигмоиду к каждой и усреднить (первое — усреднение логитов, второе — усреднение вероятностей, и ансамбли работают по-разному в этих двух режимах).


Индикаторы: приём, который решает нерешаемое

Интуиция

Есть один трюк, который по соотношению «простота / мощность» не имеет равных во всей элементарной теории вероятностей. Он состоит из одной формулы и одного наблюдения.

Формула. Пусть $A$ — какое-то событие. Определим индикатор этого события — случайную величину

$$I_A = \begin{cases} 1, & \text{если } A \text{ произошло} \\ 0, & \text{если } A \text{ не произошло} \end{cases}$$

Тогда её матожидание считается в одну строку:

$$E(I_A) = 1 \cdot P(A) + 0 \cdot (1 - P(A)) = P(A)$$

Свойство: Математическое ожидание индикатора события равно вероятности этого события:

$$E(I_A) = P(A).$$

Само по себе это выглядит как тавтология и ничего не даёт. Мощь появляется, когда добавляешь второе наблюдение: очень многие «числа объектов» раскладываются в сумму индикаторов. Число тузов в раздаче = сумма индикаторов «$k$-я карта туз». Число совпадений = сумма индикаторов «$k$-й элемент совпал». Число выживших нейронов при dropout = сумма индикаторов «$k$-й нейрон выжил». Число пустых корзин = сумма индикаторов «$k$-я корзина пуста».

А дальше — линейность, которой независимость не нужна. И получается схема из трёх шагов, работающая почти механически:

  1. Разложи величину: $X = I_1 + I_2 + \dots + I_n$
  2. По линейности: $E(X) = E(I_1) + \dots + E(I_n)$
  3. Каждое $E(I_k)$ — это просто вероятность $P(A_k)$, которую обычно легко посчитать по симметрии

Ключевой момент, ради которого всё затевалось: на шаге 2 индикаторы могут быть как угодно зависимы. Это делает приём применимым там, где совместное распределение — кошмар, а ответ нужен один и простой.

Примеры с разбором

Пример 13 (средний): задача о совпадениях (задача Монмора)

Секретарь напечатал $n = 5$ писем и $5$ конвертов с адресами, но разложил письма по конвертам совершенно случайно. Пусть $X$ — число писем, попавших в «свой» конверт. Найди $E(X)$.

Решение:

Шаг 1. Осознаем масштаб проблемы, если решать в лоб. Нужно распределение $X$: вероятности того, что совпало ровно 0, 1, 2, 3, 5 писем (ровно 4 совпадения невозможно — если четыре на месте, пятое тоже). Это классическая задача о беспорядках (субфакториалы), считается неприятно. Нам же нужно только среднее — идём через индикаторы.

Шаг 2. Пусть $I_k = 1$, если $k$-е письмо попало в свой конверт, и $0$ иначе, $k = 1, \dots, 5$. Тогда, очевидно по построению,

$$X = I_1 + I_2 + I_3 + I_4 + I_5$$

Шаг 3. Найдём $E(I_k) = P(k\text{-е письмо в своём конверте})$. Письмо $k$ равновероятно попадает в любой из 5 конвертов, «свой» ровно один:

$$P(I_k = 1) = \frac{1}{5}$$

Шаг 4. Индикаторы зависимы: если письма 1–4 попали в свои конверты, то $I_5 = 1$ гарантированно. Но линейность работает и здесь:

$$E(X) = 5 \cdot \frac{1}{5} = 1$$

Шаг 5. Обобщим на произвольное $n$: $E(I_k) = \tfrac1n$, слагаемых $n$ штук, значит

$$E(X) = n \cdot \frac{1}{n} = 1$$

Ответ: $E(X) = 1$ — причём при любом $n$.

📌 Это один из самых красивых результатов в теории вероятностей. Разложи хоть 5 писем, хоть 5 миллионов — в среднем ровно одно попадёт куда надо. Интуиция тут ломается: кажется, что при большом $n$ совпадений «должно быть больше» (объектов же больше!) или «меньше» (шанс каждого меньше!). А эти два эффекта в точности компенсируют друг друга: $n \cdot \frac1n = 1$.

Тот же результат в переформулировке: перемешай случайно колоду карт и клади её рядом с эталонной колодой, сравнивая позиции. В среднем ровно одна карта окажется на своём месте — что в колоде из 36 карт, что из 52.


Пример 14 (сложный): dropout и ожидаемое число активных нейронов

В скрытом слое нейросети 512 нейронов. На каждой итерации обучения применяется dropout: каждый нейрон независимо отключается с вероятностью $p = 0{,}4$. Найди ожидаемое число активных нейронов. Затем — ожидаемое число активных нейронов, если dropout применяется одновременно к двум слоям по 512 и 256 нейронов с вероятностями отключения $0{,}4$ и $0{,}25$.

Решение:

Шаг 1. Введём индикаторы: $I_k = 1$, если $k$-й нейрон остался активным. Вероятность выжить: $1 - 0{,}4 = 0{,}6$. Значит $E(I_k) = 0{,}6$.

Шаг 2. Число активных нейронов $A = I_1 + I_2 + \dots + I_{512}$. По линейности:

$$E(A) = 512 \cdot 0{,}6 = 307{,}2$$

Шаг 3. Для второго слоя: вероятность выжить $1 - 0{,}25 = 0{,}75$, нейронов 256:

$$E(A_2) = 256 \cdot 0{,}75 = 192$$

Шаг 4. Суммарное ожидаемое число активных нейронов по двум слоям — снова по линейности (слои независимы, но нам это опять-таки неважно):

$$E(A_1 + A_2) = 307{,}2 + 192 = 499{,}2$$

Ответ: $E(A_1) = 307{,}2$ активных нейрона в первом слое; суммарно по двум слоям $499{,}2$.

📌 Число 307,2 — не «ошибка округления», а честный центр тяжести: в конкретной итерации активных нейронов будет целое число (305, 312, 299), но среднее по итерациям — 307,2.

И вот главный инженерный вывод, который прямо следует из этого расчёта. Если во время обучения выход слоя в среднем составляет $0{,}6$ от «полного», а на инференсе dropout выключен и работают все нейроны, масштаб сигнала на инференсе окажется примерно в $1/0{,}6 \approx 1{,}67$ раза больше, чем модель привыкла видеть при обучении. Слои дальше по сети получат вход не того масштаба, и качество просядет. Ровно поэтому существует inverted dropout: на обучении выжившие активации сразу делят на $(1-p)$, чтобы матожидание выхода слоя не менялось: $E\!\left[\frac{I_k}{1-p} x_k\right] = \frac{(1-p)}{1-p} x_k = x_k$. Тогда на инференсе можно вообще ничего не менять. Стандартный dropout в PyTorch и TensorFlow реализован именно так — и это буквально применение формулы $E(aX) = aE(X)$ в коде фреймворка.

Почему это важно

Приём с индикаторами — универсальная отмычка для задач вида «сколько в среднем объектов обладает свойством». В ML он встречается постоянно:

  • Сколько в среднем уникальных объектов попадёт в бутстрэп-выборку размера $n$ из $n$ объектов? Каждый объект не выбран ни разу с вероятностью $(1-\tfrac1n)^n \to e^{-1} \approx 0{,}368$, значит ожидаемая доля уникальных $\approx 0{,}632$ — знаменитая константа из метода .632 bootstrap и из out-of-bag оценки в random forest
  • Сколько в среднем коллизий в хеш-таблице при $n$ ключах и $m$ ячейках? Сумма индикаторов по всем парам ключей, каждый со средним $\tfrac1m$: ожидаемое число коллизий $= \binom{n}{2}\cdot\frac1m$
  • Сколько в среднем документов в корпусе содержат данное слово? Сумма индикаторов вхождения — база для расчёта IDF
  • Сколько в среднем отрицательных примеров попадёт в батч при заданной доле класса? Сумма индикаторов — база для планирования балансировки

Во всех случаях схема одна: разложить в сумму индикаторов, посчитать одну вероятность, умножить на количество.


Когда математического ожидания не существует

Интуиция

Мы всё время писали в определениях оговорку: «при условии абсолютной сходимости». Пора разобраться, зачем она — потому что это не формальность, а вполне живая ситуация, с которой сталкиваются в финансах, в сетевом трафике, в анализе размеров файлов и в оценке ущерба от инцидентов.

Идея простая. Матожидание — это центр тяжести. Но если масса распределена так, что далеко-далеко на хвосте её всё ещё «достаточно много», линейка становится бесконечно тяжёлой на краю, и точки баланса просто не существует. Формально это выражается в расходимости ряда или интеграла $\sum |x_i| p_i$, $\int |x| p(x)dx$.

Такие распределения называют тяжелохвостыми. У них хвост убывает медленно — как степень $1/x^{\alpha}$, а не как экспонента $e^{-x}$. Экспонента давит любой полином, поэтому у показательного и нормального распределений матожидание всегда есть. Степенной хвост полином не давит, и там всё зависит от показателя.

Разберём два классических случая. Они выглядят как математические курьёзы, но оба — про реальные вещи.

Случай первый: распределение Коши

Определение: Стандартное распределение Коши задаётся плотностью

$$p(x) = \frac{1}{\pi(1+x^2)}, \qquad x \in \mathbb{R}.$$

У этого распределения математического ожидания не существует.

Пример 15 (сложный): почему у Коши нет матожидания

Покажем это аккуратно.

Шаг 1. Сначала убедимся, что это действительно плотность:

$$\int_{-\infty}^{+\infty}\frac{dx}{\pi(1+x^2)} = \frac{1}{\pi}\left.\arctan x\right|_{-\infty}^{+\infty} = \frac{1}{\pi}\left(\frac{\pi}{2} - \left(-\frac{\pi}{2}\right)\right) = \frac{1}{\pi}\cdot\pi = 1 \ \checkmark$$

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

Шаг 2. Теперь проверим абсолютную сходимость. Считаем $\int |x| p(x)\,dx$. Из симметрии подынтегральной функции удвоим интеграл по положительной полуоси:

$$\int_{-\infty}^{+\infty}\frac{|x|\,dx}{\pi(1+x^2)} = \frac{2}{\pi}\int_0^{+\infty}\frac{x\,dx}{1+x^2}$$

Шаг 3. Подстановка $u = 1 + x^2$, $du = 2x\,dx$:

$$\frac{2}{\pi}\int \frac{x\,dx}{1+x^2} = \frac{1}{\pi}\ln(1+x^2)$$

Шаг 4. Подставляем пределы: при $x \to +\infty$ выражение $\ln(1+x^2) \to +\infty$. Интеграл расходится.

Шаг 5. Значит, условие абсолютной сходимости нарушено, и $E(X)$ не существует.

Ответ: у распределения Коши математического ожидания нет: $\int |x|p(x)dx = \infty$.

📌 И вот тонкий момент, ради которого стоит на этом задержаться. Кажется, что «по симметрии должно быть 0» — ведь плотность симметрична! Но симметрия даёт только то, что «положительная бесконечность» и «отрицательная бесконечность» уравновешивают друг друга, а $\infty - \infty$ не определено. Формально: если считать $\lim_{T\to\infty}\int_{-T}^{T} x p(x)dx$, получится 0 (главное значение по Коши), но стоит взять несимметричные пределы $\int_{-T}^{2T}$ — и предел будет другим. Ответ зависит от способа подсчёта, а значит, числа «$E(X)$» просто нет. Именно от этого нас страхует требование абсолютной сходимости.

Практический смысл: у Коши выборочное среднее не сходится ни к чему. Возьми 10 наблюдений, посчитай среднее; возьми 10 000 — среднее будет прыгать так же дико. Закон больших чисел (урок 242) для Коши не работает, потому что его условие — существование матожидания — не выполнено. Это отличная проверка на понимание: закон больших чисел не «закон природы», у него есть предпосылка.

Где Коши встречается по-настоящему? Отношение двух независимых нормальных величин с нулевым средним имеет ровно распределение Коши. То есть любое место, где ты делишь одну шумную центрированную величину на другую (отношение сигналов, нормировка на шумный знаменатель, отношение градиентов), — потенциальный источник тяжёлого хвоста. Отсюда практическое правило: средним по отношениям пользоваться опасно, надёжнее медиана или отношение средних.

Случай второй: петербургский парадокс

Пример 16 (сложный): игра, за которую не стоит платить бесконечность

Правила: подбрасываем честную монету до первого орла. Если орёл выпал на $k$-м броске, ты получаешь $2^k$ рублей. Сколько справедливо заплатить за право сыграть?

Решение:

Шаг 1. Найдём распределение выигрыша $X$. Орёл впервые на $k$-м броске — это $k-1$ решка и орёл:

$$P(X = 2^k) = \frac{1}{2^k}, \qquad k = 1, 2, 3, \dots$$

Проверка: $\sum_k 2^{-k} = 1$ ✅

Шаг 2. Считаем матожидание:

$$E(X) = \sum_{k=1}^{\infty} 2^k \cdot \frac{1}{2^k} = \sum_{k=1}^{\infty} 1 = 1 + 1 + 1 + \dots$$

Шаг 3. Каждое слагаемое равно ровно единице. Ряд расходится: $E(X) = +\infty$.

Ответ: матожидание выигрыша бесконечно; «справедливая цена» по критерию матожидания не существует ни для какой конечной суммы.

Шаг 4. А теперь здравый смысл. Заплатишь ли ты за эту игру миллион рублей? Разумеется, нет. С вероятностью $\tfrac12$ ты получишь 2 рубля, с вероятностью $\tfrac34$ — не больше 4 рублей, с вероятностью $\approx 0{,}999$ — не больше 1024 рублей. Медиана выигрыша равна 2 рублям! Матожидание бесконечно только за счёт исчезающе редких, но чудовищно больших выигрышей.

Шаг 5. Посмотрим, что чинит парадокс на практике — конечность банка. Пусть казино не может выплатить больше $2^{20} = 1\,048\,576$ рублей, то есть реальный выигрыш равен $\min(2^k,\ 2^{20})$. Тогда

$$E(X) = \sum_{k=1}^{20} 2^k \cdot \frac{1}{2^k} + \sum_{k=21}^{\infty} 2^{20}\cdot\frac{1}{2^k} = 20 + 2^{20}\cdot \sum_{k=21}^{\infty}\frac{1}{2^k}$$

Шаг 6. Считаем хвост: $\sum_{k=21}^{\infty} 2^{-k} = 2^{-20}$ (это сумма геометрической прогрессии: первый член $2^{-21}$, знаменатель $\tfrac12$, сумма $= \frac{2^{-21}}{1/2} = 2^{-20}$). Значит второе слагаемое равно $2^{20}\cdot 2^{-20} = 1$.

$$E(X) = 20 + 1 = 21 \text{ рубль}$$

Ответ (с ограничением банка): $E(X) = 21$ ₽. Ограничение выплаты миллионом рублей превращает «бесконечность» в 21 рубль.

📌 Вывод отрезвляющий: бесконечное матожидание оказалось крайне неустойчивым. Его создаёт хвост, который в реальности всегда обрезан — банк конечен, время конечно, вселенная конечна. Матожидание, которое целиком держится на хвосте, — плохой ориентир для решения. Даниил Бернулли в 1738 году предложил чинить это иначе: считать матожидание не денег, а полезности $\log(\text{деньги})$; тогда $E(\log X) = \sum_k k \log 2 \cdot 2^{-k} = 2\log 2$ — конечная величина, и «справедливая цена» получается разумной. Так родилась идея функции полезности, на которой стоит вся современная экономика решений.

Почему это важно

В машинном обучении и анализе данных тяжёлые хвосты встречаются постоянно: размеры файлов, длительность сессий, ущерб от инцидентов, доходы, число подписчиков, длина последовательностей в NLP, время ответа при перегрузке. И регулярно происходит одна и та же беда: считают среднее, оно скачет от выборки к выборке, и вместо того чтобы заподозрить тяжёлый хвост, начинают «набирать больше данных». Больше данных не помогает — если хвост достаточно тяжёлый, среднее не стабилизируется никогда.

Практический чек-лист:

  • Если среднее сильно меняется при добавлении данных и сильно отличается от медианы — заподозри тяжёлый хвост
  • Смотри на распределение в логарифмической шкале: степенной хвост становится прямой линией
  • Для метрик используй квантили (p50, p95, p99), а не среднее — квантили существуют всегда, даже у Коши
  • В обучении подрезай градиенты (gradient clipping) и лоссы (Huber вместо MSE) — это буквально «обрезание банка» из петербургского парадокса, превращающее неустойчивое среднее в устойчивое

И заметь связь: Huber loss ведёт себя как квадрат вблизи нуля и как модуль вдали. Модуль растёт медленнее, значит тяжёлый хвост ошибок не разносит матожидание в клочья. Это ровно тот же приём, что и ограничение выплаты казино — только применённый к функции потерь.


ML-контекст: матожидание как каркас машинного обучения

Пройдёмся по местам, где матожидание в ML работает не как украшение формулы, а как несущая конструкция.

Функция потерь — это матожидание

Формальная постановка задачи обучения с учителем звучит так: есть неизвестное распределение $\mathcal{D}$ на парах (объект, ответ). Есть семейство моделей $f_\theta$. Есть функция потерь $\ell$. Нужно найти

$$\theta^* = \arg\min_\theta\ R(\theta), \qquad R(\theta) = \mathbb{E}_{(x,y)\sim\mathcal{D}}\big[\ell(f_\theta(x), y)\big]$$

Величина $R(\theta)$ называется риском — это ожидаемая потеря на «всех данных мира». Её невозможно посчитать: $\mathcal{D}$ неизвестно. Поэтому берут выборку $\{(x_i, y_i)\}_{i=1}^n$ и минимизируют эмпирический риск:

$$\hat R(\theta) = \frac{1}{n}\sum_{i=1}^{n}\ell(f_\theta(x_i), y_i)$$

Вся конструкция держится на том, что $\hat R$ — оценка $R$. Отсюда сразу становятся понятны вещи, которые иначе выглядят как разрозненные эмпирические правила:

  • Почему нужна валидация. $\hat R$ на обучающей выборке — смещённая оценка $R$, потому что мы под эту выборку подбирали $\theta$. Нужна независимая выборка, на которой оценка честная
  • Почему сдвиг распределения (distribution shift) убивает модель. Мы минимизировали матожидание по $\mathcal{D}_{\text{train}}$, а работать модель будет по $\mathcal{D}_{\text{prod}}$. Это разные матожидания одной и той же функции потерь
  • Почему важен способ сэмплирования данных. Если редкий класс в обучении встречается чаще, чем в проде, ты оптимизируешь матожидание по «неправильной» мере. Отсюда вся техника перевзвешивания: домножить потери на веса, чтобы вернуть матожидание к целевому распределению

Ожидаемая награда в RL и зачем дисконтирование

В reinforcement learning агент получает награды $r_0, r_1, r_2, \dots$ на каждом шаге. Цель — максимизировать не сумму наград (она может быть бесконечной), а ожидаемую дисконтированную сумму:

$$G = \sum_{t=0}^{\infty}\gamma^t r_t, \qquad V(s) = \mathbb{E}\big[G \mid s_0 = s\big]$$

где $\gamma \in [0; 1)$ — коэффициент дисконтирования (обычно 0,9–0,999).

Зачем нужна $\gamma$? Матожидание — это ответ. Применим линейность (она работает и для бесконечных сумм при абсолютной сходимости):

$$V(s) = \mathbb{E}\left[\sum_{t=0}^{\infty}\gamma^t r_t\right] = \sum_{t=0}^{\infty}\gamma^t\, \mathbb{E}[r_t]$$

Пусть награды ограничены: $|r_t| \leq R_{\max}$ для всех $t$. Тогда $|\mathbb{E}[r_t]| \leq R_{\max}$, и

$$\left|V(s)\right| \leq \sum_{t=0}^{\infty}\gamma^t R_{\max} = \frac{R_{\max}}{1-\gamma}$$

Мы получили конечную оценку — геометрическая прогрессия со знаменателем $\gamma < 1$ сходится. Без дисконтирования ($\gamma = 1$) в бесконечной задаче ряд $\sum \mathbb{E}[r_t]$ расходится, если награды не стремятся к нулю: агент, получающий по 1 очку за шаг вечно, имеет «ценность» $+\infty$, и сравнить две такие стратегии невозможно — обе бесконечны. Дисконтирование делает матожидание конечным и, значит, стратегии сравнимыми.

📌 Полезная численная интуиция: $\frac{1}{1-\gamma}$ — это «эффективный горизонт планирования». При $\gamma = 0{,}9$ агент фактически смотрит вперёд примерно на 10 шагов, при $\gamma = 0{,}99$ — примерно на 100, при $\gamma = 0{,}999$ — на 1000. Выбирая $\gamma$, ты выбираешь не абстрактный гиперпараметр, а горизонт, на котором агент вообще замечает последствия.

Ожидаемая стоимость ошибки: FP и FN стоят разного

Пример 17 (сложный): выбор порога классификатора по ожидаемой стоимости

Модель ищет мошеннические транзакции. Доля мошеннических операций в потоке — $2\%$. Ложное срабатывание (FP: заблокировали честного клиента) стоит компании 200 ₽ поддержки и раздражения. Пропуск мошенничества (FN) стоит 5000 ₽ прямых потерь.

Есть два кандидата на рабочий порог:

  • Порог A: полнота (TPR) $= 0{,}90$, доля ложных срабатываний (FPR) $= 0{,}05$
  • Порог B: полнота (TPR) $= 0{,}98$, доля ложных срабатываний (FPR) $= 0{,}20$

Какой порог выбрать?

Решение:

Шаг 1. Введём случайную величину $C$ — стоимость обработки одной случайной транзакции. Она принимает значения 0 (всё правильно), 200 (FP) и 5000 (FN). Нам нужно $E(C)$ для каждого порога.

Шаг 2. Разложим по формуле полной вероятности. Транзакция мошенническая с вероятностью $0{,}02$, честная — с вероятностью $0{,}98$.

Ошибка типа FN случается, если транзакция мошенническая и модель её не поймала: $P(\text{FN}) = 0{,}02 \cdot (1 - \text{TPR})$.

Ошибка типа FP случается, если транзакция честная и модель сработала: $P(\text{FP}) = 0{,}98 \cdot \text{FPR}$.

Шаг 3. Считаем для порога A:

$$P(\text{FN}) = 0{,}02 \cdot 0{,}10 = 0{,}002, \qquad P(\text{FP}) = 0{,}98\cdot 0{,}05 = 0{,}049$$$$E(C_A) = 5000 \cdot 0{,}002 + 200 \cdot 0{,}049 = 10 + 9{,}8 = 19{,}8 \text{ ₽}$$

Шаг 4. Считаем для порога B:

$$P(\text{FN}) = 0{,}02\cdot 0{,}02 = 0{,}0004, \qquad P(\text{FP}) = 0{,}98\cdot 0{,}20 = 0{,}196$$$$E(C_B) = 5000\cdot 0{,}0004 + 200\cdot 0{,}196 = 2 + 39{,}2 = 41{,}2 \text{ ₽}$$

Шаг 5. Сравниваем: $19{,}8 < 41{,}2$. Порог A дешевле более чем вдвое, хотя ловит мошенников хуже.

Ответ: порог A, ожидаемая стоимость $19{,}8$ ₽ против $41{,}2$ ₽ у порога B.

📌 Смотри, что здесь произошло. Порог B «лучше» по полноте — ловит 98% мошенников против 90%. Метрика recall однозначно за B. Но честных транзакций в 49 раз больше, чем мошеннических, и рост FPR с 5% до 20% генерирует лавину ложных блокировок. В деньгах побеждает A.

Это главная причина, по которой ROC-AUC и F1 не должны быть последним словом при выборе рабочей точки. Метрика без цен — это неполная постановка задачи. Как только у тебя есть матрица стоимостей, оптимальный порог считается через матожидание, и часто он оказывается совсем не там, где его ставит дефолтное «0,5».

📌 Общий вид формулы для двух классов с ценами $c_{FP}$ и $c_{FN}$ и априорной вероятностью положительного класса $\pi$:

$$E(C) = c_{FN}\cdot \pi \cdot (1 - \text{TPR}) + c_{FP}\cdot(1-\pi)\cdot\text{FPR}$$

Минимизируя это выражение по порогу, получаешь байесовское оптимальное решающее правило: относить объект к положительному классу, когда $P(y=1\mid x) > \dfrac{c_{FP}}{c_{FP}+c_{FN}}$. При равных ценах это даёт классический порог $0{,}5$; при $c_{FN} = 25 c_{FP}$ — порог $\approx 0{,}038$.


Практика: 30 заданий

Базовые (задания 1-10)

Задание 1: Случайная величина $X$ задана таблицей распределения: значения $1,\ 2,\ 5,\ 10$ с вероятностями $0{,}4;\ 0{,}3;\ 0{,}2;\ 0{,}1$. Найди $E(X)$.


Задание 2: Величина $X$ принимает значения $-1,\ 0,\ 4$ с вероятностями $0{,}2$, $p$ и $0{,}3$ соответственно. Найди $p$ и $E(X)$.


Задание 3: Событие $A$ происходит с вероятностью $0{,}35$. Пусть $I_A$ — его индикатор. Найди $E(I_A)$. Затем найди ожидаемое число наступлений $A$ в $20$ независимых повторениях опыта.


Задание 4: Известно, что $E(X) = 4$ и $E(Y) = -2$. Найди $E(3X - 2Y + 7)$ и $E(X+Y)$. Нужна ли для этого независимость $X$ и $Y$?


Задание 5: Величина $X$ равномерно распределена на отрезке $[2; 8]$. Найди $E(X)$ и $E(3X + 1)$.


Задание 6: Плотность величины $X$ равна $p(x) = 3x^2$ при $x\in[0;1]$ и нулю вне отрезка. Найди $E(X)$.


Задание 7: Время между обращениями к API распределено показательно с интенсивностью $\lambda = 0{,}25$ обращения в минуту. Найди среднее время между обращениями и $E(2X+3)$.


Задание 8: Бросают две правильные игральные кости. Найди математическое ожидание суммы выпавших очков.


Задание 9: Страховая компания продаёт полис за $6000$ ₽. Страховой случай происходит с вероятностью $0{,}03$, выплата составляет $150\,000$ ₽. Найди ожидаемую прибыль компании с одного полиса.


Задание 10: Величина $X$ принимает значение $1$ с вероятностью $0{,}7$ и значение $0$ с вероятностью $0{,}3$. Найди $E(X)$, $E(X^2)$ и $\left(E(X)\right)^2$. Что здесь интересного?


Средние (задания 11-20)

Задание 11: Сервис обрабатывает $50$ запросов, каждый завершается ошибкой с вероятностью $0{,}06$ независимо от остальных. Найди ожидаемое число ошибок. Сколько компания в среднем потеряет, если каждая ошибка обходится в $40$ ₽?


Задание 12: Ты подбираешь гиперпараметры случайным поиском. Каждая случайная конфигурация оказывается удачной с вероятностью $0{,}05$ независимо от других. Сколько в среднем конфигураций придётся перебрать до первой удачной (включая её)? Сколько это времени, если одна конфигурация обучается $12$ минут?


Задание 13: Величина $X$ принимает значения $-1,\ 1,\ 2$ с вероятностями $0{,}5;\ 0{,}3;\ 0{,}2$. Найди $E(X)$, $E(X^2)$ и $E(3X^2 - 2X + 1)$.


Задание 14: Плотность величины $X$ равна $p(x) = \dfrac38 x^2$ на отрезке $[0;2]$ и нулю вне его. Найди $E(X)$ и $E(X^2)$. Сравни $E(X^2)$ с $\left(E(X)\right)^2$.


Задание 15: $10$ задач случайно и независимо распределяются между $4$ воркерами (каждая задача равновероятно попадает к любому из них). Найди ожидаемое число воркеров, которым не досталось ни одной задачи.


Задание 16: Величина $X$ имеет плотность $p(x) = \dfrac{1}{x^2}$ при $x\ge 1$ и $p(x) = 0$ при $x < 1$. Существует ли $E(X)$?


Задание 17: Запрос к внешнему сервису падает с вероятностью $0{,}1$ независимо от предыдущих попыток. Клиент делает не более трёх попыток и останавливается при первом успехе. Пусть $X$ — число сделанных попыток. Найди $E(X)$.


Задание 18: Бутстрэп-выборка строится так: из датасета в $1000$ объектов $1000$ раз выбирается случайный объект с возвращением. Найди ожидаемое число различных объектов, попавших в выборку.


Задание 19: В датасете $20$ объектов, из них $6$ принадлежат положительному классу. Формируется батч из $5$ объектов случайной выборкой без возвращения. Найди ожидаемое число объектов положительного класса в батче.


Задание 20: Яркость пикселя $X$ измеряется числом из отрезка $[0;1]$, и в датасете $E(X) = 0{,}45$. Перед подачей в сеть применяется нормализация $Z = \dfrac{X - 0{,}5}{0{,}5}$. Найди $E(Z)$. Какую константу $c$ надо вычитать вместо $0{,}5$, чтобы среднее нормализованного признака было ровно нулём?


Продвинутые (задания 21-30)

Задание 21: Датасет состоит из пяти объектов, потери на которых равны $\ell = (2,\ 4,\ 5,\ 9,\ 10)$. На каждом шаге SGD случайно выбирается батч из двух разных объектов (все $C_5^2 = 10$ пар равновероятны), и делается шаг по среднему батча. Покажи, что среднее по батчу — несмещённая оценка полной функции потерь, и подтверди это прямым перебором.


Задание 22: Модель предсказывает вероятность дефолта по кредиту. Ложное срабатывание (отказали хорошему клиенту) стоит банку $100$ ₽ упущенной маржи, пропуск (выдали кредит дефолтнику) — $900$ ₽ потерь. Найди порог вероятности, начиная с которого выгодно отказывать. Как поступить с заявкой, для которой модель выдала $p = 0{,}12$?


Задание 23: Нейрон получает $100$ входов, каждый вносит вклад $w_k x_k = 0{,}5$. Применяется dropout с вероятностью отключения $p = 0{,}3$. Найди ожидаемое значение суммы на входе нейрона при обучении. Что произойдёт на инференсе, когда dropout выключен? Как это чинит inverted dropout?


Задание 24: В задаче обучения с подкреплением агент на каждом шаге получает награду со средним $E(r_t) = 2$. Коэффициент дисконтирования $\gamma = 0{,}95$. Найди ожидаемую дисконтированную награду на бесконечном горизонте и на горизонте в $30$ шагов. Какой $\gamma$ нужен, чтобы бесконечная ценность не превышала $100$?


Задание 25: Ансамбль из двух моделей предсказывает вероятность положительного класса: первая выдаёт $0{,}2$, вторая $0{,}8$. Истинная метка $y = 1$, качество измеряется логлоссом $\ell = -\ln \hat p$. Сравни две стратегии: усреднить логлоссы двух моделей или посчитать логлосс усреднённого предсказания. Какая величина меньше и почему это общее правило?


Задание 26: Хеширующий трюк (hashing trick) отображает $1000$ различных признаков в $m$ ячеек равномерно и независимо. Найди ожидаемое число пар признаков, попавших в одну ячейку (коллизий), при $m = 10^6$ и при $m = 1000$.


Задание 27: Размеры файлов в хранилище описываются распределением Парето с плотностью $p(x) = \dfrac{\alpha}{x^{\alpha+1}}$ при $x\ge 1$ (в гигабайтах). Найди $E(X)$ как функцию $\alpha$. Существует ли среднее при $\alpha = 1{,}5$? При $\alpha = 0{,}8$?


Задание 28: Инференс модели идёт через кэш: при попадании ответ отдаётся за $2$ мс, при промахе считается сеть — $120$ мс. Доля попаданий $0{,}85$. Найди ожидаемое время ответа. Какой должна быть доля попаданий, чтобы среднее время не превышало $10$ мс?


Задание 29: Величина $X$ равномерно распределена на $[1;5]$. Найди $E(X)$, $E(\ln X)$ и $E\!\left(\frac1X\right)$. Сравни каждый результат с $\ln E(X)$ и $\frac{1}{E(X)}$ и объясни направление неравенств.


Задание 30: В проде положительный класс встречается с вероятностью $0{,}02$. Потеря на объекте положительного класса равна $10$, на отрицательном — $1$. Чтобы модель «видела» редкий класс, обучающие батчи собирают с балансировкой $50/50$. Найди истинный ожидаемый риск, риск, который посчитает наивная балансированная выборка, и покажи, как перевзвешивание возвращает несмещённость.


Частые ошибки

Ошибка 1: заносить матожидание внутрь нелинейной функции

Неправильно: «Средний размер батча $32$, средняя потеря квадратичная, значит $E(X^2) = (E(X))^2$» — или в более живом виде: «средняя точность модели $0{,}9$, значит средняя точность на двух независимых объектах подряд — тоже про $0{,}9$».

Правильно: $E(g(X)) = g(E(X))$ выполняется только для линейных $g$, то есть $g(x) = ax+b$. Для всех остальных функций это неверно, и направление ошибки предсказуемо: для выпуклых $g$ (квадрат, экспонента, логлосс) $E(g(X))\ge g(E(X))$, для вогнутых (логарифм, корень) — наоборот. Пример из урока: у кубика $E(X) = 3{,}5$, $(E(X))^2 = 12{,}25$, а $E(X^2) = 91/6 \approx 15{,}17$.

Почему важно: это самая тихая ошибка во всей теме — формула даёт правдоподобное число, и никакой сигнал тревоги не срабатывает. В проде она проявляется как «усреднили логарифмы цен, взяли экспоненту, получили среднее геометрическое и назвали средней ценой» или как расхождение между усреднением логитов и усреднением вероятностей в ансамбле.


Ошибка 2: применять $E(XY) = E(X)E(Y)$ без независимости

Неправильно: «Ожидаемая выручка равна ожидаемому числу заказов, умноженному на ожидаемый средний чек».

Правильно: это верно, только если число заказов и чек независимы. Обычно они зависимы — в дни распродаж заказов больше, а чек меньше. Тогда $E(XY) = E(X)E(Y) + \operatorname{cov}(X,Y)$, и ковариация в этом примере отрицательна, то есть наивная формула завышает выручку.

Почему важно: для суммы линейность работает при любой зависимости, для произведения — нет. Проверка на кубике: $X$ — очки, $Y = X$; тогда $E(X)E(Y) = 12{,}25$, а $E(XY) = E(X^2)\approx 15{,}17$. Разница почти три единицы там, где «формула выглядела очевидной».


Ошибка 3: усреднять значения, забыв про вероятности

Неправильно: «Доход от показа бывает $0$, $5$ или $300$ рублей, значит в среднем $(0+5+300)/3 \approx 101{,}7$ ₽».

Правильно: среднее арифметическое значений — это матожидание только в одном частном случае: когда все исходы равновероятны. В общем случае каждое значение входит со своим весом: $0\cdot 0{,}97 + 5\cdot 0{,}02 + 300\cdot 0{,}01 = 3{,}1$ ₽.

Почему важно: ошибка в $33$ раза. Она возникает всякий раз, когда данные приходят в виде «списка возможных исходов» без частот — например, из документации API или из таблицы тарифов. Правило простое: увидел список значений — сразу спроси, с какими вероятностями.


Ошибка 4: считать $\int p(x)\,dx$ вместо $\int x\,p(x)\,dx$

Неправильно: «$E(X) = \int_0^1 2x\,dx = 1$» для плотности $p(x) = 2x$ на $[0;1]$.

Правильно: здесь посчитана нормировка, а не матожидание. Матожидание требует множителя $x$: $E(X) = \int_0^1 x\cdot 2x\,dx = \dfrac23$.

Почему важно: у этой ошибки есть встроенный детектор — если ответ получился равным единице, ты почти наверняка посчитал нормировку. И полезная привычка: сначала проверь $\int p = 1$ (это ловит некорректно заданную плотность), потом отдельной строкой считай $\int x\,p$. Две разные строки — две разные проверки.


Ошибка 5: путать матожидание с самым вероятным или типичным значением

Неправильно: «Матожидание числа детей в семье $1{,}7$ — значит, ошибка, детей столько не бывает». Или: «$E(X) = 3$, значит чаще всего выпадает тройка».

Правильно: матожидание — это центр тяжести, а не значение из выборки и не мода. Оно может не совпадать ни с одним возможным значением ($3{,}5$ у кубика), может отличаться от самого вероятного значения (задание 2: мода $0$, матожидание $1$) и может быть далеко от медианы (петербургская игра: медиана $2$ рубля, матожидание бесконечно).

Почему важно: на этой путанице строятся неверные решения. «Средний пользователь тратит $40$ минут» ничего не говорит о том, сколько тратит типичный пользователь, если у распределения тяжёлый хвост. Для описания «типичного» бери медиану, для сложения и планирования суммарных величин — матожидание. Складываются только матожидания: медиана суммы не равна сумме медиан.


Ошибка 6: считать среднее там, где его нет

Неправильно: «Среднее время сессии скачет от выборки к выборке, надо набрать больше данных, тогда стабилизируется».

Правильно: если распределение тяжелохвостое (степенной хвост с $\alpha\le 1$), матожидание не существует, и выборочное среднее не стабилизируется никогда — оно просто растёт с объёмом выборки. Закон больших чисел здесь неприменим, потому что его предпосылка — существование $E(X)$ — не выполнена.

Почему важно: это диагностическая ошибка: человек лечит симптом (шумность) неправильным лекарством (больше данных). Признаки тяжёлого хвоста: среднее сильно больше медианы; среднее заметно меняется при добавлении данных; на логарифмической шкале хвост распределения ложится на прямую. Лечение — квантили вместо среднего, усечённое среднее, Huber loss вместо MSE, gradient clipping.


Ошибка 7: считать, что $E(1/X) = 1/E(X)$

Неправильно: «Средняя латентность $50$ мс, значит средняя пропускная способность — $20$ запросов в секунду».

Правильно: $1/x$ — выпуклая функция на положительной полуоси, поэтому $E(1/X) \ge 1/E(X)$, и равенство достигается только для константы. В задании 29 мы получили $E(1/X)\approx 0{,}4024$ против $1/E(X)\approx 0{,}3333$ — разница более $20\%$.

Почему важно: усреднение обратных величин требует среднего гармонического, а не арифметического. Эта ошибка живёт во всех отчётах, где смешивают «время на операцию» и «операций в секунду», и почти всегда даёт систематическое занижение производительности. То же касается F1-меры: она специально определена как гармоническое среднее precision и recall, потому что арифметическое здесь дало бы неверную агрегацию.


Главное запомнить

📝 Ключевые понятия

Математическое ожидание (дискретный случай): средневзвешенное значений по их вероятностям, $E(X) = \sum_i x_i p_i$. Существует, если ряд сходится абсолютно.

Математическое ожидание (непрерывный случай): та же операция с заменой суммы на интеграл, $E(X) = \int_{-\infty}^{+\infty} x\,p(x)\,dx$. Проверяй нормировку $\int p = 1$ до всех вычислений.

Центр тяжести: $E(X)$ — точка баланса распределения. Она не обязана быть возможным значением, не обязана совпадать с модой и легко утаскивается одним тяжёлым исходом на краю.

Линейность: $E(aX + bY + c) = aE(X) + bE(Y) + c$ — всегда, для любых зависимых величин. Это главный рабочий инструмент темы; именно он делает градиент батча несмещённой оценкой полного градиента.

Произведение: $E(XY) = E(X)E(Y)$ только при независимости. В общем случае $E(XY) = E(X)E(Y) + \operatorname{cov}(X,Y)$.

LOTUS: $E(g(X)) = \sum_i g(x_i)p_i$ или $\int g(x)p(x)\,dx$ — распределение $g(X)$ искать не нужно, старые веса и новые значения.

Нелинейность не коммутирует: $E(g(X)) \neq g(E(X))$. Для выпуклых $g$ — знак $\ge$, для вогнутых — $\le$ (неравенство Йенсена). Отсюда выигрыш ансамблей и разница между средним арифметическим и геометрическим.

Индикаторы: $E(I_A) = P(A)$. Схема из трёх шагов — разложить величину в сумму индикаторов, применить линейность, посчитать одну вероятность — решает задачи, где распределение искать больно (тузы, совпадения, коллизии, пустые корзины, бутстрэп).

Опорные формулы: равномерное на $[a;b]$ — $\frac{a+b}{2}$; показательное с $\lambda$ — $\frac1\lambda$; геометрическое с $p$ — $\frac1p$; биномиальное $B(n,p)$ — $np$; нормальное $\mathcal N(\mu,\sigma^2)$ — $\mu$.

Матожидания может не быть: распределение Коши, петербургская игра, степенной хвост с $\alpha\le 1$. Признак — расходимость $\sum |x_i|p_i$ или $\int|x|p(x)dx$. Тогда выборочное среднее не сходится ни к чему, и работать надо с квантилями.

ML-каркас: обучение — это минимизация $\mathbb{E}_{(x,y)\sim\mathcal D}[\ell(f(x),y)]$, оцениваемого средним по выборке. Разрыв между этим средним и настоящим матожиданием и есть переобучение.


Связь с другими темами курса

Что нужно было знать до этого урока. Ближайший фундамент — урок 236 (плотность вероятности): именно оттуда взята запись $p(x)\,dx$ как «вероятностной массы кусочка», без которой интеграл $\int x\,p(x)dx$ выглядит произвольным. Урок 234 (случайные величины) дал сам объект, который мы усредняем, а урок 235 (функция распределения) — способ описывать его целиком. Из урока 233 (схема Бернулли) мы забрали биномиальную и геометрическую модели: сегодня их средние $np$ и $1/p$ были выведены в две строки через индикаторы и разложение по первому шагу. Наконец, теоремы сложения и умножения (урок 229) — тот аппарат, которым мы считали вероятности внутри каждой задачи, а условная вероятность (урок 230) понадобилась при разложении «по первому шагу».

Что изучить дальше. Следующий урок 238 (дисперсия и стандартное отклонение) — прямое продолжение: дисперсия определяется как $D(X) = E\big((X - E(X))^2\big)$, то есть матожидание от функции матожидания, и вычисляется рабочей формулой $D(X) = E(X^2) - (E(X))^2$ — обе величины из этой формулы мы сегодня уже считали не раз. Урок 239 обобщит это на моменты произвольного порядка, урок 240 систематизирует основные распределения вместе с их $E$ и $D$. Урок 242 (закон больших чисел) строго докажет то, чем мы пользовались как интуицией: выборочное среднее сходится к матожиданию — и покажет, где эта сходимость ломается (привет, Коши). Урок 241 (ЦПТ) добавит к сходимости скорость и форму отклонений, урок 244 (ковариация и корреляция) превратит разницу $E(XY) - E(X)E(Y)$ в самостоятельный инструмент, а уроки 245-246 построят на матожидании статистические оценки — начиная с того, что «несмещённая оценка» определяется буквально через $E$.

Где это нужно в жизни.

💻 В программировании: оценка среднего числа операций (амортизационный анализ хеш-таблиц, ожидаемая глубина рекурсии в quicksort $\approx 2\ln n$), расчёт коллизий и размера хеш-таблицы, планирование ретраев и таймаутов, оценка ожидаемого времени ответа при кэшировании, ёмкостное планирование по среднему трафику.

🤖 В ML/AI: функция потерь как ожидаемый риск, несмещённость градиента батча, inverted dropout, ожидаемая награда и дисконтирование в RL, importance sampling и перевзвешивание классов, выбор порога классификации по ожидаемой стоимости ошибки, Монте-Карло оценки в вариационном выводе и MC-dropout, out-of-bag оценка в случайном лесе.

📊 В Data Science: unit-экономика (LTV, CAC, ожидаемая маржа на пользователя), A/B-тесты и оценка ожидаемого эффекта, прогнозирование спроса, оценка ожидаемых потерь от инцидентов, выбор между средним и медианой при тяжёлых хвостах, расчёт ожидаемого числа уникальных пользователей и коллизий в дедупликации.

🔬 В науке: статистическая физика (средняя энергия системы — это матожидание по распределению Больцмана), теория информации (энтропия $-\mathbb{E}[\log p]$ и KL-дивергенция — обе определяются как матожидания), теория массового обслуживания (средняя длина очереди, среднее время ожидания), актуарные расчёты и теория надёжности (средняя наработка до отказа $1/\lambda$), теория принятия решений и ожидаемая полезность.


Интересные факты

💡 Распределение Коши открыл не Коши — его исследовал Пуассон ещё в 1824 году, за тридцать лет до того, как имя закрепилось. Название прилипло после публичной полемики 1853 года между Огюстеном Коши и Ирене-Жюлем Бьенеме о методе наименьших квадратов: Бьенеме приводил это распределение как контрпример, показывающий, что среднее не всегда лучше отдельного наблюдения, а Коши разбирал его настолько подробно, что потомки решили — значит, его. Ирония в том, что распределение вошло в историю именно как пример, ломающий привычные рассуждения о средних.

💡 Монте-Карло придумали от скуки в больничной палате. В 1946 году Станислав Улам, восстанавливаясь после болезни, раскладывал пасьянс и задумался, какова вероятность его сложить. Комбинаторный расчёт оказался безнадёжным, и Улам сообразил: проще разложить пасьянс сто раз и посчитать долю удач. Он рассказал идею Джону фон Нейману, и метод немедленно ушёл в расчёты по нейтронной диффузии в Лос-Аламосе. Название придумал Николас Метрополис — в честь казино в Монако, где дядя Улама регулярно занимал деньги. Каждая MC-оценка в современном ML — прямой наследник того пасьянса.

💡 Число $1/e$ управляет и наймом. В задаче о секретаре (она же «задача о разборчивой невесте») кандидатов просматривают по одному и решение принимают немедленно. Оптимальная стратегия: пропустить первые $37\%$ кандидатов, запомнив лучшего, а дальше брать первого, кто окажется лучше него. Порог $1/e \approx 0{,}368$ — и вероятность выбрать самого лучшего тоже равна $1/e$, причём она не падает с ростом числа кандидатов. Та же константа, что и в бутстрэпе, только по совсем другому поводу.

💡 Теория, засекреченная во время войны. Абрахам Вальд в 1943-1944 годах разработал последовательный анализ — метод, где число наблюдений само является случайной величиной, а его ожидание считается по знаменитому тождеству Вальда $E(S_N) = E(N)\,E(X)$. Метод сокращал объём приёмочного контроля боеприпасов вдвое, и результаты были признаны настолько ценными, что публикацию засекретили до конца войны. Сегодня это же тождество работает в последовательных A/B-тестах, где решение принимается «как только накопилось достаточно данных».

💡 За критику матожидания дали Нобелевскую премию. Петербургский парадокс подтолкнул Даниила Бернулли к идее ожидаемой полезности, которую фон Нейман и Моргенштерн в 1944 году превратили в строгую аксиоматику. А в 1979 году Канеман и Тверски показали экспериментально, что реальные люди систематически нарушают и её: одинаковые по матожиданию исходы воспринимаются по-разному в зависимости от того, названы они выигрышем или проигрышем. За эту работу — теорию перспектив — Канеман получил Нобелевскую премию по экономике в 2002 году. Вся линия рассуждений стартовала с формулы $\sum x_i p_i$.


Лайфхаки и полезные трюки

1. Ищи, где спрятана сумма индикаторов

Как только в задаче звучит «сколько в среднем объектов обладают свойством», не пытайся искать распределение — раскладывай в сумму индикаторов и считай одну вероятность. Работает даже когда объекты дико зависимы, потому что линейности независимость не нужна.

Пример: «Сколько в среднем пар пользователей попадёт в один шард при $500$ пользователях и $50$ шардах?» Пар $C_{500}^2 = 124\,750$, каждая пара сталкивается с вероятностью $1/50$, ответ $2495$. Три строки вместо страницы комбинаторики.

2. Проверяй ответ границами и симметрией

Матожидание обязано лежать между минимальным и максимальным возможными значениями — это бесплатный детектор арифметических ошибок. А если плотность (или таблица вероятностей) симметрична относительно точки $c$, ответ обязан быть равен $c$, и считать вообще ничего не нужно.

Пример: для суммы очков двух кубиков распределение симметрично относительно $7$ — значит $E = 7$ без всяких вычислений. А если в расчёте вылезло $E = 13$ при максимуме $12$, ищи ошибку, не перепроверяя смысл.

3. Разложение по первому шагу

Когда процесс «повторяется до наступления события», не суммируй ряд — составь уравнение. Обозначь искомое матожидание $m$, распиши первый шаг и заметь, что после неудачи ты оказался в исходной ситуации, то есть впереди снова $m$.

Пример: сколько в среднем бросков кубика до первой шестёрки? $m = 1 + \frac56 m \Rightarrow m = 6$. Тот же приём даёт ожидаемое число попыток до успешного деплоя, до первого попадания в кэш и до срабатывания флаки-теста.

4. Хвостовая формула для целочисленных величин

Для неотрицательной целочисленной $X$ работает $E(X) = \sum_{k\ge 1} P(X\ge k)$. Часто вероятности «не меньше $k$» считаются в одну строку, а поштучные $P(X=k)$ — в три.

Пример: число попыток при не более чем трёх ретраях с вероятностью отказа $0{,}1$: $E(X) = 1 + 0{,}1 + 0{,}01 = 1{,}11$. Считать распределение не пришлось вовсе.

5. Сначала линейность, потом всё остальное

Прежде чем искать распределение сложного выражения, попробуй разбить его линейностью на куски. Сумма, разность, умножение на константу, сдвиг — всё это раскладывается мгновенно и без всяких предположений о зависимости.

Пример: ожидаемая прибыль $= E(\text{выручка}) - E(\text{затраты})$, даже если выручка и затраты связаны между собой. А вот $E(\text{цена}\times\text{количество})$ так разбивать нельзя — там произведение, и нужна независимость.

6. Считай ожидаемую стоимость, а не вероятность ошибки

Любое решение под неопределённостью — это сравнение двух матожиданий в деньгах или во времени. Метрика без цен ошибок (accuracy, F1, recall) не отвечает на вопрос «что делать», потому что не знает, сколько стоит каждый тип промаха.

Пример: при $c_{FP} = 100$ и $c_{FN} = 900$ оптимальный порог равен $\frac{c_{FP}}{c_{FP}+c_{FN}} = 0{,}1$, а не $0{,}5$. Один пересчёт порога часто даёт больше выигрыша, чем неделя тюнинга архитектуры.

7. Сравни среднее с медианой, прежде чем доверять среднему

Дешёвая проверка на тяжёлый хвост: посчитай медиану и среднее на одних и тех же данных. Если среднее сильно больше — распределение перекошено, и все выводы «в среднем у нас...» надо переписывать через квантили.

Пример: латентность из задания 28: медиана $2$ мс, среднее $19{,}7$ мс. Разница в десять раз — сигнал, что среднее описывает не пользователей, а хвост промахов кэша. Для SLA бери p95/p99, а среднее оставь для расчёта суммарной нагрузки — там оно как раз работает, потому что складываются именно матожидания.

8. В коде оценивай матожидание Монте-Карло, но с контролем устойчивости

Если интеграл не берётся, насэмплируй и усредни. Но обязательно проверь стабильность оценки: посчитай среднее на половине выборки и на всей, сравни; постройте бутстрэп-интервал. Если оценка пляшет, дело не в малом $n$, а в хвосте.

Пример: MC-dropout для оценки неопределённости — это $T$ прогонов сети со случайными масками и усреднение предсказаний. Уже при $T = 20$-$50$ оценка обычно устойчива, а если нет — значит модель по-настоящему не уверена, и это сам по себе полезный сигнал.


Заключение

Мы взяли одну формулу — $\sum x_i p_i$ и её непрерывного близнеца $\int x\,p(x)\,dx$ — и увидели, что из неё вырастает почти вся практическая часть теории вероятностей. Центр тяжести распределения. Линейность, работающая при любой зависимости и делающая законным весь стохастический градиентный спуск. Закон бессознательного статистика, позволяющий считать средние от любых функций, не трогая распределений. Индикаторы, превращающие страшные комбинаторные задачи в умножение двух чисел. И граница, за которой матожидания просто нет — там, где хвост слишком тяжёлый.

Самое ценное, что стоит унести из урока, — это привычка различать три вещи, которые в обычной речи называются одним словом «среднее»: матожидание (теоретический центр тяжести), выборочное среднее (то, что реально посчитано на данных) и типичное значение (медиана). Смешение первых двух — это ровно переобучение. Смешение первого и третьего — это все неверные выводы про «среднего пользователя» и «среднюю зарплату». Инженер, который держит эти три понятия раздельно, читает метрики иначе, чем тот, кто их путает.

И держи в голове главную проверку: $E$ можно свободно проносить через сумму и через умножение на константу — и больше ни через что. Через квадрат, логарифм, деление, сигмоиду — нельзя. Половина ошибок в разделе ловится этим единственным правилом.


💡 Совет: заведи привычку, встречая в статье или в коде значок $\mathbb{E}$, задавать себе три вопроса: по какой случайности идёт усреднение, каким распределением она задана и чем эту величину оценивают на практике. Почти всегда ответ будет «по батчу», «эмпирическим распределением данных» и «средним по батчу» — и в этот момент формула из статьи и цикл в коде окончательно склеиваются в одну картинку. Именно после этого статьи по ML начинают читаться как инженерные тексты, а не как заклинания.

В следующем уроке — дисперсия и стандартное отклонение. Матожидание сказало нам, где находится центр распределения, но ничего не сказало о том, насколько сильно значения от него разбегаются. А это критично: две модели с одинаковой средней ошибкой могут вести себя совершенно по-разному — одна ошибается стабильно на чуть-чуть, другая то попадает идеально, то промахивается катастрофически. Инструментом измерения разброса станет $D(X) = E\big((X-E(X))^2\big)$ — то есть снова матожидание, только от хитрой функции. Всё, что ты сегодня научился считать, там понадобится в первой же строке. 🚀

Понял тему? Закрепи в боте! 🚀

Попрактикуйся на задачах и получи персональные рекомендации от AI

💪 Начать тренировку
💬 Есть вопрос? Спроси бота!