Офис, любимый ситкомом Америки, прекращен; ИИ может помочь в написании новых серий

Рекуррентные нейронные сети для абсолютных новичков

Офис, определенно один из самых любимых американских ситкомов, прекратил показывать на NBC 16 мая 2013 года (не считая спин-оффов или продолжений с другим набором основных действующих лиц). Любимое шоу было настолько популярным, что спустя годы после прекращения выпуска нового контента оно стало самым ценным шоу Netflix, которое транслировалось в течение 52 миллиардов минут в 2018 году. На самом деле, оно настолько ценно, что NBC обеспечила «эксклюзивные права на внутреннюю потоковую передачу» на своей собственной платформе и отказался от прав на потоковую передачу Netflix, начиная с 2021 года. Ситком был известен своим умным юмором и остроумными сюжетами - это чудо-шоу, действие которого происходит в офисном помещении, возможно, самое скучное, оно длилось 9 полных сезонов, каждый с десятками эпизоды. Возможно, именно игнорирование Офиса традиционных сюжетных линий во многом обусловило его успех.

Несмотря на то, что блестящие писатели, стоящие за The Office, перестали создавать контент, искусственный интеллект может помочь. Используя возможности глубокого обучения, мы можем создавать новые диалоги с теми же персонажами и остроумным юмором, что и в Офисе.

Рекуррентные нейронные сети (RNN) используются для итеративной генерации последовательностей текста, что означает, что выходные данные RNN повторно передаются в одну и ту же модель для генерации следующей последовательности и т. Д. Это тип нейронной сети, которая будет использоваться для создания нового диалога в теме Офис.

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

Сверточные NN и искусственные NN принимают определенный x и выводят y. Затем вывод "забывается", когда в следующий раз сеть просят принять x и вывести y - может быть запущена 'обычная' (стандартная) нейронная сеть. 100 раз, и ни один из них не будет искажен предыдущим результатом. Сеть не учитывает закономерности во времени, что-то встроенное в структуру RNN. Однако RNN использует все предыдущие выходные данные и учитывает их в следующих генерируемых выходных данных.

Еще одно преимущество RNN состоит в том, что она может обрабатывать ввод произвольного размера. Это связано с тем, что рекуррентная нейронная сеть имеет только три набора весов и смещений и умножается и добавляется (соответственно) к входам для текущей ячейки. Три набора весов смещений представлены тремя типами стрелок: от ввода к скрытому (от x до h), от скрытого к скрытому (h до h) и скрыты для вывода (от h до y). Эти три веса и смещения корректируются, чтобы максимально соответствовать данным. Поскольку существует только три типа весов, добавление еще одного элемента ввода (другого символа) требует загрузки только еще одного экземпляра набора весов и смещений типа «ввод-к-скрытым» и «от скрытого к-скрытому».

Использование одинаковых весов и смещений в каждом слое - вот что делает нейронную сеть «повторяющейся». Те же правила применяются для преобразования данных на каждой итерации. Обратите внимание, что самые последние выходные данные (x [n]) наиболее близки к выходным данным (y), что означает, что модель уделяет наибольшее внимание и важность самого последнего «опыта», как это делают люди, но при этом умудряется заимствовать из предыдущей информации.

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

Фрагмент того, что RNN, обучавшаяся в течение 8 часов на 8 454 текстах и ​​547 248 символьных последовательностях, смогла сгенерировать:

[Phyllis]: This time you won't regret it.
[Dwight]: No! No! No! I don't want to. Michael!
[Michael]: You can't take any pressure. I was in connection with Jim who said said you kissed Phyllis.
[Dwight]: That's not true!

Хотя текст был скорректирован с учетом основных орфографических ошибок, модель смогла уловить несколько английских слов, синтаксис помещения имени символа в скобки, за которым следует точка с запятой перед текстом, использование апострофов и знаков препинания и многое другое. продвинутые концепции на английском языке. RNN также привлекло внимание многих персонажей, таких как знаменитое «Майкл!» Дуайта. призыв о помощи или жалобе и связи Майкла с Джимом, который, по всей видимости, сыграл еще одну из множества розыгрышей.

Модель, однако, все еще очень проста - 8 часов. Показанный отрывок был лучшим из многих других сгенерированных некачественных текстов. При более длительном обучении, возможно, 24 часа или даже в течение нескольких недель, ожидается, что RNN будет генерировать тексты на том же уровне, что и писатели-люди. В таком последовательном шоу, как The Office, где нет серьезных изменений сюжета, а сеттинг остается неизменным, автор сценария искусственного интеллекта определенно мог бы восполнить пробел в популярном шоу NBC.

Если вы заинтересованы в создании собственного текста, начните с textgenrnn. Этот модуль Python, который запускается поверх Keras / TensorFlow, позволяет обучать рекуррентную нейронную сеть, генерирующую текст, в трех строках кода. Документацию можно найти на его странице GitHub.

Для получения дополнительной информации о реализации этих идей вам могут быть интересны эти статьи, пример использования textgenrnn для имитации риторики политика и генерации идей для популярных видео на YouTube:





Чтобы получить более подробное руководство по кодированию с использованием TensorFlow, ознакомьтесь с этой статьей о написании пьес Шекспира. Кодирование RNN с использованием таких библиотек, как TensorFlow, дает больший контроль над параметрами и архитектурой, что может ускорить обучение и понимание модели.



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