Часть YII-2. Интеллектуальный анализ данных (Data Mining)

Большинство организаций накапливают за время своей деятельности огромные объемы данных, но единственное что они хотят от них получить – это информация. Интеллектуальный анализ данных (Data Mining – добыча знаний) – это процесс поддержки принятия решений, основанный на поиске в данных скрытых знаний, которые ранее не были известны, нетривиальны, практически полезны, доступны для интерпретации человеком (Г.Пиатецкий-Шапиро). Синонимами Data Mining являются слова "обнаружение знаний в базах данных" (knowledge discovery in databases) и "интеллектуальный анализ данных". При этом накопленные сведения автоматически обобщаются до информации, которая может быть охарактеризована как знания.

1. Модели Data Mining

Существует да вида моделей: предсказательные и описательные.

Предсказательные (predictive) модели строятся на основании набора данных с известными результатами и используются для предсказания результатов на основании других наборов данных. При этом, естественно, требуется, чтобы модель работала максимально точно, была статистически значима и т.д.

К ним относятся:

-        Модели классификация – описывают правила или набор правил, в соответствии с которыми можно отнести описание любого нового объекта к одному из классов. Такие правила строятся на основании информации о существующих объектах путем разбиения их на классы.

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

Описательные модели уделяют внимание сути зависимостей в наборе дан­ных, взаимному влиянию различных факторов.

К ним относятся следующие виды моделей:

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

-        Модели кластеризации описывают группы (кластеры), на которые можно разде­лить объекты, данные о которых подвергаются анализу. Группируются объекты (наблюдения, события) на основе данных (свойств), описываю­щих сущность объектов. Объекты внутри кластера должны быть "похо­жими" друг на друга и отличаться от объектов, вошедших в другие кла­стеры. Чем больше похожи объекты внутри кластера и чем больше отли­чий между кластерами, тем точнее кластеризация

-        Модели ассоциации выявление закономерностей между связанными событиями. Примером такой закономерности служит правило, указывающее, что из события X следует событие Y. Такие правила называются ассоциативными.

2. Практическое применение Data Mining

2.1. Интернет-технологии

В системах электронного бизнеса, где особую важность имеют вопросы привлечения и удержания клиентов, технологии Data Mining часто применяются для построения рекомендательных систем интернет-магазинов и для решения проблемы персонализации посетителей Web-сайтов. Рекомендации товаров и услуг, построенные на основе закономерностей в покупках клиентов, обла­дают огромной убеждающей силой. Статистика показывает, что почти каж­дый посетитель магазина Amazon не упускает возможности посмотреть на то, что же купили "Customers who bought this book also bought...". Персонализация клиентов, другими словами, автоматическое распознание принадлежно­сти клиента к определенной целевой аудитории позволяет компании прово­дить более гибкую маркетинговую политику.

Поскольку в электронной ком­мерции деньги и платежные системы также электронные, то важной задачей становится обеспечение безопасности при операциях с пластиковыми кар­точками. Data Mining позволяет обнаруживать случаи мошенничества (fraud detection). В области электронной коммерции также остаются справедливыми все методологии Data Mining, разработанные для обычного маркетинга.

С другой стороны, эта область тесно связана с понятием Web Mining. Специфика Web Mining заключается в применении традиционных техноло­гий Data Mining для анализа крайне неоднородной, распределенной и значи­тельной по объему информации, содержащейся на Web-узлах. Здесь можно выделить два направления. Это Web Content Mining и Web Usage Mining.

В первом случае речь идет об автоматическом поиске и извлечении качественной информации из перегруженных "информационным шумом" источни­ков Интернет, а также о всевозможных средствах автоматической классифи­кации и аннотировании документов. Данное направление также называют Text Mining.

Web Usage Mining направлен на обнаружение закономерностей в поведении пользователей конкретного Web-узла (группы узлов), в частности на то, какие страницы и в какой временной последовательности запрашива­ются пользователями и какими группами пользователей.

2.2. Торговля

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

Сиквенциальный анализ помогает торговым предприятиям принимать реше­ния о создании товарных запасов. Он дает ответы на вопросы типа "Если се­годня покупатель приобрел видеокамеру, то через какое время он вероятнее всего купит новые батарейки и пленку?"

