IIS_2023_1/gusev_vladislav_lab_7/README.md
2023-11-02 16:38:27 +04:00

41 lines
3.9 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.

### Вариант 9
### Задание на лабораторную работу:
Выбрать художественный текст (четные варианты русскоязычный, нечетные англоязычный) и
обучить на нем рекуррентную нейронную сеть для решения задачи генерации.
Подобрать архитектуру и параметры так, чтобы приблизиться к максимально осмысленному результату.
Далее разбиться на пары четный-нечетный вариант, обменяться разработанными сетями и проверить,
как архитектура товарища справляется с вашим текстом.
В завершении подобрать компромиссную архитектуру, справляющуюся достаточно хорошо с обоими видами
текстов.
### Как запустить лабораторную работу:
Выполняем файл gusev_vladislav_lab_7.py, решение будет в консоли.
### Технологии
Keras - это библиотека для Python, позволяющая легко и быстро создавать нейронные сети.
NumPy - библиотека для работы с многомерными массивами.
### По коду
1) Читаем файл с текстом
2) Создаем объект tokenizer для превращение текста в числа для нейронной сети.
3) Создаем модель нейронной сети с следующими аргументами:
- Embedding - это слой, который обычно используется для векторного представления категориальных данных, таких как слова или символы. Он позволяет нейронной сети изучать эмбеддинги, то есть отображение слов (или символов) в вектора низкой размерности. Это позволяет сети понимать семантические отношения между словами.
- LSTM - это слой, представляющий собой рекуррентный нейрон, который способен учитывать зависимости в последовательных данных. Он хорошо подходит для обработки последовательных данных, таких как текст.
- Dense - это полносвязный слой, который принимает входные данные и применяет весовые коэффициенты к ним. Этот слой часто используется в конце нейронных сетей для решения задачи классификации или регрессии.
4) Обучаем модель на 100 эпохах (итерациях по данным) и генерируем текст.
![img.png](img.png)
Английский 100 эпох
![img_1.png](img_1.png)
![img_3.png](img_3.png)
Русский 100 эпох
![img_2.png](img_2.png)
Русский 17 эпох
![img_4.png](img_4.png)
### По консоли
- Английский текст генерировался на 100 эпохах, начало получилось осмысленным, но чем ближе к концу тем хуже.
- Русский текст также генерировался на 100 эпохах, с многочисленными ошибками в словах. Русский текст,сгенерированный на 17 эпохах по ошибкам в словах оказался лучше, но всё равно не идеально.