Научная статья на тему 'Эволюционная генерация сетей на основе кодирования связей'

Эволюционная генерация сетей на основе кодирования связей Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
65
71
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Эволюционная генерация сетей на основе кодирования связей»

Слепцов Н.В.

ПГУ,Пенза

ЭВОЛЮЦИОННАЯ ГЕНЕРАЦИЯ СЕТЕЙ НА ОСНОВЕ КОДИРОВАНИЯ СВЯЗЕЙ

Использование эволюционных и генетических алгоритмов (ЭА и ГА) [1] для генерации сетей рас-

смотрено в ряде работ, исследующих возможностиэволюционных механизмов для представления, генерации и развития представлений вычислительных структур на основе графо - сетевых отображений.

Наиболее интересны с практической точки зрения здесь были работы, анализирующие применение эволюционных методов создания и оптимизации искусственных нейронных сетей [3,4]. В частности, известны подходы по эволюционной настройке весов для неизменной топологии, изменение количества узловс полным отображением структуры сети в хромосоме, рассмотрение сети как множества правил функционирования, а не соединений [2] . Можно отметить применение разновидностиэволюционных методов - генетического программирования (ГП)для создания нейросетей, например, прямым кодирование-музлов и связей, а также клеточные методы кодирования сетей [3].

Последние применяют кодированиев хромосоме дерева операторов узлов сети; развитие сети основывается на использованиикаждым оператором своего узла-предка, модификации его и, возможно, создание сетевых узлов и связей. Операторы выполняются в соответствии с фиксированными правилами обхода дерева. Применяются два вида операторов - терминальные - не имеющие потомков, и нетерминальные - имеющие потомство.По окончании процесса модификации сети нетерминальные операторы перемещаются из своего узла в один из узлов потомков для его последующей модификации. Обычно развитие сети начинается с одного узла.

Преимущества клеточного кодирования: во - первых, оно позволяет описывать все возможные ИНС; во-вторых, оно основано на модульном принципе - специальные операторы многократно используют одни и те же группы правил при развитии сети, в - третьих, применяются генотипы, аналогичныеструкту-рамдеревьевв ГП для получения фенотипов ИНС неограниченного размера и для реализации механизмов кроссовера между сетями с различной топологией.

Некоторые недостатки клеточного кодирования могут быть сведены к следующим. Фиксированный порядок обхода хромосоми жестко определенный порядок выполнения операторовприводит к формированию деревьев, фенотип потомков которых очень существенно отличается от фенотипа предков, что для ряда приложение осложняет поиск в пространстве фенотипов. Другой недостаток связан с явной ориентацией на развитие узлов часто в ущерб развитию связей в сети. Наконец, кодировкасоздает сети с высоким уровнем связанности - что приемлемо для ряда сетей прямого распространения, сетей Хопфилда, но в большинстве случаев является недостатком.

В некотором смысле альтернативой клеточному кодированию является подход, который может быть назван кодированием связей. Подход принципиально основан на применении операторов, действующих не на узлы сети, а на связи, что избавляет от основного недостатка клеточного кодирования и улучшает комбинационную динамику процесса. Для ряда приложений является предпочтительной именно ориентация на оптимальное число связей сети. Наконец, и кодирование связей, и клеточное кодированиеобеспечи-вают генерацию полного множества возможных графов, являются в этом смысле полными и поэтому показывают преимущества в различных областях приложений.

Принципы кодирования связей

Кодирование связей основано на применении хромосомы древовидного типа, фенотипическим представлением которой является ориентированный граф, включающей функции либо метки , связанные с конкретными узлами и связями. Отличия от клеточного кодирования:

Модификация графа основана на изменении связей, а не узлов;

Принцип развития сети различен - при клеточным кодировании сеть начинает с развития в ширину -с развития узлов, при кодировании связей развитие идет в глубину - первоначально формируются новые связи. Обеспечивается независимость отпорядка выполнения - действия над предками выполняются всегда раньшеманипуляций с потомками.

Кодирования связей предполагает хранение данные в виде деревьев, аналогично обычному хранению данных в ЭП и ГП в виде хромосом. Узлами каждого дереваявляются операторы, действующие на связи в фенотипа графа.Оператор в качестве исходной получает от предка одну связь, возможно с некоторыми дополнительными данными (обычно - со стеком узлов). В зависимости от своего типа, он изменяет или удаляет или саму связь, или ее начальные либо конечные узлы. В результате могут появиться новые связи и узлы. Если исходная связь не удалена, оператор передает и ее, и все новые связи потомкам в дереве кодирования, по одной связи для потомка. В отличие от ГП операторы выполняются в предопределенном порядке, а именно, операторы - предки выполняются сначала, что исключает влияние потомков на предков, как часто происходит при анализе деревьев символьных выражений в ГП. Например, рассмотримэлементарный оператор дублирования - рисунок 1. В дереве кодирования он имеет двух потомков, от предка получает единственную связь E(a,b), a - конец связи, b - начало.Из E(a,b) оператор формирует дополнительную связь F(a,b), и обе передаются операторам потомков для дальнейшей модификации: Е(а,Ь) - соответственно левому, F(a,b) - правому потомку.

