41 lines
4.2 KiB
Markdown
41 lines
4.2 KiB
Markdown
|
Лабораторная работа №7
|
|||
|
|
|||
|
Вариант №4
|
|||
|
|
|||
|
Задание на лабораторную:
|
|||
|
|
|||
|
Выбрать художественный текст (четные варианты – русскоязычный, нечетные – англоязычный) и
|
|||
|
обучить на нем рекуррентную нейронную сеть для решения задачи генерации.
|
|||
|
Подобрать архитектуру и параметры так, чтобы приблизиться к максимально осмысленному результату.
|
|||
|
Далее разбиться на пары четный-нечетный вариант, обменяться разработанными сетями и проверить,
|
|||
|
как архитектура товарища справляется с вашим текстом.
|
|||
|
В завершении подобрать компромиссную архитектуру, справляющуюся достаточно хорошо с обоими видами
|
|||
|
текстов.
|
|||
|
|
|||
|
Как запустить лабораторную работу:
|
|||
|
|
|||
|
Чтобы увидеть работу программы, нужно запустить исполняемый питон файл senkin_alexander_lab_7.py,
|
|||
|
|
|||
|
Библиотеки:
|
|||
|
|
|||
|
- NumPy - библиотека для работы с многомерными массивами.
|
|||
|
- Keras - это библиотека для Python, позволяющая легко и быстро создавать нейронные сети.
|
|||
|
|
|||
|
Описание программы:
|
|||
|
|
|||
|
- Читаем файл с текстом.
|
|||
|
- Каждая строка текста переводится в числа с помощью Tokernizer.
|
|||
|
- Строим RNN модель используя Keras: Embedding - представления слов, фраз или текстовых данных в виде числовых векторов в многомерном пространстве. Вложения используются для преобразования текстовой информации в форму, понятную компьютерам, что позволяет моделям машинного обучения анализировать и работать с текстом. LSTM (Long Short-Term Memory) - это тип рекуррентной нейронной сети (RNN), который разработан для обработки и моделирования последовательных данных. LSTM является разновидностью рекуррентных нейронных сетей и был специально создан для решения проблемы исчезающего и взрывающегося градиента, с которыми сталкиваются традиционные RNN. Dense - один из типов слоев, используемых в искусственных нейронных сетях, в том числе в глубоком обучении, применяется для выполнения операции линейной комбинации входных данных и весов, а затем применения нелинейной функции активации к полученному результату.
|
|||
|
- Обучаем модель на 100 эпохах.
|
|||
|
- Генерируем последовательность на основе текста.
|
|||
|
- Я прогнал текст сначала на 20 эпохах русский и английский, получились не очень результаты:
|
|||
|
- ![img_2.png](img_2.png)
|
|||
|
- ![img_3.png](img_3.png)
|
|||
|
- Потом решил прогнать на 50 эпохах, получились вот такие результаты:
|
|||
|
- ![img_4.png](img_4.png)
|
|||
|
- ![img_5.png](img_5.png)
|
|||
|
- Потом решил прогнать на 100 эпохах, получились вот такие результаты:
|
|||
|
- ![img.png](img.png)
|
|||
|
- ![img_1.png](img_1.png)
|
|||
|
- Видно, что сколько бы итераций мы не выбирали, результаты остаются не утешительными.
|