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

Геометрическая вероятность

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

Геометрическая вероятность 🎯

Ты обучаешь модель и запускаешь подбор гиперпараметров. Скорость обучения (learning rate) может быть любым числом от $0{,}0001$ до $0{,}1$. Сколько там вариантов? Не десять, не тысяча — бесконечно много. Между $0{,}001$ и $0{,}002$ помещается континуум вещественных чисел, и ни один из них не «выделен» заранее. А тебе нужно ответить на вполне практический вопрос: какова вероятность, что случайно выбранное значение окажется в «хорошей» зоне, где модель сходится?

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

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

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

В этом уроке мы пройдём весь путь: от «точка упала на отрезок» до оценки числа $\pi$ броском миллиона точек, от разлома палки на треугольник до расчёта, почему в 20-мерном пространстве шар занимает одну сорокамиллионную долю куба — и что из этого следует для kNN, метрик близости и всей геометрии эмбеддингов.

🎯 Ты узнаешь:

  • Почему классическое определение вероятности ломается на бесконечном числе исходов и как его чинит отношение мер $P = \frac{\mu(A)}{\mu(\Omega)}$
  • Как решать одно-, двух- и трёхмерные геометрические задачи: встреча двух людей, разлом палки на треугольник, игла Бюффона
  • В чём суть парадокса Бертрана и почему три «правильных» ответа на один вопрос — это не ошибка математики, а ошибка постановки
  • Как из геометрической вероятности напрямую вырастает метод Монте-Карло, и почему он единственный работоспособный способ интегрировать в высоких размерностях
  • Что такое проклятие размерности в точных числах: доля объёма шара во вписывающем кубе и что это значит для kNN, случайного поиска гиперпараметров и dropout

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

Первая настоящая геометрическая задача о вероятности появилась не в трактате по математике, а в докладе о естественной истории. В 1733 году французский натуралист Жорж-Луи Леклерк, граф де Бюффон — тот самый, что написал 36-томную «Естественную историю», — выступил в Парижской академии наук с работой «Мемуар об игре франк-карро» (jeu de franc-carreau). Игра была простая: на пол, выложенный квадратной плиткой, бросают монету, и игрок выигрывает, если монета целиком помещается внутри одной плитки, не задев швов. Бюффон задал вопрос, который до него никто всерьёз не ставил: как посчитать шансы, если исходов — положений монеты — бесконечно много?

Ответ Бюффона был революционным по простоте: считай площади. Множество центров монеты, при которых она не касается шва, — это квадрат поменьше внутри плитки. Вероятность — отношение его площади к площади плитки. В полной публикации 1777 года («Опыт нравственной арифметики») Бюффон пошёл дальше и заменил монету иглой, добавив второе измерение задачи — угол наклона. Так родилась задача об игле Бюффона, и в ответе неожиданно вылезло число $\pi$. Впервые в истории геометрическая константа была связана со случайностью — и, что важнее, впервые появилась мысль, что $\pi$ можно измерить экспериментально, просто бросая иглу и считая пересечения.

Строгую критику новой идеи навёл французский математик Жозеф Бертран в книге «Calcul des probabilités» (1889). Он привёл пример задачи о случайной хорде круга, в которой три совершенно естественных способа понимать слово «наудачу» дают три разных ответа: $1/3$, $1/2$ и $1/4$. Парадокс Бертрана на полвека стал главным аргументом скептиков против «геометрической» вероятности — пока в 1933 году Андрей Николаевич Колмогоров не выпустил «Основные понятия теории вероятностей», где показал: вероятность — это мера на множестве исходов, и задать её означает явным образом указать эту меру. Никакого «естественного» распределения из воздуха не берётся; «наудачу» без уточнения — не постановка задачи. Парадокс Бертрана превратился из скандала в учебный пример.

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


Почему классическое определение ломается

Интуиция

Давай разберёмся, где именно трескается конструкция из урока 227. Классическая формула выглядела так:

$$P(A) = \frac{m}{n},$$

где $n$ — общее число равновозможных элементарных исходов, а $m$ — число благоприятных. Два требования: исходов конечное число, и они равновозможны.

Представь, что автобус ходит строго раз в 20 минут, а ты приходишь на остановку в случайный момент. Вопрос: какова вероятность, что ждать придётся меньше 5 минут? Момент твоего прихода — это вещественное число из отрезка $[0; 20)$. Сколько таких моментов? Континуум. Сколько благоприятных (тех, что попадают в последние 5 минут интервала)? Тоже континуум. Формула $m/n$ превращается в $\frac{\infty}{\infty}$ и молчит.

Хуже того, попытка «спасти» классику подсчётом исходов приводит к абсурду. Возьмём один-единственный момент времени — скажем, ровно 7 минут 13,000... секунд. Какова вероятность попасть точно в него? Если приписать ей любое положительное число $\varepsilon > 0$, то, взяв $\lceil 1/\varepsilon \rceil + 1$ различных моментов, мы получим суммарную вероятность больше единицы — противоречие. Значит, вероятность каждого отдельного исхода равна нулю. И вот тут классическое определение окончательно теряет смысл: сумма нулей не даёт $0{,}25$, сколько их ни складывай в обычном смысле.

Ключ к решению — сменить то, что мы считаем. Не количество исходов, а их «сколько места они занимают». Вместо счёта — мера: длина для прямой, площадь для плоскости, объём для пространства. Отрезок «последние 5 минут» имеет длину 5, весь интервал — длину 20, и вероятность естественно определить как $5/20 = 0{,}25$. Отдельная точка имеет длину 0 — и её нулевая вероятность перестаёт быть проблемой, становясь честным свойством меры.

Определение: Событие называется невозможным, если оно не может произойти ни при каком исходе опыта. Событие вероятности нуль в непрерывной модели не обязано быть невозможным: «точка попала ровно в середину отрезка» имеет вероятность $0$, но вполне может случиться.

Это первое место, где непрерывная вероятность ломает школьную интуицию, и его стоит запомнить сразу. Ноль вероятности $\ne$ невозможность. Единица вероятности $\ne$ гарантия. Формально говорят: событие происходит почти наверное (almost surely), если его вероятность равна единице.

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

В машинном обучении ты почти никогда не работаешь с конечным множеством исходов. Вес нейрона — вещественное число. Значение признака после стандартизации — вещественное число. Выход сигмоиды — вещественное число из $(0;1)$. Когда ты пишешь np.random.uniform(0, 1), ты запрашиваешь исход из континуума, и вопрос «какова вероятность получить ровно $0{,}5$» имеет ответ «ноль» — а вопрос «какова вероятность получить число из $[0{,}49; 0{,}51]$» имеет ответ $0{,}02$. Разница между этими двумя вопросами — ровно та, ради которой и придумали геометрическую вероятность.


Вероятность как отношение мер

Интуиция

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

Это и есть вся геометрическая вероятность, целиком, в одном предложении. Остальное — техника вычисления площадей.

Определение: Пусть множество всех исходов опыта — это область $\Omega$ (отрезок, плоская фигура, тело в пространстве) с конечной ненулевой мерой $\mu(\Omega)$, и точка бросается в $\Omega$ наудачу — то есть вероятность попадания в любую подобласть зависит только от её меры, но не от формы и расположения. Тогда для события $A$, отвечающего подобласти $A \subseteq \Omega$:

$$P(A) = \frac{\mu(A)}{\mu(\Omega)}$$

Здесь $\mu$ — мера: длина в одномерном случае, площадь в двумерном, объём в трёхмерном, $n$-мерный объём в общем.

Разберём по шагам, что зашито в это определение и почему каждое слово на месте.

«Конечная ненулевая мера». Если $\mu(\Omega) = 0$, делить не на что. Если $\mu(\Omega) = \infty$ — например, «выбери наудачу точку на всей числовой прямой» — равномерного распределения не существует вовсе: любой отрезок конечной длины получил бы вероятность $0$, а их объединение — вся прямая — должно давать $1$. Это фундаментальное ограничение: равномерного распределения на бесконечной области не бывает. Именно поэтому в ML при инициализации весов всегда указывают границы: uniform(-a, a), а не «просто равномерно».

«Зависит только от меры». Это формализация слова «наудачу». Два кусочка одинаковой площади, где бы они ни лежали и как бы ни были изогнуты, равновероятны. Это и есть двумерный аналог «равновозможных исходов» из классического определения.

Свойства, которые сразу следуют из формулы:

  • $0 \le P(A) \le 1$ — потому что $0 \le \mu(A) \le \mu(\Omega)$
  • $P(\Omega) = 1$, $P(\varnothing) = 0$
  • Если $A$ и $B$ не пересекаются, то $\mu(A \cup B) = \mu(A) + \mu(B)$, а значит $P(A \cup B) = P(A) + P(B)$ — аддитивность работает точно как в классике
  • $P(\bar{A}) = 1 - P(A)$ — вероятность дополнения; это будет главный рабочий приём в половине задач урока
  • Вероятность не меняется при сдвиге и повороте области — мера инвариантна относительно движений

Три «этажа» размерности:

  • 1D: $\Omega$ — отрезок, $\mu$ — длина. $P = \dfrac{\text{длина благоприятной части}}{\text{длина всего отрезка}}$
  • 2D: $\Omega$ — плоская фигура, $\mu$ — площадь. $P = \dfrac{S_{\text{благ}}}{S_{\Omega}}$
  • 3D: $\Omega$ — тело, $\mu$ — объём. $P = \dfrac{V_{\text{благ}}}{V_{\Omega}}$

И — забегая вперёд — $n$D: $\Omega \subset \mathbb{R}^n$, $\mu$ — $n$-мерный объём. Ровно этот случай и понадобится, когда мы дойдём до проклятия размерности.

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

Пример 1 (простой): точка наудачу на отрезке

На отрезке $[0; 12]$ наудачу выбирается точка. Найди вероятность того, что она попадёт в отрезок $[7; 10]$.

Решение:

Шаг 1. Определим область всех исходов: $\Omega = [0; 12]$, её мера — длина $\mu(\Omega) = 12 - 0 = 12$.

Шаг 2. Благоприятная область: $A = [7; 10]$, её длина $\mu(A) = 10 - 7 = 3$.

Шаг 3. Применим формулу отношения мер:

$$P(A) = \frac{3}{12} = \frac{1}{4} = 0{,}25$$

Проверим наш ответ: отрезок $[7;10]$ — это ровно четверть от двенадцати, интуиция согласна ✅

Ответ: $P = 0{,}25$


Пример 2 (средний): опоздание на автобус

Автобус ходит строго каждые 15 минут. Ты приходишь на остановку в случайный момент. Какова вероятность, что ждать придётся:

а) меньше 4 минут; б) больше 10 минут; в) от 5 до 9 минут?

Решение:

Шаг 1. Обозначим через $x$ время (в минутах), прошедшее с момента ухода предыдущего автобуса до твоего прихода. Тогда $x$ равномерно распределено на $[0; 15]$, $\mu(\Omega) = 15$.

Шаг 2. Время ожидания равно $15 - x$. Переведём каждое условие в условие на $x$.

а) $15 - x < 4 \Leftrightarrow x > 11$. Благоприятная область: $(11; 15]$, длина $4$.

$$P = \frac{4}{15} \approx 0{,}267$$

б) $15 - x > 10 \Leftrightarrow x < 5$. Благоприятная область: $[0; 5)$, длина $5$.

$$P = \frac{5}{15} = \frac{1}{3} \approx 0{,}333$$

в) $5 < 15 - x < 9 \Leftrightarrow 6 < x < 10$. Длина $10 - 6 = 4$.

$$P = \frac{4}{15} \approx 0{,}267$$

Шаг 3. Проверка на здравый смысл: пункт (а) требует попасть в последние 4 минуты интервала, пункт (в) — в промежуток длиной тоже 4 минуты. Вероятности совпали — и это правильно: при равномерном распределении важна только длина, а не то, где именно кусок лежит. Это прямое следствие инвариантности меры относительно сдвига.

Ответ: а) $4/15 \approx 0{,}267$; б) $1/3 \approx 0{,}333$; в) $4/15 \approx 0{,}267$


Пример 3 (сложный): обрыв соединения

Сеанс связи с сервером длится ровно 60 секунд. В случайный момент этого интервала происходит короткий сбой сети. Пакет данных отправляется в момент $t$ и считается потерянным, если сбой произошёл в интервале $[t - 3; t + 3]$ (то есть в пределах 3 секунд от отправки). Пакеты отправляются в моменты $t = 10$ и $t = 55$ секунд. Какова вероятность, что потерян будет хотя бы один пакет?

Решение:

Шаг 1. Область исходов: момент сбоя $s \in [0; 60]$, $\mu(\Omega) = 60$.

Шаг 2. Первый пакет теряется, если $s \in [7; 13]$ — длина $6$.

Шаг 3. Второй пакет теряется, если $s \in [52; 58]$ — длина $6$.

Шаг 4. Эти два интервала не пересекаются ($13 < 52$), поэтому меры складываются:

