Непрерывный генетический алгоритм предобработки данных осуществляющий поиск коэффициентов аппроксимирующей функции
Непрерывный генетический алгоритм предобработки данных осуществляющий поиск коэффициентов аппроксимирующей функции
Гридин В.Н., Солодовников В.И.
Центр информационных технологий в проектировании РАН
Аннотация
В статье рассматриваются вопросы предобработки исходных данных с использованием непрерывного генетического алгоритма. Целью является настройка коэффициентов аппроксимирующей функции. Особое внимание уделяется отличительным особенностям и необходимым изменениям основных операторов, влияющим на функционирование алгоритма. В качестве примера приводится построение аппроксимирующих полиномов для двух во многом схожих наборов данных.
1 Введение
Нередко встречаются задачи, когда необходимо осуществить классификацию объекта, представленного опосредованным набором последовательных измерений некоторого пространственного параметра или результатом наблюдения развития некоторого процесса во времени. Зачастую средства измерения не позволяют добиться высокой точности, и в дополнение полученные данные характеризуются, как наличием шумов, так и частичной потерей результатов измерения. В этом случае аналитик вынужден работать с множеством числовых последовательностей переменной длины, а их длина может характеризоваться сотнями значений, для которых требуется решение задач кластеризации и классификации.
При решении подобного рода задач на первом шаге необходимо осуществить подготовку данных. Одним из направлений предобработки может служить построение аппроксимирующих функций, которые в общем виде, могут являться математическими функциями любого типа, линейной комбинацией различных функций или функциональным рядом из степенных, тригонометрических и любых других функций. В основу построения желательно заклады-
вать априорные предположения о сущности изучаемого явления. На практике при отсутствии теоретических знаний об изучаемом явлении наибольшее распространение получили функциональные ряды [Езерский 2011], для которых определяющее значение имеет порядок аппроксимирующей функции. Порядок модели ограничивает число членов функционального ряда определенным оптимальным значением, которое обеспечивает обоснованное расхождение с фактическими данными и минимизирующее отклонение от искомой регулярной составляющей данных. Также существенную роль играет количество настраиваемых параметров выбранной функции аппроксимации, что в свою очередь влияет на сложность поиска их оптимальных значений для описания имеющейся зависимости. Для решения этой проблемы предложено использование непрерывного генетического алгоритма, а рассуждения приводятся на примере построения аппроксимирующего полинома N-ой степени. Такая предобработка позволяет, с одной стороны сгладить шумы и неточности измерения, а с другой, что более важно, резко сократить размерность и сделать ее одинаковой для всего множества изучаемых примеров. Полученные данные могут использоваться в качестве входа для последующих алгоритмов обработки примеров.
2 Непрерывный генетический алгоритм
Генетические алгоритмы (ГА), предложенные в 1975 году Джоном Холландом (John Holland) из Мичиганского университета, применяются для решения задач оптимизации. Они работают с кодовыми последовательностями (КП) безотносительно к их смысловой интерпретации. Кодовая последовательность и ее структура задается понятием генотипа, а его интерпретация, с точки зрения решаемой задачи, понятием
фенотипа. Каждая КП представляет, по сути, точку пространства поиска и называется особью или индивидуумом. Набор таких особей образует исходное множество решений или популяцию. Количество особей в популяции характеризуется ее размером и определяет разнообразие [Рутковская, Пи-линьский, Рутковский 2006].
Функционирование ГА состоит из нескольких этапов. На первом, происходит кодирование признаков характеризующих объект. Эти закодированные признаки являются генами, а совокупность таких признаков - хромосомой. В свою очередь, набор хромосом особи формирует генотип, т.е. особями популяции могут быть генотипы либо единичные хромосомы, в случае, если генотип состоит из одной хромосомы. В стандартном ГА используется двоичное кодирование признаков характеризующих объект, что не всегда удобно при работе с наборами вещественных чисел. Использование непрерывного генетического алгоритма обусловлено необходимостью осуществлять оптимизацию в непрерывном пространстве значений коэффициентов аппроксимирующей функции, тогда как двоичное представление может резко снизить точность найденного решения, в совокупности с резким увеличением длины хромосомы. В случае непрерывного генетического алгоритма хромосома представляет собой вектор вещественных чисел, длина которой совпадает с длиной вектора-решения оптимизационной задачи.
Основными преимуществами данного типа алгоритмов являются [Паклин 2018]:
• возможность поиск в больших пространствах, что затруднительно в случае двоичных генов, когда увеличение пространства поиска сокращает точность решения при неизменной длине хромосомы;
• способность к локальной настройке решений;
• удобство представления решений, что обусловлено отсутствием операций кодирования/декодирования.
Формирование исходной популяции К обычно происходит с использованием некоторого случайного закона, например, равномерного, что позволяет выбрать набор стартовых точек в пространстве поиска. Исходная популяция также может быть результатом работы алгоритма оптимизации.
На каждом шаге работы генетический алгоритм обновляет исходное множество К путем создания новых КП и уничтожения бесперспективных, не удовлетворяющих критерию целевой функции. Популяция обрабатывается с помощью процедур скрещивания, мутации и редукции. Эти процедуры имитируют биологические процессы. В ходе работы алгоритма на каждой стадии эволюции получаются популяции со все более совершенными индивидуумами.
В нашем случае задача заключается в поиске таких значений коэффициентов {а0, а1, а2.. .ам } аппроксимирующего полинома К-ой степени вида:
а0 + а1 ■ х + а2 ■ х2 +... + ам ■ хы,
которые бы наилучшим образом соответствовали исходному набору данных. Предположим, что значение N может быть подобрано аналитиком, как в соответствии с априорной информацией и визуальным представлением имеющейся выборки, так и экспериментальным путем.
3 Целевая функция
Целевая функция характеризует величину ошибки аппроксимации числовой последовательности с помощью полинома ^ой степени. В качестве целевой функции может быть использована среднеквадратиче-ская ошибка:
Е (у - уi )2
рк =
т
где yi и у^ - вычисленное и измеренное
значения соответственно, т - количество значений в числовой последовательности, к - особь популяции. Цель процесса оптимизации заключается в поиске таких значений {а0,а1,а2...aN}, для которых: Рк ® 0,
к = 1 + К, где К - количество особей в популяции.
4 Основные операторы
Отбор родительских особей для создания потомков осуществляется любым стандартным способом: рулетка, турнирный, случайный. А вот операторы скрещивания и мутации требуют внесения изменений.
Оператор скрещивания (кроссовер) в предложенном непрерывном ГА, порождает
1=1
двух потомков от двух родительских хромосом, т.е. из двух векторов вещественных
чисел (aj,aj,a\...alN} и \al,a2,a2;...a2N} осуществляется формирование двух новых векторов. В качестве основы используется SBX - кроссовер, который имитирует работу двоичного оператора скрещивания (Simulated Binary Crossover). Работа SBX-кроссовера состоит из следующих шагов [Паклин 2018], [Herrera, Lozano, Sanchez 2005]:
1. Выбрать две родительские особи a и
2.
3.
а ;
Сгенерировать случайное число и е [0,1);
Вычислить значение переменной (,
характеризующей распределение вероятностей случайной величины, по формуле:
(2 • и)1/(^+1), и £ 0.5
ь=
(
1
N1/(^+1)
u > 0.5
^2 • (1 - u)
где 1] - параметр, влияющий на вероятность появления потомков вдали от родительских особей [Deb, Agrawal 1995]. На рисунке 1 приведена геометрическая интерпретация работы SBX кроссовера при скрещивании двух хромосом, соответствующих вещественным числам P1 = 3 и P2 = 6. Графики показывают плотность вероятности возникновения соответствующих потомков в зависимости от величины 1 . Небольшие значения 1 позволяют генерировать потомков значительно удаленных от родителей, тогда как увеличение 1 влечет появление потомков вблизи родительских пар.
4. Вычислить значения компонент векторов новых хромосом по формулам:
1(new)
2(new)
= 0.5[(1 + b) • a] + (1 -b) • a,2]; = 0.5[(1 -b) • a1 + (1 + b)' a,2].
Важная особенность 8ВХ - кроссовера заключается в том, что среднее значение функции приспособленности остается неизменным у родителей и их потомков.
al( new) + a2( new)
a1 + a ,2
2 2 Эту особенность можно проиллюстрировать на рисунке 1, обратив внимание на
расположение родительской пары (P1,P2) и позицию пар потомков (С', C2) и
(С, С2).
Рис. 1. Геометрическая интерпретация работы БВХ кроссовера.
Оператор мутации выполняется с малой вероятностью, не превышающей 10%, для случайно выбранной компоненты вектора хромосомы (гена). Величина изменения выбирается случайным образом в соответствии с нормальным законом распределением с мат ожиданием в текущей точке значения гена.
Далее осуществляется сортировка хромосом по возрастанию значения целевой функции и выполняется оператор редукции, который производит уничтожение особей с плохой приспособленностью.
5 Моделирование
Для моделирования рассматриваемого подхода была реализована иерархия классов, включающая ТОепош, ТРориМюп и ТБуо1и1;юп. Класс ТОепош является описанием генотипа, содержит размерность и набор генов (искомые значения коэффициентов аппроксимирующей функции), позволяет вычислить значение функции в определенной точке и суммарное значение среднеквадратической ошибки для всех точек области определения. Создаваемым объектом является отдельная особь. ТРориМюп содержит информацию о популяции в целом, определяет количество особей, позволяет запустить процесс вычисления значений среднеквадратической ошибки для всей популяции, реализует сортировку особей внутри популяции в соответ-
ствии с приспособленностью. ТБуо1ийоп задает основные параметры функционирования алгоритма, ведет учет номера итерации и достигнутой точности, управляет популяцией, определяет процедуры скрещивания, мутации и редукции.
В качестве примера функционирования алгоритма рассмотрим результат, полученный на двух наборах данных, представленных на рисунках 2 и 3.
Из рисунков видно, что диапазоны значений и форма областей схожи. Для их задания использовались полиномы 6 степени с коэффициентами, приведенными в таблице 1 в строках с именами «Шаблон 1» и «Шаблон 2». Для имитации зашумленности использовались случайные величины, полученные с помощью нормального распределения вероятностей.
Табл. 1. Значения коэффициентов полинома для получения исходных данных и результаты работы непрерывного генетического алгоритма.
Степень 0 1 2 3
Шаблон 1 0.5 0 -2 1
Полином 1 0.48 0.01 -1.79 0.96
Шаблон 2 0.5 0 -2 1.8
Полином 2 0.46 -0.01 -1.53 1.69
Степень 4 5 6
Шаблон 1 4 -1 -2
Полином 1 3.40 -0.96 -1.57
Шаблон 2 4 -2 -2
Полином 2 2.90 -1.88 -1.30
Рис. 3. Второй набор исходных данных.
Рис. 4. График аппроксимирующего полинома для первого набора.
Рис. 2. Первый набор исходных данных.
Рис. 5. График аппроксимирующего полинома для второго набора.
Для построения аппроксимирующих полиномов использовался рассмотренный непрерывный генетический алгоритм, в котором размер вектора хромосомы равнялся 7, а популяция состояла из 1000 особей. Для получения результата, представленного на рисунке 4, потребовалось 290 эпох и 220 эпох для графика на рисунка 5. Коэффициенты аппроксимирующих полиномов, соответствующие хромосомам с наименьшей ошибкой, приведены в таблице 1 в строках с именами «Полином 1» и «Полином 2» соответственно. Аналогичным образом могут быть предобработаны и другие наборы исходных данных, а полученные результаты проанализированы на предмет информативности отдельных признаков и направлены на вход алгоритмов последующей обработки для решения поставленной задачи.
6 Заключение
В статье рассмотрена возможность настройки значений параметров аппроксимирующей функции с помощью непрерывного генетического алгоритма. Рассуждения для наглядности приводятся на примере построения аппроксимирующего полинома К-ой степени, но могут быть обобщены и на другие функциональные ряды. Данный подход может быть использован для предобработки наборов исходных данных, полученных в результате измерений некоторого пространственного параметра или наблюдения развития некоторого процесса во времени. Он позволяет, с одной стороны сгладить шумы и неточности измерения, а с другой, что более важно, резко сократить размерность и сделать ее одинаковой для всего множества изучаемых примеров. Результаты такой предобработки могут использоваться в качестве входа для последующих алгоритмов обработки примеров.
Благодарности
Работа выполняется в рамках темы 00712018-0002 «Разработка автоматизированных средств анализа данных, выявления скрытых закономерностей и защиты информации на основе совместного использования методов искусственного интеллекта» № г.р. ЛЛЛЛ-Л17-117121890012-9.
Список литературы
Езерский, В.В. 2011. Избранные разделы высшей математики : учебное пособие. Вып.7. Методы аппроксимации функций. Омск : Изд-во СибГУФК.
Паклин Н. 2018. Сайт компании BaseGroup Labs, Непрерывные генетические алгоритмы — математический аппарат [Электронный ресурс]. - URL:
https: //basegroup. ru/community/articles/real-coded-ga (дата обращения 01.02.2018)
Рутковская Д., Пилиньский М., Рутковский Л. 2006. Нейронные сети, генетические алгоритмы и нечеткие системы. М.: Горячая линия -Телеком.
Deb K., Agrawal R.B., 1995. Simulated Binary Crossover for Continuous Search Space. Complex Systems, 9, 115-148.
Herrera F., Lozano M., Sanchez A.M. 2005. Hybrid Crossover Operators for Real-Coded Genetic Algorithms: An Experimental Study. Soft Com-put. 9(4): pp 280-298.