Московский государственный университет путей сообщения
Опубликован: 10.10.2014 | Доступ: свободный | Студентов: 869 / 193 | Длительность: 22:10:00
Лекция 6:

Генетическое программирование

6.6. Фитнесс-функция в генетическом программировании

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

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

"Непрерывной" (continuous) фитнесс-функцией называют [5] функцию вычисления фитнесс-значений, в которой малое улучшение в обучении программы вызывает малые улучшения измеряемых фитнесс-значений и большие улучшения в обучении связаны соответственно с большими изменениями (в сторону улучшения) фитнесс-значений. В [5] отмечается, что такая "непрерывность" является важным свойством, так как позволяет ГП итеративно улучшать программы в процессе эволюции.

"Стандартизованой" [5] фитнесс-функцией называют преобразованную фитнесс-функцию, которая лучшим особям приписывает нулевое значение.

"Нормализованной" [5] фитнесс-функцией называют преобразованную фитнесс-функцию, которая для всех особей дает значения в интервале (0,1).

Рассмотрим следующий пример [5] с обучающей выборкой, представленной табл.6.7. Каждая строка таблицы определяет один элемент (x,y) обучающей выборки. Необходимо в процессе эволюции построить программу (или формулу в случае символьной регрессии), которая для каждого входного значения x вычисляет необходимое (в соответствии с табл.6.5) значение y (фактически нам необходимо реализовать функцию f(x)=x^2+x).

Таблица 6.7.
Вход x Выход d
1 1 2
2 2 6
3 4 20
4 7 56
5 9 90

Рассмотрим в качестве фитнесс-функции ошибку в метрике абсолютных значений f_a=\sum_{i=1}^n |y_i-d_i|, где суммирование выполняется по обучающей выборке. Эта фитнесс-функция соответствует первому определению "непрерывной", поскольку чем ближе значения y_i к d_i, тем меньше значение фитнесс-функции. Приведенная фитнесс-функция является также стандартизованной, так как в случае идеального решения дает нулевое значение.

Часто в качестве фитнесс-функции также используют квадратичную ошибку f_s=\sum_{i=1}^n (y_i-d_i)^2.Таблица 6.8 показывает различие для этих двух фитнесс-функций в том случае, если на некотором (промежуточном) этапе в качестве особи оценивается (плохо обученная) программа, реализующая функцию f(x)=x^2.

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

Таблица 6.8.
Вход x Выход d Выход y Ошибка f_a Ошибка f_s
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

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

  1. число правильно отображаемых пикселов в задачах обработки изображений;
  2. число столкновений робота со стенами при обучении обхода препятствия;
  3. число правильно классифицируемых примеров в задачах классификации;
  4. ошибка между реальными и ожидаемыми значениями в задачах прогнозирования;
  5. приз победителя в игровых задачах;
  6. количество "пищи", найденной агентом, в многоагентных системах ("искусственная жизнь" и т.п.)

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