$$\mu(A_1 \cup A_2) = 6 + 6 = 12$$

Шаг 5.

$$P = \frac{12}{60} = 0{,}2$$

Шаг 6. А теперь важная проверка чувствительности. Что было бы, если бы пакеты отправлялись в моменты $t = 10$ и $t = 14$? Тогда интервалы $[7;13]$ и $[11;17]$ пересекаются по $[11;13]$, и складывать длины напрямую нельзя — общая часть посчиталась бы дважды. Правильно: $\mu = 6 + 6 - 2 = 10$, и $P = 10/60 = 1/6$. Формула включений-исключений в непрерывном случае работает точно так же, как в дискретном — просто вместо количеств у нас длины.

Ответ: $P = 0{,}2$; при сближении моментов отправки до 4 секунд ответ упал бы до $1/6$

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

Отношение мер — это не «ещё одна формула», а фундамент, на котором дальше вырастет вся непрерывная вероятность. Когда в уроке 236 появится плотность вероятности $p(x)$, окажется, что геометрическая вероятность — это частный случай с постоянной плотностью $p(x) = \text{const}$ на области $\Omega$. Формула $P = \mu(A)/\mu(\Omega)$ превратится в интеграл $P(A) = \int_A p(x)\,dx$, а равномерное распределение станет одним из многих. Но именно равномерное распределение — единственное, где не нужно ничего интегрировать: достаточно уметь считать длины, площади и объёмы.

В практике ML равномерное распределение встречается на каждом шагу: инициализация Xavier/Glorot берёт веса из $U[-a; a]$, dropout сравнивает случайное число из $U[0;1]$ с порогом, аугментация выбирает угол поворота из $U[-15°; 15°]$, случайный поиск гиперпараметров сэмплирует точки из многомерного куба. Каждый раз, когда ты видишь uniform, за этим стоит формула отношения мер.


Двумерный случай: задача о встрече

Интуиция

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

Это ключевой приём, и его стоит освоить намертво: два независимых равномерных числа $\Rightarrow$ точка, равномерно распределённая в прямоугольнике. Дальше любое условие вида «$|x - y| < 20$» или «$x + y < 1$» — это просто область на плоскости, площадь которой ты умеешь считать со школы.

Классический сюжет: два человека договорились встретиться. Каждый приходит в случайный момент внутри условленного часа и ждёт заданное время. Встретятся ли они?

Постановка. Двое договорились встретиться между 12:00 и 13:00. Каждый приходит в независимый случайный момент этого часа и ждёт $t = 15$ минут, после чего уходит. Найти вероятность встречи.

Шаг 1. Формализуем. Пусть $x$ — момент прихода первого (в минутах от 12:00), $y$ — второго. Оба независимо равномерны на $[0; 60]$. Значит, точка $(x, y)$ равномерно распределена в квадрате $\Omega = [0;60] \times [0;60]$.

$$S_\Omega = 60 \cdot 60 = 3600$$

Шаг 2. Условие встречи. Первый ждёт 15 минут: он застанет второго, если $y$ попадёт в промежуток $[x; x+15]$. Второй ждёт столько же: он застанет первого, если $x \in [y; y+15]$. Оба условия вместе означают просто:

$$|x - y| \le 15$$

Шаг 3. Рисуем область. Неравенство $|x-y| \le 15$ — это полоса вдоль диагонали квадрата, ограниченная прямыми $y = x + 15$ сверху и $y = x - 15$ снизу.

Шаг 4. Считаем площадь через дополнение. Прямой подсчёт площади шестиугольной полосы возможен, но муторно. Гораздо проще посчитать то, чего мы не хотим: два треугольника в углах, где $|x-y| > 15$.

Верхний треугольник: $y > x + 15$. Его катеты равны $60 - 15 = 45$, площадь $\frac{45^2}{2} = \frac{2025}{2} = 1012{,}5$.

Нижний треугольник симметричен, площадь та же.

$$S_{\text{не встретились}} = 2 \cdot 1012{,}5 = 2025 = 45^2$$

Шаг 5. Собираем ответ.

$$P(\text{встреча}) = 1 - \frac{45^2}{60^2} = 1 - \frac{2025}{3600} = 1 - 0{,}5625 = 0{,}4375 = \frac{7}{16}$$

Ответ: $P = 7/16 = 0{,}4375$, то есть чуть меньше 44%.

Формула задачи о встрече: если оба приходят наудачу в интервал длины $T$ и каждый ждёт время $t$ (при $0 \le t \le T$), то

$$P(\text{встреча}) = 1 - \left(\frac{T - t}{T}\right)^2 = \frac{t(2T - t)}{T^2}$$

Обрати внимание на структуру ответа. Вероятность встречи не линейна по времени ожидания: удвоение $t$ не удваивает шанс. При $t = 15$, $T = 60$ получаем $0{,}4375$; при $t = 30$ — уже $1 - 0{,}25 = 0{,}75$. Дополнительные 15 минут ожидания добавили 31 процентный пункт, а первые 15 минут дали 44 — эффект убывает. Это типичное поведение квадратичной модели, и его полезно чувствовать: чтобы поднять вероятность встречи с 44% до 75%, нужно ждать вдвое дольше, а чтобы поднять её с 75% до 90%, придётся ждать почти всё окно.

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

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

В квадрат со стороной 1 вписан круг. Точка бросается наудачу в квадрат. Найди вероятность попадания в круг.

Решение:

Шаг 1. $S_\Omega = 1^2 = 1$.

Шаг 2. Радиус вписанного круга равен половине стороны: $r = 0{,}5$. Площадь круга:

$$S_{\text{круг}} = \pi r^2 = \pi \cdot 0{,}25 = \frac{\pi}{4}$$

Шаг 3.

$$P = \frac{\pi/4}{1} = \frac{\pi}{4} \approx 0{,}7854$$

Ответ: $P = \pi/4 \approx 0{,}785$

📌 Запомни это число — на нём построен весь метод оценки $\pi$ через Монте-Карло, к которому мы придём чуть позже. Формула $P = \pi/4$ читается в обе стороны: зная $\pi$, можно предсказать долю попаданий; зная долю попаданий, можно оценить $\pi$.


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

Числа $x$ и $y$ независимо выбираются наудачу из $[0;1]$. Найди вероятность того, что $x + y < 1$, и вероятность того, что $x + y < 1{,}4$.

Решение:

Шаг 1. Область исходов — единичный квадрат, $S_\Omega = 1$.

Шаг 2. Первый случай: $x + y < 1$. Это часть квадрата под прямой $y = 1 - x$, то есть прямоугольный треугольник с катетами $1$ и $1$:

$$S = \frac{1 \cdot 1}{2} = 0{,}5 \quad \Rightarrow \quad P = 0{,}5$$

Логично: прямая $x+y=1$ — это диагональ квадрата, она делит его пополам.

Шаг 3. Второй случай: $x + y < 1{,}4$. Прямая $y = 1{,}4 - x$ отсекает угол квадрата сверху справа. Проще посчитать дополнение: область $x + y \ge 1{,}4$ — это треугольник с вершинами $(0{,}4; 1)$, $(1; 0{,}4)$, $(1; 1)$. Его катеты равны $1 - 0{,}4 = 0{,}6$:

$$S_{\text{дополн}} = \frac{0{,}6^2}{2} = \frac{0{,}36}{2} = 0{,}18$$

Шаг 4.

$$P(x+y < 1{,}4) = 1 - 0{,}18 = 0{,}82$$

Проверим наш ответ: сумма двух равномерных чисел лежит в $[0;2]$ со средним $1$. Порог $1{,}4$ заметно выше среднего, поэтому вероятность должна быть заметно больше половины — $0{,}82$ выглядит правдоподобно ✅

Ответ: $P(x+y<1) = 0{,}5$; $P(x+y<1{,}4) = 0{,}82$


Пример 6 (сложный): встреча с разным временем ожидания

Курьер и клиент договорились встретиться между 14:00 и 15:00. Курьер ждёт 10 минут, клиент — 20 минут. Найди вероятность встречи.

Решение:

Шаг 1. $x$ — приход курьера, $y$ — приход клиента, оба равномерны на $[0;60]$. $S_\Omega = 3600$.

Шаг 2. Условие встречи несимметрично. Разберём аккуратно.

Если курьер пришёл первым ($x < y$), он ждёт 10 минут, значит встреча происходит при $y - x \le 10$.

Если клиент пришёл первым ($y < x$), он ждёт 20 минут, значит встреча при $x - y \le 20$.

Объединяя: $-10 \le y - x \le 20$, то есть полоса вдоль диагонали, но несимметричная.

Шаг 3. Считаем дополнение — два разных треугольника.

Треугольник «курьер не дождался»: $y - x > 10$, катеты $60 - 10 = 50$, площадь $\frac{50^2}{2} = 1250$.

Треугольник «клиент не дождался»: $x - y > 20$, катеты $60 - 20 = 40$, площадь $\frac{40^2}{2} = 800$.

Шаг 4.

$$S_{\text{не встретились}} = 1250 + 800 = 2050$$$$P(\text{встреча}) = 1 - \frac{2050}{3600} = 1 - 0{,}56944 \approx 0{,}4306$$

Шаг 5. Проверка. Точной формулой: $P = 1 - \frac{(T-t_1)^2 + (T-t_2)^2}{2T^2}$, где $t_1 = 10$, $t_2 = 20$. Подставим: $1 - \frac{2500 + 1600}{7200} = 1 - \frac{4100}{7200} = 1 - 0{,}56944 = 0{,}43056$ ✅

Заметь любопытное: суммарное «терпение» здесь 30 минут, столько же, сколько если бы каждый ждал по 15. Но вероятность встречи получилась $0{,}4306$ против $0{,}4375$ в симметричном случае. Симметричное распределение терпения выгоднее. Это прямое следствие того, что квадратичная функция выпукла: $(T-t_1)^2 + (T-t_2)^2$ минимальна при $t_1 = t_2$ при фиксированной сумме. Красивый пример, где геометрия даёт нетривиальный управленческий вывод.

Ответ: $P \approx 0{,}431$

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

Приём «две случайные величины $\to$ точка в квадрате $\to$ площадь» — это буквально прототип того, как в машинном обучении работают с совместными распределениями. Когда в уроке 243 появятся многомерные случайные величины, а в 244 — ковариация, ты обнаружишь, что всё это те же самые области на плоскости, только с переменной плотностью. Условие «$|x - y| < t$» — это, по сути, ядро оценки близости; полоса вдоль диагонали — множество «похожих пар». В рекомендательных системах, в contrastive learning, в поиске дубликатов ты постоянно считаешь долю пар, у которых расстояние меньше порога. Геометрическая вероятность даёт этому точный смысл: доля площади полосы.


Задача о разломе палки: когда область — треугольник

Интуиция

Есть задача, которую стоит разобрать отдельно, потому что она учит важнейшему навыку: правильно выбирать область исходов. Формулировка обманчиво проста.

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

Шаг 1. Формализация. Пусть точки разлома — $x$ и $y$, независимо равномерные на $[0;1]$. Точка $(x,y)$ равномерна в единичном квадрате, $S_\Omega = 1$.

Шаг 2. Длины кусков. Здесь первая ловушка: куски зависят от того, какая точка левее. Обозначим $a = \min(x,y)$, $b = \max(x,y)$. Тогда куски имеют длины:

$$\ell_1 = a, \qquad \ell_2 = b - a, \qquad \ell_3 = 1 - b$$

Шаг 3. Условие существования треугольника. Неравенство треугольника должно выполняться для всех трёх сторон. Но есть более удобная эквивалентная формулировка. Раз $\ell_1 + \ell_2 + \ell_3 = 1$, условие $\ell_1 < \ell_2 + \ell_3$ переписывается как $\ell_1 < 1 - \ell_1$, то есть $\ell_1 < \tfrac12$. Аналогично для двух других.

Ключевое переформулирование: из трёх кусков суммарной длины 1 можно сложить треугольник тогда и только тогда, когда каждый кусок короче половины.

Это гораздо проще, чем возиться с тремя неравенствами треугольника, — и в этом вся красота задачи.

Шаг 4. Переводим в условия на $x, y$. Три условия:

  • $\ell_1 = a < \tfrac12$
  • $\ell_3 = 1 - b < \tfrac12 \Leftrightarrow b > \tfrac12$
  • $\ell_2 = b - a < \tfrac12$

Шаг 5. Рисуем на квадрате. Рассмотрим случай $x < y$ (то есть $a = x$, $b = y$) — это нижний треугольник квадрата под диагональю, площадь $0{,}5$. Условия становятся:

$$x < \tfrac12, \qquad y > \tfrac12, \qquad y - x < \tfrac12$$

Это треугольник с вершинами $(0; \tfrac12)$, $(\tfrac12; \tfrac12)$, $(\tfrac12; 1)$. Катеты равны $\tfrac12$, площадь:

