IIS_2023_1/senkin_alexander_lab_7/README.md

41 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Лабораторная работа №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)
- Видно, что сколько бы итераций мы не выбирали, результаты остаются не утешительными.