In this paper, a comparison of standard automatic control methods and artificial neural networks is considered. Based on the analysis of theoretical data and numerical modeling, it is concluded that it is advisable to use neural network regulators under certain circumstances. Methods of designing and training neural networks are considered. Neuroregulators and classical PID regulators are considered as an example for comparing the quality of management.
Key words: Neural network, artificial intelligence, machine learning, adaptive control, standard automatic control algorithms, PID controller.
Feofilov Dmitry Sergeevich, student, [email protected], Russia, Tula, Tula State University
УДК 004.032.26
DOI: 10.24412/2071-6168-2021-11-72-81
ПРИМЕНЕНИЕ РЕКУРРЕНТНЫХ НЕЙРОННЫХ СЕТЕЙ В ЗАМКНУТЫХ СЛЕДЯЩИХ СИСТЕМАХ С НЕЛИНЕЙНЫМИ ОБЪЕКТАМИ
С.В. Феофилов, Д.Л. Хапкин
В работе рассматривается разработка нейрорегуляторов, основанных на рекуррентных нейронных сетях, для существенно нелинейных объектов управления. Предлагается алгоритм синтеза прямого и инверсного нейрорегуляторов.
Ключевые слова: рекуррентные нейронные сети, системы управления.
Введение. В настоящее время одной из актуальных проблем остается синтез качественных регуляторов для автоматических систем. Основные затруднения возникают при управлении нелинейными объектами, которые не могут быть адекватно линеаризованы в широком диапазоне входных сигналов. При этом такие объекты очень часто встречаются в технических системах. К ним относятся звенья с такими нелинейностями, как люфт, насыщение, зона нечувствительности, жесткий механический упор и т.д. Кроме того, на практике математическая модель таких систем, зачастую, оказывается неполной или неточной, а также существует значительный параметрический разброс вследствие технологических причин и влияния внешних воздействий. В этих условиях классические методы синтеза регуляторов оказываются неэффективными. Для преодоления указанных затруднений в настоящей работе предлагается использование рекуррентных нейронных сетей в качестве регулятора. Ранее в работе [1] авторами рассматривалось применение искусственных нейронных сетей (ИНС) прямого распространения для указанных целей. Однако, было выявлено несколько существенных недостатков. Во-первых, разработчику регулятора необходимо подбирать множество параметров структуры нейронной сети. Во-вторых, сети прямого распространения плохо аппроксимируют астатические объекты управления, из-за жестких ограничений на длину временной последовательности данных. Рекуррентные нейронные сети способны преодолеть эти проблемы.
1. Рекуррентные нейронные сети. В ИНС прямого распространения входной сигнал проходит последовательно слой за слоем и на выходе формируется значение, зависящее только от информации на входе. Однако, недостатком такой сети является сложность анализа временных последовательностей. Для решения этой проблемы были созданы рекуррентные нейронные сети (RNN).
Структуру рекуррентной нейронной сети можно представить в свернутом и в развернутом виде (рис. 1).
В простой RNN данные со входа поступают в рекуррентный нейронный слой. Нейроны этого слоя суммируют данные входного слоя и значения, вычисленные на предыдущем шаге этого слоя. Полученный выход передается на следующий слой (на рис. 1 - это выходной слой). В рекуррентной сети Элмана [2] в нейронах отсутствует функция активации. Однако, в настоящее время обычно используют нелинейные функции активации: сигмоида (sigmoid), гиперболический тангенс (tanh), и ReLU [3].
Ум
I
Рис. 1. Схема рекуррентной нейронной сети в свернутом виде (слева)
и в развернутом (справа)
Существует множество разных схем применения нейронных сетей. Например, для какой-либо классификации последовательности используется только последний элемент yt. Такая схема называется many to one. Но в системах управления обычно имеют дело с сигналами, которые требуется обрабатывать в реальном времени. По этой причине подходит схема many to many, которая представлена на рис. 1.
1.1 Математическое описание. Простая рекуррентная нейронная сеть (сеть Элмана) (рис. 1) описывается следующими уравнениями (1,2).
Ц = f ( Ц _b xt), (1)
У = Whyht, (2)
где: f - функция активации, ht - выход скрытого слоя на шаге t от начала последовательности, xt
- вектор входных значений, Why - матрица весов между скрытым слоем и выходным слоем, yt -выход рекуррентного слоя на шаге t.
В начальный момент времени ho обычно задается вектором из нулевых значений ho=[0,0,...,0n]T.
Как видно, в структуре рекуррентных нейронных сетей присутствуют обратные связи. Таким образом, RNN представляет динамический нелинейный объект. А значит, после обучения, рекуррентная нейронная сеть сможет аппроксимировать динамику любого линейного и нелинейного объекта при достаточном количестве обучаемых параметров.
1.2 Обучение RNN. Обучение RNN аналогично обучению обычной нейронной сети. Мы также используем алгоритм обратного распространения ошибки [4] (англ. Backpropagation), но с небольшим изменением. Поскольку одни и те же параметры используются на всех временных этапах в сети, градиент на каждом выходе зависит не только от расчетов текущего шага, но и от предыдущих временных шагов (рис. 2). Например, чтобы вычислить градиент для четвертого элемента последовательности, нам нужно было бы «распространить ошибку» на 3 шага и суммировать градиенты. Этот алгоритм называется «алгоритмом обратного распространения ошибки сквозь время» (англ. Backpropagation Through Time, BPTT) [5]. Рассмотрим пример обучения.
В качестве примера рассмотрим искусственную нейронную сеть, состоящую из рекуррентного и линейного слоев (3, 4):
ht = tanh(Wxhxt + Whhht-1 + bh ), (3)
yt = Whyht + by, (4)
где W - это матрица весов между указанными слоями; t - номер элемента в последовательности; ht - вектор скрытого состояния рекуррентного слоя (он же является выходом этого слоя); bt
- вектор весов для нейрона смещения для указанного слоя; xt - вектор значений выходного слоя; yt - вектор значений выходного слоя; n - длина последовательности.
В качестве функции потерь (loss function) рассмотрим среднеквадратичную функцию потерь (5) (MSE loss), так как она наиболее точно соответствует задачам следящих систем управления:
1 п 2 L = -£( - targetn ) , (5)
nt=1
где yt - результат на выходе нейронной сети на индексе последовательности t, targetn - требуемый выход нейронной сети.
Схема развернутого графа вычислений во времени для 2-х временных шагов приведена на рис. 2.
У\
Ь0
Ьь
XI
+ - II £ ь2
Рис. 2. Распространение градиента при наличии рекуррентного слоя
дЬ
Сначала найдем- (6):
дУх
дЬ=1 22 у4 -2'хагёехх
(6)
Найдем градиент для Why (7):
дь
=Тдь
дУх дУх
дЖЬу X=0 дУх дЖЬу дЖЬу
дЬ П дь . = Т^'ьх •
= Ь,
дЖЬу X=0 дУх Аналогично вычисляется для ЬУ (8):
дь п дЬ дух
= Т -
(7)
дь
дУх
У ¿0 дУх дЬУ дЬУ
дЬ =Т дЬ
= 1,
дь
(8)
у X=0 дУх
Теперь вычислим градиент для Жхь (9), Жьь (11) и Ьь (12), которые используются на каждом шаге прямого прохода нейронной сети:
дУх .= £ дУх дЬх дЬ = Т дУх
с
так как (10)
дЖхЬ I=0 дЬХ дЬ дЖхЬ I=0 дЬХ
дЬз дЬз дЬ-2 д1\ дЬ.2 дЬ1
х
п
\
^ у=+1дЬ]-у
дЬ
дЖ
хЬ
Аналогично:
дУх
= Т дУх дЬх дЬ
= Т дУ-
дЖЬЬ 1=0 дьх дЬ1 дЖЬЬ I=0 дьх
X
п
дЬ]
{]=1+1дЬ]-1
дЬц
ЬЬ
зух = Т д*. дЬ. д^ =Т д^-
дЬЬ I=0 дЬх дЬ1 дЬЬ I=0 дЬх
х
п
дЬ]
^ ] = + 1 дь]-1
дЬц
дЬь
(9)
(10)
(11)
Частные производные для Жьь (14), Жхь (13) и Ьь (15):
74
дЬ
•_£■дЬ
dyt
dWxh t=0 dyt dWxh
дЬ _ £ Ь dyt
dWhh t_0 dyt dWhh
дЬ n дЬ dyt
_ E - t
дЬh t_o дУt дЬ
После подсчета градиента обновляются веса (16):
дЬ дЬ
Whh _ Whh -lr' Wxh _ Wxh -lr-^TT-' Why _ Why
дWhh
дWxh
lr ■■
дЬ
дWl
bh _ bh - lr -
(13)
(14)
(15)
дЬ
hy
by _ by
lr ■
дЬ
дb
дьh (16)
y
где 1г - шаг обучения.
1.3 Проблемы обучения рекуррентных нейронных сетей. В отличие от нейронных сетей прямого распространения в рекуррентных нейронных сетях во время обучения имеется произведение частных производных. Это может приводить к «взрыву градиента» (17) и «затуханию градиента» (18)
дь
j
t
П ^
j _i+1 ^j-1 t Sh.
П ——
j _i+1 ^j-1
^ 00
->0
(17)
(18)
Для борьбы с этими проблемами предлагается использовать один из двух способов:
1. Gradient clipping [6] против взрыва градиента. В данном методе градиент обрезается до определённого значения;
2. Использование других моделей: LSTM [7] и GRU [8].
Хотя структуры LSTM и GRU имеют преимущество в обучении на длинных последовательностях, но использование простой RNN может быть достаточно для создания нейрорегу-лятора. Однако, было замечено небольшое преимущество GRU.
1.4 GRU. В 2014 году была предложена GRU - Gated Recurrent Units (управляемые рекуррентные блоки). По эффективности GRU сравнима с LSTM во многих задачах, но имеет немного меньше параметров. Схема слоя GRU представлена на рис. 3.
Рис. 3. Схема GRU
Математическое описание слоя GRU (19):
zt _°(Wz ■[ht-1xt] + bz),
rt _°(Wr "[-1,xt] + br), (19)
ht _tanh (Wxh ■ xt + Whh (rt ® ht-1) + bh ),
h _ ht-1 &W1 - zt) + ht ® zt. 75
В данной схеме есть связь от Ни до Ы , в которой происходит забывание старой информации и запоминание новой. Только в отличие от LSTM тут всего один вектор, управляющий этими процессами. Для забывания информации используется инвертированный вектор , а для запоминания сам вектор zt.
3. Примеры синтеза нейроэмулятора и нейрорегулятора. В качестве объекта управления рассмотрим последовательное соединение двух звеньев:
1. звено с ограничением типа насыщение (рис. 4) ,
2. звено с ограничением типа жесткий механический упор (рис. 5).
к ПО
Т ■ s + \ J
Рис. 4. Звено с ограничением типа насыщение
T2s2 + 2 $Ts + 1
Рис. 5. Звено с ограничением типа жесткий механический упор
Звено первого типа описывается следующем образом:
| (ku - x) / T, если |x| < D или |x| _ D и (ku - x) / T ■ sign x < 0;
I 0, если |x| _ D и (ku - x) / T ■ sign x > 0. Звено второго типа задается (20):
x _ -
x1 _ ^
x2 _
ku - xj 2^2 .
T 2
T
if < D or
(20)
(|x^ _ D and (ku - x^) ■ sign x^ < 0); 0, if _ D and (ku - x^) ■ signx^ > 0.
При этом предполагается, что удар об упор является абсолютно неупругим, т.е. в каждый момент t входа на ограничитель описывается уравнениями (21).
x1(t + 0) _ x1(t - 0),
(21)
x2(t + 0) _ 0.
Сход с ограничителя является непрерывным.
Как видно, объект, содержащий ограничители, представляет собой нелинейную систему специального вида, динамика которой описывается дифференциальными уравнениями с разрывными правыми частями, причем разрывными могут быть и фазовые траектории. Такие объекты обладают рядом специфических особенностей, вследствие чего синтез регуляторов для них является сложной задачей.
Параметры рассматриваемого объекта:
Для звена 1: T1 = 0.1, K1 = 1.5, D1 = 1;
Для звена 2: T2 = 0.3, K2 = 0.8, = 0.1, koleb_d = 0.8.
Нейронную сеть предлагается обучать методом обратного распространения ошибок с оптимизатором Adam [9]. Применение данного алгоритма оптимизации с адаптивной скоростью обучения показывает хорошие результаты обучения наравне с другими похожими алгоритмами.
2.1 Нейроэмулятор. Задачей прямого нейроэмулятора [10] является повторение динамики объекта управления (рис. 6).
На рис. 6 на вход нейронной сети (прямой нейроэмулятор) как для обучения, так и для дальнейшего использования подается вектор, состоящий из текущего входного воздействия и реакции объекта на предыдущие воздействия y(n - 1),y(n - 2),.... Для получения текущей ошиб-
ки, необходимой для обучения, выход нейронной сети сравнивается с выходом объекта. Обучение производится в режиме офлайн методом «обратного распространения ошибки». После обучения нейронная сеть повторяет прямую динамику объекта.
Рис. 6. Схема обучения прямого нейроэмулятора
Прямой нейроэмулятор полезен, когда имеется объект, математическая модель которого неизвестна или является неточной, но при этом имеется возможность экспериментального изучения его реакции на тестовые сигналы.
Пример с нейроэмулятором. Выбор структуры нейросети является сложной задачей, для решения которой не существует регулярных методов. В данном примере используется структура, представленная в табл. 1. Она была выбрана экспериментально, с помощью итеративного наращивания и сравнения результатов. Слой Dropout [11] используется для получения стабильного обучения и улучшения результатов работы сети. Оптимизация структуры сети является предметом отдельного исследования.
Таблица. 1
Структура нейронной сети для нейроэмулятора_
№ п/п Слой Кол-во нейронов
1 Входной 1
2 GRU 100
3 Dropout 25% -
2 GRU 100
3 Dropout 25% -
2 GRU 100
3 Dropout 25% -
2 GRU 100
3 Dropout 25% -
7 Linear 100
8 ReLU -
10 Linear 100
11 ReLU -
13 Linear 100
14 ReLU -
16 Linear 1
Обучение нейронной сети проводилось на гармонических (sin) и ступенчатых сигналах, так как они являются типовыми для данного объекта.
Результаты обученного нейроэмулятора. На рис. 7 и 8 представлены результаты моделирования в среде Simulink. Сравнивается работа нейроэмулятора с исходным объектом.
—i-1-1-1-1— —i-1-1-1-г-
0 5 10 15 20 О 5 10 15 20
Рис. 7. Реакция объекта и РНН на гармонический сигнал (sin) амплитудой 0.2
и частотой 1 рад/с
—--т-^-— —|-|-|-,-
О 5 10 15 20 0 5 10 15 20
Рис. 8. Реакция объекта и РНН на гармонический сигнал (sin) амплитудой 1
и частотой 1 рад/с
Выводы для нейроэмулятора. Как видно из рис. 7 и 8, обученный нейроэмулятор воспроизводит нелинейность объекта и в целом реакцию на гармонический сигнал. Дальнейшее улучшение работы возможно путем изменения структуры сети.
2.2 Нейрорегулятор. Инверсный нейроэмулятор [10] используется в методах «обобщенное инверсное нейроуправление» [12] и «специализированное инверсное управление». В этих методах нейронная сеть обучается повторять инверсную динамику объекта управления и после обучения используется как регулятор (рис. 9).
Рис. 9. Схема обучения (слева) и применения (справа) инверсного нейроэмулятора в методе «обобщенного инверсного нейроуправления»
Для обучения инверсного нейроэмулятора используется информация текущего и предыдущего выходов системы и, иногда, предыдущие управляющие значения в качестве входного вектора. На выходе инверсный нейроэмулятор должен выдавать управляющий сигнал, который приведет объект в требуемое состояние.
Недостатком метода обобщённого инверсного нейроуправления является трудность в составлении обучающей выборки, выраженная в подборе идентифицирующего процесса. Также трудности могут быть, если инверсия объекта управления является неоднозначной функцией. Это может привести процесс обучения в тупик.
Пример с нейрорегулятором. Использовалась нейронная сеть со структурой, представленной в табл. 2. Выбор структуры также проводился экспериментально с последовательным наращиванием количества слоев и нейронов.
Таблица 2
Структура нейронной сети для нейрорегулятора_
№ п/п Слой Кол-во нейронов
1 Входной 2
2 GRU 200
З Dropout 25% -
4 Linear 200
5 ReLU -
6 Dropout 25% -
Т Linear 200
S ReLU -
9 Linear 1
Обучение производилось на гармонических (sin) сигналах.
Результаты обученного нейроэмулятора. На рис. 10 и 11 представлены результаты моделирования в Simulink. Сравнивается работа нейрорегулятора с ПИД контроллером, синтезированным средствами Matlab.
Рис. 10. Реакция объекта и РНН на гармонический сигнал (sin) амплитудой 0,4
и частотой 0,1 Гц
1.0 0.5 0.0 -0.5 -1.0
- вход
выход системы с ПИД ---выход системы с РНН
10
15
20
ошибка системы с ПИД ошибка системы с РНН
Рис. 11. Реакция объекта и РНН на гармонический сигнал (sin) амплитудой 1
и частотой 0,1 Гц
Из графиков видно, что нейронная сеть показывает сопоставимые результаты с ПИД-регулятором на стационарном нелинейном объекте с известой математической моделью. Преимущества нейрорегуляторов проявляются при изменяющихся в процессе работы параметрах объекта управления и отсутствии его математического описания.
Выводы. В работе показано, что рекуррентные искусственные нейронные сети могут быть успешно использованы в качестве регуляторов в замкнутых следящих автоматических системах с существенно нелинейными объектами управления. Следует отметить, что использование ИНС для управления эффективно только в тех случаях, когда присутствуют затруднения при синтезе регулятора классическими методами. Это может быть вызвано следующими причинами. Объект управления имеет сложную нелинейную математическую модель, или имеется существенный разброс параметров, вызванный, например, изменением условий эксплуатации или отсутствует необходимая для синтеза управления информация, например, математическая модель является неполной и неточной. Такие ситуации очень часто встречаются в реальной практике проектирования и в настоящей работе предлагается одно из возможных решений этой проблемы.
Проведен сравнительный анализ методов обучения рекуррентных нейронных сетей, предложены подходы к формированию структуры сети и обучающей выборки. Показано, что сети данного типа наилучшим образом подходят для использования в качестве регулятора, так как представляют собой нелинейный динамический объект, который можно настроить (обучить) необходимым образом. На примерах показано, что ИНС как имитатор может обрабатывать достаточно сложные нелинейные объекты. Дальнейшее повышение качества регуляторов авторы видят в использовании метода обучения с подкреплением [13] и оптимизации структуры сети.
Работа выполнена при поддержке Российского фонда фундаментальных исследований (проект 20-38-90213).
Список литературы
1. Феофилов С.В., Хапкин Д.Л. базовый синтез нейросетевых регуляторов для следящих систем управления // Известия Тульского государственного университета. Технические науки. 2020. Вып. 11. С. 256-261.
2. Elman J.L. Finding structure in time // Cognitive Science. 1990. С. 179-211.
3. Nair V., Hinton G. Rectified Linear Units Improve Restricted Boltzmann Machines Vinod Nair // ICML. 2010. Вып. 27. С. 807-814.
4. Werbos P.J. Beyond regression: New tools for prediction and analysis in the behavioral sciences. Ph.D. thesis. Harvard University, Cambridge, MA. 1974.
5. Werbos P.J. Backpropagation througth time: What it does and how to do it // Proceedings of the IEEE. 1990. Вып. 78. С. 1550-1560.
6. Mikolov T. Statistical Language Models based on Neural Networks. Ph. D. thesis. Brno University of Technology. 2012.
7. Hochreiter S., Schmidhuber J. Long short-term memory // Neural Computation. 1997. Вып. 9(8). С. 1735-1780.
8. Cho K., Van Merrienboer B., Bahdanau D., Bengio Y. On the properties of neural machine translation: Encoder-decoder approaches // ArXiv e-prints abs/1409.1259. 2014.
9. Kingma D.P., Ba J. Adam: A Method for Stochastic Optimization // arXiv:1412.6980.
2014.
10. Чернодуб А.Н., Дзюба Д.А. Обзор методов нейроуправления // Проблемы программирования. 2011. Вып. 2. С. 79-94.
11. Srivastava N., Hinton G., Krizhevsky A., Sutskever I., Salakhutdinov R. Dropout: A simple way to prevent neural networks from overfitting // Journal of Machine Learning Research. 2014. Вып. 15. С. 1929-1958.
12. Psaltis D. A multilayered neural network controller // IEEE Control Systems Magazine. 1988. Вып. 8. С. 17-21.
13. Goodfellow I., Bengio Y., Courville A. Deep Learning. Cambridge: MA: MIT Press,
2016.
Феофилов Сергей Владимирович, д-р техн. наук, доцент, [email protected], Россия, Тула, Тульский государственный университет,
Хапкин Дмитрий Леонидович, аспирант, [email protected], Россия, Тула, Тульский государственный университет
APPLICATION OF RECURRENT NEURAL NETWORKS IN CLOSED TRACKING SYSTEMS WITH
NONLINEAR OBJECTS
S.V. Feofilov, D.L. Khapkin
This paper describes the development of neural controllers based on recurrent neural networks for essentially nonlinear control objects. An algorithm for the synthesis of direct and inverse neural controllers is proposed.
Key words: recurrent neural networks, control systems.
Feofilov Sergey Vladimirovich, doctor of technical sciences, docent, [email protected], Russia, Tula, Tula State University,
Khapkin Dmitry Leonidovich, postgraduate, [email protected], Russia, Tula, Tula State Universit, Tula State University