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

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

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

Если вы не знакомы с Поминками по Финнегану, не корите себя за это. Она была написана всемирно известным писателем Джеймсом Джойсом в период с 1922 по 1939 год, и английские ученые до сих пор не спят по ночам, пытаясь понять, означает ли она что-нибудь на самом деле. И я не имею в виду своего рода субъективистское "Значит ли что-нибудь на самом деле что-нибудь?" в духе, воспитанном вскользь университетскими профессорами с повязками на локтях, замачивающими чайные пакетики в пыльных гостиных на край кампуса; Я имею в виду, что до сих пор буквально нет единого мнения — академического или иного — относительно того, 600 страниц полностью выдуманной чепухи.

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

Пока я не прогнал его через текстовый генератор Маркова.

Когда я нашел этот простой марковский текстовый генератор несколько дней назад, я почти сразу понял, что должен обучить его на Поминках по Финнегану. Анализируя Wake, люди застревают на таких вещах, как попытка расшифровать значение одного из 45-буквенных слов Джойса с восемнадцатью Z в нем. Но марковский текстовый генератор просто заметит это и будет двигаться вперед, используя его только для того, чтобы сообщить своему хранилищу памяти, что длинные слова с большим количеством Z встречаются с большей вероятностью. Я закодировал программу Markov для чтения Wake, анализа результатов, а затем начал предсказывать дальнейший текст, основываясь сразу на всей его грамматике, синтаксисе и словарном запасе. Этот тип анализа, когда-то почти невозможный, теперь занимает всего несколько минут.

И когда я увидел результаты, я почти не поверил. Не стесняйтесь попробовать отличить себя:



Во многих случаях генератор языка на самом деле имеет больше смысла, чем исходный текст. Вывод, полностью лишенный смысла, кажется, соответствует исходному тексту как по содержанию, так и по стилю. Я наблюдал за поступающими результатами — не в состоянии определить разницу между исходным и моим выводом более чем в 80% случаев — в состоянии недоверия. Вы можете легко вставить вывод компьютера в любое место на 600 страницах Wake, и практически никто, никто в мире не сможет сказать об этом.

Так это решает? Была ли Джойс мошенницей? Является ли его текст, теперь неотличимый от тарабарщины (во всяком случае, для меня), таким же лишенным повествования, как и код моей программы? Не так быстро.

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

Во-вторых, даже если замысел художника можно каким-то образом доказать, что он воспроизводим на машине, это не делает его менее достоверным. Мы могли бы построить машину, которая рисовала бы, как Ван Гог (или, конечно, Поллок), но это не уменьшило бы воздействия, которое каждое отдельное произведение искусства оказывало на наблюдателей. Возможно, часть замысла художника состоит в том, чтобы передать хаос или даже машинную воспроизводимость! Насколько мне известно, если бы Джойс поднялся из могилы и увидел результаты моего приложения Markov, он мог бы вдоволь посмеяться, слегка отредактировать тему и с радостью опубликовать это как Finnegans Wake Part 2: Even Wakier. И это кого-то удивит???

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

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

По крайней мере, он был генератором марковского языка за 80 лет до их изобретения.

[Эта статья изначально была опубликована на union.io]