2.3. Телекоммуникации

Телекоммуникационный бизнес является одной из наиболее динамически развивающихся областей современной экономики. Поэтому тра­диционные проблемы, с которыми сталкивается в своей деятельности любая компания, здесь ощущаются особо остро. Теле­коммуникационные компании работают в условиях жесткой конкуренции, что проявляется в ежегодном оттоке около 25 % клиентов. При этом извест­но, что удержать клиента в 4-5 раз дешевле, чем привлечь нового, а вот вер­нуть ушедшего клиента будет стоить уже в 50-100 раз больше, чем его удер­жать. Далее, как и в целом в экономике, справедливо правило – только 20 % клиентов приносят компании основной доход. Помимо этого, существует ряд клиентов, наносящих компании прямой вред. По разного рода оценкам порядка 10% всего дохода телекоммуникационной индустрии в год теряется из-за случаев мошенничества (несколько млрдю $). Таким образом, использование технологий Data Mining, направленных как на анализ доходности и риска клиентов (churn prevention), так и на защиту от мошенничества (fraud detection), сэкономит компании огромные средства.

Еще один из распространенных способов использования методов Data Mining – это анализ записей о подробных характеристиках вызовов. Назначение такого анализа – выявление категорий клиентов с похожими стереотипами пользо­вания услугами и разработка привлекательных наборов цен и услуг.

2.4. Промышленное производство

Промышленное производство создает идеальные условия для применения технологий Data Mining. Причина – в самой природе технологического про­цесса, который должен быть воспроизводимым и контролируемым. Все от­клонения в течение процесса, влияющие на качество выходного результата, также находятся в заранее известных пределах. Таким образом, создается статистическая стабильность.

Естественно, что в таких условиях использование Data Mining способно дать лучшие результаты, чем, к примеру, при прогно­зировании ухода клиентов телекоммуникационных компаний. В последнем случае причинами ухода могут стать не предрасположенности к смене мест, присущие целым группам абонентов, а внешние, совершенно случайные, и поэтому не образующие никаких закономерностей обстоятельства (например, удачно проведенная конкурентами рекламная кампания, экономические кри­зисы и т.д).

Примером ис­пользования Data Mining в промышленности может быть прогнозирование качества изделия в зависимости от замеряемых параметров технологического процесса.

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

2.5. Медицина

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

Известно много экспертных систем для постановки медицинских диагнозов. Они построены главным образом на основе правил, описывающих сочетания различных симптомов отдельных заболеваний. С помощью таких правил уз­нают не только, чем болен пациент, но и как нужно его лечить. Правила по­могают выбирать средства медикаментозного воздействия, определять пока­зания/противопоказания, ориентироваться в лечебных процедурах, создавать условия наиболее эффективного лечения, предсказывать исходы назначенно­го курса лечения и т. п. Технологии Data Mining позволяют обнаруживать в медицинских данных шаблоны, составляющие основу указанных правил.

Одним из наиболее передовых направлений медицины является биоинформатика – область науки, занимающаяся анализом и систематизацией генетической информации структур и функций макромолекул с целью последующего объяснения различных биологических явлений и созда­ния новых лекарственных препаратов (Drug Design). Абст­рагируясь от конкретного содержания информации, исследуемой биоинформатикой, ее можно рассмат­ривать как набор генетических текстов о последователь­ностях ДНК и первичной структуре белков, состоящих из протяженных символь­ных последовательностей. Выявление структурных закономерностей в таких последовательностях входит в число задач, эффективно решаемых средства­ми Data Mining, например, с помощью сиквенциального и ассоциативного анализа.

 

2.6. Банковское дело

Классическим примером использования Data Mining на практике является решение проблемы о возможной некредитоспособности клиентов банка. Этот вопрос, тревожащий любого сотрудника кредитного отдела банка, можно разрешить и интуитивно. Если образ клиента в сознании банковского служа­щего соответствует его представлению о кредитоспособном клиенте, то кре­дит выдавать можно, иначе – отказать. По схожей схеме, но более продук­тивно и объективно, работают установленные в банках системы поддержки принятия решений со встроенной функциональностью Data Mining. Лишенные субъек­тивной предвзятости, они опираются в своей работе только на историческую базу данных банка, где записывается детальная информация о каждом клиен­те и в конечном итоге факт его кредитоспособности. Классификационные алгоритмы Data Mining обрабатывают эти данные, и полученные результаты используются далее для принятия решений.

