Нейронная сеть стихи – Нейролирика. Вышла первая книга стихов, созданных нейронной сетью – Новости – Факультет гуманитарных наук – Национальный исследовательский университет «Высшая школа экономики»

Содержание

Как научить свою нейросеть генерировать стихи / Habr

Умоляю перестань мне сниться
Я люблю тебя моя невеста
Белый иней на твоих ресницах
Поцелуй на теле бессловесном

Когда-то в школе мне казалось, что писать стихи просто: нужно всего лишь расставлять слова в нужном порядке и подбирать подходящую рифму. Следы этих галлюцинаций (или иллюзий, я их не различаю) встретили вас в эпиграфе. Только это стихотворение, конечно, не результат моего тогдашнего творчества, а продукт обученной по такому же принципу нейронной сети.

Вернее, нейронная сеть нужна лишь для первого этапа — расстановки слов в правильном порядке. С рифмовкой справляются правила, применяемые поверх предсказаний нейронной сети. Хотите узнать подробнее, как мы это реализовывали? Тогда добро пожаловать под кат.

Языковые модели

Определение

Начнем с языковой модели. На Хабре я встречал не слишком-то много статей про них — не лишним будет напомнить, что это за зверь.

Языковые модели определяют вероятность появления последовательности слов в данном языке: . Перейдём от этой страшной вероятности к произведению условных вероятностей слова от уже прочитанного контекста:

.

В жизни эти условные вероятности показывают, какое слово мы ожидаем увидеть дальше. Посмотрим, например, на всем известные слова из Пушкина:

Языковая модель, которая сидит у нас (во всяком случае, у меня) в голове, подсказывает: после честных навряд ли снова пойдёт мой. А вот и, или, конечно, правил — очень даже.

N-граммные языковые модели

Кажется, самым простым способом построить такую модель является использование N-граммной статистики. В этом случае мы делаем аппроксимацию вероятности — отбрасывая слишком далекие слова, как не влияющие на вероятность появления данного.

Такая модель легко реализуется с помощью Counter’ов на Python — и оказывается весьма тяжелой и при этом не слишком вариативной. Одна из самых заметных её проблем — недостаточность статистики: большая часть 5-грамм слов, в том числе и допустимых языком, просто не встретится в сколько-то ни было большом корпусе.

Для решения такой проблемы используют обычно сглаживание Kneser–Ney или Katz’s backing-off. За более подробной информацией про методы сглаживания N-грамм стоит обратиться к известной книге Кристофера Маннинга “Foundations of Statistical Natural Language Processing”.

Хочу заметить, что 5-граммы слов я назвал не просто так: именно их (со сглаживанием, конечно) Google демонстрирует в статье “One Billion Word Benchmark for Measuring Progress in Statistical Language Modeling” — и показывает результаты, весьма сопоставимые с результатами у рекуррентных нейронных сетей — о которых, собственно, и пойдет далее речь.

Нейросетевые языковые модели

Преимущество рекуррентных нейронных сетей — в возможности использовать неограниченно длинный контекст. Вместе с каждым словом, поступающим на вход рекуррентной ячейки, в неё приходит вектор, представляющий всю предыдущую историю — все обработанные к данному моменту слова (красная стрелка на картинке).

Возможность использования контекста неограниченной длины, конечно, только условная. На практике классические RNN страдают от затухания градиента — по сути, отсутствия возможности помнить контекст дальше, чем на несколько слов. Для борьбы с этим придуманы специальные ячейки с памятью. Самыми популярными являются LSTM и GRU. В дальнейшем, говоря о рекуррентном слое, я всегда буду подразумевать LSTM.

Рыжей стрелкой на картинке показано отображение слова в его эмбеддинг (embedding). Выходной слой (в простейшем случае) — полносвязный слой с размером, соответствующим размеру словаря, имеющий softmax активацию — для получения распределения вероятностей для слов словаря. Из этого распределения можно сэмплировать следующее слово (или просто брать максимально вероятное).

Уже по картинке виден минус такого слоя: его размер. При словаре в несколько сотен тысяч слов его он легко может перестать влезать на видеокарту, а для его обучения требуются огромные корпуса текстов. Это очень наглядно демонстрирует картинка из блога torch:

Для борьбы с этим было придумано весьма большое количество различных приемов. Наиболее популярными можно назвать иерархический softmax и noise contrastive estimation. Подробно про эти и другие методы стоит почитать в отличной статье Sebastian Ruder.

Оценивание языковой модели

Более-менее стандартной функцией потерь, оптимизируемой при многоклассовой классификации, является кросс-энтропийная (cross entropy) функция потерь. Вообще, кросс-энтропия между вектором и предсказанным вектором записывается как . Она показывает близость распределений, задаваемый и .
При вычислении кросс-энтропии для многоклассовой классификации — это вероятность -ого класса, а — вектор, полученный с one-hot-encoding (т.е. битовый вектор, в котором единственная единица стоит в позиции, соответствующей номеру класса). Тогда при некотором .

Кросс-энтропийные потери целого предложения получаются усреднением значений по всем словам. Их можно записать так: . Видно, что это выражение соответствует тому, чего мы и хотим достичь: вероятность реального предложения из языка должна быть как можно выше.

Кроме этого, уже специфичной для языкового моделирования метрикой является перплексия (perplexity):

.

Чтобы понять её смысл, посмотрим на модель, предсказывающую слова из словаря равновероятно вне зависимости от контекста. Для неё , где N — размер словаря, а перплексия будет равна размеру словаря — N. Конечно, это совершенно глупая модель, но оглядываясь на неё, можно трактовать перплексию реальных моделей как уровень неоднозначности генерации слова.

Скажем, в модели с перплексией 100 выбор следующего слова также неоднозначен, как выбор из равномерного распределения среди 100 слов. И если такой перплексии удалось достичь на словаре в 100 000, получается, что удалось сократить эту неоднозначность на три порядка по сравнению с “глупой” моделью.

Реализация языковой модели для генерации стихов

Построение архитектуры сети

Вспомним теперь, что для нашей задачи языковая модель нужна для выбора наиболее подходящего следующего слова по уже сгенерированной последовательности. А из этого следует, что при предсказании никогда не встретится незнакомых слов (ну откуда им взяться). Поэтому число слов в словаре остается целиком в нашей власти, что позволяет регулировать размер получающейся модели. Таким образом, пришлось забыть о таких достижениях человечества, как символьные эмбеддинги для представления слов (почитать про них можно, например, здесь).

Исходя из этих предпосылок, мы начали с относительно простой модели, в общих чертах повторяющей ту, что изображена на картинке выше. В роли желтого прямоугольника с неё выступали два слоя LSTM и следующий за ними полносвязный слой.

Решение ограничить размер выходного слоя кажется вполне рабочим. Естественно, словарь надо ограничивать по частотности — скажем, взятием пятидесяти тысяч самых частотных слов. Но тут возникает ещё вопрос: какую архитектуру рекуррентной сети лучше выбрать.

Очевидных варианта тут два: использовать many-to-many вариант (для каждого слова пытаться предсказать следующее) или же many-to-one (предсказывать слово по последовательности предшествующих слов).

Чтобы лучше понимать суть проблемы, посмотрим на картинку:

Здесь изображен many-to-many вариант со словарем, в котором не нашлось места слову “чернил”. Логичным шагом является подстановка вместо него специального токена <unk> — незнакомое слово. Проблема в том, что модель радостно выучивает, что вслед за любым словом может идти незнакомое слово. В итоге, выдаваемое ею распределение оказывается смещено в сторону именно этого незнакомого слова. Конечно, это легко решается: нужно всего лишь сэмплировать из распределение без этого токена, но всё равно остается ощущение, что полученная модель несколько кривовата.

