ISBN 978-5-7262-1773-4 НЕЙРОИНФОРМАТИКА-2013. Часть 1 А.И. ДИВЕЕВ Вычислительный центр им. А.А. Дородницына РАН, Москва [email protected] НОВЫЙ ТИП НЕЙРОННОЙ СЕТИ НА ОСНОВЕ СЕТЕВОГО ОПЕРАТОРА Рассматривается применение сетевого оператора в качестве нейронной сети. Сетевой оператор - новая структура данных, которая позволяет представить математическое выражение в виде ориентированного вычислительного графа. Сетевой оператор позволяет описывать не только любую нейронную сеть, но и более широкий класс многомерных функций, включая негладкие и разрывные функции. За счет применения и подбора в процессе обучения большого количества нелинейных операций в сетевом операторе можно использовать меньшее число весовых коэффициентов, чем в нейронной сети. Приведено краткое описание метода сетевого оператора. Представлена базовая конструкция для использования сетевого оператора в качестве нейронной сети. Рассмотрен численный пример использования сетевого оператора для аппроксимации экспериментальных данных нелинейной многомерной функцией. Ключевые слова: метод сетевого оператора, вариационный генетический алгоритм, аппроксимация данных многомерной функцией Введение При использовании нейронной сети для аппроксимации экспериментальных данных исследователь исключает возможность нахождения закономерности в явной форме математического выражения, так как при обучении нейронной сети с помощью вычислительного алгоритма подбираются оптимальные значения постоянных параметров, а не вид функций математического выражения. Современные достижения в области алгоритмизации, метод генетического программирования [1], а также его развитие, метод грамматической эволюции [2] и метод аналитического программирования [3], созданные для решения задачи автоматического написания программ могут быть использованы и для поиска вида математического выражения. К таким новым результатам относится метод сетевого Данная работа выполнена при поддержке РФФИ, проект № 11-08-00532-а. ISBN 978-5-7262-1773-4 НЕЙРОИНФОРМАТИКА-2013. Часть 1 оператора [4-7], который разрабатывался специально для поиска многомерной функции в задаче синтеза системы управления. В работе предлагается использовать сетевой оператор в качестве нейронной сети. Сетевой оператор - эта новая запись математического выражения, которая позволяет представить математическое выражение в виде ориентированного графа или, в памяти компьютера в виде верхней треугольной целочисленной матрицы. Элементы матрицы указывают на номера унарных и бинарных операций, на множестве которых и осуществляется поиск вида математического выражения. Изменение элементов матрицы, осуществляемое с помощью генетического алгоритма, позволяет изменять структуру математического выражения, состав и вид входящих в него нелинейных операций. Настраиваемые параметры в сетевом операторе являются аргументами и их значения могут быть найдены также генетическим алгоритмом вместе с элементами матрицы. Метод сетевого оператора Сетевой оператор строится на следующих конструктивных множествах: - множество переменных X x1, , xN , xi R1 , i 1, N ; - множество параметров (1) (2) Q q1 ,, q P , qi R1 , i 1, P ; - множество унарных операций (3) O1 1 z z, 2 z ,, W z ; множество бинарных операций (4) O 2 0 z , z ,, V 1 z , z . Среди унарных операций обязательно должна присутствовать тождественная операция (5) 1 z z . Бинарные операции должны быть коммутативны (6) i z , z i z , z , i 0, V 1 , ассоциативны (7) i z , i z , z i i z , z , z , i 0, V 1 , и иметь единичный элемент (8) i z , z O2 ei i ei , z z , i 0, V 1 . ISBN 978-5-7262-1773-4 НЕЙРОИНФОРМАТИКА-2013. Часть 1 Для представления математического выражения в виде сетевого оператора необходимо записать его с помощью элементов конструктивных множеств. Затем с помощью добавления унарной тождественной операции (5) и бинарной операций с единичным аргументом получить запись, которая удовлетворяет следующим свойствам: - аргументами бинарной операции являются унарные операции или единица, соответствующая данной бинарной операции; - аргументом унарной операции является либо бинарная операция, либо элемент из множеств переменных или параметров; - аргументами бинарной операции не могут быть унарные операции, аргументами которых является одна и та же константа или переменная. Доказано [1], что, если получена запись математического выражения с помощью конструктивных множеств (1) – (4), то всегда возможно ее преобразование в запись с указанными выше свойствами. После построения записи с указанными свойствами строим ориентированный граф сетевого оператора. При построении графа используем правила, представленные на рис. 1. а) k l z , z б) k l z , m z в) k l z k m l z , em г) n k a , l a n k a , 1 m em , l a Рис. 1. Правила построения сетевого оператора Сетевой оператор – это ориентированный граф, обладающий следующими свойствами: а) в графе отсутствуют циклы; б) к любому узлу, который не является источником, имеется хотя бы один путь от узла-источника; ISBN 978-5-7262-1773-4 НЕЙРОИНФОРМАТИКА-2013. Часть 1 в) от любого узла, который не является стоком, имеется хотя бы один путь до узла-стока; г) каждому узлу-источнику соответствует элемент из множества переменных X или из множества параметров Q ; д) каждому узлу соответствует бинарная операция из множества O 2 бинарных операций; е) каждой дуге графа соответствует унарная операция из множества O1 унарных операций. Для большинства математических выражений достаточно использовать следующие унарные и бинарные операции: 1 1 , , if z 1 z z , 2 z 3 z z , 4 z sgnz z , z 2 , otherwise, sgn z , if z , 1 , if z ln , 5 z 6 z z 1 , otherwise, e , otherwise, z sgn z , if z ln , 1 ln , if -ln z , 7 z 8 z 1 e z , otherwise, ln z , otherwise, 1 e z 1, if z 0, 9 z 10 z sgnz , 11z cosz , 12 z sinz , 0, otherwise, 13 z arctanz , sgn z 1 , if z 3 , 14 z 3 z , otherwise, 3 z, if z 1, , if z , 16 z 15 z 3 sgn z , otherwise, z , otherwise, 17 z sgnz ln z 1 , sgn z , if z ln , 0, if z ln , 18 z , 19 z z sgn z e , otherwise, sgn z e z 1 , otherwise ISBN 978-5-7262-1773-4 НЕЙРОИНФОРМАТИКА-2013. Часть 1 1, if z , 1, if z , 2 21 z 1, if z , 20 z 0, if z 0, 2 2 3 3z 4 z 3 3z 2 z , otherwise, 2 3 , otherwise, 2 3 sgn z 1 , if z 3 , 0, if z ln , 23 z 22 z z , 3 e , otherwise, z z , otherwise, 1 , if z ln , 24 z 1 , otherwise, 1 e z 0 z , z z z , 1 z , z z z , 2 z , z max z, z , 3 z , z min z, z , 4 z , z z z z z , (9) 5 z , z sgnz z z 2 z 2 , 6 z, z sgnz z z z , 7 z, z sgnz zmax z , z . (10) Рассмотрим пример построения сетевого оператора для математического выражения y x1 sinx1 q1 x1e x2 . Записываем выражение с помощью конструктивных множеств (1)-(4), используя множества операций (9) и (10), получаем y x1 sinx1 q1 x1e x2 x1 sinx1 q1x1e x2 0 x1 , sinx1 , q1 x1e x2 0 0 x1 , sinx1 , q1 x1e x2 0 0 x1, 12 x1 , 1 q1x1, 6 x2 0 0 x1, 12 x1 , 1 1 q1, x1 , 6 3 x2 . Полученная запись не удовлетворяет указанным выше требованиям, поэтому вводим дополнительные операции, которые не изменяют результат вычислений. В итоге получаем следующую запись математического выражения: ISBN 978-5-7262-1773-4 НЕЙРОИНФОРМАТИКА-2013. Часть 1 y 0 1 0 1 0 1 x1 ,0, 12 x1 , 1 1 1 1 1 q1 , 1 x1 , 6 0 3 x2 ,0 . Строим граф сетевого оператора по правилам, приведенным на рис. 1. Сетевой оператор рассмотренного математического выражения представлен на рис. 2. Заметим, что число узлов-источников в сетевом операторе равно количеству аргументов, а число остальных узлов – числу бинарных операций. В узлах указаны номера бинарных операций из множества (10), а на дугах – номера унарных операций из множества (9). Для представления сетевого оператора в памяти компьютера используем матрицу сетевого оператора. Для этой цели пронумеруем узлы сетевого оператора, так, чтобы номер узла, откуда дуга выходит, был меньше номера узла, куда дуга входит. Указанная нумерация приведена на рис. 2 в виде цифр в верхних частях узлов. Для построения матрицы сетевого оператора используем матрицу смежности графа. Для рассматриваемого примера матрица сетевого оператора имеет следующий вид: 0 0 0 1 1 0 0 12 0 0 0 0 1 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 1 Рис. 2. Сетевой опера . Ψ 0 0 0 0 1 0 1 0 тор математического 0 0 0 0 0 0 6 0 выражения 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 Матрица сетевого оператора имеет верхний треугольный вид, что является следствием нумерации узлов. Недиагональные ненулевые элементы указывают на номера унарных операций, а диагональные элементы указывают на номера бинарных операций. Для вычисления математического выражения по матрице сетевого оператора вводим вектор узлов, каждая компонента которого связана с соответствующим узлом сетевого оператора z z1 z L T . (10) Задаем начальное значение вектора узлов. Если узел является источником, то компонента вектора узлов равна значению соответствующего ISBN 978-5-7262-1773-4 НЕЙРОИНФОРМАТИКА-2013. Часть 1 аргумента математического выражения. Если узел не является источником, то это означает, что данный узел связан с бинарной операцией, тогда компонента вектора узлов равна единичному элементу данной бинарной операции. Для рассматриваемого примера начальное значение вектора узлов имеет следующий вид: z x1 q1 x2 0 1 0 1 0T . Для вычисления математического выражения по матрице сетевого оператора используем соотношение (11) z j jj ij zi , z j , если ψij 0 , i 1, L 1 , j i 1, L . При вычислении достаточно рассматривать только ненулевые элементы матрицы сетевого оператора. Для рассматриваемого примера вычисления по соотношению (11) приводят к следующему результату: 1, 4 1 , 4, 4 0 , z4 0 1 z1 , z 4 x1 0 x1 ; 1,5 1 , 5,5 1 , z5 1 1 z1 , z5 x11 x1 ; 1,8 12 , 8,8 0 , z8 0 12 z1 , z8 sinx1 0 sinx1 ; 2,5 1 , 5,5 1 , z5 1 1 q1 , z5 q1x1 ; 3,6 3 , 6,6 0 , z6 0 3 x2 , z6 x2 0 x2 ; 4,8 1 , 8,8 0 , z8 0 1 z 4 , z8 x1 sinx1 5,7 1 , 7,7 1 , z7 1 1 z5 , z7 q1x11 q1x1 . 6,7 6 , z7 1 6 z6 , z7 e x2 q1 x1 ; 7,8 1 , 8,8 0 , z8 0 1 z7 , z8 e x2 q1 x1 x1 sinx1 . Если необходимо осуществить поиск математического выражения в виде матрицы сетевого оператора, то нет необходимости проводить указанные выше преобразования от математического выражения к целочисленной матрице, а достаточно рассматривать множество целочисленных матриц с определенными свойствами. Заметим, что изменение матрицы сетевого оператора приводит к получению нового математического выражения. Например, если в рассматриваемой матрице сетевого оператора добавить в строку 3, в столбец 5 номер унарной операции 5, то получим матрицу ISBN 978-5-7262-1773-4 НЕЙРОИНФОРМАТИКА-2013. Часть 1 0 0 0 1 1 0 0 12 0 0 0 0 1 0 0 0 0 0 0 0 5 3 0 0 0 0 0 0 0 0 0 1 Ψ , 0 0 0 0 1 0 1 0 0 0 0 0 0 0 6 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 которая соответствует другому математическому выражению qx y e x2 1 1 x1 sinx1 . x2 При поиске необходимого математического выражения используем вариационный генетический алгоритм, который осуществляет поиск решения на множестве вариаций матрицы сетевого оператора. Нейронная сеть на основе сетевого оператора Любая нейронная сеть описывается математическим выражением, которое может быть представлено в виде сетевого оператора. Математическое выражение, которое вычисляет сетевой оператор с матрицей Ψ , обозначим в виде (12) y Ψx, q , где x - вектор переменных, q - вектор параметров. Используем вектор выходов y в качестве аргумента для следующего сетевого оператора. В результате получаем многослойную нейронную сеть на основе сетевого оператора (см. рис. 3). Рис.3 Нейронная сеть на основе сетевого оператора В многослойной сети размерности матриц сетевых операторов и размерности векторов параметров в каждом слое могут быть различны. ISBN 978-5-7262-1773-4 НЕЙРОИНФОРМАТИКА-2013. Часть 1 Модельная задача В качестве примера была рассмотрена задача аппроксимации многомерной нелинейной функции. y1 x1x2 x3 x2 x3 x12 , y2 x1 x1 x2 x2 x3 x3 . Предполагалось, что данная функция неизвестна. По этой функции было случайно сгенерировано 100 точек в диапазоне xi 5 , i 1,2,3 . Полученный набор точек y j , x j , j 1,100 являлся обучающей последовательностью. По заданному набору с помощью генетического алгоритма была обучена однослойная нейронная сеть на основе сетевого оператора размерностью 24 24 с тремя настраиваемыми параметрами. В результате получено следующее математическое выражение: y1 3 A 3 B sgnC C 3 D sgnE E 3 F q1x1x2 q13 x13 x23 q3 x3 , y2 3 y1 G B sgnE E 3 F q1x1x2 q13 x13 x23 sgnx3 x3 3 x2 sgnx3 x3 3 x2 где 3 3 x2 2 x2 3 q2 3 q1 x1 , A sgnF F sgnx2 3 x2 z15 sgnx3 6 x3 9 x2 , B sgnE E 3 F q1x1x2 sgnF F sgnx2 3 x2 E , C sgnE E 3 F q1x1x2 q13 x13 x23 sgnF F sgnx2 3 x2 , D sgnE E 3 F q1x1x2 q13 x13 x23 sgnF F , 1 , E sgnx3 x3 3 x2 3 q1x1x2 q2 x2 x3 q1 q3 x3 sgnx3 x3 F q1x1x2 q2 x2 x3 3 q1 q3 x3 sgnx3 x3 , G sgnF F sgnx2 3 x2 E 3 sgnx3 6 x3 9 x2 , q1 0.11719 , q2 1.5 , q3 9.61328 . ISBN 978-5-7262-1773-4 НЕЙРОИНФОРМАТИКА-2013. Часть 1 Для поиска использовался вариационный генетический алгоритм с множественным базисом. При эксперименте алгоритм имел следующие параметры: размер начальной популяции 512, число поколений 128, число скрещиваний в одном поколении 256, число вариаций 8, число базисов 5, число поколений между сменой базисов 22, вероятность мутации 0.7. Время вычислений на компьютере с процессором Pentium Dual CPU T2390 с частотой 1.86 ГГц составило около 60 минут. Выводы Предложено использовать в качестве нейронной сети сетевой оператор, который позволяет получать математические выражения для нелинейных и негладких формул. Приведена структура многослойной нейронной сети на основе сетевого оператора. Приведен модельный пример использования нейронной сети на основе сетевого оператора для аппроксимации многомерной негладкой функции. В результате получено математическое выражение, содержащее только три настраиваемых параметра. Математическое выражение описывает модельную закономерность в виде нелинейных функций и определяет достаточно точно значение функции даже для аргументов, не входящих в обучающую выборку. Список литературы 1. Koza J.R. Genetic Programming: On the Programming of Computers by Means of Natural Selection. Cambridge, Massachusetts, London, MA: MIT Press, 1992. 2. O’Neill M. Automatic Programming in an Arbitrary Labguage: Evolving Programs in Grammatical Evolution: PhD thesis. University of Limerick, 2001. 3. Zelinka I., Oplatkova Z. Analytic programming // Comparative Study. CIRAS’03, The second International Conference on Computational Intelligence, Robotics, and Autonomous Systems, Singapore, 2003. 4. Дивеев А.И. Метод сетевого оператора. М.: ВЦ РАН, 2010. 5. Дивеев А.И. Численный метод сетевого оператора для синтеза системы управления с неопределенными начальными значениями//Известия РАН Теория и системы управления. 2012, № 2. С. 63-78. 6. Дивеев А.И. Синтез адаптивной системы управления методом сетевого оператора// Сб. статей Вопросы теории безопасности и устойчивости систем. М.: ВЦ РАН. 2010. Вып. 12. С. 41-55. ISBN 978-5-7262-1773-4 НЕЙРОИНФОРМАТИКА-2013. Часть 1 7. Дивеев А.И. Вычислительный метод поиска математических выражений// Сб. трудов Фундаментальные проблемы системной безопасности. М.: Вузовская книга, 2009. С. 159-177.