Анализ кредитного риска заключается, прежде всего, в оценке кредитоспособности заемщика. Эта задача решается на основе анализа накопленной ин­формации, т. е. кредитной истории "прошлых" клиентов. С помощью инст­рументов Data Mining (деревья решений, кластерный анализ, нейронные сети и др.) банк может получить профили добросовестных и неблагонадежных заемщиков. Кроме того, возможно классифицировать заемщика по группам риска, а значит, не только решить вопрос о возможности кредитования, но и установить лимит кредита, проценты по нему и срок возврата.

Другой проблемой банков является мошенничество с кредитными карточками, убытки от которого измеряются миллионами долларов ежегодно, а рост количества мошеннических операций составляет, по оценкам экспертов, от 15 до 25 % ежегодно.

В борьбе с мошенничеством технология Data Mining использует стереотипы подозрительных операций, созданные в результате анализа огромного коли­чества транзакций – как законных, так и неправомерных. Исследуется не только отдельно взятая операция, но и совокупность последовательных во времени транзакций. Кроме того, алгоритмы и модели (например, нейронные сети), имеющиеся в составе продуктов Data Mining, способны тестироваться и самообучаться. При попытке совершения подозрительной операции средст­ва Data Mining оперативно выдают предупреждение об этом, что позволяет банку предотвратить незаконные действия, а не устра­нять их последствия.

2.7. Страховой бизнес

В страховании, так же как в банковском деле и маркетинге, возникает задача обработки больших объемов информации для определения типичных групп (профилей) клиентов. Эта информация используется для того, чтобы предла­гать определенные услуги страхования с наименьшим для компании риском и, возможно, с пользой для клиента. Также с помощью технологий Data Mining решается такая часто встречающаяся в страховании задача, как опре­деление случаев мошенничества (fraud detection).

3. Методы анализа данных

I. Базовые методы

-      алгоритмы, основанные на переборе (О (2N) операций, где N – количество объектов); использование разного вида эвристик, приводящих к сокращению перебора;

-      подходы, исполь­зующие элементы теории статистики (классический корреляционный, регрессионный и другие виды статистиче­ского анализа).

II. Специальные методы

3.1. Деревья решений (decision trees)

Деревья решения являются одним из наиболее популярных подходов к решению задач Data Mining. Метод используется прежде всего для решения задач классификации, но не только.

В результате применения этого метода к обучающей выборке данных создается иерархическая структура классифицирующих правил типа «ЕСЛИ... ТО...», имеющая вид дерева (это похоже на определитель видов из ботаники или зоологии). Для принятия решения, к какому классу отнести некоторый объект или ситуацию, требуется ответить на вопросы, стоящие в узлах этого дерева, начиная с его корня.  Вопросы могут иметь вид «значение параметра A больше x?» для случая измеряемых переменных или вида «значение переменной В принадлежит подмножеству признаков С». Если ответ положительный, мы переходим к правому узлу следующего уровня, если отрицательный – то к левому узлу; затем снова отвечаем на вопрос, связанный с соответствующим узлом. Таким образом мы, в конце концов, доходим до одного из оконечных узлов – листьев, где стоит указание, к какому классу (сочетанию признаков) надо отнести рассматриваемый объект. Этот метод хорош тем, что такое представление правил наглядно и его легко понять.

 

3.2. Нейронные сети

Нейронные сети относятся к классу нелинейных адаптивных систем, основанных на биологической анало­гии с мозгом человека с архитектурой, условно имитирующей нервную ткань из нейронов. Математическая модель нейрона представляет собой некоторый универсальный нелинейный элемент с возможностью широкого изменения и настройки его характеристик. В одной из наиболее распространенных нейросетевых архитектур – многослойном персептроне с обратным распространением ошибки – эмулируется работа нейронов в составе иерархической сети, где каждый нейрон более высокого уровня соединен своими входами с выходами нейронов нижележащего слоя. На нейроны самого нижнего слоя подаются значения входных параметров, на основе которых производятся вычисления, необходимые для принятия решений, прогнозирования развития ситуации и т.д. Эти значения рассматриваются как сигналы, передающиеся в вышележащий слой, ослабляясь или усиливаясь в зависимости от числовых значений (весов), приписываемых межнейронным связям. В результате этого на выходе нейрона самого верхнего слоя вырабатывается некоторое значение, которое рассматривается как ответ, реакция всей сети на введенные значения входных параметров.