$$S = \frac{1}{2} \cdot \frac{1}{2} \cdot \frac{1}{2} = \frac{1}{8}$$

Шаг 6. Симметрия. Случай $y < x$ даёт зеркально такую же область площади $\tfrac18$.

Шаг 7. Итог.

$$P = \frac{1}{8} + \frac{1}{8} = \frac{1}{4} = 0{,}25$$

Ответ: ровно одна четверть.

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

Вариант, который даёт другой ответ

А теперь — предупреждение, которое готовит нас к парадоксу Бертрана. Изменим процедуру: сначала ломаем палку в случайной точке, затем берём более длинный кусок и ломаем его в случайной точке. Кажется, «то же самое, только по-другому сформулировано». Не то же самое.

Шаг 1. Первый разлом в точке $x \sim U[0;1]$. По симметрии считаем $x < \tfrac12$ (иначе зеркалим), так что длинный кусок имеет длину $1 - x > \tfrac12$.

Шаг 2. Второй разлом: точка $u$ равномерна на длинном куске, то есть на отрезке длины $1-x$. Куски: $\ell_1 = x$, а два других в сумме дают $1 - x$.

Шаг 3. Первое условие: $x < \tfrac12$ — выполнено по построению.

Шаг 4. Оставшиеся два условия требуют, чтобы каждый из двух новых кусков был короче $\tfrac12$. Обозначим длину длинного куска $L = 1 - x$ (напомним, $L > \tfrac12$) и пусть он ломается на части $u$ и $L - u$. Нужно одновременно $u < \tfrac12$ и $L - u < \tfrac12$, то есть

$$L - \tfrac12 < u < \tfrac12$$

Длина этого «удачного» промежутка:

$$\tfrac12 - \left(L - \tfrac12\right) = 1 - L = x$$

Шаг 5. Условная вероятность при данном $x$:

$$P(\text{треугольник} \mid x) = \frac{x}{L} = \frac{x}{1-x}$$

Шаг 6. Усредняем по $x \in [0; \tfrac12]$ (равномерно, плотность $2$ на этом промежутке из-за симметрии):

$$P = \int_0^{1/2} \frac{x}{1-x} \cdot 2\,dx$$

Шаг 7. Считаем интеграл. Заметим $\dfrac{x}{1-x} = \dfrac{-(1-x) + 1}{1-x} = \dfrac{1}{1-x} - 1$.

$$\int_0^{1/2}\left(\frac{1}{1-x} - 1\right)dx = \Big[-\ln(1-x) - x\Big]_0^{1/2} = \left(\ln 2 - \tfrac12\right) - 0 = \ln 2 - \tfrac12$$$$P = 2\left(\ln 2 - \tfrac12\right) = 2\ln 2 - 1 = \ln 4 - 1 \approx 1{,}3863 - 1 = 0{,}3863$$

Ответ второго варианта: $P = \ln 4 - 1 \approx 0{,}386$.

Итак: $0{,}25$ против $0{,}386$. Та же палка, тот же треугольник, разные процедуры случайности — разные ответы. И оба верны, каждый для своей процедуры. Запомни этот момент: он ровно тот же, что мы сейчас увидим у Бертрана, только там расхождение выглядит скандальнее.

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

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


Трёхмерный случай и общая размерность

Интуиция

Переход к трём измерениям формально не приносит ничего нового: вместо площади считаем объём, формула та же. Но содержательно тут происходит важная вещь — начинают проявляться эффекты, которых в 1D и 2D просто нет и которые в высоких размерностях станут доминирующими.

Определение (3D): если точка бросается наудачу в тело $\Omega$ объёма $V(\Omega)$, то для подобласти $A$

$$P(A) = \frac{V(A)}{V(\Omega)}$$

Пример 7 (простой): шар в кубе

В куб с ребром 1 вписан шар. Найди вероятность того, что случайная точка куба попала в шар.

Решение:

Шаг 1. $V_{\text{куб}} = 1^3 = 1$.

Шаг 2. Радиус вписанного шара $r = 0{,}5$:

$$V_{\text{шар}} = \frac{4}{3}\pi r^3 = \frac{4}{3}\pi \cdot \frac{1}{8} = \frac{\pi}{6}$$

Шаг 3.

$$P = \frac{\pi/6}{1} = \frac{\pi}{6} \approx 0{,}5236$$

Ответ: $P = \pi/6 \approx 0{,}524$

Уже интересно: в 2D вписанный круг занимал 78,5% квадрата, в 3D вписанный шар — только 52,4% куба. Доля упала. Это не случайность, это начало тенденции, и мы её сейчас доведём до логического конца.


Пример 8 (средний): три числа

Числа $x, y, z$ независимо выбираются наудачу из $[0;1]$. Найди $P(x + y + z < 1)$.

Решение:

Шаг 1. Область исходов — единичный куб, $V_\Omega = 1$.

Шаг 2. Условие $x+y+z<1$ при $x,y,z \ge 0$ задаёт тетраэдр с вершинами в $(0,0,0)$, $(1,0,0)$, $(0,1,0)$, $(0,0,1)$.

Шаг 3. Объём такого тетраэдра — это объём пирамиды с основанием-треугольником площади $\tfrac12$ и высотой $1$:

$$V = \frac{1}{3} \cdot S_{\text{осн}} \cdot h = \frac{1}{3} \cdot \frac{1}{2} \cdot 1 = \frac{1}{6}$$

Шаг 4.

$$P = \frac{1/6}{1} = \frac{1}{6} \approx 0{,}1667$$

Проверим наш ответ: в 2D аналогичное условие $x+y<1$ дало $1/2 = 1/2!$. В 3D получили $1/6 = 1/3!$. Закономерность видна: в $n$ измерениях $P(x_1 + \dots + x_n < 1) = \dfrac{1}{n!}$ ✅ Это объём стандартного симплекса, и он катастрофически быстро уменьшается: при $n = 10$ уже $\approx 2{,}76 \cdot 10^{-7}$.

Ответ: $P = 1/6$


Пример 9 (сложный): толщина оболочки

Внутри куба с ребром 1 выделена «внутренняя сердцевина» — куб с ребром $1 - 2\varepsilon$, отстоящий от каждой грани на $\varepsilon$. Найди вероятность того, что случайная точка куба лежит в «оболочке» (то есть ближе $\varepsilon$ к какой-нибудь грани) при $\varepsilon = 0{,}05$. Затем — то же для гиперкуба размерности $n = 100$.

Решение:

Шаг 1. Объём сердцевины: $(1 - 2\varepsilon)^3 = (1 - 0{,}1)^3 = 0{,}9^3 = 0{,}729$.

Шаг 2. Вероятность попасть в оболочку:

$$P = 1 - 0{,}729 = 0{,}271$$

То есть в трёхмерном кубе 27% объёма находится в тонкой корке толщиной всего 5% ребра.

Шаг 3. Теперь $n = 100$. Формула та же, но степень другая:

$$P = 1 - (1 - 2\varepsilon)^{100} = 1 - 0{,}9^{100}$$

Шаг 4. Считаем: $\ln(0{,}9^{100}) = 100 \ln 0{,}9 = 100 \cdot (-0{,}10536) = -10{,}536$, значит $0{,}9^{100} = e^{-10{,}536} \approx 2{,}66 \cdot 10^{-5}$.

$$P \approx 1 - 0{,}0000266 = 0{,}9999734$$

Ответ: в 3D — $0{,}271$; в 100D — $0{,}99997$.

Что это значит. В стомерном кубе 99,997% объёма лежит в корке толщиной 5% от ребра. Практически любая случайная точка гиперкуба находится вплотную к границе. «Внутренность» гиперкуба почти пуста — весь объём вытеснен к поверхности. Это первый серьёзный удар по геометрической интуиции, и дальше будет только жёстче.

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

Эффект «весь объём у границы» — не абстракция. Если ты нормализуешь признаки в диапазон $[0;1]$ и работаешь со 100-мерными данными, то практически каждый объект выборки является экстремальным хотя бы по одному признаку. Отсюда, в частности, растёт хроническая проблема отсева выбросов в высоких размерностях: правило «отбрось точку, если она близка к границе хотя бы по одному признаку» отбросит почти весь датасет. Точно так же ломается наивная идея «сгенерируем случайные точки внутри области и посмотрим, что там в центре» — центра, в смысле объёма, там просто нет.


Задача Бюффона об игле: как измерить $\pi$ броском

Интуиция

Это самая знаменитая задача геометрической вероятности, и знаменита она не сложностью, а результатом: в ответе появляется $\pi$ — притом что в условии нет ни одной окружности.

Постановка. Плоскость разлинована параллельными прямыми на расстоянии $d$ друг от друга. На неё наудачу бросают иглу длины $\ell \le d$. Найти вероятность того, что игла пересечёт одну из прямых.

Ключевой шаг — понять, что положение иглы описывается двумя случайными числами. Не тремя (координаты центра — это две величины, плюс угол) и не одной. Дело в симметрии: сдвиг вдоль прямых ничего не меняет, поэтому координата вдоль линий несущественна. Остаются:

  • $x$ — расстояние от центра иглы до ближайшей прямой; оно лежит в $\left[0; \tfrac{d}{2}\right]$ и равномерно распределено
  • $\theta$ — острый угол между иглой и направлением прямых; он лежит в $\left[0; \tfrac{\pi}{2}\right]$ и равномерно распределён

Шаг 1. Область исходов. Пара $(\theta, x)$ равномерно распределена в прямоугольнике

$$\Omega = \left[0; \frac{\pi}{2}\right] \times \left[0; \frac{d}{2}\right], \qquad S_\Omega = \frac{\pi}{2} \cdot \frac{d}{2} = \frac{\pi d}{4}$$

Шаг 2. Условие пересечения. Игла наклонена под углом $\theta$ к прямым. Её проекция на направление, перпендикулярное прямым, имеет длину $\ell \sin\theta$. Половина этой проекции — $\tfrac{\ell}{2}\sin\theta$ — это максимальное расстояние, на которое конец иглы «дотягивается» от центра поперёк линий. Значит, игла пересекает прямую тогда и только тогда, когда

$$x \le \frac{\ell}{2}\sin\theta$$

Шаг 3. Благоприятная область. Это область под синусоидой в нашем прямоугольнике. Её площадь — интеграл:

$$S_A = \int_0^{\pi/2} \frac{\ell}{2}\sin\theta \, d\theta = \frac{\ell}{2}\Big[-\cos\theta\Big]_0^{\pi/2} = \frac{\ell}{2}\big(0 - (-1)\big) = \frac{\ell}{2}$$

Красиво: площадь под синусоидой на четверти периода даёт ровно $1$, и вся зависимость от угла свернулась в единицу.

Шаг 4. Собираем.

$$P = \frac{S_A}{S_\Omega} = \frac{\ell/2}{\pi d/4} = \frac{4\ell}{2\pi d} = \frac{2\ell}{\pi d}$$

Формула Бюффона: для иглы длины $\ell$, брошенной на плоскость с расстоянием $d \ge \ell$ между параллельными прямыми,

$$P(\text{пересечение}) = \frac{2\ell}{\pi d}$$

Шаг 5. Частный случай $\ell = d$.

$$P = \frac{2}{\pi} \approx 0{,}6366$$

Почти две трети бросков дают пересечение.

Обратный ход: измеряем $\pi$ иглой

Формулу можно развернуть. Если бросить иглу $n$ раз и получить $k$ пересечений, то $\hat{p} = k/n$ — оценка вероятности, и

$$\pi \approx \frac{2\ell n}{d \, k}$$

Это первый в истории статистический способ вычисления математической константы. В 1901 году итальянский математик Марио Лаццарини заявил, что провёл 3408 бросков и получил $\pi \approx \frac{355}{113} = 3{,}1415929$ — совпадение с истинным $\pi$ до седьмого знака. Историки статистики (в частности, Ли Бэджер в 1994 году) убедительно показали, что результат подогнан: числа 3408 и 1808 подобраны так, чтобы вылезла знаменитая китайская дробь $355/113$, а вероятность честно получить такую точность на 3408 бросках исчезающе мала. Об этом — чуть позже, когда посчитаем реальную скорость сходимости.

Пример 10 (средний): расчёт по формуле Бюффона

Игла длины 3 см бросается на бумагу, разлинованную с шагом 4 см. Сколько пересечений ожидать за 500 бросков?

Решение:

Шаг 1. По формуле:

$$P = \frac{2 \cdot 3}{\pi \cdot 4} = \frac{6}{4\pi} = \frac{3}{2\pi} \approx \frac{3}{6{,}2832} \approx 0{,}4775$$

Шаг 2. Математическое ожидание числа пересечений за $n = 500$ бросков:

$$E[k] = n \cdot P = 500 \cdot 0{,}4775 \approx 238{,}7$$

Ответ: $P \approx 0{,}478$, ожидаемое число пересечений $\approx 239$


Пример 11 (сложный): оценка $\pi$ и её точность

