В молодости Франсуа Паше мечтал стать музыкантом, сочинять хиты и играть на гитаре, как его кумиры. Однако, несмотря на несколько вполне серьезных попыток сочинения музыки, в конце концов его привлекла карьера в области искусственного интеллекта. Работая руководителем парижской Лаборатории информатики компании Sony (Sony Computer Science Laboratory), Паше обнаружил, что те методы, которые он осваивал в работе с искусственным интеллектом, могут помочь ему сочинять музыку. Он создал первый искусственный интеллект, способный к джазовой импровизации, с использованием математической формулы из теории вероятностей, известной под названием «цепь Маркова».
Цепи Маркова лежат в основе многих алгоритмов, о которых мы говорили выше. Они являются важным инструментом и используются в различных областях – от моделирования химических процессов и экономических тенденций до навигации в интернете и оценки популяционной динамики. Интересно отметить, что русский математик Андрей Марков испытывал свою теорию не на точных науках, а на поэзии.
Открытие Маркова появилось в результате дискуссии с другим русским математиком, Павлом Некрасовым. Одной из основ теории вероятностей является закон больших чисел, который утверждает, что, если подбрасывать монету так, чтобы каждый следующий бросок был абсолютно независимым от предыдущего, вероятность того, что монета упадет орлом или решкой, приближается к 50 % по мере увеличения числа бросков. Если подбросить монету четыре раза, вероятность того, что все четыре раза выпадет орел, равна 1/16. Однако по мере увеличения числа бросков вероятность отклонения от равного соотношения уменьшается.
Некрасов считал, что верно и обратное: если статистика подчиняется закону больших чисел, то и действия должны быть независимы от предыдущих результатов. Исходя из этого, он пытался доказать, что, поскольку статистика преступности в России подчиняется закону больших чисел, из этого следует, что преступники принимают решение о совершении преступления независимо.
Порочная логика Некрасова возмутила Маркова. Он назвал эту работу «злоупотреблением математикой» и решил доказать ее неправоту. Ему нужно было придумать модель, в которой вероятность определенного исхода зависит от предыдущих событий, но в то же время подчиняется закону больших чисел в долгосрочной перспективе. Результат подбрасывания монеты не зависит от предыдущих бросков, так что эта модель Маркова не интересовала. Но можно было попробовать ввести небольшую зависимость, чтобы каждое следующее событие зависело от непосредственно предшествующего, но не от того, как система пришла к этому событию. Название «цепь Маркова» получила последовательность событий, в которой вероятность каждого события зависит только от события предыдущего. Один из возможных примеров такой последовательности – прогнозирование погоды. Завтрашняя погода, несомненно, зависит от сегодняшней, но не особенно зависит от того, что происходило на прошлой неделе.
Рассмотрим следующую модель. Пусть погода может быть солнечной, облачной или дождливой. Если сегодня солнечно, то существует 60 %-я вероятность того, что завтра тоже будет солнечно, 30 %-я – того, что будет облачно, и 10 %-я – того, что будет идти дождь. Но если сегодня облачно, вероятности будут другими. В этом случае завтра с 50 %-й вероятностью будет дождь, с 30 %-й сохранится облачность и с 20 %-й будет солнечно. В этой модели завтрашняя погода зависит только от сегодняшней. Не важно, что у нас в течение двух недель стояла солнечная погода: если сегодня облачно, модель все равно предсказывает на завтра 50 %-ю вероятность дождя. Последняя часть модели дает нам прогноз погоды на завтра после дождливого дня: с 40 %-й вероятностью будет солнечно, с 10 %-й – облачно и с 50 %-й – дождливо. Запишем все эти вероятности в матрицу.
Эта модель позволяет рассчитать вероятность того, что через два дня после солнечного дня пойдет дождь. Разумеется, это может произойти несколькими разными способами, так что мы должны просуммировать все возможные вероятности.
Возможны следующие варианты: ССД (солнце-солнце-дождь), СОД (солнце-облачность-дождь) и СДД (солнце-дождь-дождь).
вероятность ССД = вероятность СС × вероятность СД =
= 0,6 ×0,1 = 0,06
вероятность СОД = вероятность СО × вероятность ОД =
= 0,3 ×0,5 = 0,15
вероятность СДД = вероятность СД × вероятность ДД =
= 0,1 ×0,5 = 0,05
Значит, вероятность дождливого дня через два дня после солнечного, которую мы обозначим
Есть удобный способ вычисления вероятности того, что на второй день будет дождь. Для этого нужно умножить матрицу вероятностей саму на себя.