Типы нейросетей

Искусственный нейрон задается совокупностью своих входов, весами входов, функцией состояния s и функцией активации f. Функция состояния определяет состояние нейрона в зависимости от значений его входов, весов входов и, возможно, предыдущих состояний. Наиболее часто используются функции состояния, не зависящие от предыдущего состояния, вычисляемые либо как сумма произведений значений входов на веса соответствующих входов по всем входам, либо как расстояние между вектором входов и вектором весов входов, измеряемое в какой-либо метрике.

Одноместная функция активации у = f(s) определяет выходной сигнал ней­рона как функцию его состояния s. Наиболее распространенными функциями активации являются ступенчатая пороговая, линейная пороговая, сигмоидная, я также линейная и гауссиана, приведенные в таблице.

Название

Определение

Ступенчатая пороговая

y=0 при s<a, y=1 при s>=a

Линейная пороговая

y=0 при s<a1, y=ks+b при  a1<=s<a2, y=1 при s>=a2

Сигмоидальная

y=(1+ek(s-a))-1

Линейная

y=ks+b

Гауссиана

y=ek(s-a)2

Линейные нейронные сети используют нейроны с линейной функцией активации. Нелинейные применяют нелинейную функцию активации, например, пороговую или сигмоидную.

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

Пример нейронной сети без циклов

Пример циклической нейронной сети

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

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

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

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

Нейронные сети представляют собой типичный пример модели "черного ящика", когда основное внимание сосредотачивается исключи­тельно на практическом результате, в данном случае на точности прогнозов, а не на сути механизмов, лежащих в основе явления или соответствии полученных результатов какой-либо имеющейся теории.

Недостатками нейронных сетей являются

-        то обстоятельство, что окончательное решение за­висит от начальных установок сети;

-        необходимость иметь очень большой объем обучающей выборки;

-        даже натренированная нейронная сеть представляет собой черный ящик со всеми вытекающими отсюда последствиями.

3.3. Нечеткая логика

Нечеткая логика (fuzzy logic) это надмножество классической булевой логики. Она расширяет возможности классической логики, позволяя применять концепцию неопределенности в логических выводах. Аппарат нечеткой логики столь же строг и точен, как и класси­ческий, но вместе со значениями "ложь" и "истина" он позволяет оперировать значениями в промежутке между ними. Нечеткая логика применяется в тех случаях, когда необходимо манипулировать степенью «может быть» в дополнении к «да» и «нет».

Часто для иллюстрации связи нечеткой логики с естественными представ­лениями человека об окружающем мире приводят пример о пустыне. Опреде­лим понятие "пустыня" как "бесплодная территория, покрытая песком". Те­перь рассмотрим простейшее высказывание: "Сахара – это пустыня". Нельзя не согласиться с ним, принимая во внимание данное выше определение. Пред­положим, что с поверхности Сахары удалена одна песчинка. Осталась ли Саха­ра пустыней? Скорее всего, да. Продолжая удалять песчинки одну за другой, всякий раз оцениваем справедливость приведенного ранее высказывания. По прошествии определенного промежутка времени песка в Сахаре не останется и высказывание станет ложным. Но после какой именно песчинки его истин­ность меняется? В реальной жизни с удалением одной песчинки пустыня не исчезает. Пример показывает, что традиционная логика не всегда согласуется с представлениями человека. Для оценки степени истинности высказываний ес­тественный язык имеет специальные средства (некоторые наречия и обороты, например: "в некоторой степени", "очень" и др.).

Одно из базовых понятий традиционной логики – понятие подмножества. Подобно этому в основе нечеткой логики лежит теория нечетких подмножеств (нечетких множеств). Эта теория занимается рассмотрением множеств, определяемых небинарными отношениями вхождения. Это означает, что принима­ется во внимание не просто то, входит элемент во множество или не входит, но и степень его вхождения, которая может изменяться от 0 до 1.

