Символьная регрессия
Материал из MachineLearning.
Строка 1: | Строка 1: | ||
- | '''Символьная регрессия''' — метод построения [[регрессионная модель|регрессионных моделей | + | '''Символьная регрессия''' — метод построения [[регрессионная модель|регрессионных моделей]] путем перебора различных произвольных суперпозиций функций из некоторого заданного набора. Суперпозиция функций при этом называется «программой», а стохастический оптимизационный алгоритм построения таких суперпозиций называется [[генетическое программирование|генетическим программированием]]. |
- | Генетическое программирование | + | Генетическое программирование — модификация [[генетического алгоритма]]. Различие заключается в том, что для решения задач символьной регрессии необходима изменяющаяся длина хромосом, описывающих суперпозиции. |
- | + | Так как подобные алгоритмы являются переборными и требуют значительных вычислительных ресурсов, то публикации по данной теме стали появляться в 90-х годах, а значительное развитие они получили после 2000-го года. Наиболее известным исследователем является [http://www.genetic-programming.com/ Джон Коза]. | |
- | Так как подобные алгоритмы являются переборными и требуют значительных вычислительных ресурсов, то публикации по данной теме стали появляться в 90-х годах, а значительное развитие они получили после 2000-го года. Наиболее известным исследователем является Джон Коза. | + | |
== Постановка задачи == | == Постановка задачи == | ||
- | Задача отыскания оптимальной структуры регрессионной модели нескольких свободных переменных следующим образом. Задана выборка — множество <tex>\{\mathbf{x}_1, | + | Задача отыскания оптимальной структуры регрессионной модели нескольких свободных переменных следующим образом. Задана выборка — множество <tex>\{\mathbf{x}_1,\ldots,\mathbf{x}_N|\mathbf{x}\in\R^M\}</tex> значений свободных переменных и множество <tex>\{y_1,\ldots, y_N| y\in\R\}</tex> соответствующих им значений зависимой переменной. Обозначим оба эти множества как множество исходных данных <tex>D</tex>. |
- | Также задано множество <tex>G=\{g|g:\R\ | + | Также задано множество <tex>G=\{g|g:\R\times\ldots\times\R\longrightarrow\R\}</tex> гладких |
- | параметрических функций <tex>g=g(\mathbf{b},\cdot,\cdot, | + | параметрических функций <tex>g=g(\mathbf{b},\cdot,\cdot,\ldots,\cdot) </tex>. Первый аргумент функции <tex>g</tex> — вектор-строка параметров <tex>\mathbf{b}</tex>, последующие — переменные из множества действительных чисел, рассматриваемые как элементы вектора свободных переменных. |
Рассмотрим произвольную суперпозицию, состоящую из не более чем <tex>r</tex> функций <tex>g</tex>. Эта суперпозиция задает параметрическую регрессионную модель <tex>f=f(\mathbf{w},\mathbf{x}) </tex>. Регрессионная модель <tex>f</tex> зависит от вектора свободных переменных <tex>\mathbf{x}</tex> и от вектора параметров <tex>\mathbf{w}</tex>. Вектор <tex>\mathbf{w}\in\R^W</tex> состоит из присоединенных векторов-параметров | Рассмотрим произвольную суперпозицию, состоящую из не более чем <tex>r</tex> функций <tex>g</tex>. Эта суперпозиция задает параметрическую регрессионную модель <tex>f=f(\mathbf{w},\mathbf{x}) </tex>. Регрессионная модель <tex>f</tex> зависит от вектора свободных переменных <tex>\mathbf{x}</tex> и от вектора параметров <tex>\mathbf{w}</tex>. Вектор <tex>\mathbf{w}\in\R^W</tex> состоит из присоединенных векторов-параметров | ||
- | функций <tex>g_1, | + | функций <tex>g_1,\ldots, g_r</tex>, то есть, <tex>\mathbf{w}=\mathbf{b}_1\vdots\mathbf{b}_2\vdots\ldots\vdots\mathbf{b}_r</tex>, где <tex>\vdots</tex> — знак присоединения векторов. Обозначим <tex>\Phi=\{f_i\}</tex> — множество всех суперпозиций, индуктивно порожденное элементами множества <tex>G</tex>. |
+ | |||
+ | Требуется выбрать такую модель <tex>f_i</tex>, которая доставляет максимум заданного функционала <tex>p(\mathbf{w}|D) </tex>. Этот функционал определяет целевую функцию <tex>S(\mathbf{w})</tex>, | ||
+ | которая используется при вычислениях. | ||
+ | |||
+ | == Процедура поиска оптимальной модели == | ||
+ | |||
+ | Поиск оптимальной модели происходит на множестве порождаемых моделей на каждой итерации алгоритма. | ||
+ | Перед работой алгоритма заданы множество измеряемых данных <tex>D</tex> и множество гладких | ||
+ | функций <tex>G</tex>. | ||
+ | Задан начальный набор конкурирующих моделей, <tex>F_0=\{f_1,\ldots, f_{M}|f\in\Phi\}</tex>, в котором каждая модель <tex>f_i</tex> | ||
+ | есть суперпозиция функций <tex>\{g_{ij}\}_{j=1}^{r_i}</tex>. | ||
+ | Если нет начального набора моделей, то он порождается случайным образом. | ||
+ | Далее выполняется последовательность шагов, приведенных ниже. | ||
+ | |||
+ | 1. Методом сопряженных градиентов (или другим способом настройки параметров) минимизируются | ||
+ | штрафные функции <tex>S_i(\mathbf{w})</tex> для каждой модели <tex>f_i, i=1,\ldots,M</tex>. | ||
+ | Отыскиваются параметры <tex>\mathbf{w}^\m_i</tex> и вычисляется значение штрафной функции каждой модели. | ||
+ | |||
+ | 2. Заданы следующие правила построения производных моделей | ||
+ | <tex>f'_1,\ldots, f'_{M}</tex>. Для каждой модели <tex>f_i</tex> строится производная | ||
+ | модель <tex>f'_i</tex>. В <tex>f_i</tex> произвольно выбирается функция <tex>g_{ij}</tex>. Выбирается произвольная модель <tex>f_\xi</tex> из | ||
+ | <tex>F_0\backslash\{f_i\}</tex> и ее произвольная функция <tex>g_{\xi\zeta}</tex>. | ||
+ | Модель <tex>f'</tex> порождается из модели <tex>f</tex> путем замещения | ||
+ | функции <tex>g_{ij}</tex> с ее аргументами на функцию <tex>g_{\xi\zeta}</tex> с ее | ||
+ | аргументами. | ||
+ | |||
+ | 3. С заданной вероятностью <tex>\eta</tex> каждая модель <tex>f'_i</tex> | ||
+ | подвергается изменениям. В изменяемой модели выбирается <tex>j</tex>-тая | ||
+ | функция, причем закон распределения вероятности выбора | ||
+ | функции <tex>p(j)</tex> задан. Из множества <tex>G</tex> случайным образом | ||
+ | выбирается функция <tex>g'</tex> и замещает функцию <tex>g_j</tex>. | ||
+ | Гиперпараметр <tex>\alpha_{ij}</tex> этой функции определяется как | ||
+ | <tex>\max\limits_j(\alpha_{ij})</tex>. Вектор параметров этой | ||
+ | функции <tex>\mathbf{b}_{ij}</tex> равен нулю или назначается при задании <tex>G</tex>. | ||
+ | |||
+ | 4. При выборе моделей из объединенного множества родительских и | ||
+ | порожденных моделей в соответствии с критерием <tex>S(\mathbf{w})</tex> | ||
+ | выбираются <tex>M</tex> наилучших, которые используются в дальнейших | ||
+ | итерациях. | ||
+ | |||
+ | Алгоритм остановливается при достижении ошибки, не превосходящей заданную, или через | ||
+ | заданное количество раз. | ||
+ | |||
+ | == Пример построения модели == | ||
+ | |||
+ | [[Изображение:Symbolic_Regression_Fig1.png|right]] | ||
+ | Ниже описывается пример построения символьной регрессионной модели. На рис.1. сплошной кривой | ||
+ | показаны исходные данные, пунктиром показаны значения регрессионной модели. По оси абсцисс отложено значение свободной | ||
+ | переменной, по оси ординат — значение зависимой переменной. | ||
+ | Выборка, представленная данной кривой, содержит четыре тысячи отсчетов. | ||
+ | Экспертами было задано множество базовых функций <tex>G</tex> из элементов которого порождаются регрессионные модели. | ||
+ | Список функций приведен в таблице. Множество <tex>F_0</tex> моделей начального приближения также было задано экспертами. | ||
+ | |||
+ | [[Изображение:Symbolic_Regression_Table1.png]] | ||
+ | |||
+ | Выбор моделей производился из более тысячи порожденных моделей. | ||
+ | В таблице 2 приведены три модели, полученные в результате | ||
+ | работы алгоритма. Качество моделей оценивалось по ошибкам | ||
+ | <tex>\rho_1,\rho_2</tex> и числу параметров в векторе параметров <tex>\mathbf{w}</tex>. | ||
+ | Ошибка <tex>\rho_1</tex> — среднеквадратичная относительная ошибка | ||
+ | <center><tex>\rho_1=\sqrt{\frac{1}{N}\sum_{i=1}^n\left(\frac{y_i-f(\x_i)}{\max(y_i)}\right)^2},</tex></center> | ||
+ | ошибка <tex>\rho_2</tex> — максимальная относительная ошибка | ||
+ | <center><tex>\rho_2=\max_{i=1,\ldots,N}\frac{|y_i-f(\x_i)|}{\max(y_i)}.</tex></center> | ||
+ | |||
+ | [[Изображение:Symbolic_Regression_Table2.png]] | ||
- | + | В строке «Описание» таблицы 2 показана структура модели | |
+ | в виде дерева. В качестве примера рассмотрим модель 2. Эта | ||
+ | модель состоит из суперпозиции восьми | ||
+ | функций <tex>f_2=g_1(g_2(g_3(g_4(g_5(x), g_6(x)), g_7(x)), x), g_8(x))</tex>. | ||
+ | Функции <tex>g_1=\times(\emptyset,\cdot,\cdot)</tex> и | ||
+ | <tex>g_2,\ldots, g_4=+(\emptyset,\cdot,\cdot)</tex>, сложения и умножения, | ||
+ | имеют первым аргументом пустой вектор параметров; | ||
+ | <tex>g_5,\ldots, g_7=h(\mathbf{b}_i,\cdot)</tex>, <tex>i=1,\ldots,3</tex>, и <tex>g_8=l(\mathbf{b}_4,\cdot)</tex>. | ||
+ | Функции <tex>h=\frac{\lambda_i}{\sqrt{2\pi}\sigma_i}\mbox{exp}\left({-\frac{(x-\xi_i)^2}{2\sigma_i^2}}\right)</tex> | ||
+ | имеют векторы | ||
+ | параметров <tex>\mathbf{b}_i=\langle\lambda_i,\mu_i,\sigma_i, a_i\rangle</tex>, | ||
+ | и функция <tex>l=(ax+b)</tex> имеет вектор | ||
+ | параметров <tex>\mathbf{b}_4=\langle{a, b}\rangle</tex>. | ||
- | {{ | + | Модель <tex>f_2</tex> можно переписать в виде |
+ | <tex>f(\mathbf{w},\x)=l(\mathbf{b}_4,x)^{-1}\times\left(x+\sum_{i=1}³h(\mathbf{b}_i, x)\right),</tex> | ||
+ | где <tex>\x=x</tex> и <tex>\mathbf{w}=\mathbf{b}_1\vdots\mathbf{b}_2\vdots\mathbf{b}_3\vdots\mathbf{b}_4</tex>. | ||
+ | Развернутый вид модели: | ||
+ | <center><tex>y=(ax+b)^{-1}\left(x+\sum_{i=1}^3\frac{\lambda_i}{\sqrt{2\pi}\sigma_i}\mbox{exp}\left({-\frac{(x-\xi_i)^2}{2\sigma_i^2}}\right)+a_i\right).</tex></center> | ||
== Литература == | == Литература == | ||
Строка 26: | Строка 106: | ||
* {{s|Hazan, A. et al.}} Modelling Expressive Performance: A Regression Tree Approach Based on Strongly Typed Genetic Programming / Applications of Evolutionary Computing. Springer. Vol. 3907/2006. P. 676—687. | * {{s|Hazan, A. et al.}} Modelling Expressive Performance: A Regression Tree Approach Based on Strongly Typed Genetic Programming / Applications of Evolutionary Computing. Springer. Vol. 3907/2006. P. 676—687. | ||
* {{s|Kohavi, R.}} A study of cross-validation and bootstrap for accuracy estimation and model selection / Proceedings of 14 International Joint Conference of Artificial Intelligence. 2(12). P. 1137—1143. | * {{s|Kohavi, R.}} A study of cross-validation and bootstrap for accuracy estimation and model selection / Proceedings of 14 International Joint Conference of Artificial Intelligence. 2(12). P. 1137—1143. | ||
+ | * {{s|Стрижов В.В.}} Поиск параметрической регрессионной модели в индуктивно заданном множестве. Журнал вычислительных технологий. 2007. No 1. С. 93-102. [http://www.ccas.ru/strijov/papers/strijov07JCT.pdf] | ||
== Внешние ссылки == | == Внешние ссылки == | ||
- | * [http://alphard.ethz.ch/gerber/approx/default.html Simple Symbolic Regression Using Genetic Programming | + | * [http://alphard.ethz.ch/gerber/approx/default.html Simple Symbolic Regression Using Genetic Programming a` la John Koza] |
* [http://gplab.sourceforge.net {{s|Silva, S.}} GPLAB — A Genetic Programming Toolbox for MATLAB] | * [http://gplab.sourceforge.net {{s|Silva, S.}} GPLAB — A Genetic Programming Toolbox for MATLAB] | ||
* [http://www.staff.ncl.ac.uk/d.p.searson/gptips.htm {{s|Searson, D.}} GPTIPS — Genetic Programming Tool for MATLAB] | * [http://www.staff.ncl.ac.uk/d.p.searson/gptips.htm {{s|Searson, D.}} GPTIPS — Genetic Programming Tool for MATLAB] | ||
Строка 35: | Строка 116: | ||
* [http://en.wikipedia.org/wiki/Genetic_programming Genetic programming, Wikipedia] | * [http://en.wikipedia.org/wiki/Genetic_programming Genetic programming, Wikipedia] | ||
- | |||
[[Категория:Регрессионный анализ]] | [[Категория:Регрессионный анализ]] | ||
[[Категория:Энциклопедия анализа данных]] | [[Категория:Энциклопедия анализа данных]] |
Версия 19:13, 30 марта 2008
Символьная регрессия — метод построения регрессионных моделей путем перебора различных произвольных суперпозиций функций из некоторого заданного набора. Суперпозиция функций при этом называется «программой», а стохастический оптимизационный алгоритм построения таких суперпозиций называется генетическим программированием.
Генетическое программирование — модификация генетического алгоритма. Различие заключается в том, что для решения задач символьной регрессии необходима изменяющаяся длина хромосом, описывающих суперпозиции. Так как подобные алгоритмы являются переборными и требуют значительных вычислительных ресурсов, то публикации по данной теме стали появляться в 90-х годах, а значительное развитие они получили после 2000-го года. Наиболее известным исследователем является Джон Коза.
Содержание |
Постановка задачи
Задача отыскания оптимальной структуры регрессионной модели нескольких свободных переменных следующим образом. Задана выборка — множество значений свободных переменных и множество соответствующих им значений зависимой переменной. Обозначим оба эти множества как множество исходных данных .
Также задано множество гладких параметрических функций . Первый аргумент функции — вектор-строка параметров , последующие — переменные из множества действительных чисел, рассматриваемые как элементы вектора свободных переменных. Рассмотрим произвольную суперпозицию, состоящую из не более чем функций . Эта суперпозиция задает параметрическую регрессионную модель . Регрессионная модель зависит от вектора свободных переменных и от вектора параметров . Вектор состоит из присоединенных векторов-параметров функций , то есть, , где — знак присоединения векторов. Обозначим — множество всех суперпозиций, индуктивно порожденное элементами множества .
Требуется выбрать такую модель , которая доставляет максимум заданного функционала . Этот функционал определяет целевую функцию , которая используется при вычислениях.
Процедура поиска оптимальной модели
Поиск оптимальной модели происходит на множестве порождаемых моделей на каждой итерации алгоритма. Перед работой алгоритма заданы множество измеряемых данных и множество гладких функций . Задан начальный набор конкурирующих моделей, , в котором каждая модель есть суперпозиция функций . Если нет начального набора моделей, то он порождается случайным образом. Далее выполняется последовательность шагов, приведенных ниже.
1. Методом сопряженных градиентов (или другим способом настройки параметров) минимизируются штрафные функции для каждой модели . Отыскиваются параметры и вычисляется значение штрафной функции каждой модели.
2. Заданы следующие правила построения производных моделей . Для каждой модели строится производная модель . В произвольно выбирается функция . Выбирается произвольная модель из и ее произвольная функция . Модель порождается из модели путем замещения функции с ее аргументами на функцию с ее аргументами.
3. С заданной вероятностью каждая модель подвергается изменениям. В изменяемой модели выбирается -тая функция, причем закон распределения вероятности выбора функции задан. Из множества случайным образом выбирается функция и замещает функцию . Гиперпараметр этой функции определяется как . Вектор параметров этой функции равен нулю или назначается при задании .
4. При выборе моделей из объединенного множества родительских и порожденных моделей в соответствии с критерием выбираются наилучших, которые используются в дальнейших итерациях.
Алгоритм остановливается при достижении ошибки, не превосходящей заданную, или через заданное количество раз.
Пример построения модели
Ниже описывается пример построения символьной регрессионной модели. На рис.1. сплошной кривой показаны исходные данные, пунктиром показаны значения регрессионной модели. По оси абсцисс отложено значение свободной переменной, по оси ординат — значение зависимой переменной. Выборка, представленная данной кривой, содержит четыре тысячи отсчетов. Экспертами было задано множество базовых функций из элементов которого порождаются регрессионные модели. Список функций приведен в таблице. Множество моделей начального приближения также было задано экспертами.
Выбор моделей производился из более тысячи порожденных моделей. В таблице 2 приведены три модели, полученные в результате работы алгоритма. Качество моделей оценивалось по ошибкам и числу параметров в векторе параметров . Ошибка — среднеквадратичная относительная ошибка
ошибка — максимальная относительная ошибка
В строке «Описание» таблицы 2 показана структура модели в виде дерева. В качестве примера рассмотрим модель 2. Эта модель состоит из суперпозиции восьми функций . Функции и , сложения и умножения, имеют первым аргументом пустой вектор параметров; , , и . Функции имеют векторы параметров , и функция имеет вектор параметров .
Модель можно переписать в виде где и . Развернутый вид модели:
Литература
- Zelinka, I., Nolle, L., Oplatkova, Z. Analytic Programming — Symbiloc Regression by Means of Arbitrfary Evolutionary Algorithms / Journal of Simulation. Vol. 6 No 9. P. 44—56.
- Koza, J. R. Genetic Programming IV: Routine Human-Competitive Machine Intelligence. Springer. 2005.
- Riolo, R., Soule, T., Worzel, B. (Eds.) Genetic Programming Theory and Practice V. Series: Genetic and Evolutionary Computation. Springer. 2008.
- Madar, J., Janos, A., Szeifert, F. Genetic Programming for the Identification of Nonlinear Input-Output Models. citeseer.ist.psu.edu. 2005.
- Hazan, A. et al. Modelling Expressive Performance: A Regression Tree Approach Based on Strongly Typed Genetic Programming / Applications of Evolutionary Computing. Springer. Vol. 3907/2006. P. 676—687.
- Kohavi, R. A study of cross-validation and bootstrap for accuracy estimation and model selection / Proceedings of 14 International Joint Conference of Artificial Intelligence. 2(12). P. 1137—1143.
- Стрижов В.В. Поиск параметрической регрессионной модели в индуктивно заданном множестве. Журнал вычислительных технологий. 2007. No 1. С. 93-102. [1]