8Ш УДК 004.032.26 Д.Р. Шварц ЦНИИ РТК, г. Санкт-Петербург, Россия В данной работе рассматривается возможность применения эволюционного алгоритма для поиска параметров нейронной сети. Поиск параметров нейронной сети – это задача оптимизации многоэкстремальной функции. В данной работе реализована программная модель эволюционного поиска параметров различных нейронных сетей, также произведена модификация генетического алгоритма с целью повышения его устойчивости (давать стабильный результат) и скорости. Сегодня все больше внимания уделяется такому новому направлению, как эволюционная инженерия. Области ее применения очень обширны. Эволюционная инженерия приходит на помощь разработчику или исследователю, позволяет независимо от типа задачи оптимизации использовать единый подход к ее решению. В последнее десятилетие в мире бурно развивается новая прикладная область математики, специализирующаяся на искусственных нейронных сетях (НС). Актуальность исследований в этом направлении подтверждается массой различных применений НС: автоматизация процессов распознавания образов и адаптивное управление, аппроксимация функционалов и прогнозирование, создание экспертных систем и организация ассоциативной памяти и многое другое. С помощью НС можно, например, предсказывать показатели биржевого рынка, распознавать оптические и звуковые сигналы, строить самообучающиеся системы. Широкий круг задач, решаемый НС, не позволяет в настоящее время создавать универсальные, мощные сети, вынуждая разрабатывать специализированные НС, функционирующие по разным алгоритмам. Существуют классические модели работы НС, каждая из них имеет свою специфику, область применения и методы обучения. Поэтому зачастую при разработке НС для решения неклассической задачи требуется специалист в области НС, который был бы способен модифицировать или создать свою модель НС и методы ее обучения. Такой подход может потребовать большой затраты сил. Для того чтобы НС была эффективна, требуется анализ характера входных данных, с которыми предстоит работать НС. Если характер входных данных изучен, можно с некоторой уверенностью говорить, что примененная модель будет эффективна. Существует проблема переобучения, или схождение в локальный минимум, при котором обучение останавливается, а ошибка обученной сети не удовлетворительна. Что, если задачу поиска (выбора) работоспособной модели решать не самостоятельно, а с помощью эволюционного алгоритма, в процессе чего будут вырабатываться сети, способные решать поставленную задачу. В данной работе рассматривается модель эволюции сетей прямого распространения сигнала. Работа не ставит перед собой задачу создать новые методы обучения сетей данного класса они су- 502 «Искусственный интеллект» 4’2003 Эволюционная адаптация искусственных нейронных сетей 8Ш ществуют и дают при правильном обращении хорошие результаты. Эта работа ставит перед собой задачу о возможности применения эволюционного алгоритма для поиска параметров НС. В данной работе рассматриваются нейронные сети типа рис 1. Рисунок 1 – Исследуемые нейронные сети Параметрами нейронной сети будут являться весовые коэффициенты, вид активационной функции, параметр активационной функции. Вся информация о параметрах НС хранится в хромосоме, состоящей из группы генов. Каждый ген кодирует свой параметр «признак». Кодирование происходит в хэммининговом пространстве. Рисунок 2 – Пример нейронной сети Для удобства рассмотрим кодирование сети на примере. На рис. 2 представлена типовая сеть прямого распространения сигнала. В общем случае она может иметь любую конфигурацию. «Штучний інтелект» 4’2003 503 Шварц Д.Р. 8Ш Хромосома нейронной сети (рис. 3) состоит из областей AREAi, каждая из которых кодирует свой слой нейронной сети. AREA1 кодирует первый слой, AREA2 кодирует второй и так далее. Каждая AREA, в свою очередь, состоит из генов, которые, в свою очередь, кодируют параметры сети. Хромосома нейронной сети Hr= AREA1 AREA1 вес Код нейрона AREA2 AREA3 AREA4 Часть хромосомы, кодирующая слой Область параметров активационной функции 2 гена Вся область Рисунок 3 Каждая секция одной AREA кодирует параметры одного нейрона. 10110101 00101101 01001011 01010010 11010100 10 1101010 Ген, кодирующий вес w1 Ген (вес) Тип активационной функции Параметр функции Рисунок 4 – Участок хромосомы, кодирующий один нейрон 504 «Искусственный интеллект» 4’2003 Эволюционная адаптация искусственных нейронных сетей 8Ш Длина всех генов (рис. 4) может варьироваться от 1 бита до 32 бит. Тем самым можно задавать точность поиска. Тип активационной функции задается в виде таблицы соответствия (табл. 1). В данной работе мы будем использовать 6 функций. Аналогично можно задавать разные модели работы нейрона. Таблица 1 – Типы активационных функций Значение гена Тип активационной функции 1 1 e xa 0, 1 f ( x, a ) 2 f ( x , a ) sin( ax ) 3 f ( x, a) th(ax) 4 f ( x, a) abs( xa) 5 f ( x, a ) x 2 Таблицу можно легко дополнять. Значение гена 0,1 соответствует одной и той же функции. В результате для нейронной сети (рис. 2) можно подсчитать размерность пространства поиска. NDIM ((3 1) 4 2 4) ((4 1) 3 2 3) ((3 1) 4) 2 4) ((4 1) 3 2 3) 42 48 90 Размерность задачи – 90. 14 генов кодируют типы активационных функций (42 бит), 14 генов кодируют параметры активационных функций (224 бит), 62 гена кодируют веса 992 бита при условии, что длина гена 16 бит – 1258. Это далеко не придел. Возможности программы позволяют закреплять отдельные гены в статическом значении, устанавливать для каждого гена вероятность мутации, уровень и т.д. В процессе разработки метода оказалось, что стандартный генетический алгоритм недостаточно эффективен, получаемые результаты были непрогнозируемыми, каждый пуск давал разные локальные минимумы и только на частных задачах вел себя устойчиво (давал постоянный результат). Автором данной работы были разработаны новые дополнительные принципы, которые позволили повысить эффективность в несколько раз [1]. Уверенность придает еще и сравнение со многими программными реализациями генетических алгоритмов (даже с коммерческими аналогами). Введено понятие «глубина мутации». При высокой глубине мутации 1 в процессе мутации участвуют все биты, кодирующие отдельный ген. При 0.5 участвует в мутации только младшая часть. Глубина мутации может варьироваться 0 до 1. По аналогии с (schema) [2] глубина мутации задает «объем» в пространстве поиска генов. Глубина мутации имеет несколько дисциплин – постоянную, убывающую, периодичную; с помощью выбора той или иной дисциплины можно управлять уточнением найденных решений в процессе эволюции. На рис. 5 представлен пример расположения популяции в ландшафте целевой функции. При глубине мутации 1 в процессе «Штучний інтелект» 4’2003 505 Шварц Д.Р. 8Ш мутации любая особь может перескочить в любую точку на поверхности целевой функции. При уменьшении ГМ разброс особей уменьшается. Целевая F(X) Глубина мутации популяция X Рисунок 5 – Пример расположения популяции При больших популяциях становится накладно производить большое количество вычислений целевых функций, хотя эффективность при больших популяциях значительно выше. Для малой популяции мутация может привести к выбросу из оптимальной точки. Эту вероятность можно уменьшить путем уменьшения вероятности мутации, однако это может сильно повлиять на скорость схождения метода. Для этого автором были реализованы две дополнительные модификации – принцип лидера и принцип регенерации популяции. Принцип лидера предполагает то, что лучшая особь в процессе мутации остается нетронутой и в итоге способна удерживаться в найденной точке и удержать всю популяцию. Однако такое лидерство имеет свои недостатки, например, эволюционный процесс может быть сильно закреплен вокруг одной особи, а для появления в другой точке новой особи, способной конкурировать с лучшей особью, требуется либо сразу в процессе мутации «перескочить» к другому решению, либо дать возможность появиться такой особи. Для этого используется принцип регенерации популяции. Идея его в том, что когда эволюционный процесс приостанавливает свое развитие, то есть дисперсия ошибки всей популяции становится меньше некоторого в течение длительного времени T, то лучшая особь сохраняется, а вся популяции инициализируется заново. n p (t ) (x i m p )2 . i 0 Такой процесс повторяется до останов. Пусть требуется, чтобы нейронная сеть (рис. 6) производила аппроксимацию такой функции: F1( x) x 2 , F 2( x ) sin( x ). 506 «Искусственный интеллект» 4’2003 Эволюционная адаптация искусственных нейронных сетей 8Ш Рисунок 6 – Пример нейронной сети и ее аппроксимация на 200-й итерации Длина генов – 32 бит. Длина гена, отвечающего за активационную функцию, – 1 бит. Размер популяции – 20. Глубина популяции – периодичная. Размерность поиска 9*2+2*10 +9*2+2*2=60. Вероятность мутации – 0.04. Природа в процессе эволюции постаралась создать жизнеспособные структуры, которые способны решать сложнейшие задачи. В данной работе автор рассмотрел малую часть и в дальнейшем проанализирует множество других интересных идей, как можно использовать данный подход. Использование его огромно, инструмент способный подсказать и подтолкнуть на может новые приемы или принципы работы. Недаром объединение усилий математика У. Питтса и биофизика доктора У. Мак-Каллоха помогло сделать в некотором смысле «шаг в сторону» от классических принципов. Современные физики, химики, генетики не обходятся без компьютера, много идей и фактов для размышления дают им именно результаты моделирования и работы по алгоритму! Новизна работы в том, что можно реализовать поиск работоспособных структур НС и моделей нейронов. Можно использовать ЭМ для опровержения или подтверждения гипотез работы искусственного нейрона. К примеру, при эволюционном поиске генератора на НС можно увидеть, что сети организуются в такие ансамбли (требует ~ 10 5 итераций). Рисунок 7 – Нейронный генератор «Штучний інтелект» 4’2003 507 Шварц Д.Р. 8Ш Можно отметить, что подобные структуры существуют и в природе, например у Ангела (Clione) [3]. Н. Винер стоял у истоков построения принципов работы вычислительной техники, по которым работают наши современные компьютеры. В одной из своих работ [4] он пишет: если трудность физиологической проблемы по существу математическая, то десять несведущих в математике физиологов сделают не больше, чем один несведущий в математике физиолог. 1. 2. Шварц Д.Р. Разработка программной реализации ГА для оптимизации многоэкстремальных функций: Курсовой проект СпбГУ. – 2003. Батищев Д.И, Исаев С.А. Оптимизация многоэкстремальных функций с помощью генетических алгоритмов // Высокие технологии в технике, медицине и образовании: Межвуз. сб. – Ч. 3. Рабинович М.И. Малые нервные системы: динамика ритмического поведения животных // Биология. – 1995. – № 1. – С. 45-49. Винер Н. Кибернетика, или управление и связь в животном и машине. – 1948. 3. 4. Today, the large attention in many areas of engineering, is given to a new direction. A direction is based on principles of evolution in a nature. On a role of the engineer there is an evolutionary algorithm. In the given job the evolutionary algorithm is applied for neurons network's (NN). In this job the program model of evolution NN was made, genetic algorithm also is optimized. The received updating has allowed to increase stability and speed of job of algorithm. In the given job the experiments for check of serviceability were put, and some analyses are made. The received job once again has confirmed high efficiency of an evolutionary method of search for tasks of not convex optimization. У даній роботі розглядається можливість застосування еволюційного алгоритму для пошуку параметрів нейронної мережі. Пошук параметрів нейронної мережі – це задача оптимізації багатоекстремальної функції. У цій роботі реалізована програмна модель еволюційного пошуку параметрів різних нейронних мереж, також здійснена модифікація генетичного алгоритму з метою підвищення його стійкості (давати стабільний результат) і швидкості. Статья поступила в редакцию 23.07.03. 508 «Искусственный интеллект» 4’2003