Пусть S – множество с конечным числом элементов, S={s1,s2,..., sn), где п – число элементов (мощность) множества S. В классичес­кой теории множеств подмножество U множества S может быть определено как отображение элементов S на множество В = {0,1}:

U: S => B.

Это отображение может быть представлено множеством упорядоченных пар:

{si, mUшi},     i Î [1, n],

где si i-й элемент множества S; n – мощность множества S; mUi. – элемент множества В = {0, 1}. Если mUi = 1, то si является элементом подмножества U. Элемент "0" множества В используется для обозначения того, что si не входит в подмножество U. Проверка истинности предиката "sk  Î U" осуществляется пу­тем нахождения пары, в которой sk – первый элемент. Если для этой пары mUk = 1, то значением предиката будет "истина", в противном случае – "ложь".

Если U – подмножество S, то U может быть представлено n-мерным векто­ром (mU1, mU2,..., mUn), где i-й элемент вектора равен "1", если соответствую­щий элемент множества S входит и в U, и "0" в противном случае. Таким обра­зом, U может быть однозначно представлено точкой в n-мерном бинарном ги­перкубе Вn, В = {0, 1}.

Графическое представление традиционного множества.

Нечеткое подмножество F может быть представлено как отображение элементов множества S на интервал I=[0,1]. Это отображение определяется множеством упорядоченных пар:

{ si , mF(si)},     i Î [1, n],

где sii-й элемент множества S; n – мощность множества S; mF(si) Î [0, 1] – степень вхождения элемента si в множество F. Значение mF(si), равное 1, озна­чает полное вхождение, mF(si)=0 указывает на то, что элемент si не принадле­жит множеству F. Часто отображение задается функцией mF(x) принадлежнос­ти х нечеткому множеству F. В силу этого термины "нечеткое подмножество" и "функция принадлежности" употребляются как синонимы. Степень истиннос­ти предиката "sk Î F" определяется путем нахождения парного элементу sk зна­чения mF(sk), определяющего степень вхождения sk в F.

Обобщая геометрическую интерпретацию традиционного подмножества на нечеткий случай, получаем представление F точкой в гиперкубе In, I = [0,1]. В отличие от традиционных подмножеств точки, изображающие нечеткие подмножества, мо­гут находиться не только на вершинах гиперкуба, но и внутри него.

Графическое представление нечеткого множества.

Рассмотрим пример определения нечеткого подмножества. Имеется мно­жество всех людей S. Определим нечеткое подмножество Т всех высоких лю­дей этого множества. Введем для каждого человека степень его принадлежно­сти подмножеству Т. Для этого зададим функцию принадлежности mT(h), оп­ределяющую, в какой степени можно считать высоким человека ростом h сан­тиметров.

где h рост конкретного человека в сантиметрах.

График функции принадлежности

Пусть рост Михаила – 163 см, тогда истинность высказывания "Михаил высок" будет равна 0.21. Использованная в данном случае функция принад­лежности тривиальна. При решении большинства реальных задач подобные функции имеют более сложный вид, кроме того, число их аргументов может быть большим.

Методы построения функций принадлежности для нечетких подмножеств довольно разнообразны. В большинстве случаев они отражают субъективные представления экспертов о предметной области. Так, например, кому-то чело­век ростом 180 см может показаться высоким, а кому-то – нет. Однако часто такая субъективность помогает снизить степень неопределенности при реше­нии слабо формализованных задач. Как правило, для задания функций принад­лежности используются типовые зависимости, параметры которых определя­ются путем обработки мнений экспертов.

Необходимо осознавать разницу между нечеткой логикой и теорией вероятностей. Заключается она в различии понятий вероятности и степени принадлежности. Вероятность определяет, насколько возможен один из нескольких взаимоисключающих исходов или одно из множества значений. Например, может определяться вероятность того, что утверждение истинно. Утверждение может быть либо истинным, либо ложным. Степень принадлежности показы­вает, насколько то или иное значение принадлежит определенному классу (под­множеству). Например, при определении истинности утверждения ее возмож­ные значения не ограничены "ложью" и "истиной", а могут попадать и в проме­жуток между ними. Еще одно различие выражено в математических свойствах этих понятий. В отличие от вероятности для степени принадлежности не требуется выполнение аксиомы аддитивности.