Эксперимент: игла с $\ell = d$, сделано $n = 10\,000$ бросков, зафиксировано $k = 6382$ пересечения. Оцени $\pi$ и оцени, насколько такой оценке можно доверять.

Решение:

Шаг 1. Точечная оценка. $\hat p = 6382/10000 = 0{,}6382$. Из $p = 2/\pi$ получаем:

$$\hat\pi = \frac{2}{\hat p} = \frac{2}{0{,}6382} \approx 3{,}1338$$

Шаг 2. Насколько это точно? Число пересечений $k$ — сумма $n$ независимых индикаторов, то есть биномиальная величина с параметрами $n$ и $p = 2/\pi \approx 0{,}63662$. Стандартное отклонение доли:

$$\sigma_{\hat p} = \sqrt{\frac{p(1-p)}{n}} = \sqrt{\frac{0{,}63662 \cdot 0{,}36338}{10000}} = \sqrt{\frac{0{,}23133}{10000}} \approx 0{,}00481$$

Шаг 3. Переносим погрешность на $\pi$. Так как $\pi = 2/p$, малое отклонение $\Delta p$ даёт

$$\Delta \pi \approx \frac{2}{p^2}\,\Delta p = \frac{2}{0{,}63662^2} \cdot 0{,}00481 = \frac{2}{0{,}40528} \cdot 0{,}00481 \approx 4{,}935 \cdot 0{,}00481 \approx 0{,}0237$$

Шаг 4. Вывод. Стандартная погрешность оценки $\pi$ на 10 000 бросках — около $\pm 0{,}024$. Наша оценка $3{,}134$ отстоит от истинного $3{,}1416$ на $0{,}008$ — меньше одного стандартного отклонения, всё в норме ✅

Шаг 5. А сколько нужно для трёх знаков? Чтобы погрешность упала до $0{,}001$, нужно уменьшить её в 24 раза, а погрешность падает как $1/\sqrt{n}$. Значит, $n$ должно вырасти в $24^2 \approx 576$ раз:

$$n \approx 10\,000 \cdot 576 \approx 5{,}8 \cdot 10^6$$

Почти шесть миллионов бросков ради трёх верных знаков. Отсюда и сомнения в результате Лаццарини: получить семь знаков на 3408 бросках — это как выиграть в лотерею, объявив об этом заранее.

Ответ: $\hat\pi \approx 3{,}134 \pm 0{,}024$; для трёх верных знаков нужно $\sim 6$ миллионов бросков

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

Задача Бюффона — первый исторический пример того, что сегодня называется Монте-Карло-оценкой: мы связали неизвестную величину с вероятностью события, а вероятность оценили частотой. Вся современная стохастическая численная математика устроена так же. И здесь же виден её главный недостаток, который нужно принять раз и навсегда: точность растёт как $1/\sqrt{n}$. Хочешь на один десятичный знак точнее — увеличивай выборку в 100 раз. Это медленно. Но, как мы увидим дальше, у этой медленности есть волшебное свойство: она не зависит от размерности, и именно поэтому в многомерных задачах Монте-Карло побеждает всех.


Парадокс Бертрана: чему равна вероятность, когда «наудачу» непонятно

Постановка

В круг радиуса $R$ вписан равносторонний треугольник. Его сторона равна $R\sqrt{3}$ (проверим: сторона правильного треугольника, вписанного в окружность радиуса $R$, равна $2R\sin 60° = 2R \cdot \frac{\sqrt3}{2} = R\sqrt3$ ✅).

Вопрос Бертрана: в круге наудачу проводится хорда. Какова вероятность, что она окажется длиннее стороны вписанного равностороннего треугольника?

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

Прежде чем считать, зафиксируем полезный геометрический факт: хорда длиннее $R\sqrt3$ тогда и только тогда, когда расстояние от центра до хорды меньше $R/2$.

Проверим это. Если расстояние от центра до хорды равно $h$, то полухорда равна $\sqrt{R^2 - h^2}$, а вся хорда — $2\sqrt{R^2 - h^2}$. Условие «хорда длиннее $R\sqrt3$»:

$$2\sqrt{R^2 - h^2} > R\sqrt{3} \;\Leftrightarrow\; 4(R^2 - h^2) > 3R^2 \;\Leftrightarrow\; R^2 > 4h^2 \;\Leftrightarrow\; h < \frac{R}{2}$$

Отлично, критерий готов: середина хорды должна лежать внутри концентрического круга радиуса $R/2$.

Вариант 1: «случайные концы» — ответ $1/3$

Способ задать хорду: независимо выбираем две точки на окружности наудачу (равномерно по дуге) и соединяем.

Шаг 1. Зафиксируем первую точку. По симметрии круга — без потери общности пусть это вершина $A$ вписанного равностороннего треугольника $ABC$.

Шаг 2. Вторая точка $M$ равномерно распределена по всей окружности длины $2\pi R$.

Шаг 3. Хорда $AM$ длиннее стороны треугольника ровно тогда, когда $M$ лежит на дальней дуге $BC$ — той, что не содержит $A$. Действительно, если $M$ совпадает с $B$ или $C$, хорда равна стороне; если уходит за них — становится длиннее.

Шаг 4. Вершины треугольника делят окружность на три равные дуги по $2\pi R/3$. Благоприятна одна из них.

$$P_1 = \frac{2\pi R/3}{2\pi R} = \frac{1}{3} \approx 0{,}333$$

Ответ варианта 1: $P = 1/3$

Вариант 2: «случайный радиус» — ответ $1/2$

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

Шаг 1. По симметрии направление радиуса неважно — зафиксируем его.

Шаг 2. Точка на радиусе задаёт расстояние $h$ от центра до хорды, причём $h$ равномерно распределено на $[0; R]$. Мера — длина, $\mu(\Omega) = R$.

Шаг 3. По нашему критерию хорда длиннее стороны при $h < R/2$. Длина благоприятного участка: $R/2$.

$$P_2 = \frac{R/2}{R} = \frac{1}{2} = 0{,}5$$

Ответ варианта 2: $P = 1/2$

Вариант 3: «случайная середина» — ответ $1/4$

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

Шаг 1. Область исходов — весь круг, $S_\Omega = \pi R^2$.

Шаг 2. По критерию нужна середина внутри круга радиуса $R/2$:

$$S_A = \pi \left(\frac{R}{2}\right)^2 = \frac{\pi R^2}{4}$$

Шаг 3.

$$P_3 = \frac{\pi R^2 / 4}{\pi R^2} = \frac{1}{4} = 0{,}25$$

Ответ варианта 3: $P = 1/4$

Так какой ответ правильный?

Все три. И это не софистика.

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

Чтобы это было совсем наглядно, посмотрим на распределение расстояния $h$ от центра до хорды в каждом варианте:

  • Вариант 1 (случайные концы): если угол между хордой и касательной в точке $A$ равен $\alpha \sim U[0;\pi]$, то $h = R|\cos\alpha|$ — распределение не равномерно, оно сгущается у больших $h$
  • Вариант 2 (случайный радиус): $h \sim U[0;R]$ — равномерно по расстоянию
  • Вариант 3 (случайная середина): плотность вероятности $h$ пропорциональна длине окружности радиуса $h$, то есть растёт линейно, $\propto h$ — распределение сдвинуто к большим $h$ ещё сильнее

Три разных распределения $\Rightarrow$ три разные вероятности. Никакого противоречия в математике нет; противоречие было в предположении, что фраза «наудачу проводится хорда» задаёт единственную модель.

Суть парадокса Бертрана: геометрическая вероятность требует явного указания меры на множестве исходов. Формулировка «наудачу», не уточняющая процедуру генерации, не является корректной постановкой задачи. Разные процедуры порождают разные распределения и, следовательно, разные ответы.

Именно это и зафиксировала аксиоматика Колмогорова 1933 года: вероятностное пространство — это тройка $(\Omega, \mathcal{F}, P)$, где $P$ задаётся явно, а не «выводится из здравого смысла».

Есть ли «самый естественный» вариант?

Попытки такие были. В 1973 году американский физик Эдвин Джейнс предложил принцип максимальной энтропии с требованием инвариантности: если задача не указывает ни масштаба, ни положения, то распределение хорд должно быть инвариантно относительно сдвигов, поворотов и растяжений круга. Единственная мера, удовлетворяющая всем трём требованиям, — вторая (случайный радиус), и она даёт $1/2$. Аргумент Джейнса красив и практически проверяем: если бросать на круг соломинки сверху с большой высоты, эмпирическая частота действительно сходится к $1/2$.

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

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

Парадокс Бертрана — это не музейный экспонат, а описание ошибки, которую в ML совершают ежедневно.

Случай первый: подбор learning rate. Ты решил «искать наудачу от $10^{-5}$ до $10^{-1}$». Равномерно по значению? Тогда 90% проб уйдут в интервал $[10^{-2}; 10^{-1}]$, а вся зона $[10^{-5}; 10^{-3}]$ получит меньше 1% проб. Равномерно по логарифму (loguniform)? Тогда каждый порядок величины получит по 25% проб. Это два разных распределения на одном и том же множестве, и результат поиска будет принципиально разным. Классический бертрановский выбор.

Случай второй: случайное вращение изображения. Равномерный угол или равномерный кватернион для 3D? В трёх измерениях «случайный поворот» имеет как минимум три несовпадающие естественные параметризации (углы Эйлера равномерно, ось+угол равномерно, равномерная мера Хаара на $SO(3)$), и только третья даёт действительно изотропный результат.

Случай третий: инициализация весов. «Случайная матрица» — какая именно? Гауссова с независимыми элементами, равномерная на сфере, ортогональная из меры Хаара — три разных ответа на «случайную матрицу», и они по-разному влияют на сходимость глубоких сетей.

Вывод, который стоит вынести из парадокса: всегда пиши распределение явно, включая параметризацию. Не «случайный угол», а «$\theta \sim U[0; 2\pi)$». Не «случайный learning rate от $10^{-5}$ до $10^{-1}$», а «$\log_{10}\eta \sim U[-5; -1]$». Это ровно та дисциплина, которую Колмогоров ввёл в математику, и в инженерной практике она экономит недели непонятных экспериментов.


Метод Монте-Карло: считаем $\pi$ точками

Интуиция

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

Самая известная демонстрация — оценка $\pi$.

Шаг 1. Конструкция. Возьмём квадрат $[0;1] \times [0;1]$ и четверть круга радиуса 1 с центром в начале координат. Точка $(x,y)$ попадает в четверть круга, если $x^2 + y^2 \le 1$.

Шаг 2. Вероятность попадания.

$$P = \frac{S_{\text{четв. круга}}}{S_{\text{квадрата}}} = \frac{\pi \cdot 1^2 / 4}{1} = \frac{\pi}{4} \approx 0{,}7854$$

Шаг 3. Разворачиваем. Бросим $n$ точек наудачу в квадрат, пусть $k$ из них попали внутрь четверти круга. Тогда $k/n \approx \pi/4$, откуда

$$\boxed{\hat\pi = \frac{4k}{n}}$$

Вот и всё. Никакой геометрии окружности, никаких рядов, никаких формул для $\pi$ — только генератор случайных чисел и проверка неравенства.

Код

import numpy as np

def estimate_pi(n, seed=0):
    rng = np.random.default_rng(seed)
    x = rng.random(n)          # x ~ U[0,1]
    y = rng.random(n)          # y ~ U[0,1]
    inside = (x*x + y*y) <= 1.0
    k = inside.sum()
    return 4.0 * k / n

for n in [10**2, 10**3, 10**4, 10**5, 10**6, 10**7]:
    est = estimate_pi(n)
    print(f"n = {n:>9}   pi ~ {est:.6f}   ошибка = {abs(est - np.pi):.6f}")

Типичный вывод (значения зависят от seed, порядок ошибки — нет):

n =       100   pi ~ 3.280000   ошибка = 0.138407
n =      1000   pi ~ 3.144000   ошибка = 0.002407
n =     10000   pi ~ 3.129200   ошибка = 0.012393
n =    100000   pi ~ 3.145000   ошибка = 0.003407
n =   1000000   pi ~ 3.140936   ошибка = 0.000657
n =  10000000   pi ~ 3.141517   ошибка = 0.000076

Обрати внимание: ошибка не убывает монотонно — на $n=1000$ повезло больше, чем на $n=10^4$. Это нормально: оценка случайна, и разговор идёт не о гарантии, а о типичной величине ошибки.

Насколько точна оценка

Разберём по шагам, откуда берётся точность.

Шаг 1. Каждая точка попадает внутрь с вероятностью $p = \pi/4$ независимо от остальных. Значит, $k$ — биномиальная величина: $k \sim \text{Bin}(n, p)$.

Шаг 2. Дисперсия доли:

$$\operatorname{Var}\left(\frac{k}{n}\right) = \frac{p(1-p)}{n}$$

Шаг 3. Оценка $\hat\pi = 4k/n$, значит

$$\sigma_{\hat\pi} = 4\sqrt{\frac{p(1-p)}{n}}$$

