УДК 621.8:681.5 М.Э. КУССУЛЬ
ГРАФЫ МОДУЛЬНЫХ НЕЙРОННЫХ СЕТЕЙ
Abstract: The article is devoted to theoretical problems of modular neural networks representation with directed graphs. There are given definitions of cycles and the classification of cycles by proposed graph representation. Characteristics of most practically interesting types of cycles are considered. The proposed representation is meant for general analysis of modular neural networks architectures and in the first place for the analysis with automatic systems.
Key words: neural networks, modular neural networks, graphs of neural networks.
Анотація: Стаття присвячена теоретичним питанням опису модульних нейронних мереж за допомогою направлених графів. На основі запропонованого опису подані визначення циклів і проведена їх класифікація. Розглянуті властивості найбільш цікавих з практичної точки зору циклів. Запропонований опис призначений для загального аналізу архітектур модульних мереж і, в першу чергу, для аналізу архітектур автоматичними системами.
Ключові слова: нейронні мережі, модульні нейронні мережі, графи нейронних мереж.
Аннотация: Статья посвящена теоретическим вопросам описания модульных нейронных сетей при помощи направленных графов. На основе предложенного представления даны определения циклов и проведена их классификация. Рассмотрены свойства наиболее интересных с практической точки зрения типов циклов. Предложенное представление предназначено для общего анализа архитектур модульных сетей и, в первую очередь, для анализа архитектур автоматическими системами.
Ключевые слова: нейронные сети, модульные нейронные сети, графы нейронных сетей.
1. Введение
В последнее десятилетие в области использования искусственных нейронных сетей активно развивается модульный подход [1]. Модульные сети, в частности, позволяют разбивать сложные задачи распознавания на простые подзадачи, решаемые отдельными модулями или подсетями, и конструировать решение проблемы в целом как совокупность решенных подзадач. Под модульной нейронной сетью мы понимаем произвольный набор алгоритмов обработки данных, включая алгоритмы искусственных нейронных сетей, объединенных для решения некоторой задачи.
Применение модульных нейронных сетей требует решения нескольких проблем как частного, так и общего характера. К проблемам частного характера относятся вопросы выбора архитектуры модульной сети для решения конкретной задачи. Например, в случае разделения на подзадачи возникает вопрос наиболее приемлемого разбиения задачи с точки зрения конечного результата ее решения. К проблемам общего характера относятся способы объединения разнотипных алгоритмов в единую модульную сеть, порядок пересчета и методы обучения модульных нейронных сетей как целого. Порядком пересчета модульной сети будем называть последовательность применения алгоритмов для обработки входных данных.
Под способами объединения разнотипных алгоритмов в единую сеть мы подразумеваем, в первую очередь, правила передачи данных между модулями сети. Использование правил обмена данными актуально, например, в тех случаях, когда разрешенный диапазон выходных значений предыдущего модуля не совпадает с разрешенным диапазоном входных значений последующего модуля. Это также относится к преобразованиям дискретных величин в непрерывные и обратно. Проблемы передачи данных решаются, например, с помощью масштабирования, смещения и аналогичных линейных преобразований, которые могут быть представлены самостоятельными модулями и включены в сеть между соответствующими алгоритмами (модулями). Большинство
вопросов, связанных с передачей данных, решено в программном симуляторе модульных нейронных сетей САПР МНН [2].
Обучение модульных нейронных сетей представляет собой самостоятельную задачу, решение которой зачастую зависит от выбранной модульной архитектуры. В настоящее время общепринятым подходом является обучение различных модулей (нейронных сетей) по отдельности, а затем конструирование общего выхода модульной сети, используя выходы обученных модулей. Альтернативные подходы к обучению модульных сетей рассматриваются в [3] и [4].
Модульная сеть может включать в себя как модули (алгоритмы), параллельно обрабатывающие входные данные, так и модули, обрабатывающие данные последовательно, друг за другом. Кроме того, возможны архитектуры модульных сетей, когда на вход модуля поступают данные, уже обработанные этим же модулем. Иными словами, архитектуры модульных сетей допускают наличие циклов.
При отсутствии циклов порядок пересчета модульной сети очевиден. В случае использования циклов, если порядок работы модулей не определен условиями решаемой задачи, возможно возникновение противоречий. Примером такого противоречия может служить триггерная схема соединения модулей, показанная на рис. 1. Результат работы такой сети будет различным в зависимости от того, какой из алгоритмов обработки данных Ь или с был применен первым, либо они применялись параллельно.
Определение и разрешение противоречий в модульной архитектуре является важной задачей использования модульных нейронных сетей. Особое значение эта задача приобретает при разработке интерактивных средств моделирования модульных сетей, таких как САПР МНН. Система проектирования должна автоматически определять и запрещать создание противоречивых архитектур или требовать разрешения противоречий пользователем.
Главной целью представленной работы является попытка предложить такой способ описания модульных нейронных сетей, который позволил бы строить
непротиворечивые архитектуры и
Рис. 1. Триггерная схема соединения модулей
автоматически определять последовательность работы алгоритмов (модулей) сети.
В данной статье предлагается описание модульных нейронных сетей при помощи направленных графов. На основе предложенного описания даны определения и рассмотрены свойства наиболее интересных, с практической точки зрения, типов циклов в модульных сетях. Графы модульных сетей и свойства рассмотренных циклов используются для анализа архитектур нейронных сетей, в частности, автоматическими системами. Вопросам применения предлагаемого подхода будут посвящены последующие статьи по этой теме.
2. Представление модульных сетей в виде направленных графов
Модульная сеть может быть описана с помощью некоторого ориентированного графа 0(У,Е), вершины Vе У которого соответствуют модулям сети, а ребра е е Е - связям между модулями.
Будем считать, что ребро графа e(v1 ,v2) соответствует всем связям между модулями v1 и v2. То есть, если модуль v имеет n входов, причем некоторые к входов соединены с выходами модуля v1, а остальные n — к с выходами модуля v2, то в v будут входить два ребра: e1(v1 ,v) и e2(v2,v). Аналогично, если выходы модуля v соединены со входами модулей v1 и v2, то из v будут выходить два ребра: e1(v,v1) и e2(v,v2). Путь и элементарный путь из вершины v1 в вершину v2 будем обозначать w(v1 ,v2) .
Введем в модульной сети два особых «виртуальных» модуля, представляющих собой входы и выходы всей модульной сети. Все входы модульной сети будем считать модулем входов, а все выходы - модулем выходов сети. Модули входов и выходов виртуальны в том смысле, что, в отличие от остальных модулей сети, не реализуют алгоритмов обработки данных.
По аналогии с сетями в теории графов входом или истоком (source) графа G будем считать вершину I, соответствующую виртуальному модулю входов сети. Вход сети определяется следующим условием: sjn(I) = 0, где sjn(I) - число входящих в вершину ребер. Выходом или
стоком (sink) графа будем называть вершину O, соответствующую виртуальному модулю выходов.
Для него справедливо утверждение sout(O) = 0, где sout(O) - число выходящих из вершины
ребер. Следует отметить, что при этом количество входов данного модуля, собственно, выходов модульной нейронной сети, может быть произвольным.
Для того чтобы ориентированный граф G мог рассматриваться как некоторая модульная сеть, он должен удовлетворять следующим условиям:
1) граф G - слабо связный, то есть неориентированный граф, соответствующий G -связный;
2) граф G не имеет кратных ребер;
3) в графе G существует единственная вершина вход I є V и любая вершина достижима из входа, то есть: "vє V : v Ф I ^ З w(I,v) и, следовательно, "vє V : v Ф I ^ sin(v) > 1;
4) в графе G существует единственная вершина выход O єV и выход достижим из любой вершины, то есть "vє V : v Ф O ^ З w(v,O) и, следовательно, "vє V : v Ф O ^ sout(v) > 1.
Последние два условия очевидны, если принять во внимание, что модульная нейронная сеть строится для обработки данных. Если сеть не удовлетворяет условию 3, то существуют модули, которые не получают входные данные. Условие 4 гарантирует, что результаты работы любого алгоритма, прямо или после обработки другими модулями, поступят на выход, то есть такой алгоритм не является излишним. Заметим, что с точки зрения графов, последние два условия гарантируют отсутствие «висящих» вершин.
В отличие от принятого в теории графов определения, будем рассматривать путь w из вершины a в вершину Ъ как множество вершин и соединяющих их ребер, не включая конечную вершину. Согласно такому определению, на рис. 2 можно выделить шесть путей:
w1 (а,Ъ) = {a;e1} ; w2(a,c) = {a;e1 ;b;e3} ; w3(a,c) = {a;e1 ;b;e2 ;b;e3} ; w4(Ъ,Ъ) = {b;e2};
н,5(Ь,с) = {Ь;е3} и (Ь,с) = {Ъ;в2;Ь;е3} . Заметим, что путь м>(а,Ь) = {а;ег;Ь;е2} не
существуют, поскольку вершина Ъ не может принадлежать пути по принятому определению. Аналогично, цепью будем называть элементарный путь (без самопересечений), не включающий конечную вершину. Соответственно, на рис. 2 можно выделить только четыре цепи: wl,^2,~м4 и н,5. Цепь w4 существует, поскольку начальная вершина включается.
e2
b
Как будет видно из дальнейшего, уточнение определения пути преследует следующую цель: если
рассматривать подграфы модульной сети как множества
п -и, вершин и дуг, то исключение конечной вершины в
Рис. 2. Пример циклов ^ н' 1 ^
определении пути позволяет использовать операцию разности без явного указания принадлежности вершин результирующему множеству. То есть, если имеется путь, представленный множеством вершин и дуг w(a,c) = {a;e1;b;e2}, то такой путь может быть представлен двумя непересекающимися подмножествами w1 (a,b) = {a;e1} и w2(b,c) = {b;e2} , каждое из которых также является путем согласно принятому определению.
Для дальнейшего изложения нам необходимо ввести два понятия: проекции одного модуля на другой P и степень неопределенности, или неопределенность модуля по входам U . Определение 1: Проекцией P(b,a) (projection) вершины (модуля) a е V на вершину (модуль) b eV будем называть такой ориентированный подграф графа G(V,E), который включает все возможные цепи w(b,a) из b в a:
P(b,a) = Uw(ba); "w(ba) = v2,K’vnvi = b>vn+i = a; V *vj ",j = 1 n, то есть в подграф входят все вершины и соответствующие ребра всех цепей из b в a, кроме вершины a, согласно принятому нами определению путей.
Одной из наиболее важных проекций является проекция произвольного модуля a на входы модульной сети I, которая, в соответствии с Определением 1, записывается как P(I,a) . Определение 2: Если каждой вершине vе V поставить в соответствие параметр t(v) такой, что t(v) = 1 в том случае, если выходы соответствующего модуля сети на данном шаге еще не вычислены, и равен нулю, если модуль уже посчитан, то неопределенностью (uncertainty) вершины a будем называть сумму
U(a) = Xt(v).
vе P(I,a)
При этом неопределенность модуля входов U(I) всегда равна нулю. Поскольку модуль входов виртуальный, то считаем, что его выходы всегда определены (вычислены).
Необходимость введения понятия «неопределенность» непосредственно следует из поставленных целей. Для проверки модульных архитектур на непротиворечивость и построение
e
a
с
последовательности работы алгоритмов (модулей) сети необходимо ввести критерий сравнения, какой из модулей должен быть посчитан раньше. Таким критерием может служить введенное понятие неопределенности.
Аксиома 1: Из двух модулей сети, при прочих равных условиях и если порядок счета модулей не определен специальными требованиями, первым должен быть посчитан модуль с меньшей неопределенностью.
Проиллюстрируем требование данной аксиомы на примере последовательного соединения модулей, показанного на рис. 3. В начале работы модульной сети выходы модуля I известны по определению, а выходы модуля а не определены. Тогда, согласно Определению 2, неопределенность модуля а равна нулю, а неопределенность модуля Ь равна единице. Следовательно, согласно Аксиоме 1, модуль а должен быть посчитан раньше модуля Ь , что для последовательного соединения модулей очевидно.
Рис 3. Схема последовательного соединения модулей
Необходимость Аксиомы 1 становится еще более очевидной для обучения модульной нейронной сети. Если по пути от входов к некоторой нейронной сети (модулю) Ь встречается необученный модуль (нейронная сеть) а, то обучение модуля Ь не имеет смысла, пока не обучена нейронная сеть а.
3. Циклы в модульных сетях
С точки зрения прикладных задач, циклы представляют особый интерес. Если исходные данные организованы в виде временных последовательностей, можно говорить о «рекуррентных» циклах. Кроме того, если входящие в цикл модули реализуют ассоциативные поля или другие алгоритмы, для работы которых требуется несколько итераций с одним входным вектором данных, то можно говорить об итерационных циклах. Таким образом, кроме различия в архитектурах, цикл может быть «рекуррентным» либо «итерационным».
Для описания рекуррентных циклов необходимо вводить понятия такта работы сети, для итерационных достаточно говорить о количестве «обходов» цикла, где под обходом цикла подразумевается однократный пересчет всех модулей, входящих в этот цикл. Обсуждение работы модульных сетей с временными последовательностями требует введения дополнительных определений и правил. Поэтому в данной работе ограничимся обсуждением общих определений типов циклов, возможных при разработках архитектур модульных сетей. Подробное исследование свойств таких циклов будет обсуждаться в последующих статьях. В дальнейшем везде, где рассматриваются вопросы построения очередей для установления порядка пересчета модулей в сети и алгоритмы построения очередей, предполагается, что речь идет об итерационных циклах.
3.1. Основные типы циклов и базовые определения
В первую очередь нам понадобится общее определение цикла в модульных сетях.
Определение 3: Циклом с начальной вершиной а будем называть такой ориентированный подграф Са(Уа,Еа) графа модульной сети 0(У,Е), который включает все возможные пути н,(а,а) из вершины а в саму себя:
Са(К,Еа) = и ™(а,а)’' "™(а,а) = ^ V ,к = а,У ^ = а.
В отличие от определения проекций, в определении циклов фигурируют пути, а не цепи. Введенное определение отличается от определения, принятого в теории графов, где циклом называют путь, для которого начальная вершина совпадает с конечной [5]. Определение 3 обобщает понятие цикла в том смысле, что оно включает все возможные пути вида н,(а,а). Не
трудно заметить, что циклы, согласно Определению 3, соответствуют сильно связанным
компонентам в орграфе и обладают очевидным свойством: Са IСЬ = 0 .
Необходимость определения цикла как
набора всех путей иллюстрируется архитектурой,
с!
представленной на рис. 4. Очевидно, что при пересчете модулей, входящих в цикл
Рис. 4. Схема простого цикла г
Ca :Va = \о,,Ъ,с,d}, прежде чем считать модуль
d, требуется посчитать оба модуля Ъ и с. Заметим, что такой же порядок счета требует и Аксиома 1.
Из определения цикла непосредственно следует, что виртуальные модули (входы и выходы) никогда не входят ни в один цикл, поскольку модуль входов не имеет входящих ребер, а модуль выходов - выходящих. Кроме того, согласно условиям, накладываемым на граф, представляющий модульную сеть, любой цикл обязательно имеет как входящие, так и выходящие внешние ребра. То есть такие ребра, которые связывают вершины цикла с вершинами, не принадлежащими этому циклу.
Для любого цикла в модульной нейронной сети можно выделить три группы особых вершин. Вершины, которые имеют входящие ребра от вершин, не принадлежащих этому циклу. Вершины, имеющие выходящие ребра, которые входят в вершины за пределами цикла. И вершины, выходящие ребра которых являются входящими ребрами начальной вершины цикла. Особый интерес представляют некоторые из перечисленных вершин. Например, из всех возможных циклов для анализа и работы с модульными сетями интерес представляют те, у которых начальная вершина является первой, в которую поступают данные от входов модульной сети.
Дадим формальное определение вершин, которые будут использоваться в дальнейшем. Для этого воспользуемся понятием длины пути d(w), которое в данном случае будем считать просто как число ребер в этом пути.
Определение 4: Начальной вершиной f (first) цикла C(V,E) будем называть такую вершину, для которой df = min min d(w). Конечной вершиной l (last) цикла будем называть такую
J vєV w=w(I,v)
вершину, для которой d(w(l,f)) = 1. Граничной вершиной t (terminal) будем называть такую вершину, для которой выполняются условия
t: (3 e(t,P),P £ V) & (v Vе V :P(f,t) с P(f,v) ^ $ e(v,g),g £ V), то есть t - самая дальняя от начальной вершина цикла, имеющая связь (связи) с не принадлежащими циклу вершинами.
Заметим, что приведенные определения не гарантируют единственность каждой из вершин. Тем не менее такое определение особых вершин позволяет провести дальнейшую классификацию циклов.
Введем определения для двух типов циклов, принципиально важных с точки зрения счета модульных сетей и рассмотрим некоторые из свойств таких циклов.
Определение 5: Обычным или обыкновенным циклом (ordinary cycle) с начальной вершиной a будем называть такой цикл Coa(Va,Ea) , для которого не существует ни одной пары вершин таких, что они принадлежат проекциям друг друга на вход, то есть
V V1 , V2 eVa:V1 е P(I,V2 ) ^ V2 £ P(I,V1 ) .
Перекрестным циклом (crossed cycle) с начальной вершиной b будем называть такой цикл Ccb(Vb,Eb), который содержит хотя бы одну пару вершин, входящих в проекции друг друга на вход, то есть
3 V1, ^2 е Vb:V1 е P(I,V2 ) & V2 е P(I,V1 ) .
Введение понятия обыкновенных циклов необходимо для установления порядка пересчета модулей в сети и в, первую очередь, чтобы отделить все возможные варианты триггерных схем (рис. 1). Нетрудно проверить, что цикл, изображенный на рис. 1, является перекрестным и содержит две начальные вершины, удовлетворяющие Определению 4.
Если обозначить множество всех возможных циклов с начальными вершинами, удовлетворяющими Определению 4, через W{Cf}, то для множеств обыкновенных и перекрестных циклов очевидны соотношения:
W{Cc} п W{Co} = 0; W{Cc} U W{Co} = W(Cf }. (1)
Обыкновенный цикл может быть представлен только единственным образом, в отличие от циклов общего вида, которые тождественны с точностью до выбора начальной вершины. Перекрестные циклы этим свойством не обладают.
3.2. Свойства циклов и дополнительные определения
Разработка правил для анализа архитектур модульных сетей автоматической системой существенно упрощается, если строить правила анализа на основе свойств, присущих графам модульных сетей. Общие свойства циклов будут подробно рассмотрены в следующей статье. Здесь же рассматриваются определения и свойства некоторых частных случаев, имеющих особое значение при проектировании модульных нейронных сетей, содержащих циклы. Рассматриваемые
частные случаи представляют самостоятельный интерес с точки зрения построения правил для пересчета таких сетей.
Определение б: Простым циклом будем называть такой обыкновенный цикл, для всех вершин которого любой замкнутый путь проходит через начальную вершину этого цикла. То есть цикл
Cof(Vf,Ef) простой, если V w(v,v):v є Vf ^ f є w(v,v) .
Заметим, что простой цикл может содержать более одного пути, как, например, на рис. 4. Утверждение 1: Для простых циклов Cof(Vf ,Ef ) °P(f,f) . То есть простой цикл совпадает с проекцией начальной вершины на саму себя.
Доказательство: Покажем, что для простого цикла все пути из начальной вершины в саму себя являются элементарными, то есть цепями. Пусть найдется хотя бы один не элементарный путь w( f, f ). Это означает, что существует вершина v, которая входит в этот путь хотя бы два раза: w( f,f) = {f ,...,v,...,v,...} . Следовательно, в цикле существует путь из этой вершины в нее же, который не содержит начальную вершину З w(v,v) е Cof : f ї w, что противоречит
определению простого цикла. Таким образом, в простом цикле все пути из начальной вершины в нее же являются элементарными и, по определению, образуют проекцию. То есть, простой цикл совпадает с проекцией начальной вершины на саму себя.
Определение 7: Триггерным циклом (trigger cycle) будем называть такой цикл, который содержит хотя бы две вершины a и Ъ , имеющие равные кратчайшие пути от входов. То есть цикл CT(V,E) триггерный, если З и,Ъ є V : min(da) = min(dЪ).
w(I,a) a wiIM)
Тривиальный пример такого цикла представлен на рис. 1.
3.2.1. Пересечения простых циклов
Самостоятельный интерес представляют некоторые виды циклов, которые можно представить как совокупность пересекающихся простых циклов. Такое представление существует, если вершины и ребра исходного цикла можно разбить на два или более множества, удовлетворяющих четырем условиям:
1) каждая вершина и ребро исходного цикла принадлежит хотя бы одному из этих множеств;
2) каждое множество вершин и ребер образует простой цикл, если удалить все ребра исходного цикла, которые не принадлежат данному множеству;
3) каждое множество имеет непустое пересечение не менее чем с одним другим множеством (имеет общие вершины и ребра);
4) ни одно из этих множеств не является подмножеством другого.
Условие, что каждое из этих множеств вершин и ребер должно представлять собой цикл, является принципиальным с точки зрения анализа модульной сети автоматической системой. При несоблюдении данного условия и использовании методики замещения циклов «метавершинами» можно получить непредсказуемые результаты. Методика замещения обсуждается в последующих статьях.
Ориентированный подграф, образованный общими вершинами и ребрами, будем называть пересечением циклов. Таким образом, если цикл С представим в виде множества пересекающихся простых циклов Со1,...,Соы , то
С = Со1 и... и Сом; "і є [1,Ы] $ і Ф і: {Сог П Соі Ф 0 | Сог ё Со}. & Со}. ё Сог}
Пример цикла, который можно представить в виде пересекающихся простых циклов, показан на рис. 5, где 5.1 исходный цикл, а 5.2 и 5.3 иллюстрируют два возможных разделения на простые циклы, объединение которых дает исходный цикл. Пересечения циклов выделены жирными линиями.
Не всякий цикл можно представить в виде пересечения простых циклов. Например, тривиальный триггерный цикл (рис. 1) не имеет такого представления. Кроме того, в некоторых случаях возможно только единственное представление в виде пересечения простых циклов. Пример такого цикла показан на рис. 6, где жирными линиями выделены общие вершины и ребра.
Простые циклы на рис. 6 будут представлены вершинами У1 = {а,ё,в,/} и
У2 = {Ъ,ё,в,/}. Очевидно, что при любом другом выделении вершин в получаемые простые циклы не попадут одно или два ребра исходного цикла, что не удовлетворяет условиям представления в виде пересекающихся простых циклов.
1)
2)
3)
Рис. 5. Выделение простых циклов
Не любые пересечения простых циклов представляют интерес с точки зрения анализа модульных нейронных сетей. Рис. 5.2 иллюстрирует случай, когда произвольное разбиение на простые циклы приводит к нарушению Аксиомы 1. Действительно, с точки зрения выполнения Аксиомы 1 неважно, который из модулей а или Ь будет посчитан раньше. Однако прежде чем
считать модуль /, должны быть посчитаны модули ё и е. Чтобы конкретизировать полезные виды пересечений простых циклов нам понадобятся определения «сцепленных» и «вложенных» циклов.
а а
Я
Ь е
о
Рис. 6. Цикл, имеющий единственное представление в простых циклах Определение 8: Сцепленными циклами будем называть такие простые циклы Со1 и Со2, которые имеют одну или более общих вершин. Причем, если для двух общих вершин а и Ь вершина а принадлежит проекции вершины Ь на начальную вершину любого из этих циклов, то проекция Р(а,Ь) целиком принадлежит каждому из циклов Сог и Со2. То есть:
"а,Ь : а,Ь є Сох,Со2 а є Р(/,Ь) ^ Р(а,Ь) с Сох & Р(а,Ь) с Со2, где / - начальная вершина любого из циклов Сох или Со2.
Данное определение легко обобщается на случай пересечения любого количества простых циклов. Определение 9: Вложенными циклами будем называть такие сцепленные циклы Сох и Со2, для которых начальная /2 и граничная ї2 вершины цикла Со2 принадлежат циклу Сог, при этом цикл Сог удобно называть внешним, а Со2 - внутренним циклом.
1)
2)
3)
Рис. 7. Типы циклов: 1-3 обыкновенные, 1 - простой, 2-3 сцепленные, 3 -вложенные, 4 - триггерный
Примером сцепленных циклов является цикл, показанный на рис. 5. Однако чтобы рассматривать данный цикл как случай сцепленных простых циклов согласно Определению 8, допустимо лишь разделение, показанное на рис. 5.3, то есть сцепленными являются простые циклы, содержащие вершины Ух = {а,с,ё,е, /} и У2 = (Ъ,е,ё,е,/}.
I
Как для сцепленных, так и для вложенных циклов, не важно, в проекцию какой из множества возможных граничных вершин попадают общие вершины пересекающихся циклов. Рис. 7 иллюстрирует простейшие архитектуры различных типов циклов.
Введение понятия сцепленных циклов в первую очередь связано с возможностью представления Ассоциативно-Проективных Нейронных Сетей (АПНС) в виде модульной нейронной сети, где каждый модуль представляет собой ассоциативное или проективное поле [6]. Поскольку в АПНС предусмотрена как возможность композиции, так и декомпозиции, то сцепленные циклы и предоставляют возможность описать распространение возбуждения нейронной сети в обе стороны.
В свою очередь вложенные циклы позволяют моделировать, например, рекуррентные циклы, включающие итеративные ассоциативные сети.
3.2.2. Основные свойства сцепленных и вложенных циклов
Теорема 1: Если начальная вершина одного из сцепленных циклов принадлежит другому, то такие циклы образуют обыкновенный цикл.
Доказательство: Чтобы цикл был обыкновенным, необходимо показать, что в цикле не существует никаких двух вершин, принадлежащих проекциям друг друга на входы.
Пусть существует цикл Су, образованный двумя сцепленными простыми циклами
Соу1(Уу 1 ,Еу1) и Со у2(Уу2,Еу2) , причем начальная вершина второго цикла принадлежит первому, и 0(У8,Ег ) = Соу1 I Соу2 - их пересечение. Очевидно, что /2 е G и вершина /1 является начальной вершиной цикла Су, поскольку имеет минимальное расстояние от входов.
В сцепленных циклах Су1 и Су2 можно выделить два набора вершин: вершины, принадлежащие пересечению, и вершины, принадлежащие только одному из этих циклов. Пусть пересечение содержит N вершин gn, имеющих выходящие ребра к вершинам циклов Су1 и Су2, не принадлежащим пересечению. Поскольку (см. Утверждение 1) простые циклы представляют собой набор цепей, то циклы Су1 и Су2 можно представить в виде
Проекция Р' соответствует случаю, когда цикл С у1 содержит замкнутые цепи, не проходящие через пересечение. Цикл Су 2 не может содержать таких цепей, поскольку в простом цикле все цепи проходят через начальную вершину по определению, а /2 принадлежит пересечению G .
Проекцию Р' можно не рассматривать, поскольку, если она существует, то цикл Су1, в свою очередь, можно представить как пересечение простых циклов Р' и Р”, и результаты,
Соу 1 = Р(у 1, у 1) = и Р'( у 1, у 1);
V п=1 J V П=1 J
J
СоГ2 = Р(/2,/2) = IP(gn,у2) \Р(у2,gn) .
J
полученные для пересечения Р” с Су2, распространить на все случаи пересечений. Так как
/2е О, то по определению сцепленных циклов, проекции Р(/2^п) целиком принадлежат пересечению. Тогда верно следующее:
( N Л ( N Л
Ю Р(У 2-еп) ° О с[и Р(/ 1'8п) .
V п=\ ) V п=\ )
Причем множества равны только в том случае, если начальные вершины совпадают.
Тогда сцепленный цикл Су можно представить в виде
( N Л ( N Л ( N Л
С = | иР(8п-/2) иI иР(«п-А) иI иР(/\■ 8п)
V п=\ ) V п=\ ) V п=\
(2)
Причем
ґ N \ Ґ N \ Ґ N
иР<и„/2) п|иР<«,./1) П|иР(/'■ Н,)
У V п=1 у
0.
У
\п=\ у \п=\ у \п=\
Каждая из этих скобок описывает подмножество цепей, целиком принадлежащих простому циклу. По определению, простой цикл является обыкновенным и не содержит ни одной пары вершин, принадлежащих проекции друг друга на вход, а, следовательно, и подмножества этих циклов не содержат таких вершин. То есть сцепленные циклы образуют обыкновенный цикл, если начальная вершина одного из них принадлежит другому.
Следствие 1.1: Если начальные вершины сцепленных циклов совпадают, то такие циклы представляют собой один простой цикл.
Доказательство: По определению простого цикла, все замкнутые цепи должны проходить через начальную вершину. Если в сцепленных циклах начальные вершины совпадают /\ = /2 = / , то, согласно (2), сцепленные циклы представимы в виде
( N Л ( N Л ( N Л
С = |иР\(8п-/) и|иР2(£п. /) и\иР(/.И„) ,
V п=\ ) V п=\ ) V п=\ )
где последняя скобка описывает участки цепей, принадлежащие пересечению О , Р\ описывает
участки цепей, принадлежащие только циклу Су\, и Р2 - только циклу Су2 соответственно. То
есть любая замкнутая цепь включает хотя бы одну вершину пересечения, а, следовательно, и общую начальную вершину.
Следствие 1.2: Если пересечение двух простых циклов содержит цикл, то этот цикл простой и начальные вершины пересекающихся циклов совпадают:
Се с Соу\ п Соу 2 ^ е = у \ = у2 & у е М>(у, V) "V еУу. Доказательство: Пусть пересечение О простых циклов СоГ1 и С у2 содержит цикл
Сг с СОу\ П Сог2, который является подмножеством вершин и ребер каждого из них. Поскольку
'/2
Сй/1 простой, то все замкнутые пути проходят через начальную вершину /1, и эта вершина
является начальной и для цикла Cg , поскольку имеет минимальное расстояние до входов, то есть
g = f 1. Аналогично, для цикла Cf 2 имеем g = f 2 , и, следовательно, начальные вершины
пересекающихся циклов совпадают f 2 = f 1.
Согласно Следствию 5.1, пересечение циклов с совпадающими начальными вершинами образует простой цикл, тогда и его подмножество Cg является простым циклом.
Утверждение 2: Если два простых цикла сцеплены и ни одна из начальных вершин не принадлежит пересечению этих циклов, то такие сцепленные циклы образуют перекрестный цикл.
Доказательство этого утверждения следует из общих свойств обыкновенных циклов и будет приведено в следующей статье. Заметим, что из Теоремы 1 непосредственно следует, что вложенные циклы образуют один обыкновенный цикл.
4. Выводы
В статье приведены новые теоретические результаты, полученные на основе представления модульных нейронных сетей в виде направленных графов. Особое значение предлагаемое описание имеет для систем автоматического анализа архитектур нейронных сетей и, в частности, систем автоматического проектирования. Наиболее интересные результаты относятся, к архитектурам модульных сетей, содержащих циклы. Очевидно, что для счета приведенных архитектур требуются различные допущения о правилах и порядке обхода циклов. В качестве основы таких правил могут быть использованы свойства предложенных типов циклов.
В модульных нейронных сетях циклы различаются не только по типам архитектур, но также по типам обрабатываемых данных и используемым алгоритмам нейронных сетей. Рассмотренные в статье виды циклов позволяют учесть специфику обрабатываемых данных и нейросетевых алгоритмов в виде соответствующих модульных архитектур.
Предложенная теория была успешно использована в подсистеме автоматического анализа модульных архитектур САПР МНН [2]. Общие свойства циклов, алгоритмы обнаружения и анализа циклов, алгоритмы построения очередей счета модулей в сетях и другие вопросы практического применения предложенной теории будут изложены в последующих публикациях.
СПИСОК ЛИТЕРАТУРЫ
1. Галинская А. А. Модульные нейронные сети: обзор современного состояния разработок // Математические машины и системы. - 2003. - № 3, 4. - С. 87 - 102.
2. Резник А.М., Куссуль М.Э., Сычев А.С., Садовая Е.Г., Калина Е.А. Система проектирования модульных нейронных сетей САПР МНС // Математические машины и системы. - 2002. - № 3. - С. 28 - 37.
3. Kussul M.E., Galinskaya A.A. Comparative study of modular classifiers and its training // Proc. of the X-th International Conference “Knowledge - Dialog - Solution” KDS 2003. - Varna, Bulgaria. - 2003. - 16-26 June. -P.168 - 174.
4. Галинская А.А. Архитектура и обучение модульных классификаторов для прикладных задач // Математические машины и системы. - 2003. - № 2. - С. 77 - 86.
5. Дистель Р. Теория графов. - Новосибирск: Изд-во Ин-та математики, 2002. - 336 с.
6. Куссуль Э.М. Ассоциативные нейроподобные структуры. - Киев: Наукова думка, 1992. - 143 с.