Альтернативным вариантом является использование many-to-one архитектуры:

При этом приходится нарезать всевозможные цепочки слов из обучающей выборки — что приведет к заметному её разбуханию. Зато все цепочки, для которых следующее слов — неизвестное, мы сможем просто пропускать, полностью решая проблему с частым предсказанием <unk> токена.

Такая модель имела у нас следующие параметры (в терминах библиотеки keras):

Как видно, в неё включено 60000 + 1 слово: плюс первый токен это тот самый <unk>.

Проще всего повторить её можно небольшой модификацией примера. Основное её отличие в том, что пример демонстрирует посимвольную генерацию текста, а вышеописанный вариант строится на пословной генерации.

Полученная модель действительно что-то генерирует, но даже грамматическая согласованность получающихся предложений зачастую не впечатляет (про смысловую нагрузку и говорить нечего). Логичным следующим шагом является использование предобученных эмбеддингов для слов. Их добавление упрощает обучение модели, да и связи между словами, выученные на большом корпусе, могут придать осмысленность генерируемому тексту.

Основная проблема: для русского (в отличие от, например, английского) сложно найти хорошие словоформенные эмбеддинги. С имеющимися результат стал даже хуже.

Попробуем пошаманить немного с моделью. Недостаток сети, судя по всему — в слишком большом количестве параметров. Сеть просто-напросто не дообучается. Чтобы исправить это, следует поработать с входным и выходным слоями — самыми тяжелыми элементами модели.

Доработка входного слоя

Очевидно, имеет смысл сократить размерность входного слоя. Этого можно добиться, просто уменьшив размерность словоформенных эмебедингов — но интереснее пойти другим путём.

Вместо того, чтобы представлять слово одним индексом в высокоразмерном пространстве, добавим морфологическую разметку:

Каждое слово будем описывать парой: его лемма и грамматическое значение. Использование лемм вместо словоформ позволяет очень сильно сократить размер эмбеддингов: первым тридцати тысячам лемм соответствует несколько сотен тысяч различных слов. Таким образом, серьёзно уменьшив входной слой, мы ещё и увеличили словарный запас нашей модели.

Как видно из рисунка, лемма имеет приписанную к ней часть речи. Это сделано для того, чтобы можно было использовать уже предобученные эмбеддинги для лемм (например, от RusVectores). С другой стороны, эмбеддинги для тридцати тысяч лемм вполне можно обучить и с нуля, инициализируя их случайно.

Грамматическое значение мы представляли в формате Universal Dependencies, благо у меня как раз была под рукой модель, обученная для Диалога-2017.

При подаче грамматического значения на вход модели оно переводится в битовую маску: для каждой грамматической категории выделяются позиции по числу граммем в этой категории — плюс одна позиция для отсутствия данной категории в грамматическом значении (Undefined). Битовые вектора для всех категорий склеиваются в один большой вектор.

Вообще говоря, грамматическое значение можно было бы, так же как лемму, представлять индексом и обучать для него эмбеддинг. Но битовой маской сеть показала более высокое качество.

Этот битовый вектор можно, конечно, подавать в LSTM непосредственно, но лучше пропускать его предварительно через один или два полносвязных слоя для сокращения размерности и, одновременно — обнаружения связей между комбинациями граммем.

Доработка выходного слоя

Вместо индекса слова можно предсказывать всё те же лемму и грамматическое значение по отдельности. После этого можно сэмплировать лемму из полученного распределения и ставить её в форму с наиболее вероятным грамматическим значением. Небольшой минус такого подхода в том, что невозможно гарантировать наличие такого грамматического значения у данной леммы.

Эта проблема легко исправляется двумя способами. Честный путь — сэмплировать именно слово из действительно реализуемых пар лемма + грамматическое значение (вероятностью этого слова, конечно, будет произведение вероятностей леммы и грамматического значения). Более быстрый альтернативный способ — это выбирать наиболее вероятное грамматическое значение среди возможных для сэмплированной леммы.

Кроме того, softmax-слой можно было заменить иерархическим softmax’ом или вообще утащить реализацию noise contrastive estimation из tensorflow. Но нам, с нашим размером словаря, оказалось достаточно и обыкновенного softmax. По крайней мере, вышеперечисленные ухищрения не принесли значительного прироста качества модели.

Итоговая модель

В итоге у нас получилась следующая модель:

Обучающие данные

До сих пор мы никак не обсудили важный вопрос — на чём учимся. Для обучения мы взяли большой кусок stihi.ru и добавили к нему морфологическую разметку. После этого отобрали длинные строки (не меньше пяти слов) и обучались на них.

Каждая строка рассматривалась как самостоятельная — таким образом мы боролись с тем, что соседние строки зачастую слабо связаны по смыслу (особенно на stihi.ru). Конечно, можно обучаться сразу на полном стихотворении, и это могло дать улучшение качества модели. Но мы решили, что перед нами стоит задача построить сеть, которая умеет писать грамматически связный текст, а для такой цели обучаться лишь на строках вполне достаточно.

При обучении ко всем строкам добавлялся завершающий символ , а порядок слов в строках инвертировался. Разворачивать предложения нужно для упрощения рифмовки слов при генерации. Завершающий же символ нужен, чтобы именно с него начинать генерацию предложения.

Кроме всего прочего, для простоты мы выбрасывали все знаки препинания из текстов. Это было сделано потому, что сеть заметно переобучалась под запятые и прочие многоточия: в выборке они ставились буквально после каждого слова. Конечно, это сильное упущение нашей модели и есть надежда исправить это в следующей версии.

Схематично предобработка текстов может быть изображена так:

Стрелки означают направление, в котором модель читает предложение.

Реализация генератора

Правила-фильтры

Перейдём, наконец-то, к генератору поэзии. Мы начали с того, что языковая модель нужна только для построения гипотез о следующем слове. Для генератора необходимы правила, по которым из последовательности слов будут строиться стихотворения. Такие правила работают как фильтры языковой модели: из всех возможных вариантов следующего слова остаются только те, которые подходят — в нашем случае по метру и рифмовке.

Метрические правила определяют последовательность ударных и безударных слогов в строке. Записываются они обычно в виде шаблона из плюсов и минусов: плюс означает ударный слог, а минусу соответствует безударный. Например, рассмотрим метрический шаблон + — + — + — + — (в котором можно заподозрить четырёхстопный хорей):

Генерация, как уже упоминалось, идёт справа налево — в направлении стрелок на картинке. Таким образом, после мглою фильтры запретят генерацию таких слов как метель (не там ударение) или ненастье (лишний слог). Если же в слове больше 2 слогов, оно проходит фильтр только тогда, когда ударный слог не попадает на “минус” в метрическом шаблоне.

Второй же тип правил — ограничения по рифме. Именно ради них мы генерируем стихотворения задом наперед. Фильтр применяется при генерации самого первого слова в строке (которое окажется последним после разворота). Если уже была сгенерирована строка, с которой должна рифмоваться данная, этот фильтр сразу отсечёт все нерифмующиеся слова.

Также применялось дополнительное правило, запрещающее считать рифмами словоформы с одинаковой леммой.

У вас мог возникнуть вопрос: а откуда мы взяли ударения слов, и как мы определили какие слова рифмуются с какими? Для работы с ударениями мы взяли большой словарь и обучили на этом словаре классификатор, чтобы предсказывать ударения незнакомых слов (история, заслуживающая отдельной статьи). Рифмовка же определяется несложной эвристикой на основе расположения ударного слога и его буквенного состава.

