РАЗДЕЛ 2
Графы модульных нейронных сетей
В последнее время модульные нейронные сети находят все более широкое применение
для решения сложных прикладных задач. Растет количество программных
нейрокомпьютеров, позволяющих моделировать модульные сети [90-93]. Особое
значение приобретает построение систем автоматического проектирования модульных
нейронных сетей. При использовании САПР систем для проектирования и работы с
модульными нейронными сетями необходимо обеспечить средства контроля
архитектур, создаваемых пользователями и предоставить механизмы управления
потоками данных в сетях.
Анализ и контроль модульной сети подразумевают наличие некоторой ее
математической модели, которая бы позволяла строить алгоритмы проверки
архитектур на непротиворечивость, вводить правила разрешения возникающих
противоречий, строить алгоритмы маршрутизации потоков данных в сети. В работе
[13] предложен подход к моделированию модульных нейронных сетей на основе
теории графов. В данном разделе будет дано дальнейшее развитие и конкретизация
предложенной модели.
Модульная сеть может включать в себя как модули (алгоритмы), параллельно
обрабатывающие входные данные, как, например, сети локальных экспертов [6], так
и модули, обрабатывающие данные последовательно, друг за другом [60]. Кроме
того, возможны архитектуры модульных сетей, когда на вход модуля поступают
данные, уже обработанные этим модулем, то есть архитектуры модульных сетей
допускают наличие циклов.
Архитектуры с циклическими связями возникают при создании различных систем
управления [94-96], например, использовании систем типа "адаптивной критики"
[97,98]. Работа с временными последовательностями часто подразумевает наличие в
системе модулей с обратными связями [99]. Некоторые нейропарадигмы, например,
такие, как рекуррентные сети [100-103], сети теории адаптивного резонанса (ART)
[104,105] или двусторонняя ассоциативная память [106-108], позволяют
представление в виде одного или нескольких модулей, имеющих циклические связи.
Примеры некоторых модульных архитектур с циклическими связями приведены на рис.
2.1.
Рис. 2.1. Примеры модульных архитектур с циклическими связями: а) система
управления с нейроэмулятором и нейроконтроллером; b) система адаптивной
критики; с) система ARTMAP с учителем
В отсутствие циклов порядок пересчета модульной сети очевиден. В случае
использования циклов, если порядок работы модулей не определен условиями
решаемой задачи, возможно возникновение противоречий. Примером такого
противоречия может служить триггерная схема соединения модулей, показанная на
рис. 2.2. Результат работы такой сети будет различным в зависимости от того,
какой из алгоритмов обработки данных b или c был применен первым, либо они
применялись параллельно.
Определение наличия и разрешение противоречий в модульной архитектуре является
важной задачей использования модульных нейронных сетей. Особое значение эта
задача приобретает при разработке интерактивных средств моделирования модульных
сетей, таких как САПР МНС [12]. Система проектирования должна автоматически
определять и запрещать создание противоречивых архитектур или требовать
разрешения противоречий пользователем.
Представление модульных сетей в виде ориентированных графов
Модульная сеть может быть описана с помощью некоторого ориентированного графа ,
вершины которого соответствуют модулям сети, а ребра – связям между модулями
[109-112]. Будем считать, что ребро графа соответствует всем связям между
модулями и . То есть, если модуль v имеет n входов, причем некоторые k входов
соединены с выходами модуля , а остальные n-k с выходами модуля , то в v будут
входить два ребра . Аналогично, если выходы модуля v соединены с входами
модулей и , то из v будут выходить два ребра: . Путь и простой путь (цепь) из
вершины в вершину будем обозначать .
Введем в модульной сети два особых «виртуальных» модуля, представляющих собой
входы и выходы всей модульной сети. Все входы модульной сети будем считать
модулем входов, а все выходы – модулем выходов сети. Модули входов и выходов
виртуальны в том смысле, что, в отличие от остальных модулей сети, они не
реализуют алгоритмов обработки данных.
Входом или истоком (source) графа G будем считать вершину I, соответствующую
виртуальному модулю входов сети. По аналогии с теорией графов, вход сети
определяется следующим условием: , где - число входящих в вершину ребер.
Выходом или стоком (sink) графа будем называть вершину O, соответствующую
виртуальному модулю выходов. Для него справедливо утверждение , где – число
исходящих из вершины ребер. Следует заметить, что при этом количество выходов
собственно модульной нейронной сети может быть произвольным.
Для того, чтобы ориентированный граф G мог рассматриваться как некоторая
модульная сеть, он должен удовлетворять следующим условиям:
граф G – слабо связный, то есть неориентированный граф, соответствующий G,
связный;
граф G не имеет кратных ребер;
в графе G существует единственная вершина вход , и любая вершина достижима из
входа, то есть , а значит,
в графе G существует единственная вершина выход , и выход достижим из любой
вершины, то есть , а значит, .
Последние два условия очевидны, если принять во внимание, что модульная
нейронная сеть строится для обработки данных. Если сеть не удовлетворяет
условию 3, то существуют модули, которые не получают входные данные. Условие 4
гарантирует, что результаты работы любого алгоритма прямо или после обработки
другими модулями поступят на выход, то есть такой алгоритм не является
излишним.
В отличие от общепринятого в т