Использование генетических алгоритмов в задачах анализа данных и построения систем правил
Солодовников В.И.
Центр информационных технологий в проектировании РАН Россия, Московская область, г. Одинцово, ул. Маршала Бирюзова, д. 7а Тел.: (495) 596-02-19, E-mail: [email protected]
Введение
Генетические алгоритмы (ГА), предложенные в 1975 году Джоном Холландом (John Holland) из Мичиганского университета, предназначены для решения задач оптимизации и отыскания глобального экстремума многоэкстремальной функции, но также нашли свое применение при решении задач «интеллектуального» анализа данных. Эти задачи характеризуются отсутствием априорных предположений о структуре выборки и виде распределений значений анализируемых показателей. В свою очередь генетические алгоритмы работают с кодовыми последовательностями (KIT) безотносительно к их смысловой интерпретации и не привязаны к предметной области. Кодовая последовательность и ее структура задается понятием генотипа, а его интерпретация, с точки зрения решаемой задачи, понятием фенотипа. Каждая КП представляет, по сути, точку пространства поиска и называется особью или индивидуумом, а их набор образует исходное множество решений или популяцию. Наибольший интерес представляет совместное использование генетических алгоритмов с другими методами «интеллектуального» анализа данных, в частности с методами поиска логических закономерностей и нейросетевым подходом, что способно повысить качество получаемых решений.
1. Функционирование генетического алгоритма
Функционирование ГА состоит из нескольких этапов. На первом, происходит кодирование признаков характеризующих объект. Эти закодированные признаки называются генами, а совокупность таких признаков - хромосомой. В свою очередь, набор хромосом особи формирует генотип, т.е. особями популяции могут быть генотипы либо единичные хромосомы, в случае, если генотип состоит из одной хромосомы.
Формирование исходной популяции К происходит с использованием некоторого случайного закона, например, равномерного, на основе которого выбирается нужное количество точек поискового пространства. Исходная популяция может быть также результатом работы некоторого алгоритма оптимизации.
На каждом шаге работы генетический алгоритм обновляет исходное множество К путем создания новых КП и уничтожения бесперспективных, не удовлетворяющих критерию целевой функции. Каждое обновление интерпретируется как смена поколений и обычно идентифицируется по заданному размеру. Популяция обрабатывается с помощью процедур скрещивания, мутации и инверсии. Эти процедуры имитируют биологические процессы. В ходе работы процедур на каждой стадии эволюции получаются популяции со все более совершенными индивидуумами.
Критерием останова может быть одно из трех событий: • сформировано заданное число поколений;
• популяция достигла заданного уровня качества;
• достигнут некоторый уровень сложности, при котором улучшение популяции не происходит.
После завершения работы ГА из конечной популяции выбирается та КП (особь), которая дает оптимальное значение целевой функции, и которая является, в итоге, результатом работы ГА.
2. Поиск логических закономерностей
Существует целый ряд методов для определения логических закономерностей. В большинстве случаев задается множество возможных событий Т = {Г1,...,ГП}, и из этого множества строятся цепочки конъюнкций. Среди них тем или иным способом (перебор, вероятностные методы и т.д.) отбираются наиболее характерные для одного из классов и не характерные для других. Основной проблемой является, как определить возможные события. К таким методам могут быть отнесены алгоритм Кора и случайный поиск с адаптацией (СПА). Другим подходом для поиска логических закономерностей являются методы, основанные на применении деревьев решений. Их построение обычно осуществляется с использованием алгоритмов обработки примеров (CLS, ID3 (Interactive Dichotomize!-), CART (classification and regression trees) и др.). Здесь следует отметить, что путь от вершины корня до вершины листа также представляет собой цепочку конкатенаций элементарных событий, и проблема их определения остается.
2.1. Формулировка задачи
Рассмотрим задачу, в которой логические закономерности используются для отнесения объекта к одному из N классов A = {A],...,AN}. Определим количество популяций равное количеству классов N. Выбор такого количества популяций обусловлен тем, что оценку показателей точности и полноты правил при выделении логических закономерностей целесообразно производить для каждого класса. При единственной популяции происходит усреднение данной оценки. Тем самым рассматриваемый подход можно отнести к так называемым островным алгоритмам [1].
Особью (хромосомой) является само правило. Количество особей, в отличии от большинства ГА, в популяции переменно и определяется с одной стороны минимально возможным числом для образования родительских пар, а с другой максимально возможной полнотой популяции. Обучающая последовательность из п объектов задается в виде пар: <Xi,ti >,i = l+n где Xi - m-мерный вектор параметров
X =(xu,...,xmi), ttG А - принадлежность к классу, тогда хромосома имеет постоянную длину равную т*2, где т - число параметров (признаков), по которым проводится классификация и представляется в виде: ((д^,х1шах),...,(xmmin,*„)). Здесь
jcimin,jcimax, соответственно верхняя и нижняя граница (область определения) значения
г'-го признака. Будем задавать генотип особи как множество пар < w]jk, wfjk >, для
которых выполняется условие: ximm <w]jk< wfjk <ximax, i = j = l + N, k=l + K, где
К - количество особей в популяции. Таким образом, каждая особь в популяции представляет собой m - мерный гиперкуб в пространстве признаков со сторонами < w\jk, wfjk >, который соответствует некоторому правилу. Исходные популяции
строятся случайным образом, так чтобы максимально покрыть пространство признаков.
Объем общей популяции (состоящей из особей всех N популяций) может быть получен из решения задачи поиска количества гиперкубов со сторонами, размер которых равновероятно распределен в диапазоне (0,л1тах -х1тМ), причем этот набор с
вероятностью Р -»1 должен закрывать все точки пространства признаков. Необходимо учитывать тот факт, что если популяция мала, то генетического материала может не хватить для решения имеющийся задачи. Размер популяции также влияет на коэффициент применения операторов мутации и скрещивания.
Качество решения также зависит от методики создания популяции. Например, вместо инициализации популяции случайным образом, разработчик может добавить хромосомы, которые изначально представляют хорошее решение проблемы. Но это может привести к быстрому схождению популяции, т.е. потере разнообразия в генетическом фонде.
2.2. Целевая функция
Критерием качества получаемого решения являются точность и полнота. Однако, они не объединяются единой оценочной функцией, а применяются последовательно и зависят от возникающей ситуации. Так при отборе родительских пар решающую роль, как это будет показано ниже, играет точность, а при выполнении редукции основным показателем является полнота и в меньшей мере учитывается точность. Критерием останова является ситуация, когда точность и полнота достигают наперед заданного числа в каждой популяции. Будем считать наилучшей популяцию, в которой находятся особи, лучшим образом удовлетворяющие логическим закономерностям для данного класса. Тогда целевую функцию можно определить:
Здесь rkj - количество объектов, удовлетворяющих критерию, заданному в
генотипе особи к (т.е. объектов, попавших в гиперкуб, соответствующий данной особи) и принадлежащих классу Aj для популяции j (расстояние по Хэммингу).
Фактически целевая функция определяет точность правила. Тогда целью генетического алгоритма является нахождение такой популяции, в которой содержится подмножество особей KJR с К1, где К] - общее количество особей для популяции, моделирующей принадлежность к классу j, для которого и
ЫК'ь
число объектов, принадлежащих данному классу в обучающей выборке максимально, то есть [JZkj = SSOj. Здесь - множество объектов, удовлетворяющих критерию и
принадлежащих классу А;., сформулированному для особи к, SSOj - множество объектов, принадлежащих к классу Aj среди множества исходных объектов [1]. 2.3. Выбор родительских особей.
Одним из наиболее важных факторов функционирования ГА является выбор родительских пар для получения потомков. Могут быть выделены случайный и селективный механизмы отбора. В первом случае особи выбираются случайным образом, причем любая особь может стать членом нескольких пар. Во втором случае родительские пары выбираются в соответствии с некоторым условием. Например, значение приспособленности особи не должен быть меньше среднего значения по
популяции или способ формирования пар на основе близкого и дальнего родства. Под родством понимается расстояние между членами популяции как в смысле геометрического расстояния между особями популяции (для фенотипа), так и в смысле хемминговского расстояния между хромосомными наборами для генотипов.
Наиболее распространен способ, когда в качестве родительских пар отбираются особи с учетом значения целевой функции (в нашем случае с наибольшим значением К-). Поэтому в качестве вероятности выбора родительской КП можно использовать:
¡=1
Это означает, что КП с наибольшим значением точности правила могут входить в несколько родительских пар.
2.4. Основные операторы
Непосредственная генерация новых КП осуществляется из двух родительских особей за счет оператора скрещивания (кроссовера, случайно-детерминированного обмена). Вероятность применения оператора скрещивания является одним из параметров генетического алгоритма и обычно выбирается достаточно большим, например от 0.9 до 1.
Различаются одноточечные, двухточечные и равномерные операторы скрещивания, в зависимости от вида разбиения КП. При использовании одноточечного оператора случайным образом выбирается точка разрыва, т.е. участок между соседними битами в строке. Обе родительские строки разрываются на два сегмента по этой точке. Затем соответствующие сегменты различных родителей склеиваются и получаются два генотипа потомков.
В двухточечном операторе выбирается две точки разрыва, и родительские хромосомы обмениваются сегментом, который находится между этими точками. В равномерном операторе скрещивания каждый бит первого родителя наследуется первым потомком с заданной вероятностью, в противном случае этот бит передается второму потомку. В дальнейшем, часть этих пар может перейти в популяцию следующего поколения.
После этапа скрещивания, выполняется оператор мутации. Мутация представляет собой случайное изменение КП. В нашем случае осуществляется случайное изменение какого-либо элемента пары <™\к,м?1к>, которая также
выбирается случайным образом. Данные изменения должны удовлетворять требованиям: сохранение упорядоченности пары и попадание в диапазон области значений для заданной переменной. Оператор мутации позволяет находить локальные экстремумы с одной стороны и позволяет «перескочить» на другой локальный экстремум с другой. Вероятность выполнения этого оператора является еще одним параметром алгоритма.
Порождение потомков сопровождается уничтожением неперспективных особей. Формирование нового поколения производит оператор отбора, а выбор особей для уничтожения - оператор редукции.
Самыми распространенными операторами отбора являются:
• случайный равновероятный отбор;
• ранговый пропорциональный отбор, когда новая популяция формируется из родителей и потомков по принципу «побеждает сильнейший»;
• отбор пропорционально значению целевой функции, в котором чем выше здоровье хромосомы, тем больше вероятность того, что она будет выбрана для формирования нового поколения, но, если применять этот метод в чистом виде, то возможен отсев здоровых особей, а поэтому можно формировать новое поколение, используя генетический материал предшествующих поколений;
• элитный отбор, который заключается в переносе некоторого количества (например, 10%) самых здоровых хромосом в следующее поколение;
• отбор с вытеснением или метод турнира, в котором из популяции отбирается к особей, которые затем соревнуются за право попасть в следующее поколение; побеждает та хромосома, здоровье которой выше; турнир повторяется I раз.
Оператор редукции имеет ряд особенностей. В частности хромосомы в популяции упорядочиваются по точности, но при выполнении редукции может быть исключена особь, имеющая высокую точность, но не увеличивающая полноту популяции.
Еще одной особенностью алгоритма является введение оператора миграции, который позволяет переносить кодовую последовательность (особь) из одной популяции в другую. Он выполняется с некоторой вероятностью, если в популяции у встречается особь к, для которой Рк] < Ркр, ] ^ р ■ Перенос осуществляется в
популяцию р. Смысл этого оператора заключается в том, что правила, имеющие низкую точность для одного класса, могут иметь более высокую точность для другого класса. Такая ситуация наиболее часто возникает в начальных поколениях.
Следует отметить, что в отличии от большинства существующих генетических алгоритмов в рассматриваемом подходе популяции имеют переменный размер. Это обусловлено двумя причинами:
1. При описании различных классов может потребоваться различное количество правил, чтобы достичь требуемой точности и полноты.
2. Популяция в ходе выполнения должна иметь по размеру ограничения снизу, что связано с необходимостью наличия достаточного генетического материала для порождения новых потомков.
Однако, в этом виде алгоритм не лишен ряда недостатков, присущих другим подобным алгоритмам:
1. Любое правило всегда содержит число событий равное количеству признаков, по которому проводился анализ;
2. Могут встречаться подобные, фактически совпадающие правила.
Поэтому представляется целесообразным внесение в ГА набора дополнительных операций, рассчитанных на повышение качества получаемых результатов. В частности, после генерации к поколений (эпохи) выполняется операция, условно названная, совершенствование вида, направленная на повышение разнообразия правил, в ходе которой удаляются повторяющиеся правила и особи преобразуются так, чтобы как можно более компактно представлять правила.
3. Использование генетического алгоритма для обучения нейронной сети
В качестве кодовой последовательности может выступать нейронная сеть (НС), в частности, многослойный персептрон. В этом случае, ГА применимы для обучения нейросети, т.е. минимизации суммарной квадратической ошибки работы сети путем подстройки ее весовых коэффициентов.
Соотнесение основных структурных характеристик нейронной сети и параметров ГА осуществляется следующим образом:
• ген - весовой коэффициент нейронной сети;
• хромосома - набор генов или упорядоченный набор весовых коэффициентов нейронной сети, при этом каждая хромосома является возможным решением (т.е. таким набором весовых коэффициентов, который лучше подходят для решения имеющейся задачи);
• популяция - множество хромосом, вариантов наборов весовых коэффициентов (множество вариантов нейросети);
• эпоха - итерация, соответствующая созданию нового поколения хромосом. Над хромосомами осуществляются операции скрещивания, мутации, отбора и
редукции, таким образом, происходит параллельная обработка множества альтернативных решений. Стоит отметить, что операция мутации решает одну из проблем, присутствующих в обучении многослойной нейронной сети методом обратного распространения ошибки. Она позволяет популяции преодолевать локальные экстремумы и способствует защите от преждевременной сходимости. После обучения к полученной НС может быть применен алгоритм для извлечения правил и представления результата в виде дерева решений, например TREPAN.
Заключение
Внедрение средств автоматизации в системы «интеллектуального» анализа данных способно сократить сроки, повысить качество и эффективность принимаемых решений. Рассмотрены вопросы совместного использование генетических алгоритмов с методами поиска логических закономерностей и нейросетевым подходом, где ГА выступают в роли средства автоматизации для сегментации данных, поиска оптимального набора элементарных событий при поиске логических закономерностей, выделения наиболее значимых значений признаков и Pix сочетаний, обучения нейронной сети.
Список литературы
1. Солодовников И.В., Доронин В.А. Генетический алгоритм для поиска логических закономерностей в данных - // Информационные технологии в управлении. № 7. М.:2005 г.
2. Дюк В., Самойленко А. Data Mining. Учебный курс. - СПб: Питер, 2001.
3. Корнеев В.В., Гареев А.Ф., Васютин C.B., Райх В.В. Базы данных. Интеллектуальная обработка информации. - М.: Нолидж, 2000.
4. Назаров A.B., Лоскутов А.И. Нейросетевые алгоритмы прогнозирования и оптимизации систем. - СПб: Наука и техника, 2003.
5. Ежов А., Шумский С., Нейрокомпьютинг и его применение в экономике и бизнесе, 1998.