Лучевой поиск

В результате работы фильтров вполне могло не остаться ни одного слова. Для решения этой проблемы мы делаем лучевой поиск (beam search), выбирая на каждом шаге вместо одного сразу N путей с наивысшими вероятностями.

Итого, входные параметры генератора — языковая модель, метрический шаблон, шаблон рифмы, N в лучевом поиске, параметры эвристики рифмовки. На выходе же имеем готовое стихотворение. В качестве языковой модели в этом же генераторе можно использовать и N-граммную модель. Система фильтров легко кастомизируется и дополняется.

Примеры стихов

Так толку мне теперь грустить
Что будет это прожито
Не суждено кружить в пути
Почувствовав боль бомжика

Затерялся где то на аллее
Где же ты мое воспоминанье
Я люблю тебя мои родные
Сколько лжи предательства и лести
Ничего другого и не надо
За грехи свои голосовые

Скучаю за твоим окном
И нежными эфирами
Люблю тебя своим теплом
Тебя стенографируя

Ссылки

Пост был написан совместно с Гусевым Ильёй. В проекте также принимали участие Ивашковская Елена, Карацапова Надежда и Матавина Полина.

Работа над генератором была проделана в рамках курса “Интеллектуальные системы” кафедры Компьютерной лингвистики ФИВТ МФТИ. Хотелось бы поблагодарить автора курса, Константина Анисимовича, за советы, которые он давал в процессе.

Большое спасибо atwice за помощь в вычитке статьи.

habr.com

Нейросеть «Порфирьевич» дописывает тексты и стихи на русском языке / Хабр

«Порфирьевич» продолжил высказывание Линуса Торвальдса.

Российский программист Михаил Гранкин создал и запустил на открытом для всех пользователей сети Интернет ресурсе (судя по IP-адресу в облаке Amazon) русский аналог нейросети GPT-2 компании OpenAI. Проект получил название «Порфирьевич», данная нейросеть умеет генерировать тексты с осмысленным содержанием на основе нескольких слов или пары предложений на русском языке.


Данный проект размещен разработчиком на веб-сервисе GitHub.

Принцип работы нейросети «Порфирьевич»: пользователю необходимо ввести связный текст на русском языке и нажать «Варианты». Если результат нелогичен или чем-то не устраивает, то можно нажать на кнопку «Варианты» еще раз и посмотреть новый вариант. Также в расширенных настройках нейросети «Порфирьевич» (нажать на колесико слева от кнопки «Варианты») можно изменять количество автодополняемых слов (от одного слова до шестидесяти слов), включать автодополнение и изменять его задержку.

Вот, например, как нейросеть «Порфирьевич» может продолжить историю, когда пользователь задает в качестве начальных условий всего два слова:

Если задано всего одно слово, даже буква («Я»), то возможен такой результат:

«Крупные IT-компании вкладывают огромные деньги в AI. Результаты исследований публикуются открыто, почти всегда вместе с кодом. То есть результат многомиллиардных инвестиций раздают бесплатно на GitHub каждый день. И компании еще соревнуются в том, кто больше раздаст этого добра. Количество публикаций и качество результатов растут невероятными темпами. В результате образуется разрыв — индустрия не успевает применить на практике всё, что публикуют исследователи. Делать исследования, создавать новую архитектуру нейронных сетей сложно, а пользоваться готовыми нейросетями – очень просто. Отсюда получается рецепт успеха: взять с полочки результат многомиллиардных инвестиций и применить его к своей задаче,» — рассказал Михаил Гранкин, разработчик нейросети «Порфирьевич», изданию «TJournal».

Оказывается, что изначально Михаил Гранкин хотел создать нейросеть, которая бы генерировала стихи. Но для этого ему сначала нужно было обучить сеть класса NLG (natural language generation) русскому языку. Однако, разработчик выбрал нейросеть GPT-2, поскольку это «лучшая нейросеть в своем классе». Михаил Гранкин самостоятельно обучал свою нейросеть на работах Достоевского, Толстого, Пушкина, Булгакова, Гоголя и Пелевина. Также само название нейросети «Порфирьевич» было выбрано в честь полицейского-литературного робота (ИИ) по имени Порфирий Петрович из романа «iPhuck X» Виктора Пелевина.

А вот что написано в разделе «О проекте» на веб-сайте нейросети «Порфирьевич»:

Проект разработан вполне сознательно. Разработчикам хотелось выглядеть успешными. Но что сделано, то сделано.Теперь вы можете пользоваться трудами авторов совершенно свободно, без потерь. И не надо с сожалением перечитывать то, что написано под прикрытием редактирования.

Мы не несем ни какой ответственности, но у нас нет средств получить ее! И на это есть причина!

Обязательно найдите нас. Это ваш единственный шанс. Иначе все пропало. Здесь нет нужных людей, нет документов…

Проверим работу нейросети «Порфирьевич». Ниже приведены несколько примеров, как этот сервис смог продолжить знаменитые цитаты о программировании.

«Ходить по воде и разрабатывать программы, следуя спецификации, очень просто… если они заморожены,» — Эдвард В. Берард

«Обучение программированию не может научить быть экспертом, также как и изучение кистей и красок не может превратить кого-либо в художника,» — Эрик С. Реймонд.

«Учитывая текущее плачевное состояние наших программ, можно сказать, что программирование определенно все ещё черная магия и, пока, мы не можем называть его технической дисциплиной,» — Билл Клинтон.

«Вы не можете создавать хорошие программы без хорошей команды, но большинство софтверных команд ведут себя как проблемная семья,» — Джим Маккарти

«Программирование — это как бить себя по лицу, рано или поздно ваш нос будет кровоточить,» — Кайл Вудбери.

«Сначала учите науку программирования и всю теорию. Далее выработаете свой программистский стиль. Затем забудьте все и просто программируйте,» — Джордж Карретт.

«Многие из вас знакомы с достоинствами программиста. Их всего три, и разумеется это: лень, нетерпеливость и гордыня,» — Ларри Уолл.

«Измерять продуктивность программирования подсчетом строк кода — это так же, как оценивать постройку самолета по его весу,» — Билл Гейтс.

Также нейросеть «Порфирьевич» поздравила пользователей Хабра с новым годом:

habr.com

Когда автор — нейросеть. Как алгоритмы пишут музыку, картины, стихи и сценарии к фильмам

Футурологи уверены, что в течение десяти лет роботы отберут у людей монотонную работу, — алгоритмы будут вести бухучет, управлять автомобилями, штамповать детали на заводах. А вот творческим специалистам — художникам, писателям, музыкантам — нечего бояться, по тем же прогнозам. Алгоритмы не умеют думать креативно, у них нет желания сказать что-то миру, им не придет «в голову» написать картину или роман. И когда нейросеть пишет стихи, как у Курта Кобейна, или новый портрет Рембрандта, она не понимает, что именно делает.

Но имеет ли значение, почему роботы творят, если их произведения нравятся людям? Сегодня алгоритмы делают не только стилизации под творцов, но и пишут новые тексты, музыку, картины. И некоторые из них, хотя и в единичных случаях, уже продаются за большие деньги. Что думают об этом композиторы, художники и разработчики, и как технологии изменят наше представление об искусстве в будущем.

«Башмет сказал: «Да, здорово звучит». О пьесе нейросети

Нейросеть от разработчиков «Яндекса» стала соавтором пьесы, которую исполнил оркестр под руководством Юрия Башмета на Зимнем фестивале искусств в Сочи.

«Цифровой восход» — так назвали пьесу — длится восемь минут, для ее создания алгоритму «скормили» четыре гигабайта произведений классиков — от Баха и Шнитке до Прокофьева и Шостаковича. Бот сгенерировал мелодии, которые собирал в готовое произведение композитор Кузьма Бодров.

