Не музыка еще, уже не шум
Дуглас Эк, атлетичный мужчина в хипстерских очках и клетчатой рубашке, показывает презентацию с десятком цветных спектрограмм. Он кликает на одну из них, и зал, наполненный инженерами и журналистами, вдруг оглушают гитарные риффы. «Это Metallica», – объясняет Эк присутствующим, большинство из которых подобное явно слышат впервые. «А вот, например, Диззи Гиллеспи», – Эк переключает спектрограмму, гитарные риффы сменяются джазовыми трубами, и зал облегченно выдыхает. Обе записи действительно напоминают какие-то неизданные треки музыкантов, но даже самый преданный фанат не сможет их узнать. Это не редкие демо и даже не нарезка отдельных фрагментов – это полностью синтетические фонограммы, автором которых является не человек, а нейросеть, которую Дуг и его команда разрабатывают в рамках проекта Magenta.
Дуглас Эк показывает несколько музыкальных фрагментов, полученных командой Magenta
Проект Magenta – одна из команд внутри Google Brain, исследовательского подразделения глобального поисковика, которое объединяет людей, занимающихся экспериментальными подходами в области машинного интеллекта. Здесь была создана первая система, распознающая котов на видеозаписях, здесь учат нейросети соревноваться в выдумывании шифров и улучшать машинный перевод. Но даже в такой пестрой компании команда «Мадженты» выглядит немного эксцентрично: Дуглас и его сотрудники хотят использовать машинное обучение не для решения каких-то практических задач, а чтобы компьютер смог писать музыку и заниматься искусством. «Зачем?» – спросите вы. В Magenta задают другие вопросы: «Если это возможно, то как? Есть нет, то почему?» – именно так звучит слоган проекта.
Вальс на костях
Конечно, эксперименты с созданием «искусственной музыки» проводились задолго до появления и Googlе, и современных компьютеров. Один из первых известных нам опытов приписывается самому Моцарту – речь идет об игре в так называемые музыкальные кости. Они представляли собой обычные игральные кости, которые в соответствии со специальной таблицей позволяли выбрать один из заранее подготовленных коротких музыкальных фрагментов и добавить его в партитуру. Бросая кости много раз, можно было создать до 1116 уникальных вальсов, которые, впрочем, были очень похожи друг на друга. Создание еще одного варианта подобной игры приписывается Гайдну, но, как и в случае с Моцартом, историки не подтверждают его авторства, хотя и признают популярность подобных игр в XVIII веке.
Дальнейшая история «искусственной музыки» связана с авангардистами уже нашего времени – изобретением композитором Иосифом Шиллингером запутанной геометрической системы, которая должна была найти объективные законы музыки, с сюрреалистическими экспериментами Яниса Ксенакиса, который для выбора нот использовал уже не примитивные кости, а распределение Пуассона и т. д. Интересно, что, несмотря на официальную борьбу с формализмом, эксперименты в этом направлении велись и в СССР. Их пионером был математик Рудольф Зарипов: в начале 1960-х годов он получил доступ к одному из первых в стране компьютеров и разработал собственную систему кодирования нот и движения мелодии. ЭВМ, на которой он работал, называлась «Урал», поэтому получившиеся произведения Зарипов назвал «Уральскими напевами». К счастью, и они, и их полифонические версии сохранились, так что при желании их можно послушать.
Насколько музыкальными были подобные эксперименты, оставим судить музыковедам, но алгоритмы их построения были практически одинаковы: создание музыки авторы «систем» доверяли некоему случайному генератору, который продвигал партитуру от такта к такту по заранее заданным законам. Источником этих законов был сам автор – именно он должен был предусмотреть и обобщить все возможные варианты развития мелодии и аккомпанемента. Однако на практике поиск объективных музыкальных законов оказался делом почти неподъемным – так или иначе, ни «Уральские напевы», ни другие формальные творения (а подход применялся не только в музыке, но и в литературе) хитами не стали.
Однако примерно в это же время, в разгар увлечения математиков музыкальными алгоритмами, появились те самые нейросети, о которых сегодня не слышал разве что цифровой анахорет. Их устройство предполагало совершенно иной подход: нейросети исходно были заточены на то, чтобы не искать стройных, понятных человеку закономерностей, а анализировать простые корреляции, причем в автоматическом режиме. Появление нейросетей с музыкальными экспериментами исходно никак не было связано, но именно им суждено было вдохнуть в эту область новую жизнь. Однако следует оговорится, что речь идет не о нейросетях вообще, а системах особого класса – рекуррентных, или RNN (recurrent neural network).
Нейросеть-незабудка
Обычная, или «прямоточная», нейросеть устроена в известном смысле как труба: с одной стороны в нее поступают исходные данные, а на выходе появляется их своеобразный «дайджест». Данными могут быть, например, фотография человека, а дайджестом – набор цифр, кодирующий особенности его внешности (подробнее о технологии распознавания лиц можно прочитать в декабрьском номере «ПМ» и тут). Для анализа фотографий и для многих других задач последовательность поступления данных совершенно неважна, ведь она никак не влияет на успешность решения задачи в каждом отдельном случае. Но есть и такие данные, для которых история имеет не просто большое, а принципиальное значение. И именно для работы с ними были придуманы те самые рекуррентные нейросети.
«Рекуррентность, вообще говоря, означает только то, что связи в нейросети замыкаются сами на себя, – объясняет Дуглас. – Однако именно благодаря этому небольшому дополнению такие нейросети обладают памятью, а память дает им возможность не анализировать информацию отдельными, никак не связанными кусками, а иметь дело с потоком данных: речью, текстом, музыкой».
Важность такой архитектуры понять несложно. Например, каждый первоклассник прекрасно знает, что за буквами «ш» и «ж» в русском языке не может следовать буква «ы», и обученная на корпусе текстов нейросеть тоже быстро подметит эту особенность. Разница лишь в том, что, в отличие от первоклассника, нейросеть не нужно ничему учить специально: при достаточно большом количестве образцов она самостоятельно обнаружит и это, и сотни других правил, в том числе и крайне неочевидные законы речи и композиции. Но самое интересное заключается в том, что, как только нейросеть будет обучена, она, вооружившись генератором случайных чисел, сможет порождать совершенно новые тексты, которых в обучающей выборке не было, но которые этим правилам удовлетворяют.
То, что справедливо для текстов, в равной степени будет справедливо и для музыки, и для компьютерного кода, и даже для рисунков (они ведь тоже делаются последовательными штрихами). Стоит лишь добыть достаточно данных, создать нейросеть правильной архитектуры – и мечта формалистов превратится в реальность: машина станет универсальным генератором контента.
Холст, масло, начало века
«Искусственный интеллект научился сочинять подростковую поэзию», «Компьютер написал новый альбом "Гражданской обороны"», «Нейросеть создала рассказ по мотивам "Гарри Поттера"» – новости последних двух лет звучат как сводки с поля битвы между нейросетями и писателями, музыкантами, художниками. Чем эта битва закончится – пока не ясно никому, но следить за развитием событий становится уже увлекательно.
Как и на всякой войне, в борьбе компьютеров за творческое признание не обходится без коллаборационистов. К примеру, сочинение в стиле Скрябина, которым открывалась в прошлом году конференция «Яндекса», хотя и было написано нейросетью, аранжировалось вполне себе живым композитором и экспертом – Марией Черновой. Вероятно, именно поэтому оно звучало достаточно интересно. Первая работа нейросети в жанре монументальной живописи также была создана не без помощи человека: ей помог испанский художник Альберт Барке-Дюран, который в прошлом году в ходе трехдневного перформанса «Моя искусственная муза» перенес «синтетический» портрет на настоящий холст. Есть и просто желающие заработать: лондонский стартап Jukedeck уже сейчас предлагает подписку на свою версию «Уральских напевов», позиционируя ее как недорогую замену фоновой музыки для игр и видеоблогов. Однако стоит лишь присмотреться к этой музыке и картинам повнимательней, и вал новостей о компьютерных победах начинает казаться лишь первой психической атакой, а никак не настоящим наступлением.
В коридоре офиса Google в Цюрихе я натыкаюсь на подключенное к ноутбуку небольшое цифровое пианино. Стоит лишь взять несколько нот, как инструмент начинает вам аккомпанировать, пытаясь отвечать на каждый фрагмент мелодии соответствующей музыкальной фразой. Это тоже одна из работ Magenta, которая также, как можно догадаться, основана на работе рекуррентных нейросетей. Поначалу с ней действительно интересно играть, но уже через пару минут становится ясно, что с музыкой не дружим мы оба: хотя машина явно берет какие-то части информации из сыгранного мной, но ее ответ звучит плоско, случайно и довольно примитивно.
«Честно говоря, мы еще не преодолели тот рубеж, когда компьютерную музыку было бы интересно слушать, – неожиданно признается Дуглас. – Мы к этому порогу только подошли. Однако надо понимать, что на самом деле наша задача состоит в другом. Поясню так: когда Лес Пол создавал электрогитару, его задача была в том, чтобы сделать просто громкий акустический инструмент. А если при этом неожиданно возникал перегруженный звук, это называлось обычным браком. Что произошло потом? Потом появился Джими Хендрикс. И именно в этот момент стало понятно, зачем на самом деле нужна электрогитара. Так вот, мы думаем о себе скорее как о Поле. Хендриксом должен стать кто-то другой, и я уверен, у кого-то это получится».
Сыграть с нейросетью в четыре руки можно прямо в браузере вашего компьютера. Для этого нужно зайти на страницу демонстрации Magenta и запустить «эксперимент». Для тех музыкантов, которые «на ты» с секвенсором Ableton, есть версия-плагин для этой программы.
Другой проект Magenta, так же основанный на работе рекуррентных нейросетей, позволяет вместе с компьютером делать простые карандашные наброски. Выберите один из 100 объектов (дом, кошка, машина и т.д.) и начните рисовать — нейросеть продолжит рисование за вас и, возможно, даже чем-то вас удивит. Для начала попробуйте объект «дождь», нарисуйте тучу и посмотрите, что выйдет. Остальные демонстрации Magenta приведены на официальном сайте проекта.
Для знакомства с возможностями нейросетей также следует обязательно прослушать синтетические фрагменты музыки и речи, полученные системой WaveNet — другим проектом внутри Deepmind.
Нейросети своими руками
Для тех, кто желает попробовать собрать рекуррентную нейросеть собственными руками (а это не так сложно, как можно было бы подумать), следует порекомендовать прежде всего подробный разбор Андрея Карпати. В нем эксперт по глубокому обучению и нынешний инженер Tesla не только объясняет, как работают RNN, но и демонструрует готовый набор инструментов, с помощью которого можно научить нейросеть генерировать тексты Шекспира, статьи Википедии, код Linux и т.д. В тексте есть ссылки на готовые пакеты на гитхабе и инструкции по их применению.
Если вы интересуетесь самым новым, что происходит в мире рекуррентных нейросетей, то обратите внимание на концепцию внимания и статьи, которые описывают ее реализацию. Например, здесь в популярной форме описано создание командой DeepMind дифференцируемого нейронного компьютера, сочетающего обучаемость нейросетей со способностями обычных компьютеров. А здесь можно увидеть, как одна лишь концепция внимания позволяет реализовать систему машинного перевода, сопоставимую по качеству работы с самыми сложными традиционными аналогами.