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

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

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

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

Задача регрессии может быть определена на основе множества значений входных независимых переменных x и зависимой выходной переменной y. Целью поиска является аппроксимация y с помощью переменных x и коэффициентов w следующим образом y=f(x,w)+\varepsilon, где \varepsilon представляет шум (ошибку).

В стандартних методах регресии вид функции f предполагается известным, например, в линейной регресии - f(x,w)=w_0+w_1x_1+\dots +w_nx_n. Здесь коэффициенты w_i обычно находятся методом наименьших квадратов. В нелинейных методах, например с использованием нейронных сетей прямого распространения, функция имеет вид f(x,w)=w_0\cdot g(w_hx). Здесь коэффициенты w_0 и w_h представляют синаптические веса нейронной сети выходного и скрытых слоев соответственно.

Как уже отмечалось, символьная регрессия на основе ГП не использует некоторую заранее предопределенную форму функции f(x,w). Здесь функция f(x,w) представляется древовидной структурой и строится эволюционным методом с использованием определенного функционального и терминального множеств. В качестве фитнесс-функции обычно используется квадратичная ошибка, которая оценивает качество решения и обеспечивает обратную связь при поиске решения. Для определенности обозначим функции множества, зависящие от одной переменной через h_1,\dots,h_k и функции от двух переменных как g_1,\dots,g_l. В этой нотации функция f(x,w) представляется в виде суперпозиции функций h_i,g_j, и например, может иметь следующий вид: f(x,w)=h_1(g_2(g_1(x_3,w_1),h_2(x_1))).

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

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

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

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

Koza [2] ввел следующую удобную и "прозрачную" форму для перечисления параметров, которая представлена в табл.6.10.

Далее приведем некоторые полученные экспериментальные данные результатов эволюции для различных запусков программ из [5]. В начальной популяции после инициализации лучшая особь представлена деревом рис.6.15, которая реализует (не минимальным образом !) функцию f_0(x)=\frac{x}{3}.В последующих рисунках рис.6.16,рис.6.17,рис.6.18,рис.6.19,рис.6.20 представлены лучшие особи последующих поколений. Здесь в первом поколении лучшая особь реализует f_1(x)=\frac{x}{6-3x}.В последующих рисунках рис.6.16,рис.6.17,рис.6.18,рис.6.19,рис.6.20 представлены лучшие особи последующих поколений. Здесь в первом поколении лучшая особь реализует f_1(x)=\frac{x}{6-3x} и соответствующее дерево рис.6.16 сильно избыточно.

Таблица 6.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

Аналогично во втором поколении лучшая особь реализует функцию f_2(x)=\frac{x}{x(x-4)-1+\frac{4}{x}-\frac{\frac{9(x+1)}{5x}+x}{6-3x}} и дерево тоже сильно избыточно. Наконец в третьем поколении получена лучшая особь f_3(x)=\frac{x^2}{2}, которая дает оптимальное решение в простейшей форме.

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

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

Рис. 6.16. Лучшая особь поколения 1
Таблица 6.10.
Параметры Значения
Цель: Эволюция функции, аппроксимирующей данные Табл.6.6
Терминальное множество Переменная x, Целые от –5 до +5
Функциональное множество ADD, SUB, MUL, DIV
Мощность популяции: 600
Вероятн. кроссинговера: 0.90
Вероятность мутации: 0.05
Отбор родителей: турнирный, с мощностью тура 4
Максимальное число поколений: 100
Максимальная глубина после кроссинговера: 200
Максимальная глубина мутации: 4
Метод инициализации: Растущая
Лучшая особь поколения 2.

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

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

В табл.6.11 для сравнения представлены значения функций лучших особей первых поколений (0-3).Отметим, что была выполнена еще одна итерация (4-е поколение). На рис.6.19 представлена лучшая особь четвертого поколения, которая также реализует функцию f_4(x)=\frac{x^2}{2}, но избыточность соответствующего дерева выросла. Конечно, для данного примера можно было использовать и классические методы регрессии, но он носит чисто иллюстративный характер.

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

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

Интересным примером является машинный вывод третьего закона Кеплера на основе символьной регрессии. Итак, есть экспериментальные данные, которые связывают радиус и период обращения планет солнечной системы, которые представлены в табл.6.12 (в астрономических единицах). Напомним, что согласно закону Кеплера, период обращения планеты пропорционален корню квадратному из третьей степени радиуса орбиты P=\sqrt{(r)^3}, где rрадиус орбиты планеты (чаще используется формулировка \frac{r^3}{P^2}=c). Для решения этой задачи с помощью символьной регрессии возможные параметры представлены в табл.6.13. На рис.6.20 представлено полученное с помощью символьной регрессии дерево, которое представляет закон Кеплера.

Во многих работах [2,5] приведены результаты для более сложных зависимостей, но они требуют для представления результатов большого объема.

Таблица 6.11.
y f_0 f_1 f_2 f_3
1 0.000000 0.000000 0.000000 0.000000 0.000000
2 0.005000 0.033333 0.017544 0.002375 0.005000
3 0.020000 0.066667 0.037037 0.009863 0.020000
4 0.045000 0.100000 0.058824 0.023416 0.045000
5 0.080000 0.133333 0.083333 0.044664 0.080000
6 0.125000 0.166667 0.111111 0.076207 0.125000
7 0.180000 0.200000 0.142857 0.1222140 0.180000
8 0.245000 0.233333 0.179487 0.188952 0.245000
9 0.320000 0.266667 0.222222 0.287024 0.320000
10 0.405000 0.300000 0.272727 0.432966 0.405000
Таблица 6.12.
Планета Радиус - r Период - p
Меркурий 0,387 0,24
Венера 0,723 0,62
Земля 1,000 1,000
Марс 1,524 1,88
Юпитер 5,203 11,86
Сатурн 9,569 29,46
Уран 19,309 84,01
Нептун 30,284 164,79
Плутон 39,781 247,69

Следует отметить, что мощность популяций используемых в ГП на порядок выше, чем в классических ГА, а число поколений, как правило, меньше. Применение ГП в качестве символьной регрессии является важным для многих технических задач (например, в гидро- и аэродинамике), но далеко не единственным.

Дерево, представляющее третий закон Кеплера

Рис. 6.20. Дерево, представляющее третий закон Кеплера

Как показано выше, символьная регрессия может использоваться для получения эмпирических зависимостей на основе экспериментальных данных. Она широко применяется в эконометрике при решении задач моделирования и прогнозирования. Кроме этого, символьная регрессия с успехом применяется в символьных вычислениях, включая символьное дифференцирование и интегрирование, решение дифференциальных и интегральных уравнений в символьном виде и т.п.[2].