«Это была идея организаторов фестиваля, — рассказывает он. — Разработчики сами работали с нейросетью, а я получил от них 20–25 аудиодорожек — каждая примерно по три минуты. Большая часть из них — бессвязные. Но я вычленил три-четыре интересных мотива — этого было достаточно –— и дал им развитие и форму. Эти мотивы — странные, я бы так не придумал, но в них были какие-то проблески интонаций, которые меня зацепили».

На «сборку» у Бодрова ушло две недели. «Иногда две недели можно только искать идею — с чего начать? Здесь же миллиарды вариантов. А в этом случае мне не нужно было придумывать — основа дана».

Нейросеть создала оригинальные мелодии, но по стилю они напоминали американский минимализм. «Там паттерн много-много раз повторяется, — продолжает Бодров. — Я могу сказать, что получилось хорошо. Музыкантам понравилось, они говорили: «Клево», «Интересно». Но главная оценка — это слова Юрия Абрамовича Башмета. Он послушал и сказал: «Да, здорово звучит. Симпатичная вещь получилась».

Кузьма Бодров раньше не использовал алгоритмы в создании композиций. А вообще музыканты довольно часто пробуют поиграть с нейросетями. Пару лет назад победители конкурса классической музыки в Германии признались, что использовали бота для создания мелодии.

Это искусственный интеллект, созданный по принципу организации биологической нервной системы. Нейросеть умеет обрабатывать, структурировать данные, которые к ней поступают, самостоятельно обучаться на этих данных и производить на их основе некий продукт. Сегодня нейросети высматривают преступников в толпе прохожих, помогают врачам ставить диагнозы, предсказывают природные катаклизмы и изменения курсов валют на биржах. И, как можно понять из этого материала, пишут тексты, музыку, стихи и картины.

Продолжение

«Композитор может взять у нейросети идею, — рассуждает Бодров. — И классики, творившие в эпоху Возрождения, часто писали музыку на основе заимствованной у других авторов. Но музыка, которая нас притягивает, — это не только хорошая идея и правильная техника. В ней должна быть энергия, душа, смысл, нейронная сеть не может создать такую музыку. Я думаю, что композиторы в ближайшие годы будут экспериментировать с технологиями, доведут это до какого-то совершенства, но потом интерес к ним угаснет».

Курт Кобейн и Егор Летов. Возрожденные нейросетью

«А в глазах у тебя апельсиновый снег, и не будет в помине озлобленных птиц». «Дождик по миру брел живой, за собой вел свои войска».

Одна из цитат принадлежит Егору Летову, лидеру группы «Гражданская оборона». Другая — творение алгоритма, которого предварительно «накормили» песнями панк-рокера, а заодно всей русской поэзией.

Вы, скорее всего, не догадаетесь, где генеративная строчка, а где та, в которую Летов вкладывал чувства. Второй вариант — настоящая «Гражданская оборона».

Давайте еще раз — где Летов, а где алгоритм: «Мне будет сниться, ты можешь сбиться, и как много лет назад, в гости к богу в Ленинград», «Он гремит сапогами, но упал — гололед, и мы — лед под ногами майора».

Спецпроект на тему

В 2016 году Иван Ямщиков и Алексей Тихонов — разработчики «Яндекса» — выпустили альбом «Нейронной обороны» из 13 песен, куда вошла и песня с первой строчкой (про бога и Ленинград). Тогда многие поклонники удивлялись, не могли отличить генеративные тексты от Летова — настолько лирика была выдержана в его стиле.

«Нейросеть не может выдать осмысленный и связный текст. Мы собирали стихи по одной строчке, — объясняет Иван Ямщиков. — Видим интересную строку — оставляем, ищем ей «пару» и так далее. Видим неинтересную — пропускаем. Но мы ничего не дописывали, все, что есть в текстах «Нейронной обороны», создано нейросетью. Потом мы сочиняли музыку и сами исполняли песни”.

Ямщиков и Тихонов быстро выбрали Егора Летова для дебютного эксперимента после того, как поняли принцип: алгоритм хорошо стилизует творцов, у которых в текстах было много странных и абсурдных образов. Алгоритм выдавал убедительного Даниила Хармса, но сомнительного Пушкина. Егор Летов подходит под параметры, а еще он просто нравился создателям. И «Нейронная оборона» стала успешнее, чем Neurona — альбом Курта Кобейна, который разработчики выпустили спустя год после «возрождения» Летова.

«Нейронную оборону» послушали несколько сотен тысяч человек, а Neurona — около сотни тысяч, — говорит Ямщиков. — Но в первом случае мы собрали русскоязычную аудиторию, а во втором — англоязычную. Можно было лучше продвигать альбом, но это не наша специализация. Мы показываем эти работы на разных IT-конференциях. И изначально делали эти проекты для того, чтобы показать людям, что умеют нейросети».

‘ Youtube/Creaited Labs’

Над лирикой Курта Кобейна работали около полугода. «Сначала мы дали нейросети тексты Кобейна и всю английскую поэзию, — вспоминает Ямщиков. — Первые эксперименты показали, что тексты выходят не очень грамотными, дело в том, что в дата-сете были данные с платформ, куда любые желающие могут загрузить свои произведения, — а там есть стихи, написанные не носителями языка. Мы почистили дата-сет и получили симпатичные вещи».

Сейчас Ямщиков и Тихонов работают над двумя новыми проектами с нейросетями — пока о них не рассказывают, а заказчики, оценившие «Нейронную оборону» и Neurona, обращаются постоянно.

Ямщиков уверен, что искусственный интеллект будет и дальше распространяться в современной культуре и в науке — то есть тех областях, которые, по большинству прогнозов, останутся прерогативой человека в эпоху киберпанка.

«Наши первые эксперименты в 2016 году удивляли людей, а сейчас примеров того, как алгоритмы пишут музыку, тексты, картины — много, — рассуждает Иван Ямщиков. — Приход искусственного интеллекта в искусство — это вообще интересный общественный процесс. Со второй половины XX века мы живем в мире постмодернизма, когда все уже придумано, сказано, написано, а творцы берут идеи и играют с ними, как с кубиками «Лего». И вот появляется нейросеть и говорит: “Я тоже могу играть в кубики «Лего”. Технологии будут развиваться и в этой сфере, и пойдут дальше. Представьте, что у вас дома есть не просто картина, написанная нейросетью, а интерактивная картина с сенсорами, датчиками, которая улавливает ваше настроение и в зависимости от него меняет изображение. Или она меняет «картинку» под каждого члена семьи. Вот то будущее, о котором сейчас говорят на научных и IT-конференциях, связанных с машинным обучением».

Новый Рембрандт и самая дорогая генеративная картина

В апреле 2016 года команда разработчиков, спонсируемая Microsoft и голландским банком ING, показала обществу проект «Следующий Рембрандт» под лозунгом «Через 347 лет после смерти Рембрандта представлена его следующая картина».

С помощью нейросетей разработчики выявили параметры, которые делали его уникальным творцом, начиная от выбора темы работы до точных пропорций типичных рембрандтовских полотен. Получили преобладающую модель, которая представляла из себя «мужчину 30–40 лет в черном платье с белым воротником, лицо повернуто вправо». Этот комплекс параметров использовали для создания оригинального портрета, выполненного в стиле художника.

Другой случай взволновал профессиональных художников. В прошлом году картина, написанная нейросетью, была продана за $432 тыс. на аукционе Christie’s в Нью-Йорке. Эксперты изначально оценивали «Портрет Эдмона Белами» в $7 тыс. Получается, цена генеративного искусства выросла в несколько десятков раз.

