РАБОТА МОДЕЛИ ГЕНЕРАЦИИ ТЕКСТА С ПОМОЩЬЮ НЕЙРОННЫХ СЕТЕЙ КАК СОСТАВНОЙ СИСТЕМЫ: МОДУЛЬНЫЙ АНАЛИЗ. МОДУЛЬ ТРЕТИЙ. НЕЙРОННЫЕ СЕТИ - СТРУКТУРА И МАШИННОЕ ОБУЧЕНИЕ

Работа модели генерации текста с помощью нейронных сетей как составной системы: модульный анализ. Модуль третий. Нейронные сети - структура и машинное обучение

о сч о сч

СП

Гринин Игорь Леонидович

магистрант, кафедра программного обеспечения автоматизированных систем (ПОАС)ПОАС, ВолгГТУ Волгоградский Государственный Технический Университет (ВолгГТУ), frederickbrown@yandex.ru

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

Ключевые слова: анализ текста, программирование, обучение нейронных сетей, машинное обучение, рекуррентные сети, генеративно-состязательные сети

Введение

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

В настоящей статье рассматриваются нейронные сети для их генерации. На данный момент, в научной литературе имеется большое количество информации на эту тематику [1-4]. Анализ литературы на популярном российском портале elibrary.ru показывает, что тема нейронных сетей востребована, всего опубликовано более 150 000 статей. Однако, как мы отмечали в предыдущих статьях, к изучению этого модуля также обращаются не системно.

В статье, рассматривается последний из трех модулей работы - нейронная сеть.

Нейронная сеть - математическая модель, а также её программное или аппаратное воплощение, построенная по принципу организации и функционирования биологических нейронных сетей. Нейронная сеть - один из механизмов, который позволяет программе обучаться и учитывать опыт.

Качество и точность работы зависит от количества входных обучающих данных - чем их больше, тем лучше и точнее работает нейросеть.

Рекуррентных нейронные сети, RNN

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

О ш m х

<

m о х

X

Рис. 1 Рекуррентная нейронная сеть и ее развертка

На рисунке выше показано, что нейронная сеть в процессе сканирования развертывается. То есть, если последовательность представляет собой предложение, в котором есть 3 слова, то его сканирование будет состоять из трех слоев, то есть для каждого слова будет создан отдельный слой [6].

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

На рисунке выше также видно, что модель имеет выходы на каждом этапе, но в зависимости от задачи они могут быть оставаться без применения. Главной особенностью этих сетей являются скрытые слои, содержащие информацию о последовательности.

LSTM

В середине 90-х годов немецкими исследователями Зеппом Хохрайтером и Юргеном Шмидхубером была предложена вариация рекуррентной сети с так называемыми длинными блоками кратковременной памяти, или LSTM, в качестве решения проблемы исчезающего градиента.

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

LSTM были разработаны специально, для того, чтобы избежать проблем долговременной зависимости. Запоминание информации на долгие периоды времени - то, для чего они созданы, поэтому обучать этому их уже не надо[5].

Поскольку LSTM это тоже реккурентная сеть, то как и любая другая рекуррентная нейронная имеет форму цепочки. В обычной рекуррентной нейронной сети структура одного такого модуля очень проста, например, он может представлять собой один слой с функцией активации tanh (гиперболический тангенс).

Структура LSTM же выглядит иначе. Вместо одного слоя нейронной сети они содержат четыре, и эти слои взаимодействуют особенным образом.

На рисунке ниже показано, как данные проходят через ячейку памяти и управляются ее элементами.

- один вход со многими выходами. Пример подобной работы описан выше - одно изображение со многими словами в заголовке.

- Многие входы со многими выходами - как пример работы можно взять перевод слов.

- Многие входы с одним выходом - классификация голоса.

Генеративно-состязательные сети, GAN

Генеративно-состязательные сети основаны на довольно простой идее - GAN состоит из двух подсетей, одна из которых создает продукт, пытаясь максимально точно выдать его за оригинальный, а вторая определяет насколько хорошо со своей работой справляется первая. В результате проихсодит как бы "состязание" подсетей, друг с другом, отсюда и вторая часть названия -состязательные сети.

Каждая деталь имеет свое собственное название -генератор и дискриминатор. Рассмотрим их работу немного подробнее.

Генератор - это нейронная сеть, которая получает так называемые скрытые переменные в качестве входных данных, а данные - в качестве выходных.

