Симуляция является чрезвычайно мощным инструментом, который в настоящее время используется во множестве областей: от финансовых систем и политики в сфере ядерного вооружения до влияния на экологию и исследований человеческого поведения. Некоторые философы науки даже описывают симуляцию как новый метод научного познания. Но знакомство с предметом мы начнем, как обычно, с пары простых примеров.
В своей книге «Голый хирург» (The Naked Surgeon) Самер Нашеф описывает пример симуляции в области медицины. Провести исследование Нашефа подтолкнул случай Гарольда Шипмана – самого плодовитого серийного убийцы Великобритании всех времен. Шипман был семейным врачом, осужденным за убийство 15 своих пациентов, но, как полагают, за 25-летнюю практику он убил более 250 человек. Нашеф захотел узнать, может ли что-нибудь подобное произойти в больницах Государственной службы здравоохранения, находящихся под пристальным наблюдением всевозможных структур. Чтобы проверить эту идею, он взял реальную отчетность двух своих коллег и случайным образом подставил вместо некоторых успешных результатов лечения неудачные. При этом он увеличил скорость, с которой пациенты как бы умирали, приблизив ее к средней скорости смерти жертв Шипмана. Иначе говоря, он генерировал темные данные, чтобы показать, что могло бы произойти, если бы такой человек, как Шипман, находился на свободе и работал в больнице Государственной службы здравоохранения. Исследование Нашефа наглядно демонстрирует силу симуляции: «Результаты эксперимента можно назвать выдающимися… Гарольд Шипман оставался незамеченным в течение 25 лет… В нашем эксперименте доктор Джон, условный злодей и анестезиолог, был обнаружен через 10 месяцев, а его коллега доктор Стив, хирург, и того быстрее – в течение восьми месяцев».
Возможно, вам знакомо применение симуляции в таких программных продуктах, как симуляторы полета. Они используются для обучения пилотов, чтобы те могли отрабатывать действия в экстремальных и непредвиденных ситуациях без риска падения реального самолета. Эти искусственно созданные условия точно так же представляют собой данные, которые могли бы возникнуть.
Чтобы лучше понять саму идею симуляции, давайте рассмотрим ее с точки зрения математики, а точнее, поведения подброшенной монеты.
Используя элементарную статистику, я могу вычислить вероятность того, что честная монета, подброшенная 10 раз, упадет орлом вверх менее пяти раз: она будет равняться вероятности того, что орел выпадет четыре раза, плюс вероятность того, что он выпадет три раза… и так до вероятности, что орел вообще не выпадет ни разу. Эта общая суммарная вероятность составит 0,377. И все бы хорошо, но для выполнения таких вычислений требуется знать основы биномиального распределения. Однако существует альтернативный способ оценки требуемой вероятности. Мы могли бы подбросить монету 10 раз и подсчитать, сколько раз выпал орел. Правда, одного такого цикла будет явно недостаточно – орел просто выпадет либо больше пяти раз, либо меньше, но это никак не поможет нам узнать вероятность того, что орел выпадет менее пяти раз. Нам потребуется повторить цикл подбрасывания монеты множество раз, чтобы увидеть, какая доля этих циклов дает выпадение менее пяти орлов. Чем больше раз мы повторим цикл, тем более точную оценку мы получим – закон больших чисел, упомянутый в главе 2, прямо говорит об этом. Но такой процесс вскоре может стать довольно утомительным, поэтому вместо того, чтобы тратить свою жизнь на столь бессмысленное занятие, лучше запустить компьютерную симуляцию, в которой случайным образом будут генерироваться 10 значений, каждое из которых равно либо 0, либо 1 (это наши орлы и решки) с вероятностью «выпадения» 1/2. Проделав это снова, и снова, и снова…, мы сможем узнать, какова вероятность выпадения менее пяти орлов.
Я запускал эту симуляцию миллион раз. Доля тех из них, в которых орел выпал менее пяти раз, составляла 0,376, что недалеко от истинного значения вероятности. И обратите внимание на слово «миллион» – симуляция как метод стала по-настоящему возможной лишь с появлением современных компьютеров.
Это, конечно, простейший пример – во-первых, я мог запустить симуляцию на своем ноутбуке, а во-вторых, я знал правильный ответ. Но есть куда более сложные симуляции, например погоды и климата, созданные на основе обширных наборов данных и с применением самых мощных на сегодняшний день компьютеров. В этих симуляциях используются чрезвычайно сложные модели взаимосвязанных процессов, влияющих на климат: атмосферных потоков, океанских течений, солнечного излучения, биологических систем, вулканической активности, загрязнения окружающей среды и прочих воздействий. Реактивный характер таких систем означает, что им присущи специфические проблемы: толкните мяч, и он покатится от вас в направлении приложения силы, но «толкните» сложную систему, и она среагирует неожиданным, а зачастую просто непредсказуемым образом. Понятие хаоса в научном смысле, как, например, в теории хаоса, хорошо соотносится с фундаментальной непредсказуемостью метеорологических систем. Уравнения, описывающие такую сложность, часто не могут быть решены в принципе – получить четкие ответы мешает содержащаяся в них неопределенность. В этом случае на помощь приходит симуляция, которая, многократно генерируя данные из моделей, показывает, как могут вести себя погода и климат. Результаты этих симуляций дают нам представление о диапазоне возможного поведения систем, например о том, как часто будут возникать экстремальные явления, такие как наводнения, ураганы и засухи. Каждый прогон такой симуляции позволяет получить данные, которые могли бы возникнуть, но которые мы на самом деле не наблюдали, и потому они являются темными.
В экономике и финансах используется тот же подход. Современные экономические модели по понятным причинам довольно сложны. Общество состоит из миллионов людей, которые взаимодействуют друг с другом, перемещаются каждый по своему маршруту, организованы в самые разные социальные структуры и подвергаются воздействию внешних сил. Написание и решение математических уравнений, которые позволили бы увидеть, как такие системы должны меняться с течением времени, весьма проблематично. Симуляции на основе сгенерированных данных, которые только могли бы возникнуть, позволяют нам исследовать, как общество будет развиваться в тех или иных условиях, как люди будут реагировать на глобальные изменения, такие как введение торговых тарифов, войны, неблагоприятные погодные условия и т. д.
Более утонченное применение метод симуляции находит в современном анализе данных. В частности, так называемая байесовская статистика, описанная далее в этой главе, часто приводит к очень сложным и трудноразрешимым математическим уравнениям. Поиск решения таких уравнений затруднен или попросту невозможен, но на основе симуляции были разработаны альтернативные методы. Так же, как в примере с прогнозированием климата, мы берем уравнения в качестве модели и генерируем данные, которые могли бы возникнуть, если бы эта модель была верной. Затем мы точно так же повторяем это раз за разом, чтобы сгенерировать множественные наборы данных, каждый из которых мог бы возникнуть в реальности. После этого мы суммируем множественные наборы данных, что позволяет вычислять средние значения, диапазоны вариаций или любую другую описательную статистику, которая нам нужна. По сути, мы видим то, какими характеристиками могут обладать результаты и какова вероятность их появления. Методы симуляции превратили байесовскую статистику из интересной теоретической идеи в практический и очень полезный инструмент, который лег в основу машинного обучения и искусственного интеллекта.