Сайт Информационных Технологий

Трофимов В.В.
Россия, Санкт-Петербург, Санкт-Петербургский государственный университет

Глухов А.О.
Белоруссия, Новополоцк, Полоцкий государственный университет

Моделирование и аппроксимация на многоагентных структурах

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

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

Базовыми элементами таких сетей являются нейроны. Формальное представление нейрона осуществляется с помощью таких элементов как неоднородный адаптивный сумматор, нелинейный преобразователь, точка ветвления и линейная связь – синапс. Все алгоритмы решения задач с использованием нейронных структур включают этап предварительного обучения структуры, которое сводится к настройке связей нейронов. Наиболее известны сети с обратным распространением ошибки, где задача обучения ставится как задача оптимизации. Это дает универсальный метод создания нейронных сетей.

Объектно-ориентированный формализм позволяет успешно описывать нейронные, динамические развивающиеся структуры в виде систем объектов (агентов). Это возможно потому, что агентные структуры имеют следующие свойства:

1. Они обладают определенным поведением.

2. Они повышают эффективность с помощью: параллельных вычислений; организации конкурирующего поиска по объектам; обучения объектов в процессе осуществления поиска;

3. Существует множество языков программирования, упрощающих разработку и реализацию этих алгоритмов.

Многоагентную структуру формально можно описать как объединение множества типов данных - T, алфавита событий - X, множества идентификаторов объектов - I, множества существующих классов (объектных моделей) - C и множества существующих объектов - O: S=(T, X, I, C, O).

Предлагается следующий алгоритм обучения многоагентной структуры для решения задач аппроксимации:

  1. Выполнить расчет - Calc( ) и получить значения функционала качества аппроксимации для всех агентов.
  2. Выделить текущий выход и полезную структуру по минимальному значению функционала качества аппроксимации;
  3. Выполнить для текущего выхода - ocout процедуру обратного распространения ошибки - ocout.fback(y-xcout);
  4. Найти агента oerr с наибольшей ошибкой (желаемое значение - yerr) или одного из агентов, для которых ошибка “существенна” (выбор агента может выполняться случайным образом);
  5. Минимизировать ошибку в текущей структуре вызовом процедуры - oerr.fsetup(yerr);
  6. Повторный расчет Calc(), затем снова процедура - ocout.fback(y-xcout);
  7. Выделение агента oerr и определение для него желаемого значения - yw, ow – агент, вызвавший oerr.;
  8. Выполнить попытку минимизации выделенной ошибки за счет oi.ftype(yw) для всех агентов, не вошедших в полезную структуру - oiI O*;
  9. Если какому-либо агенту удалось уменьшить ошибку за счет агента onew, то выполнить переключение связи агента ow с oerr на onew;
  10. Проверка на отсутствие циклов при таком переключении выполняется в oi.ftype(yw);
  11. Повторять с пункта 1 пока не выполнится условие останова. В качестве условия останова можно использовать условие на предел изменения качества аппроксимации или предел количества итераций.

Данный алгоритм был реализован и опробован на различных вариантах структур и различных обучающих выборках с известными зависимостями. Все расчеты дублировались решением с помощью алгоритма нейронной сети. В качестве набора базовых преобразований (операций) были взяты следующие операции, отвечающие условию сходимости: fw(x)=(a*x); add(x1,x2)=(x1+a*x2); mul(x1,x2)=(a*x1*x2); pow(x1,x2)=(x1^x2); exp(x)=exp(a*x); ln(x)=log(a*x); powa(x)=(x^a).

При построении сеть агентов приводится в некоторое начальное состояние, допускающее первый проход вычисления без ошибок. При запуске обучения работает процедура проверки сети на корректность. Для исследования многоагентных структур были взяты две структуры: структура (А), состоящая из девяти агентов и структура (Б), состоящая из трех (рис.1).

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

1. y=x1+x2x3

3. y=x1*x2*x3

5. y=sqrt(x12 +x22 +x32)

7. y=x1+x2+sqrt(x3)

2. y=x1+x2*x3

4. y=10*x1*x2*x3

6. y=x1+sqrt(x22 +x32)

В качестве базы для сравнения использовались результаты моделирования, полученные с помощью программы DELTA (book of Yoh-Han Pao “Adaptive Pattern Recognition and Neural Networks”, Application A, program from example C). Алгоритм обучения нейронной сети – обратное распространение ошибки. Функция активации нейрона – гиперболический тангенс. Сеть состояла из трех скрытых слоев по пять нейронов в каждом. Результаты обучения приведены на рис.2 и в табл.1.

При моделировании работы алгоритма были получены результаты, значительно (в 10 раз, а в некоторых случаях и в 100 раз) превосходящие работу нейронной сети по качеству аппроксимации.

Таблица 1.

Эффективность процесса обучения при решении задачи аппроксимации на многоагентных и нейронных сетевых структурах

Структура А

Структура Б

Нейросеть

Качество

Кол-во итераций

Качество

Кол-во итераций

Качество

Кол-во итераций

1

0.0

16

0.0

14

354.3

100

2

0.0

100

0.3

100

34.52

100

3

0.0

12

0.0

13

113.4

100

4

0.0

12

0.0

17

2894548.3

100

5

0.1

100

0.4

100

48.5

100

6

3.2

100

1302.3

100

139.6

100

7

4.1

100

17.5

100

7082.2

100

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

Другим важным фактором повышающим качество аппроксимации является набор базовых преобразований (операций). Влияние данного фактора было рассчитано для различных наборов операций. Результаты эксперимента показали устойчивые отличия. Качество нейронной сети соизмеримо с качеством многоагентной структуры. Но это справедливо только для набора базовых преобразований, который состоит из преобразований сложения и масштабирования – add(x1,x2) и fw(x). И это справедливо несмотря на большие отличия в алгоритмах обучения.

Шум в обучающей выборке влияет на процесс обучения. Большая амплитуда шума приводит к значительному затруднению поиска. При малой амплитуде шума (10% от уровня входов и выхода) обучение протекает также как и в случае полного отсутствия его.

Выводы

Задачи аппроксимации решаются многоагентными, саморазвивающимися структурами намного лучше, чем нейронными сетями.

Эти структуры не требуют большого количества элементов и просты в реализации.

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

Повышение эффективности (по сравнению с нейронными сетями) происходит из-за того, что:


Site of Information Technologies
Designed by  inftech@webservis.ru.