Дискриминатор - это обычный двоичный классификатор, который выводит:

1 - для реальных данных;

0 - для поддельных данных.

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

Рис.2 Проход данных через ячейку памяти

Следует отметить, что в то время как прямые сети сопоставляют один вход с одним выходом, рекуррентные сети могут сопоставлять их в нескольких вариациях:

Рис.3 Взгляд на мир порождающей и дискриминативной модели

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

Более подробно о GAN можете почитать в другой моей статье[7].

Различные типы GAN:

В настоящее время GAN являются очень популярной темой исследований, с множеством различных типов реализации. Некоторые из них преставлены ниже:

X X

о го А с.

X

го m

о

ю

2 О

м о

о

CS

0

CS

cñ

01

О Ш

m

X

<

m

о

X X

1. Vanilla GAN : это самый простой тип GAN. Здесь генератор и дискриминатор - это простые многослойные персептроны. В vanilla GAN алгоритм действительно прост, он пытается оптимизировать математическое уравнение с помощью стохастического градиентного спуска.

2. Условный GAN (CGAN): CGAN можно описать как метод глубокого обучения, в котором вводятся некоторые условные параметры. В CGAN к генератору добавляется дополнительный параметр 'y' для генерации соответствующих данных. Метки также вводятся на вход дискриминатора для того, чтобы дискриминатор помог отличить реальные данные от поддельных сгенерированных данных.

3. Глубокая сверточная GAN(DCGAN): DCGAN является одной из самых популярных и наиболее успешных реализаций GAN. Она состоит из конвнетов вместо многослойных персептронов. Конвнеты реализуются без максимального объединения, которое фактически заменяется сверточным шагом. Кроме того, слои не полностью связаны между собой.

Сравнительный анализ

Для того чтобы сравнить ( проанилизировать, и тп) что то, нами был поставлен эксперимент, где было создано три модели, для каждой из описанных нейросетей и подготовлен блок задач, основанных на корпусе текста 100 Мб. В качестве рабочей станции был выбран ноутбук HONOR MAGICBOOK 14 со следующими характеристиками:

- Центральный процессор AMD Ryzen™ 5 3500U;

- Radeon™ Vega 8 Graphics;

- 8 ГБ ОЗУ.

Технологией обучения была выбрана fine-tuning. Подробнее о моделях обучения нейронных сетей в другой моей статье[].

Эпох для обучения было выбрано 10.

Все значимые при создании и обучении сети характеристики были занесены в таблицу:

Таблица 1

Сравнительный анализ работы нейронных сетей

Время обу- Количе- Количество Точность

чения ство слоев параметров предсказывания

RNN 68 секунд 4 26О ООО 5О%

LSTM 99 секунд 5 35О ООО 55%

GAN 87 секунд 4 15О ООО 6О%

Выводы и результаты

В результате эксперимента мы ожидали увидеть приблизительное равенство всех изучаемых моделей. Действительно наше предположение подтвердилось.

Как видно из таблицы, проведенный нами сравнительный анализ моделей показал отсутствие явного доминирования одной модели.

Каждая из моделей является лучшей по какому-то одному из показателей, но отстает в других.

Так, например, самой быстрообучаемой моделью,в связи с простой структурой строения, оказалась RNN(68 секунд). Это значительно быстрее любой из двух других моделей (99 и 87 секунд соответственно), однако она же имеет худшую точность предсказания, что накладывает определенные ограничения на возможности использования данной модели.

Самой точной( с результатом точности предсказания 6О%) показала себя модель GAN. Высокая точность, полученная работой двух модулей - генератора и дискриминатора, позволяет создавать более приближенные к человеческому языку текста, однако, худший показатель в виде количества параметров (всего 15О ООО), показывает, что видов текстов и работ, которые эта модель может обработать значительно меньше, чем у конкурентов.

Самой разнообразной в плане работ (35О ООО параметров) оказалась LSTM модель. Возможность долгосрочного хранения памяти позволяют ей лучше работать с текстом, чем остальным, но при этом, эта самая долгообучаемая модель ( 99 секунд).

Так же, про эксперемнтальное сравнения нейросетей написано в моей статье, посвященной сентиментальному анализу текста.[]

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

Вывод по трем моделям

Как видно по результатам работы, проведенной нами в серии статей, модели генерации связного текста являются сложными составными системами, каждая из частей такой системы является крайне важной для работы полной модели.