Шаг 4. Подставим $p = \pi/4 \approx 0{,}785398$, $1-p \approx 0{,}214602$:

$$p(1-p) \approx 0{,}168545, \qquad \sqrt{0{,}168545} \approx 0{,}410542$$$$\sigma_{\hat\pi} \approx \frac{4 \cdot 0{,}410542}{\sqrt{n}} = \frac{1{,}6422}{\sqrt{n}}$$

Рабочая формула точности: стандартная ошибка оценки $\pi$ методом «точек в квадрате» равна $\sigma \approx \dfrac{1{,}64}{\sqrt{n}}$.

Шаг 5. Таблица требуемых $n$. Возьмём правило «три сигмы» как практическую границу и посчитаем, сколько точек нужно, чтобы стандартная ошибка была не больше заданной:

Нужная точность $\varepsilon$ $n = (1{,}64/\varepsilon)^2$ Порядок
$0{,}1$ $\approx 270$ сотни
$0{,}01$ $\approx 27\,000$ десятки тысяч
$0{,}001$ $\approx 2{,}7 \cdot 10^6$ миллионы
$0{,}0001$ $\approx 2{,}7 \cdot 10^8$ сотни миллионов
$10^{-6}$ $\approx 2{,}7 \cdot 10^{12}$ триллионы

Вывод, который надо принять как факт жизни: каждый дополнительный верный знак после запятой стоит в 100 раз больше вычислений. Монте-Карло — ужасный способ считать $\pi$: ряд Мачина или алгоритм Чудновского дают миллиарды знаков за то время, за которое Монте-Карло даёт четыре. Но это учебный пример, а не боевое применение. Настоящая сила метода — там, где альтернатив нет вообще.

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

Формула $\sigma \propto 1/\sqrt{n}$ — не про $\pi$. Это универсальный закон для любой Монте-Карло-оценки: сколько бы измерений ни было у задачи, ошибка падает как корень из числа сэмплов. Отсюда растёт всё: и оценка градиента по мини-батчу (шум градиента падает как $1/\sqrt{\text{batch size}}$), и точность MCMC в байесовском выводе, и сходимость policy gradient в обучении с подкреплением, и зернистость картинки в ray tracing. Когда ты в следующий раз увидишь, что удвоение батча дало улучшение всего в $1{,}41$ раза, — вспомни, что это та же формула, что мы вывели для точек в квадрате.


Монте-Карло интегрирование: почему оно выигрывает в высоких размерностях

Интуиция

Оценка $\pi$ — частный случай общей задачи: посчитать интеграл

$$I = \int_\Omega f(\mathbf{x})\, d\mathbf{x}$$

по области $\Omega \subset \mathbb{R}^d$. Идея та же самая: если $\mathbf{x}_1, \dots, \mathbf{x}_n$ — независимые точки, равномерно распределённые в $\Omega$, то среднее значение функции по этим точкам приближает истинное среднее значение функции по области. Умножив на объём, получаем интеграл:

$$\hat I = V(\Omega) \cdot \frac{1}{n}\sum_{i=1}^{n} f(\mathbf{x}_i)$$

Определение (Монте-Карло оценка интеграла): для равномерных независимых $\mathbf{x}_i \in \Omega$

$$\hat I = \frac{V(\Omega)}{n}\sum_{i=1}^n f(\mathbf{x}_i), \qquad \operatorname{Var}(\hat I) = \frac{V(\Omega)^2 \sigma_f^2}{n},$$

где $\sigma_f^2$ — дисперсия значений $f$ на равномерном распределении по $\Omega$. Стандартная ошибка равна $\dfrac{V(\Omega)\,\sigma_f}{\sqrt{n}}$ и не зависит от размерности $d$.

Вот эта последняя фраза — вся суть. Ошибка зависит от «разброса» функции и от числа сэмплов, но не от того, интегрируем ли мы по отрезку или по стомерному кубу.

Сравнение с сеточными методами

Теперь посмотрим, как ведут себя классические детерминированные методы.

Шаг 1. Одномерный случай. Метод трапеций на равномерной сетке из $n$ узлов с шагом $h = 1/n$ даёт ошибку порядка $O(h^2) = O(n^{-2})$. Быстро, красиво, сильно лучше Монте-Карло с его $O(n^{-1/2})$.

Шаг 2. Многомерный случай. Чтобы построить сетку в $d$ измерениях, нужно взять $m$ узлов по каждой оси, итого $n = m^d$ точек. Шаг сетки $h = 1/m = n^{-1/d}$. Ошибка трапеций:

$$\text{err}_{\text{трап}} = O(h^2) = O\!\left(n^{-2/d}\right)$$

Шаг 3. Ошибка Монте-Карло — как была, так и осталась:

$$\text{err}_{\text{МК}} = O\!\left(n^{-1/2}\right)$$

Шаг 4. Кто быстрее? Сравниваем показатели: сеточный метод лучше, пока

$$\frac{2}{d} > \frac{1}{2} \quad \Leftrightarrow \quad d < 4$$

Точка перелома: метод трапеций выигрывает у Монте-Карло при $d \le 3$, они сравниваются при $d = 4$, и при $d \ge 5$ Монте-Карло безоговорочно побеждает — причём разрыв растёт экспоненциально с ростом $d$.

Для метода Симпсона (ошибка $O(h^4)$) перелом сдвигается: $\frac{4}{d} > \frac12 \Leftrightarrow d < 8$. Чуть позже, но всё равно неизбежно.

Шаг 5. Чтобы прочувствовать масштаб. Пусть нужна точность $10^{-2}$.

  • Монте-Карло: $n \sim (1/10^{-2})^2 = 10^4$ точек — при любой размерности
  • Трапеции при $d = 10$: $n^{-2/10} = 10^{-2} \Rightarrow n = 10^{10}$ точек
  • Трапеции при $d = 20$: $n = 10^{20}$ точек

Десять в двадцатой — это больше, чем число секунд с Большого взрыва, помноженное на миллиард. Сеточный метод в двадцати измерениях физически невычислим, а Монте-Карло справляется за десять тысяч вызовов функции. Вот почему в байесовской статистике, где интегралы берутся по пространству параметров размерности в сотни и тысячи, никакой альтернативы сэмплированию не существует.

Пример 12 (сложный): два способа посчитать один интеграл

Оценим $I = \int_0^1 \sqrt{1-x^2}\,dx$ (это ровно $\pi/4$) двумя способами и сравним их эффективность.

Способ А — «попал / не попал» (hit-or-miss): бросаем точки в квадрат $[0;1]^2$ и считаем долю под кривой. Это в точности наш способ оценки $\pi$.

Шаг 1. Индикатор попадания — бернуллиевская величина с $p = I = \pi/4 \approx 0{,}7854$.

Шаг 2. Дисперсия одного сэмпла: $p(1-p) = 0{,}7854 \cdot 0{,}2146 \approx 0{,}16854$, значит $\sigma_A \approx 0{,}41054$.

Способ Б — «среднее значение» (sample mean): берём $x_i \sim U[0;1]$ и усредняем $f(x_i) = \sqrt{1 - x_i^2}$.

Шаг 3. Считаем дисперсию значений функции:

$$E[f^2] = \int_0^1 (1 - x^2)\,dx = \left[x - \frac{x^3}{3}\right]_0^1 = 1 - \frac{1}{3} = \frac{2}{3} \approx 0{,}66667$$$$E[f] = I = \frac{\pi}{4} \approx 0{,}785398, \qquad (E[f])^2 \approx 0{,}616850$$$$\sigma_B^2 = E[f^2] - (E[f])^2 \approx 0{,}666667 - 0{,}616850 = 0{,}049817$$$$\sigma_B \approx 0{,}22320$$

Шаг 4. Сравниваем.

$$\frac{\sigma_A}{\sigma_B} \approx \frac{0{,}41054}{0{,}22320} \approx 1{,}839$$

Шаг 5. Так как ошибка падает как $1/\sqrt{n}$, чтобы способ А догнал способ Б, ему нужно в $1{,}839^2 \approx 3{,}38$ раза больше точек.

Ответ: метод «среднего значения» точнее «попал/не попал» примерно в 1,84 раза по стандартной ошибке, что эквивалентно экономии в 3,4 раза по числу сэмплов.

Мораль. Это первый пример уменьшения дисперсии (variance reduction) — целого раздела вычислительной статистики. Тот же интеграл, тот же $1/\sqrt{n}$, но константа перед корнем меньше. В продвинутых техниках (importance sampling, control variates, antithetic variates, квазислучайные последовательности Соболя) эту константу давят ещё сильнее — иногда на порядки. Именно так работают современные рендереры и байесовские сэмплеры.

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

Каждый раз, когда нейросеть считает градиент по мини-батчу, она делает Монте-Карло-оценку интеграла. Полный градиент функции потерь — это среднее по всему датасету (в пределе — интеграл по распределению данных); мини-батч из 32 или 256 примеров даёт несмещённую оценку с ошибкой $\propto 1/\sqrt{B}$. Вариационные автоэнкодеры оценивают ELBO одним-единственным сэмплом из апостериорного распределения — и этого хватает. Policy gradient в RL — то же самое. Dropout при инференсе (Monte Carlo dropout) усредняет несколько случайных проходов, оценивая интеграл по распределению подсетей. Всё это — прямые потомки Бюффона с его иглой.


Проклятие размерности: куда девается объём

Интуиция

Мы уже заметили тревожный тренд: вписанный круг занимает 78,5% квадрата, вписанный шар — 52,4% куба. Давай доведём наблюдение до конца и посмотрим, что происходит в $d$ измерениях.

Постановка. В $d$-мерный куб с ребром 1 вписан $d$-мерный шар радиуса $r = 1/2$ (он касается всех граней). Какую долю объёма куба он занимает?

Шаг 1. Объём куба. $V_{\text{куб}} = 1^d = 1$ при любом $d$. Удобно.

Шаг 2. Объём $d$-мерного шара радиуса $r$ даётся формулой

$$V_d(r) = \frac{\pi^{d/2}}{\Gamma\!\left(\frac{d}{2}+1\right)} r^d$$

где $\Gamma$ — гамма-функция ($\Gamma(n+1) = n!$ для целых $n$, $\Gamma(1/2) = \sqrt\pi$). Проверим для $d=3$: $\Gamma(5/2) = \frac{3}{2}\cdot\frac{1}{2}\cdot\sqrt\pi = \frac{3\sqrt\pi}{4}$, тогда $V_3(r) = \frac{\pi^{3/2}}{3\sqrt\pi/4}r^3 = \frac{4\pi}{3}r^3$ ✅ — знакомая школьная формула.

Шаг 3. Искомая доля.

$$q(d) = \frac{V_d(1/2)}{1} = \frac{\pi^{d/2}}{\Gamma\!\left(\frac{d}{2}+1\right) \cdot 2^d}$$

Шаг 4. Удобная рекуррентная формула. Считать гамма-функцию каждый раз неудобно. Разделим $q(d)$ на $q(d-2)$:

$$\frac{q(d)}{q(d-2)} = \pi \cdot \frac{1}{4} \cdot \frac{\Gamma\!\left(\frac{d}{2}\right)}{\Gamma\!\left(\frac{d}{2}+1\right)} = \frac{\pi}{4} \cdot \frac{1}{d/2} = \frac{\pi}{2d}$$

Рекуррентная формула: $q(d) = q(d-2)\cdot\dfrac{\pi}{2d}$, с началом $q(1) = 1$ и $q(2) = \dfrac{\pi}{4}$.

Это удобно и очень наглядно: множитель $\frac{\pi}{2d}$ становится меньше единицы уже при $d \ge 2$ (так как $\pi/4 < 1$), и дальше он падает обратно пропорционально размерности. Каждые два новых измерения уменьшают долю в $\frac{2d}{\pi}$ раз, и этот коэффициент сам растёт.

Шаг 5. Таблица.

$d$ доля шара в кубе $q(d)$ комментарий
1 $1$ отрезок «вписан» в отрезок целиком
2 $0{,}7854$ круг в квадрате — 78,5%
3 $0{,}5236$ шар в кубе — 52,4%
4 $0{,}3084$ меньше трети
5 $0{,}1645$ меньше шестой части
6 $0{,}0807$ 8%
7 $0{,}0369$ 3,7%
8 $0{,}0159$ 1,6%
10 $0{,}00249$ четверть процента
12 $3{,}26\cdot10^{-4}$ 0,03%
15 $1{,}16\cdot10^{-5}$ одна стотысячная
20 $2{,}46\cdot10^{-8}$ одна сорокамиллионная
30 $2{,}04\cdot10^{-14}$
50 $1{,}54\cdot10^{-28}$
100 $1{,}87\cdot10^{-70}$ меньше, чем отношение размера протона к размеру Вселенной, в кубе

Шаг 6. Что это значит. Шар касается всех $2d$ граней куба. Он занимает всю «середину». И при этом в 20 измерениях в нём меньше одной сорокамиллионной доли объёма куба. Где же остальное?

