УДК 519.68
В. В. Тынченко, В. С. Тынченко
О ПРИМЕНЕНИИ ПАРАЛЛЕЛЬНЫХ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ ДЛЯ АВТОМАТИЗАЦИИ НЕЙРОСЕТЕВОГО МОДЕЛИРОВАНИЯ
Рссмотрено применение эволюционного подхода для автоматизации нейросетевого моделирования. Предлагается использование параллельных генетических алгоритмов для обучения нейронной сети и выбора ее эффективной структуры.
В настоящее время искусственные нейронные сети (ИНС) являются достаточно эффективным инструментом решения сложных технических задач. Применение нейронных сетей позволяет с одинаковой успешностью решать задачи автоматизации процессов распознавания образов, адаптивного управления, аппроксимации функционалов, прогнозирования, создания экспертных систем, организации ассоциативной памяти.
Искусственная нейронная сеть - это набор нейронов, соединенных между собой.
С конструктивной точки зрения нейрон - это устройство получения нелинейной функции нескольких переменных с возможностью настройки его параметров. Традиционно нейрон описывается в терминах, заимствованных из биологии. Согласно этим представлениям, нейрон имеет один выход и несколько входов (синапсов). Синапсы осуществляют связь между нейронами, умножают входной сигнал х. на вес синапса W¡. Сумматор осуществляет сложение взвешенных входов, а нелинейный преобразователь реализует нелинейную функцию от выхода сумматора. Эта функция называется функцией активации. Математическая модель нейрона определяется формулами
У = /(5), 5 = ■ х.
1=1
Существуют три типа нейронных сетей: многосвязная, многослойная, слабосвязная. Возможны различные комбинации этих типов. Наиболее общим случаем является многосвязная ИНС, где каждый нейрон может быть связан с любым другим нейроном сети [1].
При работе с нейронными сетями возникает немало трудностей. Это значит, что пользователь, получив эффективный инструмент для решения задачи, сталкивается с проблемой его применения. Одним из неформализованных моментов практического применения нейро-сетевого моделирования является выбор структуры ИНС, которая определяется количеством нейронов, их активационными функциями, а также наличием связей между конкретными нейронами. Зачастую структура нейросети выбирается исходя из особенностей решаемой задачи, а так же на основе рекомендаций специалиста, имеющего достаточный опыт работы с подобными системами [1]. Автоматизация этого процесса предполагает решение многопараметрической оптимизационной задачи выбора эффективной структуры ИНС. При решении этой задачи требуется настройка ее конкретной структуры.
С математической точки зрения настройка ИНС в свою очередь также является многопараметрической задачей оптимизации, которая заключается в поиске оптимального набора весов нейронной сети, имеющей априори заданную структуру. Можно выделить две большие
группы алгоритмов, решающих эту задачу, - градиентные и стохастические. Градиентные алгоритмы обучения сетей основаны на вычислении частных производных функции ошибки по параметрам сети. В стохастических алгоритмах поиск минимума функции ошибки ведется случайным образом. Наиболее эффективным алгоритмом первой группы является алгоритм обратного распространения ошибки [5]. Среди алгоритмов второй группы широкое распространение получили методы генетической адаптации [1; 3].
В генетических алгоритмах веса кодируются в виде двоичных последовательностей (хромосом). Каждая особь популяции характеризуется полным множеством весов нейронной сети. Оценка приспособленности особей определяется функцией приспособленности, задаваемой в виде суммы квадратов погрешностей, т. е. разностей между ожидаемыми (эталонными) и фактически получаемыми значениями на выходе сети для различных входных данных.
Приведем два важнейших аргумента в пользу применения генетических алгоритмов для настройки ИНС. Прежде всего, генетические алгоритмы обеспечивают глобальный просмотр пространства весов и позволяют избегать локальных минимумов. Кроме того, они могут использоваться в задачах, для которых информацию о градиентах получить очень сложно либо она оказывается слишком дорогостоящей [1].
Эволюционный подход к обучению нейронных сетей можно разбить на два основных этапа. Первый из них -это выбор соответствующей схемы представления весов связей. Он заключается в принятии решения - можно ли кодировать эти веса двоичными последовательностями или требуется какая-то другая форма, а также в выборе схемы кодирования. На втором этапе уже осуществляется сам процесс эволюции, основанный на генетическом алгоритме.
После выбора схемы хромосомного представления генетический алгоритм применяется к популяции особей (хромосом, содержащих закодированное множество весов нейронной сети) с реализацией типового цикла эволюции, состоящего из четырех шагов.
1. Декодирование каждой особи (хромосомы) текущего поколения для восстановления множества весов и конструирования соответствующей этому множеству нейронной сети с априорно заданной архитектурой.
2. Расчет общей среднеквадратичной погрешности между фактическими и заданными значениями на всех выходах сети при подаче на ее входы обучающих образов. Эта погрешность определяет приспособленность особи (сконструированной сети).
Вестник Сибирского государственного аэрокосмического университета имени академика М. Ф. Решетнева
3. Репродукция особей, согласно выбранному способу селекции.
4. Применение генетических операторов скрещивания и мутация для получения нового поколения.
Также как и в случае эволюции весов связей, на первом этапе эволюционного проектирования структуры ИНС принимается решение относительно соответствующей формы ее описания. Однако в данной ситуации проблема не связана с выбором между двоичным и вещественным представлением хромосом, поскольку речь может идти только о дискретных значениях. Необходимо выбрать более общую концептуальную структуру представления данных, например, в форме матриц. Информация о структуре может непосредственно кодироваться в виде двоичных последовательностей, т. е. каждая связь и каждый узел (нейрон) прямо специфицируется определенным количеством битов. Такой способ представления называется схемой непосредственного кодирования (сильная схема спецификации).
В данной схеме каждая связь нейронной сети непосредственно задается ее двоичным представлением. Матрица С размерностью п х п С=[с„] шп может представлять связи нейронной сети, состоящей из п узлов (нейронов), причем значение су определяет наличие или отсутствие связи между ¡-м и у-м нейронами. Если суу= 1, то связь существует, если с„=0, то связь отсутствует. При таком подходе двоичная последовательность (хромосома), представляющая связи нейронной сети, имеет вид комбинации строк (или столбцов) матрицы С. Если принимать во внимание только однонаправленные связи, это позволит учитывать только те элементы матрицы С, которые задают связи данного узла (нейрона) со следующими узлами.
Кроме этого, хромосома должна содержать информацию о виде активационной функции на каждом нейроне. Информацию об активационной функции можно добавлять в конец последовательности бит соответствующего нейрона.
Второй этап эволюционного проектирования структуры нейронной сети состоит из следующих шагов:
1) декодирование каждой особи текущей популяции для описания архитектуры нейронной сети;
2) обучение каждой нейронной сети с архитектурой, полученной на первом шаге, с помощью генетического алгоритма подбора весовых коэффициентов связей;
3) оценивание приспособленности каждой особи (закодированной архитектуры) по достигнутым результатам обучения, т. е. по наименьшей общей среднеквадратичной погрешности обучения;
4) репродукция особей согласно выбранному способу селекции;
5) применение генетических операторов скрещивания и мутации для получения нового поколения.
Выполнение расчетов по адаптивным поисковым алгоритмам занимает большое количество времени (генерируется несколько популяций, субпопуляций, оценивается пригодность индивидов популяций и пр.). Чтобы сократить время, затрачиваемое на решение задачи, целесообразно применить параллельные генетические алгоритмы (ПГА) и осуществлять вычисления с использованием многопроцессорной вычислительной системы
(МВС). Так как генетические алгоритмы хорошо распараллеливаются, то такой подход позволит значительно повысить быстродействие.
Выбор способа, которым можно распараллеливать генетический алгоритм, зависит от следующих параметров: как оценивается пригодность и применяется мутация; используется единственная популяция или несколько субпопуляций; если используется несколько субпопуляций, то как происходит между ними обмен индивидами; как применяется селекция (глобально или локально).
В зависимости от того, как реализуется каждый из этих пунктов, мы получаем различные способы распараллеливания генетического алгоритма. Наиболее распространенными и значимыми являются следующие два способа: распределенная оценка пригодности (Master-Slave PGA) и мультипопуляционные ПГА [4].
ПГА с распределенной оценкой пригодности использует единственную популяцию. Распараллеливается операция оценивания пригодности индивидов, так как для этого требуется знание только отдельного оцениваемого индивида, а не всей популяции. Для этого популяция разбивается на группы по числу доступных процессоров, и индивиды каждой группы оцениваются на отдельном процессоре (в идеале - один индивид на один процессор). Селекция и скрещивание носят глобальный характер, т. е. каждый индивид может конкурировать и скрещиваться с любым другим индивидом из популяции.
Мультипопуляционные ПГА требуют деления популяции на субпопуляции, каждая из которых эволюционирует изолированно от всех других (географическая изоляция). Таким образом, индивиды конкурируют только в пределах конкретной субпопуляции. Вводится дополнительный оператор - оператор миграции. Время от времени некоторые индивиды перемещаются от одной субпопуляции к другой (механизм миграции).
Характер миграции зависит от следующих параметров: топология связи между субпопуляциями (гиперкуб, тор, двумерная или трехмерная решетка и т. п.); скорость миграции, определяющая количество перемещаемых индивидов; схема миграции, определяющая, какие индивиды будут перемещаться в другую популяцию («лучшие», «худшие», отобранные случайным образом), а также какие индивиды будут замещаться («лучшие», «худшие», отобранные случайным образом); миграционный интервал, определяющий частоту перемещения (может быть постоянным - синхронная миграция, может изменяться в зависимости от некоторого события - асинхронная миграция).
Авторами данной работы была реализована клиент-серверная программная система, позволяющая автоматизировать процесс выбора эффективной структуры ИНС и предоставляющая пользователю следующие возможности:
- устанавливать параметры генетического алгоритма настройки весов связей ИНС (объем популяции, генетические операторы, количество итераций и т. д.), а также изменять эти параметры в ходе работы программы;
- изменять параметры генетического алгоритма при выборе эффективной структуры ИНС (объем популяции, генетические операторы, количество итераций и т. д.), а также изменять эти параметры в ходе работы программы;
- устанавливать параметры параллельного генетического алгоритма (топологию связи между субпопуляциями, скорость и схему миграции, а также миграционный интервал);
- отслеживать в ходе работы программной системы построение графиков пригодности лучшего и худшего индивидов популяции, а также средней пригодности популяции как при настройке весов ИНС, так и при выборе ее эффективной структуры.
Разработанная программная система была использована для выбора эффективной структуры ИНС, а также весов связей при решении практической задачи моделирования процесса рудно-термической плавки [2].
В качестве параметров, характеризующих эффективность работы печи рудно-термической плавки, были выбраны такие параметры, которые характеризуют процесс с различных сторон, т. е. позволяют оценить технологические, энергетические и экономические аспекты. К ним относятся: потери цветных металлов с отвальными шлаками (СМ); производительность (П); удельный расход электроэнергии (Жу); температура шлака (Т); выбросы вредных веществ в атмосферу (Сгаз) и другие.
В связи с высокой температурой и агрессивной средой в печи трудно получить непрерывную, надежную и полную информацию о процессе, поэтому выбор управляющих параметров обусловлен не только их весомым влиянием на процесс, но и возможностью получения непрерывной, достоверной информации о них. На основании этого в качестве основных управляющих воздействий используются электрические параметры и загрузка шихты по отдельным составляющим: количество загружаемого в печь агломерата (^ ); количество загружаемого в печь кремнезема (6А2); количество загружаемого в печь кокса (СС); количество загружаемого в печь конвертерного Шлака (Ош); ввод электрической мощности (Р); заглубление электродов (#); напряжение (Ц) и другие.
При этом химический состав загружаемого агломерата и химический состав конвертерного шлака были приняты постоянными. Размерность вектора входных воздействий на процесс равна 10, вектора выходных параметров также 10. Для проведения экспериментов использовалась выборка из 47 точек [2].
При решении задачи нейросетевого моделирования процесса рудно-термической плавки использовалась сеть
из пяти однотипных персональных компьютеров с процессорами Athlon64 3200+.
В результате решения данной задачи стандартным генетическим алгоритмом была найдена эффективная структура и веса связей ИНС с ошибкой настройки 3,43 % за 1ч 38 мин.
При решении данной задачи ПГА с распределенной оценкой пригодности эффективная структура и веса ИНС были найдены с ошибкой настройки 3,42 % за 26 мин, т. е. почти в четыре раза быстрее, чем в предыдущем случае, когда генетический алгоритм не распараллеливался. Сокращение времени решения задачи в количество раз меньше, чем число компьютеров в сети связано с затратами системных ресурсов на передачу информации между узлами вычислительной сети.
При исследовании мультипопуляционного ПГА эффективная структура и веса ИНС были найдены за 15 мин 28 с, т. е. уже в шесть раз быстрее, при этом ошибка настройки составила 3,42 %.
Полученные результаты свидетельствуют об эффективности применения эволюционного подхода для автоматизации нейросетевого моделирования, при этом разработка и внедрение параллельных генетических алгоритмов позволит значительно ускорить процесс построения нейросетевой модели и повысить ее качество.
Библиографический список
1. Рутковская, Д. Нейронные сети, генетические алгоритмы и нечеткие системы / Д. Рутковская, М. Пилиньс-кий, Л. Рутковский. М. : Горячая линия - Телеком, 2004. 452 с. : ил.
2. Гонебная, О. Е. Экспертная система рудно-термической плавки : дис. ... канд. техн. наук / О.Е. Гонебная. Красноярск : ГУЦМиЗ, 2004. 136 с.
3. Семенкин, Е. С. Метод обобщенного адаптивного поиска для синтеза систем управления сложными объектами / Е. С. Семенкин, В. А. Лебедев. М. : МАКС Пресс, 2002. 320 с.
4. Cantu-Paz, E. Designing efficient master-slave parallel genetic algorithms / E. Cantu-Paz // IllGAL Report 97004. The University of Illinois, 1997.
5. Muller, B. Neural networks / B. Muller, J. Reinhardt. Springer - Verlag, 1990. 267 p.
V. V. Tynchenko, V. S. Tynchenko
ON THE USE OF PARALLEL GENETIC ALGORITHMS FOR NEURAL NETWORK MODELING AUTOMATION
An evolutionary approach for neural network modeling automation is discussed. The use ofparallel genetic algorithms for neural network training and its efficient structure generation is proposed.