3.4. Генетические алгоритмы

Эволюционные вычисления и традиционные методы оптимизации

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

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

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

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

На сегодняшний день можно выделить три основных типа методов поиска оптимальных решений:

-        методы, основанные на математических вычислениях;

-        перечислительные методы;

-        методы, использующие элемент случайности.

Методы, основанные на математических вычислениях, изучены наиболее полно.

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

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

Недостаток этих методов очевиден. При увеличении размерности простран­ства поиска (числа аргументов целевой функции) количество точек простран­ства значительно увеличивается.

В основе методов, использующих элементы случайности, лежит случайный поиск в пространстве задачи с сохранением наилучшего полученного результата. Очевидно, что применение такого метода не гарантирует получения оптималь­ного решения.

Вместе с тем следует заметить, что сейчас при решении очень сложных задач основной целью является поиск уже не оптимального, а более "хорошего” решения по сравнению с полученным ранее или заданным в качестве на­чального. Здесь методы, использующие элемент случайности, получают опре­деленное преимущество перед остальными. Однако даже с такими допущени­ями непосредственный случайный поиск является малоэффективным. Иссле­дования показали, что внесение в такие методы элементов детерминированно­сти дает значительное улучшение показателей. Одним из типов таких "частич­но" случайных методов являются эволюционные вычисления.

Эволюционные вычисления – термин, обычно используемый для общего описания алгоритмов поиска, оптимизации или обучения, основанных на не­которых формализованных принципах естественного эволюционного процес­са. Основное преимущество эволюционных вычислений в этой области заключается в возможности решения многомодальных (имеющих несколько локальных экстремумов) задач с большой размерностью за счет сочетания эле­ментов случайности и детерминированности точно так, как это происходит в природной среде.

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

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

Среди этих моделей эволюционных вычислений можно выделить три основные парадигмы:

-        генетические алгоритмы;

-        эволюционные стратегии;

-        эволюционное программирование.

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

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

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

Отрицательной чертой эволюционных вычислений является то, что они представляют собой, скорее, подход к решению задач оптимизации, чем алго­ритм. И вследствие этого требуют адаптации к каждому конкретному классу задач путем выбора определенных характеристик и параметров, речь о кото­рых применительно к генетическим алгоритмам пойдет ниже.

Основы теории генетических алгоритмов

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

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

Генетические алгоритмы имеют четыре основных отличия от традиционных методов.

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

2. Для поиска генетический алгоритм использует несколько точек поискового пространства одновременно, а не переходит от точки к точке, как это делается в традиционных методах. Это позволяет преодолеть один из их недостатков - опасность попадания в локальный экстремум целевой функции.

3. Генетические алгоритмы в процессе работы не используют ника­кой дополнительной информации, что повышает скорость работы. Единствен­ной используемой информацией может быть область допустимых значений параметров и целевой функции в произвольной точке.

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

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

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

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

В процессе работы алгоритма генерация новых особей происходит на ос­нове моделирования процесса размножения. При этом, естественно, порожда­ющие особи называются родителями, а порожденные – потомками. Родительс­кая пара, как правило, порождает пару потомков. Непосредственная генерация новых кодовых строк из двух выбранных происходит за счет работы оператора скрещивания, который также называют кроссинговером (от англ. crossover). При порождении новой популяции оператор скрещивания может применяться не ко всем парам родителей. Часть этих пар может переходить в популяцию сле­дующего поколения непосредственно. Насколько часто будет возникать такая ситуация, зависит от значения вероятности применения оператора скрещива­ния, которая является одним из параметров генетического алгоритма.

Моделирование процесса мутации новых особей осуществляется за счет работы оператора мутации. Основным параметром оператора мутации также является вероятность мутации.

Поскольку размер популяции фиксирован, то порождение потомков долж­но сопровождаться уничтожением других особей. Выбор пар родителей из по­пуляции для порождения потомков производит оператор отбора, а выбор осо­бей для уничтожения – оператор редукции. Основным параметром их работы является, как правило, качество особи, которое определяется значением целе­вой функции в точке пространства поиска, описываемой этой особью.