В углах.

У $d$-мерного куба $2^d$ вершин: 8 при $d=3$, миллион с лишним при $d=20$, $2^{100} \approx 1{,}27\cdot10^{30}$ при $d=100$. Расстояние от центра куба до вершины равно $\frac{\sqrt d}{2}$, а до центра грани — по-прежнему $\frac12$. То есть куб «прорастает шипами»: при $d = 100$ вершины отстоят от центра в $\sqrt{100} = 10$ раз дальше, чем грани. Куб в высокой размерности похож не на кубик, а на морского ежа — тонкое ядро и колоссальное число длинных выростов, в которых и сидит весь объём.

Проклятие размерности (геометрическая формулировка): с ростом $d$ объём $d$-мерного куба практически целиком сосредотачивается в окрестности его вершин; вписанный шар, содержащий «центральную» часть, имеет исчезающе малую долю объёма.

Следствие для kNN и метрик близости

А теперь — главное практическое следствие, ради которого мы всё это считали.

Шаг 1. Возьмём две независимые случайные точки $\mathbf{u}, \mathbf{v}$, равномерно распределённые в кубе $[0;1]^d$. Квадрат расстояния между ними:

$$D^2 = \sum_{i=1}^{d}(u_i - v_i)^2$$

Шаг 2. Для одной координаты: $E[(u-v)^2] = \frac16$ (это стандартный результат для разности двух равномерных величин). Значит,

$$E[D^2] = \frac{d}{6}, \qquad E[D] \approx \sqrt{\frac{d}{6}}$$

Среднее расстояние растёт как $\sqrt d$ — этого следовало ожидать.

Шаг 3. Теперь разброс. Посчитаем дисперсию одного слагаемого. Нужен четвёртый момент:

$$E[(u-v)^4] = 2\int_0^1 t^4 (1-t)\,dt = 2\left(\frac15 - \frac16\right) = 2\cdot\frac{1}{30} = \frac{1}{15}$$$$\operatorname{Var}\big[(u-v)^2\big] = \frac{1}{15} - \frac{1}{36} = \frac{12 - 5}{180} = \frac{7}{180} \approx 0{,}03889$$

Шаг 4. Слагаемые независимы, дисперсии складываются:

$$\operatorname{Var}[D^2] = \frac{7d}{180}, \qquad \sigma_{D^2} = \sqrt{\frac{7d}{180}} \approx 0{,}1972\sqrt{d}$$

Шаг 5. Ключевое отношение — относительный разброс:

$$\frac{\sigma_{D^2}}{E[D^2]} = \frac{0{,}1972\sqrt d}{d/6} = \frac{1{,}183}{\sqrt d}$$

Для самого расстояния (а не квадрата) отношение примерно вдвое меньше: $\dfrac{\sigma_D}{E[D]} \approx \dfrac{0{,}59}{\sqrt d}$.

Шаг 6. Числа.

$d$ относительный разброс расстояний
2 42%
10 19%
100 5,9%
1000 1,9%
10000 0,6%

Что это значит для kNN. В 1000-мерном пространстве расстояния от запроса до всех точек датасета отличаются друг от друга в среднем на 2%. Ближайший сосед почти не отличается от дальнейшего. Понятие «ближайший» теряет содержательность: разница между «похож» и «не похож» тонет в шуме — в точности той самой концентрации меры, которую мы только что посчитали. Это и есть математическая причина, по которой kNN, ядерные методы и наивные метрики близости деградируют в высоких размерностях.

Что с этим делают на практике:

  • Снижают размерность — PCA, UMAP, t-SNE, автоэнкодеры: работать не с сырыми 10000 признаками, а с 50 осмысленными
  • Учат метрику — metric learning, triplet loss, contrastive learning: эмбеддинги специально обучаются так, чтобы расстояния были информативны, а данные лежали на низкоразмерном многообразии внутри пространства
  • Меняют метрику — в высоких размерностях косинусная близость часто ведёт себя лучше евклидовой, потому что направление сохраняет информацию дольше, чем длина
  • Используют приближённый поиск — HNSW, IVF, LSH: строго ближайший сосед всё равно не имеет смысла, значит и искать его точно необязательно
  • Опираются на гипотезу многообразия — реальные данные (лица, тексты, звук) занимают не весь куб, а тонкое подмногообразие малой внутренней размерности; проклятие бьёт по номинальной размерности, а работает эффективная

Пример 13 (средний): сколько нужно точек, чтобы попасть в шар

В 10-мерный куб бросают случайные точки. Сколько в среднем понадобится бросков, чтобы хотя бы одна попала во вписанный шар?

Решение:

Шаг 1. Из таблицы $q(10) = 0{,}00249$.

Шаг 2. Число бросков до первого успеха имеет геометрическое распределение со средним $1/p$:

$$E[N] = \frac{1}{0{,}00249} \approx 402$$

Шаг 3. А что при $d = 20$? Там $q = 2{,}46\cdot10^{-8}$, значит

$$E[N] = \frac{1}{2{,}46 \cdot 10^{-8}} \approx 4{,}1 \cdot 10^{7}$$

Ответ: в 10D — около 400 бросков, в 20D — уже около 41 миллиона.

Это, кстати, объясняет, почему нельзя сэмплировать точки в многомерном шаре методом «бросай в куб и отбрасывай промахи» (rejection sampling). Уже при $d = 20$ метод бесполезен. Правильный способ — сгенерировать вектор из $d$ независимых нормальных величин, нормировать его (получив равномерную точку на сфере), а затем умножить на $r \cdot U^{1/d}$, где $U \sim U[0;1]$ — этот множитель даёт правильное распределение по радиусу.


ML-практика: случайный поиск, dropout и другие потомки Бюффона

Случайный поиск гиперпараметров против сетки

В 2012 году Джеймс Бергстра и Йошуа Бенжио опубликовали работу «Random Search for Hyper-Parameter Optimization», которая изменила стандартную практику подбора гиперпараметров. Их аргумент — чистая геометрическая вероятность.

Проблема сетки (grid search). Пусть у тебя $d$ гиперпараметров и ты хочешь проверить $m$ значений каждого. Итого $n = m^d$ запусков — экспоненциальный взрыв. При $d = 5$ и $m = 5$ это уже 3125 обучений модели.

Шаг 1. Первое наблюдение — «эффективная размерность». На практике из пяти гиперпараметров реально важны один-два; остальные почти не влияют на качество. Но сетка этого не знает: она честно перебирает всё.

Шаг 2. Сколько разных значений важного параметра пробует каждый метод?

  • Сетка из $n = m^d$ точек пробует всего $m = n^{1/d}$ различных значений каждого параметра. При $n = 100$ и $d = 5$ это меньше трёх значений на параметр — потому что остальные комбинации отличаются только неважными координатами
  • Случайный поиск из $n$ точек пробует $n$ различных значений каждого параметра, потому что все координаты сэмплируются независимо

При $n = 100$: сетка изучила важный параметр в 2-3 точках, случайный поиск — в 100. Разница катастрофическая, и вся она — от геометрии.

Шаг 3. Количественная оценка. Предположим, «хорошая» зона занимает долю $\alpha$ пространства гиперпараметров (скажем, лучшие 5% по качеству, $\alpha = 0{,}05$). Какова вероятность, что хотя бы одна из $n$ случайных проб попадёт в неё?

Каждая проба промахивается с вероятностью $1 - \alpha$, пробы независимы:

$$P(\text{хотя бы одно попадание}) = 1 - (1-\alpha)^n$$

Шаг 4. Сколько нужно проб для уверенности 95%? Решаем $1 - (1-\alpha)^n \ge 0{,}95$:

$$(1-\alpha)^n \le 0{,}05 \quad \Rightarrow \quad n \ge \frac{\ln 0{,}05}{\ln(1-\alpha)}$$

При $\alpha = 0{,}05$:

$$n \ge \frac{-2{,}9957}{\ln 0{,}95} = \frac{-2{,}9957}{-0{,}051293} \approx 58{,}4 \quad \Rightarrow \quad n = 59$$

Проверим: $0{,}95^{59} = 0{,}0485 < 0{,}05$ ✅, а $0{,}95^{58} = 0{,}0510 > 0{,}05$ ❌ — значит 59 действительно минимум.

Правило 60 проб: около 60 случайных проб гарантируют с вероятностью 95%, что хотя бы одна попадёт в лучший 5% по качеству участок пространства гиперпараметров. И это число не зависит от размерности — ровно как ошибка Монте-Карло.

Вот в этой независимости от $d$ и заключается вся магия. Сетка требует $m^d$ запусков; случайный поиск — 60, что при $d = 2$, что при $d = 20$.

Шаг 5. Обязательное уточнение — параметризация. Здесь мы наступаем прямо в парадокс Бертрана. «Доля пространства» зависит от того, какое распределение ты задал. Для learning rate правильно писать:

# ПЛОХО: 90% проб уйдут в [0.01, 0.1]
lr = np.random.uniform(1e-5, 1e-1)

# ХОРОШО: каждый порядок величины получит равную долю проб
lr = 10 ** np.random.uniform(-5, -1)

Для числа слоёв или размера батча — равномерно по целым или по $\log_2$. Для коэффициента dropout — равномерно по значению из $[0; 0{,}5]$. Каждый раз это твой выбор меры, и он определяет результат ровно так же, как выбор процедуры определял ответ у Бертрана.

Dropout как случайная маска

Постановка. Dropout, предложенный Джеффри Хинтоном с соавторами в 2012 году, работает так: на каждом шаге обучения каждый нейрон слоя выключается независимо с вероятностью $q$ (и остаётся с вероятностью $p = 1 - q$).

Шаг 1. Геометрическая модель. Реализация буквально геометрическая: генерируется вектор $\mathbf{u} = (u_1, \dots, u_n)$ независимых равномерных чисел из $[0;1]$, то есть точка в единичном гиперкубе $[0;1]^n$, и маска строится как $m_i = [u_i < p]$.

def dropout_forward(x, p_keep, rng):
    u = rng.random(x.shape)        # точка в гиперкубе [0,1]^n
    mask = (u < p_keep)            # какая "ячейка" куба нам выпала
    return x * mask / p_keep       # inverted dropout: делим на p, чтобы
                                   # сохранить матожидание активации

Каждая конкретная маска соответствует одной из $2^n$ «ячеек» гиперкуба, а вероятность конкретной маски с $k$ включёнными нейронами равна $p^k (1-p)^{n-k}$ — это в точности объём соответствующего прямоугольного параллелепипеда внутри куба. Геометрическая вероятность в чистом виде.

Шаг 2. Зачем делить на $p$. Без нормировки среднее значение активации падает в $p$ раз: $E[x \cdot m] = p \cdot x$. Тогда на инференсе (где dropout выключен) распределение входов следующего слоя было бы другим. Деление на $p$ (inverted dropout) возвращает матожидание на место: $E\left[\frac{x m}{p}\right] = x$.

Шаг 3. Сколько всего подсетей. При $n$ нейронах в слое существует $2^n$ различных масок. Для слоя из 512 нейронов это $2^{512} \approx 10^{154}$ — больше, чем атомов в наблюдаемой Вселенной. Обучение с dropout можно понимать как усреднение по экспоненциально большому ансамблю подсетей, из которого мы на каждом шаге сэмплируем ровно одну. Это Монте-Карло-оценка градиента ансамбля.

Пример 14 (средний): вероятность «мёртвого» слоя

В сети три подряд идущих слоя по 4 нейрона, применяется dropout с $q = 0{,}5$. Какова вероятность, что хотя бы один слой окажется полностью выключенным (сигнал не пройдёт)?

Решение:

Шаг 1. Вероятность, что все 4 нейрона одного слоя выключены:

$$P(\text{слой пуст}) = 0{,}5^4 = 0{,}0625$$

Шаг 2. Вероятность, что слой не пуст: $1 - 0{,}0625 = 0{,}9375$.

Шаг 3. Слои независимы, все три не пусты с вероятностью:

$$0{,}9375^3 = 0{,}823975$$

Шаг 4.

$$P(\text{хотя бы один пуст}) = 1 - 0{,}823975 = 0{,}176 \approx 17{,}6\%$$

Ответ: $\approx 17{,}6\%$ — каждый шестой шаг обучения полностью бесполезен.

Вывод для практики. Именно поэтому dropout не ставят на узкие слои. При 4 нейронах и $q = 0{,}5$ сеть «умирает» в 18% батчей; при 64 нейронах вероятность пустого слоя равна $0{,}5^{64} \approx 5{,}4\cdot10^{-20}$ — практически ноль. Ширина слоя должна быть достаточной, чтобы случайная маска не убивала сигнал.

Пример 15 (сложный): выживание пути через сеть

Сеть из $L = 10$ слоёв, dropout с вероятностью сохранения $p = 0{,}8$ на каждом слое. Рассмотрим один конкретный «путь» — цепочку из одного нейрона на каждом слое. Какова вероятность, что весь путь уцелеет за один проход? А какова ожидаемая доля уцелевших путей?