"Портрет Эдмонда Белами"  Пресс-служба аукционного дома Christie

«Портрет Эдмонда Белами»

© Пресс-служба аукционного дома Christie’s

«Почему это кажется почти невероятным? Аукционные продажи опираются на такие вещи, как авторство, уникальность. Автор — такой демиург, работами которого хотят обладать коллекционеры, — говорит Александр Евангели, арт-критик, преподаватель в школе им. Родченко. — И когда работа, написанная алгоритмом, оказывается в рамке, за нее идет борьба, и она продается за такую сумму, — эта основа оказывается подорвана. Рыночный механизм сохраняется, а смысл — нет».

Впрочем, это единичный случай, подавляющее большинство картин, созданных нейросетью, ничего не стоят. И цена — не критерий в сфере искусства, добавляет Евангели: «Работы дадаистов очень низко оцениваются рынком — можно купить картину за $10 тыс., что совсем не соответствует вкладу этих творцов в культуру. Но профессионалы понимают — это искусство».

Алгоритмы породили в арт-среде много вопросов. «Чем будет искусство через 10–15 лет —  трудно сказать, но оно потеряет сегодняшние границы, —  говорит Евангели. — Рынок вокруг генеративного искусства к тому времени сформируется, почему нет? Сегодня продаются копии картин –— вы можете купить совсем недорогую картину и украсить дом. И вы можете купить картину, сделанную нейросетью, пусть она ничего не стоит сверх материалов, и повесить дома. Просто у людей есть потребность в украшении окружающей среды, но это не имеет отношение к искусству, речь идет о дизайне. Искусство, во-первых, останется как человеческая практика. Ведь живописцы любят писать картины, как люди любят играть друг с другом в шахматы, хотя алгоритмы уже давно играют лучше. А во-вторых, современное искусство будет комбинировать традиционные подходы и технологии».

«Картины, написанные нейросетью, — это неинтересно»

Елена Никоноле — медиахудожник, выпускница школы им. Родченко. У нее несколько проектов, связанных с нейросетями.

Первый эксперимент — проект Deus X mchn: нейросеть, которая обучалась на сакральных текстах из разных мировых религий — от Ветхого завета до Корана, анализировала их параметры и в итоге написала свой текст. Это сгенерированный псевдорелигиозный текст, в котором появились несуществующие слова.

«Вражебесное», «Человеколетль», — приводит пример Елена. — Недавно ко мне обратился лингвист, который сейчас работает над анализом этого текста для своей научной работы».

На втором этапе проекта Никоноле вместе со своей командой получала доступ к камерам с динамиками, медиасерверам и прочим девайсам, имеющим выход в интернет и расположенным в общественных местах разных городов мира. «К огромной части устройств по всему миру можно легко получить доступ, потому что они не защищены паролем», — говорит художница. Через эти устройства транслировался псевдосакральный текст.

Проект Deus X mchn сейчас представлен на выставке в Берлине. А Елена Никоноле работает над следующим экспериментом.

«Я обучила нейросеть на звуках пения соловья — а у них довольно сложная структура песни. Алгоритм анализировал и выделял паттерны в звуках и генерировал свои — сначала это было соловьиное пение с узнаваемыми технологическими «нотами», но по мере того, как нейросеть обучалась, она выдавала все более похожий результат. Я включала эти звуки птицам, они реагировали и начинали «разговаривать» с искусственным интеллектом. Мне было важно выразить метафору — общение искусственного разума с природой. У проекта готовится второй этап — алгоритм-переводчик, который сможет перевести на человеческий язык пение птиц».

Никоноле считает, что эксперименты с нейросетями в искусстве будут продолжаться. «Но картины, написанные нейросетью, — это базовый уровень, это неинтересно, — говорит она. — Интереснее комбинировать и выражать смыслы через использование технологий».

Гарри Поттер и очень странный фильм от алгоритма-Джетсона

Алогориты, как уже было сказано, не умеют создавать истории, ведь они вообще не понимают смысла того, что делают по команде. Этот факт лучше всего иллюстрируют короткометражные фильмы, снятые по сценерию, написанному нейросетью. 

Например, Sunspring — семиминутный фильм «о будущем, в котором люди столкнулись с массовой безработицей и, чтобы выжить, вынуждены продавать свою кровь». Идею, сценарий и диалоги написала программа Джетсон, «вдохновленная» «Звездными войнами», «Матрицей», «Людьми в черном» и сотней других популярных научно-фантастических сюжетов. Кажется, создатели вовсе не вмешивались в «авторский замысел», потому что уловить смысл в диалогах героев — почти невозможно. 

Еще авторы на чикагской студии Botnik использовали нейросеть для создания рассказа о Гарри Поттере. Алгоритму «скормили» романы Джоан Роулинг и попросили его написать новый. В трехстраничном рассказе «Гарри Поттер и портрет того, что выглядит как огромная куча пепла» друг Гарри — Рон — превращается в паука и пытается съесть родителей Гермионы.

Есть и относительно успешный кейс по применению нейросетей в создании историй. Три года назад короткий роман «День, когда компьютер напишет роман», написанный алгоритмом японских разработчиков, вышел в финал конкурса авторов. Создатели не только «покормили» нейросеть дата-сетом, но и прописали героев, события. Это был не единственный претендент на победу среди ботов, но десяток других нейророманов не вошли в шорт-лист.

Хотя арт-деятели уверены, что любые продукты алгоритмов — это не искусство, даже учитывая то, что они продаются и нравятся, точно в рамки современного искусства вписываются сами эксперименты. «Портрет Эдмона Белами», например, ставит перед нами вопрос о ценности авторства и рушит нормы рынка, появившегося намного раньше, чем ученые начали как-либо предсказывать появление искусственного разума.

Анастасия Степанова, Габриэла Чалабова

tass.ru

7 сервисов, чтобы творить с помощью нейросетей — Академия Яндекса

Если вам не хватает вдохновения или срочно понадобилось показать себя творческим человеком, то вы можете обратиться к помощи алгоритмов. Мы собрали подборку сервисов для тех, кто пока не научился обучать нейросети сам.

1. Экспресс-дизайн логотипов — Looka

Looka позволяет пользователям сгенерировать простой логотип за несколько минут. Для того, чтобы создать собственное лого, нужно указать название компании, выбрать сферу её деятельности и понравившиеся картинки из примеров. Затем Looka покажет вам несколько вариантов: их можно будет окрасить в цвета бренда и добавить характерные символы.

У Академии Яндекса получилось так

2. Превратить каракули в рисунки — AutoDraw

Интерфейс Autodraw похож на привычный Paint: в нём можно рисовать простые картинки при помощи курсора. Затем сервис превращает каракули пользователя в стандартные изображения из библиотеки (при этом можно выбирать из нескольких предложенных вариантов). Например, круг и линии, исходящие от него, Autodraw предложит заменить на стилизованное солнце.

До Autodraw:

После Autodraw:

3. Записать мелодию — MuseNet

С помощью MuseNet можно сгенерировать четырёхминутный трек в одном из стилей: саундреков для видеоигр, классической музыки, дискографии Фрэнка Синатры и так далее. Ещё в сервисе можно выбрать инструменты, которые будут использоваться в мелодии, и добавить аудио для референса, чтобы MuseNet мог создать похожий.

4. Генерация стихов — Яндекс.Автопоэт