Ниже перечислены основные понятия и термины, используемые в области генетических алгоритмов:

-        генотип и фенотип;

-        генотип и фенотип;

-        особь и качество особи;

-        популяция и размер популяции;

-        поколение;

-        родители и потомки.

К характеристикам генетического алгоритма относятся:

-        размер популяции;

-        оператор скрещивания и вероятность его использования;

-        оператор мутации и вероятность мутации;

-        оператор отбора;

-        оператор редукции;

-        критерий останова.

Операторы отбора, скрещивания, мутации и редукции называют еще генетическими операторами.

Критерием останова работы генетического алгоритма может быть одно из трех событий:

-        сформировано заданное пользователем число поколений;

-        популяция достигла заданного пользователем качества (например, зна­чение качества всех особей превысило заданный порог);

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

Формирование исходной популяции происходит, как правило, с использованием какого-либо случайного закона, на основе которого выбирается нужное количество точек поискового пространства. Исходная популяция может также быть результатом работы какого-либо другого алгоритма оптимизации. Об­щая схема работы генетического алгоритма представлена ниже.

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

где n – размер популяции, i – номер особи, Рi – вероятность участия особи в процессе размножения, fj - значение целевой функции для i-й особи. Очевид­но, что одна особь может быть задействована в нескольких родительских па­рах.

Аналогично может быть решен вопрос уничтожения особей. Вероятность уничтожения, соответственно, должна быть обратно пропорциональна качеству особей. Однако обычно происходит просто уничтожение особей с наи­худшим качеством. Таким образом, выбирая для размножения наиболее каче­ственные особи и уничтожая наиболее слабые, генетический алгоритм посто­янно улучшает популяцию, ведя к нахождению все лучших решений.

Ниже описан простейший оператор скрещивания. Он выполняется в два этапа. Пусть особь представляет собой строку из n элементов. На первом этапе равновероятно выбирается натуральное число к от 1 до п-1. Это число называется точкой разбиения. В соответствии с ним обе исходные строки разбиваются на две подстроки. На втором этапе строки обмениваются своими подстроками, лежащими после точки разбиения, то есть элементами с k+1-го по n-й. В результате по­лучаются две новые строки, которые наследовали частично свойства обоих родителей. Этот процесс проиллюстрирован ниже.

строка1   Х1Х2     ...      XkXk+1    ...    Xn         à            X1X2     ...     XkYk+1    ...    Yn

строка2   Y1Y2      ...     YkYk+1    ...    Yn         à            Y1Y2    ...     YkXk+1    ...     Xn

Вероятность применения оператора скрещивания обычно выбирается достаточно большой, в пределах от 0,9 до 1, чтобы обеспечить постоянное появление новых особей, расширяющих пространство поиска. При значении вероятности меньше 1 часто используют элитизм. Это особая стратегия, которая предполага­ет переход в популяцию следующего поколения элиты, то есть лучших особей текущей популяции, без всяких изменений. Применение элитизма способствует сохранению общего качества популяции на высоком уровне. При этом элитные особи участвуют еще и в процессе отбора родителей для последующего скрещи­вания. Количество элитных особей определяется обычно по формуле:

K = (1-P)*N,

где К – количество элитных особей, Р – вероятность применения оператора скрещивания, N – размер популяции.

В случае использования элитизма все выбранные родительские пары подвергаются скрещиванию, несмотря на то, что вероятность применения опера­тора скрещивания меньше 1. Это позволяет сохранять размер популяции по­стоянным.

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

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

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

После завершения работы генетического алгоритма из конечной популя­ции выбирается та особь, которая дает максимальное (или минимальное) зна­чение целевой функции и является, таким образом, результатом работы генети­ческого алгоритма. За счет того, что конечная популяция лучше исходной, по­лученный результат представляет собой улучшенное решение.

Примеры решения задач

Описав смысл терминов, понятий и характеристик генетического алгорит­ма, а также процесс его работы, рассмотрим примеры решения некоторых оптимизационных задач с использованием генетических алгоритмов, чтобы проиллюстрировать рассмотренные положения (см. Генетические алгоритмы).