Решение:

Шаг 1. Нейроны выключаются независимо, значит путь уцелеет, если уцелеет каждое звено:

$$P(\text{путь цел}) = p^{L} = 0{,}8^{10}$$

Шаг 2. Считаем: $\ln(0{,}8^{10}) = 10 \ln 0{,}8 = 10 \cdot (-0{,}22314) = -2{,}2314$, значит

$$0{,}8^{10} = e^{-2{,}2314} \approx 0{,}1074$$

Шаг 3. По линейности матожидания доля уцелевших путей в среднем та же: $\approx 10{,}7\%$.

Шаг 4. А при $L = 30$ слоях?

$$0{,}8^{30} = (0{,}8^{10})^3 \approx 0{,}1074^3 \approx 0{,}00124$$

Одна восьмисотая. Практически ни один сквозной путь не выживает.

Ответ: при 10 слоях $\approx 10{,}7\%$, при 30 слоях $\approx 0{,}12\%$.

Что из этого следует. Именно поэтому в очень глубоких сетях dropout применяют выборочно: не на каждый слой, с меньшей интенсивностью, а часто заменяют на BatchNorm/LayerNorm, у которых регуляризующий эффект не разрушает сигнал экспоненциально по глубине. Расчёт занял три строки, а объясняет вполне конкретное архитектурное решение.

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

Геометрическая вероятность в ML — не иллюстрация, а рабочий инструмент прикидки. Сколько проб хватит для случайного поиска? $\ln(1-\text{доверие})/\ln(1-\alpha)$. Насколько плох kNN в этой размерности? Посмотри на относительный разброс $0{,}59/\sqrt d$. Не убьёт ли dropout узкий слой? $q^n$. Не сломается ли rejection sampling? $q(d)$. Все эти оценки делаются на салфетке за минуту и экономят часы GPU.


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

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

Задание 1: На отрезке $[0; 10]$ наудачу выбирается точка. Найди вероятность того, что она попадёт в отрезок $[3; 5]$.


Задание 2: Случайное число $x$ выбирается равномерно из $[0;1]$. Найди $P(x > 0{,}7)$.


Задание 3: Круглая мишень имеет радиус 10 см, в центре нарисован круг радиуса 2 см. Дротик попадает в мишень наудачу. Найди вероятность попадания в центральный круг.


Задание 4: В квадрат со стороной 1 вписан круг. Точка бросается наудачу в квадрат. Найди вероятность попадания в круг.


Задание 5: Автобус ходит строго каждые 20 минут. Пассажир приходит на остановку в случайный момент. Найди вероятность того, что он прождёт меньше 5 минут.


Задание 6: Точка бросается наудачу в квадрат $[0;2] \times [0;2]$. Найди вероятность того, что одновременно $x < 0{,}5$ и $y < 0{,}5$.


Задание 7: В куб с ребром 1 вписан шар. Найди вероятность того, что случайная точка куба попала в шар.


Задание 8: В слое нейросети применяется dropout: каждый нейрон сохраняется с вероятностью $p = 0{,}8$ независимо от остальных. Найди: а) вероятность того, что конкретный нейрон выключен; б) вероятность того, что два конкретных нейрона оба сохранились.


Задание 9: В прямоугольник $4 \times 3$ помещён круг радиуса 1 (целиком внутри). Найди вероятность попадания случайной точки прямоугольника в круг.


Задание 10: Случайное число выбирается равномерно из $[0;1]$. Найди вероятность того, что оно попадёт в объединение отрезков $[0{,}2; 0{,}5] \cup [0{,}8; 1]$.


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

Задание 11: Двое договорились встретиться между 12:00 и 13:00. Каждый приходит в случайный момент и ждёт 20 минут. Найди вероятность встречи.


Задание 12: В условиях предыдущей задачи (окно 60 минут) найди, сколько минут должен ждать каждый, чтобы вероятность встречи была ровно $0{,}75$.


Задание 13: Числа $x$ и $y$ независимо выбираются наудачу из $[0;1]$. Найди $P(x + y < 1)$.


Задание 14: Числа $x$ и $y$ независимо равномерны на $[0;1]$. Найди $P(xy < 0{,}5)$.


Задание 15: Палку длины 1 ломают в двух случайных независимых точках. Найди вероятность того, что из трёх кусков можно сложить треугольник.


Задание 16: Игла длины 2 см бросается на плоскость, разлинованную параллельными прямыми с шагом 5 см. Найди вероятность пересечения.


Задание 17: Проведён эксперимент Бюффона с иглой, у которой $\ell = d$. Сделано 1000 бросков, зафиксировано 637 пересечений. Оцени $\pi$.


Задание 18: Методом Монте-Карло бросили 10 000 точек в единичный квадрат; 7845 из них попали в четверть круга радиуса 1. Оцени $\pi$.


Задание 19: Сколько точек нужно бросить методом Монте-Карло, чтобы стандартная ошибка оценки $\pi$ не превышала $0{,}01$?


Задание 20: Найди долю объёма 4-мерного шара, вписанного в 4-мерный куб с ребром 1.


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

Задание 21: В круге радиуса $R$ наудачу проводится хорда. Найди вероятность того, что она длиннее стороны вписанного равностороннего треугольника, тремя способами: (а) выбирая наудачу два конца хорды на окружности; (б) выбирая наудачу расстояние от центра до хорды; (в) выбирая наудачу середину хорды внутри круга. Объясни расхождение.


Задание 22: Числа $x, y, z$ независимо равномерны на $[0;1]$. Найди $P(x + y + z < 1)$ и обобщи результат на $n$ переменных.


Задание 23: Точка бросается наудачу в квадрат со стороной 1. Найди вероятность того, что расстояние от неё до ближайшей стороны меньше $0{,}1$. Затем — тот же вопрос для 100-мерного гиперкуба.


Задание 24: Интеграл $I = \int_0^1 \sqrt{1-x^2}\,dx$ оценивают двумя методами Монте-Карло: (А) «попал/не попал» — доля точек квадрата под кривой; (Б) «среднее значение» — среднее от $\sqrt{1-x_i^2}$ по равномерным $x_i$. Во сколько раз метод Б эффективнее по числу необходимых сэмплов?


Задание 25: Используя рекуррентную формулу $q(d) = q(d-2)\cdot\dfrac{\pi}{2d}$ для доли объёма вписанного шара в кубе, найди наименьшую чётную размерность, при которой эта доля становится меньше одной миллионной.


Задание 26: При случайном поиске гиперпараметров «хорошей» считается область, занимающая 5% объёма пространства поиска. Сколько независимых случайных проб нужно, чтобы с вероятностью не менее 0,95 хотя бы одна попала в эту область? Зависит ли ответ от размерности пространства?


Задание 27: В сети три последовательных слоя по 4 нейрона, применяется dropout с вероятностью выключения $q = 0{,}5$. Найди вероятность того, что хотя бы один слой окажется полностью выключенным.


Задание 28: Ошибка метода трапеций на равномерной сетке равна $O(h^2)$, где $h$ — шаг сетки. Ошибка метода Монте-Карло равна $O(n^{-1/2})$, где $n$ — число сэмплов. Начиная с какой размерности $d$ Монте-Карло выигрывает? Сколько узлов сетки понадобится для точности $10^{-2}$ при $d = 10$?


Задание 29: На окружности наудачу и независимо выбираются три точки. Найди вероятность того, что центр окружности лежит внутри образованного ими треугольника.


Задание 30: В 20-мерный единичный куб бросают случайные точки, чтобы получить точку внутри вписанного шара (rejection sampling). Доля объёма шара равна $q(20) = 2{,}46\cdot10^{-8}$. Сколько бросков нужно, чтобы получить хотя бы одну удачную точку с вероятностью не менее 0,95? Что делать вместо этого?


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

Ошибка 1: считать, что «вероятность = 0» означает «невозможно»

Неправильно: рассуждать так — «вероятность попасть точно в середину отрезка равна нулю, значит попасть в середину нельзя».

Правильно: в непрерывной модели каждый отдельный исход имеет вероятность 0, но какой-то исход обязательно происходит. Ноль вероятности означает «мера этого множества равна нулю», а не «этого не бывает». Событие вероятности 1 называют «почти достоверным» (almost sure), и это не то же самое, что достоверное.

💡 Почему важно: без этого различия непонятно, как вообще работает непрерывная вероятность. В ML это всплывает постоянно: вероятность того, что случайно инициализированная матрица окажется вырожденной, равна нулю — но это не гарантия, что численно она не окажется плохо обусловленной. Ноль в теории и ноль в float64 — разные вещи.


Ошибка 2: складывать меры пересекающихся областей

Неправильно: «благоприятны интервалы $[0;3]$ и $[2;5]$, значит общая длина $3 + 3 = 6$».

Правильно: интервалы пересекаются по $[2;3]$, и эта часть посчиталась дважды. Верно: $\mu = 3 + 3 - 1 = 5$. Формула включений-исключений в геометрической вероятности работает так же, как в дискретной:

$$\mu(A \cup B) = \mu(A) + \mu(B) - \mu(A \cap B)$$

💡 Почему важно: это самая частая арифметическая ошибка в задачах на объединение областей. Всегда рисуй картинку и проверяй, пересекаются ли куски. Проверка на адекватность: если получившаяся вероятность больше 1 — ты почти наверняка сложил пересекающиеся области.


Ошибка 3: путать «наудачу» с конкретным распределением

Неправильно: решать задачу про случайную хорду (или случайный треугольник, случайную матрицу, случайный learning rate), не задав явно процедуру генерации, и считать полученный ответ единственно верным.

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

💡 Почему важно: это парадокс Бертрана в чистом виде, и в ML он стоит реальных денег. Написав uniform(1e-5, 1e-1) вместо 10 ** uniform(-5, -1) для learning rate, ты отдаёшь 99% бюджета поиска одному порядку величины и никогда не находишь оптимум. Всегда пиши распределение явно, вместе с параметризацией.


Ошибка 4: переносить трёхмерную интуицию в многомерное пространство

Неправильно: думать, что вписанный в куб шар «занимает большую часть куба», потому что в 3D он занимает 52%.

Правильно: доля $q(d) = \dfrac{\pi^{d/2}}{\Gamma(d/2+1)\,2^d}$ стремится к нулю быстрее любой геометрической прогрессии. Уже при $d = 10$ это 0,25%, при $d = 20$ — одна сорокамиллионная. Весь объём сидит в $2^d$ углах, а расстояние от центра до угла равно $\sqrt d/2$ против $1/2$ до грани.

💡 Почему важно: отсюда растёт всё проклятие размерности. Наивные подходы — rejection sampling, поиск ближайших соседей в сыром пространстве признаков, равномерное покрытие сеткой — ломаются не «иногда», а гарантированно и катастрофически. Прежде чем применять метод, основанный на геометрии, посчитай, как он ведёт себя при твоей $d$.


Ошибка 5: ждать от Монте-Карло быстрой сходимости

Неправильно: «увеличу число сэмплов вдвое — ошибка упадёт вдвое».

Правильно: ошибка падает как $1/\sqrt n$. Удвоение $n$ уменьшает ошибку всего в $\sqrt 2 \approx 1{,}41$ раза. Чтобы уменьшить ошибку в 10 раз, нужно увеличить $n$ в 100 раз.

💡 Почему важно: это ровно та же формула, по которой шум оценки градиента падает с ростом батча. Переход с батча 64 на 256 (в 4 раза больше вычислений) снижает шум градиента лишь вдвое — знание этой арифметики предостерегает от бессмысленного раздувания батчей и объясняет, почему масштабирование batch size даёт всё меньшую отдачу.


Ошибка 6: применять формулу Бюффона при $\ell > d$

Неправильно: подставить в $P = \dfrac{2\ell}{\pi d}$ иглу длиннее расстояния между прямыми — например, $\ell = 3d$ — и получить $P = \dfrac{6}{\pi} \approx 1{,}91$.

Правильно: формула выведена при условии $\ell \le d$, когда игла может пересечь не более одной прямой. Для длинной иглы задача решается иначе (и там считают уже среднее число пересечений, а не вероятность).

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


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

Неправильно: в задаче о разломе палки посчитать площадь области только для $x < y$ и выдать $1/8$ как ответ.

Правильно: случай $y < x$ равновероятен и даёт такую же благоприятную область. Полный ответ $1/8 + 1/8 = 1/4$.

💡 Почему важно: переход к $\min$ и $\max$ — стандартный приём в задачах на две случайные точки, и в нём легко потерять множитель 2. Простая проверка: сложи площади благоприятных областей по всем случаям упорядочивания и убедись, что общая область исходов покрыта целиком.


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

Геометрическая вероятность — это отношение мер: $P(A) = \dfrac{\mu(A)}{\mu(\Omega)}$, где $\mu$ — длина (1D), площадь (2D), объём (3D) или $n$-мерный объём. Она обобщает классическое определение на бесконечное (континуальное) число исходов.