Каждый из подмодулей модели генерации связного текста создан для конкретных задач, рассмотренных в статьях. В зависимости от типа этих задач и необходи-мостей пользователя, технологическая реализация модулей может быть разной. В наших работах экспериментально было выяснено, что разные реализации подсистемы служат для определенных целей и справляются с одним рядом задач, лучше, чем с другим, нехарактерным для этой реализации.

В серии наших работ была рассмотрена работа модели генерации связного текста, состоящая из трех основных модулей - языковой модели, модели обучения и нейронной сети. Каждый модуль в различной реализации может являться частью общей системы, но для каждого вида задач необходима своя реализация. К сожалению, об этом часто забывают на практике, что приводит к частому получению неоптимальных результатов.

Литература

1. Bitzer S., Kiebel S.J. Recognizing recurrent neural networks (rrnn): bayesian inference for recurrent neural networks // Biological Cybernetics. 2О12. Т. 1О6. № 4-5. С. 2О1-217.ОБ

2. Дрокин И.С. Вестник Санкт-Петербургского университета. Прикладная математика. Информатика. Процессы управления. 2О16. № 4.

3. Pu Yi.F., Yi Zh., Zhou Ji.L. IEEE Transactions on Neural Networks and Learning Systems. 2О16. Т. PP. № 99. С. 7513418.66-74.

4. From local neural networks to granular neural networks: a study in information granulation / Song M., Pedrycz W. Neurocomputing. 2О11. Т. 74. № 18. С. 3931-394О.

5. Знакомство с архитектурой LSTM-сетей http://datareview.info/article/znakomstVo-s-arhitekturoy-lstm-setey/

6. https://www.deeplearningwizard.com/deep_learning /practical_pytorch/pytorch_recurrent_neuralnetwork/

7. Генеративно-состязательные сети как пример дальнейшего развития искусственного интеллекта // Novaum №19, 27.06.2019 Гринин Игорь Леонидович, Кравченко Сергей Вячеславович http://novaum.ru/public/p1488

Operation of the text generation model using neural networks as a composite system: modulus analysis the module third. Neural networks: structure and machine learning Grinin I.L.

Volgograd State Technical University (VSTU) The aim of the research is to study the structure and operation principles of the third composite module of text generation models - neural networks. The research methodology includes a comparative analysis of three models based on different neural networks, as well as an analysis of the operation of each of these models. The models considered were recurrent networks, models with long-term memory storage, and generative-adversarial neural networks. The basics of each of these networks, the structure of their construction, their distinctive features and their various subspecies were considered. The result of the research was an experimental comparison of three popular self-created models of neural networks for machine learning. Each of these networks was personally created by the authors, and their performance was tested on the same data sets. In the course of the research, data was collected, on the basis of which a comparative analysis table was created with numerical values assigned to describe the capabilities of each of the models. Each model received expert evaluation for each of its characteristics. We also obtained a number of theoretical knowledge for working with text, which can be useful for various possible processing of text data.

Keywords: text analysis, programming, neural network training, machine learning, recurrent networks, generative-adversarial networks

References

1. Bitzer S., Kiebel S.J. Recognizing recurrent neural networks

(rrnn): bayesian inference for recurrent neural networks // Biological Cybernetics. 2012. T. 106. No. 4-5. S. 201-217. OB

2. Drokin I.S. Bulletin of St. Petersburg University. Applied math.

Informatics. Management processes. 2016. No. 4.

3. Pu Yi.F., Yi Zh., Zhou Ji.L. IEEE Transactions on Neural Networks and Learning Systems. 2016.T. PP. No. 99. S. 7513418.66-74.

4. From local neural networks to granular neural networks: a study

in information granulation / Song M., Pedrycz W. Neurocomputing. 2011. T. 74. No. 18. S. 3931-3940.

5. Acquaintance with the architecture of LSTM networks http://datareview.info/article/znakomstvo-s-arhitekturoy-lstm-setey/

6.https://www.deeplearningwizard.com/deep_learning/practical_py torch/pytorch_recurrent_neuralnetwork/

7. Generative adversarial networks as an example of the further

development of artificial intelligence // Novaum №19, 06/27/2019 Grinin Igor Leonidovich, Kravchenko Sergey Vyacheslavovich http://novaum.ru/public/p1488

X X О го А С.

X

го m

о

м о м о