12
Формула-песенник
Музыка выражает то, чего нельзя сказать словами,
и то, что не может оставаться безмолвным.
Виктор Гюго
Я играю на трубе, но мне так и не удалось освоить джазовую импровизацию. Я вполне уверенно играю по нотам в оркестре, но, чтобы играть джаз, нужно стать композитором. Более того, нужно стать композитором, сочиняющим на лету, реагирующим на то, что играют окружающие, в реальном времени. Я всегда искренне восхищался теми, кто на это способен.
В результате многочисленных попыток научиться играть джаз я понял, что в хорошей импровизации есть элемент головоломки. В джазовом стандарте обычно есть набор аккордов, который изменяется по ходу пьесы. Трубач должен проводить линию, соответствующую этим изменяющимся аккордам. Но при этом его решения должны обеспечивать и внутренне логичное развитие от ноты к ноте, так что джазовое исполнение подобно прокладке курса в двумерном лабиринте. Аккорды определяют допустимые ходы в вертикальном направлении, а сыгранные в предыдущий момент ноты – в горизонтальном. По мере того как джаз становится более свободным, последовательность аккордов все более растекается, и нужно чувствовать, что в следующий момент может сыграть пианист, а это опять же зависит от аккордов, сыгранных ранее.
Хороший импровизатор внимательно слушает и знает, куда пианист вероятнее всего может повести свою тему.
Создание машины, способной на это, не кажется невозможным, но в этой области есть трудности, с которыми не сталкиваются алгоритмические композиторы вроде Emmy. Алгоритм джазовой импровизации должен играть, реагируя на поступление новых данных в режиме взаимодействия в реальном времени.
Многие молодые музыканты начинали свою карьеру с классической книги «Теория джаза» Марка Левайна
[83], который играл с Диззи Гиллеспи и Фредди Хаббардом, двумя из величайших джазовых импровизаторов прошлого века. Как отмечает Левайн, «великое джазовое соло на 1 % состоит из волшебства и на 99 % – из вещей Объяснимых, Анализируемых, Классифицируемых, Осуществимых». Все эти вещи можно предусмотреть в алгоритме.
Мой самый любимый джазовый альбом всех времен – Kind of Blue Майлза Дэвиса. Насколько мы близки к возможности создания Kind of DeepBlue?
Пушкин, поэзия и вероятности
В молодости Франсуа Паше мечтал стать музыкантом, сочинять хиты и играть на гитаре, как его кумиры. Однако, несмотря на несколько вполне серьезных попыток сочинения музыки, в конце концов его привлекла карьера в области искусственного интеллекта. Работая руководителем парижской Лаборатории информатики компании Sony (Sony Computer Science Laboratory), Паше обнаружил, что те методы, которые он осваивал в работе с искусственным интеллектом, могут помочь ему сочинять музыку. Он создал первый искусственный интеллект, способный к джазовой импровизации, с использованием математической формулы из теории вероятностей, известной под названием «цепь Маркова».
Цепи Маркова лежат в основе многих алгоритмов, о которых мы говорили выше. Они являются важным инструментом и используются в различных областях – от моделирования химических процессов и экономических тенденций до навигации в интернете и оценки популяционной динамики. Интересно отметить, что русский математик Андрей Марков испытывал свою теорию не на точных науках, а на поэзии.
Открытие Маркова появилось в результате дискуссии с другим русским математиком, Павлом Некрасовым. Одной из основ теории вероятностей является закон больших чисел, который утверждает, что, если подбрасывать монету так, чтобы каждый следующий бросок был абсолютно независимым от предыдущего, вероятность того, что монета упадет орлом или решкой, приближается к 50 % по мере увеличения числа бросков. Если подбросить монету четыре раза, вероятность того, что все четыре раза выпадет орел, равна 1/16. Однако по мере увеличения числа бросков вероятность отклонения от равного соотношения уменьшается.
Некрасов считал, что верно и обратное: если статистика подчиняется закону больших чисел, то и действия должны быть независимы от предыдущих результатов. Исходя из этого, он пытался доказать, что, поскольку статистика преступности в России подчиняется закону больших чисел, из этого следует, что преступники принимают решение о совершении преступления независимо.
Порочная логика Некрасова возмутила Маркова. Он назвал эту работу «злоупотреблением математикой» и решил доказать ее неправоту. Ему нужно было придумать модель, в которой вероятность определенного исхода зависит от предыдущих событий, но в то же время подчиняется закону больших чисел в долгосрочной перспективе. Результат подбрасывания монеты не зависит от предыдущих бросков, так что эта модель Маркова не интересовала. Но можно было попробовать ввести небольшую зависимость, чтобы каждое следующее событие зависело от непосредственно предшествующего, но не от того, как система пришла к этому событию. Название «цепь Маркова» получила последовательность событий, в которой вероятность каждого события зависит только от события предыдущего. Один из возможных примеров такой последовательности – прогнозирование погоды. Завтрашняя погода, несомненно, зависит от сегодняшней, но не особенно зависит от того, что происходило на прошлой неделе.
Рассмотрим следующую модель. Пусть погода может быть солнечной, облачной или дождливой. Если сегодня солнечно, то существует 60 %-я вероятность того, что завтра тоже будет солнечно, 30 %-я – того, что будет облачно, и 10 %-я – того, что будет идти дождь. Но если сегодня облачно, вероятности будут другими. В этом случае завтра с 50 %-й вероятностью будет дождь, с 30 %-й сохранится облачность и с 20 %-й будет солнечно. В этой модели завтрашняя погода зависит только от сегодняшней. Не важно, что у нас в течение двух недель стояла солнечная погода: если сегодня облачно, модель все равно предсказывает на завтра 50 %-ю вероятность дождя. Последняя часть модели дает нам прогноз погоды на завтра после дождливого дня: с 40 %-й вероятностью будет солнечно, с 10 %-й – облачно и с 50 %-й – дождливо. Запишем все эти вероятности в матрицу.
Эта модель позволяет рассчитать вероятность того, что через два дня после солнечного дня пойдет дождь. Разумеется, это может произойти несколькими разными способами, так что мы должны просуммировать все возможные вероятности.
Возможны следующие варианты: ССД (солнце-солнце-дождь), СОД (солнце-облачность-дождь) и СДД (солнце-дождь-дождь).
вероятность ССД = вероятность СС × вероятность СД =