Теория вероятностей
Случайные величины
Цели урока
- Понять, что такое случайная величина и зачем она нужна
- Различать дискретные и непрерывные СВ
- Освоить функцию распределения F(x) и плотность f(x)
- Понять парадокс "вероятность точного значения = 0"
- Научиться находить вероятности через распределение
Предварительные знания
- Базовые понятия вероятности
- Независимость событий
Каждый токен, который генерирует GPT, - это случайная величина. Модель не выбирает детерминированно: она строит распределение вероятностей по 50 257 словам словаря и сэмплирует из него. Весь inference - совместное распределение тысяч случайных величин. Случайная величина - математический инструмент, который превращает хаос в числа.
- **GPT inference:** каждый следующий токен - дискретная СВ с распределением по 50 257 значениям
- **Loss как СВ:** функция потерь зависит от случайного mini-batch - поэтому loss прыгает на каждом шаге SGD
- **Gradient как СВ:** в SGD градиент - случайная величина (оценка истинного градиента по случайному батчу). Дисперсия этой СВ определяет скорость сходимости
- **Dropout:** активация нейрона - случайная величина (0 с вероятностью $p$, исходное значение / $(1-p)$ с вероятностью $1-p$)
- **Финансы:** доходность акций - непрерывная СВ, основа всего риск-менеджмента
- **Медицина:** время до события (смерть, рецидив) - непрерывная СВ, модели выживаемости
Колмогоров: математика хаоса
До 1933 года теория вероятностей была "несерьёзной" математикой - набором рецептов для карточных игр. Советский математик Андрей Колмогоров изменил всё, написав книгу на 60 страниц. Он определил случайную величину как **измеримую функцию** из пространства исходов в числовую прямую. Звучит абстрактно? Но это позволило применить к случайности весь аппарат математического анализа - интегралы, пределы, производные. Сегодня loss-функция в PyTorch - случайная величина. Градиент в SGD - случайная величина. Вывод (inference) языковой модели - совместное распределение тысяч случайных величин. Без формализма Колмогорова 1933 года всего этого не существовало бы.
Случайные величины
**Сцена:** языковая модель только что сгенерировала слово "кот". Следующий токен - случайная величина. Не просто "что-то случайное" - полноценный математический объект с распределением по 50 257 значениям, с функцией распределения, с конкретными вероятностями каждого исхода.
Теперь парадокс из физического мира: какова вероятность, что рост случайного человека ровно 175.000000... см с бесконечной точностью? **Ноль.** Вероятность любого точного значения непрерывной величины равна нулю - хотя человек с каким-то ростом существует.
Оба случая - GPT и рост человека - описываются одним инструментом: **случайной величиной**. Функцией, которая каждому исходу эксперимента сопоставляет число, и позволяет работать с этим числом математически.
Случайная величина - это:
Случайная величина $X: \Omega \to \mathbb{R}$ - формально функция на пространстве исходов. Она имеет распределение, может быть дискретной или непрерывной.
Что такое случайная величина?
Что такое случайная величина?
**Случайная величина (СВ)** - это функция, которая каждому исходу эксперимента присваивает число. В GPT следующий токен - дискретная СВ: исходы - все 50 257 токенов словаря, значения - их индексы, распределение - softmax по логитам модели.
Где $\Omega$ - пространство исходов, $\mathbb{R}$ - числовая прямая.
Бросок кубика
Простейшие СВ
$\Omega = \{1, 2, 3, 4, 5, 6\}$ - все возможные исходы. **СВ "число очков":** $X(\omega) = \omega$ Просто возвращает то, что выпало. **СВ "чётность":** $$Y(\omega) = \begin{cases} 1, & \text{если } \omega \text{ чётное} \\ 0, & \text{если } \omega \text{ нечётное} \end{cases}$$ **СВ "квадрат очков":** $Z(\omega) = \omega^2$ Вернёт 1, 4, 9, 16, 25 или 36. Видишь? Из одного эксперимента можно вытащить много разных СВ!
- **Случайные величины** - заглавные буквы: $X, Y, Z$ - **Конкретные значения** - строчные: $x, y, z$ - **$P(X = 3)$** - вероятность, что СВ примет значение 3 - **$P(X \leq 5)$** - вероятность, что значение не больше 5 "$X = 3$" - это **событие**: множество всех исходов, где $X$ принимает значение 3. В ML: "$L > 2.5$" (loss превысил порог) - событие, определённое через СВ $L$.
Бросают две монеты. X = "количество орлов". Какие значения может принимать X?
Исходы: ОО (2 орла), ОР (1 орёл), РО (1 орёл), РР (0 орлов). $X$ может быть 0, 1 или 2. Это **дискретная** случайная величина - принимает конечное число значений.
Дискретные случайные величины
Дискретные случайные величины
СВ называется **дискретной**, если принимает конечное или счётное число значений (можно пронумеровать: 1-е, 2-е, 3-е...).
Дискретная СВ задаётся **таблицей распределения** - списком значений с их вероятностями:
| $X$ | $x_1$ | $x_2$ | ... | $x_n$ |
|---|---|---|---|---|
| $P$ | $p_1$ | $p_2$ | ... | $p_n$ |
Сумма двух кубиков
Полное распределение
$X$ = сумма очков на двух кубиках. Значения: от 2 до 12.
| $X$ | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| $P$ | 1/36 | 2/36 | 3/36 | 4/36 | 5/36 | **6/36** | 5/36 | 4/36 | 3/36 | 2/36 | 1/36 |
**7 - самое вероятное значение!** (6 способов: 1+6, 2+5, 3+4, 4+3, 5+2, 6+1) Проверка: $\frac{1+2+3+4+5+6+5+4+3+2+1}{36} = \frac{36}{36} = 1$ ✓
Бросают монету 3 раза. X = число орлов. Чему равно P(X = 2)?
Всего $2^3 = 8$ равновероятных исходов. Ровно 2 орла: ООР, ОРО, РОО - **3 способа**. $P(X = 2) = 3/8$ Полное распределение: • $P(X=0) = 1/8$ (только РРР) • $P(X=1) = 3/8$ (ОРР, РОР, РРО) • $P(X=2) = 3/8$ (ООР, ОРО, РОО) • $P(X=3) = 1/8$ (только ООО) Это **биномиальное распределение** - изучим позже!
Функция распределения F(x)
Функция распределения F(x)
**Функция распределения** - универсальный способ описать любую СВ (дискретную или непрерывную):
Это вероятность, что СВ примет значение **не больше** $x$.
1. $0 \leq F(x) \leq 1$ - вероятность всегда от 0 до 1 2. $F(x)$ **неубывающая** - больше $x$ → больше или равно $F(x)$ 3. $\lim_{x \to -\infty} F(x) = 0$ - слева от всех значений 4. $\lim_{x \to +\infty} F(x) = 1$ - справа от всех значений 5. **Главная формула:** $P(a < X \leq b) = F(b) - F(a)$
F(x) для кубика
Ступенчатая функция
$F(x) = P(X \leq x)$ для кубика: • $F(x) = 0$ при $x < 1$ • $F(x) = 1/6$ при $1 \leq x < 2$ • $F(x) = 2/6$ при $2 \leq x < 3$ • $F(x) = 3/6$ при $3 \leq x < 4$ • $F(x) = 4/6$ при $4 \leq x < 5$ • $F(x) = 5/6$ при $5 \leq x < 6$ • $F(x) = 1$ при $x \geq 6$ ``` F(x) 1.0 ─────────────────● 5/6 ─────────────● 4/6 ─────────● 3/6 ─────● 2/6 ─● 1/6 ● └─1──2──3──4──5──6──→ x ``` **Лесенка** со скачками в точках 1, 2, 3, 4, 5, 6.
Для кубика F(3.5) = ?
$F(3.5) = P(X \leq 3.5) = P(X \in \{1, 2, 3\}) = 3/6 = 1/2$ Значения 4, 5, 6 больше 3.5, поэтому не входят. Функция распределения определена для **любого** $x$, не только для значений СВ!
〰 Непрерывные случайные величины
〰 Непрерывные случайные величины
СВ **непрерывна**, если может принимать любое значение из интервала (не только целые или дробные - **любое**).
Для непрерывной СВ вероятность **точного** значения равна нулю: $$P(X = a) = 0$$ **Почему?** Потому что значений бесконечно много (несчётно), и каждое получает "нулевую долю" вероятности. **Но!** Это не значит, что событие невозможно. Конкретный рост - это число, хотя $P(\text{рост} = 175.12345...) = 0$. Парадокс разрешается: мы спрашиваем не "точно равно", а "попадает в интервал".
Непрерывная СВ задаётся **плотностью распределения** $f(x)$:
Плотность - это "концентрация вероятности". Высокий $f(x)$ означает, что значения около $x$ более вероятны.
$$F(x) = \int_{-\infty}^{x} f(t)\,dt$$ $$f(x) = F'(x)$$ Плотность - производная функции распределения. Функция распределения - интеграл от плотности.
Равномерное распределение
Время ожидания автобуса
Автобус приходит в случайный момент от 0 до 10 минут. $X \sim U(0, 10)$. **Плотность:** $$f(x) = \begin{cases} 1/10, & 0 \leq x \leq 10 \\ 0, & \text{иначе} \end{cases}$$ **Вероятность ждать от 2 до 5 минут:** $$P(2 \leq X \leq 5) = \int_2^5 \frac{1}{10}\,dx = \frac{5-2}{10} = 0.3 = 30\%$$ **Геометрически:** это площадь прямоугольника под графиком $f(x)$ от 2 до 5.
f(x) - это вероятность значения x
f(x) - это ПЛОТНОСТЬ вероятности. Сама по себе может быть больше 1!
Вероятность - это **площадь под графиком**, а не высота. Например, для $U(0, 0.1)$: $f(x) = 10$ при $0 \leq x \leq 0.1$. $f(x) = 10 > 1$, но $\int_0^{0.1} 10\,dx = 1$ ✓ Плотность - это "вероятность на единицу длины". В нормализующих потоках (normalizing flows) модель явно обучает плотность $f(x)$ - и плотность там запросто принимает значения >> 1, это нормально.
Плотность СВ: f(x) = 3x² при 0 ≤ x ≤ 1, иначе 0. Чему равно P(X > 0.5)?
$$P(X > 0.5) = \int_{0.5}^{1} 3x^2\,dx = x^3 \Big|_{0.5}^{1} = 1^3 - 0.5^3 = 1 - 0.125 = 0.875$$ **87.5%** вероятности сосредоточено в верхней половине интервала. Это потому, что плотность $3x^2$ растёт с $x$ - большие значения более вероятны.
Для непрерывной СВ с плотностью f(x) верно ∫f(x)dx = 1. Почему?
$$\int_{-\infty}^{+\infty} f(x)\,dx = P(-\infty < X < +\infty) = 1$$ Это вероятность, что СВ примет **какое-то** значение. А она всегда равна 1 - что-то обязательно произойдёт! Это **условие нормировки**: общая "площадь под графиком" плотности = 1.
Практика
Практика
Дискретная СВ X: P(X = -1) = 0.2, P(X = 0) = 0.5, P(X = 2) = 0.3. Найдите P(X > 0) и P(-1 < X ≤ 2).
$P(X > 0) = P(X = 2) = 0.3$ $P(-1 < X \leq 2) = P(X = 0) + P(X = 2) = 0.5 + 0.3 = 0.8$ Заметь: $-1 < X$ исключает значение $-1$, а $X \leq 2$ включает значение $2$.
Плотность СВ: f(x) = cx² при 0 ≤ x ≤ 1, иначе 0. Найдите константу c.
$$\int_0^1 cx^2\,dx = c \cdot \frac{x^3}{3}\Big|_0^1 = \frac{c}{3} = 1$$ $$c = 3$$ Проверка: $\int_0^1 3x^2\,dx = x^3\Big|_0^1 = 1$ ✓
Функция распределения: F(x) = 0 при x < 0, F(x) = x² при 0 ≤ x ≤ 1, F(x) = 1 при x > 1. Найдите плотность f(x) и P(0.3 < X ≤ 0.7).
**Плотность:** $$f(x) = F'(x) = \begin{cases} 2x, & 0 \leq x \leq 1 \\ 0, & \text{иначе} \end{cases}$$ **Вероятность:** $$P(0.3 < X \leq 0.7) = F(0.7) - F(0.3) = 0.7^2 - 0.3^2 = 0.49 - 0.09 = 0.4$$ Или через интеграл: $\int_{0.3}^{0.7} 2x\,dx = x^2\Big|_{0.3}^{0.7} = 0.4$
Непрерывная СВ имеет плотность $f(x) = 2x$ на $[0,1]$ и 0 иначе. Чему равна $P(X \leq 0{,}5)$?
$P(X \leq 0{,}5) = \int_0^{0{,}5} 2x\,dx = x^2\Big|_0^{0{,}5} = 0{,}25$. Это значение $F(0{,}5) = (0{,}5)^2$ для треугольной плотности на $[0,1]$.
Случайные величины - фундамент всего
Это центральное понятие, на котором строится вся теория вероятностей и статистика.
- Математическое ожидание — "Среднее" значение СВ - следующий урок!
- Дисперсия — Мера "разброса" значений СВ
- Известные распределения — Биномиальное, Пуассона, нормальное...
- Центральная предельная теорема — Почему всё становится "нормальным"
Ключевые идеи
- **СВ** - функция $X: \Omega \to \mathbb{R}$. Следующий токен GPT - дискретная СВ. Loss на батче - непрерывная СВ. Градиент в SGD - случайная оценка истинного градиента
- **Дискретная СВ:** конечное/счётное число значений, задаётся таблицей $P(X = x_i)$. Распределение softmax в языковой модели - вероятности дискретной СВ по 50 257 токенам
- **Непрерывная СВ:** любые значения из интервала, $P(X = a) = 0$ - это не баг. Вероятность есть только у интервалов: $P(a < X \leq b) = \int_a^b f(x)\,dx$
- **Функция распределения:** $F(x) = P(X \leq x)$ - универсальна для всех СВ. В calibration: хорошо откалиброванная модель имеет CDF предсказаний близкую к диагонали
- **Плотность:** $f(x) = F'(x)$, может быть > 1, вероятность = площадь. Normalizing flows явно обучают $f(x)$ - именно поэтому они позволяют точно вычислять likelihood
Вопросы для размышления
- Вернёмся к парадоксу: как совместить "P(рост = точное значение) = 0" с фактом, что рост является конкретным числом?
- Какие СВ в вашей жизни дискретны, а какие непрерывны? Можно ли моделировать деньги как непрерывную СВ?
- Если в игре урон от меча - СВ с равномерным распределением от 10 до 20, какова вероятность нанести больше 15 урона?
- Почему в биологии часто используют непрерывные модели для дискретных величин (например, количество бактерий)?