Нейросетевая система управления процессом термохимического обезвоживания нефтяных эмульсий
Скачать 4.35 Mb.
|
2.4 Варианты построения нейросетевой модели Согласно работам Хехт-Нильсена, Колмогорова-Арнольда и теореме Стоуна-Вейерштрасса многомерную функцию нескольких переменных возможно сколь угодно точно представить с помощью нейронной сети фиксированной размерности с нелинейными активационными функциями нейронов. То есть всегда существует однородная двухслойная нейронная сеть, производящая отображение N k Y X k k 1 , , с сигмоидальными активационными функциями и конечным числом нейронов [29, 33]. Для задачи приближения непрерывной функции на замкнутом ограниченном множестве, функции активации нейронов должны быть монотонно возрастающими и дважды непрерывно дифференцируемыми. Таким образом реализуется любой вычислительный алгоритм. Массив входных данных обозначим за X , массив выходных данных за Y . Нейронная сеть должна производить отображение Y X , реализуя некоторую функцию g такую, что ) (X g Y . Нелинейные преобразования входного параметра в выходной, которые производит нейронная сеть, 56 описываются векторными нелинейными уравнениями, общая размерность которых равна произведению количества весовых коэффициентов, смещений, и количества нейронов сети. Даже для нейронных сетей с малым количеством нейронов в скрытом слое, эквивалентная размерность линейной динамической модели в несколько раз больше [53]. Неизвестными остаются только количество нейронов скрытого слоя, которое чаще всего определяется экспериментально. Для оценки числа нейронов в скрытых слоях можно воспользоваться формулой определения числа синаптических весов в многослойной сети [33]: m m m m N m L N mN w 1 log 1 2 , (2.11) где n – размерность входного сигнала, m – размерность выходного сигнала, N – число элементов обучающей выборки. После оценки необходимого числа весов, можно рассчитать число нейронов в скрытых слоях. Для двухслойной сети число нейронов L вычисляется по формуле: m n L L w , (2.12) Для нейронной сети с 1 скрытым слоем, 3 входами, 1 выходом и обучающей выборкой из 4275 целевых выходных значений минимальное число нейронов согласно приведенным формулам составит 60, однако рассчитанное число нейронов является ориентировочным при проектировании ИНС. Для определения оптимальной структуры нейросетевой модели необходимо провести сравнение результатов обучения нейронных сетей с различным количеством нейронов скрытого слоя и активационными функциями. 57 Структура слоёв разработанных ИНС представлены на рисунке 2.10. а) б) в) а – логистическая и линейная активационные функции; б – тангенциальная и линейная активационные функции; в – гиперболический тангенс скрытого и выходного слоя Рисунок 2.10 – Структуры нейронных сетей: Нейронные сети с логистической активационной функцией выходного нейрона не рассматривались, так как минимальное значение сигмоиды 0 не позволяло полностью воспроизвести экспериментальные данные. ИНС состоят из двух слоев нейронов: скрытого и выходного. Также имеются входные нейроны, число которых соответствует числу входных значений – 3. Число нейронов в выходном слое соответствует числу выходов – 1. Структура нейронных связей сети с большим количеством нейронов в скрытом слое представлена на рисунке 2.11. 58 Рисунок 2.11 – Связи между нейронами в спроектированных нейронных сетях 2.5 Обучение нейронной сети 2.5.1 Постановка задачи обучения нейронной сети После определения структуры нейронной сети необходимо определить оптимальные значения всех переменных весовых коэффициентов. От качества обучения зависит способность нейронной сети выполнять поставленные задачи в процессе функционирования. Для заданной архитектуры сети все возможные варианты функции ) (X g Y принадлежат множеству G . Обучение нейронной сети состоит в поиске функции G g , оптимальной по критерию K В качестве критерия K выбрана среднеквадратичная ошибка между реальным выходным значением нейрона и целевым значением: min ) ( 2 1 ) ( 2 j j j d y w K (2.13) где j y – значение j-го выхода нейронной сети, j d – целевое значение j-го выхода. Среди методов минимизации функции ошибки для сравнения рассмотрены метод градиентного спуска и метод Левенберга-Марквардта. 59 2.5.2 Метод градиентного спуска Суть метода градиентного спуска состоит в пошаговом уменьшении первой производной функции ошибки (чаще всего среднеквадратичной ошибки ) (w K ). Таким образом, в процессе происходит как бы спуск вниз по поверхности сложной формы. На каждом шаге веса связей между нейронами пересчитываются в соответствии с направлением движения. На каждой итерации обучения нейронной сети производится вычисление приращения веса нейрона по формуле: ij ij w K w , (2.14) где – коэффициент, регулирующий скорость обучения. ij j j j j ij w S dS dy y K w K , (2.15) где j S – взвешенная сумма входных сигналов, определяемая формулой: N i i i w x S 1 , (2.16) где i x – значение i-го входа нейрона, Обучение построенной ИНС методом градиентного спуска с обратным распространением ошибки (Gradient descent backpropagation) проводилось до приемлемого значения показателя Performance. В программном пакете Neural Network Toolbox показатель Performance вычисляется по формуле 2.13. По мере обучения и улучшения качества модели значение среднеквадратичной ошибки стремится к нулю. Длительность обучения составила 1 000 000 эпох, при этом каждые 100 000 итераций проводились проверки значения среднеквадратичной ошибки. По времени процесс обучения занимал от 7 до 12 часов в зависимости от количества нейронов. 60 2.5.3 Метод Левенберга - Марквардта Метод совмещает в себе комбинацию градиентного спуска и линейной аппроксимации. В процессе обучения производится оценка приращения веса нейрона по формуле: w J x w f x w w f ) , ( ) , ( , (2.17) где J – якобиан функции ) , ( n x w f в точке w . Матрица J рассчитывается по формуле: R N N R w x w f w x w f w x w f w x w f J ) , ( ) , ( ) , ( ) , ( 1 1 1 1 , (2.18) где вектор весовых коэффициентов T R w w w , , 1 Значение 0 w в точке w обеспечивает минимум условию ) (w K Условие завершения обучения нейронной сети: )) ( ( ) ( w f y J w J J w K T T , (2.19) Таким образом для нахождения значения w необходимо найти решение уравнения: )) ( ( ) ( 1 w f y J I J J w T T , (2.20) где 0 – параметр регуляризации Марквардта, I – единичная матрица. Приращение w несколько раз пересчитывается от большего значения к меньшему, что позволяет быстрее двигаться по поверхности ошибки и миновать локальные минимумы и плоские участки. Скорость изменения регулируется значением параметра регуляризации Алгоритм останавливается если значение w становится меньше заданного значения параметра. Обучение построенной ИНС методом Левенберга-Марквардта с обратным распространением ошибки (Levenberg-Marquardt backpropagation) 61 проводилось до приемлемого значения показателя Performance. Длительность обучения составила 10 000 эпох. По времени процесс обучения занимал от 2 минут до 2 часов в зависимости от количества нейронов. 2.5.1 Практическая реализация 2.5.1.1 Общие сведения Обучение искусственных нейронных сетей производилось в программном комплексе MATLAB версия R2017b (9.3.0.713579) 64bit. Использовался программный пакет Neural Network Toolbox. В программном комплексе MATLAB обучение нейронной сети производится с помощью модуля Neural Network Toolbox, который вызывается в основном меню программы командой nntool. С помощью этого модуля можно создавать многослойные нейросетевые структуры, в которых все нейроны соседних слоёв связаны между собой. Интерфейс программы представлен на рисунке 2.12. Рисунок 2.12 – Окно управления программного пакета Neural Network Toolbox 62 Для создания нейронной сети необходимо настроить параметры, предлагаемые в меню. Окно настройки структуры нейронной сети представлено на рисунке 2.13. Инструментарий предоставляет выбор внутренней структуры нейронной сети: количество слоёв – выходной слой + скрытые; количество нейронов в каждом слое; активационная функция нейронов в слое. Окно просмотра структуры нейронной сети с текущими настройками представлено на рисунке 2.14. Рисунок 2.13 – Интерфейс создания структуры нейронной сети 63 Рисунок 2.14 – Структура нейронной сети в результате настройки параметров Окно программы после обучения нейросети методом Левенберга- Марквардта на протяжении 10 000 циклов представлено на рисунке 2.15. Рисунок 2.15 – Обучение нейронной сети 64 После окончания обучений нейронной сети можно просмотреть отчётные графики с информацией о ходе обучения. График изменения значения показателя Performance (среднеквадратичная ошибка) за время обучения представлен на рисунке 2.16. Чем ниже значение ошибки, тем более точно нейронная сеть воспроизводит набор обучающих данных. Рисунок 2.16 – График изменения показателя Performance за время обучения Изменение значений вспомогательных параметров за время обучения представлены на рисунке 2.17. Графики регрессии представлены на рисунке 2.18. Они характеризуют качество воспроизведения нейронной сетью обучающей выборки. Чем ближе значение R к единице, тем лучше нейросеть воспроизводит набор обучающих (Training), тестовых (Test) и валидационных (Validation) данных. 65 Рисунок 2.17 – Изменение значений параметров обучения во времени Рисунок 2.18 – Регрессионная функция нейросети 66 Для обучения были спроектированы и обучены нейронные сети с числом нейронов 1, 10, 20, 60, 100. Сравнение результатов обучения приведено в таблице 2.2. Таблица 2.2 – Результаты обучения искусственных нейронных сетей Активационные функции Количество нейронов скрытого слоя Метод обучения* Среднеквадратичная ошибка (Performance) Логистическая – линейная 1 ГС 0.0146 ЛМ 0.014 10 ГС 0.0177 ЛМ 0.000344 20 ГС 0.00537 ЛМ 0.0000803 60 ГС 0.0011300 ЛМ 0.0000032 100 ГС 0.0010300 ЛМ 0.0000005 Гиперболический тангенс – линейная 1 ГС 0.014 ЛМ 0.0142 10 ГС 0.0148 ЛМ 0.00038 20 ГС 0.00338 ЛМ 0.0000757 60 ГС 0.0009740 ЛМ 0.0000032 100 ГС 0.0007540 ЛМ 0.0000006 Гиперболический тангенс для обоих слоёв 1 ГС 0.0144 ЛМ 0.0139 10 ГС 0.0144 ЛМ 0.000129 20 ГС 0.00432 ЛМ 0.000026 60 ГС 0.0004190 ЛМ 0.0000007 100 ГС 0.0004660 ЛМ 0.0000003 *ГС – обучения методом градиентного спуска. ЛМ – метод обучения Левенберга – Марквардта 67 Характеристики операционной системы, использованной при обучении приведены в таблице 2.3. Таблица 2.3 – Характеристики операционной системы Характеристика Значение Операционная система Windows 10 Pro 64-разрядная Процессор Intel Core i5-7200 2.5 ГГц Оперативная память 8 ГБ Сравнение влияния выбранной активационной функции на значение среднеквадратичной ошибки ИНС, обученной методом Левенберга– Марквардта представлено в таблице 2.4. Таблица 2.4 – Влияние вида активационной функции на значение среднеквадратичной ошибки Активационные функции Значение ошибки Количество нейронов 1 10 20 60 100 Логистическая – линейная 0.014 0.000344 0.0000803 0.0000032 0.000000523 Гиперболический тангенс – линейная 0.0142 0.00038 0.0000757 0.0000032 0.000000581 Гиперболический тангенс для обоих слоёв 0.0139 0.000129 0.0000260 0.0000007 0,00000031 Сравнение методов показало следующее: 1. Наименьшую среднюю ошибку в качестве активационных функций показала гиперболическая тангенциальная функция для обоих слоёв при количестве нейронов, равном 100 (3*10 -7 ). Однако в рамках эксперимента остальные комбинации активационных функций показали сравнимые по порядку точности результатов (5*10 -7 и 6*10 -7 ) при количестве нейронов равном 100. 68 2. Метод обучения Левенберга–Марквардта по сравнению с методом градиентного спуска даёт на несколько порядков лучшие показатели качества при меньшем количестве нейронов и занимает в несколько раз меньше времени для обучения. 3. С увеличением количества нейронов в скрытом слое улучшаются и показатели качества модели. Среднеквадратичная ошибка у модели со 100 нейронами имеет порядок 10 -7 . Оптимальным числом нейронов является количество от 10 до 20, при которых ошибка принимает значения от 10 -4 до 10 -6 , что с учётом размерности выходного параметра модели (доля отделившейся воды) представляет соответственно ошибку от 1% до 0.01%. Диаграммы сравнения значений среднеквадратичной ошибки в зависимости от количества нейронов в скрытом слое и метода обучения представлены на рисунке 2.19. 69 Рисунок 2.19 – Значения среднеквадратичной ошибки нейронных сетей, обученных методом градиентного спуска (слева) и Левенберга- Марквардта (справа) 70 Итоговая нейронная сеть была обучена на расширенном диапазоне экспериментальных данных методом Левенберга-Марквардта. Результат, генерируемый обученной ИНС, представлен на рисунках 2.20 и 2.21, где Q – расход деэмульгатора, t – температура эмульсии. Рисунок 2.20 – Выход нейронной сети для времени отстаивания 120 минут Рисунок 2.21 – Выход нейронной сети для времени отстаивания 120 минут 71 На рисунке 2.22 (а, б, в) для сравнения представлены графики экспериментальных данных (сплошная линия) и результата моделирования нейросети (линия с точками). а) при температуре 10°С; б) при температуре 20°С; в) при температуре 40°С. Рисунок 2.22 – Доля отделившейся воды при времени отстаивания 60 минут 2.6 Сравнение с другими методами моделирования Для проверки возможности аппроксимации всех экспериментальных значений методом полиномов, как альтернативы ИНС, были построены выражения вида: 1. Полином первого порядка 3 3 2 2 1 1 0 x a x a x a a Y (2.21) 72 2. Полином второго порядка 3 2 9 3 1 8 2 1 7 2 3 6 2 2 5 2 1 4 3 3 2 2 1 1 0 x x a x x a x x a x a x a x a x a x a x a a Y (2.22) 3. Полином третьего порядка 3 2 1 19 2 2 3 18 1 2 3 17 3 2 2 16 1 2 2 15 3 2 1 14 2 2 1 13 3 3 12 3 2 11 3 1 10 3 2 9 3 1 8 2 1 7 2 3 6 2 2 5 2 1 4 3 3 2 2 1 1 0 x x x a x x a x x a x x a x x a x x a x x a x a x a x a x x a x x a x x a x a x a x a x a x a x a a Y (2.23) 4. Экспоненциальный полином первого порядка 3 2 1 3 2 1 0 x x x e a e a e a a Y (2.24) где 3 2 1 , , x x x – переменные (расход реагента, температура, время отстаивания); 19 0 a a – коэффициенты полинома. Для каждого полинома были определены коэффициенты методом наименьших квадратов. При степени полинома менее 2 получаемые результаты вычислений не являются представительными по отношению к экспериментальным данным. На рисунке 2.23 приведены графики экспериментальных значений доли отделившейся воды (сплошной линией) и значений этого же параметра, рассчитанных полиномом 2 порядка (а), 3 порядка (б) (точками) при времени отстаивания 60 минут, и температуре 40°С. Среди всех представленных полиномов лучшее качество аппроксимации показал полином 3 порядка (0,1326). Обученная нейронная сеть с 1 нейроном в скрытом слое имеет показатель среднеквадратичной ошибки 0,014, что на порядок превосходит показатели модели по методу полиномиальной аппроксимации. Дальнейшее увеличение степени полинома приводит к пропорциональному увеличению количества аргументов, что улучшает качество интерполяции, но ухудшает качество экстраполяции, то есть будет уменьшаться способность полинома рассчитывать значения, лежащие вне 73 диапазона обучающей выборки. К тому же увеличение числа слагаемых, будет негативно сказываться на быстродействии вычислений. а) б) а) Полином 2 порядка; б) полином 3 порядка. Рисунок 2.23 – Сравнение экспериментальных данных и результатов аппроксимации полиномами при t=30°C и T=120 мин |