✅ Область $\Omega$ обязана иметь конечную ненулевую меру. Равномерного распределения на бесконечной области (например, на всей прямой) не существует — поэтому в коде всегда указываются границы.

Ноль вероятности $\ne$ невозможность. Отдельная точка имеет меру ноль, но исход опыта всегда является какой-то конкретной точкой.

✅ Главный рабочий приём: считай дополнение. Область «не встретились», «не попал», «все внутри» почти всегда проще по форме, чем прямая благоприятная область.

Задача о встрече: двое приходят наудачу в интервал длины $T$ и ждут время $t$; $P = 1 - \left(\dfrac{T-t}{T}\right)^2$. Приём — перевести условие $|x-y|\le t$ в полосу на квадрате.

Разлом палки: треугольник складывается тогда и только тогда, когда каждый кусок короче половины. При двух независимых разломах $P = 1/4$; при последовательном разломе длинного куска $P = \ln 4 - 1 \approx 0{,}386$ — процедура меняет ответ.

Игла Бюффона: $P = \dfrac{2\ell}{\pi d}$ при $\ell \le d$. Первый в истории способ измерить $\pi$ экспериментом; предок метода Монте-Карло.

Парадокс Бертрана: три способа задать «случайную хорду» дают $1/3$, $1/2$ и $1/4$. Парадокс не в математике, а в постановке: слово «наудачу» без указания процедуры не задаёт вероятностную меру.

Монте-Карло: $\hat\pi = \dfrac{4k}{n}$, стандартная ошибка $\approx \dfrac{1{,}64}{\sqrt n}$. Точность растёт как $1/\sqrt n$ — каждый дополнительный знак стоит стократного роста числа сэмплов.

Монте-Карло-интегрирование даёт ошибку $O(n^{-1/2})$ независимо от размерности, тогда как сетка даёт $O(n^{-2/d})$. Перелом при $d = 4$: начиная с пяти измерений сеточные методы безнадёжно проигрывают.

Проклятие размерности: доля вписанного шара в кубе $q(d) = q(d-2)\cdot\dfrac{\pi}{2d}$ — 78% при $d=2$, 52% при $d=3$, 0,25% при $d=10$, $2{,}5\cdot10^{-8}$ при $d=20$. Весь объём — в углах; относительный разброс расстояний падает как $0{,}59/\sqrt d$, и «ближайший сосед» теряет смысл.

Случайный поиск бьёт сетку: $\approx 60$ случайных проб дают 95% шанс попасть в лучшие 5% пространства — при любой размерности; сетке нужно $m^d$ точек. И обязательно задавай масштаб явно: 10 ** uniform(-5, -1), а не uniform(1e-5, 1e-1).


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

Что было раньше. В уроке 226 ты разобрал случайные события и пространство элементарных исходов, а в уроке 227 — классическое определение вероятности $P = m/n$ для конечного числа равновозможных исходов. Геометрическая вероятность — прямое продолжение этой линии: та же идея «благоприятное к общему», но вместо счёта исходов используется мера. Из школьной геометрии здесь работает всё: площади треугольников и кругов, объёмы пирамид и шаров, неравенство треугольника. Из анализа пригодились интегралы — при выводе формулы Бюффона и в задаче о последовательном разломе палки.

Что дальше. В уроке 229 появятся теоремы сложения и умножения — и окажется, что аддитивность меры, которой мы уже пользовались (площади непересекающихся областей складываются), это в точности теорема сложения для несовместных событий. В уроке 230 условная вероятность даст строгий смысл фразе «при условии, что первый разлом произошёл в точке $x$» — тому самому приёму, которым мы решали задачу о последовательном разломе. Урок 236 введёт плотность вероятности, и геометрическая вероятность станет её частным случаем: равномерное распределение — это постоянная плотность, а формула $P = \mu(A)/\mu(\Omega)$ превратится в интеграл $P(A) = \int_A p(x)\,dx$. Дальше урок 240 покажет равномерное распределение в ряду других, 241-242 (ЦПТ и закон больших чисел) объяснят, почему частота сходится к вероятности и откуда берётся $1/\sqrt n$ в оценке Монте-Карло, а 246 (оценка параметров) даст строгие доверительные интервалы для того, что мы здесь считали «на глазок».

Где это применяется в жизни, данных и ML:

🤖 В машинном обучении: dropout как случайная маска в гиперкубе, случайный поиск гиперпараметров, инициализация весов из равномерного распределения (Xavier/Glorot), аугментация данных со случайными кропами и поворотами, оценка градиента по мини-батчу как Монте-Карло-оценка интеграла, MC-dropout для оценки неопределённости предсказаний.

📊 В data science: бутстрэп для доверительных интервалов, перестановочные тесты, оценка p-value симуляцией там, где аналитическое распределение неизвестно, A/B-тесты со случайным разбиением трафика.

🎲 В байесовской статистике: MCMC (Metropolis-Hastings, Hamiltonian Monte Carlo, NUTS), вариационный вывод, где интеграл по пространству параметров размерности в тысячи берётся только сэмплированием.

🎮 В компьютерной графике: path tracing и все физически корректные рендереры — это буквально интегрирование уравнения рендеринга методом Монте-Карло; «зернистость» недорендеренной картинки и есть та самая ошибка $\propto 1/\sqrt n$.

💰 В финансах: оценка стоимости опционов и портфельных рисков (VaR) симуляцией траекторий; сценарный анализ.

🔬 В физике и инженерии: транспорт нейтронов (исходная задача Улама и фон Неймана), молекулярная динамика, статистическая механика, расчёт надёжности систем.


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

💡 Бюффон начал не с иглы, а с монеты. В 1733 году граф де Бюффон анализировал салонную игру «франк-карро»: монету бросали на плитчатый пол, и игрок выигрывал, если монета не задевала швов. Игла появилась только в публикации 1777 года — и именно она принесла задаче бессмертие, потому что дала в ответе $\pi$.

💡 Знаменитый эксперимент Лаццарини почти наверняка подделан. В 1901 году итальянец Марио Лаццарини сообщил, что 3408 бросков иглы дали ему $\pi \approx 355/113$ — семь верных знаков. Статистик Ли Бэджер в 1994 году показал, что вероятность честно получить такую точность на такой выборке ничтожна, а числа 3408 и 1808 подозрительно точно подобраны под известную китайскую дробь Цзу Чунчжи. Для семи знаков честному экспериментатору понадобилось бы порядка $10^{13}$ бросков.

💡 Метод Монте-Карло родился из пасьянса. В 1946 году Станислав Улам, восстанавливаясь после болезни, пытался посчитать вероятность схождения пасьянса «Солитер». Комбинаторика оказалась безнадёжна, и он подумал: а не проще ли разложить пасьянс сто раз? Фон Нейман немедленно перенёс идею на расчёт диффузии нейтронов, а имя методу дал Николас Метрополис — в честь казино в Монако, где играл дядя Улама.

💡 Парадокс Бертрана имеет экспериментальный ответ — и он зависит от эксперимента. Если бросать соломинки на нарисованный круг с большой высоты, частота «длинных» хорд сходится к $1/2$ — то есть к варианту «случайный радиус», как и предсказывал Эдвин Джейнс из принципа инвариантности. Но если крутить круг под неподвижной иглой или выбирать точки по краю — получатся другие числа. Природа не «знает» правильного ответа; ответ определяет процедура.

💡 Случайный поиск победил сетку не мощностью, а геометрией. Работа Бергстры и Бенжио (2012) не предложила никакого нового алгоритма — она просто показала, что при $n$ пробах сетка изучает каждый параметр в $n^{1/d}$ точках, а случайный поиск — в $n$ точках. Одно наблюдение из геометрической вероятности изменило стандартную практику всей индустрии, и сегодня grid search в серьёзных пайплайнах почти не встречается.

💡 Шар, который вылезает из куба, оставаясь внутри него. Разрежем единичный куб на $2^d$ одинаковых подкубов с ребром $1/2$ и в каждый впишем шар радиуса $1/4$. Затем поместим в центр куба ещё один шар, касающийся всех этих $2^d$ шаров. Его радиус равен $\frac{\sqrt d}{4} - \frac14 = \frac{\sqrt d - 1}{4}$: при $d = 2$ это $0{,}104$, при $d = 3$ — $0{,}183$, крошечный шарик в щели между остальными. Но радиус растёт как $\sqrt d$, и при $d = 10$ он равен $\frac{\sqrt{10}-1}{4} \approx 0{,}541$ — больше половины ребра куба. Центральный «маленький» шар начинает вылезать за грани куба, хотя все $2^d$ шаров, которых он касается, лежат внутри. Многомерная геометрия не просто контринтуитивна — она откровенно издевается.


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

1. Считай дополнение, а не саму область

Если условие содержит «хотя бы один», «не менее», «встретились» — почти наверняка выгоднее посчитать противоположное событие. Область «не встретились» в задаче о встрече — это два аккуратных треугольника; область «встретились» — шестиугольник, который считать втрое дольше. То же с «хотя бы одна точка в области»: $1 - (1-p)^n$ вместо суммы по всем комбинациям.


2. Две случайных величины — рисуй квадрат

Как только в задаче появились два независимых равномерных числа, немедленно переводи её на плоскость: точка $(x,y)$ в прямоугольнике, условие — область, вероятность — площадь. Дальше нужна только школьная геометрия. Этот приём закрывает 80% задач на геометрическую вероятность, и он же — прототип работы с совместными распределениями.


3. Для подобных фигур вероятность — это степень коэффициента подобия

Если благоприятная фигура подобна всей области с коэффициентом $k$, то $P = k^d$, где $d$ — размерность: $k^2$ на плоскости, $k^3$ в пространстве. Круг радиуса 2 в мишени радиуса 10: $P = (0{,}2)^2 = 0{,}04$, без единой формулы площади. Все $\pi$ сократятся ещё до того, как ты их напишешь.


4. Проверяй ответ симуляцией в три строки

Любую задачу на геометрическую вероятность можно проверить за 10 секунд:

import numpy as np
rng = np.random.default_rng(0)
x, y = rng.random(10**7), rng.random(10**7)
print(((np.abs(x - y) <= 0.25)).mean())   # задача о встрече, T=1, t=0.25
# ~0.4375 — совпадает с 1 - (0.75)**2

При $10^7$ сэмплах стандартная ошибка порядка $10^{-4}$ — этого хватает, чтобы поймать любую ошибку в рассуждении. Правило: если аналитика и симуляция расходятся больше чем на $3\sigma$, ошибка в аналитике (или в симуляции — но это видно сразу).


5. Всегда пиши распределение явно, включая масштаб

Не «случайный learning rate», а 10 ** rng.uniform(-5, -1). Не «случайный угол», а rng.uniform(0, 2*np.pi). Не «случайная точка в шаре», а нормализованный гауссов вектор с радиальным множителем $u^{1/d}$. Это дисциплина, прямо выведенная из парадокса Бертрана, и она экономит недели непонятных экспериментов.


6. Оценивай применимость геометрических методов по размерности заранее

Перед тем как писать rejection sampling, поиск ближайших соседей или сеточное покрытие, посчитай на салфетке долю объёма: $q(d) = q(d-2)\cdot\frac{\pi}{2d}$ для шара в кубе, $0{,}59/\sqrt d$ для относительного разброса расстояний, $m^d$ для узлов сетки. Пять минут арифметики спасают от суток бесполезных вычислений.


7. Помни константу $1{,}64/\sqrt n$ как индикатор «дорого/дёшево»

Любая Монте-Карло-оценка имеет ошибку вида $C/\sqrt n$. Прикинь $C$ (через $\sigma$ величины, которую усредняешь), подставь нужную точность — и сразу увидишь, реалистичен ли расчёт. Если получается $10^{12}$ сэмплов, ищи не более мощный сервер, а технику уменьшения дисперсии: importance sampling, control variates, антитетические переменные или квазислучайные последовательности Соболя.


8. Метод «среднего значения» почти всегда лучше «попал/не попал»

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


Геометрическая вероятность — это тот редкий раздел, где школьная формула площади треугольника напрямую превращается в инструмент, которым считают риски банков, рендерят кадры фильмов и обучают нейросети. Ты начал с точки на отрезке, а закончил расчётом, объясняющим, почему kNN перестаёт работать в высоких размерностях и сколько проб нужно случайному поиску. Между этими двумя вещами — одна-единственная идея: вероятность есть отношение мер.

И главный урок здесь даже не про формулы, а про дисциплину мышления, которую подарил Бертран: не бывает «просто случайно». Каждый раз, когда ты пишешь в коде слово random, ты делаешь выбор меры — явный или неосознанный, и результат будет зависеть от него не меньше, чем от самого алгоритма. Осознанный выбор распределения отличает инженера, который понимает, что делает, от того, кто перебирает seed'ы в надежде на удачу.

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

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

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

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