Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ПСИИ / skobcov_yu_a_osnovy_evolyucionnyh_vychislenii

.pdf
Скачиваний:
168
Добавлен:
15.02.2015
Размер:
2.55 Mб
Скачать

211

меньше значение фитнесс-функции. Данная фитнесс-функция является также стандартизованной, так как случае для идеального решения дает нулевое значение.

Часто в качестве фитнесс-функции также используют квадратичную

ошибку f s = n (yi di )2 . Таблица 7.8 показывает различие для этих двух

i=1

фитнесс-функций в том случае, если на некотором (промежуточном) этапе в качестве особи оценивается (плохо обученная) программа, реализующая функцию f (x) = x 2 .

 

 

 

 

 

Таблица 7.8.

 

 

 

 

 

 

 

Вход x

Выход d

Выход y

Ошибка f a

Ошибка fs

 

 

 

 

 

 

 

1

1

2

1

1

2

 

 

 

 

 

 

 

 

2

2

6

4

2

4

 

 

 

 

 

 

 

 

3

4

20

16

4

16

 

 

 

 

 

 

 

 

4

7

56

49

7

49

 

 

 

 

 

 

 

 

5

9

90

81

9

81

 

 

 

 

 

 

 

 

 

 

Общая ошибка

 

23

151

 

 

 

 

 

 

 

 

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

1)число правильно отображаемых пикселов в задачах обработки изображений;

2)число столкновений робота со стенами при обучении обхода препятствия;

3)число правильно классифицируемых примеров в задачах классификации;

212

4)ошибка между реальными и ожидаемыми значениями в задачах прогнозирования;

5)приз победителя в игровых задачах;

6)количество «пищи», найденной агентом, в многоагентных системах («искусственная жизнь» и т.п.)

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

7.7. Интроны

Программы, построенные с помощью методов ГП, имеют тенденцию к накоплению интронов – ненужных и непригодных участков кода.

Например:

(NOT (NOT x)),

(AND (ORXX)), (+… (-XX)), (+X0),

(*X1), (*(DIV XX)),

(MOVE_LEFT MOVE_RIGHT), (IF (2=1) . . . ),

A:=A.

213

Таких фрагментов в программе возникает достаточно много (их количество может достигать 60%), и обнаружение и удаление интронов представляет серьезную проблему в ГП. Разработаны специальные методы для их устранения. Интересно отметить, что в живой природе интронов также достаточно много (в частности, на генном уровне существуют "лишние" участки ДНК).

7.8. Общий алгоритм генетического программирования

Таким образом, для решения задачи с помощью ГП необходимо выполнить описанные выше предварительные этапы:

1)Определить терминальное множество;

2)Определить функциональное множество;

3)Определить фитнесс-функцию;

4)Определить значения параметров, такие как мощность популяции, максимальный размер особи, вероятности кроссинговера и мутации, способ отбора родителей, критерий окончания эволюции (например,

максимальное число поколений) и т.п.

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

Например, решение задачи на основе ГП можно представить следующей последовательностью действий.

1)установка параметров эволюции;

2)инициализация начальной популяции;

3)t:=0;

4)оценка особей, входящих в популяцию;

5)t:=t+1;

214

6)отбор родителей;

7)создание потомков выбранных пар родителей – выполнение оператора кроссинговера;

8)мутация новых особей;

9)расширение популяции новыми порожденными особями;

10)сокращение расширенной популяции до исходного размера;

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

Следует отметить, что в ГП достаточно часто применяется асинхронный ГА, рассмотренный в 4.6.

7.9. Символьная регрессия

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

Задача регрессии может быть определена на основе множества значений входных независимых переменных x и зависимой выходной

переменной

y. Целью поиска является апроксимация

y с помощью

переменных

x и коэффициентов w следующим образом y = f (x, w) +ε , где ε

представляет шум (ошибку).

 

f (x, w) = h1 (g 2 (g1 (x3 , w1 ), h2 (x1 ))) .
f (x, w) .

215

В стандартних методах регресии вид функции f предполагается известным, например, в линейной регресии f (x, w) = w0 + w1x1 +... + wn xn . Здесь коэффициенты wi обычно находятся методом наименьших квадратов. В нелинейных методах, например, с использованием нейронных сетей прямого распространения функция имеет вид f (x, w) = w0 g(wh x) . Здесь коэффициенты w0 и wh представляют синаптические веса нейронной сети выходного и скрытых слоев соответственно.