Сервис Яндекса автоматически составляет стихи из поисковых запросов пользователей. Для того, чтобы рифмовать строки, Автопоэт сравнивает окончания транскрипций фраз, начиная с последнего ударного слога. Поначалу Автопоэт создавал простые стихи с перекрёстной рифмой, но потом освоил и сложную рифмовку: например, онегинскую строфу.

5. Сделать из речи битбоксинг — Neural Beatbox

Сервис работает только в Google Chrome. Neural Beatbox превращает запись голоса в битбокс — для этого нужно надиктовать несколько предложений на странице приложения.

6. Любовная лирика на английском — Billion Songs

Компания Gradient разработала инструмент для тех, кто хочет посвятить песню любимой (или любимому), но не умеет писать стихи. Billion Songs автоматически генерирует лирические тексты: при этом результаты работы программы не сохраняются на сайте, и вы можете выдать работу нейросети за свою.

7. Рецепты по фотографии — Inverse Cooking

В блоге Facebook AI опубликовали исследование и выложили в общий доступ алгоритм, который позволяет сгенерировать рецепт приготовления блюда по его фото. Сначала алгоритм пытается понять, какие ингредиенты есть на изображении и как их обработали (сварили, перемололи или поджарили), а после генерирует текстовый рецепт.

Однако для того, чтобы запустить этот код, придётся немного повозиться:

  • Сначала нужно зайти в репозиторий исследования на GitHub. В нём нужно нажать на кнопку Colab: вы перенесётесь в сервис от Google, который позволит запустить код в облаке.
  • Затем нужно провести тестовый запуск кода, открыв вкладку Runtime и выбрав там Run all.
  • После этого сервис выдаст результаты для тестовых изображений. Чтобы заменить их на другие, нужно прописать в коде свои ссылки на картинки (через запятые и в кавычках).
  • Теперь нужно снова запустить код (с помощью команды Run All).

Можете приступать к готовке.

Понять, как это работает: специализация по Data Science на Яндекс. Практикуме

alt

academy.yandex.ru

Нейросеть сочинила стихи в стиле «Нирваны» / Habr

Год назад «искусственный интеллект» от «Яндекса» сочинил стихи в стиле Егора Летова, которые затем наложили на музыку в стиле группы «Гражданская оборона». Это был первый музыкальный опыт «Автопоэта», разработанного в компании ещё десять лет назад. С 2006 года он попробовал себя в сочинении стихов под Пушкина, стихов на основе поисковых запросов, его применяли вместе с системой генерации голоса для декламирования стихов в авторском исполнении.

Сейчас разработчики программы Алексей Тихонов и Иван Ямщиков (в данный момент работает в Институте научной математики Общества Макса Планка в Лейпциге) решили повторить опыт и сделать нечто подобное, но уже на английском языке. В качестве образца для подражания «Автопоэту» задали культовую группу Nirvana. Тем более что Курту Кобейну в этом году исполнилось бы 50 лет.


Иван Ямщиков пишет, что для обучения нейросети они собрали по всему интернету примерно 200 мегабайт классической и современной поэзии. Но внезапно выяснилось, что обучить нейросеть по этим сырым данным невозможно: «Очевидно, много людей пишут стихи на английском языке, но примерно 50% из них не знают базовых правил грамматики английского языка. Самых основных вещей», — сокрушается Иван.

Собранные данные пришлось тщательно фильтровать, на что ушло много времени. Набор данных сократили примерно вдвое, то есть примерно до 100 МБ текстов. После фильтрации качество данных оказалось достаточным, чтобы обучить языковую модель, и нейросеть затем специально обучали для подражания Курту Кобейну.

Одновременно авторы опубликовали препринт научной работы о генерации музыки нейросетью. Скорее всего, алгоритмы работы нейросети и детали разработки будут вскоре опубликованы в одном из научных журналов.

Правда, для четырёх песен этого альбома в стиле «Нирваны» минусовку написал сам Ямщиков, а не нейросеть, но стихи сочинила именно программа. Из всего объёма сочинённых ею стихов были отфильтрованы и выбраны самые лучшие. Затем авторы начали искать вокалиста, который бы исполнил эти произведения. Были прослушаны четверо исполнителей, но суровым требованиям удовлетворил только пятый — Роб Кэрролл, он и записал вокал для всех четырёх песен.

Как и в случае с «Гражданской обороной», для большей реалистичности авторы перенесли результат на старую плёночную кассету, а затем уже оцифровали звук с неё с характерным шипением, потрескиванием и искажениями. Они говорят, что все мы слушали «Нирвану» на старых кассетных магнитофонах, так что такой звук будет казаться более родным и знакомым.

Процесс записи на плёнку показан на видео. Треки просто запускали на планшете iPad в метре от аппаратуры, которая записывала звук на кассету. Ради символического смысла песни записывались не просто на какие-то случайные кассеты, а именно на кассеты с альбомами «Нирваны», поверх старых песен.

Итак, сами можете оценить результат. Альбом Model от коллектива Neurona опубликован на всех популярных музыкальных платформах.

AppleMusic:
https://itunes.apple.com/album/id1248121490

Google Music:
https://play.google.com/music/preview/Bbeknqo5djw3kysh7ildla6zgne

Spotify:
https://open.spotify.com/artist/6Y3iq1wJEPEj6e6P0NNL4Z

Yandex.Music:
https://music.yandex.ru/artist/5153458

На одну из песен с альбома In the back of your glass даже сняли видеоклип.

Ранее на GT и Хабре сообщалось о научных работах, в которых нейросети успешно переносят стиль с одной фотографии на другую, а также стиль художника с одной картины на другую.

Как видим, нейросети могут переносить и стиль поэзии, и стиль музыки. В интервью РИА «Новости» Ивану Ямщикову задали вопрос, учитывая появление нейросетей, способных имитировать творчество известных людей, не появится ли в будущем соблазн ввести право собственности и копирайт не только на конкретные аудиозаписи, но и на стиль художника, музыканта или композитора? Автор программы-автопоэта не видит такой угрозы. Совсем наоборот, он считает, что ИИ может быть соавтором и помогать человеку: «В искусстве в целом пока есть элемент эксклюзивности. То, что нейросети умеют теперь имитировать стиль Ван Гога, не девальвирует его творчество. Есть элемент опосредованного общения между человеком, создавшим то или иное произведение, и человеком, который его увидел, услышал, прочитал. Это, мне кажется, должно снимать вопросы копирайта. Куда интереснее то, что машинный интеллект может становиться соавтором, очередным инструментом, который просто доступен художнику и позволяет делать более интересные вещи».

habr.com

запись альбома-посвящения Егору Летову при помощи нейросетей / Habr

В ожидании чудес,

Невозможных чудес.

Я смотрю в темноту,

Но я не верю в прогресс.

Я хочу быть убийцей,

Я хочу быть живым.

Мне осталось всего лишь

Дожить до седин.

Крутится затёртая аудиокассета, нестройно гудят гитары, поёт голос, в котором чувствуется безудержное веселье приговорённого к смерти, звучат тексты, замешанные на эстетике абсурда. Неизвестный ранее альбом Егора Летова? Только название какое-то странное: «Нейронная оборона»…

Нет, это – современный проект стилизации под «Гражданскую оборону», выполненный при помощи компьютерной нейросети. Авторы проекта — Алексей Тихонов и Ivan Yamshchikov, творившие при помощи единомышленников: Павла Гертмана и Ильи Едренкина.

Ознакомившись с достижениями современных нейросетей, которые могут и картину нарисовать, и стих сочинить, Иван немедленно задался целью сделать при помощи компьютерных технологий стилизацию под какого-либо культового поэта.

