Когда мне предложили выступить здесь с докладом, первое, что я сделал, — полез на YouTube смотреть плейлист с прошлыми выступлениями «Курилки Гутенберга». За последние полгода здесь прочитали 13 докладов по истории, столько же — по биологии, тройку лидеров замыкает космос с 12 докладами. Были 11 докладов по литературе и философии, 10 по психологии, 8 по физике и химии, 7 по экономике и энергетике. По математике — ноль.
Почему так происходит? Математика оперирует слишком абстрактными категориями. Одно из самых простых понятий математического анализа, предел функции, на формальном языке выглядит слишком громоздко и сложно, несмотря на то, что его объясняют еще в школе буквально «на пальцах». Перед человеком, который пытается рассказать что-то содержательное по математике, неизбежно встает вопрос, каким образом это сделать, расшифровать, привести примеры и замотивировать слушателя, и я постараюсь решить эту задачу в контексте теории вероятностей.
Центральное понятие теории вероятностей — случайная величина. Проще всего представить себе игральный кубик: ему порядка пяти с половиной тысяч лет, это где-то посередине между изобретением колеса и письменности. Когда мы говорим о кубике как случайной величине, мы предполагаем, что у него есть шесть граней, на каждой записано число от одного до шести, и других вариантов быть не может. Вторая компонента случайной величины — это распределение вероятностей, в случае с кубиком — вероятность выпадения каждой из граней мы считаем равной 1/6. Здесь вероятности равны между собой, хотя обычно это не обязательно так. Единственное накладываемое условие — каждая вероятность должна быть не отрицательной, и в сумме они должны давать 1.
Представив себе множество всех элементарных исходов, мы можем представить себе разнообразные события. Например, событие X: выпало нечетное количество очков. Сюда подойдут исходы 1, 3 и 5, и вероятность такого исхода — 3/6, или ½. Другой пример, событие Y: выпало количество очков, строго большее 3. Тогда нас устроят 4, 5 и 6, и вероятность событий X и Y равны между собой и равны ½. Теперь, когда у нас есть события, мы можем устраивать из них комбинации. Если мы говорим о том, что события X и Y произошли одновременно, это значит, что выпало нечетное количество очков, строго большее 3; сюда подойдет только 5, и вероятность такого исхода — 1 из 6, то есть ⅙. Похожим образом устроено объединение событий, когда выпало или нечетное количество очков, или количество очков строго большее трех. Этому событию удовлетворяют все грани, кроме 2, и его вероятность — 5/6. Когда мы оперируем такими простыми схемами и все пространство событий перед нами, то здесь довольно сложно допустить ошибку. Тем не менее, это возможно.
Я учился на военной кафедре (а это уникальное сочетание унижения и безудержного веселья), и однажды преподаватели там решили дать нам немного математики, небольшой кусочек из раздела, который называется теорией игр. Нам предложили решить следующую задачу. Есть вражеский танк, который движется на наши позиции. Мы выставляем две пушки, у каждой по одному снаряду, и стреляют они одновременно. Танк считается пораженным в том случае, если в него попал хотя бы один снаряд, а поскольку танк подъехал достаточно близко, мы считаем, что вероятность поражения — 80%, или 0,8. Преподаватель объяснил нам задачу так: вы все тут математики, и не мне вам объяснять, что вероятность уничтожения танка будет составлять 0,8 + 0,8. Затем он сложил числа в уме, получил величину больше 1, несколько смутился и сказал: «Ну, танк будет поражен практически наверняка».
В чем он ошибся? Если изображать пространство вероятностных исходов в виде квадрата, то у нас будут четыре события: событие A — танк поражен дважды, событие B — танк поражен первой пушкой, но не второй, событие C — наоборот, и событие D — танк остался невредимым. Когда преподаватель складывал 0,8 и 0,8, он сложил вероятности AC и AB, то есть дважды учел событие, А — вероятность поражения танка двумя пушками одновременно. Из его результата нужно вычесть 0,8 во второй степени, и тогда мы получим правильный ответ — 0,96, или 96%. Эту же задачу гораздо проще решить другим образом. Нас интересует сумма вероятностей событий A, B и C. Это то же самое, что из единицы вычесть вероятность события D: 1 минус 0,2 во второй степени — тот же ответ, 0,96.
В некоторых задачах изобразить пространство возможных исходов очень трудно. К примеру, мы будем бросать не один кубик, а сразу сто, и нас будет интересовать сумма очков, которые выпали на всех ста кубиках. Минимальное значение суммы — 100, если на каждом кубике выпала единица, максимальное — 600, и, допустим, мы хотим узнать, с какой вероятностью сумма очков будет составлять от 350 до 500. Если мы попытаемся изобразить пространство элементарных исходов в виде таблицы, то ее размеры будут 6 (для одного кубика) * 6 (для второго) и так далее, 100 раз, то есть 6 в сотой степени. Это примерно равно 10 в 78 степени, и, опять же, это примерно составляет одну сотую всех элементарных частиц в наблюдаемой вселенной — такая таблица вряд ли бы поместилась на слайде моей презентации. Но мы можем написать короткую программу, использовать для этого любой компьютер или телефон, пятью строчками кода прогнать эксперимент миллион раз и посчитать долю сумм, которые попали в указанный диапазон — вероятность составит приблизительно 51,2%. Такой метод, когда мы прогоняем множество экспериментов и считаем долю удовлетворяющих условиям событий, называется методом Монте-Карло. Он зародился еще во время Второй мировой войны, но был долгое время засекречен, поэтому первая публикация с его упоминанием относится к 1949 году; после войны метод Монте-Карло использовали для того, чтобы обуздать энергию атома и направить ее в мирное русло, то есть для проектирования безопасных реакторов.
В 1978 году было проведено исследование среди медицинских работников. Им задавали вопрос: есть редкая болезнь, которой болеет всего один человек из тысячи. Есть тест, который мы предлагаем вам опробовать, его точность — 99%, и вероятность ложноположительного срабатывания составляет 1%. Берем случайного человека с улицы, предлагаем ему пройти тест на эту болезнь, и получаем положительный результат. Какова вероятность того, что пациент в этом случае болен?
Если бы она составляла 99%, это было бы слишком просто. Чтобы получить верный ответ, нужно опять рассмотреть несколько событий. Событие A — пациент болен. Вертикальной чертой над буквой мы обозначаем отрицание события, то есть событие Ā — пациент не болен, здоров. Событие B — тест положительный, B̅ — отрицательный. Нас просят найти вероятность события A при условии B, и для этого нам нужно рассматривать только тех людей, которые попали в категорию B. Это может случиться в двух случаях, когда человек действительно болен или когда он попал на ложноположительное срабатывание, то есть в сумме таких будет 0,001 (один больной из тысячи) плюс 0,999, умноженное на количество ложноположительных срабатываний — 0,01. Тогда вероятность P (AB) составит 0,001/(0,001+0,999*0,01)≈9,1%. Давайте еще раз осмыслим, что произошло: у нас достаточно точный тест, тем не менее, вероятность того, что пациент действительно болен — меньше десяти процентов.
Это мы посчитали руками. Как удостовериться в том, что мы нигде не ошиблись? Давайте применим метод Монте-Карло. Для этого возьмем миллион людей, заразим каждого тысячного, а после этого будем прогонять тест и смотреть, кто из них попал в какую категорию. Результат на миллионе испытаний будет примерно тем же. Чтобы повысить точность нашего теста, нужно провести повторный; вероятность того, что после двух положительных результатов теста человек действительно болен, составляет почти 91%.
Вероятности часто бывают весьма обманчивы. Поэтому всегда будьте аккуратны, если речь идет не о каких-то абстрактных вероятностях вроде встречи с динозавром на улице, а о таких, которые касаются каждого, — я говорю о медицинских и финансовых рисках. И если вы не уверены в том, что можете корректно оценить вероятность, всегда есть верный друг — метод Монте-Карло.
Полную версию лекции Антона Антонова можно посмотреть на видео, подготовленном медиагруппой «Мегабайт».