Как уже отмечалось, символьная регрессия на основе ГП не использует некоторую заранее предопределенную форму функции Здесь функция f (x, w) представляется древовидной структурой и строится эволюционным методом с использованием определенного функционального и терминального множеств. В качестве фитнесс-функции обычно используется квадратичная ошибка, которая оценивает качество решения и обеспечивает обратную связь при поиске решения. Для определенности обозначим функции множества, зависящие от одной переменной через h1,…, hk и функции от двух переменных как g1,…, gl. В этой нотации функция f (x, w) представляется в виде суперпозиции функций hi , gj, и например, может иметь следующий вид

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

Далее рассмотрим детально пример использования символьной регрессии из [27] для апроксимации данных, представленных в табл.7.9. Необходимо найти функцию f(x), которая апроксимирует с заданной точностью эти «экспериментальные» данные.

Для решения задачи определим в соответствии с вышесказанным:

1.Терминальное множество: переменная x и константы в диапазоне [- 5,5];

216

2.Функциональное множество: арифметические функции +, - , * , % (защищенное деление).

3.Фитнесс-функция – стандартизованная на основе корня квадратного средней квадратичной ошибки.

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

 

 

Таблица 7.9

 

 

 

Вход x

Выход y

 

 

 

1

0.000

0.000

 

 

 

2

0.100

0.005

 

 

 

3

0.200

0.020

 

 

 

4

0.300

0.045

 

 

 

5

0.400

0.080

 

 

 

6

0.500

0.125

 

 

 

7

0.600

0.180

 

 

 

8

0.700

0.245

 

 

 

9

0.800

0.320

 

 

 

10

0.900

0.405

 

 

 

Koza [5] ввел следующую удобную и «прозрачную» форму для перечисления параметров , которая представлена в табл.7.10.

217

Далее приведем некоторые полученные экспериментальные данные результатов эволюции для различных запусков программ из [27]. В начальной популяции после инициализации лучшая особь представлена деревом рис.7.15, которая реализует (не минимальным образом !) функцию

f0 (x) = 3x .

Впоследующих рисунках рис.7.16 –7.20 представлены лучшие особи

последующих поколений. Здесь в первом поколении лучшая особь

реализует

f1 (x) =

 

x

 

и соответствующее дерево

рис.7.16 сильно

6

3x

 

 

 

 

 

 

 

 

 

 

 

 

избыточно.

 

 

 

 

 

 

 

 

 

 

 

 

 

Аналогично во втором поколении лучшая особь реализует функцию

f 2 (x) =

 

 

x

 

 

 

 

 

 

 

 

и дерево тоже сильно избыточно. Наконец в

 

 

 

 

 

 

 

9(x +1)

 

 

 

 

 

4

 

 

 

 

+ x

 

 

 

x(x 4)

1+

 

 

 

5x

 

x

 

 

6 3x

 

 

 

 

 

 

 

 

 

третьем поколении получена лучшая особь f3

(x) =

x 2

, которая дает

 

 

2

 

оптимальное решение в простейшей форме.

 

 

 

%

 

 

 

Х-

4,0

%

ХХ

Рис.7.15. Лучшая особь в поколении 0.

 

218

 

Таблица 7.10

 

 

Параметры

Значения

 

 

Цель:

Эволюция функции,

 

апроксимируюшей данные

 

Табл.7.6

 

 

Терминальное множество

Переменная x,

 

Целые от –5 до +5

 

 

Функциональное

ADD, SUB, MUL, DIV

множество

 

 

 

Мощность популяции:

600

Вероятность кросинговера:

0.90

Вероятность мутации:

0.05

Отбор родителей:

турнирный с мощностью тура 4

Максимальное число

100

поколений:

 

Максимальная глубина

 

после кроссинговера:

200

Максимальная глубина

4

мутации:

 

Метод инициализации:

Растущая

 

 

 

219

%

 

 

 

-

 

 

*

 

 

 

 

 

 

 

%

 

 

-1.0

 

*

 

 

 

 

 

 

 

 

 

 

 

 

 

 

%

 

*

 

%

 

 

-

 

 

-

5.0

-

x

4.0

-

 

*

 

*

 

 

 

 

 

 

+

%

-1.0

-1.0

x

x

-3.0

x

+

*

 

 

 

 

x

1.0

0.0

x

 

 

 

 

4.0

-1.0

1.0 -2.0

Рис.7.16. Лучшая особь поколения 1.

220

%

Х-

+

_

_

+

*

2.0

Sub 1

+

1.0

y

+

%

 

 

 

 

%

+

_

*

+

_

-4.0

X

-4.0

3.0

0

0

X

X

-4.0

X

1.0

X

Рис.7.17. Лучшая особь поколения 2.

Соседние файлы в папке ПСИИ