•> предок б) . е >.

Удвоить

Левый Правый в) потомок потомок

Рисунок 1 - Действие оператора Удвоить а. Положение оператора относительно предка и потомков, б. Начальная связь к Удвоить от предка, в. Передача связей потомкам

Операторы для кодировании связей можно разделить на две части. Первая включает операторы, изменяющие топологию графа добавлением\удалением связей\узлов. Вторая связывает с узлами\связями семантику: маркирование, назначение функций преобразования и т. д.

Рассмотрим простейший набор базовых операторов, достаточный для построения недерминированного конечного автомата (НКА). Каждый из них от предков получает только одну связь и передает потомкам в

большинстве случаев две.Выполнение моет проводиться в любом порядке, при условии, что операторы -предки выполняются раньше порожденных потомков. Операторы топологии графа:

Оператор Число потомков Действие

Удвоение 2 Создать связь F (a, b) .

Ядро 2 Создать узел с и связьF(b,c) .

Расщепление 2 Создать узел с. Изменить E на E (a, c) .

Создать связь F (с, b).

Создать петлюF (b, b).

1 Изменить E на E (b, a) .

Приведенных операторов достаточно для разработки топологии НДА, достаточно для распознавания любого регулярного выражения. Для возможности представления полного НДА, необходимы семантические операторы, определяющие начальное\конечное состояние автомата и разметку связей маркерами.

Цикл 2 Обратить

Рисунок 2Дерево кодирования Семантические операторы ОператорЧисло потомков Действие

S 1 Назначить начало E (a, b) (узел b)в качестве начального.

A 1 Назначить начало E (a, b) (узел b) в качестве конечного.Допустимо использовать одно-

временно и в качестве начального для последующих.

1 0 Пометить связь 1. (Активизируется только по «1»).

0 2 Пометить связь 0. (Активизируется только по «0»).

E1 Пометить связь £ . (Может быть активизирована без маркера)

На рисунок 2 представлено дерево кодирования хромосомы для НДА, обрабатывающего регулярное выражение ((0|1) *101) . Используя Лисп - подобную нотацию, его можно записать как (Удвоение (Обратить (Цикл e (S 0))) (Ядро 1 (Расщепление 0(А 1)))). На рисунок 3. показано развитие НДА из такой хромосомы .

о о

Рисунок ЗРазвитие НДА от кодировки рисунок 2. 1. Начальная связь. 2. После применения Удвоения

3. Обращение 4. Цикл, S, е, и 0. Без затенения - начальное состояние . 5. Ядро и 1. 6. Расщепление, 0, A, и 1. Темный узел - принимающее состояние

Дополнительно в качестве операторов, помимо базовых, могут быть введены такие, как Расщепление узлов, Слияние узлов, Ограничить, Модульные операторы, операторы работы со стеком. Не останавливаясь на описании их действия, отметим основные преимущества предлагаемого кодирования.

И кодирование связей, и клеточное кодированиеуспешно описывают произвольные графы. Однако, эти типы кодирования сильно отличаются по предпочтениям при эволюционном поиске: клеточное кодирование обеспечивает предпочтительное развитие графов с высоким показателем отношения связь/узел и чтобы удалить большинство связей приходится выполнять сложные манипуляции, связанные с увеличивает и последующим удалением узлов. Кодирование связей, напротив, отдает предпочтение графам с низким показателем отношения связь/узел, соответственно, создание насыщенных соединений требует сложной комбинации операторов.

Размер кодировок. Чаще всего кодирование связей дает больший размер по сравнению с клеточным, поскольку манипуляция связями всегда требует по крайней мере одного оператора на связь. Однако, если маркеры связей должны быть закодированы четко отличающимся образом (например, аналогично весам нейросети), размеры обеих кодировокблизки, поскольку и клеточное кодирование должно использовать для маркировки связей один или более операторов. Дополнительно, время создания фенотипа определяется размером графа,а не размера кодировки.

И наконец,степеньиспользования стандартных блоков при конструировании сети. Ограничением клеточного кодирования в этом смысле является более разрушительный механизм действия оператора кроссовера. Предлагаемый подход ограничивает действие данного оператора и характеристики ранее полученных подсетей сохраняются в большей степени.

ЛИТЕРАТУРА

1. Емельянов В.В., Курейчик В.В., Курейчик В.М. Теория и практика эволюционного моделирования . М.: ФМЛ, 2003.

2. Chambers, L.D. Practical handbook of genetic algorithms v 3 Complex coding systems 2 ed/ L.D. Chambers.- Chapman, Hall, , 2001.-520p.

3. Gruau, F. 1992. Genetic Synthesis of Boolean Neural Networks with a Cell Rewriting Developmental Process. In Proceedings of the International Workshop on Combinations of Genetic Algorithms and Neural Networks (COGANN-92), L. Darrell Whitley and J. David Schaffer, editors. 55-74.IEEE Press.

4. Kitano, H. 1990. Designing Neural Networks Using a Genetic Algorithm with a Graph Generation System. InComplex Systems 4. 461-476.

i Надоели баннеры? Вы всегда можете отключить рекламу.