ИССЛЕДОВАНИЕ МАТЕМАТИЧЕСКОГО ПОДХОДА ДЛЯ АНАЛИЗА МНОГОМЕРНЫХ ДИНАМИЧЕСКИХ ПРОЦЕССОВ Пешкова Е.А. Национальный Исследовательский Томский Политехнический Университет Томск, Россия STUDY MATHEMATICAL APPROACH FOR MULTIDIMENSIONAL DYNAMIC PROCESSES Peshkova E.A. National Research Tomsk Polytechnic University Tomsk, Pussia THE ANALYSIS OF Введение Искусственные нейронные сети (ИНС)- это вычислительные структуры, моделирующие биологические процессы, которые связаны с процессами, протекающими в человеческом мозге. Это системы, которые способны обучаться посредством анализа положительных и отрицательных воздействий. Элементарной частицей ИНС является искусственный нейрон (просто нейрон), который был назван так по аналогии с биологическим нейроном [29]. В 50-е и 60-е годы группой исследователей были созданы первые искусственные нейронные сети. Данные нейронные сети изначально были созданы как электронные сети, но в дальнейшем их перенесли в среду компьютерного моделирования, которая сохранилась и в настоящее время. Первые нейронные сети, которые состояли из одного слоя нейронов, были использованы для предсказания погоды, анализа электрокардиограмм и искусственного зрения. Но сети не могли решать более сложные задачи. В связи с этим интерес многих исследователей к нейронным сетям угас, ученые оставили сферу данных исследований ради других областей научных знаний, Таким образом, искусственные нейронные сети не исследовали почти два десятилетия. Однако некоторые ученые, такие, как Кохонен, Гроссберг, Андерсон, продолжили свои исследования. Постепенно появился теоретический фундамент, на основе которого в настоящее время конструируются мощные многослойные сети [1]. В настоящее время искусственные нейронные сети успешно решают многие задачи. 1.Введение в теорию нейронных сетей Рассмотрение данной темы следует начать с рассмотрения задач, решаемых искусственными нейронными сетями. Классификация (распознавание) образов. Задача состоит в указании принадлежности входного образа, представленного вектором признаков, одному или нескольким предварительно определенным 0 классам. К известным приложениям относятся распознавание букв, распознавание речи, классификация сигнала электрокардиограммы, классификация клеток крови. Кластеризация/категоризация. При решении задачи кластеризации, которая известна также как классификация образов «без учителя», отсутствует обучающая выборка с метками классов. Алгоритм кластеризации основан на подобии образов и размещает близкие образы в один кластер. Известны случаи применения кластеризации для извлечения знаний, сжатия данных, исследования свойств данных. Аппроксимация функций. Пусть имеется обучающая выборка ((x1 , y1 ), (x 2 , y 2 ), …, ( x N , y N )) (пары данных вход-выход), которая генерируется неизвестной функцией F(x) , искаженной шумом. Задача аппроксимации состоит в нахождении оценки неизвестной функции F(x) . Аппроксимация функций необходима при решении многочисленных инженерных и научных задач моделирования. Предсказание/прогноз. Пусть заданы n дискретных отсчетов {y(1), y(2),…, y(k)} в последовательные моменты времени. Задача состоит в предсказании значения y(k + 1) в некоторый будущий момент времени k + 1 . Предсказание/прогноз имеет значительное влияние на принятие решений в бизнесе, науке и технике. Предсказание цен на фондовой бирже и прогноз погоды являются типичными приложениями техники предсказания/прогноза. Оптимизация. Многочисленные проблемы в математической статистике, технике, науке, медицине и экономике могут рассматриваться как проблемы оптимизации. Задачей алгоритма оптимизации является нахождение такого решения, которое удовлетворяет системе ограничений и максимизирует или минимизирует целевую функцию. Известная задача коммивояжера является классическим примером задачи оптимизации. Управление. Рассмотрим динамическую систему, заданную совокупностью {u(t), y(t)} , где u(t) является входным управляющим воздействием, а y(t) – выходом системы в момент времени t. В системах управления с эталонной моделью целью управления является расчет такого входного воздействия u(t) , при котором система следует по желаемой траектории, диктуемой эталонной моделью. Примером является оптимальное управление двигателем [1]. Искусственный нейрон. Несмотря на то, что в настоящее время существует большое количество моделей нейронных сетей, у всех ИНС имеются общие черты. Все они, подобно человеческому мозгу, состоят из однотипных 1 элементов – нейронов, которые связанны между собой, таким образом, имитируя нейроны головного мозга (рис. 1.1). Рис. 1.1. Схема нейрона Искусственный нейрон, так же как и нейрон головного мозга, состоит из синапсов, связывающих входы нейрона с ядром. Ядро осуществляет обработку входных сигналов и аксона. Аксон, в свою очередь, связывает нейрон с нейронами следующего слоя. Каждый синапс имеет вес, который определяет, насколько соответствующий вход нейрона влияет на его состояние. Состояние нейрона определяется по формуле n S xi wi i 1 , (1.1) где n - число входов нейрона; xi – значение i-го входа нейрона; wi – вес i-го синапса. Затем определяется значение аксона нейрона по формуле: Y = f(S-Т), (1.2) где f - некоторая функция, которая называется активационной; Т - пороговый уровень данного нейрона (эта величина отражает увеличение или уменьшение входного сигнала, подаваемого на функцию активации) [30]. Существует несколько видов функций активации [2]: 1. Единичный скачок или жесткая пороговая функция Если входное значение меньше порогового, то значение функции активации равно 0, иначе – 1. 1, если S T ; f (S ) 0, если S T . 2 Рис. 1.2. Функция единичного скачка 2. Линейный порог или гистерезис. Имеет два линейных участка, где функция активации тождественно равна 0 и 1, и есть участок, на котором функция строго монотонно возрастает. 0, если S T ; S T f (S ) , если T S T ; 1, если S T . Рис. 1.3. Линейный порог 3.Гиперболический тангенс. Гиперболический тангенс является S-образной функцией, он симметричен относительно начала координат, и в точке S=0 значение выходного сигнала f(S) равно нулю. Гиперболический тангенс принимает значения различных знаков, и это его свойство применяется для целого ряда сетей. eS eS f ( S ) th ( S ) S e e S 3 Рис. 1.4. Гиперболический тангенс 4.Сигмоидальная функция. Является S-образной функцией. Принимает значения в пределах [0;1]. Основное достоинство этой функции в том, что она дифференцируема на всей оси абсцисс и имеет очень простую производную. f (S ) 1 1 e S Рис. 1.5. Сигмоидальная функция . Функции активации типа единичного скачка и линейного порога встречаются очень редко и, как правило, используются на учебных примерах. На практике почти всегда применяется сигмоидальная функция активации [2]. К настоящему времени изучено достаточно большое количество моделей нейронных сетей. Сети бывают 2-х видов: однослойные, многослойные. Несмотря на то, что один нейрон может выполнить самые простые процедуры распознавания, для решения сложных задач нейроны необходимо объединить в сети. Самая простая сеть состоит из одного 4 слоя нейронов. Информация от входного слоя передается на выходной. Такая сеть называется однослойной (рис.1.6). Рис. 1.6. Однослойная нейронная сеть прямого распространения. В данной сети каждый вход xi соединён с каждым нейроном выходного слоя ИНС. Выход j -го нейронного элемента вычисляется по формуле: n y i F wij x i T j i 1 , w ij j -ым где - весовой коэффициент между i -тым входом и нейроном, xi -входной сигнал, T j j-порог нейронного элемента [3]. Для решения более сложных задач используются более крупные и сложные нейронные сети, состоящие из нескольких слоев нейронов. Данные сети обладают большими вычислительными возможностями (рис.1. 7). Рис.1.7. Многослойная нейронная сеть 5 В многослойных нейронных сетях нейроны объединяются в слои. Слой содержит совокупность нейронов с едиными входными сигналами. Число нейронов в слое может быть любым и не зависит от количества нейронов в других слоях. В общем случае сеть состоит из нескольких слоев, пронумерованных слева на право. Внешние входные сигналы подаются на входы нейронов входного слоя (его часто нумеруют как нулевой), а выходами сети являются выходные сигналы последнего слоя. Кроме входного и выходного слоев в многослойной нейронной сети есть один или несколько так называемых скрытых слоев. Среди многослойных сетей выделяют: 1) Сети прямого распространения (feedforward networks) – сети без обратных связей. В таких сетях нейроны входного слоя получают входные сигналы, преобразуют их и передают нейронам первого скрытого слоя, и так далее вплоть до выходного, который выдает сигналы для интерпретатора и пользователя. Если не оговорено противное, то каждый выходной сигнал n-го слоя передастся на вход 2) всех нейронов (n+1)-го слоя; однако возможен вариант соединения n-го слоя с произвольным (n+p)-м слоем. 3) Сети с обратными связями (recurrent networks). В сетях с обратными связями информация передается с последующих слоев на предыдущие. После введения обратных связей сеть уже не просто осуществляет отображение множества входных векторов на множество выходных, она превращается в динамическую систему и возникает вопрос об ее устойчивости. Теоретически число слоев и число нейронов в каждом слое может быть произвольным, однако фактически оно ограничено ресурсами компьютера или специализированных микросхем, на которых обычно реализуется нейросеть. Чем сложнее сеть, тем более сложные задачи она может решать. [33] Одной из основных задач при использовании нейронных сетей является подбор весовых коэффициентов для решения рассматриваемой задачи. Для этой цели существуют правила обучения нейронных сетей (алгоритмы), которые определяют, как изменяются значение весовых коэффициентов в зависимости от входных сигналов. 2. Обучение нейронных сетей. Алгоритмы обучения бывают 3-х видов [3]: 1) Обучение с учителем. Различают алгоритмы обучения с учителем и без учителя. Обучение с учителем предполагaет, что для каждого входного вектора 6 существует цeлевой вектор, представляющий собой требуемый выход. Вместе они называются обучающей парой. Обычно сеть обучается на некотором числе таких обучающих пар. Предъявляется выходной вектор, вычисляется выход сети и сравнивается с соответствующим целевым вектором, разность (ошибка) с помощью обратной связи подается в сеть и веса изменяются в соответствии с алгoритмом, стремящимся минимизировать ошибку. 2) Обучение без учителя. Обучение без учителя является более правдоподобной моделью обучения для биологической системы. Развитая Кохоненом и многими дрyгими, она не нуждается в целевом векторе для выходов и, следовательно, не требует сравнения с предопределенными идеальными ответами. Обучающее множество состоит лишь из входных векторов. Обучающий алгоритм подстраивает веса сети так, чтобы получались согласованные выходные векторы, т. е. чтобы предъявление достаточно близких входных векторов давало одинаковые выходы. Процесс обучения, следовательно, выделяет статистические свойства обучающего множества и гpуппирует сходные векторы в классы. Предъявление на вход вектора из данного класса даст определенный выходной вектор, но до обучения невозможно предсказать, какой выход будет производиться данным классом входных векторов. Следовательно, выходы подобной сети должны трансформироваться в некоторую понятную форму, обусловленную процессом обучения [3]. Наиболее часто при обучении многослойных нейронных сетей используют алгоритм обратного распространения ошибки, относящийся к алгоритму обучения с учителем. Обучение алгоритмом обратного распространения ошибки предполагает два прохода по всем слоям сети: прямого и обратного. При прямом проходе входной вектор подается на входной слой нейронной сети, после чего распространяется по сети от слоя к слою. В результате генерируется набор выходных сигналов, который и является фактической реакцией сети на данный входной образ. Во время прямого прохода все синаптические веса сети фиксированы. Во время обратного прохода все синаптические веса настраиваются в соответствии с правилом коррекции ошибок, а именно: фактический выход сети вычитается из желаемого, в результате чего формируется сигнал ошибки. Этот сигнал впоследствии распространяется по сети в направлении, обратном направлению синаптических связей. Задача обучения нейронной сети заключается в минимизации целевой функции ошибки НС, которая находится по методу наименьших квадратов: 7 E ( w) 1 p ( yi d i ) 2 , 2 i 1 (2.1) где yj – значение j-го выхода нейросети; dj- целевое значение j-го выхода; р- количество обработанных сетью примеров. При использовании алгоритма обратного распространения ошибки [4] обучение нейросети производится методом градиентного спуска, т.е. на каждой итерации изменение веса производится по формуле E wij , (2.2) wij где - параметр, определяющий скорость обучения. E E dy j S j , wij y j dS j wij (2.3) где yj- значение выхода j-го нейрона; Sj – взвешенная сумма входных сигналов, определяемая по формуле (2.1). При этом множитель S j xi , (2.4) wij где xi – значение i-го входа нейрона. Первый множитель формулы (2.3) вычисляется по формуле: E E dyk Sk E dyk ( n 1) w jk y j y dS y y dS k k k k j k k (2.5) где k – число нейронов в слое n + 1 . Для упрощения расчетов вводится вспомогательная переменная: (j n ) E dy j y j dS j (2.6) Далее необходимо определить рекурсивную формулу для (n ) ( n 1) определения j n-ного слоя, если известно k следующего n + 1 -го слоя. dy j(n) k( n1) w(jkn 1) j . (2.7) k dS j Нахождение же j для последнего слоя НС не представляет трудности, так как известен целевой вектор, т.е. вектор тех значений, которые должна выдавать НС при данном наборе входных значений. (n ) 8 (j N ) yi( N ) di dyi dSi (2.8) Формула (6) в раскрытом виде представляется формулой: wij( n ) (j n ) xin . (2.9) Алгоритм обучения нейросети состоит из следующих этапов. 1. Подать на вход НС один из требуемых образов и определить значения выходов нейронов нейросети. (N ) 2. Рассчитать для выходного слоя НС по формуле (2.8) и (N ) рассчитать изменения весов wij выходного слоя N по формуле (2.9) 3. Рассчитать по формулам (2.7) и (2.9) соответственно для остальных слоев НС, n = N - 1..1 . 4. Скорректировать все веса НС wij( n ) (t ) wij( n ) (t 1) wij( n) (t ) (n ) и wij (n ) (2.10) 5. Если ошибка существенна, то перейти на шаг 1. На этапе 2 сети поочередно в случайном порядке предъявляются вектора из обучающей последовательности [4]. Однако обратное распространение несет в себе определенные проблемы. Во-первых, нет гарантии, что сеть обучится за конечное время. Иногда усилия, потраченные на обучение сети, пропадают напрасно после затрат большого количества времени. Во-вторых, нет уверенности, что сеть обучится наилучшим образом. Алгоритм обучения может попасть в «ловушку» так называемого локального минимума, и будет получено худшее решение.[3] Разработано много других сетевых алгоритмов обучения, имеющих свои специфические преимущества. Любая сеть страдает от ограничений в своих возможностях обучаться и вспоминать. Искусственные нейронные сети предложены для решения множества задач. Потенциальными приложениями являются те, где человеческий интеллект малоэффективен, а обычные вычисления трудоемки или неадекватны. Работа с нейронной сетью разбивается на несколько этапов: 1. Постановка задачи. 2. Сбор данных для входа и выхода. 3. Преобразование данных под нейронную сеть. 4. Выбор конфигурации нейронной сети. 5. Обучение нейронной сети. 6. Анализ полученных результатов.[4] 9 Рассмотрим, что включает в себя каждый из этапов. [34] 1. Постановка задачи. Нейронная сеть не может решать задачу, поставленную в произвольной форме. На данном этапе нужно понять, что необходимо определить, следует определить входные и выходные данные сети. В качестве входных данных необходимо брать данные с наибольшей информативностью. 2. Сбор данных для входа и выхода. После постановки задачи исследователь должен собрать необходимые данные для последующего анализа. Необходимо отметить, что данные различных рядов должны быть сопоставимы друг с другом. Здесь определяется объем выборки, с которой будет в дальнейшем работать исследователь. 3. Преобразование данных под нейронную сеть. Данные в их обычном представлении не могут быть поданы на вход нейронной сети. На вход могут быть поданы числа, лежащие в отрезке [0,1]. Существует множество методов нормализации данных, которые позволяют терять минимум информации о первоначальном ряде. 4. Выбор конфигурации нейронной сети. После преобразования данных под нейронную сеть, исследователь переходит к выбору конфигурации самой нейронной сети. На данный момент изучено большое количество нейросетевых конфигураций (парадигм), каждая из которых приспособлена к решению той или иной задачи. На данном этапе выбирается количество слоев нейронов, количество нейронов в одном слое. Успешное выполнение этого пункта зависит от опыта исследователя, а также от времени, которое он потратит на анализ способностей каждой из выбранных конфигураций. 5. Обучение нейронной сети. Существует несколько способов обучения нейронной сети. Наиболее распространенный из них – обучение с учителем. Данный метод построен по следующему принципу: на вход подаются некоторые данные, в результате преобразований получаются некоторый выход. Этот выход сравнивается с эталоном, вычисляется отклонение результата от эталона (просчитывается ошибка нейронной сети). После вычисления ошибки веса изменяются, чтобы выход был больше похож на идеал, после чего процедура повторяется столько раз, пока ошибка не минимизируется. 6. Анализ полученных результатов. В результате предыдущих этапов у исследователя несколько нейронных сетей, которые показали себя наиболее успешно в решении поставленной задачи. В 6 пункте при помощи нейронной сети решают задачу, поставленную на первом этапе.[34] 10 Искусственные нейронные сети в некоторой степени сохраняют непредсказуемость. 100%-е знание выхода возможно только в случае испытания всевозможных входных сигналов. Однако в больших сетях такую проверку осуществить невозможно, в этом случае необходимо использовать статистические методы оценки функционирования. Как и большинство математических методов, нейронные сети позволяют лишь с некоторой вероятностью давать ответ на поставленный вопрос. В области медицины этот подход дает дополнительную информацию для постановки диагноза врачу. Кроме этого, искусственные нейронные сети не способны "объяснить", как решается задача. Из-за сложности внутреннего представления, получающегося в результате обучения, анализ этого представления вызывает большие сложности. Заключение В ходе работы был изучен математический подход для анализа динамических процессов, основанный а нейросетевых алгоритмах. Рассмотрены различные алгоритмы обучения нейронных сетей. Дальнейшая работа будет направлена на изучение других математических подходов для анализа многомерных динамических процессов, сравнение их с уже изученным и применении на практике. 11 Список использованной литературы 1.Брюхомицкий Ю.А. Нейросетевые модели для систем информационной безопасности. Учебное пособие. – Таганрог: Изд-во ТРТУ, 2005. – 160 с. 2.Портал искусственного интеллекта. 2011. URL: http://www.aiportal.ru/articles/neural-networks/advantages.html (дата обращения: 12.09.2014). 3.Яхъяева Г.Э. Нечеткие множества и нейронные сети. – М.: ИнтернетУниверситет Информационных Технологий, 2006. – 316 с. 4.Технологии анализа данных. 2012. URL: http://www.basegroup.ru/library/analysis/neural/math/ (Дата обращения: 10.09.2014) 5.Миркес Е. М. Логически прозрачные нейронные сети и производство явных знаний из данных // Нейроинформатика / А. Н. Горбань, В. Л. Дунин-Барковский, А. Н. Кирдин и др. — Новосибирск: Наука. Сибирское предприятие РАН, 1998. — 296 с. 12