Перебрав известных поэтов, от Пушкина до Хармса, товарищи решили вместо простого чтения полученных от нейросети стихов записать целый музыкальный альбом, где небольшие стихи будут перемежаться музыкальными композициями, также созданными на стихи компьютера.


Основатель бессмертной «Гражданской обороны» Егор Летов с его «гаражным» звучанием и абсурдистскими стихами, по мнению заговорщиков, подходил как нельзя лучше. Правда, Иван столкнулся с непредвиденными трудностями, пытаясь воспроизвести аутентичное звучание коллектива на современном оборудовании. Фузы и гитары отказывались «правильно» дребезжать, домашняя драм-машина Ивана – правильно стучать.

Методом проб и ошибок был подобран нужный звук, а также уникальный строй гитар пионеров русского рока 80-х, «при котором ми верхней и ми нижней струны расходились на полтона», по словам автора проекта. В результате на альбоме звучат стихи в исполнении Алексея и песни с вокалом Ивана, старавшегося петь «под Егора».

Вместо воспроизводства оригинального, и довольно сложного, метода сведения при помощи двух магнитофонов, при котором басы иногда расходились с ударными, ребята добавили аутентичности, просто перегнав полученную запись на аудиокассету, а затем оцифровав её обратно.

При этом, по их словам, была использована аудиокассета, на которой ранее были записаны песни именно «ГО». Немного оккультизма ещё никому не вредило. За выбор аудиокассеты, оцифровку альбома и отрисовку его, в меру психоделической, обложки ответственность несёт Павел Гертман. Илья Едренкин помогал единомышленникам справиться с нейросетью.

Альбом друзья совершенно бесплатно выложили на Яндекс.Музыке, iTunes, Google.Play и Amazon Music, где им и можно невозбранно наслаждаться.

Интересно, обеспокоится ли этой новостью незабвенный Борис Борисыч? Его тексты всё равно, кроме него, никому не понятны. Не отправит ли в скором времени на пенсию искусственный интеллект, кроме дальнобойщиков и швей, ещё и поэтов-песенников?..

Робот от Яндекса ещё в 2006 году демонстрировал возможности автогенерации стихов со стилизацией под Пушкина, а в 2013 году «Автопоэт» стал писать стихи на основе поисковых запросов. С 2015 года эти «произведения» можно услышать «в исполнении автора», то есть при помощи системы генерации голоса.

Егор Летов (настоящее имя: Игорь Фёдорович Летов) – омский поэт, музыкант, звукорежиссёр, художник-оформитель, коллажист. Основатель, лидер и единственный постоянный участник группы «Гражданская оборона». Также известен по музыкальным проектам «Егор и Оп******вшие» и «Коммунизм». Ключевая фигура в так называемом «сибирском андеграунде» — музыкально-поэтическом движении, возникшем в Западной Сибири в конце 1980-х годов.

habr.com

Нейролирика – Новости – Научно-образовательный портал IQ – Национальный исследовательский университет «Высшая школа экономики»

В книжной серии журнала «Контекст» вышла первая книга стихов, созданных нейронной сетью. Сборник «Нейролирика» объединил тексты, написанные в стиле поэтов разных эпох, от античности в русском переводе до Серебряного века и современности. Автор эксперимента, доцент Школы лингвистики НИУ ВШЭ Борис Орехов, рассказал IQ.HSE, зачем нужна компьютерная поэзия, и как это работает.

Легитимация нейротворчества

Борис Орехов поставил эксперимент: он натренировал нейронную сеть на стихах великих поэтов и заставил писать собственные. Проект позволил определить «формулы» поэзии Гомера, Овидия, Пушкина, Ахматовой, Мандельштама, какими их видит искусственный интеллект. Обученные нейросети породили собственные тексты, напоминавшие исходники разными чертами стиля. Соблюдались ритм, размер, синтаксис, интонации, излюбленные слова поэтов.

Такая «поверка гармонии алгеброй» дает представление о стиле поэта или целой эпохи, помогает выделить семплы их поэтики. В этом смысле нейролирика — отличное подспорье в стилеметрии, научной дисциплине, исследующей, как устроена поэзия или проза тех или иных авторов.

Сборник по итогам эксперимента — «Нейролирика. Стихотворения и тексты», составленный Владимиром Коркуновым, — можно считать «легитимацией нейронных стихов в литературе», говорит Борис Орехов. У нее были свои предтечи в других, не книжных, формах. Так, сотрудники «Яндекса» в 2016 году выпустили альбом «Нейронная оборона» со стихами роботов, написанными в стиле Егора Летова, основателя группы «Гражданская оборона»).

Интерес к нейроэкспериментам явно растет. Похожее явление известно и в изобразительном искусстве. Нейросети, обученные распознавать изображения на картинах или фотографиях, порождают собственную живопись. Термин, обозначающий это явление, — инцепционизм (inceptionism) — отчасти можно перенести и на нейронную поэзию. Она тоже инспирирована уже существующими произведениями.

«Можно взять тексты, написанные русским гекзаметром — шестиударным дольником, который обычно используется для перевода античного гекзаметра (Гомера, Вергилия, Овидия), и натренировать на них нейросеть, — рассказывает Орехов. — Получится, например, такая строка: «Силу, к голубке хитон отличась, Гиоклей благородный». Это правильный гекзаметр. Хотя ни правил расстановки ударений, ни того, что ударение вообще существует, нейросети не объясняли».

Как это работает

Нейросеть как математическая концепция способного к обучению искусственного интеллекта — задумка давняя. Она восходит к 1940-м годам, когда ученые пробовали воссоздать в технике биологические нейронные сети — человеческий мозг. «Несколько десятилетий назад возникла идея, что можно расщепить информацию на несколько кусочков, и каждый из этих кусочков подать на вход математической функции, — продолжает исследователь. — Если эти функции будут взаимодействовать друг с другом и передавать переработанную информацию, вычисления станут эффективнее. А потом стало ясно, что эту математику можно реализовать в компьютере».

В случае со стихами используются многослойные рекуррентные нейронные сети, которые работают с последовательностями — например, текстами, которые и есть цепочки слов и букв.

Сеть, которая умеет читать буквы, получает текст. Она старается в нем разобраться: выявить, почему одна буква следует за другой и предшествует третьей, с какой частотой это происходит и пр. «Одного знания о распределении букв оказывается достаточно, чтобы при порождении текста правильно имитировать и согласование слов, и употребление предлогов, и разные другие сложные, на человеческий взгляд, языковые правила, — отмечает Орехов. — Мы не рассказывали сети, что бывают морфемы, ударения, синтаксические конструкции, а она вдруг взяла и все это поняла сама». 

Умные устройства чувствительны к объему обучающей выборки. Для того, чтобы порождать тексты приемлемого качества, им нужно проанализировать сотни тысяч стихотворных строк.

Реставрация мифологем

На фоне избытка текстов, созданных людьми, компьютерные поэтические эксперименты могут вызвать недоумение. На сакральный вопрос: «Что хотел сказать автор?» — в случае с нейропоэзией точно не ответишь. Но можно попытаться интерпретировать стихи, вспоминая уже накопленную семантику тех или иных образов в поэзии и — шире — мировой культуре.

В этом смысле анализ нейролирики — рефлексия над поэтическим мышлением в целом.

Нейросеть, обученная на четырехстопных ямбах разных авторов, сочинила такие строки:

Он беспощадной головой,
Волной и волосом
волненья
Не чувствовать не упадет.
В пределах воздух красный смех.

