# Лабораторная работа №4. Использование нейронных сетей для генерации текста ## Цель работы Получить практические навыки решения задачи генерации текста. ## Задание 1. Загрузить выборку стихотворений одного из поэтов в соответствии с вариантом. 2. Познакомиться с данными. Проанализировать статистические характеристики исходных данных (среднюю длину стихотворения, среднюю длину строки). 3. Подготовить выборку для обучения. 4. Построить нейронную сеть. Тип ячейки RNN выбрать в соответствии с вариантом. 5. Обучить нейронную сеть на разных количествах эпох (5, 15, 30, 50, 70) при зафиксированных параметрах embedding_dim = 256, rnn_units = 300, T = 0.3 и сравнить результаты генерации (тексты), перплексию и статистические характеристики сгенерированных текстов. Выбрать оптимальное количество эпох 7. Изменяя параметр температуры T проанализировать изменения сгенерированного текста. Выбрать оптимальное значение параметра. 8. Проанализировать зависимость перплексии, скорости обучения, результатов генерации от параметров нейронной сети embedding_dim, rnn_units: embedding_dim = {vocab/4, vocab/2, vocab, vocab * 2, vocab * 4}, где vocab = размер словаря выборки. rnn_units = {10, 100, 300, 500} ## Указания Для работы рекомендуется использовать Google Colab вместо Jupyter Notebook для ускорения расчетов. ## Варианты заданий ### Поэт Четные номера по журналу - Пушкин, нечетные - Маяковский. ### Тип ячейки RNN Остаток от деления номера по журналу на 3: * 0 - https://keras.io/api/layers/recurrent_layers/simple_rnn/ * 1 - https://keras.io/api/layers/recurrent_layers/lstm/ * 2 - https://keras.io/api/layers/recurrent_layers/gru/ ## Контрольные вопросы 1. В чем особенность рекуррентных нейронных сетей? 2. Типы рекуррентных сетей - обычная RNN 3. Типы рекуррентных сетей - LSTM 4. Типы рекуррентных сетей - GRU 5. Что такое и как вычисляется перплексия