Исследователь комментирует: Плавная, но настойчивая оркестровка «головой, волной, волосом» переносит нас в XX век, возможно, даже во вторую его половину. Из той же эпохи — экспериментальное составное сказуемое «упасть чувствовать», которое, возможно, является попыткой перевода на русский английской идиомы «fall in love»». Затем комментатор остроумно подключает мифологему воздуха. Обычно воздух представляется вездесущей и свободной субстанцией (ср. классическое: «Я вольный ветер, я вечно вею»). В нейростихе же он заключен в пределы. Это актуализирует «тему несвободы».

Деконструкция авторства

Нейростихи сигнализируют, от каких штампов в восприятии поэзии стоит отказаться. Так ли уж обязательно, например, личностное, авторское начало? Вопрос дискуссионный.

Обычно считается, что лирика — подчеркнуто авторское высказывание. Ее создатель выражает свои чувства, мысли, интенции. Это и есть сообщение, транслируемое текстом. Однако нейролирика ничего не сообщает. Компьютеры научились имитировать поэтический язык, эффектно расставлять слова. Но текст без автора «одновременно оказывается текстом без смысла признают исследователи.

Стоит освежить привычные концепции, считает Борис Орехов. Трюизмов, мешающих воспринимать поэзию непосредственно, слишком много. Не зря против них так активно восставали футуристы начала XX века — создатели «заумного языка» Велимир Хлебников, Алексей Крученых и пр.

«Давайте посмотрим на нейростихи, осознаем, что за ними нет никакого личностного субъекта, нет всевидящего и всезнающего автора, нет я-начала, — замечает исследователь. — Это должно научить нас воспринимать красоту текста самого по себе».

Есть и другая причина, по которой не стоит абсолютизировать институт авторства. Объем компьютерных произведений может привести к «инфляции статуса автора», подобно тому, как изменился «статус краснодеревщика после появления мебельных фабрик», говорит лингвист. Люди привыкли к тому, что стихи — «ручная работа», нередко плод больших интеллектуальных усилий. Достаточно вспомнить количество черновиков у Пушкина. Но компьютеры способны создавать свою продукцию в неограниченном масштабе и тем самым — опровергать идею элитарности поэзии.

Геном поэзии

Поскольку сети, натренированные на текстах определенных поэтов, воспроизводят то, что наиболее характерно для них, мы можем получить, например, весьма узнаваемые семплы поэзии Пушкина или Мандельштама. А в итоге можно составить гид по индивидуальным поэтическим стилям.

Нейросетевой текст включает слова, которые часто повторяются в исходнике. «Есть и другие способы выделения этих слов: частотные словари, специальные методики подсчетов. Но почему бы не иметь ещё один? — размышляет Борис Орехов. — К тому же нейросеть как способ наглядного обобщения корпуса — очень user-friendly. Она выдает не таблицу с частотностями, а читаемый текст».

В античных нейрогекзаметрах фигурируют реалии из «аутентичного» поэтического мира: Афина, Арес, Агамемнон, Менелай, ахейцы, быки, кони, корабли, мечи и пр. Начитавшись «Одиссеи», компьютер выдал, например, такой текст:

А вот отрывок стиха, вдохновленного лирикой Анны Ахматовой (с характерными для нее словами «любовь», «небеса», «веселье», «поэт», «простота» и пр.):

©Wikipedia

Поэтика в сочетании с характерным ритмом делает стихи узнаваемыми.

Борис Орехов провел эксперимент: предложил аудитории, которой читал лекции, текст «под Владимира Высоцкого» на экране. Слушатели довольно легко идентифицировали его стиль. В лирике были резкие отрывочные фразы с экспрессивными словами. А это присуще «напористой поэтике Высоцкого».

В литературоведении немало проблем с атрибуцией текстов. Обсуждается авторство произведений Шекспира, «Тихого Дона» Шолохова, диалогов Платона (один ли автор или несколько), ряда статей Бахтина. Нейронные сети с их выдающимися аналитическими способностями могут внести ясность – опять же с помощью выделения характерных черт стиля писателей. Правда, есть другие машинные методики, уже успешно проявившие себя. Например, алгоритм «Delta» распознал, что роман, который Джоан Роулинг написала под пседонимом, действительно принадлежит ей.

Литературный спиритизм

Нейронные сети генерируют идеи для живой авторской поэзии. Они подсказывают ей новые образы и слова.

Поэты прошлого нередко чувствовали себя визионерами: идеи являлись им во сне, в видениях. Даже если не верить Сэмюэлю Кольриджу, который, по его признанию, именно так написал поэму «Кубла-хан», легенда все равно впечатляющая.

Основатели французского сюрреализма Андре Бретон, Филипп Супо и Луи Арагон придумали «автоматическое письмо»: свободное, неконтролируемое порождение текста. В этом процессе писателю, по-видимому, отводилась роль проводника самых разных образов, возникших в подсознании. В живописи похожие эксперименты проделывал Джексон Поллок, который случайно плескал краску на холст. 

Принцип случайности, спонтанности завораживал многих мастеров. В таких опытах могли родиться очень необычные образы. Если бы словосочетания «красный смех» из процитированного выше нейростиха не существовало (а у Леонида Андреева есть одноименный рассказ), его следовало бы выдумать. Что и сделала нейросеть, ничего не знавшая о прозе Андреева. Она породила свой «красный смех», обучившись только на поэтических текстах, где такого образа нет. Ему можно приписать очень богатую семантику.

«Красный» ассоциируется с революцией и Советской властью, со средневековой Русью («красный» в значении «красивый»: «красна девица», «на миру и смерть красна»), с гоголевской мистикой («Красная свитка»), с Серебряным веком (тревожное красное домино в романе «Петербург» Андрея Белого). Наконец, красный цвет — излюбленный для итальянской commedia dell’arte.

Сеть придумывает имена. Очень по-гречески смотрится имя «Гиоклей». Есть имя «Диоклей» и немало имен со слогом «ге/ги» в начале или середине (Геракл, Гипподам, Эгиох). Имя удачно стилизовано под гомеровское, да и эпитет приложен подходящий — «благородный». А вот другие нейросетевые неологизмы: «расколоденье», «порочник», «невкусство», «Геромородим», «веролюция», «когданический».

Нейросеть, обученная на лирике Мандельштама
©Wikipedia 

Компьютер как поэт

А теперь слово скептикам. Они скажут, что компьютеры и до этого писали стихи. Было дело, но сочинительский процесс шел совсем иначе. Существовало два варианта, поясняет Орехов.

©Wikipedia Берется готовый текст, режется на части, а компьютер складывает их в случайном порядке. В 1959 году немецкий математик Тео Лутц запрограммировал вычислительную машину случайным образом перекомбинировать фразы из шестнадцати глав романа Франца Кафки «Замок». Полученные тексты он назвал «стохастическими».

Именно такие стихи порождались на первых примитивных, по нынешним меркам, ЭВМ. И, конечно, это был верлибр, стихи без метра и рифмы.

©Wikipedia Составлялся тезаурус слов (желательно «попоэтичнее»), в машину загружались правила, по которым эти слова должны комбинироваться (тут обычно привлекали эксперта). Затем запускался генератор случайных значений. «Вот что привлекало поэтов в компьютере: неожиданность результата, полная свобода искусства», — комментирует исследователь.

Второй вариант стал популярен в России в 1990-е годы. «В нашей стране всем хочется, чтоб компьютер писал обязательно в рифму и обязательно силлабо-тоникой, — говорит Борис Орехов. – Верлибр наивные читатели (коих много среди негуманитариев) отказываются считать стихами».

Нейронным сетям на стадии, когда надо установить закономерности стихосложения, эксперт не нужен. Они думают сами. Доля эксперта — загрузка данных и шлифовка результата.

IQ

Автор исследования:


Подпишись на IQ.HSE

iq.hse.ru

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *