Информационные технологии в экономике

Интеллектуальные задачи в экономике

Разбить на страницы
Показывать лекцию целиком

11.1. Экономика в Искусственном Интеллекте

Экономика как наука возникла в 1776 году, когда шотландский философ Адам Смит (1723—1790) опубликовал свою книгу An Inquiry into the Nature and Causes of the Wealth of Nations (Исследование о природе и причинах богатства народов). Важный вклад в экономику был сделан еще древнегреческими учёными и другими предшественниками Смита, но только Смит впервые сумел оформить эту область знаний как науку, используя идею, что любую экономику можно рассматривать как состоящую из отдельных агентов, стремящихся максимизировать свое собственное экономическое благосостояние.

Большинство людей считают, что экономика посвящена изучению денежного оборота, но любой экономист ответит на это, что в действительности он изучает то, как люди делают выбор, который ведёт к предпочтительным для них результатам. Математическая трактовка понятия "предпочтительных результатов", или полезности, была впервые формализована Леоном Валрасом (1834—1910), уточнена Фрэнком Рамсеем, а затем усовершенствована Джоном фон Нейманом и Оскаром Моргенштерном в книге The Theory of Games and Economic Behavior (Теория игр и экономического поведения).

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

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

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

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

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

В работе Ричарда Беллмана формализован определённый класс последовательных задач выработки решений, называемых марковскими процессами принятия решений (Markov Decision Process — MDP).

Работы в области экономики и исследования операций оказали большое влияние на сформулированное понятие рациональных агентов, но в течение многих лет исследования в области искусственного интеллекта проводились совсем по другим направлениям. Одной из причин этого была кажущаяся сложность задачи выработки рациональных решений. Тем не менее, Герберт Саймон (1916—2001) в некоторых из своих ранних работ показал, что лучшее описание фактического поведения человека дают модели, основанные на удовлетворении (принятии решений, которые являются "достаточно приемлемыми"), а не модели, предусматривающие трудоёмкий расчёт оптимального решения. Он стал одним из первых исследователей в области искусственного интеллекта, получившим Нобелевскую премию по экономике (это произошло в 1978 году). В 1990-х годах наблюдалось возрождение интереса к использованию методов теории решений для систем агентов.

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

Математическая теория нечётких множеств (fuzzy sets) и нечёткая логика (fuzzy logic) являются обобщениями классической теории множеств и классической формальной логики. Данные понятия были впервые предложены американским учёным Лотфи Заде (Lotfi Zadeh) в 1965 г. Основной причиной появления новой теории стало наличие нечётких и приближённых рассуждений при описании человеком процессов, систем, объектов.

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

Первый период (конец 60-х–начало 70 г.г.) характеризуется развитием теоретического аппарата нечётких множеств (Л. Заде, Э. Мамдани, Беллман). Во втором периоде (70–80-е годы) появляются первые практические результаты в области нечёткого управления сложными техническими системами (парогенератор с нечётким управлением). Одновременно стало уделяться внимание вопросам построения экспертных систем, построенных на нечёткой логике, разработке нечётких контроллеров. Нечёткие экспертные системы для поддержки принятия решений находят широкое применение в медицине и экономике. Наконец, в третьем периоде, который длится с конца 80-х годов и продолжается в настоящее время, появляются пакеты программ для построения нечётких экспертных систем, а области применения нечёткой логики заметно расширяются. Она применяется в автомобильной, аэрокосмической и транспортной промышленности, в области изделий бытовой техники, в сфере финансов, анализа и принятия управленческих решений и многих других.

Триумфальное шествие нечёткой логики по миру началось после доказательства в конце 80-х Бартоломеем Коско знаменитой теоремы FAT (Fuzzy Approximation Theorem). В бизнесе и финансах нечёткая логика получила признание после того как в 1988 году экспертная система на основе нечётких правил для прогнозирования финансовых индикаторов единственная предсказала биржевой крах. И количество успешных фаззи - применений в настоящее время исчисляется тысячами.

Математический аппарат

Характеристикой нечёткого множества выступает функция принадлежности (Membership Function). Обозначим через MFc(x) – степень принадлежности к нечёткому множеству C, представляющей собой обобщение понятия характеристической функции обычного множества. Тогда нечётким множеством С называется множество упорядоченных пар вида $$C={MF_c(x)/x}, MF_c(x) [0,1]$$. Значение $$MF_c(x)=0$$ означает отсутствие принадлежности к множеству, 1 – полную принадлежность.

Проиллюстрируем это на простом примере. Формализуем неточное определение "горячий чай". В качестве x (область рассуждений) будет выступать шкала температуры в градусах Цельсия. Очевидно, что она будет изменяться от 0 до 100 градусов. Нечёткое множество для понятия "горячий чай" может выглядеть следующим образом:

$$C={0/0; 0/10; 0/20; 0,15/30; 0,30/40; 0,60/50; 0,80/60; 0,90/70; 1/80; 1/90; 1/100}.$$

Так, чай с температурой 60 С принадлежит к множеству "Горячий" со степенью принадлежности 0,80. Для одного человека чай при температуре 60 С может оказаться горячим, для другого – не слишком горячим. Именно в этом и проявляется нечёткость задания соответствующего множества.

Для нечётких множеств, как и для обычных, определены основные логические операции. Самыми основными, необходимыми для расчётов, являются пересечение и объединение.

Пересечение двух нечётких множеств (нечёткое "И"): A B:

$$MFAB(x)=min(MFA(x), MFB(x)).$$

Объединение двух нечётких множеств (нечеткое "ИЛИ"):

$$MFAB(x)=max(MFA(x), MFB(x)).$$ $$MF(x)=\begin{cases} 1-\frac{b-x}{b-a}, a \le x \le b\\ 1-\frac{x-с}{с-b}, b \le x \le c\\ 0,\text{в остальных случаях} \end{cases}$$

При $$(b-a)=(c-b)$$ имеем случай симметричной треугольной функции принадлежности, которая может быть однозначно задана двумя параметрами из тройки $$(a,b,c)$$.

Аналогично для задания трапецеидальной функции принадлежности необходима четвёрка чисел $$(a,b,c,d)$$:

$$ MF(x)=\begin{cases} 1-\frac{b-x}{b-a}, a \le x \le b\\ 1, a \le x \le b\\ 1-\frac{x-d}{d-c}, c \le x \le d\\ 0,\text{в остальных случаях} \end{cases} $$

При (b-a)=(d-c) трапецеидальная функция принадлежности принимает симметричный вид.

(рис 11.1) Типовые кусочно-линейные функции принадлежности

Функция принадлежности гауссова типа описывается формулой $$MF(x)=exp \left [- \left ( \frac{x-c}{\sigma}\right)^2\right]$$ и оперирует двумя параметрами. Параметр c обозначает центр нечёткого множества, а параметр отвечает за крутизну функции.

(рис 11.2) Гауссова функция принадлежности

Совокупность функций принадлежности для каждого терма из базового терм-множества T обычно изображается вместе на одном графике. На рис.11.3 приведён пример описанной выше лингвистической переменной "Цена акции", на рис.11.4 – формализация неточного понятия "Возраст человека". Так, для человека 48 лет степень принадлежности к множеству "Молодой" равна 0, "Средний" – 0,47, "Выше среднего" – 0,20.

(рис 11.3) Описание лингвистической переменной "Цена акции" (рис 11.4) Описание лингвистической переменной "Возраст"

Количество термов в лингвистической переменной редко превышает 7.

Нечёткий логический вывод

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

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

    Пусть в базе правил имеется m правил вида:

    $$R_1: ЕСЛИ\ x_1\ это\ A_{11} … И … x_n\ это\ A_{1n},\ ТО\ y\ это\ B_1$$

    . . .

    $$R_i: ЕСЛИ\ x_1\ это\ A_{i1} … И … x_n\ это\ A_{in},\ ТО\ y\ это\ B_i$$

    . . .

    $$R_m: ЕСЛИ\ x_1\ это\ A_{i1} … И … x_n\ это\ A_{mn},\ ТО\ y\ это\ B_m,$$

    где $$x_k , k=1..n$$ – входные переменные; y – выходная переменная; $$A_{ik}$$ – заданные нечёткие множества с функциями принадлежности.

    Результатом нечёткого вывода является чёткое значение переменной y* на основе заданных чётких значений $$x_k , k=1..n$$.

    В общем случае механизм логического вывода включает четыре этапа: введение нечёткости (фазификация), нечёткий вывод, композиция и приведение к чёткости, или дефазификация (рис.11.5).

    (рис 11.5) Система нечёткого логического вывода

    Алгоритмы нечёткого вывода различаются главным образом видом используемых правил, логических операций и разновидностью метода дефазификации. Разработаны модели нечёткого вывода Мамдани, Сугено, Ларсена, Цукамото.

    Рассмотрим подробнее нечёткий вывод на примере механизма Мамдани (Mamdani). Это наиболее распространённый способ логического вывода в нечётких системах. В нём используется минимаксная композиция нечётких множеств. Данный механизм включает в себя следующую последовательность действий.

  • Процедура фазификации: определяются степени истинности, т.е. значения функций принадлежности для левых частей каждого правила (предпосылок). Для базы правил с m правилами обозначим степени истинности как $$A_{ik}(x_k), i=1..m, k=1..n$$.
  • Нечёткий вывод. Сначала определяются уровни "отсечения" для левой части каждого из правил: $$alpha_i = min \limits_i (A_{ik}(x_k))$$

    Далее находятся "усечённые" функции принадлежности:

    $$B_i* (y)=min_i(alpha_i, B_i(y))$$
  • Композиция, или объединение полученных усечённых функций, для чего используется максимальная композиция нечётких множеств: $$MF(y)=max_i (B_i* (y))$$, где MF(y) – функция принадлежности итогового нечёткого множества.
  • Дефазификация, или приведение к чёткости. Существует несколько методов дефазификации. Например, метод среднего центра, или центроидный метод: $$MF(y)=max_i (B_i* (y))$$
  • Геометрический смысл такого значения – центр тяжести для кривой MF(y). Рис.11.6 графически показывает процесс нечёткого вывода по Мамдани для двух входных переменных и двух нечётких правил R1 и R2.

    (рис 11.6) Схема нечёткого вывода по Мамдани

    Интеграция с интеллектуальными парадигмами

    Гибридизация методов интеллектуальной обработки информации – девиз, под которым прошли 90-е годы у западных и американских исследователей. В результате объединения нескольких технологий искусственного интеллекта появился специальный термин – "мягкие вычисления" (soft computing), который ввел Л. Заде в 1994 году. В настоящее время мягкие вычисления объединяют такие области как: нечёткая логика, искусственные нейронные сети, вероятностные рассуждения и эволюционные алгоритмы. Они дополняют друг друга и используются в различных комбинациях для создания гибридных интеллектуальных систем.

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

    Нечёткие нейронные сети

    Нечёткие нейронные сети (fuzzy-neural networks) осуществляют выводы на основе аппарата нечёткой логики, однако параметры функций принадлежности настраиваются с использованием алгоритмов обучения нейронных сетей (НС). Поэтому для подбора параметров таких сетей применим метод обратного распространения ошибки, изначально предложенный для обучения многослойного персептрона. Для этого модуль нечёткого управления представляется в форме многослойной сети. Нечёткая нейронная сеть, как правило, состоит из четырех слоёв: слоя фазификации входных переменных, слоя агрегирования значений активации условия, слоя агрегирования нечётких правил и выходного слоя.

    Наибольшее распространение в настоящее время получили архитектуры нечёткой НС вида ANFIS и TSK. Доказано, что такие сети являются универсальными аппроксиматорами.

    Быстрые алгоритмы обучения и интерпретируемость накопленных знаний – эти факторы сделали сегодня нечёткие нейронные сети одним из самых перспективных и эффективных инструментов мягких вычислений.

    Адаптивные нечёткие системы

    Классические нечёткие системы обладают тем недостатком, что для формулирования правил и функций принадлежности необходимо привлекать экспертов той или иной предметной области, что не всегда удаётся обеспечить. Адаптивные нечёткие системы (adaptive fuzzy systems) решают эту проблему. В таких системах подбор параметров нечёткой системы производится в процессе обучения на экспериментальных данных. Алгоритмы обучения адаптивных нечётких систем относительно трудоёмки и сложны по сравнению с алгоритмами обучения нейронных сетей, и, как правило, состоят из двух стадий:

  • Генерация лингвистических правил;
  • Корректировка функций принадлежности.
  • Первая задача относится к задаче переборного типа, вторая – к оптимизации в непрерывных пространствах. При этом возникает определённое противоречие: для генерации нечётких правил необходимы функции принадлежности, а для проведения нечёткого вывода – правила. Кроме того, при автоматической генерации нечётких правил необходимо обеспечить их полноту и непротиворечивость.

    Значительная часть методов обучения нечётких систем использует генетические алгоритмы. В англоязычной литературе этому соответствует специальный термин – Genetic Fuzzy Systems.

    Значительный вклад в развитие теории и практики нечётких систем с эволюционной адаптацией внесла группа испанских исследователей во главе с Ф. Херрера (F. Herrera).

    Нечёткие запросы

    Нечёткие запросы к базам данных (fuzzy queries) – перспективное направление в современных системах обработки информации. Данный инструмент даёт возможность формулировать запросы на естественном языке, например: "Вывести список недорогих предложений о съёме жилья близко к центру города", что невозможно при использовании стандартного механизма запросов. Для этой цели разработана нечёткая реляционная алгебра и специальные расширения языков SQL для нечётких запросов. Большая часть исследований в этой области принадлежит западноевропейским ученым Д. Дюбуа и Г. Праде.

    Нечёткие ассоциативные правила

    Нечёткие ассоциативные правила (fuzzy associative rules) – инструмент для извлечения из баз данных закономерностей, которые формулируются в виде лингвистических высказываний. Здесь введены специальные понятия нечёткой транзакции, поддержки и достоверности нечёткого ассоциативного правила.

    Нечёткие когнитивные карты

    Нечёткие когнитивные карты (fuzzy cognitive maps) были предложены Б. Коско в 1986 г. и используются для моделирования причинных взаимосвязей, выявленных между концептами некоторой области. В отличие от простых когнитивных карт, нечёткие когнитивные карты представляют собой нечёткий ориентированный граф, узлы которого являются нечёткими множествами. Направленные рёбра графа не только отражают причинно-следственные связи между концептами, но и определяют степень влияния (вес) связываемых концептов. Активное использование нечётких когнитивных карт в качестве средства моделирования систем обусловлено возможностью наглядного представления анализируемой системы и с лёгкостью интерпретации причинно-следственных связей между концептами. Основные проблемы связаны с процессом построения когнитивной карты, который не поддаётся формализации. Кроме того, необходимо доказать, что построенная когнитивная карта адекватна реальной моделируемой системе. Для решения данных проблем разработаны алгоритмы автоматического построения когнитивных карт на основе выборки данных.

    Нечёткая кластеризация

    Нечёткие методы кластеризации, в отличие от чётких методов (например, нейронные сети Кохонена), позволяют одному и тому же объекту принадлежать одновременно нескольким кластерам, но с различной степенью. Нечёткая кластеризация во многих ситуациях более "естественна", чем чёткая, например, для объектов, расположенных на границе кластеров. Наиболее распространены: алгоритм нечёткой самоорганизации c-means и его обобщение в виде алгоритма Густафсона-Кесселя.

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

    11.3. Нейронные сети в экономике

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

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

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

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

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

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

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

    Для финансовых операций:

  • Прогнозирование поведения клиента.
  • Прогнозирование и оценка риска предстоящей сделки.
  • Прогнозирование возможных мошеннических действий.
  • Прогнозирование остатков средств на корреспондентских счетах банка.
  • Прогнозирование движения наличности, объёмов оборотных средств.
  • Прогнозирование экономических параметров и фондовых индексов.
  • Для планирования работы предприятия:

  • Прогнозирование объёмов продаж.
  • Прогнозирование загрузки производственных мощностей.
  • Прогнозирование спроса на новую продукцию.
  • Для бизнес - аналитики и поддержки принятия решений:

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

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

    Независимый экспертный совет по стратегическому анализу проблем внешней и внутренней политики при Совете Федерации НИИ искусственного интеллекта представил проект "Технология нового поколения на основе недоопределённых вычислений и её использование для разработки экспериментальной модели макроэкономики РФ". Появилась возможность просчитывать исход любого действия или предложения, касающегося бюджета страны, на много лет вперёд.

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

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

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

    Разработчики проекта создали пока лишь демонстрационную модель, охватывающую около 300 параметров и период от 1990-го до 1999 года. Но для нормальной работы необходимо не менее 1000 параметров. И такая работа может быть проведена, если на неё будут отпущены средства. Надо провести множество прикладных работ, необходимы фундаментальные исследования по обоим основным составляющим проекта - математической и экономической. Здесь нужна серьёзная государственная материальная поддержка.

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

    Интерес к искусственным нейронным сетям в России очень вырос за последние несколько лет. Возможность быстрого обучения и достоверность выводов позволяет рекомендовать нейросетевые экспертные системы как один из обязательных инструментов во многих аспектах современного бизнеса. Нейронные сети обладают огромным преимуществом перед традиционным трудозатратным и более длительным путём обобщения знаний людей-экспертов.

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

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

    Финансовый рынок достаточно инерционен, у него есть своя определённая "замедленная реакция", зная которую можно довольно точно вычислять грядущую ситуацию. А насколько точно - это зависит от условий рынка и квалификации оператора.

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

    Над созданием нейронных сетей различного назначения в настоящее время трудятся сотни всемирно известных, а также мелких начинающих фирм. Мировой рынок предлагает более сотни нейросетевых пакетов, преимущественно — американских. Общий объём рынка нейронных сетей к 2005 году превысил $10 млрд. И, практически, каждый разработчик традиционных аналитических пакетов сегодня стремится включить нейронные сети в новые версии своих программ. В США нейронные сети применяются в аналитических комплексах каждого крупного банка.

    Продажа одного только нейросетевого пакета "Brain Maker Pro" сравнима с объёмами продаж самого популярного пакета технического анализа MetaStock (в США продано более 20000 копий Brain Maker Pro).

    Хорошо зарекомендовал себя пакет "The AI Trilogy". ("Трилогия искусственного интеллекта") американской фирмы "Ward Systems Group". Это набор из трёх программ, каждая из которых может использоваться как самостоятельно, так и в комбинации с остальными.

    Так, программа "NeuroShell II" — это набор из 16 типов нейронных сетей, "NeuroWindows" — нейросетевая библиотека с исходными текстами, "GeneHunter" — генетическая программа оптимизации. В совокупности они образуют мощный "конструктор", позволяющий строить аналитические комплексы любой сложности.

    "The AI Trilogy" на американском рынке пользуется большим спросом. Пакет установлен в 150 крупнейших банках США. Он многократно побеждал в престижных конкурсах популярных финансовых изданий и помогает управлять капиталами в несколько миллиардов долларов. Фирма "Du Pont" (институт стандартов США и ФБР) считает "Трилогию искусственного интеллекта" лучшей для решения различных задач.

    Интересен и знаменателен малоизвестный факт, что ключевые компоненты этого пакета были написаны российскими программистами. Своим обликом пакет обязан группе разработчиков из небольшой московской компании "Нейропроект" под руководством профессора Персиянцева. Она более трёх лет выполняла заказы фирмы "Ward Systems Group" и нашла удачные решения. Можно сказать, что русские программы управляют финансами Америки и задачами ФБР!

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

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

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

  • Богатые возможности. Нейронные сети - исключительно мощный метод моделирования, позволяющий воспроизводить чрезвычайно сложные зависимости. В частности, нейронные сети нелинейны по свой природе. На протяжении многих лет линейное моделирование было основным методом моделирования в большинстве областей, поскольку для него хорошо разработаны процедуры оптимизации. В задачах, где линейная аппроксимация неудовлетворительна (а таких достаточно много), линейные модели работают плохо. Кроме того, нейронные сети справляются с "проклятием размерности", которое не позволяет моделировать линейные зависимости в случае большого числа переменных
  • Простота в использовании. Нейронные сети учатся на примерах. Пользователь нейронной сети подбирает представительные данные, а затем запускает алгоритм обучения, который автоматически воспринимает структуру данных. При этом от пользователя, конечно, требуется какой-то набор эвристических знаний о том, как следует отбирать и подготавливать данные, выбирать нужную архитектуру сети и интерпретировать результаты, однако уровень знаний, необходимый для успешного применения нейронных сетей, гораздо скромнее, чем, например, при использовании традиционных методов статистики.
  • Нейронные сети привлекательны с интуитивной точки зрения, ибо они основаны на примитивной биологической модели нервных систем. В будущем развитие таких нейробиологических моделей может привести к созданию действительно мыслящих компьютеров. Между тем уже "простые" нейронные сети, которые строит система ST Neural Networks, являются мощным оружием в арсенале специалиста по прикладной статистике.

    Параллели из биологии

    Нейронные сети возникли из исследований в области искусственного интеллекта, а именно, из попыток воспроизвести способность биологических нервных систем обучаться и исправлять ошибки, моделируя низкоуровневую структуру мозга (Patterson, 1996). Основной областью исследований по искусственному интеллекту в 60-е - 80-е годы были экспертные системы. Такие системы основывались на высокоуровневом моделировании процесса мышления (в частности, на представлении, что процесс нашего мышления построен на манипуляциях с символами). Скоро стало ясно, что подобные системы, хотя и могут принести пользу в некоторых областях, не ухватывают некоторые ключевые аспекты человеческого интеллекта. Согласно одной из точек зрения, причина этого состоит в том, что они не в состоянии воспроизвести структуру мозга. Чтобы создать искусственный интеллект, необходимо построить систему с похожей архитектурой.

    Мозг состоит из очень большого числа (приблизительно 10,000,000,000) нейронов, соединённых многочисленными связями (в среднем несколько тысяч связей на один нейрон, однако это число может сильно колебаться).

    Нейроны - это специальные клетки, способные распространять электрохимические сигналы (рис.11.7).

    (рис 11.7) Структура нейрона

    Нейрон имеет разветвлённую структуру ввода информации (дендриты), ядро и разветвляющийся выход (аксон). Аксоны клетки соединяются с дендритами других клеток с помощью синапсов. При активации нейрон посылает электрохимический сигнал по своему аксону. Через синапсы этот сигнал достигает других нейронов, которые могут, в свою очередь, активироваться. Нейрон активируется тогда, когда суммарный уровень сигналов, пришедших в его ядро из дендритов, превысит определённый уровень (порог активации).

    Интенсивность сигнала, получаемого нейроном (а, следовательно, и возможность его активации), сильно зависит от активности синапсов. Каждый синапс имеет протяженность, и специальные химические вещества передают сигнал вдоль него. Один из самых авторитетных исследователей нейросистем, Дональд Хебб, высказал постулат, что обучение заключается, в первую очередь, в изменениях "силы" синоптических связей. Например, в классическом опыте Павлова каждый раз непосредственно перед кормлением собаки звонил колокольчик, и собака быстро научилась связывать звонок колокольчика с пищей. Синоптические связи между участками коры головного мозга, ответственными за слух, и слюнными железами усилились, и при возбуждении коры звуком колокольчика у собаки начиналось слюноотделение.

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

    Базовая искусственная модель

    Чтобы отразить суть биологических нейронных систем, определение искусственного нейрона даётся следующим образом:

  • Он получает входные сигналы (исходные данные либо выходные сигналы других нейронов нейронной сети) через несколько входных каналов. Каждый входной сигнал проходит через соединение, имеющее определённую интенсивность (или вес); этот вес соответствует синоптической активности биологического нейрона. С каждым нейроном связано определённое пороговое значение. Вычисляется взвешенная сумма входов, из неё вычитается пороговое значение, и в результате получается величина активации нейрона (она также называется пост - синоптическим потенциалом нейрона - PSP).
  • Сигнал активации преобразуется с помощью функции активации (или передаточной функции), и в результате получается выходной сигнал нейрона.
  • При этом используется ступенчатая функция активации (т.е. выход нейрона равен нулю, если вход отрицательный, и единице, если вход нулевой или положительный). Такой нейрон будет работать точно так же, как описанный выше естественный нейрон (вычесть пороговое значение из взвешенной суммы и сравнить результат с нулем - это то же самое, что сравнить взвешенную сумму с пороговым значением). В действительности пороговые функции редко используются в искусственных нейронных сетях. Веса могут быть отрицательными, - это значит, что синапс оказывает на нейрон не возбуждающее, а тормозящее воздействие (в мозге присутствуют тормозящие нейроны).

    Это было описание отдельного нейрона. Теперь возникает вопрос: как соединять нейроны друг с другом? Если сеть предполагается для чего-то использовать, то у неё должны быть входы (принимающие значения интересующих нас переменных из внешнего мира) и выходы (прогнозы или управляющие сигналы). Входы и выходы соответствуют сенсорным и двигательным нервам - например, соответственно, идущим от глаз и в руки. Кроме этого, однако, в сети может быть ещё много промежуточных (скрытых) нейронов, выполняющих внутренние функции. Входные, скрытые и выходные нейроны должны быть связаны между собой.

    Ключевой вопрос здесь - обратная связь (Haykin, 1994). Простейшая сеть имеет структуру прямой передачи сигнала: сигналы проходят от входов через скрытые элементы и в конце концов приходят на выходные элементы. Такая структура имеет устойчивое поведение. Если же сеть рекуррентная (т.е. содержит связи, ведущие назад от более дальних к более ближним нейронам), то она может быть неустойчива и иметь очень сложную динамику поведения. Рекуррентные сети представляют большой интерес для исследователей в области нейронных сетей, однако при решении практических задач, по крайней мере, до сих пор, наиболее полезными оказались структуры прямой передачи, и именно такой тип нейронных сетей моделируется в пакете ST Neural Networks.

    Типичный пример сети с прямой передачей сигнала показан на рис.11.8.

    (рис 11.8) Сеть с прямой передачей сигнала

    Нейроны регулярным образом организованы в слои. Входной слой служит просто для ввода значений входных переменных. Каждый из скрытых и выходных нейронов соединён со всеми элементами предыдущего слоя.

    Можно было бы рассматривать сети, в которых нейроны связаны только с некоторыми из нейронов предыдущего слоя; однако, для большинства приложений сети с полной системой связей предпочтительнее, и именно такой тип сетей реализован в пакете ST Neural Networks.

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

    Применение нейронных сетей

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

    Класс задач, которые можно решить с помощью нейронной сети, определяется тем, как сеть работает и тем, как она обучается. При работе нейронная сеть принимает значения входных переменных и выдаёт значения выходных переменных. Таким образом, сеть можно применять в ситуации, когда у Вас имеется определённая известная информация, и Вы хотите из неё получить некоторую пока не известную информацию (Patterson, 1996; Fausett, 1994). Вот некоторые примеры таких задач:

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

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

    Управление. Нужно определить, что должен делать робот (повернуться направо или налево, двигаться вперёд и т.д.), чтобы достичь цели; известно изображение, которое передаёт установленная на роботе видеокамера.

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

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

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

    Другая существенная особенность нейронных сетей состоит в том, что зависимость между входом и выходом находится в процессе обучения сети. Для обучения нейронных сетей применяются алгоритмы двух типов (разные типы сетей используют разные типы обучения): управляемое ("обучение с учителем") и не управляемое ("без учителя"). Чаще всего применяется обучение с учителем, и именно этот метод сейчас рассмотрим.

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

    Затем нейронная сеть обучается с помощью того или иного алгоритма управляемого обучения (наиболее известным из них является метод обратного распространения, предложенный в работе Rumelhart et al., 1986), при котором имеющиеся данные используются для корректировки весов и пороговых значений сети таким образом, чтобы минимизировать ошибку прогноза на обучающем множестве. Если сеть обучена хорошо, она приобретает способность моделировать (неизвестную) функцию, связывающую значения входных и выходных переменных, и впоследствии такую сеть можно использовать для прогнозирования в ситуации, когда выходные значения неизвестны.

    Сбор данных для нейронной сети

    Если задача будет решаться с помощью нейронной сети, то необходимо собрать данные для обучения. Обучающий набор данных представляет собой набор наблюдений, для которых указаны значения входных и выходных переменных. Первый вопрос, который нужно решить, - какие переменные использовать и сколько (и каких) наблюдений собрать.

    Выбор переменных (по крайней мере, первоначальный) осуществляется интуитивно. Опыт работы в данной предметной области поможет определить, какие переменные являются важными. При работе с пакетом ST Neural Networks можно произвольно выбирать переменные и отменять предыдущий выбор; кроме того, система ST Neural Networks умеет сама опытным путём отбирать полезные переменные. Для начала имеет смысл включить все переменные, которые могут влиять на результат - на последующих этапах следует сократить это множество.

    Нейронные сети могут работать с числовыми данными, лежащими в определённом ограниченном диапазоне. Это создаёт проблемы в случаях, когда данные имеют нестандартный масштаб, когда в них имеются пропущенные значения и когда данные являются нечисловыми. В пакете ST Neural Networks имеются средства, позволяющие справиться со всеми этими трудностями. Числовые данные масштабируются в подходящий для сети диапазон, а пропущенные значения можно заменить на средние значения (или на другую статистику) этой переменной по всем имеющимся обучающим примерам (Bishop, 1995).

    Более трудной задачей является работа с данными нечислового характера. Чаще всего нечисловые данные бывают представлены в виде номинальных переменных типа Пол = {Муж, Жен}. Переменные с номинальными значениями можно представить в числовом виде, и в системе ST Neural Networks имеются средства для работы с такими данными. Однако нейронные сети не дают хороших результатов при работе с номинальными переменными, которые могут принимать много разных значений.

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

    Нечисловые данные других типов можно либо преобразовать в числовую форму, либо объявить незначащими. Значения дат и времени, если они нужны, можно преобразовать в числовые, вычитая из них начальную дату (время). Обозначения денежных сумм преобразовать совсем несложно. С произвольными текстовыми полями (например, фамилиями людей) работать нельзя, и их нужно сделать незначащими.

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

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

    В пакете ST Neural Networks реализованы средства для подгонки линейных моделей (см. раздел про линейные сети, а также материал по модулю Множественная регрессия системы STATISTICA).

    Во многих реальных задачах приходится иметь дело с не вполне достоверными данными. Значения некоторых переменных могут быть искажены шумом или частично отсутствовать. Пакет ST Neural Networks имеет специальные средства работы с пропущенными значениями (они могут быть заменены на среднее значение этой переменной или на другие её статистики), так что если не так много данных, то можно включить в рассмотрение случаи с пропущенными значениями (хотя, конечно, лучше этого избегать). Кроме того, нейронные сети в целом устойчивы к шумам. Однако у этой устойчивости есть предел. Например, выбросы, т.е. значения, лежащие очень далеко от области нормальных значений некоторой переменной, могут исказить результат обучения. В таких случаях лучше всего постараться обнаружить и удалить эти выбросы (либо удалив соответствующие наблюдения, либо преобразовав выбросы в пропущенные значения). Если выбросы выявить трудно, то можно воспользоваться имеющимися в пакете ST Neural Networks возможностями сделать процесс обучения устойчивым к выбросам (с помощью функции ошибок типа "городских кварталов"; см. Bishop, 1995). Однако такое устойчивое к выбросам обучение, как правило, менее эффективно, чем стандартное.

    Следовательно, при работе с НС необходимо выбирать такие переменные, которые, по предположению, влияют на результат.

    С числовыми и номинальными переменными в пакете ST Neural Networks можно работать непосредственно. Переменные других типов следует преобразовать в указанные типы или объявить незначащими.

    Для анализа нужно иметь порядка сотен или тысяч наблюдений; чем больше в задаче переменных, тем больше нужно иметь наблюдений. Пакет ST Neural Networks имеет средства для распознавания значимых переменных, поэтому следует включать в рассмотрение переменные, в значимости которых нет уверенности.

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

    Пре/пост процессирование

    Всякая нейронная сеть принимает на входе числовые значения и выдаёт на выходе также числовые значения. Передаточная функция для каждого элемента сети обычно выбирается таким образом, чтобы её входной аргумент мог принимать произвольные значения, а выходные значения лежали бы в строго ограниченном диапазоне. При этом, хотя входные значения могут быть любыми, возникает эффект насыщения, когда элемент оказывается чувствительным лишь к входным значениям, лежащим в некоторой ограниченной области. На этом рисунке представлена одна из наиболее распространённых передаточных функций - так называемая логистическая функция (рис.11.9) (иногда её также называют сигмоидной функцией, хотя если говорить строго, это всего лишь один из частных случаев сигмоидных - т.е. имеющих форму буквы S - функций). В этом случае выходное значение всегда будет лежать в интервале (0,1), а область чувствительности для входов чуть шире интервала (-1,+1). Данная функция является гладкой, а её производная легко вычисляется - это обстоятельство весьма существенно для работы алгоритма обучения сети (в этом также кроется причина того, что ступенчатая функция для этой цели практически не используется).

    (рис 11.9) Логистическая функция

    Коль скоро выходные значения всегда принадлежат некоторой ограниченной области, а вся информация должна быть представлена в числовом виде, очевидно, что при решении реальных задач методами нейронных сетей требуются этапы предварительной обработки - пре-процессирования - и заключительной обработки - пост-процессирования данных (Bishop, 1995). Соответствующие средства имеются в пакете ST Neural Networks. Здесь нужно рассмотреть два вопроса:

    Шкалирование. Числовые значения должны быть приведены в масштаб, подходящий для сети. Обычно исходные данные масштабируются по линейной шкале. В пакете ST Neural Networks реализованы алгоритмы минимакса и среднего/стандартного отклонения, которые автоматически находят масштабирующие параметры для преобразования числовых значений в нужный диапазон.

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

    Номинальные переменные. Номинальные переменные могут быть двузначными (например, Пол ={Муж, Жен}) или многозначными (т.е. принимать более двух значений или состояний). Двузначную номинальную переменную легко преобразовать в числовую (например, Муж = 0, Жен = 1). С многозначными номинальными переменными дело обстоит сложнее. Их тоже можно представить одним числовым значением (например, Собака = 0, Овца = 1, Кошка = 2), однако при этом возникнет (возможно) ложное упорядочивание значений номинальной переменной: в рассмотренном примере Овца окажется чем-то средним между Собакой и Кошкой. Существует более точный способ, известный как кодирование 1-из-N, в котором одна номинальная переменная представляется несколькими числовыми переменными. Количество числовых переменных равно числу возможных значений номинальной переменной; при этом всякий раз ровно одна из N переменных принимает ненулевое значение (например, Собака = {1,0,0}, Овца = {0,1,0}, Кошка = {0,0,1}). В пакете ST Neural Networks имеются возможности преобразовывать как двух-, так и многозначные номинальные переменные для последующего использования в нейронной сети. К сожалению, номинальная переменная с большим числом возможных состояний потребует при кодировании методом 1-из-N очень большого количества числовых переменных, а это приведёт к росту размеров сети и создаст трудности при её обучении. В таких ситуациях возможно (но не всегда достаточно) смоделировать номинальную переменную с помощью одного числового индекса, однако лучше будет попытаться найти другой способ представления данных.

    Задачи прогнозирования можно разбить на два основных класса: классификация и регрессия.

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

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

    Нейронная сеть может решать одновременно несколько задач регрессии и/или классификации, однако обычно в каждый момент решается только одна задача. Таким образом, в большинстве случаев нейронная сеть будет иметь всего одну выходную переменную; в случае задач классификации со многими состояниями для этого может потребоваться несколько выходных элементов (этап пост-процессирования отвечает за преобразование информации из выходных элементов в выходную переменную).

    В пакете ST Neural Networks для решения всех этих вопросов реализованы специальные средства пре- и пост-процессирования, которые позволяют привести сырые исходные данные в числовую форму, пригодную для обработки нейронной сетью, и преобразовать выход нейронной сети обратно в формат входных данных. Нейронная сеть служит "прослойкой"между пре- и пост-процессированием, и результат выдаётся в нужном виде (например, в задаче классификации выдается название выходного класса). Кроме того, в пакете ST Neural Networks пользователь может (если пожелает) получить прямой доступ к внутренним параметрам активации сети.

    Многослойный персептрон (MLP)

    Эта архитектура сети используется сейчас наиболее часто. Она была предложена в работе Rumelhart, McClelland (1986) и подробно обсуждается почти во всех учебниках по нейронным сетям (см., например, Bishop, 1995). Вкратце этот тип сети был описан выше. Каждый элемент сети строит взвешенную сумму своих входов с поправкой в виде слагаемого и затем пропускает эту величину активации через передаточную функцию, и таким образом получается выходное значение этого элемента. Элементы организованы в послойную топологию с прямой передачей сигнала. Такую сеть легко можно интерпретировать как модель вход-выход, в которой веса и пороговые значения (смещения) являются свободными параметрами модели. Такая сеть может моделировать функцию практически любой степени сложности, причем число слоев и число элементов в каждом слое определяют сложность функции. Определение числа промежуточных слоев и числа элементов в них является важным вопросом при конструировании MLP (Haykin, 1994; Bishop, 1995).

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

    Обучение многослойного персептрона

    После того, как определено число слоёв и число элементов в каждом из них, нужно найти значения для весов и порогов сети, которые бы минимизировали ошибку прогноза, выдаваемого сетью. Именно для этого служат алгоритмы обучения. С использованием собранных исторических данных веса и пороговые значения автоматически корректируются с целью минимизировать эту ошибку. По сути, этот процесс представляет собой подгонку модели, которая реализуется сетью, к имеющимся обучающим данным. Ошибка для конкретной конфигурации сети определяется путём прогона через сеть всех имеющихся наблюдений и сравнения реально выдаваемых выходных значений с желаемыми (целевыми) значениями. Все такие разности суммируются в так называемую функцию ошибок, значение которой и есть ошибка сети. В качестве функции ошибок чаще всего берётся сумма квадратов ошибок, т.е. когда все ошибки выходных элементов для всех наблюдений возводятся в квадрат и затем суммируются. При работе с пакетом ST Neural Networks пользователю выдается так называемая среднеквадратичная ошибка (RMS) - описанная выше величина нормируется на число наблюдений и переменных, после чего из неё извлекается квадратный корень - это очень хорошая мера ошибки, усреднённая по всему обучающему множеству и по всем выходным элементам.

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

    В этих рассмотрениях оказывается очень полезным понятие поверхности ошибок. Каждому из весов и порогов сети (т.е. свободных параметров модели; их общее число обозначим через N) соответствует одно измерение в многомерном пространстве. N+1-е измерение соответствует ошибке сети. Для всевозможных сочетаний весов соответствующую ошибку сети можно изобразить точкой в N+1-мерном пространстве, и все такие точки образуют там некоторую поверхность - поверхность ошибок. Цель обучения нейронной сети состоит в том, чтобы найти на этой многомерной поверхности самую низкую точку.

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

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

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

    Алгоритм обратного распространения

    Самый известный вариант алгоритма обучения нейронной сети - так называемый алгоритм обратного распространения (back propagation; см. Patterson, 1996; Haykin, 1994; Fausett, 1994). Существуют современные алгоритмы второго порядка, такие как метод сопряженных градиентов и метод Левенберга-Маркара (Bishop, 1995; Shepherd, 1997) (оба они реализованы в пакете ST Neural Networks), которые на многих задачах работают существенно быстрее (иногда на порядок). Алгоритм обратного распространения наиболее прост для понимания, а в некоторых случаях он имеет определенные преимущества. Сейчас мы опишем его, а более продвинутые алгоритмы рассмотрим позже. Разработаны также эвристические модификации этого алгоритма, хорошо работающие для определенных классов задач, - быстрое распространение (Fahlman, 1988) и Дельта-дельта с чертой (Jacobs, 1988) - оба они также реализованы в пакете ST Neural Networks.

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

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

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

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

    Переобучение и обобщение

    Одна из наиболее серьёзных трудностей изложенного подхода заключается в том, что таким образом мы минимизируем не ту ошибку, которую на самом деле нужно минимизировать, - ошибку, которую можно ожидать от сети, когда ей будут подаваться совершенно новые наблюдения. Иначе говоря, мы хотели бы, чтобы нейронная сеть обладала способностью обобщать результат на новые наблюдения. В действительности сеть обучается минимизировать ошибку на обучающем множестве, и в отсутствие идеального и бесконечно большого обучающего множества это совсем не то же самое, что минимизировать "настоящую" ошибку на поверхности ошибок в заранее неизвестной модели явления (Bishop, 1995).

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

    Полином (или многочлен) - это выражение, содержащее только константы и целые степени независимой переменной. Вот примеры:

    $$y=2x+3$$ $$y=3x^2+4x+1$$

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

    (рис 11.10) Полином высокого порядка

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

    Как же выбрать "правильную" степень сложности для сети? Почти всегда более сложная сеть дает меньшую ошибку, но это может свидетельствовать не о хорошем качестве модели, а о переобучении.

    Ответ состоит в том, чтобы использовать механизм контрольной кросс-проверки. Мы резервируем часть обучающих наблюдений и не используем их в обучении по алгоритму обратного распространения. Вместо этого, по мере работы алгоритма, они используются для независимого контроля результата. В самом начале работы ошибка сети на обучающем и контрольном множестве будет одинаковой (если они существенно отличаются, то, вероятно, разбиение всех наблюдений на два множества было неоднородно). По мере того, как сеть обучается, ошибка обучения, естественно, убывает, и, пока обучение уменьшает действительную функцию ошибок, ошибка на контрольном множестве также будет убывать. Если же контрольная ошибка перестала убывать или даже стала расти, это указывает на то, что сеть начала слишком близко аппроксимировать данные и обучение следует остановить (в пакете ST Neural Networks можно задать автоматическую остановку обучения при появлении эффекта переобучения). Это явление чересчур точной аппроксимации в процессе обучения и называется переобучением. Если такое случилось, то обычно советуют уменьшить число скрытых элементов и/или слоев, ибо сеть является слишком мощной для данной задачи. Если же сеть, наоборот, была взята недостаточно богатой для того, чтобы моделировать имеющуюся зависимость, то переобучения, скорее всего, не произойдет, и обе ошибки - обучения и проверки - не достигнут достаточного уровня малости.

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

    Необходимость многократных экспериментов ведёт к тому, что контрольное множество начинает играть ключевую роль в выборе модели, то есть становится частью процесса обучения. Тем самым ослабляется его роль как независимого критерия качества модели - при большом числе экспериментов есть риск выбрать "удачную" сеть, дающую хороший результат на контрольном множестве. Для того, чтобы придать окончательной модели должную надежность, часто (по крайней мере, когда объём обучающих данных это позволяет) поступают так: резервируют ещё одно - тестовое множество наблюдений. Итоговая модель тестируется на данных из этого множества, чтобы убедиться, что результаты, достигнутые на обучающем и контрольном множествах реальны, а не являются артефактами процесса обучения. Разумеется, для того чтобы хорошо играть свою роль, тестовое множество должно быть использовано только один раз: если его использовать повторно для корректировки процесса обучения, то оно фактически превратится в контрольное множество.

    Итак, построение сети (после выбора входных переменных) состоит из следующих шагов:

  • Выбрать начальную конфигурацию сети (например, один промежуточный слой с числом элементов в нём, равным полусумме числа входов и числа выходов - Наставник (Network Advisor) пакета ST Neural Networks предлагает такую конфигурацию по умолчанию).
  • Провести ряд экспериментов с различными конфигурациями, запоминая при этом лучшую сеть (в смысле контрольной ошибки). В пакете ST Neural Networks предусмотрено автоматическое запоминание лучшей сети во время эксперимента. Для каждой конфигурации следует провести несколько экспериментов, чтобы не получить ошибочный результат из-за того, что процесс обучения попал в локальный минимум.
  • Если в очередном эксперименте наблюдается недообучение (сеть не выдаёт результат приемлемого качества), попробовать добавить дополнительные нейроны в промежуточный слой (слои). Если это не помогает, попробовать добавить новый промежуточный слой.
  • Если имеет место переобучение (контрольная ошибка стала расти), попробовать удалить несколько скрытых элементов (а возможно и слоёв).
  • Многократное повторение эвристических экспериментов в лучшем случае довольно утомительно, и поэтому в пакет ST Neural Networks включён специальный алгоритм автоматического поиска, который сам проделает эти действия. Автоматический конструктор сети - Automatic Network Designer проведет эксперименты с различным числом скрытых элементов, для каждой пробной архитектуры сети выполнит несколько прогонов обучения, отбирая при этом наилучшую сеть по показателю контрольной ошибки с поправкой на размер сети. В Автоматическом конструкторе сети реализованы сложные алгоритмы поиска, в том числе метод "искусственного отжига" (simulated annealing, Kirkpatrick et al., 1983), с помощью которых можно перепробовать сотни различных сетей, выделяя из них особо перспективные, либо быстро находить "грубое и простое" решение.

    Отбор данных

    На всех предыдущих этапах существенно использовалось одно предположение. А именно, обучающее, контрольное и тестовое множества должны быть репрезентативными (представительными) с точки зрения существа задачи (более того, эти множества должны быть репрезентативными каждое в отдельности). Известное изречение программистов "garbage in, garbage out" ("мусор на входе - мусор на выходе") нигде не справедливо в такой степени, как при нейросетевом моделировании. Если обучающие данные не репрезентативны, то модель, как минимум, будет не очень хорошей, а в худшем случае - бесполезной. Имеет смысл перечислить ряд причин, которые ухудшают качество обучающего множества:

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

    Следует учесть все возможности. Нейронная сеть может обучаться только на тех данных, которыми она располагает. Предположим, что лица с годовым доходом более $100,000 имеют высокий кредитный риск, а обучающее множество не содержало лиц с доходом более $40,000 в год. Тогда едва ли можно ожидать от сети правильного решения в совершенно новой для нее ситуации.

    Сеть обучается тому, чему проще всего обучиться. Классическим (возможно, вымышленным) примером является система машинного зрения, предназначенная для автоматического распознавания танков. Сеть обучалась на ста картинках, содержащих изображения танков, и на ста других картинках, где танков не было. Был достигнут стопроцентно "правильный" результат. Но когда на вход сети были поданы новые данные, она безнадежно провалилась. В чем же была причина? Выяснилось, что фотографии с танками были сделаны в пасмурный, дождливый день, а фотографии без танков - в солнечный день. Сеть научилась улавливать (очевидную) разницу в общей освещенности. Чтобы сеть могла результативно работать, ее следовало обучать на данных, где бы присутствовали все погодные условия и типы освещения, при которых сеть предполагается использовать - и это еще не говоря о рельефе местности, угле и дистанции съемки и т.д.

    Несбалансированный набор данных. Коль скоро сеть минимизирует общую погрешность, важное значение приобретает пропорции, в которых представлены данные различных типов. Сеть, обученная на 900 хороших и 100 плохих примерах будет искажать результат в пользу хороших наблюдений, поскольку это позволит алгоритму уменьшить общую погрешность (которая определяется в основном хорошими случаями). Если в реальной популяции хорошие и плохие объекты представлены в другой пропорции, то результаты, выдаваемые сетью, могут оказаться неверными. Хорошим примером служит задача выявления заболеваний. Пусть, например, при обычных обследованиях в среднем 90% людей оказываются здоровыми. Сеть обучается на имеющихся данных, в которых пропорция здоровые/больные равна 90/10. Затем она применяется для диагностики пациентов с определённым жалобами, среди которых это соотношение уже 50/50. В этом случае сеть будет ставить диагноз чересчур осторожно и не распознает заболевание у некоторых больных. Если же, наоборот, сеть обучить на данных "с жалобами", а затем протестировать на "обычных" данных, то она будет выдавать повышенное число неправильных диагнозов о наличии заболевания. В таких ситуациях обучающие данные нужно скорректировать так, чтобы были учтены различия в распределении данных (например, можно повторять редкие наблюдения или удалить часто встречающиеся), или же видоизменить решения, выдаваемые сетью, посредством матрицы потерь (Bishop, 1995). Как правило, лучше всего постараться сделать так, чтобы наблюдения различных типов были представлены равномерно, и соответственно этому интерпретировать результаты, которые выдаёт сеть.

    Как обучается многослойный персептрон

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

    Комбинация линейной функции нескольких переменных и скалярной сигмоидной функции приводит к характерному профилю "сигмоидного склона", который выдает элемент первого промежуточного слоя MLP. На приведенном рисунке (рис.11.11) соответствующая поверхность изображена в виде функции двух входных переменных.

    (рис 11.11) Функция двух входных переменных

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

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

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

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

    Если сеть не содержит скрытых элементов, то на выходе она может моделировать только одинарный "сигмоидный склон": точки, находящиеся по одну его сторону, располагаются низко, по другую - высоко. При этом всегда будет существовать область между ними (на склоне), где высота принимает промежуточные значения, но по мере увеличения весов эта область будет сужаться.

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

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

    (рис 11.12) Моделирование сети с одним промежуточным слоем

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

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

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

    В задачах классификации очень важно понять, как следует интерпретировать те точки, которые попали на склон или лежат близко от него. Стандартный выход здесь состоит в том, чтобы для пороговых значений установить некоторые доверительные пределы (принятия или отвержения), которые должны быть достигнуты, чтобы данных элемент считался "принявшим решение". Например, если установлены пороги принятия/отвержения 0.95/0.05, то при уровне выходного сигнала, превосходящем 0.95 элемент считается активным, при уровне ниже 0.05 - неактивным, а в промежутке – "неопределённым".

    Имеется и более тонкий (и, вероятно, более полезный) способ интерпретировать уровни выходного сигнала: считать их вероятностями. В этом случае сеть выдает несколько большую информацию, чем просто "да/нет": она сообщает нам, насколько (в некотором формальном смысле) мы можем доверять её решению. Разработаны (и реализованы в пакете ST Neural Networks) модификации метода MLP, позволяющие интерпретировать выходной сигнал нейронной сети как вероятность, в результате чего сеть по существу учится моделировать плотность вероятности распределения данного класса. При этом, однако, вероятностная интерпретация обоснована только в том случае, если выполнены определенные предположения относительно распределения исходных данных (конкретно, что они являются выборкой из некоторого распределения, принадлежащего к семейству экспоненциальных распределений; Bishop, 1995). Здесь, как и ранее, может быть принято решение по классификации, но, кроме того, вероятностная интерпретация позволяет ввести концепцию "решения с минимальными затратами".

    Другие алгоритмы обучения многослойного персептрона

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

    В некоторых задачах бывает целесообразно использовать такие - более сложные - методы нелинейной оптимизации. В пакете ST Neural Networks реализованы два подобных метода: методы спуска по сопряженным градиентам и Левенберга -Маркара (Bishop, 1995; Shepherd, 1997), представляющие собой очень удачные варианты реализации двух типов алгоритмов: линейного поиска и доверительных областей.

    Алгоритм линейного поиска действует следующим образом: выбирается какое-либо разумное направление движения по многомерной поверхности. В этом направлении проводится линия, и на ней ищется точка минимума (это делается относительно просто с помощью того или иного варианта метода деления отрезка пополам); затем все повторяется сначала. Что в данном случае следует считать "разумным направлением"? Очевидным ответом является направление скорейшего спуска (именно так действует алгоритм обратного распространения). На самом деле этот вроде бы очевидный выбор не слишком удачен. После того, как был найден минимум по некоторой прямой, следующая линия, выбранная для кратчайшего спуска, может "испортить" результаты минимизации по предыдущему направлению (даже на такой простой поверхности, как параболоид, может потребоваться очень большое число шагов линейного поиска). Более разумно было бы выбирать "не мешающие друг другу" направления спуска - так мы приходим к методу сопряженных градиентов (Bishop, 1995).

    Идея метода состоит в следующем: поскольку мы нашли точку минимума вдоль некоторой прямой, производная по этому направлению равна нулю. Сопряженное направление выбирается таким образом, чтобы эта производная и дальше оставалась нулевой - в предположении, что поверхность имеет форму параболоида (или, грубо говоря, является "хорошей и гладкой"). Если это условие выполнено, то для достижения точки минимума достаточно будет N эпох. На реальных, сложно устроенных поверхностях по мере хода алгоритма условие сопряженности портится, и тем не менее такой алгоритм, как правило, требует гораздо меньшего числа шагов, чем метод обратного распространения, и дает лучшую точку минимума (для того, чтобы алгоритм обратного распространения точно установился в некоторой точке, нужно выбирать очень маленькую скорость обучения).

    Метод доверительных областей основан на следующей идее: вместо того, чтобы двигаться в определенном направлении поиска, предположим, что поверхность имеет достаточно простую форму, так что точку минимума можно найти (и прыгнуть туда) непосредственно. Попробуем смоделировать это и посмотреть, насколько хорошей окажется полученная точка. Вид модели предполагает, что поверхность имеет хорошую и гладкую форму (например, является параболоидом), - такое предположение выполнено вблизи точек минимума. Вдали от них данное предположение может сильно нарушаться, так что модель будет выбирать для очередного продвижения совершенно не те точки. Правильно работать такая модель будет только в некоторой окрестности данной точки, причем размеры этой окрестности заранее неизвестны. Поэтому выберем в качестве следующей точки для продвижения нечто промежуточное между точкой, которую предлагает наша модель, и точкой, которая получилась бы по обычному методу градиентного спуска. Если эта новая точка оказалась хорошей, передвинемся в нее и усилим роль нашей модели в выборе очередных точек; если же точка оказалась плохой, не будем в нее перемещаться и увеличим роль метода градиентного спуска при выборе очередной точки (а также уменьшим шаг). В основанном на этой идее методе Левенберга-Маркара предполагается, что исходное отображение является локально линейным (и тогда поверхность ошибок будет параболоидом).

    Метод Левенберга-Маркара (Levenberg, 1944; Marquardt, 1963; Bishop, 1995) - самый быстрый алгоритм обучения из всех, которые реализованы в пакете ST Neural Networks, но, к сожалению, на его использование имеется ряд важных ограничений. Он применим только для сетей с одним выходным элементом, работает только с функцией ошибок сумма квадратов и требует памяти порядка W**2 (где W - количество весов у сети; поэтому для больших сетей он плохо применим). Метод сопряженных градиентов почти так же эффективен, как и этот метод, и не связан подобными ограничениями.

    При всем сказанном метод обратного распространения также сохраняет свое значение, причем не только для тех случаев, когда требуется быстро найти решение (и не требуется особой точности). Его следует предпочесть, когда объем данных очень велик, и среди данных есть избыточные. Благодаря тому, что в методе обратного распространения корректировка ошибки происходит по отдельным случаям, избыточность данных не вредит (если, например, приписать к имеющемуся набору данных еще один точно такой же набор, так что каждый случай будет повторяться дважды, то эпоха будет занимать вдвое больше времени, чем раньше, однако результат ее будет точно таким же, как от двух старых, так что ничего плохого не произойдет). Методы же Левенберга-Маркара и сопряженных градиентов проводят вычисления на всем наборе данных, поэтому при увеличении числа наблюдений продолжительность одной эпохи сильно растет, но при этом совсем не обязательно улучшается результат, достигнутый на этой эпохе (в частности, если данные избыточны; если же данные редкие, то добавление новых данных улучшит обучение на каждой эпохе). Кроме того, обратное распространение не уступает другим методам в ситуациях, когда данных мало, поскольку в этом случае недостаточно данных для принятия очень точного решения (более тонкий алгоритм может дать меньшую ошибку обучения, но контрольная ошибка у него, скорее всего, не будет меньше).

    Кроме уже перечисленных, в пакете ST Neural Networks имеются две модификации метода обратного распространения - метод быстрого распространения (Fahlman, 1988) и дельта-дельта с чертой (Jacobs, 1988), - разработанные с целью преодолеть некоторые ограничения этого подхода. В большинстве случаев они работают не лучше, чем обратное распространение, а иногда и хуже (это зависит от задачи). Кроме того, в этих методах используется больше управляющих параметров, чем в других методах, и поэтому ими сложнее пользоваться.

    Радиальная базисная функция

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

    Столь же естественным является подход, основанный на разбиении пространства окружностями или (в общем случае) гиперсферами. Гиперсфера задается своим центром и радиусом. Подобно тому, как элемент MLP реагирует (нелинейно) на расстояние от данной точки до линии "сигмоидного склона", в сети, построенной на радиальных базисных функциях (Broomhead and Lowe, 1988; Moody and Darkin, 1989; Haykin, 1994), элемент реагирует (нелинейно) на расстояние от данной точки до "центра", соответствующего этому радиальному элементу. Поверхность отклика радиального элемента представляет собой гауссову функцию (колоколообразной формы), с вершиной в центре и понижением к краям. Наклон гауссова радиального элемента можно менять подобно тому, как можно менять наклон сигмоидной кривой в MLP (рис.11.13).

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

    До действия сигмоидной функции активации уровень активации такого элемента определяется гиперплоскостью, поэтому в системе ST Neural Networks такие элементы называется линейными (хотя функция активации, как правило, нелинейна).

    (рис 11.13) Поверхность отклика радиального элемента

    В отличие от них, радиальный элемент задаётся своим центром и "радиусом". Положение точки в N-мерном пространстве определяется N числовыми параметрами, т.е. их ровно столько же, сколько весов у линейного элемента, и поэтому координаты центра радиального элемента в пакете ST Neural Networks хранятся как "веса". Его радиус (отклонение) хранится как "порог". Следует отчетливо понимать, что "веса" и "пороги" радиального элемента принципиально отличаются от весов и порогов линейного элемента, и если забыть об этом, термин может ввести в заблуждение. Радиальные веса на самом деле представляют точку, а радиальный порог - отклонение.

    Сеть типа радиальной базисной функции (RBF) имеет промежуточный слой из радиальных элементов, каждый из которых воспроизводит гауссову поверхность отклика. Поскольку эти функции нелинейны, для моделирования произвольной функции нет необходимости брать более одного промежуточного слоя. Для моделирования любой функции необходимо лишь взять достаточное число радиальных элементов. Остается решить вопрос о том, как следует скомбинировать выходы скрытых радиальных элементов, чтобы получить из них выход сети. Оказывается, что достаточно взять их линейную комбинацию (т.е. взвешенную сумму гауссовых функций). Сеть RBF имеет выходной слой, состоящий из элементов с линейными функциями активации (Haykin, 1994; Bishop, 1995).

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

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

    Другие отличия работы RBF от MLP связаны с различным представлением пространства модели: "групповым" в RBF и "плоскостным" в MLP.

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

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

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

    Расположение центров должно соответствовать кластерам, реально присутствующим в исходных данных. Рассмотрим два наиболее часто используемых метода.

    Расположение центров должно соответствовать кластерам, реально присутствующим в исходных данных. Рассмотрим два наиболее часто используемых метода.

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

    Алгоритм K-средних. Этот алгоритм (Bishop, 1995) стремится выбрать оптимальное множество точек, являющихся центроидами кластеров в обучающих данных. При K радиальных элементах их центры располагаются таким образом, чтобы:

  • Каждая обучающая точка "относилась" к одному центру кластера и лежала к нему ближе, чем к любому другому центру;
  • Каждый центр кластера был центроидом множества обучающих точек, относящихся к этому кластеру.
  • После того, как определено расположение центров, нужно найти отклонения. Величина отклонения (ее также называют сглаживающим фактором) определяет, насколько "острой" будет гауссова функция. Если эти функции выбраны слишком острыми, сеть не будет интерполировать данные между известными точками и потеряет способность к обобщению. Если же гауссовы функции взяты чересчур широкими, сеть не будет воспринимать мелкие детали. На самом деле сказанное - еще одна форма проявления дилеммы пере/недообучения. Как правило, отклонения выбираются таким образом, чтобы колпак каждой гауссовой функций захватывал "несколько" соседних центров. Для этого имеется несколько методов:

    Явный. Отклонения задаются пользователем.

    Изотропный. Отклонение берётся одинаковым для всех элементов и определяется эвристически с учётом количества радиальных элементов и объёма покрываемого пространства (Haykin, 1994).

    K ближайших соседей. Отклонение каждого элемента устанавливается (индивидуально) равным среднему расстоянию до его K ближайших соседей (Bishop, 1995). Тем самым отклонения будут меньше в тех частях пространства, где точки расположены густо, - здесь будут хорошо учитываться детали, - а там, где точек мало, отклонения будут большими (и будет производиться интерполяция).

    После того, как выбраны центры и отклонения, параметры выходного слоя оптимизируются с помощью стандартного метода линейной оптимизации - алгоритма псевдообратных матриц (сингулярного разложения) (Haykin, 1994; Golub and Kahan, 1965).

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

    Вероятностная нейронная сеть

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

    Задача оценки плотности вероятности (p.d.f.) по данным имеет давнюю историю в математической статистике (Parzen, 1962) и относится к области байесовой статистики. Обычная статистика по заданной модели говорит нам, какова будет вероятность того или иного исхода (например, что на игральной кости шесть очков будет выпадать в среднем одном случае из шести). Байесова статистика переворачивает вопрос вверх ногами: правильность модели оценивается по имеющимся достоверным данным. В более общем плане, байесова статистика дает возможность оценивать плотность вероятности распределений параметров модели по имеющимся данных. Для того, чтобы минимизировать ошибку, выбирается модель с такими параметрами, при которых плотность вероятности будет наибольшей.

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

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

    Другой подход к оценке плотности вероятности основан на ядерных оценках (Parzen, 1962; Speckt, 1990; Speckt, 1991; Bishop, 1995; Patterson, 1996). Можно рассуждать так: тот факт, что наблюдение расположено в данной точке пространства, свидетельствует о том, что в этой точке имеется некоторая плотность вероятности. Кластеры из близко лежащих точек указывают на то, что в этом месте плотность вероятности большая. Вблизи наблюдения имеется большее доверие к уровню плотности, а по мере отдаления от него доверие убывает и стремится к нулю. В методе ядерных оценок в точке, соответствующей каждому наблюдению, помещается некоторая простая функция, затем все они складываются и в результате получается оценка для общей плотности вероятности. Чаще всего в качестве ядерных функций берутся гауссовы функции (с формой колокола). Если обучающих примеров достаточное количество, то такой метод дает достаточно хорошее приближение к истинной плотности вероятности.

    Метод аппроксимации плотности вероятности с помощью ядерных функций во многом похож на метод радиальных базисных функций, и таким образом мы естественно приходим к понятиям вероятностной нейронной сети (PNN) и обобщенно-регрессионной нейронной сети (GRNN) (Speckt 1990, 1991). PNN-сети предназначены для задач классификации, а GRNN - для задач регрессии. Сети этих двух типов представляют собой реализацию методов ядерной аппроксимации, оформленных в виде нейронной сети.

    Сеть PNN имеет по меньшей мере три слоя: входной, радиальный и выходной. Радиальные элементы берутся по одному на каждое обучающее наблюдение. Каждый из них представляет гауссову функцию с центром в этом наблюдении. Каждому классу соответствует один выходной элемент. Каждый такой элемент соединен со всеми радиальными элементами, относящимися к его классу, а со всеми остальными радиальными элементами он имеет нулевое соединение. Таким образом, выходной элемент просто складывает отклики всех элементов, принадлежащих к его классу. Значения выходных сигналов получаются пропорциональными ядерным оценкам вероятности принадлежности соответствующим классам, и, пронормировав их на единицу, мы получаем окончательные оценки вероятности принадлежности классам.

    Базовая модель PNN-сети может иметь две модификации.

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

    Второй вариант модификации основан на следующей идее. Любая оценка, выдаваемая сетью, основывается на зашумлённых данных и неизбежно будет приводить к отдельным ошибкам классификации (например, у некоторых больных результаты анализов могут быть вполне нормальными). Иногда бывает целесообразно считать, что некоторые виды ошибок обходятся "дороже" других (например, если здоровый человек будет диагностирован как больной, то это вызовет лишние затраты на его обследование, но не создаст угрозы для жизни; если же не будет выявлен действительный больной, то это может привести к смертельному исходу). В такой ситуации те вероятности, которые выдает сеть, следует домножить на коэффициенты потерь, отражающие относительную цену ошибок классификации. В пакете ST Neural Networks в вероятностную нейронную сеть может быть добавлен четвертый слой, содержащий матрицу потерь. Она умножается на вектор оценок, полученный в третьем слое, после чего в качестве ответа берется класс, имеющий наименьшую оценку потерь. (Матрицу потерь можно добавлять и к другим видам сетей, решающих задачи классификации.)

    Вероятностная нейронная сеть имеет единственный управляющий параметр обучения, значение которого должно выбираться пользователем, - степень сглаживания (или отклонение гауссовой функции). Как и в случае RBF-сетей, этот параметр выбирается из тех соображений, чтобы шапки "определённое число раз перекрывались": выбор слишком маленьких отклонений приведет к "острым" аппроксимирующим функциям и неспособности сети к обобщению, а при слишком больших отклонениях будут теряться детали. Требуемое значение несложно найти опытным путём, подбирая его так, чтобы контрольная ошибка была как можно меньше. К счастью, PNN-сети не очень чувствительны к выбору параметра сглаживания.

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

    Существенным недостатком таких сетей является их объём. PNN-сеть фактически вмещает в себя все обучающие данные, поэтому она требует много памяти и может медленно работать.

    PNN-сети особенно полезны при пробных экспериментах (например, когда нужно решить, какие из входных переменных использовать), так как благодаря короткому времени обучения можно быстро проделать большое количество пробных тестов. В пакете ST Neural Networks PNN-сети используются также в Нейрогенетическом алгоритме отбора входных данных - Neuro-Genetic Input Selection, который автоматически находит значимые входы (будет описан ниже).

    Обобщённо-регрессионная нейронная сеть

    Обобщенно-регрессионная нейронная сеть (GRNN) устроена аналогично вероятностной нейронной сети (PNN), но она предназначена для решения задач регрессии, а не классификации (Speckt, 1991; Patterson, 1996; Bishop, 1995). Как и в случае PNN-сети, в точку расположения каждого обучающего наблюдения помещается гауссова ядерная функция. Считается, что каждое наблюдение свидетельствует о некоторой уверенности в том, что поверхность отклика в данной точке имеет определённую высоту, и эта уверенность убывает при отходе в сторону от точки. GRNN-сеть копирует внутрь себя все обучающие наблюдения и использует их для оценки отклика в произвольной точке. Окончательная выходная оценка сети получается как взвешенное среднее выходов по всем обучающим наблюдениям, где величины весов отражают расстояние от этих наблюдений до той точки, в которой производится оценивание (и, таким образом, более близкие точки вносят больший вклад в оценку).

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

    Можно модифицировать GRNN-сеть таким образом, чтобы радиальные элементы соответствовали не отдельным обучающим случаям, а их кластерам. Это уменьшает размеры сети и увеличивает скорость обучения. Центры для таких элементов можно выбирать с помощью любого предназначенного для этой цели алгоритма (выборки из выборки, K-средних или Кохонена), и программа ST Neural Networks соответствующим образом корректирует внутренние веса.

    Достоинства и недостатки у сетей GRNN в основном такие же, как и у сетей PNN - единственное различие в том, что GRNN используются в задачах регрессии, а PNN - в задачах классификации. GRNN-сеть обучается почти мгновенно, но может получиться большой и медленной (хотя здесь, в отличие от PNN, не обязательно иметь по одному радиальному элементу на каждый обучающий пример, их число все равно будет большим). Как и сеть RBF, сеть GRNN не обладает способностью экстраполировать данные.

    Линейная сеть

    Согласно общепринятому в науке принципу, если более сложная модель не даёт лучших результатов, чем более простая, то из них следует предпочесть вторую. В терминах аппроксимации отображений самой простой моделью будет линейная, в которой подгоночная функция определяется гиперплоскостью. В задаче классификации гиперплоскость размещается таким образом, чтобы она разделяла собой два класса (линейная дискриминантная функция); в задаче регрессии гиперплоскость должна проходить через заданные точки. Линейная модель обычно записывается с помощью матрицы NxN и вектора смещения размера N.

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

    В пакете ST Neural Networks имеется возможность создать линейную сеть и обучить её с помощью стандартного алгоритма линейной оптимизации, основанного на псевдообратных матрицах (SVD) (Golub and Kahan, 1965). Разумеется, метод линейной оптимизации реализован также в модуле Множественная регрессия системы STATISTICA; однако, линейные сети пакета ST Neural Networks имеют то преимущество, что здесь возможно в единой среде сравнивать такие сети с "настоящими" нейронными сетями.

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

    Сеть Кохонена

    Сети Кохонена принципиально отличаются от всех других типов сетей, реализованных в пакете ST Neural Networks. В то время как все остальные сети предназначены для задач с управляемым обучением, сети Кохонена главным образом рассчитаны на неуправляемое обучение (Kohonen, 1982; Haykin, 1994; Patterson, 1996; Fausett, 1994).

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

    На первый взгляд это может показаться странным. Как сеть сможет чему-то научиться, не имея выходных значений? Ответ заключается в том, что сеть Кохонена учится понимать саму структуру данных.

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

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

    Сеть Кохонена имеет всего два слоя: входной и выходной, составленный из радиальных элементов (выходной слой называют также слоем топологической карты). Элементы топологической карты располагаются в некотором пространстве - как правило, двумерном (в пакете ST Neural Networks реализованы также одномерные сети Кохонена).

    Обучается сеть Кохонена методом последовательных приближений. Начиная со случайным образом выбранного исходного расположения центров, алгоритм постепенно улучшает его так, чтобы улавливать кластеризацию обучающих данных. В некотором отношении эти действия похожи на алгоритмы выборки из выборки и K-средних, которые используются для размещения центров в сетях RBF и GRNN, и действительно, алгоритм Кохонена можно использовать для размещения центров в сетях этих типов. Однако данный алгоритм работает и на другом уровне.

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

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

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

    Свойство топологической упорядоченности достигается в алгоритме с помощью дополнительного использования понятия окрестности. Окрестность - это несколько нейронов, окружающих выигравший нейрон. Подобно скорости обучения, размер окрестности убывает со временем, так что вначале к ней принадлежит довольно большое число нейронов (возможно, почти вся топологическая карта); на самых последних этапах окрестность становится нулевой (т.е. состоящей только из самого выигравшего нейрона). На самом деле в алгоритме Кохонена корректировка применяется не только к выигравшему нейрону, но и ко всем нейронам из его текущей окрестности.

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

    После того, как сеть обучена распознаванию структуры данных, ее можно использовать как средство визуализации при анализе данных. С помощью данных, выводимых в окне "Частоты выигрышей" - Win Frequencies, (где для каждого нейрона подсчитывается, сколько раз он выигрывал при обработке обучающих примеров), можно определить, разбивается ли карта на отдельные кластеры. Можно также обрабатывать отдельные наблюдения и смотреть, как при этом меняется топологическая карта, - это позволяет понять, имеют ли кластеры какой-то содержательный смысл (как правило, при этом приходится возвращаться к содержательному смыслу задачи, чтобы установить, как соотносятся друг с другом кластеры наблюдений). После того, как кластеры выявлены, нейроны топологической карты помечаются содержательными по смыслу метками (в некоторых случаях помечены могут быть и отдельные наблюдения). После того, как топологическая карта в описанном здесь виде построена, на вход сети можно подавать новые наблюдения. Если выигравший при этом нейрон был ранее помечен именем класса, то сеть осуществляет классификацию. В противном случае считается, что сеть не приняла никакого решения.

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

    Идея сети Кохонена возникла по аналогии с некоторыми известными свойствами человеческого мозга. Кора головного мозга представляет собой большой плоский лист (площадью около 0.5 кв.м.; чтобы поместиться в черепе, она свернута складками) с известными топологическими свойствами (например, участок, ответственный за кисть руки, примыкает к участку, ответственному за движения всей руки, и таким образом все изображение человеческого тела непрерывно отображается на эту двумерную поверхность).

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

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

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

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

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

    Популяция - это конечное множество особей.

    Особи, входящие в популяцию, в генетических алгоритмах представляются хромосомами с закодированным в них множествами параметров задачи, т.е. решений, которые иначе называются точками в пространстве поиска (search points). В некоторых работах особи называются организмами.

    Хромосомы (другие названия - цепочки или кодовые последовательности) - это упорядоченные последовательности генов.

    Ген (также называемый свойством, знаком или детектором) - это атомарный элемент генотипа, в частности, хромосомы.

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

    Фенотип - это набор значений, соответствующих данному генотипу, т.е. декодированная структура или множество параметров задачи (решение, точка пространства поиска).

    Аллель - это значение конкретного гена, также определяемое как значение свойства или вариант свойства.

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

    Очень важным понятием в генетических алгоритмах считается функция приспособленности {fitness function), иначе называемая функцией оценки. Она представляет меру приспособленности данной особи в популяции. Эта функция играет важнейшую роль, поскольку позволяет оценить степень приспособленности конкретных особей в популяции и выбрать из них наиболее приспособленные (т.е. имеющие наибольшие значения функции приспособленности) в соответствии с эволюционным принципом выживания "сильнейших" (лучше всего приспособившихся). Функция приспособленности также получила свое название непосредственно из генетики. Она оказывает сильное влияние на функционирование генетических алгоритмов и должна иметь точное и корректное определение. В задачах оптимизации функция приспособленности, как правило, оптимизируется (точнее говоря, максимизируется) и называется целевой функцией. В задачах минимизации целевая функция преобразуется, и проблема сводится к максимизации. В теории управления функция приспособленности может принимать вид функции погрешности, а в теории игр - стоимостной функции. На каждой итерации генетического алгоритма приспособленность каждой особи данной популяции оценивается при помощи функции приспособленности, и на этой основе создается следующая популяция особей, составляющих множество потенциальных решений проблемы, например, задачи оптимизации.

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

    Классический генетический алгоритм

    Основной (классический) генетический алгоритм (также называемый элементарным или простым генетическим алгоритмом) состоит из следующих шагов:

  • инициализация, или выбор исходной популяции хромосом;
  • оценка приспособленности хромосом в популяции;
  • проверка условия остановки алгоритма;
  • селекция хромосом;
  • применение генетических операторов;
  • формирование новой популяции;
  • выбор "наилучшей" хромосомы.
  • Блок-схема основного генетического алгоритма изображена на рис.11.14.

    (рис 11.14) Блок-схема генетического алгоритма

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

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

    Проверка условия остановки алгоритма. Определение условия остановки генетического алгоритма зависит от его конкретного применения. В оптимизационных задачах, если известно максимальное (или минимальное) значение функции приспособленности, то остановка алгоритма может произойти после достижения ожидаемого оптимального значения, возможно - с заданной точностью. Остановка алгоритма также может произойти в случае, когда его выполнение не приводит к улучшению уже достигнутого значения. Алгоритм может быть остановлен по истечении определённого времени выполнения либо после выполнения заданного количества итераций. Если условие остановки выполнено, то производится переход к завершающему этапу выбора "наилучшей" хромосомы. В противном случае на следующем шаге выполняется селекция.

    Селекция хромосом заключается в выборе (по рассчитанным на втором этапе значениям функции приспособленности) тех хромосом, которые будут участвовать в создании потомков для следующей популяции, т.е. для очередного поколения. Такой выбор производится согласно принципу естественного отбора, по которому наибольшие шансы на участие в создании новых особей имеют хромосомы с наибольшими значениями функции приспособленности. Существуют различные методы селекции. Наиболее популярным считается так называемый метод рулетки (roulette wheel selection), который свое название получил по аналогии с известной азартной игрой. Каждой хромосоме может быть сопоставлен сектор колеса рулетки, величина которого устанавливается пропорциональной значению функции приспособленности данной хромосомы. Поэтому чем больше значение функции приспособленности, тем больше сектор на колесе рулетки. Все колесо рулетки соответствует сумме значений функции приспособленности всех хромосом рассматриваемой популяции. Каждой хромосоме, обозначаемой $$ch_i для i =1,2, ..., N$$ (где N обозначает численность популяции) соответствует сектор колеса v(chi), выраженный в процентах согласно формуле

    $$v(ch_i):=p_s (ch_i)100%$$

    где

    $$p_s (ch_i)= \frac{F(ch_i)}{\sum_{i=1}^N F(ch_i)}$$

    причём $$F(ch_i)$$ - значение функции приспособленности хромосомы chi, a ps(chi) -вероятность селекции хромосомы chi. Селекция хромосомы может быть представлена как результат поворота колеса рулетки, поскольку "выигравшая" (т.е. выбранная) хромосома относится к выпавшему сектору этого колеса. Очевидно, что чем больше сектор, тем больше вероятность "победы" соответствующей хромосомы. Поэтому вероятность выбора данной хромосомы оказывается пропорциональной значению её функции приспособленности. Если всю окружность колеса рулетки представить в виде цифрового интервала [0, 100], то выбор хромосомы можно отождествить с выбором числа из интервала [а, b], где а и b обозначают, соответственно, начало и окончание фрагмента окружности, соответствующего этому сектору колеса; очевидно, что $$0 \le а < b \le 100$$. В этом случае выбор с помощью колеса рулетки сводится к выбору числа из интервала [0, 100], которое соответствует конкретной точке на окружности колеса.

    В результате процесса селекции создается родительская популяция, также называемая родительским пулом (mating pool) с численностью N, равной численности текущей популяции.

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

    В классическом генетическом алгоритме применяются два основных генетических оператора: оператор скрещивания (crossover) и оператор мутации (mutation). Однако следует отметить, что оператор мутации играет явно второстепенную роль по сравнению с оператором скрещивания. Это означает, что скрещивание в классическом генетическом алгоритме производится практически всегда, тогда как мутация - достаточно редко. Вероятность скрещивания, как правило, достаточно велика (обычно $$0,5 \le р_с \le 1$$), тогда как вероятность мутации устанавливается весьма малой (чаще всего $$0 \le р_m \le 0,1$$). Это следует из аналогии с миром живых организмов, где мутации происходят чрезвычайно редко.

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

    Оператор скрещивания

    На первом этапе скрещивания выбираются пары хромосом из родительской популяции (родительского пула). Это временная популяция, состоящая из хромосом, отобранных в результате селекции и предназначенных для дальнейших преобразований операторами скрещивания и мутации с целью формирования новой популяции потомков. На данном этапе хромосомы из родительской популяции объединяются в пары. Это производится случайным способом в соответствии с вероятностью скрещивания $$р_с$$. Далее для каждой пары отобранных таким образом родителей разыгрывается позиция гена (локус) в хромосоме, определяющая так называемую точку скрещивания. Если хромосома каждого из родителей состоит из L генов, то очевидно, что точка скрещивания $$l_k$$ представляет собой натуральное число, меньшее L. Поэтому фиксация точки скрещивания сводится к случайному выбору числа из интервала $$[1, L - 1].$$ В результате скрещивания пары родительских хромосом получается следующая пара потомков:

  • потомок, хромосома которого на позициях от 1 до $$l_k$$ состоит из генов первого родителя, а на позициях от $$k + 1$$ до $$L$$ - из генов второго родителя;
  • потомок, хромосома которого на позициях от 1 до $$k$$ состоит из генов второго родителя, а на позициях от $$l_k + 1$$ до $$L$$ - из генов первого родителя.
  • Оператор мутации с вероятностью рт изменяет значение гена в хромосоме на любое другое возможное значение. Например, если в хромосоме [100110101010] мутации подвергается ген на позиции 7, то его значение, равное 1, изменяется на 0. что приводит к образованию хромосомы [100110001010]. Как уже упоминалось выше, вероятность мутации обычно очень мала, и именно от нее зависит, будет данный ген мутировать или нет. Вероятность рт мутации может эмулироваться, например, случайным выбором числа из интервала [0, 1] для каждого гена и отбором для выполнения этой операции тех генов, для которых разыгранное число оказывается меньшим или равным значению рт.

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

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

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

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

    Рассмотрим алгоритм решения следующей задачи: необходимо оптимизировать эффективность от вложения средств в различные проекты, операции, недвижимость и т.д. Эффективность будет определяться как доходность от вложенных средств, в зависимости от того, в какой период они распределены. Рассмотрим возможность организации размещения средств в N периодах (что соответствует краткосрочному, среднесрочному и долгосрочному периодам, соответственно). Допустим, у организации есть альтернатива из М вариантов вложения средств в разные проекты в различные периоды. Вектор $$Х{Х_1,Х_2,…Х_n}$$, где $$X_i$$- вариант вложения средств в i-м периоде.

    В данном случае вектор X будет являться хромосомой (индивидуумом), состоящей из набора N генов.

    Необходимо найти глобальный максимум функции F(Х), определяющей доходность данного размещения средств в рассматриваемых периодах.

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

    Проведение двух серий экспериментов приводит к следующим выводам:

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

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

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

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

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

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

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

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

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

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

    Определение возможности остановки генетического алгоритма также зависит от конкретных условий. Если известно максимальное (или минимальное) значение функции приспособленности, остановка может произойти после получения ожидаемого оптимального значения или после достижения заданной точности. Другой причиной остановки является отсутствие улучшения решения задачи. Кроме того, алгоритм может быть остановлен по истечении определённого времени выполнения либо после выполнения заданного количества итераций. Если условие остановки выполнено, то производится переход к выбору "наилучшей" хромосомы. В противном случае на следующем шаге выполняется селекция. Все перечисленные события могут являться причиной остановки генетического алгоритма при решении задачи конкуренции. Выбор варианта остановки следует рассматривать отдельно применительно к ценовой и неценовой конкуренции.

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

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

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

    К объединённым в пары хромосомам родительского пула применяется оператор скрещивания (crossover). Далее для каждой пары родителей разыгрывается позиция гена (локус), определяющая точку скрещивания. Если хромосома каждого из родителей состоит из L генов, то точка скрещивания z представляет собой натуральное число, меньшее L. Фиксация точки скрещивания сводится к случайному выбору числа из интервала [1, L-1]. В результате скрещивания пары родительских хромосом получается следующая пара потомков:

  • Потомок, хромосома которого на позициях от 1 до z состоит из генов первого родителя, а на позициях от $$z + 1$$ до $$L$$ - из генов второго родителя.
  • Потомок, хромосома которого на позициях от 1 до z состоит из генов второго родителя, а на позициях от $$z + 1$$ до $$L$$ - из генов первого родителя.
  • Такой вариант скрещивания называют одноточечным. Также применяются и другие виды скрещивания.

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

  • выполнить генерацию случайного числа точек разрыва J из диапазона [1, L-1], где L - число генов в хромосоме;
  • выполнить J генераций точек скрещивания $$z_J$$;
  • указанная процедура выполняется для каждой пары родительского пула.
  • Следующим важным этапом генетического алгоритма является формирование новой популяции. Хромосомы, полученные в результате применения генетических операторов к хромосомам временной родительской популяции, включаются в состав новой популяции. Она становится новым поколением для данной итерации генетического алгоритма. На каждой очередной итерации рассчитываются значения функции приспособленности для всех хромосом этой популяции, реализуется выбор (естественный отбор) хромосом, после чего проверяется условие остановки алгоритма и либо фиксируется результат в виде хромосомы с наибольшим значением функции приспособленности, либо осуществляется переход к следующему шагу генетического алгоритма, то есть к селекции.

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

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

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

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

    11.5. Экспертные системы, их структура и применение в экономике

    11.5.1. Общая характеристика, принципы, алгоритмы

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

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

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

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

    (рис 11.15) Основные принципы функционирования экспертной системы

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

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

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

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

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

    (рис 11.16) Связь между предметной областью и областью знаний

    Это означает, что на основании определённых фактов путём рассуждений формируется логичное, оправданное заключение, которое следует из этих фактов.

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

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

    (рис 11.17) Процесс разработки экспертной системы

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

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

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

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

    В cистеме, основанной на правилах, знания в проблемной области, необходимые для решения задач, закодированы в форме правил и содержатся в базе знаний. Безусловно, для представления знаний наиболее широко применяются правила. Элементы типичной экспертной системы, основанной на правилах, показаны на рис.11.18.

    (рис 11.18) Структура экспертной системы, основанной на правилах

    Экспертная система состоит из описанных ниже компонентов.

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

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

    горит красный свет —> стоять

    горит зеленый свет —> двигаться

    Продукционные правила могут быть выражены в эквивалентном формате псевдокода IF-THEN следующим образом:

    Правило: red__light

    IF горит красный свет THEN стоять

    Правило: green_light

    IF горит зеленый свет THEN двигаться

    Каждое правило обозначается именем. Вслед за именем находится часть IF правила. Участок правила между частями IF и THEN правила упоминается под разными именами, такими как антецедент, условная часть, часть шаблона или левая часть (left-hand-side — LHS). Такое отдельно взятое условие, как

    "горит красный свет" называется условным элементом, или шаблоном.

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

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

    Обратный логический вывод предусматривает формирование рассуждений в обратном направлении - от гипотезы (потенциального заключения, которое должно быть доказано) к фактам, которые подтверждают гипотезу. Например, если вы не выглядываете наружу, но кто-то вошёл в дом с влажными ботинками и зонтиком, то можно принять гипотезу, что идёт дождь. Чтобы подтвердить эту гипотезу, достаточно спросить данного человека, идёт ли дождь. В случае положительного ответа будет доказано, что гипотеза истинна, поэтому она становится фактом. Как уже было сказано выше, гипотеза может рассматриваться как факт, истинность которого вызывает сомнение и должна быть установлена. В таком случае гипотеза может интерпретироваться как цель, которая должна быть доказана.

    В зависимости от проекта экспертной системы в машине логического вывода осуществляется либо прямой, либо обратный логический вывод, либо обе эти формы логического вывода. Например, язык CLIPS спроектирован в расчёте на применение прямого логического вывода, в языке PROLOG осуществляется обратный логический вывод, а в версии CLIPS, называемой Eclipse, разработанной Полом Хэйли (Paul Haley), осуществляется и прямой, и обратный логический выводы. Выбор машины логического вывода зависит от типа задачи. Диагностические задачи лучше всего решать с помощью обратного логического вывода, в то время как задачи прогнозирования, текущего контроля и управления проще всего поддаются решению с помощью прямого логического вывода.

    Рабочая память может содержать факты, касающиеся текущего состояния светофора, такие как "горит зелёный свет" или "горит красный свет". В рабочей памяти может присутствовать любой из этих фактов или оба факта одновременно. Если светофор работает нормально, то в рабочей памяти будет находиться только один факт. Но возможно также, что в рабочей памяти будут присутствовать оба факта, если светофор неисправен. В чём состоит различие между базой знаний и рабочей памятью? Факты не взаимодействуют друг с другом. Факт "горит зелёный свет" не воздействует на факт "горит красный свет". С другой стороны, знания о работе светофоров говорят о том, что если одновременно присутствуют оба факта, то светофор неисправен.

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

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

    Вслед за частью THEN правила находится список действий, которые должны быть выполнены после запуска правила. Эта часть правила называется консеквентом, или правой частью (Right-Hand Side — RHS). Если происходит запуск правила red_light, выполняется его действие "стоять". Аналогичным образом после запуска правила green_light его действием становится "двигаться". В состав конкретных действий обычно входит добавление или удаление фактов из рабочей памяти либо вывод результатов. Формат описания этих действий зависит от синтаксиса языка экспертной системы. Например, в языке CLIPS действие по добавлению в рабочую память нового факта, называемого "stop" (стоять), принимает вид (assert stop).

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

    WHILE работа не закончена

    Разрешение конфликтов. Если имеются активизированные правила, то выбрать правило с наивысшим приоритетом; в противном случае работа закончена.

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

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

    Проверка условий останова. Если осуществлено действие halt или дана команда break, то работа закончена.

    END - WHILE

    Принять новую команду пользователя.

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

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

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

    После завершения выполнения всех правил управление возвращается к интерпретатору команд верхнего уровня, чтобы пользователь мог выдать командному интерпретатору экспертной системы дополнительные инструкции. Работа в режиме верхнего уровня соответствует применяемому по умолчанию режиму, в котором пользователь взаимодействует с экспертной системой, и обозначается как задача "Accept a new user command" (Принять новую команду пользователя). Приём новых команд происходит именно на верхнем уровне.

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

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

    Продукционные системы

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

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

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

    Широкое применение систем, основанных на правилах, обусловлено описанными ниже причинами.

  • Модульная организация. Благодаря такой организации упрощается представление знаний и расширение экспертной системы.
  • Наличие средств объяснения. Такие экспертные системы позволяют легко создавать средства объяснения с помощью правил, поскольку антецеденты правила точно указывают, что необходимо для активизации правила. Средство объяснения позволяет следить за тем, запуск каких правил был осуществлён, поэтому даёт возможность восстановить ход рассуждений, которые привели к определённому заключению.
  • Наличие аналогии с познавательным процессом человека. Согласно результатам, полученным Ньюэллом и Саймоном, правила представляют собой естественный способ моделирования процесса решения задач человеком. А при осуществлении попытки выявить знания, которыми обладают эксперты, проще объяснить экспертам структуру представления знаний, поскольку применяется простое представление правил IF-THEN.
  • Продукционные системы Поста

    Продукционные системы были впервые использованы в символической логике Постом (Post), поэтому имя этого учёного вошло в название указанных систем. Пост доказал такой важный и неожиданный результат, что любая система математики или логики может быть оформлена в виде системы продукционных правил определённого типа. Этот результат показал огромные возможности применения продукционных правил для представления важных классов знаний, а это означает, что продукционные правила не сводятся к нескольким ограниченным типам. Кроме того, продукционные правила, обозначаемые термином правила подстановки, используются также в лингвистике как способ определения грамматики языка. Компьютерные языки обычно определяются с помощью формы продукционных правил, известной как нормальная форма Бэкуса-Наура (Backus-Naur FormBNF. Основная идея Поста заключалась в том, что любая математическая или логическая система представляет собой набор правил, который указывает, как преобразовать одну строку символов в другой последовательный набор символов. Это означает, что продукционное правило после получения входной строки (антецедента) способно выработать новую строку (консеквент). Такая идея является также действительной по отношению к программам и экспертным системам, в которых начальная строка символов представляет собой входные данные, а выходная строка становится результатом определённых преобразований, которым были подвергнуты входные данные.

    В качестве очень простого случая можно представить себе, что если входной строкой является "у пациента имеется высокая температура", то выходной строкой может быть "пациент должен принять аспирин". За этими строками не закреплён какой-либо смысл. Иными словами, манипуляции со строками основаны на синтаксисе, а не на семантике, т.е. не на понимании того, что скрывается за словами "высокая температура", "аспирин" и "пациент". Люди знают, что означают эти строки в реальном мире, а продукционная система Поста применяется лишь в качестве способа преобразования одной строки в другую. Для данного примера может быть предусмотрено следующее продукционное правило:

    антецедент —> консеквент

    у пациента имеется высокая температура —> пациент должен принять аспирин

    В этом правиле стрелка означает, что одна строка должна быть преобразована в другую. Указанное правило можно интерпретировать с помощью более знакомой системы обозначений IF-THEN следующим образом:

    IF у пациента имеется высокая температура THEN пациент должен принять аспирин.

    Rete – алгоритм

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

    Решением этой проблемы является rete-алгоритм, разработанный Чарльзом Л. Форги (Charles L. Forgy) в университете Карнеги-Меллона в 1979 году в рамках диссертации по командному интерпретатору экспертной системы OPS (Official Production System — стандартная продукционная система) на получение степени доктора философии. Термин rete - алгоритм происходит от латинского слова rete (по-английски читается "рити", а по-русски — "реете"), которое означает сеть. Rete-алгоритм функционирует как сеть, которая предназначена для хранения большого объёма информации и обеспечивает значительное сокращение времени отклика. Кроме того, он обеспечивает повышение быстродействия при запуске правил по сравнению с большими группами правил IF-THEN, которые должны проверяться один за другим в обычной системе, основанной на правилах. Rete-алгоритм основан на использовании динамической структуры данных, подобной стандартному дереву В+, которая автоматически реорганизуется в целях оптимизации поиска.

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

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

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

    На рис.11.19 показаны технологии, которые образуют фундамент современных экспертных систем, основанных на правилах.

    (рис 11.19) Современные экспертные системы, основанные на правилах

    Пример разработки экспертной системы

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

  • ЕСЛИ класс – бухгалтерские программы

    И форма конфигурирования системы должна быть жёсткой (пользователь не будет иметь возможности сам конфигурировать какие-либо входные или выходные документы)

    ТО лучше всего подходит бухгалтерская программа 1С версия 6.0.
  • ЕСЛИ класс – бухгалтерские программы

    И форма конфигурирования системы должна быть лояльной (т.е. пользователь может сам конфигурировать какие-либо входные или выходные документы)

    И программа разработана под оболочку DOS.

    ТО лучше всего подходит система бухгалтерских программ "Бест".
  • ЕСЛИ класс – бухгалтерские программы

    И форма конфигурирования системы должна быть лояльной (т.е. пользователь может сам конфигурировать какие-либо входные или выходные документы)

    И программа разработана под оболочку Windows95.

    И программа одноуровневая.

    ТО лучше всего подходит бухгалтерская программа "Инфо Бухгалтер".
  • ЕСЛИ класс – бухгалтерские программы

    И форма конфигурирования системы должна быть лояльной (т.е. пользователь может сам конфигурировать какие-либо входные или выходные документы).

    И программа разработана под оболочку Windows95.

    И программа не одноуровневая.

    ТО лучше всего подходит система бухгалтерских программ "Турбо Бухгалтер".
  • ЕСЛИ тип – правовые системы

    И пополнение информационной базы происходит еженедельно (минимум), посредством курьера

    ТО лучше всего подходит правовая программа "Гарант".
  • ЕСЛИ тип – правовые системы

    И пополнение информационной базы происходит ежемесячно (минимум), через покупку нового CD-ROM.

    ТО лучше всего подходит правовая программа "Кодекс".
  • ЕСЛИ тип – правовые системы

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

    ТО лучше всего подходит правовая программа "Эталон".
  • ЕСЛИ тип – складские программы

    И форма конфигурирования системы должна быть жёсткой (пользователь не будет иметь возможности сам конфигурировать какие-либо входные или выходные документы)

    ТО лучше всего подходит правовая складская программа "Фолио".
  • ЕСЛИ тип – складские программы.

    И форма конфигурирования системы должна быть лояльной (т.е. пользователь может сам конфигурировать какие-либо входные или выходные документы)

    ТО лучше всего подходит правовая программа склад "1С версия 7.5".
  • Предположим, что перед пользователем стоит задача: узнать, какое обеспечение из широкого спектра предлагаемого сейчас программного обеспечения ему наиболее подойдет, учитывая специфику ПК, на который предполагается установить это ПО. С помощью некоторых базовых правил фирмы "Элком-Информ" составлена некоторая экспертная система, которая поможет пользователю в его нелёгком выборе. Сеанс диалога может иметь следующий вид:

    ЭС: Какое программное обеспечение вы хотели бы приобрести? (правовое, бухгалтерское, складское).

    Пользователь: Бухгалтерское

    ЭС: Форма конфигурирования системы должна быть жёсткой (пользователь не будет иметь возможности сам конфигурировать какие-либо входные или выходные документы)? (да, нет).

    Пользователь: Нет.

    ЭС: Форма конфигурирования системы должна быть лояльной (т.е. пользователь может сам конфигурировать какие-либо входные или выходные документы)?

    Пользователь: Да

    ЭС: Программа должна быть разработана под оболочку Windows95?

    Пользователь: Да.

    ЭС: Программа должна быть одноуровневая? (да, нет).

    Пользователь: Нет.

    ЭС: Программа должна быть не одноуровневая?

    Пользователь: Да

    ЭС: Лучше всего для вас подходит система бухгалтерских программ "Турбо Бухгалтер".

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

    Правила типа "если – то" для представления знаний

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

  • если предварительное условие P, то заключение (вывод) C;
  • если ситуация S, то действие A;
  • если выполнены условия C1 и C2, то не выполнено условие C.
  • "Если – то" - правила обычно оказываются весьма естественным выразительным средством представления знаний. Кроме того, они обладают следующими привлекательными свойствами:

  • Модульность: каждое правило описывает небольшой, относительно независимый фрагмент знаний.
  • Возможность инкрементного наращивания: добавление новых правил в базу знаний происходит относительно независимо от других правил.
  • Удобство модификации (как следствие модульности): старые правила можно изменять и заменять на новые относительно независимо от других правил.
  • Применение правил способствует "прозрачности системы".
  • Последнее свойство - это важное, относительное свойство экспертных систем. Под прозрачностью понимается способность системы к объяснению принятых решений и полученных результатов. Применение "если – то" - правил облегчает получение ответов на следующие основные типы вопросов пользователя:

  • Вопросы типа "как": Как вы пришли к этому выводу?
  • Вопросы типа "почему": Почему вас интересует эта информация?
  • "Если – то" - правила часто применяют для определения логических отношений между понятиями предметной области. Про чисто логические отношения можно сказать, что они принадлежат к "категорическим знаниям", "категорическим" - потому, что соответствующие утверждения всегда абсолютно верны. Однако в некоторых предметных областях преобладают "мягкие" или вероятностные знания. Эти знания являются "мягкими" в том смысле, что говорить об их применимости к любым практическим ситуациям можно только до некоторой степени ("часто, но не всегда"). В таких случаях используют модифицированные "если – то" - правила, дополняя их логическую интерпретацию вероятностной оценкой. Например:

    если условие A, то заключение B с уверенностью F

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

    Преимущества экспертных систем

    Как описано ниже, экспертные системы обладают многими привлекательными особенностями.

  • Повышенная доступность. Для обеспечения доступа к экспертным знаниям могут применяться любые подходящие компьютерные аппаратные средства. В определённом смысле вполне оправдано утверждение, что экспертная система - это средство массового производства экспертных знаний.
  • Уменьшенные издержки. Стоимость предоставления экспертных знаний в расчёте на отдельного пользователя существенно снижается.
  • Уменьшенная опасность. Экспертные системы могут использоваться в таких вариантах среды, которые могут оказаться опасными для человека.
  • Постоянство. Экспертные знания никуда не исчезают. В отличие от экспертов - людей, которые могут уйти на пенсию, уволиться с работы или умереть, знания экспертной системы сохраняются в течение неопределённо долгого времени.
  • Возможность получения экспертных знаний из многих источников. С помощью экспертных систем могут быть собраны знания многих экспертов и привлечены к работе над задачей, выполняемой одновременно и непрерывно, в любое время дня и ночи. Уровень экспертных знаний, скомбинированных путём объединения знаний нескольких экспертов, может превышать уровень знаний отдельно взятого эксперта-человека.
  • Повышенная надёжность. Применение экспертных систем позволяет повысить степень доверия к тому, что принято правильное решение, путём предоставления еще одного обоснованного мнения эксперту-человеку или посреднику при разрешении несогласованных мнений между несколькими экспертами - людьми. (Разумеется, такой метод разрешения несогласованных мнений не может использоваться, если экспертная система запрограммирована одним из экспертов, участвующих в столкновении мнений.) Решение экспертной системы должно всегда совпадать с решением эксперта; несовпадение может быть вызвано только ошибкой, допущенной экспертом, что может произойти, только если эксперт-человек устал или находится в состоянии стресса.
  • Объяснение. Экспертная система способна подробно объяснить свои рассуждения, которые привели к определённому заключению. А человек может оказаться слишком усталым, не склонным к объяснениям или неспособным делать это постоянно. Возможность получить объяснение способствует повышению доверия к тому, что было принято правильное решение.
  • Быстрый отклик. Для некоторых приложений может потребоваться быстрый отклик или отклик в реальном времени. В зависимости от используемого аппаратного и программного обеспечения экспертная система может реагировать быстрее и быть более готовой к работе, чем эксперт - человек. В некоторых экстремальных ситуациях может потребоваться более быстрая реакция, чем у человека; в таком случае приемлемым вариантом становится применение экспертной системы, действующей в реальном времени.
  • Неизменно правильный, лишенный эмоций и полный ответ при любых обстоятельствах. Такое свойство может оказаться очень важным в реальном времени и в экстремальных ситуациях, когда эксперт-человек может оказаться неспособным действовать с максимальной эффективностью из-за воздействия стресса или усталости.
  • Возможность применения в качестве интеллектуальной обучающей программы. Экспертная система может действовать в качестве интеллектуальной обучающей программы, передавая учащемуся на выполнение примеры программ и объясняя, на чём основаны рассуждения системы.
  • Возможность применения в качестве интеллектуальной базы данных.
  • Экспертные системы могут использоваться для доступа к базам данных с помощью интеллектуального способа доступа. В качестве примера можно привести анализ скрытых закономерностей в данных.

    11.5.2.Особенности экспертных систем экономического анализа*

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

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

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

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

    $$O_i = \sum (W_{ij}O_{ij}), $$

    где $$О_{ij}$$ - оценка влияния j - го фактора на i - й вышестоящий фактор по некоторой числовой шкале, а $$W_{ij}$$ - вес (коэффициент) влияния j – го фактора на i - й фактор.

    ------------------------------------------------------------------------------------------------

    * При написании этого раздела использованы материалы из Интернет: Тельнов Ю.Ф. Информационные интеллектуальные системы. – М., 2004.

    Правила базы знаний оценивают отдельные факторы, реализуя так называемый дизъюнктивный (независимый) подход к построению правил. Примеры правил имеют следующий вид:

    IF: Управление = "удовлетворительно"
    THEN: Фин.состояние + = "удовлетворительно" cf 40
    IF: Финансовая структура = "удовлетворительно"
    THEN: Фин.состояние + = "удовлетворительно" cf 60
    IF: Ресурсы = "удовлетворительно"
    THEN: Фин.состояние + = "удовлетворительно" cf 50
    . . . . . . . . . . . . . . . . . . . . . . . . .
    IF: Качество управления = "удовлетворительно"
    THEN: Управление + = "удовлетворительно" cf 80
    IF: Структура управления = "удовлетворительно"
    THEN: Управление + = "удовлетворительно" cf 90

    и т.д.

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

    В результате внедрения системы EvEnt для 80 % ситуаций решения формируются без экспертов. Если раньше на оценку предприятия экспертом банка требовалось в среднем 2-3 недели, то после внедрения экспертной системы основные затраты стали связываться со сбором и вводом исходных данных в течение 2-3 дней, а собственно оценка предприятия занимает порядка 20 минут. При этом стоимость экспертизы в среднем сократилась с 10000 долларов до 1000 долларов.

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

    Классообразующим признаком является признак "Класс кредитоспособности" (1 - высший класс, 5 - низший класс). В результате обобщения примеров обучающей выборки часть признаков была формально отброшена: коэффициенты мобильности, ликвидности и величина предприятия, причем по различным ветвям дерева решений наблюдалась различная последовательность классификации.

    Для каждой отдельной ветки дерева решения строится правило, в котором все признаки классификации последовательно связываются в конъюнкцию () факторов левой части правила (так называемый конъюнктивный подход), например:

    IF: Кпокрыт. > = 1.55  Kпокрыт. < 2  Pепутац = 3  Kсоб.заем. > =
    0.625  Kсоб.заем. < 0.75  Kавтоном. > = 0.375  Kавтоном. < 0.6
    THEN: Кред.сп = 1
    (рис 11.20) Дерево решений "Определение класса кредитоспособности"

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

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

    В основе диагностики лежит метод последовательной декомпозиции "сверху - вниз" или дезагрегации "целое - часть", когда проблема последовательно разбивается на подпроблемы, пока на каком-либо уровне не станет ясным, какая подпроблема в действительности имеет место. Примером применения декомпозиционного метода к построению экспертных систем служит система внутреннего финансового анализа FINEX (рис.11.21).

    В случае применения экспертной системы внутреннего финансового анализа FINEX экспертиза осуществляется автоматически на основе введённых данных финансовой отчётности.

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

    Для проведения комплексного экономического анализа предприятия целесообразно комбинировать применение описанных выше методов к построению наборов правил. В МЭСИ разработан исследовательский прототип экспертной системы "Финансовый анализ предприятий" в среде интегрированного ППП Интерэксперт (GURU), реализующий и рейтинговый, и классификационный, и декомпозиционный методы анализа.

    Функциями экспертной системы финансового анализа предприятия являются:

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

    Анализ финансового состояния предприятия предполагает комплексную рейтинговую и классификационную оценку платежеспособности и финансовой устойчивости предприятия.

    (рис 11.21) Диагностика рентабельности предприятия

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

    11.5.3. Экспертная система анализа финансового состояния предприятия

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

    (рис 11.22)

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

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

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

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

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

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

    Для оценки такого баланса кроме простого (приближенного) метода группировки существует более точный метод нормативов-скидок. При расчете показателей платежеспособности используются следующие формулы:

    1) Финансовые коэффициенты ликвидности:

    а) коэффициент абсолютной ликвидности (Кал):

    $$Кал =\frac{D}{ Kt + Rp + Ko}$$

    где D - денежные средства и краткосрочные финансовые вложения;

    Kt - краткосрочные кредиты и заемные средства;

    Rp - расчёты и прочие пассивы;

    Ko - ссуды, не погашенные в срок.

    б) коэффициент ликвидности (Кл):

    $$Кл =\frac{Ra}{Kt + Rp + Ko}$$

    где Ra - денежные средства, расчёты и прочие активы.

    в) коэффициент покрытия (Кп):

    $$Кп =\frac{(Z - Sf) + Ra}{Kt + Rp + Ko}$$

    где Z - запасы и затраты;

    Sf - расходы будущих периодов;

    Ra - денежные средства, расчёты и прочие активы.

    Оценка коэффициентов ликвидности для промышленных предприятий осуществляется на основе проверки ограничений.

    Коэффициент абсолютной ликвидности:

  • Кал <= 0,2 - неудовлетворительное значение c уверенностью 50%;
  • Кал > 0,2 и <= 0,7 - "удовлетворительно" с уверенностью 30%;
  • Кал > 0,7 и <= 1,0 - "удовлетворительно" с уверенностью 50%;
  • Кал > 1,0 - "удовлетворительно" с уверенностью 30%.
  • Коэффициент ликвидности:

  • Кл <= 0,6 - неудовлетворительное значение c уверенностью 60%;
  • Кл > 0,6 и <= 0,8 - "удовлетворительно" с уверенностью 40%;
  • Кл > 0,8 и <= 1,0 - "удовлетворительно" с уверенностью 60%;
  • Кл > 1,0 - "удовлетворительно" с уверенностью 40%.
  • Коэффициент покрытия:

  • Кп <= 1,0 - неудовлетворительное значение c уверенностью 70%;
  • Кп > 1,0 и <= 2,0 - "удовлетворительно" с уверенностью 50%;
  • Кп > 2,0 и <= 3 - "удовлетворительно" с уверенностью 70%;
  • Кп > 3,0 - "удовлетворительно" с уверенностью 50%.
  • 2) Ликвидность баланса:

    а) Расчёт ликвидности баланса простым методом:

  • наиболее ликвидные активы $$A1 = D$$;
  • быстрореализуемые активы $$A2 = Ra - D$$;
  • медленно реализуемые активы $$A3 = Z + Sf + FT + RTa$$ , где $$Sf$$ - расходы будущих периодов, $$FT$$ - долгосрочные финансовые вложения, R$$Ta$$ - расчеты с участниками (учредителями);
  • наиболее срочные пассивы $$П1 = Rp + Ko$$;
  • краткосрочные пассивы $$П2 = Kt - Ko$$;
  • долгосрочные и среднесрочные пассивы $$П3 = КT + RTp$$ , где $$КT$$ - долгосрочные и среднесрочные кредиты и заемные средства, RTp - расчёты за имущество;
  • б) Расчёт ликвидности баланса методом нормативов скидок:

    $$А1 = D;$$ $$ A2 = 0,82a + 0,7Г + 0,5(Z - Sf -Г),$$

    где Г - готовая продукция;

    $$A3 = 0,22a + 0,3Г +0,5(Z - Sf -Г) + FT + RTa;$$ $$П1 = 0,8Rp + Ko;$$ $$П2 = 0,2Rp + Kt - Ko;$$ $$П3 = KT + RTp.$$

    Для обоих методов оценки ликвидности баланса рассчитываются платежные излишки/недостатки по следующим формулам:

  • платежный излишек/недостаток наиболее ликвидных активов: $$А11(А21) = А1 - П1;$$
  • платежный излишек/недостаток быстрореализуемых активов $$А12(А22) = А2 - П2;$$
  • платежный излишек/недостаток медленно реализуемых активов $$А13(А23) = A3 - П3.$$
  • В общей оценке платежеспособности наибольшее значение придается оценке баланса ликвидности по сравнению с оценкой коэффициентов ликвидности, например, факторы уверенности назначаются в соотношении 2 к 1. В оценке баланса ликвидности метод нормативов - скидок играет уточняющую роль, он лишь немного увеличивает хорошие значения и уменьшает плохие значения ликвидности.

    Оценку баланса ликвидности можно представить в виде следующей матрицы ("+" - избыток, "-" - недостаток):

    А11 А12 А13 Оценка Уверенность
    + + + Удовл. 100
    + + - Удовл. 80
    + - + Удовл. 75
    - + + Удовл. 70
    - - - Неудовл. 100
    - - + Неудовл. 75
    - + - Неудовл. 70
    + - - Неудовл. 60

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

    1) Трёхкомпонентный показатель типа финансовой ситуации:

  • излишек/недостаток собственных оборотных средств: $$+ Ес = Иc - F - Z;$$
  • излишек/недостаток собственных, долгосрочных и среднесрочных заемных средств: $$+Ет = Иc - F - Z + Kt;$$
  • излишек/недостаток общей величины основных источников формирования запасов и затрат: $$+Е = Иc - F - Z + Kt + KT;$$
  • Полученное значение трёхкомпонентного показателя может характеризовать состояние финансовой устойчивости как:

  • абсолютно устойчивое: запасы минимальны, если $$+Ес > 0 и +Eт > 0 и +Е > 0;$$
  • нормальное: нормальные величины запасов, если $$+Ес < 0 и +Eт > 0 и +Е > 0;$$
  • неустойчивое: избыток запасов, если $$+Ес < 0 и +Eт < 0 и +Е > 0;$$
  • Такое состояние можно восстановить путём привлечения долгосрочных и среднесрочных кредитов и заемных средств или обоснованным снижением уровня запасов;

  • кризисное: чрезмерная величина неподвижных и малоподвижных запасов, если $$+Ес < 0 и +Eт < 0 и +Е < 0;$$
  • В этом случае денежные средства, краткосрочные ценные бумаги и дебиторская задолженность не покрывают даже кредиторской задолженности и просроченных ссуд.

    2) Коэффициенты финансовой устойчивости предприятия:

  • коэффициент автономии: $$Ка =\frac{Ис}{В}$$ где В - итог актива и пассива баланса;
  • коэффициент соотношения заемных и собственных средств: $$ Кз/с =\frac{K + Rp}{Ис}$$
  • коэффициент маневренности: $$ Км =\frac{Ис - F}{Ис}$$
  • коэффициент обеспеченности запасов и затрат собственными источниками финансирования: $$ Коб=\frac{Ис - F}{Z}$$
  • Оценка коэффициентов финансовой устойчивости для промышленных предприятий осуществляется на основе проверки ограничений:

    Коэффициент автономии:

  • Ка <= 0,2 - неудовлетворительное значение с уверенностью 100%;
  • Ка > 0,2 и <= 0,5 - "удовлетворительно" с уверенностью 75%;
  • Ка > 0,5 - "удовлетворительно" с уверенностью 100%.
  • Коэффициент соотношения заемных и собственных средств:

  • Кз/с < 0,7 - удовлетворительное значение с уверенностью 100%
  • Кз/с >= 0,7- неудовлетворительное значение с уверенностью 100%
  • Коэффициент маневренности:

  • Км = 0,5 - удовлетворительное значение с уверенностью 100%;
  • Км <> 0,5 - неудовлетворительное значение с уверенностью 100%.
  • Коэффициент обеспеченности запасов и затрат собственными источниками финансирования:

  • Коб <= 0,6 - неудовлетворительное значение с уверенностью 100%;
  • Коб > 0,6 и <= 0,8 - удовлетворительное с уверенностью 100%;
  • Коб > 0,8 - удовлетворительное с уверенностью 80%.
  • Оценки показателей платежеспособности и финансовой устойчивости корректируются в зависимости от оценки тенденции развития предприятия (динамики значений показателей). При этом производится сравнение показателей отчётного периода со средней величиной этих показателей за предшествующий период деятельности предприятия с учётом инфляционных процессов. В случае улучшения значений показателей коэффициент уверенности удовлетворительной оценки увеличивается, предположим, на 10%, а в случае ухудшения коэффициент уверенности, соответственно, уменьшается.

    Проверка ограничений на значения отдельных показателей и их последующая оценка задается в виде правил базы знаний в следующей форме:

    Если: <посылка> То: < заключение > Уверенность < значение >, например:

    Если: А11 > 0 и A12 > 0 и A13 > 0

    То: Ликвидность баланса = "Удовлетворительна" Уверенность 100.

    В случае независимого воздействия на оценку некоторой целевой переменной нескольких показателей (соответственно нескольких правил, оценивающих эту переменную) коэффициент уверенности (КУ) итоговой оценки формируется рейтинговым методом по формуле нормализованного сложения:

    $$КУрез i = КУрез i-1 + КУфактора i - КУрез i-1* КУфактора i/100$$ $$(КУрез 1 = КУфактора 1)$$

    Например, коэффициент уверенности оценки ликвидности на основе значений финансовых коэффициентов ликвидности рассчитывается следующим образом:

    Кал = 1,1 -> Ликвидность коэф-в = "Удовлетвор." Уверенность 30
    Кл = 1,5 -> Ликвидность коэф-в = "Удовлетвор." Уверенность 40
    Кп = 3,1 -> Ликвидность коэф-в = "Удовлетвор." Уверенность 50

    Ликвидность коэф-в = "Удовлетвор." Уверенность 79

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

    IF: Ликвидность коэф-в = "Удовл." AND Ликвидность баланса = "Удовл."
    THEN: Платежеспособность = "Удовл." cf 100
    
    IF: Ликвидность коэф-в ="Неудовл." AND Ликвидность баланса ="Удовл."
    THEN: Платежеспособность = "Удовл." cf 80
    
    IF: Ликвидность коэф-в="Удовл." AND Ликвидность баланса="Неудовл."
    THEN: Платежеспособность = "Удовл." cf 40
    
    IF: Ликвидность коэф-в="Недовл." AND Ликвидность баланса="Недовл."
    THEN: Платежеспособность = "Неудовл." cf 100
    
    IF: Платежеспособность="Удовл." AND Финанс.устойчивость ="Удовл."
    THEN: Финансовое состояние = "Удовл." cf 100
    
    IF: Платежеспособность = "Неудовл." AND Финанс. устойчивость="Удовл"
    THEN: Финансовое состояние = "Удовл." cf 50
    
    IF: Платежеспособность="Удовл." AND Финанс. устойчивость ="Неуд."
    THEN: Финансовое состояние = "Удовл." cf 20
    
    IF: Платежеспособность="Неудовл." AND Финанс.устойчивость="Неуд."
    THEN: Финансовое состояние = "Неудовл." cf 100
    

    Объединение коэффициентов уверенности значений показателей для таких правил осуществляется следующим образом:

  • из коэффициентов уверенности посылки правила выбирается минимальный;
  • коэффициенты уверенности посылки и заключения правила объединяются по формуле:
  • $$КУ правила = КУ посылки * КУ заключения / 100 $$

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

    Платежеспособность = "Удовл." Уверенность 60
    Финанс. устойчивость = "Неудовл." Уверенность 70
    -----------------------------------------------------------------------------
    Посылка правила Уверенность 60
    Заключение правила Уверенность 20
    -----------------------------------------------------------------------------
    Финансовое состояние = "Удовл." Уверенность 12

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

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

    11.5.4. Экспертная система анализа эффективности результатов финансово-хозяйственной деятельности предприятия

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

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

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

    Рассмотрим взаимосвязи представленных в дереве показателей.

    Показатель рентабельности текущих активов (Рта), отражающий получение чистой прибыли (ЧП) на один рубль оборотных средств (ОбС):

    $$Рта=\frac {ЧП}{ОбС}$$

    может быть выведен через показатели оборачиваемости текущих активов (Ота) и рентабельности реализованной продукции (Ррп):

    $$Рта = Ота * Ррп.$$ (рис 11.23) Дерево целей "Оценка эффективности ФХД предприятия"

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

    $$Врп=\frac {Ота}{ОбС}$$

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

    Рентабельность реализованной продукции рассчитывается как отношение чистой прибыли к выручке от реализации продукции (Врп):

    $$Ррп=\frac {Ррп}{Врп}$$

    Выручка от реализации продукции в стоимостном выражении складывается из затрат на производство реализованной продукции (Зпр), или себестоимости, и результата от реализации, или прибыли (Пр):

    $$Врп = Зпр + Пр.$$

    Затраты на производство продукции включают прямые затраты (сырьё и материалы, оплату труда рабочих, отчисления на социальные нужды, брак в производстве и прочие расходы) и постоянные затраты (общехозяйственные, общепроизводственные и коммерческие расходы).

    Диагностика результатов финансово-хозяйственной деятельности предприятия осуществляется путём просмотра описанного дерева целей по принципу "сверху – вниз" и "слева – направо". Каждому уровню дерева соответствует правило, сопоставляющее значение показателя с требуемым уровнем. Для сопоставления рассчитанных показателей со среднеотраслевыми значениями такие абсолютные показатели, как прямые и постоянные затраты, переводятся в относительные посредством отнесения их к объему реализации продукции в рублях. Значения рассчитанных показателей оцениваются также путём сравнения с аналогичными значениями за предшествующий период, обеспечивая тем самым динамический анализ. Например:

    IF: Рта >= Рта отр. и Рта >= Рта пред.
    THEN: Рентабельность тек. активов + = "Удовл."
    
    IF: Рта >= Рта отр. и Рта < Рта пред.
    THEN: Рентабельность тек. активов += {"Удовл." cf 70, "Неудовл." cf 30}
    
    IF: Рта < Рта отр. и Рта >= Рта пред.
    THEN: Рентабельность тек. активов += {"Удовл." cf 30, "Неудовл." cf 70}
    
    IF: Рта < Рта отр. и Рта < Рта пред.
    THEN: Рентабельность тек. активов += "Неудовл."

    В приведённых правилах: Рта - показатель рентабельности текущих активов предприятия, Рта пред. - показатель рентабельности текущих активов предприятия за прошлый период, Рта отр. – показатель рентабельности текущих активов по отрасли.

    Сформированное качественное значение показателя фиксируется в специальной переменной "Финансово-хозяйственный результат". В случае неудовлетворительного значения того или иного показателя экспертная система осуществляет переход на анализ следующего уровня дерева показателей по функции KNOWN, например:

    IF: Рентабельность тек. активов = "Неудовлетв."
    AND KNOWN ("Оборачиваемость тек. активов")
    AND KNOWN("Рентабельность реал. продукции")
    THEN: Финансово-хозяйственный результат + =
    "Рентабельность тек. активов неудовлетворительна"
    
    IF: Рентабельность тек. активов = "Удовлетв."
    THEN: Финансово-хозяйственный результат + =
    "Рентабельность тек. активов удовлетворительна"
    
    IF: Оборачиваемость тек. активов = "Неудовлетв."
    AND KNOWN("Оборачиваемость гот. продукции")
    AND KNOWN("Оборачиваемость матер. запасов")
    THEN: Финансово-хозяйственный результат + =
    " Оборачиваемость тек. активов неудовлетворительна"
    
    IF: Оборачиваемость тек. активов = "Удовлетв."
    THEN: Финансово-хозяйственный результат + =
    " Оборачиваемость тек. активов удовлетворительна"
    . . . . . . . . . . . . . . . . . . . . . . . . .

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

    Контрольные вопросы и упражнения

  • Что объединяет в себе теория решений?
  • Что является характеристикой нечёткого множества?
  • Назовите основные логические операции нечётких множеств.
  • Что осуществляют нечёткие нейронные сети?
  • Назовите четыре слоя, из которых состоит нечёткая нейронная сеть.
  • Что представляют собой нечёткие когнитивные карты?
  • Для чего применяются нейронные сети?
  • Поясните шаги построения нейронной сети.
  • В чём отличие обобщенно-регрессионной нейронной сети от вероятностной нейронной сети?
  • Что представляет собой генетический алгоритм?
  • Назовите основные определения, которые используются при описании генетических алгоритмов.
  • Из каких шагов состоит основной (классический) генетический алгоритм?
  • В чём заключается селекция хромосом?
  • Пояснить работу двух основных генетических операторов, которые используются в классическом генетическом алгоритме.
  • Изложить алгоритм решения следующей задачи: необходимо оптимизировать эффективность от вложения средств в различные проекты, операции, недвижимость и т.д.
  • Показать, как должно рассчитываться значение функции приспособленности применительно к монополистической конкуренции на основе величин ценовых и неценовых характеристик.
  • Что представляют собой экспертные системы (ЭС)?
  • На использовании каких идей основаны экспертные системы?
  • В чём заключается главная идея использования технологии экспертных систем?
  • В чём состоит сходство информационных технологий, используемых в экспертных системах и системах поддержки принятия решений?
  • Какие различия существуют между информационными технологиями, используемыми в экспертных системах и системах поддержки принятия решений?
  • Для чего используется интерфейс в экспертной системе?
  • Что определяет правило в базе знаний?
  • Из каких частей состоит правило?
  • Перечислите наиболее распространенные семантические модели.
  • Поясните технологию работы интерпретатора.
  • Какие дополнительные блоки вводятся в экспертных системах?
  • Для чего используется модуль создания системы?
  • Что представляет собой оболочка экспертных систем?
  • Приведите пример экспертной системы внешнего анализа.
  • Поясните дизъюнктивный (независимый) подход к построению правил.
  • Поясните метод классификации ситуаций.
  • Какой подход используется для внутреннего экономического анализа?
  • Перечислите функции экспертной системы финансового анализа предприятия.
  • Какой может быть оценка финансового состояния предприятия?
  • Какие факторы необходимо учитывать при проведении экспертизы, оказывающие влияние на финансовое состояние предприятия?
  • Как рассчитывается оценка ликвидности (платежеспособности) предприятия?
  • Когда используется метод нормативов-скидок?
  • Как осуществляется расчет ликвидности баланса?
  • Как формируется оценка финансовой устойчивости предприятия?
  • Что включают затраты на производство продукции?
  • Как осуществляется диагностика результатов финансово-хозяйственной деятельности предприятия?
  • Заключение

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

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

    Страницы:

    11.1. Экономика в Искусственном Интеллекте

    Экономика как наука возникла в 1776 году, когда шотландский философ Адам Смит (1723—1790) опубликовал свою книгу An Inquiry into the Nature and Causes of the Wealth of Nations (Исследование о природе и причинах богатства народов). Важный вклад в экономику был сделан еще древнегреческими учёными и другими предшественниками Смита, но только Смит впервые сумел оформить эту область знаний как науку, используя идею, что любую экономику можно рассматривать как состоящую из отдельных агентов, стремящихся максимизировать свое собственное экономическое благосостояние.

    Большинство людей считают, что экономика посвящена изучению денежного оборота, но любой экономист ответит на это, что в действительности он изучает то, как люди делают выбор, который ведёт к предпочтительным для них результатам. Математическая трактовка понятия "предпочтительных результатов", или полезности, была впервые формализована Леоном Валрасом (1834—1910), уточнена Фрэнком Рамсеем, а затем усовершенствована Джоном фон Нейманом и Оскаром Моргенштерном в книге The Theory of Games and Economic Behavior (Теория игр и экономического поведения).

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

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

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

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

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

    В работе Ричарда Беллмана формализован определённый класс последовательных задач выработки решений, называемых марковскими процессами принятия решений (Markov Decision Process — MDP).

    Работы в области экономики и исследования операций оказали большое влияние на сформулированное понятие рациональных агентов, но в течение многих лет исследования в области искусственного интеллекта проводились совсем по другим направлениям. Одной из причин этого была кажущаяся сложность задачи выработки рациональных решений. Тем не менее, Герберт Саймон (1916—2001) в некоторых из своих ранних работ показал, что лучшее описание фактического поведения человека дают модели, основанные на удовлетворении (принятии решений, которые являются "достаточно приемлемыми"), а не модели, предусматривающие трудоёмкий расчёт оптимального решения. Он стал одним из первых исследователей в области искусственного интеллекта, получившим Нобелевскую премию по экономике (это произошло в 1978 году). В 1990-х годах наблюдалось возрождение интереса к использованию методов теории решений для систем агентов.

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

    Математическая теория нечётких множеств (fuzzy sets) и нечёткая логика (fuzzy logic) являются обобщениями классической теории множеств и классической формальной логики. Данные понятия были впервые предложены американским учёным Лотфи Заде (Lotfi Zadeh) в 1965 г. Основной причиной появления новой теории стало наличие нечётких и приближённых рассуждений при описании человеком процессов, систем, объектов.

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

    Первый период (конец 60-х–начало 70 г.г.) характеризуется развитием теоретического аппарата нечётких множеств (Л. Заде, Э. Мамдани, Беллман). Во втором периоде (70–80-е годы) появляются первые практические результаты в области нечёткого управления сложными техническими системами (парогенератор с нечётким управлением). Одновременно стало уделяться внимание вопросам построения экспертных систем, построенных на нечёткой логике, разработке нечётких контроллеров. Нечёткие экспертные системы для поддержки принятия решений находят широкое применение в медицине и экономике. Наконец, в третьем периоде, который длится с конца 80-х годов и продолжается в настоящее время, появляются пакеты программ для построения нечётких экспертных систем, а области применения нечёткой логики заметно расширяются. Она применяется в автомобильной, аэрокосмической и транспортной промышленности, в области изделий бытовой техники, в сфере финансов, анализа и принятия управленческих решений и многих других.

    Триумфальное шествие нечёткой логики по миру началось после доказательства в конце 80-х Бартоломеем Коско знаменитой теоремы FAT (Fuzzy Approximation Theorem). В бизнесе и финансах нечёткая логика получила признание после того как в 1988 году экспертная система на основе нечётких правил для прогнозирования финансовых индикаторов единственная предсказала биржевой крах. И количество успешных фаззи - применений в настоящее время исчисляется тысячами.

    Математический аппарат

    Характеристикой нечёткого множества выступает функция принадлежности (Membership Function). Обозначим через MFc(x) – степень принадлежности к нечёткому множеству C, представляющей собой обобщение понятия характеристической функции обычного множества. Тогда нечётким множеством С называется множество упорядоченных пар вида $$C={MF_c(x)/x}, MF_c(x) [0,1]$$. Значение $$MF_c(x)=0$$ означает отсутствие принадлежности к множеству, 1 – полную принадлежность.

    Проиллюстрируем это на простом примере. Формализуем неточное определение "горячий чай". В качестве x (область рассуждений) будет выступать шкала температуры в градусах Цельсия. Очевидно, что она будет изменяться от 0 до 100 градусов. Нечёткое множество для понятия "горячий чай" может выглядеть следующим образом:

    $$C={0/0; 0/10; 0/20; 0,15/30; 0,30/40; 0,60/50; 0,80/60; 0,90/70; 1/80; 1/90; 1/100}.$$

    Так, чай с температурой 60 С принадлежит к множеству "Горячий" со степенью принадлежности 0,80. Для одного человека чай при температуре 60 С может оказаться горячим, для другого – не слишком горячим. Именно в этом и проявляется нечёткость задания соответствующего множества.

    Для нечётких множеств, как и для обычных, определены основные логические операции. Самыми основными, необходимыми для расчётов, являются пересечение и объединение.

    Пересечение двух нечётких множеств (нечёткое "И"): A B:

    $$MFAB(x)=min(MFA(x), MFB(x)).$$

    Объединение двух нечётких множеств (нечеткое "ИЛИ"):

    $$MFAB(x)=max(MFA(x), MFB(x)).$$ $$MF(x)=\begin{cases} 1-\frac{b-x}{b-a}, a \le x \le b\\ 1-\frac{x-с}{с-b}, b \le x \le c\\ 0,\text{в остальных случаях} \end{cases}$$

    При $$(b-a)=(c-b)$$ имеем случай симметричной треугольной функции принадлежности, которая может быть однозначно задана двумя параметрами из тройки $$(a,b,c)$$.

    Аналогично для задания трапецеидальной функции принадлежности необходима четвёрка чисел $$(a,b,c,d)$$:

    $$ MF(x)=\begin{cases} 1-\frac{b-x}{b-a}, a \le x \le b\\ 1, a \le x \le b\\ 1-\frac{x-d}{d-c}, c \le x \le d\\ 0,\text{в остальных случаях} \end{cases} $$

    При (b-a)=(d-c) трапецеидальная функция принадлежности принимает симметричный вид.

    (рис 11.1) Типовые кусочно-линейные функции принадлежности

    Функция принадлежности гауссова типа описывается формулой $$MF(x)=exp \left [- \left ( \frac{x-c}{\sigma}\right)^2\right]$$ и оперирует двумя параметрами. Параметр c обозначает центр нечёткого множества, а параметр отвечает за крутизну функции.

    (рис 11.2) Гауссова функция принадлежности

    Совокупность функций принадлежности для каждого терма из базового терм-множества T обычно изображается вместе на одном графике. На рис.11.3 приведён пример описанной выше лингвистической переменной "Цена акции", на рис.11.4 – формализация неточного понятия "Возраст человека". Так, для человека 48 лет степень принадлежности к множеству "Молодой" равна 0, "Средний" – 0,47, "Выше среднего" – 0,20.

    (рис 11.3) Описание лингвистической переменной "Цена акции" (рис 11.4) Описание лингвистической переменной "Возраст"

    Количество термов в лингвистической переменной редко превышает 7.

    Нечёткий логический вывод

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

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

    Пусть в базе правил имеется m правил вида:

    $$R_1: ЕСЛИ\ x_1\ это\ A_{11} … И … x_n\ это\ A_{1n},\ ТО\ y\ это\ B_1$$

    . . .

    $$R_i: ЕСЛИ\ x_1\ это\ A_{i1} … И … x_n\ это\ A_{in},\ ТО\ y\ это\ B_i$$

    . . .

    $$R_m: ЕСЛИ\ x_1\ это\ A_{i1} … И … x_n\ это\ A_{mn},\ ТО\ y\ это\ B_m,$$

    где $$x_k , k=1..n$$ – входные переменные; y – выходная переменная; $$A_{ik}$$ – заданные нечёткие множества с функциями принадлежности.

    Результатом нечёткого вывода является чёткое значение переменной y* на основе заданных чётких значений $$x_k , k=1..n$$.

    В общем случае механизм логического вывода включает четыре этапа: введение нечёткости (фазификация), нечёткий вывод, композиция и приведение к чёткости, или дефазификация (рис.11.5).

    (рис 11.5) Система нечёткого логического вывода

    Алгоритмы нечёткого вывода различаются главным образом видом используемых правил, логических операций и разновидностью метода дефазификации. Разработаны модели нечёткого вывода Мамдани, Сугено, Ларсена, Цукамото.

    Рассмотрим подробнее нечёткий вывод на примере механизма Мамдани (Mamdani). Это наиболее распространённый способ логического вывода в нечётких системах. В нём используется минимаксная композиция нечётких множеств. Данный механизм включает в себя следующую последовательность действий.

  • Процедура фазификации: определяются степени истинности, т.е. значения функций принадлежности для левых частей каждого правила (предпосылок). Для базы правил с m правилами обозначим степени истинности как $$A_{ik}(x_k), i=1..m, k=1..n$$.
  • Нечёткий вывод. Сначала определяются уровни "отсечения" для левой части каждого из правил: $$alpha_i = min \limits_i (A_{ik}(x_k))$$

    Далее находятся "усечённые" функции принадлежности:

    $$B_i* (y)=min_i(alpha_i, B_i(y))$$
  • Композиция, или объединение полученных усечённых функций, для чего используется максимальная композиция нечётких множеств: $$MF(y)=max_i (B_i* (y))$$, где MF(y) – функция принадлежности итогового нечёткого множества.
  • Дефазификация, или приведение к чёткости. Существует несколько методов дефазификации. Например, метод среднего центра, или центроидный метод: $$MF(y)=max_i (B_i* (y))$$
  • Геометрический смысл такого значения – центр тяжести для кривой MF(y). Рис.11.6 графически показывает процесс нечёткого вывода по Мамдани для двух входных переменных и двух нечётких правил R1 и R2.

    (рис 11.6) Схема нечёткого вывода по Мамдани

    Интеграция с интеллектуальными парадигмами

    Гибридизация методов интеллектуальной обработки информации – девиз, под которым прошли 90-е годы у западных и американских исследователей. В результате объединения нескольких технологий искусственного интеллекта появился специальный термин – "мягкие вычисления" (soft computing), который ввел Л. Заде в 1994 году. В настоящее время мягкие вычисления объединяют такие области как: нечёткая логика, искусственные нейронные сети, вероятностные рассуждения и эволюционные алгоритмы. Они дополняют друг друга и используются в различных комбинациях для создания гибридных интеллектуальных систем.

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

    Нечёткие нейронные сети

    Нечёткие нейронные сети (fuzzy-neural networks) осуществляют выводы на основе аппарата нечёткой логики, однако параметры функций принадлежности настраиваются с использованием алгоритмов обучения нейронных сетей (НС). Поэтому для подбора параметров таких сетей применим метод обратного распространения ошибки, изначально предложенный для обучения многослойного персептрона. Для этого модуль нечёткого управления представляется в форме многослойной сети. Нечёткая нейронная сеть, как правило, состоит из четырех слоёв: слоя фазификации входных переменных, слоя агрегирования значений активации условия, слоя агрегирования нечётких правил и выходного слоя.

    Наибольшее распространение в настоящее время получили архитектуры нечёткой НС вида ANFIS и TSK. Доказано, что такие сети являются универсальными аппроксиматорами.

    Быстрые алгоритмы обучения и интерпретируемость накопленных знаний – эти факторы сделали сегодня нечёткие нейронные сети одним из самых перспективных и эффективных инструментов мягких вычислений.

    Адаптивные нечёткие системы

    Классические нечёткие системы обладают тем недостатком, что для формулирования правил и функций принадлежности необходимо привлекать экспертов той или иной предметной области, что не всегда удаётся обеспечить. Адаптивные нечёткие системы (adaptive fuzzy systems) решают эту проблему. В таких системах подбор параметров нечёткой системы производится в процессе обучения на экспериментальных данных. Алгоритмы обучения адаптивных нечётких систем относительно трудоёмки и сложны по сравнению с алгоритмами обучения нейронных сетей, и, как правило, состоят из двух стадий:

  • Генерация лингвистических правил;
  • Корректировка функций принадлежности.
  • Первая задача относится к задаче переборного типа, вторая – к оптимизации в непрерывных пространствах. При этом возникает определённое противоречие: для генерации нечётких правил необходимы функции принадлежности, а для проведения нечёткого вывода – правила. Кроме того, при автоматической генерации нечётких правил необходимо обеспечить их полноту и непротиворечивость.

    Значительная часть методов обучения нечётких систем использует генетические алгоритмы. В англоязычной литературе этому соответствует специальный термин – Genetic Fuzzy Systems.

    Значительный вклад в развитие теории и практики нечётких систем с эволюционной адаптацией внесла группа испанских исследователей во главе с Ф. Херрера (F. Herrera).

    Нечёткие запросы

    Нечёткие запросы к базам данных (fuzzy queries) – перспективное направление в современных системах обработки информации. Данный инструмент даёт возможность формулировать запросы на естественном языке, например: "Вывести список недорогих предложений о съёме жилья близко к центру города", что невозможно при использовании стандартного механизма запросов. Для этой цели разработана нечёткая реляционная алгебра и специальные расширения языков SQL для нечётких запросов. Большая часть исследований в этой области принадлежит западноевропейским ученым Д. Дюбуа и Г. Праде.

    Нечёткие ассоциативные правила

    Нечёткие ассоциативные правила (fuzzy associative rules) – инструмент для извлечения из баз данных закономерностей, которые формулируются в виде лингвистических высказываний. Здесь введены специальные понятия нечёткой транзакции, поддержки и достоверности нечёткого ассоциативного правила.

    Нечёткие когнитивные карты

    Нечёткие когнитивные карты (fuzzy cognitive maps) были предложены Б. Коско в 1986 г. и используются для моделирования причинных взаимосвязей, выявленных между концептами некоторой области. В отличие от простых когнитивных карт, нечёткие когнитивные карты представляют собой нечёткий ориентированный граф, узлы которого являются нечёткими множествами. Направленные рёбра графа не только отражают причинно-следственные связи между концептами, но и определяют степень влияния (вес) связываемых концептов. Активное использование нечётких когнитивных карт в качестве средства моделирования систем обусловлено возможностью наглядного представления анализируемой системы и с лёгкостью интерпретации причинно-следственных связей между концептами. Основные проблемы связаны с процессом построения когнитивной карты, который не поддаётся формализации. Кроме того, необходимо доказать, что построенная когнитивная карта адекватна реальной моделируемой системе. Для решения данных проблем разработаны алгоритмы автоматического построения когнитивных карт на основе выборки данных.

    Нечёткая кластеризация

    Нечёткие методы кластеризации, в отличие от чётких методов (например, нейронные сети Кохонена), позволяют одному и тому же объекту принадлежать одновременно нескольким кластерам, но с различной степенью. Нечёткая кластеризация во многих ситуациях более "естественна", чем чёткая, например, для объектов, расположенных на границе кластеров. Наиболее распространены: алгоритм нечёткой самоорганизации c-means и его обобщение в виде алгоритма Густафсона-Кесселя.

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

    11.3. Нейронные сети в экономике

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

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

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

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

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

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

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

    Для финансовых операций:

  • Прогнозирование поведения клиента.
  • Прогнозирование и оценка риска предстоящей сделки.
  • Прогнозирование возможных мошеннических действий.
  • Прогнозирование остатков средств на корреспондентских счетах банка.
  • Прогнозирование движения наличности, объёмов оборотных средств.
  • Прогнозирование экономических параметров и фондовых индексов.
  • Для планирования работы предприятия:

  • Прогнозирование объёмов продаж.
  • Прогнозирование загрузки производственных мощностей.
  • Прогнозирование спроса на новую продукцию.
  • Для бизнес - аналитики и поддержки принятия решений:

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

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

    Независимый экспертный совет по стратегическому анализу проблем внешней и внутренней политики при Совете Федерации НИИ искусственного интеллекта представил проект "Технология нового поколения на основе недоопределённых вычислений и её использование для разработки экспериментальной модели макроэкономики РФ". Появилась возможность просчитывать исход любого действия или предложения, касающегося бюджета страны, на много лет вперёд.

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

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

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

    Разработчики проекта создали пока лишь демонстрационную модель, охватывающую около 300 параметров и период от 1990-го до 1999 года. Но для нормальной работы необходимо не менее 1000 параметров. И такая работа может быть проведена, если на неё будут отпущены средства. Надо провести множество прикладных работ, необходимы фундаментальные исследования по обоим основным составляющим проекта - математической и экономической. Здесь нужна серьёзная государственная материальная поддержка.

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

    Интерес к искусственным нейронным сетям в России очень вырос за последние несколько лет. Возможность быстрого обучения и достоверность выводов позволяет рекомендовать нейросетевые экспертные системы как один из обязательных инструментов во многих аспектах современного бизнеса. Нейронные сети обладают огромным преимуществом перед традиционным трудозатратным и более длительным путём обобщения знаний людей-экспертов.

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

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

    Финансовый рынок достаточно инерционен, у него есть своя определённая "замедленная реакция", зная которую можно довольно точно вычислять грядущую ситуацию. А насколько точно - это зависит от условий рынка и квалификации оператора.

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

    Над созданием нейронных сетей различного назначения в настоящее время трудятся сотни всемирно известных, а также мелких начинающих фирм. Мировой рынок предлагает более сотни нейросетевых пакетов, преимущественно — американских. Общий объём рынка нейронных сетей к 2005 году превысил $10 млрд. И, практически, каждый разработчик традиционных аналитических пакетов сегодня стремится включить нейронные сети в новые версии своих программ. В США нейронные сети применяются в аналитических комплексах каждого крупного банка.

    Продажа одного только нейросетевого пакета "Brain Maker Pro" сравнима с объёмами продаж самого популярного пакета технического анализа MetaStock (в США продано более 20000 копий Brain Maker Pro).

    Хорошо зарекомендовал себя пакет "The AI Trilogy". ("Трилогия искусственного интеллекта") американской фирмы "Ward Systems Group". Это набор из трёх программ, каждая из которых может использоваться как самостоятельно, так и в комбинации с остальными.

    Так, программа "NeuroShell II" — это набор из 16 типов нейронных сетей, "NeuroWindows" — нейросетевая библиотека с исходными текстами, "GeneHunter" — генетическая программа оптимизации. В совокупности они образуют мощный "конструктор", позволяющий строить аналитические комплексы любой сложности.

    "The AI Trilogy" на американском рынке пользуется большим спросом. Пакет установлен в 150 крупнейших банках США. Он многократно побеждал в престижных конкурсах популярных финансовых изданий и помогает управлять капиталами в несколько миллиардов долларов. Фирма "Du Pont" (институт стандартов США и ФБР) считает "Трилогию искусственного интеллекта" лучшей для решения различных задач.

    Интересен и знаменателен малоизвестный факт, что ключевые компоненты этого пакета были написаны российскими программистами. Своим обликом пакет обязан группе разработчиков из небольшой московской компании "Нейропроект" под руководством профессора Персиянцева. Она более трёх лет выполняла заказы фирмы "Ward Systems Group" и нашла удачные решения. Можно сказать, что русские программы управляют финансами Америки и задачами ФБР!

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

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

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

  • Богатые возможности. Нейронные сети - исключительно мощный метод моделирования, позволяющий воспроизводить чрезвычайно сложные зависимости. В частности, нейронные сети нелинейны по свой природе. На протяжении многих лет линейное моделирование было основным методом моделирования в большинстве областей, поскольку для него хорошо разработаны процедуры оптимизации. В задачах, где линейная аппроксимация неудовлетворительна (а таких достаточно много), линейные модели работают плохо. Кроме того, нейронные сети справляются с "проклятием размерности", которое не позволяет моделировать линейные зависимости в случае большого числа переменных
  • Простота в использовании. Нейронные сети учатся на примерах. Пользователь нейронной сети подбирает представительные данные, а затем запускает алгоритм обучения, который автоматически воспринимает структуру данных. При этом от пользователя, конечно, требуется какой-то набор эвристических знаний о том, как следует отбирать и подготавливать данные, выбирать нужную архитектуру сети и интерпретировать результаты, однако уровень знаний, необходимый для успешного применения нейронных сетей, гораздо скромнее, чем, например, при использовании традиционных методов статистики.
  • Нейронные сети привлекательны с интуитивной точки зрения, ибо они основаны на примитивной биологической модели нервных систем. В будущем развитие таких нейробиологических моделей может привести к созданию действительно мыслящих компьютеров. Между тем уже "простые" нейронные сети, которые строит система ST Neural Networks, являются мощным оружием в арсенале специалиста по прикладной статистике.

    Параллели из биологии

    Нейронные сети возникли из исследований в области искусственного интеллекта, а именно, из попыток воспроизвести способность биологических нервных систем обучаться и исправлять ошибки, моделируя низкоуровневую структуру мозга (Patterson, 1996). Основной областью исследований по искусственному интеллекту в 60-е - 80-е годы были экспертные системы. Такие системы основывались на высокоуровневом моделировании процесса мышления (в частности, на представлении, что процесс нашего мышления построен на манипуляциях с символами). Скоро стало ясно, что подобные системы, хотя и могут принести пользу в некоторых областях, не ухватывают некоторые ключевые аспекты человеческого интеллекта. Согласно одной из точек зрения, причина этого состоит в том, что они не в состоянии воспроизвести структуру мозга. Чтобы создать искусственный интеллект, необходимо построить систему с похожей архитектурой.

    Мозг состоит из очень большого числа (приблизительно 10,000,000,000) нейронов, соединённых многочисленными связями (в среднем несколько тысяч связей на один нейрон, однако это число может сильно колебаться).

    Нейроны - это специальные клетки, способные распространять электрохимические сигналы (рис.11.7).

    (рис 11.7) Структура нейрона

    Нейрон имеет разветвлённую структуру ввода информации (дендриты), ядро и разветвляющийся выход (аксон). Аксоны клетки соединяются с дендритами других клеток с помощью синапсов. При активации нейрон посылает электрохимический сигнал по своему аксону. Через синапсы этот сигнал достигает других нейронов, которые могут, в свою очередь, активироваться. Нейрон активируется тогда, когда суммарный уровень сигналов, пришедших в его ядро из дендритов, превысит определённый уровень (порог активации).

    Интенсивность сигнала, получаемого нейроном (а, следовательно, и возможность его активации), сильно зависит от активности синапсов. Каждый синапс имеет протяженность, и специальные химические вещества передают сигнал вдоль него. Один из самых авторитетных исследователей нейросистем, Дональд Хебб, высказал постулат, что обучение заключается, в первую очередь, в изменениях "силы" синоптических связей. Например, в классическом опыте Павлова каждый раз непосредственно перед кормлением собаки звонил колокольчик, и собака быстро научилась связывать звонок колокольчика с пищей. Синоптические связи между участками коры головного мозга, ответственными за слух, и слюнными железами усилились, и при возбуждении коры звуком колокольчика у собаки начиналось слюноотделение.

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

    Базовая искусственная модель

    Чтобы отразить суть биологических нейронных систем, определение искусственного нейрона даётся следующим образом:

  • Он получает входные сигналы (исходные данные либо выходные сигналы других нейронов нейронной сети) через несколько входных каналов. Каждый входной сигнал проходит через соединение, имеющее определённую интенсивность (или вес); этот вес соответствует синоптической активности биологического нейрона. С каждым нейроном связано определённое пороговое значение. Вычисляется взвешенная сумма входов, из неё вычитается пороговое значение, и в результате получается величина активации нейрона (она также называется пост - синоптическим потенциалом нейрона - PSP).
  • Сигнал активации преобразуется с помощью функции активации (или передаточной функции), и в результате получается выходной сигнал нейрона.
  • При этом используется ступенчатая функция активации (т.е. выход нейрона равен нулю, если вход отрицательный, и единице, если вход нулевой или положительный). Такой нейрон будет работать точно так же, как описанный выше естественный нейрон (вычесть пороговое значение из взвешенной суммы и сравнить результат с нулем - это то же самое, что сравнить взвешенную сумму с пороговым значением). В действительности пороговые функции редко используются в искусственных нейронных сетях. Веса могут быть отрицательными, - это значит, что синапс оказывает на нейрон не возбуждающее, а тормозящее воздействие (в мозге присутствуют тормозящие нейроны).

    Это было описание отдельного нейрона. Теперь возникает вопрос: как соединять нейроны друг с другом? Если сеть предполагается для чего-то использовать, то у неё должны быть входы (принимающие значения интересующих нас переменных из внешнего мира) и выходы (прогнозы или управляющие сигналы). Входы и выходы соответствуют сенсорным и двигательным нервам - например, соответственно, идущим от глаз и в руки. Кроме этого, однако, в сети может быть ещё много промежуточных (скрытых) нейронов, выполняющих внутренние функции. Входные, скрытые и выходные нейроны должны быть связаны между собой.

    Ключевой вопрос здесь - обратная связь (Haykin, 1994). Простейшая сеть имеет структуру прямой передачи сигнала: сигналы проходят от входов через скрытые элементы и в конце концов приходят на выходные элементы. Такая структура имеет устойчивое поведение. Если же сеть рекуррентная (т.е. содержит связи, ведущие назад от более дальних к более ближним нейронам), то она может быть неустойчива и иметь очень сложную динамику поведения. Рекуррентные сети представляют большой интерес для исследователей в области нейронных сетей, однако при решении практических задач, по крайней мере, до сих пор, наиболее полезными оказались структуры прямой передачи, и именно такой тип нейронных сетей моделируется в пакете ST Neural Networks.

    Типичный пример сети с прямой передачей сигнала показан на рис.11.8.

    (рис 11.8) Сеть с прямой передачей сигнала

    Нейроны регулярным образом организованы в слои. Входной слой служит просто для ввода значений входных переменных. Каждый из скрытых и выходных нейронов соединён со всеми элементами предыдущего слоя.

    Можно было бы рассматривать сети, в которых нейроны связаны только с некоторыми из нейронов предыдущего слоя; однако, для большинства приложений сети с полной системой связей предпочтительнее, и именно такой тип сетей реализован в пакете ST Neural Networks.

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

    Применение нейронных сетей

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

    Класс задач, которые можно решить с помощью нейронной сети, определяется тем, как сеть работает и тем, как она обучается. При работе нейронная сеть принимает значения входных переменных и выдаёт значения выходных переменных. Таким образом, сеть можно применять в ситуации, когда у Вас имеется определённая известная информация, и Вы хотите из неё получить некоторую пока не известную информацию (Patterson, 1996; Fausett, 1994). Вот некоторые примеры таких задач:

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

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

    Управление. Нужно определить, что должен делать робот (повернуться направо или налево, двигаться вперёд и т.д.), чтобы достичь цели; известно изображение, которое передаёт установленная на роботе видеокамера.

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

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

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

    Другая существенная особенность нейронных сетей состоит в том, что зависимость между входом и выходом находится в процессе обучения сети. Для обучения нейронных сетей применяются алгоритмы двух типов (разные типы сетей используют разные типы обучения): управляемое ("обучение с учителем") и не управляемое ("без учителя"). Чаще всего применяется обучение с учителем, и именно этот метод сейчас рассмотрим.

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

    Затем нейронная сеть обучается с помощью того или иного алгоритма управляемого обучения (наиболее известным из них является метод обратного распространения, предложенный в работе Rumelhart et al., 1986), при котором имеющиеся данные используются для корректировки весов и пороговых значений сети таким образом, чтобы минимизировать ошибку прогноза на обучающем множестве. Если сеть обучена хорошо, она приобретает способность моделировать (неизвестную) функцию, связывающую значения входных и выходных переменных, и впоследствии такую сеть можно использовать для прогнозирования в ситуации, когда выходные значения неизвестны.

    Сбор данных для нейронной сети

    Если задача будет решаться с помощью нейронной сети, то необходимо собрать данные для обучения. Обучающий набор данных представляет собой набор наблюдений, для которых указаны значения входных и выходных переменных. Первый вопрос, который нужно решить, - какие переменные использовать и сколько (и каких) наблюдений собрать.

    Выбор переменных (по крайней мере, первоначальный) осуществляется интуитивно. Опыт работы в данной предметной области поможет определить, какие переменные являются важными. При работе с пакетом ST Neural Networks можно произвольно выбирать переменные и отменять предыдущий выбор; кроме того, система ST Neural Networks умеет сама опытным путём отбирать полезные переменные. Для начала имеет смысл включить все переменные, которые могут влиять на результат - на последующих этапах следует сократить это множество.

    Нейронные сети могут работать с числовыми данными, лежащими в определённом ограниченном диапазоне. Это создаёт проблемы в случаях, когда данные имеют нестандартный масштаб, когда в них имеются пропущенные значения и когда данные являются нечисловыми. В пакете ST Neural Networks имеются средства, позволяющие справиться со всеми этими трудностями. Числовые данные масштабируются в подходящий для сети диапазон, а пропущенные значения можно заменить на средние значения (или на другую статистику) этой переменной по всем имеющимся обучающим примерам (Bishop, 1995).

    Более трудной задачей является работа с данными нечислового характера. Чаще всего нечисловые данные бывают представлены в виде номинальных переменных типа Пол = {Муж, Жен}. Переменные с номинальными значениями можно представить в числовом виде, и в системе ST Neural Networks имеются средства для работы с такими данными. Однако нейронные сети не дают хороших результатов при работе с номинальными переменными, которые могут принимать много разных значений.

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

    Нечисловые данные других типов можно либо преобразовать в числовую форму, либо объявить незначащими. Значения дат и времени, если они нужны, можно преобразовать в числовые, вычитая из них начальную дату (время). Обозначения денежных сумм преобразовать совсем несложно. С произвольными текстовыми полями (например, фамилиями людей) работать нельзя, и их нужно сделать незначащими.

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

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

    В пакете ST Neural Networks реализованы средства для подгонки линейных моделей (см. раздел про линейные сети, а также материал по модулю Множественная регрессия системы STATISTICA).

    Во многих реальных задачах приходится иметь дело с не вполне достоверными данными. Значения некоторых переменных могут быть искажены шумом или частично отсутствовать. Пакет ST Neural Networks имеет специальные средства работы с пропущенными значениями (они могут быть заменены на среднее значение этой переменной или на другие её статистики), так что если не так много данных, то можно включить в рассмотрение случаи с пропущенными значениями (хотя, конечно, лучше этого избегать). Кроме того, нейронные сети в целом устойчивы к шумам. Однако у этой устойчивости есть предел. Например, выбросы, т.е. значения, лежащие очень далеко от области нормальных значений некоторой переменной, могут исказить результат обучения. В таких случаях лучше всего постараться обнаружить и удалить эти выбросы (либо удалив соответствующие наблюдения, либо преобразовав выбросы в пропущенные значения). Если выбросы выявить трудно, то можно воспользоваться имеющимися в пакете ST Neural Networks возможностями сделать процесс обучения устойчивым к выбросам (с помощью функции ошибок типа "городских кварталов"; см. Bishop, 1995). Однако такое устойчивое к выбросам обучение, как правило, менее эффективно, чем стандартное.

    Следовательно, при работе с НС необходимо выбирать такие переменные, которые, по предположению, влияют на результат.

    С числовыми и номинальными переменными в пакете ST Neural Networks можно работать непосредственно. Переменные других типов следует преобразовать в указанные типы или объявить незначащими.

    Для анализа нужно иметь порядка сотен или тысяч наблюдений; чем больше в задаче переменных, тем больше нужно иметь наблюдений. Пакет ST Neural Networks имеет средства для распознавания значимых переменных, поэтому следует включать в рассмотрение переменные, в значимости которых нет уверенности.

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

    Пре/пост процессирование

    Всякая нейронная сеть принимает на входе числовые значения и выдаёт на выходе также числовые значения. Передаточная функция для каждого элемента сети обычно выбирается таким образом, чтобы её входной аргумент мог принимать произвольные значения, а выходные значения лежали бы в строго ограниченном диапазоне. При этом, хотя входные значения могут быть любыми, возникает эффект насыщения, когда элемент оказывается чувствительным лишь к входным значениям, лежащим в некоторой ограниченной области. На этом рисунке представлена одна из наиболее распространённых передаточных функций - так называемая логистическая функция (рис.11.9) (иногда её также называют сигмоидной функцией, хотя если говорить строго, это всего лишь один из частных случаев сигмоидных - т.е. имеющих форму буквы S - функций). В этом случае выходное значение всегда будет лежать в интервале (0,1), а область чувствительности для входов чуть шире интервала (-1,+1). Данная функция является гладкой, а её производная легко вычисляется - это обстоятельство весьма существенно для работы алгоритма обучения сети (в этом также кроется причина того, что ступенчатая функция для этой цели практически не используется).

    (рис 11.9) Логистическая функция

    Коль скоро выходные значения всегда принадлежат некоторой ограниченной области, а вся информация должна быть представлена в числовом виде, очевидно, что при решении реальных задач методами нейронных сетей требуются этапы предварительной обработки - пре-процессирования - и заключительной обработки - пост-процессирования данных (Bishop, 1995). Соответствующие средства имеются в пакете ST Neural Networks. Здесь нужно рассмотреть два вопроса:

    Шкалирование. Числовые значения должны быть приведены в масштаб, подходящий для сети. Обычно исходные данные масштабируются по линейной шкале. В пакете ST Neural Networks реализованы алгоритмы минимакса и среднего/стандартного отклонения, которые автоматически находят масштабирующие параметры для преобразования числовых значений в нужный диапазон.

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

    Номинальные переменные. Номинальные переменные могут быть двузначными (например, Пол ={Муж, Жен}) или многозначными (т.е. принимать более двух значений или состояний). Двузначную номинальную переменную легко преобразовать в числовую (например, Муж = 0, Жен = 1). С многозначными номинальными переменными дело обстоит сложнее. Их тоже можно представить одним числовым значением (например, Собака = 0, Овца = 1, Кошка = 2), однако при этом возникнет (возможно) ложное упорядочивание значений номинальной переменной: в рассмотренном примере Овца окажется чем-то средним между Собакой и Кошкой. Существует более точный способ, известный как кодирование 1-из-N, в котором одна номинальная переменная представляется несколькими числовыми переменными. Количество числовых переменных равно числу возможных значений номинальной переменной; при этом всякий раз ровно одна из N переменных принимает ненулевое значение (например, Собака = {1,0,0}, Овца = {0,1,0}, Кошка = {0,0,1}). В пакете ST Neural Networks имеются возможности преобразовывать как двух-, так и многозначные номинальные переменные для последующего использования в нейронной сети. К сожалению, номинальная переменная с большим числом возможных состояний потребует при кодировании методом 1-из-N очень большого количества числовых переменных, а это приведёт к росту размеров сети и создаст трудности при её обучении. В таких ситуациях возможно (но не всегда достаточно) смоделировать номинальную переменную с помощью одного числового индекса, однако лучше будет попытаться найти другой способ представления данных.

    Задачи прогнозирования можно разбить на два основных класса: классификация и регрессия.

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

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

    Нейронная сеть может решать одновременно несколько задач регрессии и/или классификации, однако обычно в каждый момент решается только одна задача. Таким образом, в большинстве случаев нейронная сеть будет иметь всего одну выходную переменную; в случае задач классификации со многими состояниями для этого может потребоваться несколько выходных элементов (этап пост-процессирования отвечает за преобразование информации из выходных элементов в выходную переменную).

    В пакете ST Neural Networks для решения всех этих вопросов реализованы специальные средства пре- и пост-процессирования, которые позволяют привести сырые исходные данные в числовую форму, пригодную для обработки нейронной сетью, и преобразовать выход нейронной сети обратно в формат входных данных. Нейронная сеть служит "прослойкой"между пре- и пост-процессированием, и результат выдаётся в нужном виде (например, в задаче классификации выдается название выходного класса). Кроме того, в пакете ST Neural Networks пользователь может (если пожелает) получить прямой доступ к внутренним параметрам активации сети.

    Многослойный персептрон (MLP)

    Эта архитектура сети используется сейчас наиболее часто. Она была предложена в работе Rumelhart, McClelland (1986) и подробно обсуждается почти во всех учебниках по нейронным сетям (см., например, Bishop, 1995). Вкратце этот тип сети был описан выше. Каждый элемент сети строит взвешенную сумму своих входов с поправкой в виде слагаемого и затем пропускает эту величину активации через передаточную функцию, и таким образом получается выходное значение этого элемента. Элементы организованы в послойную топологию с прямой передачей сигнала. Такую сеть легко можно интерпретировать как модель вход-выход, в которой веса и пороговые значения (смещения) являются свободными параметрами модели. Такая сеть может моделировать функцию практически любой степени сложности, причем число слоев и число элементов в каждом слое определяют сложность функции. Определение числа промежуточных слоев и числа элементов в них является важным вопросом при конструировании MLP (Haykin, 1994; Bishop, 1995).

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

    Обучение многослойного персептрона

    После того, как определено число слоёв и число элементов в каждом из них, нужно найти значения для весов и порогов сети, которые бы минимизировали ошибку прогноза, выдаваемого сетью. Именно для этого служат алгоритмы обучения. С использованием собранных исторических данных веса и пороговые значения автоматически корректируются с целью минимизировать эту ошибку. По сути, этот процесс представляет собой подгонку модели, которая реализуется сетью, к имеющимся обучающим данным. Ошибка для конкретной конфигурации сети определяется путём прогона через сеть всех имеющихся наблюдений и сравнения реально выдаваемых выходных значений с желаемыми (целевыми) значениями. Все такие разности суммируются в так называемую функцию ошибок, значение которой и есть ошибка сети. В качестве функции ошибок чаще всего берётся сумма квадратов ошибок, т.е. когда все ошибки выходных элементов для всех наблюдений возводятся в квадрат и затем суммируются. При работе с пакетом ST Neural Networks пользователю выдается так называемая среднеквадратичная ошибка (RMS) - описанная выше величина нормируется на число наблюдений и переменных, после чего из неё извлекается квадратный корень - это очень хорошая мера ошибки, усреднённая по всему обучающему множеству и по всем выходным элементам.

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

    В этих рассмотрениях оказывается очень полезным понятие поверхности ошибок. Каждому из весов и порогов сети (т.е. свободных параметров модели; их общее число обозначим через N) соответствует одно измерение в многомерном пространстве. N+1-е измерение соответствует ошибке сети. Для всевозможных сочетаний весов соответствующую ошибку сети можно изобразить точкой в N+1-мерном пространстве, и все такие точки образуют там некоторую поверхность - поверхность ошибок. Цель обучения нейронной сети состоит в том, чтобы найти на этой многомерной поверхности самую низкую точку.

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

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

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

    Алгоритм обратного распространения

    Самый известный вариант алгоритма обучения нейронной сети - так называемый алгоритм обратного распространения (back propagation; см. Patterson, 1996; Haykin, 1994; Fausett, 1994). Существуют современные алгоритмы второго порядка, такие как метод сопряженных градиентов и метод Левенберга-Маркара (Bishop, 1995; Shepherd, 1997) (оба они реализованы в пакете ST Neural Networks), которые на многих задачах работают существенно быстрее (иногда на порядок). Алгоритм обратного распространения наиболее прост для понимания, а в некоторых случаях он имеет определенные преимущества. Сейчас мы опишем его, а более продвинутые алгоритмы рассмотрим позже. Разработаны также эвристические модификации этого алгоритма, хорошо работающие для определенных классов задач, - быстрое распространение (Fahlman, 1988) и Дельта-дельта с чертой (Jacobs, 1988) - оба они также реализованы в пакете ST Neural Networks.

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

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

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

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

    Переобучение и обобщение

    Одна из наиболее серьёзных трудностей изложенного подхода заключается в том, что таким образом мы минимизируем не ту ошибку, которую на самом деле нужно минимизировать, - ошибку, которую можно ожидать от сети, когда ей будут подаваться совершенно новые наблюдения. Иначе говоря, мы хотели бы, чтобы нейронная сеть обладала способностью обобщать результат на новые наблюдения. В действительности сеть обучается минимизировать ошибку на обучающем множестве, и в отсутствие идеального и бесконечно большого обучающего множества это совсем не то же самое, что минимизировать "настоящую" ошибку на поверхности ошибок в заранее неизвестной модели явления (Bishop, 1995).

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

    Полином (или многочлен) - это выражение, содержащее только константы и целые степени независимой переменной. Вот примеры:

    $$y=2x+3$$ $$y=3x^2+4x+1$$

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

    (рис 11.10) Полином высокого порядка

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

    Как же выбрать "правильную" степень сложности для сети? Почти всегда более сложная сеть дает меньшую ошибку, но это может свидетельствовать не о хорошем качестве модели, а о переобучении.

    Ответ состоит в том, чтобы использовать механизм контрольной кросс-проверки. Мы резервируем часть обучающих наблюдений и не используем их в обучении по алгоритму обратного распространения. Вместо этого, по мере работы алгоритма, они используются для независимого контроля результата. В самом начале работы ошибка сети на обучающем и контрольном множестве будет одинаковой (если они существенно отличаются, то, вероятно, разбиение всех наблюдений на два множества было неоднородно). По мере того, как сеть обучается, ошибка обучения, естественно, убывает, и, пока обучение уменьшает действительную функцию ошибок, ошибка на контрольном множестве также будет убывать. Если же контрольная ошибка перестала убывать или даже стала расти, это указывает на то, что сеть начала слишком близко аппроксимировать данные и обучение следует остановить (в пакете ST Neural Networks можно задать автоматическую остановку обучения при появлении эффекта переобучения). Это явление чересчур точной аппроксимации в процессе обучения и называется переобучением. Если такое случилось, то обычно советуют уменьшить число скрытых элементов и/или слоев, ибо сеть является слишком мощной для данной задачи. Если же сеть, наоборот, была взята недостаточно богатой для того, чтобы моделировать имеющуюся зависимость, то переобучения, скорее всего, не произойдет, и обе ошибки - обучения и проверки - не достигнут достаточного уровня малости.

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

    Необходимость многократных экспериментов ведёт к тому, что контрольное множество начинает играть ключевую роль в выборе модели, то есть становится частью процесса обучения. Тем самым ослабляется его роль как независимого критерия качества модели - при большом числе экспериментов есть риск выбрать "удачную" сеть, дающую хороший результат на контрольном множестве. Для того, чтобы придать окончательной модели должную надежность, часто (по крайней мере, когда объём обучающих данных это позволяет) поступают так: резервируют ещё одно - тестовое множество наблюдений. Итоговая модель тестируется на данных из этого множества, чтобы убедиться, что результаты, достигнутые на обучающем и контрольном множествах реальны, а не являются артефактами процесса обучения. Разумеется, для того чтобы хорошо играть свою роль, тестовое множество должно быть использовано только один раз: если его использовать повторно для корректировки процесса обучения, то оно фактически превратится в контрольное множество.

    Итак, построение сети (после выбора входных переменных) состоит из следующих шагов:

  • Выбрать начальную конфигурацию сети (например, один промежуточный слой с числом элементов в нём, равным полусумме числа входов и числа выходов - Наставник (Network Advisor) пакета ST Neural Networks предлагает такую конфигурацию по умолчанию).
  • Провести ряд экспериментов с различными конфигурациями, запоминая при этом лучшую сеть (в смысле контрольной ошибки). В пакете ST Neural Networks предусмотрено автоматическое запоминание лучшей сети во время эксперимента. Для каждой конфигурации следует провести несколько экспериментов, чтобы не получить ошибочный результат из-за того, что процесс обучения попал в локальный минимум.
  • Если в очередном эксперименте наблюдается недообучение (сеть не выдаёт результат приемлемого качества), попробовать добавить дополнительные нейроны в промежуточный слой (слои). Если это не помогает, попробовать добавить новый промежуточный слой.
  • Если имеет место переобучение (контрольная ошибка стала расти), попробовать удалить несколько скрытых элементов (а возможно и слоёв).
  • Многократное повторение эвристических экспериментов в лучшем случае довольно утомительно, и поэтому в пакет ST Neural Networks включён специальный алгоритм автоматического поиска, который сам проделает эти действия. Автоматический конструктор сети - Automatic Network Designer проведет эксперименты с различным числом скрытых элементов, для каждой пробной архитектуры сети выполнит несколько прогонов обучения, отбирая при этом наилучшую сеть по показателю контрольной ошибки с поправкой на размер сети. В Автоматическом конструкторе сети реализованы сложные алгоритмы поиска, в том числе метод "искусственного отжига" (simulated annealing, Kirkpatrick et al., 1983), с помощью которых можно перепробовать сотни различных сетей, выделяя из них особо перспективные, либо быстро находить "грубое и простое" решение.

    Отбор данных

    На всех предыдущих этапах существенно использовалось одно предположение. А именно, обучающее, контрольное и тестовое множества должны быть репрезентативными (представительными) с точки зрения существа задачи (более того, эти множества должны быть репрезентативными каждое в отдельности). Известное изречение программистов "garbage in, garbage out" ("мусор на входе - мусор на выходе") нигде не справедливо в такой степени, как при нейросетевом моделировании. Если обучающие данные не репрезентативны, то модель, как минимум, будет не очень хорошей, а в худшем случае - бесполезной. Имеет смысл перечислить ряд причин, которые ухудшают качество обучающего множества:

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

    Следует учесть все возможности. Нейронная сеть может обучаться только на тех данных, которыми она располагает. Предположим, что лица с годовым доходом более $100,000 имеют высокий кредитный риск, а обучающее множество не содержало лиц с доходом более $40,000 в год. Тогда едва ли можно ожидать от сети правильного решения в совершенно новой для нее ситуации.

    Сеть обучается тому, чему проще всего обучиться. Классическим (возможно, вымышленным) примером является система машинного зрения, предназначенная для автоматического распознавания танков. Сеть обучалась на ста картинках, содержащих изображения танков, и на ста других картинках, где танков не было. Был достигнут стопроцентно "правильный" результат. Но когда на вход сети были поданы новые данные, она безнадежно провалилась. В чем же была причина? Выяснилось, что фотографии с танками были сделаны в пасмурный, дождливый день, а фотографии без танков - в солнечный день. Сеть научилась улавливать (очевидную) разницу в общей освещенности. Чтобы сеть могла результативно работать, ее следовало обучать на данных, где бы присутствовали все погодные условия и типы освещения, при которых сеть предполагается использовать - и это еще не говоря о рельефе местности, угле и дистанции съемки и т.д.

    Несбалансированный набор данных. Коль скоро сеть минимизирует общую погрешность, важное значение приобретает пропорции, в которых представлены данные различных типов. Сеть, обученная на 900 хороших и 100 плохих примерах будет искажать результат в пользу хороших наблюдений, поскольку это позволит алгоритму уменьшить общую погрешность (которая определяется в основном хорошими случаями). Если в реальной популяции хорошие и плохие объекты представлены в другой пропорции, то результаты, выдаваемые сетью, могут оказаться неверными. Хорошим примером служит задача выявления заболеваний. Пусть, например, при обычных обследованиях в среднем 90% людей оказываются здоровыми. Сеть обучается на имеющихся данных, в которых пропорция здоровые/больные равна 90/10. Затем она применяется для диагностики пациентов с определённым жалобами, среди которых это соотношение уже 50/50. В этом случае сеть будет ставить диагноз чересчур осторожно и не распознает заболевание у некоторых больных. Если же, наоборот, сеть обучить на данных "с жалобами", а затем протестировать на "обычных" данных, то она будет выдавать повышенное число неправильных диагнозов о наличии заболевания. В таких ситуациях обучающие данные нужно скорректировать так, чтобы были учтены различия в распределении данных (например, можно повторять редкие наблюдения или удалить часто встречающиеся), или же видоизменить решения, выдаваемые сетью, посредством матрицы потерь (Bishop, 1995). Как правило, лучше всего постараться сделать так, чтобы наблюдения различных типов были представлены равномерно, и соответственно этому интерпретировать результаты, которые выдаёт сеть.

    Как обучается многослойный персептрон

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

    Комбинация линейной функции нескольких переменных и скалярной сигмоидной функции приводит к характерному профилю "сигмоидного склона", который выдает элемент первого промежуточного слоя MLP. На приведенном рисунке (рис.11.11) соответствующая поверхность изображена в виде функции двух входных переменных.

    (рис 11.11) Функция двух входных переменных

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

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

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

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

    Если сеть не содержит скрытых элементов, то на выходе она может моделировать только одинарный "сигмоидный склон": точки, находящиеся по одну его сторону, располагаются низко, по другую - высоко. При этом всегда будет существовать область между ними (на склоне), где высота принимает промежуточные значения, но по мере увеличения весов эта область будет сужаться.

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

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

    (рис 11.12) Моделирование сети с одним промежуточным слоем

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

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

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

    В задачах классификации очень важно понять, как следует интерпретировать те точки, которые попали на склон или лежат близко от него. Стандартный выход здесь состоит в том, чтобы для пороговых значений установить некоторые доверительные пределы (принятия или отвержения), которые должны быть достигнуты, чтобы данных элемент считался "принявшим решение". Например, если установлены пороги принятия/отвержения 0.95/0.05, то при уровне выходного сигнала, превосходящем 0.95 элемент считается активным, при уровне ниже 0.05 - неактивным, а в промежутке – "неопределённым".

    Имеется и более тонкий (и, вероятно, более полезный) способ интерпретировать уровни выходного сигнала: считать их вероятностями. В этом случае сеть выдает несколько большую информацию, чем просто "да/нет": она сообщает нам, насколько (в некотором формальном смысле) мы можем доверять её решению. Разработаны (и реализованы в пакете ST Neural Networks) модификации метода MLP, позволяющие интерпретировать выходной сигнал нейронной сети как вероятность, в результате чего сеть по существу учится моделировать плотность вероятности распределения данного класса. При этом, однако, вероятностная интерпретация обоснована только в том случае, если выполнены определенные предположения относительно распределения исходных данных (конкретно, что они являются выборкой из некоторого распределения, принадлежащего к семейству экспоненциальных распределений; Bishop, 1995). Здесь, как и ранее, может быть принято решение по классификации, но, кроме того, вероятностная интерпретация позволяет ввести концепцию "решения с минимальными затратами".

    Другие алгоритмы обучения многослойного персептрона

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

    В некоторых задачах бывает целесообразно использовать такие - более сложные - методы нелинейной оптимизации. В пакете ST Neural Networks реализованы два подобных метода: методы спуска по сопряженным градиентам и Левенберга -Маркара (Bishop, 1995; Shepherd, 1997), представляющие собой очень удачные варианты реализации двух типов алгоритмов: линейного поиска и доверительных областей.

    Алгоритм линейного поиска действует следующим образом: выбирается какое-либо разумное направление движения по многомерной поверхности. В этом направлении проводится линия, и на ней ищется точка минимума (это делается относительно просто с помощью того или иного варианта метода деления отрезка пополам); затем все повторяется сначала. Что в данном случае следует считать "разумным направлением"? Очевидным ответом является направление скорейшего спуска (именно так действует алгоритм обратного распространения). На самом деле этот вроде бы очевидный выбор не слишком удачен. После того, как был найден минимум по некоторой прямой, следующая линия, выбранная для кратчайшего спуска, может "испортить" результаты минимизации по предыдущему направлению (даже на такой простой поверхности, как параболоид, может потребоваться очень большое число шагов линейного поиска). Более разумно было бы выбирать "не мешающие друг другу" направления спуска - так мы приходим к методу сопряженных градиентов (Bishop, 1995).

    Идея метода состоит в следующем: поскольку мы нашли точку минимума вдоль некоторой прямой, производная по этому направлению равна нулю. Сопряженное направление выбирается таким образом, чтобы эта производная и дальше оставалась нулевой - в предположении, что поверхность имеет форму параболоида (или, грубо говоря, является "хорошей и гладкой"). Если это условие выполнено, то для достижения точки минимума достаточно будет N эпох. На реальных, сложно устроенных поверхностях по мере хода алгоритма условие сопряженности портится, и тем не менее такой алгоритм, как правило, требует гораздо меньшего числа шагов, чем метод обратного распространения, и дает лучшую точку минимума (для того, чтобы алгоритм обратного распространения точно установился в некоторой точке, нужно выбирать очень маленькую скорость обучения).

    Метод доверительных областей основан на следующей идее: вместо того, чтобы двигаться в определенном направлении поиска, предположим, что поверхность имеет достаточно простую форму, так что точку минимума можно найти (и прыгнуть туда) непосредственно. Попробуем смоделировать это и посмотреть, насколько хорошей окажется полученная точка. Вид модели предполагает, что поверхность имеет хорошую и гладкую форму (например, является параболоидом), - такое предположение выполнено вблизи точек минимума. Вдали от них данное предположение может сильно нарушаться, так что модель будет выбирать для очередного продвижения совершенно не те точки. Правильно работать такая модель будет только в некоторой окрестности данной точки, причем размеры этой окрестности заранее неизвестны. Поэтому выберем в качестве следующей точки для продвижения нечто промежуточное между точкой, которую предлагает наша модель, и точкой, которая получилась бы по обычному методу градиентного спуска. Если эта новая точка оказалась хорошей, передвинемся в нее и усилим роль нашей модели в выборе очередных точек; если же точка оказалась плохой, не будем в нее перемещаться и увеличим роль метода градиентного спуска при выборе очередной точки (а также уменьшим шаг). В основанном на этой идее методе Левенберга-Маркара предполагается, что исходное отображение является локально линейным (и тогда поверхность ошибок будет параболоидом).

    Метод Левенберга-Маркара (Levenberg, 1944; Marquardt, 1963; Bishop, 1995) - самый быстрый алгоритм обучения из всех, которые реализованы в пакете ST Neural Networks, но, к сожалению, на его использование имеется ряд важных ограничений. Он применим только для сетей с одним выходным элементом, работает только с функцией ошибок сумма квадратов и требует памяти порядка W**2 (где W - количество весов у сети; поэтому для больших сетей он плохо применим). Метод сопряженных градиентов почти так же эффективен, как и этот метод, и не связан подобными ограничениями.

    При всем сказанном метод обратного распространения также сохраняет свое значение, причем не только для тех случаев, когда требуется быстро найти решение (и не требуется особой точности). Его следует предпочесть, когда объем данных очень велик, и среди данных есть избыточные. Благодаря тому, что в методе обратного распространения корректировка ошибки происходит по отдельным случаям, избыточность данных не вредит (если, например, приписать к имеющемуся набору данных еще один точно такой же набор, так что каждый случай будет повторяться дважды, то эпоха будет занимать вдвое больше времени, чем раньше, однако результат ее будет точно таким же, как от двух старых, так что ничего плохого не произойдет). Методы же Левенберга-Маркара и сопряженных градиентов проводят вычисления на всем наборе данных, поэтому при увеличении числа наблюдений продолжительность одной эпохи сильно растет, но при этом совсем не обязательно улучшается результат, достигнутый на этой эпохе (в частности, если данные избыточны; если же данные редкие, то добавление новых данных улучшит обучение на каждой эпохе). Кроме того, обратное распространение не уступает другим методам в ситуациях, когда данных мало, поскольку в этом случае недостаточно данных для принятия очень точного решения (более тонкий алгоритм может дать меньшую ошибку обучения, но контрольная ошибка у него, скорее всего, не будет меньше).

    Кроме уже перечисленных, в пакете ST Neural Networks имеются две модификации метода обратного распространения - метод быстрого распространения (Fahlman, 1988) и дельта-дельта с чертой (Jacobs, 1988), - разработанные с целью преодолеть некоторые ограничения этого подхода. В большинстве случаев они работают не лучше, чем обратное распространение, а иногда и хуже (это зависит от задачи). Кроме того, в этих методах используется больше управляющих параметров, чем в других методах, и поэтому ими сложнее пользоваться.

    Радиальная базисная функция

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

    Столь же естественным является подход, основанный на разбиении пространства окружностями или (в общем случае) гиперсферами. Гиперсфера задается своим центром и радиусом. Подобно тому, как элемент MLP реагирует (нелинейно) на расстояние от данной точки до линии "сигмоидного склона", в сети, построенной на радиальных базисных функциях (Broomhead and Lowe, 1988; Moody and Darkin, 1989; Haykin, 1994), элемент реагирует (нелинейно) на расстояние от данной точки до "центра", соответствующего этому радиальному элементу. Поверхность отклика радиального элемента представляет собой гауссову функцию (колоколообразной формы), с вершиной в центре и понижением к краям. Наклон гауссова радиального элемента можно менять подобно тому, как можно менять наклон сигмоидной кривой в MLP (рис.11.13).

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

    До действия сигмоидной функции активации уровень активации такого элемента определяется гиперплоскостью, поэтому в системе ST Neural Networks такие элементы называется линейными (хотя функция активации, как правило, нелинейна).

    (рис 11.13) Поверхность отклика радиального элемента

    В отличие от них, радиальный элемент задаётся своим центром и "радиусом". Положение точки в N-мерном пространстве определяется N числовыми параметрами, т.е. их ровно столько же, сколько весов у линейного элемента, и поэтому координаты центра радиального элемента в пакете ST Neural Networks хранятся как "веса". Его радиус (отклонение) хранится как "порог". Следует отчетливо понимать, что "веса" и "пороги" радиального элемента принципиально отличаются от весов и порогов линейного элемента, и если забыть об этом, термин может ввести в заблуждение. Радиальные веса на самом деле представляют точку, а радиальный порог - отклонение.

    Сеть типа радиальной базисной функции (RBF) имеет промежуточный слой из радиальных элементов, каждый из которых воспроизводит гауссову поверхность отклика. Поскольку эти функции нелинейны, для моделирования произвольной функции нет необходимости брать более одного промежуточного слоя. Для моделирования любой функции необходимо лишь взять достаточное число радиальных элементов. Остается решить вопрос о том, как следует скомбинировать выходы скрытых радиальных элементов, чтобы получить из них выход сети. Оказывается, что достаточно взять их линейную комбинацию (т.е. взвешенную сумму гауссовых функций). Сеть RBF имеет выходной слой, состоящий из элементов с линейными функциями активации (Haykin, 1994; Bishop, 1995).

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

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

    Другие отличия работы RBF от MLP связаны с различным представлением пространства модели: "групповым" в RBF и "плоскостным" в MLP.

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

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

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

    Расположение центров должно соответствовать кластерам, реально присутствующим в исходных данных. Рассмотрим два наиболее часто используемых метода.

    Расположение центров должно соответствовать кластерам, реально присутствующим в исходных данных. Рассмотрим два наиболее часто используемых метода.

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

    Алгоритм K-средних. Этот алгоритм (Bishop, 1995) стремится выбрать оптимальное множество точек, являющихся центроидами кластеров в обучающих данных. При K радиальных элементах их центры располагаются таким образом, чтобы:

  • Каждая обучающая точка "относилась" к одному центру кластера и лежала к нему ближе, чем к любому другому центру;
  • Каждый центр кластера был центроидом множества обучающих точек, относящихся к этому кластеру.
  • После того, как определено расположение центров, нужно найти отклонения. Величина отклонения (ее также называют сглаживающим фактором) определяет, насколько "острой" будет гауссова функция. Если эти функции выбраны слишком острыми, сеть не будет интерполировать данные между известными точками и потеряет способность к обобщению. Если же гауссовы функции взяты чересчур широкими, сеть не будет воспринимать мелкие детали. На самом деле сказанное - еще одна форма проявления дилеммы пере/недообучения. Как правило, отклонения выбираются таким образом, чтобы колпак каждой гауссовой функций захватывал "несколько" соседних центров. Для этого имеется несколько методов:

    Явный. Отклонения задаются пользователем.

    Изотропный. Отклонение берётся одинаковым для всех элементов и определяется эвристически с учётом количества радиальных элементов и объёма покрываемого пространства (Haykin, 1994).

    K ближайших соседей. Отклонение каждого элемента устанавливается (индивидуально) равным среднему расстоянию до его K ближайших соседей (Bishop, 1995). Тем самым отклонения будут меньше в тех частях пространства, где точки расположены густо, - здесь будут хорошо учитываться детали, - а там, где точек мало, отклонения будут большими (и будет производиться интерполяция).

    После того, как выбраны центры и отклонения, параметры выходного слоя оптимизируются с помощью стандартного метода линейной оптимизации - алгоритма псевдообратных матриц (сингулярного разложения) (Haykin, 1994; Golub and Kahan, 1965).

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

    Вероятностная нейронная сеть

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

    Задача оценки плотности вероятности (p.d.f.) по данным имеет давнюю историю в математической статистике (Parzen, 1962) и относится к области байесовой статистики. Обычная статистика по заданной модели говорит нам, какова будет вероятность того или иного исхода (например, что на игральной кости шесть очков будет выпадать в среднем одном случае из шести). Байесова статистика переворачивает вопрос вверх ногами: правильность модели оценивается по имеющимся достоверным данным. В более общем плане, байесова статистика дает возможность оценивать плотность вероятности распределений параметров модели по имеющимся данных. Для того, чтобы минимизировать ошибку, выбирается модель с такими параметрами, при которых плотность вероятности будет наибольшей.

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

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

    Другой подход к оценке плотности вероятности основан на ядерных оценках (Parzen, 1962; Speckt, 1990; Speckt, 1991; Bishop, 1995; Patterson, 1996). Можно рассуждать так: тот факт, что наблюдение расположено в данной точке пространства, свидетельствует о том, что в этой точке имеется некоторая плотность вероятности. Кластеры из близко лежащих точек указывают на то, что в этом месте плотность вероятности большая. Вблизи наблюдения имеется большее доверие к уровню плотности, а по мере отдаления от него доверие убывает и стремится к нулю. В методе ядерных оценок в точке, соответствующей каждому наблюдению, помещается некоторая простая функция, затем все они складываются и в результате получается оценка для общей плотности вероятности. Чаще всего в качестве ядерных функций берутся гауссовы функции (с формой колокола). Если обучающих примеров достаточное количество, то такой метод дает достаточно хорошее приближение к истинной плотности вероятности.

    Метод аппроксимации плотности вероятности с помощью ядерных функций во многом похож на метод радиальных базисных функций, и таким образом мы естественно приходим к понятиям вероятностной нейронной сети (PNN) и обобщенно-регрессионной нейронной сети (GRNN) (Speckt 1990, 1991). PNN-сети предназначены для задач классификации, а GRNN - для задач регрессии. Сети этих двух типов представляют собой реализацию методов ядерной аппроксимации, оформленных в виде нейронной сети.

    Сеть PNN имеет по меньшей мере три слоя: входной, радиальный и выходной. Радиальные элементы берутся по одному на каждое обучающее наблюдение. Каждый из них представляет гауссову функцию с центром в этом наблюдении. Каждому классу соответствует один выходной элемент. Каждый такой элемент соединен со всеми радиальными элементами, относящимися к его классу, а со всеми остальными радиальными элементами он имеет нулевое соединение. Таким образом, выходной элемент просто складывает отклики всех элементов, принадлежащих к его классу. Значения выходных сигналов получаются пропорциональными ядерным оценкам вероятности принадлежности соответствующим классам, и, пронормировав их на единицу, мы получаем окончательные оценки вероятности принадлежности классам.

    Базовая модель PNN-сети может иметь две модификации.

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

    Второй вариант модификации основан на следующей идее. Любая оценка, выдаваемая сетью, основывается на зашумлённых данных и неизбежно будет приводить к отдельным ошибкам классификации (например, у некоторых больных результаты анализов могут быть вполне нормальными). Иногда бывает целесообразно считать, что некоторые виды ошибок обходятся "дороже" других (например, если здоровый человек будет диагностирован как больной, то это вызовет лишние затраты на его обследование, но не создаст угрозы для жизни; если же не будет выявлен действительный больной, то это может привести к смертельному исходу). В такой ситуации те вероятности, которые выдает сеть, следует домножить на коэффициенты потерь, отражающие относительную цену ошибок классификации. В пакете ST Neural Networks в вероятностную нейронную сеть может быть добавлен четвертый слой, содержащий матрицу потерь. Она умножается на вектор оценок, полученный в третьем слое, после чего в качестве ответа берется класс, имеющий наименьшую оценку потерь. (Матрицу потерь можно добавлять и к другим видам сетей, решающих задачи классификации.)

    Вероятностная нейронная сеть имеет единственный управляющий параметр обучения, значение которого должно выбираться пользователем, - степень сглаживания (или отклонение гауссовой функции). Как и в случае RBF-сетей, этот параметр выбирается из тех соображений, чтобы шапки "определённое число раз перекрывались": выбор слишком маленьких отклонений приведет к "острым" аппроксимирующим функциям и неспособности сети к обобщению, а при слишком больших отклонениях будут теряться детали. Требуемое значение несложно найти опытным путём, подбирая его так, чтобы контрольная ошибка была как можно меньше. К счастью, PNN-сети не очень чувствительны к выбору параметра сглаживания.

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

    Существенным недостатком таких сетей является их объём. PNN-сеть фактически вмещает в себя все обучающие данные, поэтому она требует много памяти и может медленно работать.

    PNN-сети особенно полезны при пробных экспериментах (например, когда нужно решить, какие из входных переменных использовать), так как благодаря короткому времени обучения можно быстро проделать большое количество пробных тестов. В пакете ST Neural Networks PNN-сети используются также в Нейрогенетическом алгоритме отбора входных данных - Neuro-Genetic Input Selection, который автоматически находит значимые входы (будет описан ниже).

    Обобщённо-регрессионная нейронная сеть

    Обобщенно-регрессионная нейронная сеть (GRNN) устроена аналогично вероятностной нейронной сети (PNN), но она предназначена для решения задач регрессии, а не классификации (Speckt, 1991; Patterson, 1996; Bishop, 1995). Как и в случае PNN-сети, в точку расположения каждого обучающего наблюдения помещается гауссова ядерная функция. Считается, что каждое наблюдение свидетельствует о некоторой уверенности в том, что поверхность отклика в данной точке имеет определённую высоту, и эта уверенность убывает при отходе в сторону от точки. GRNN-сеть копирует внутрь себя все обучающие наблюдения и использует их для оценки отклика в произвольной точке. Окончательная выходная оценка сети получается как взвешенное среднее выходов по всем обучающим наблюдениям, где величины весов отражают расстояние от этих наблюдений до той точки, в которой производится оценивание (и, таким образом, более близкие точки вносят больший вклад в оценку).

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

    Можно модифицировать GRNN-сеть таким образом, чтобы радиальные элементы соответствовали не отдельным обучающим случаям, а их кластерам. Это уменьшает размеры сети и увеличивает скорость обучения. Центры для таких элементов можно выбирать с помощью любого предназначенного для этой цели алгоритма (выборки из выборки, K-средних или Кохонена), и программа ST Neural Networks соответствующим образом корректирует внутренние веса.

    Достоинства и недостатки у сетей GRNN в основном такие же, как и у сетей PNN - единственное различие в том, что GRNN используются в задачах регрессии, а PNN - в задачах классификации. GRNN-сеть обучается почти мгновенно, но может получиться большой и медленной (хотя здесь, в отличие от PNN, не обязательно иметь по одному радиальному элементу на каждый обучающий пример, их число все равно будет большим). Как и сеть RBF, сеть GRNN не обладает способностью экстраполировать данные.

    Линейная сеть

    Согласно общепринятому в науке принципу, если более сложная модель не даёт лучших результатов, чем более простая, то из них следует предпочесть вторую. В терминах аппроксимации отображений самой простой моделью будет линейная, в которой подгоночная функция определяется гиперплоскостью. В задаче классификации гиперплоскость размещается таким образом, чтобы она разделяла собой два класса (линейная дискриминантная функция); в задаче регрессии гиперплоскость должна проходить через заданные точки. Линейная модель обычно записывается с помощью матрицы NxN и вектора смещения размера N.

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

    В пакете ST Neural Networks имеется возможность создать линейную сеть и обучить её с помощью стандартного алгоритма линейной оптимизации, основанного на псевдообратных матрицах (SVD) (Golub and Kahan, 1965). Разумеется, метод линейной оптимизации реализован также в модуле Множественная регрессия системы STATISTICA; однако, линейные сети пакета ST Neural Networks имеют то преимущество, что здесь возможно в единой среде сравнивать такие сети с "настоящими" нейронными сетями.

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

    Сеть Кохонена

    Сети Кохонена принципиально отличаются от всех других типов сетей, реализованных в пакете ST Neural Networks. В то время как все остальные сети предназначены для задач с управляемым обучением, сети Кохонена главным образом рассчитаны на неуправляемое обучение (Kohonen, 1982; Haykin, 1994; Patterson, 1996; Fausett, 1994).

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

    На первый взгляд это может показаться странным. Как сеть сможет чему-то научиться, не имея выходных значений? Ответ заключается в том, что сеть Кохонена учится понимать саму структуру данных.

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

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

    Сеть Кохонена имеет всего два слоя: входной и выходной, составленный из радиальных элементов (выходной слой называют также слоем топологической карты). Элементы топологической карты располагаются в некотором пространстве - как правило, двумерном (в пакете ST Neural Networks реализованы также одномерные сети Кохонена).

    Обучается сеть Кохонена методом последовательных приближений. Начиная со случайным образом выбранного исходного расположения центров, алгоритм постепенно улучшает его так, чтобы улавливать кластеризацию обучающих данных. В некотором отношении эти действия похожи на алгоритмы выборки из выборки и K-средних, которые используются для размещения центров в сетях RBF и GRNN, и действительно, алгоритм Кохонена можно использовать для размещения центров в сетях этих типов. Однако данный алгоритм работает и на другом уровне.

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

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

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

    Свойство топологической упорядоченности достигается в алгоритме с помощью дополнительного использования понятия окрестности. Окрестность - это несколько нейронов, окружающих выигравший нейрон. Подобно скорости обучения, размер окрестности убывает со временем, так что вначале к ней принадлежит довольно большое число нейронов (возможно, почти вся топологическая карта); на самых последних этапах окрестность становится нулевой (т.е. состоящей только из самого выигравшего нейрона). На самом деле в алгоритме Кохонена корректировка применяется не только к выигравшему нейрону, но и ко всем нейронам из его текущей окрестности.

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

    После того, как сеть обучена распознаванию структуры данных, ее можно использовать как средство визуализации при анализе данных. С помощью данных, выводимых в окне "Частоты выигрышей" - Win Frequencies, (где для каждого нейрона подсчитывается, сколько раз он выигрывал при обработке обучающих примеров), можно определить, разбивается ли карта на отдельные кластеры. Можно также обрабатывать отдельные наблюдения и смотреть, как при этом меняется топологическая карта, - это позволяет понять, имеют ли кластеры какой-то содержательный смысл (как правило, при этом приходится возвращаться к содержательному смыслу задачи, чтобы установить, как соотносятся друг с другом кластеры наблюдений). После того, как кластеры выявлены, нейроны топологической карты помечаются содержательными по смыслу метками (в некоторых случаях помечены могут быть и отдельные наблюдения). После того, как топологическая карта в описанном здесь виде построена, на вход сети можно подавать новые наблюдения. Если выигравший при этом нейрон был ранее помечен именем класса, то сеть осуществляет классификацию. В противном случае считается, что сеть не приняла никакого решения.

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

    Идея сети Кохонена возникла по аналогии с некоторыми известными свойствами человеческого мозга. Кора головного мозга представляет собой большой плоский лист (площадью около 0.5 кв.м.; чтобы поместиться в черепе, она свернута складками) с известными топологическими свойствами (например, участок, ответственный за кисть руки, примыкает к участку, ответственному за движения всей руки, и таким образом все изображение человеческого тела непрерывно отображается на эту двумерную поверхность).

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

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

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

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

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

    Популяция - это конечное множество особей.

    Особи, входящие в популяцию, в генетических алгоритмах представляются хромосомами с закодированным в них множествами параметров задачи, т.е. решений, которые иначе называются точками в пространстве поиска (search points). В некоторых работах особи называются организмами.

    Хромосомы (другие названия - цепочки или кодовые последовательности) - это упорядоченные последовательности генов.

    Ген (также называемый свойством, знаком или детектором) - это атомарный элемент генотипа, в частности, хромосомы.

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

    Фенотип - это набор значений, соответствующих данному генотипу, т.е. декодированная структура или множество параметров задачи (решение, точка пространства поиска).

    Аллель - это значение конкретного гена, также определяемое как значение свойства или вариант свойства.

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

    Очень важным понятием в генетических алгоритмах считается функция приспособленности {fitness function), иначе называемая функцией оценки. Она представляет меру приспособленности данной особи в популяции. Эта функция играет важнейшую роль, поскольку позволяет оценить степень приспособленности конкретных особей в популяции и выбрать из них наиболее приспособленные (т.е. имеющие наибольшие значения функции приспособленности) в соответствии с эволюционным принципом выживания "сильнейших" (лучше всего приспособившихся). Функция приспособленности также получила свое название непосредственно из генетики. Она оказывает сильное влияние на функционирование генетических алгоритмов и должна иметь точное и корректное определение. В задачах оптимизации функция приспособленности, как правило, оптимизируется (точнее говоря, максимизируется) и называется целевой функцией. В задачах минимизации целевая функция преобразуется, и проблема сводится к максимизации. В теории управления функция приспособленности может принимать вид функции погрешности, а в теории игр - стоимостной функции. На каждой итерации генетического алгоритма приспособленность каждой особи данной популяции оценивается при помощи функции приспособленности, и на этой основе создается следующая популяция особей, составляющих множество потенциальных решений проблемы, например, задачи оптимизации.

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

    Классический генетический алгоритм

    Основной (классический) генетический алгоритм (также называемый элементарным или простым генетическим алгоритмом) состоит из следующих шагов:

  • инициализация, или выбор исходной популяции хромосом;
  • оценка приспособленности хромосом в популяции;
  • проверка условия остановки алгоритма;
  • селекция хромосом;
  • применение генетических операторов;
  • формирование новой популяции;
  • выбор "наилучшей" хромосомы.
  • Блок-схема основного генетического алгоритма изображена на рис.11.14.

    (рис 11.14) Блок-схема генетического алгоритма

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

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

    Проверка условия остановки алгоритма. Определение условия остановки генетического алгоритма зависит от его конкретного применения. В оптимизационных задачах, если известно максимальное (или минимальное) значение функции приспособленности, то остановка алгоритма может произойти после достижения ожидаемого оптимального значения, возможно - с заданной точностью. Остановка алгоритма также может произойти в случае, когда его выполнение не приводит к улучшению уже достигнутого значения. Алгоритм может быть остановлен по истечении определённого времени выполнения либо после выполнения заданного количества итераций. Если условие остановки выполнено, то производится переход к завершающему этапу выбора "наилучшей" хромосомы. В противном случае на следующем шаге выполняется селекция.

    Селекция хромосом заключается в выборе (по рассчитанным на втором этапе значениям функции приспособленности) тех хромосом, которые будут участвовать в создании потомков для следующей популяции, т.е. для очередного поколения. Такой выбор производится согласно принципу естественного отбора, по которому наибольшие шансы на участие в создании новых особей имеют хромосомы с наибольшими значениями функции приспособленности. Существуют различные методы селекции. Наиболее популярным считается так называемый метод рулетки (roulette wheel selection), который свое название получил по аналогии с известной азартной игрой. Каждой хромосоме может быть сопоставлен сектор колеса рулетки, величина которого устанавливается пропорциональной значению функции приспособленности данной хромосомы. Поэтому чем больше значение функции приспособленности, тем больше сектор на колесе рулетки. Все колесо рулетки соответствует сумме значений функции приспособленности всех хромосом рассматриваемой популяции. Каждой хромосоме, обозначаемой $$ch_i для i =1,2, ..., N$$ (где N обозначает численность популяции) соответствует сектор колеса v(chi), выраженный в процентах согласно формуле

    $$v(ch_i):=p_s (ch_i)100%$$

    где

    $$p_s (ch_i)= \frac{F(ch_i)}{\sum_{i=1}^N F(ch_i)}$$

    причём $$F(ch_i)$$ - значение функции приспособленности хромосомы chi, a ps(chi) -вероятность селекции хромосомы chi. Селекция хромосомы может быть представлена как результат поворота колеса рулетки, поскольку "выигравшая" (т.е. выбранная) хромосома относится к выпавшему сектору этого колеса. Очевидно, что чем больше сектор, тем больше вероятность "победы" соответствующей хромосомы. Поэтому вероятность выбора данной хромосомы оказывается пропорциональной значению её функции приспособленности. Если всю окружность колеса рулетки представить в виде цифрового интервала [0, 100], то выбор хромосомы можно отождествить с выбором числа из интервала [а, b], где а и b обозначают, соответственно, начало и окончание фрагмента окружности, соответствующего этому сектору колеса; очевидно, что $$0 \le а < b \le 100$$. В этом случае выбор с помощью колеса рулетки сводится к выбору числа из интервала [0, 100], которое соответствует конкретной точке на окружности колеса.

    В результате процесса селекции создается родительская популяция, также называемая родительским пулом (mating pool) с численностью N, равной численности текущей популяции.

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

    В классическом генетическом алгоритме применяются два основных генетических оператора: оператор скрещивания (crossover) и оператор мутации (mutation). Однако следует отметить, что оператор мутации играет явно второстепенную роль по сравнению с оператором скрещивания. Это означает, что скрещивание в классическом генетическом алгоритме производится практически всегда, тогда как мутация - достаточно редко. Вероятность скрещивания, как правило, достаточно велика (обычно $$0,5 \le р_с \le 1$$), тогда как вероятность мутации устанавливается весьма малой (чаще всего $$0 \le р_m \le 0,1$$). Это следует из аналогии с миром живых организмов, где мутации происходят чрезвычайно редко.

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

    Оператор скрещивания

    На первом этапе скрещивания выбираются пары хромосом из родительской популяции (родительского пула). Это временная популяция, состоящая из хромосом, отобранных в результате селекции и предназначенных для дальнейших преобразований операторами скрещивания и мутации с целью формирования новой популяции потомков. На данном этапе хромосомы из родительской популяции объединяются в пары. Это производится случайным способом в соответствии с вероятностью скрещивания $$р_с$$. Далее для каждой пары отобранных таким образом родителей разыгрывается позиция гена (локус) в хромосоме, определяющая так называемую точку скрещивания. Если хромосома каждого из родителей состоит из L генов, то очевидно, что точка скрещивания $$l_k$$ представляет собой натуральное число, меньшее L. Поэтому фиксация точки скрещивания сводится к случайному выбору числа из интервала $$[1, L - 1].$$ В результате скрещивания пары родительских хромосом получается следующая пара потомков:

  • потомок, хромосома которого на позициях от 1 до $$l_k$$ состоит из генов первого родителя, а на позициях от $$k + 1$$ до $$L$$ - из генов второго родителя;
  • потомок, хромосома которого на позициях от 1 до $$k$$ состоит из генов второго родителя, а на позициях от $$l_k + 1$$ до $$L$$ - из генов первого родителя.
  • Оператор мутации с вероятностью рт изменяет значение гена в хромосоме на любое другое возможное значение. Например, если в хромосоме [100110101010] мутации подвергается ген на позиции 7, то его значение, равное 1, изменяется на 0. что приводит к образованию хромосомы [100110001010]. Как уже упоминалось выше, вероятность мутации обычно очень мала, и именно от нее зависит, будет данный ген мутировать или нет. Вероятность рт мутации может эмулироваться, например, случайным выбором числа из интервала [0, 1] для каждого гена и отбором для выполнения этой операции тех генов, для которых разыгранное число оказывается меньшим или равным значению рт.

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

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

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

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

    Рассмотрим алгоритм решения следующей задачи: необходимо оптимизировать эффективность от вложения средств в различные проекты, операции, недвижимость и т.д. Эффективность будет определяться как доходность от вложенных средств, в зависимости от того, в какой период они распределены. Рассмотрим возможность организации размещения средств в N периодах (что соответствует краткосрочному, среднесрочному и долгосрочному периодам, соответственно). Допустим, у организации есть альтернатива из М вариантов вложения средств в разные проекты в различные периоды. Вектор $$Х{Х_1,Х_2,…Х_n}$$, где $$X_i$$- вариант вложения средств в i-м периоде.

    В данном случае вектор X будет являться хромосомой (индивидуумом), состоящей из набора N генов.

    Необходимо найти глобальный максимум функции F(Х), определяющей доходность данного размещения средств в рассматриваемых периодах.

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

    Проведение двух серий экспериментов приводит к следующим выводам:

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

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

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

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

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

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

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

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

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

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

    Определение возможности остановки генетического алгоритма также зависит от конкретных условий. Если известно максимальное (или минимальное) значение функции приспособленности, остановка может произойти после получения ожидаемого оптимального значения или после достижения заданной точности. Другой причиной остановки является отсутствие улучшения решения задачи. Кроме того, алгоритм может быть остановлен по истечении определённого времени выполнения либо после выполнения заданного количества итераций. Если условие остановки выполнено, то производится переход к выбору "наилучшей" хромосомы. В противном случае на следующем шаге выполняется селекция. Все перечисленные события могут являться причиной остановки генетического алгоритма при решении задачи конкуренции. Выбор варианта остановки следует рассматривать отдельно применительно к ценовой и неценовой конкуренции.

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

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

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

    К объединённым в пары хромосомам родительского пула применяется оператор скрещивания (crossover). Далее для каждой пары родителей разыгрывается позиция гена (локус), определяющая точку скрещивания. Если хромосома каждого из родителей состоит из L генов, то точка скрещивания z представляет собой натуральное число, меньшее L. Фиксация точки скрещивания сводится к случайному выбору числа из интервала [1, L-1]. В результате скрещивания пары родительских хромосом получается следующая пара потомков:

  • Потомок, хромосома которого на позициях от 1 до z состоит из генов первого родителя, а на позициях от $$z + 1$$ до $$L$$ - из генов второго родителя.
  • Потомок, хромосома которого на позициях от 1 до z состоит из генов второго родителя, а на позициях от $$z + 1$$ до $$L$$ - из генов первого родителя.
  • Такой вариант скрещивания называют одноточечным. Также применяются и другие виды скрещивания.

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

  • выполнить генерацию случайного числа точек разрыва J из диапазона [1, L-1], где L - число генов в хромосоме;
  • выполнить J генераций точек скрещивания $$z_J$$;
  • указанная процедура выполняется для каждой пары родительского пула.
  • Следующим важным этапом генетического алгоритма является формирование новой популяции. Хромосомы, полученные в результате применения генетических операторов к хромосомам временной родительской популяции, включаются в состав новой популяции. Она становится новым поколением для данной итерации генетического алгоритма. На каждой очередной итерации рассчитываются значения функции приспособленности для всех хромосом этой популяции, реализуется выбор (естественный отбор) хромосом, после чего проверяется условие остановки алгоритма и либо фиксируется результат в виде хромосомы с наибольшим значением функции приспособленности, либо осуществляется переход к следующему шагу генетического алгоритма, то есть к селекции.

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

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

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

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

    11.5. Экспертные системы, их структура и применение в экономике

    11.5.1. Общая характеристика, принципы, алгоритмы

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

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

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

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

    (рис 11.15) Основные принципы функционирования экспертной системы

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

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

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

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

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

    (рис 11.16) Связь между предметной областью и областью знаний

    Это означает, что на основании определённых фактов путём рассуждений формируется логичное, оправданное заключение, которое следует из этих фактов.

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

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

    (рис 11.17) Процесс разработки экспертной системы

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

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

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

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

    В cистеме, основанной на правилах, знания в проблемной области, необходимые для решения задач, закодированы в форме правил и содержатся в базе знаний. Безусловно, для представления знаний наиболее широко применяются правила. Элементы типичной экспертной системы, основанной на правилах, показаны на рис.11.18.

    (рис 11.18) Структура экспертной системы, основанной на правилах

    Экспертная система состоит из описанных ниже компонентов.

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

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

    горит красный свет —> стоять

    горит зеленый свет —> двигаться

    Продукционные правила могут быть выражены в эквивалентном формате псевдокода IF-THEN следующим образом:

    Правило: red__light

    IF горит красный свет THEN стоять

    Правило: green_light

    IF горит зеленый свет THEN двигаться

    Каждое правило обозначается именем. Вслед за именем находится часть IF правила. Участок правила между частями IF и THEN правила упоминается под разными именами, такими как антецедент, условная часть, часть шаблона или левая часть (left-hand-side — LHS). Такое отдельно взятое условие, как

    "горит красный свет" называется условным элементом, или шаблоном.

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

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

    Обратный логический вывод предусматривает формирование рассуждений в обратном направлении - от гипотезы (потенциального заключения, которое должно быть доказано) к фактам, которые подтверждают гипотезу. Например, если вы не выглядываете наружу, но кто-то вошёл в дом с влажными ботинками и зонтиком, то можно принять гипотезу, что идёт дождь. Чтобы подтвердить эту гипотезу, достаточно спросить данного человека, идёт ли дождь. В случае положительного ответа будет доказано, что гипотеза истинна, поэтому она становится фактом. Как уже было сказано выше, гипотеза может рассматриваться как факт, истинность которого вызывает сомнение и должна быть установлена. В таком случае гипотеза может интерпретироваться как цель, которая должна быть доказана.

    В зависимости от проекта экспертной системы в машине логического вывода осуществляется либо прямой, либо обратный логический вывод, либо обе эти формы логического вывода. Например, язык CLIPS спроектирован в расчёте на применение прямого логического вывода, в языке PROLOG осуществляется обратный логический вывод, а в версии CLIPS, называемой Eclipse, разработанной Полом Хэйли (Paul Haley), осуществляется и прямой, и обратный логический выводы. Выбор машины логического вывода зависит от типа задачи. Диагностические задачи лучше всего решать с помощью обратного логического вывода, в то время как задачи прогнозирования, текущего контроля и управления проще всего поддаются решению с помощью прямого логического вывода.

    Рабочая память может содержать факты, касающиеся текущего состояния светофора, такие как "горит зелёный свет" или "горит красный свет". В рабочей памяти может присутствовать любой из этих фактов или оба факта одновременно. Если светофор работает нормально, то в рабочей памяти будет находиться только один факт. Но возможно также, что в рабочей памяти будут присутствовать оба факта, если светофор неисправен. В чём состоит различие между базой знаний и рабочей памятью? Факты не взаимодействуют друг с другом. Факт "горит зелёный свет" не воздействует на факт "горит красный свет". С другой стороны, знания о работе светофоров говорят о том, что если одновременно присутствуют оба факта, то светофор неисправен.

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

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

    Вслед за частью THEN правила находится список действий, которые должны быть выполнены после запуска правила. Эта часть правила называется консеквентом, или правой частью (Right-Hand Side — RHS). Если происходит запуск правила red_light, выполняется его действие "стоять". Аналогичным образом после запуска правила green_light его действием становится "двигаться". В состав конкретных действий обычно входит добавление или удаление фактов из рабочей памяти либо вывод результатов. Формат описания этих действий зависит от синтаксиса языка экспертной системы. Например, в языке CLIPS действие по добавлению в рабочую память нового факта, называемого "stop" (стоять), принимает вид (assert stop).

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

    WHILE работа не закончена

    Разрешение конфликтов. Если имеются активизированные правила, то выбрать правило с наивысшим приоритетом; в противном случае работа закончена.

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

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

    Проверка условий останова. Если осуществлено действие halt или дана команда break, то работа закончена.

    END - WHILE

    Принять новую команду пользователя.

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

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

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

    После завершения выполнения всех правил управление возвращается к интерпретатору команд верхнего уровня, чтобы пользователь мог выдать командному интерпретатору экспертной системы дополнительные инструкции. Работа в режиме верхнего уровня соответствует применяемому по умолчанию режиму, в котором пользователь взаимодействует с экспертной системой, и обозначается как задача "Accept a new user command" (Принять новую команду пользователя). Приём новых команд происходит именно на верхнем уровне.

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

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

    Продукционные системы

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

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

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

    Широкое применение систем, основанных на правилах, обусловлено описанными ниже причинами.

  • Модульная организация. Благодаря такой организации упрощается представление знаний и расширение экспертной системы.
  • Наличие средств объяснения. Такие экспертные системы позволяют легко создавать средства объяснения с помощью правил, поскольку антецеденты правила точно указывают, что необходимо для активизации правила. Средство объяснения позволяет следить за тем, запуск каких правил был осуществлён, поэтому даёт возможность восстановить ход рассуждений, которые привели к определённому заключению.
  • Наличие аналогии с познавательным процессом человека. Согласно результатам, полученным Ньюэллом и Саймоном, правила представляют собой естественный способ моделирования процесса решения задач человеком. А при осуществлении попытки выявить знания, которыми обладают эксперты, проще объяснить экспертам структуру представления знаний, поскольку применяется простое представление правил IF-THEN.
  • Продукционные системы Поста

    Продукционные системы были впервые использованы в символической логике Постом (Post), поэтому имя этого учёного вошло в название указанных систем. Пост доказал такой важный и неожиданный результат, что любая система математики или логики может быть оформлена в виде системы продукционных правил определённого типа. Этот результат показал огромные возможности применения продукционных правил для представления важных классов знаний, а это означает, что продукционные правила не сводятся к нескольким ограниченным типам. Кроме того, продукционные правила, обозначаемые термином правила подстановки, используются также в лингвистике как способ определения грамматики языка. Компьютерные языки обычно определяются с помощью формы продукционных правил, известной как нормальная форма Бэкуса-Наура (Backus-Naur FormBNF. Основная идея Поста заключалась в том, что любая математическая или логическая система представляет собой набор правил, который указывает, как преобразовать одну строку символов в другой последовательный набор символов. Это означает, что продукционное правило после получения входной строки (антецедента) способно выработать новую строку (консеквент). Такая идея является также действительной по отношению к программам и экспертным системам, в которых начальная строка символов представляет собой входные данные, а выходная строка становится результатом определённых преобразований, которым были подвергнуты входные данные.

    В качестве очень простого случая можно представить себе, что если входной строкой является "у пациента имеется высокая температура", то выходной строкой может быть "пациент должен принять аспирин". За этими строками не закреплён какой-либо смысл. Иными словами, манипуляции со строками основаны на синтаксисе, а не на семантике, т.е. не на понимании того, что скрывается за словами "высокая температура", "аспирин" и "пациент". Люди знают, что означают эти строки в реальном мире, а продукционная система Поста применяется лишь в качестве способа преобразования одной строки в другую. Для данного примера может быть предусмотрено следующее продукционное правило:

    антецедент —> консеквент

    у пациента имеется высокая температура —> пациент должен принять аспирин

    В этом правиле стрелка означает, что одна строка должна быть преобразована в другую. Указанное правило можно интерпретировать с помощью более знакомой системы обозначений IF-THEN следующим образом:

    IF у пациента имеется высокая температура THEN пациент должен принять аспирин.

    Rete – алгоритм

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

    Решением этой проблемы является rete-алгоритм, разработанный Чарльзом Л. Форги (Charles L. Forgy) в университете Карнеги-Меллона в 1979 году в рамках диссертации по командному интерпретатору экспертной системы OPS (Official Production System — стандартная продукционная система) на получение степени доктора философии. Термин rete - алгоритм происходит от латинского слова rete (по-английски читается "рити", а по-русски — "реете"), которое означает сеть. Rete-алгоритм функционирует как сеть, которая предназначена для хранения большого объёма информации и обеспечивает значительное сокращение времени отклика. Кроме того, он обеспечивает повышение быстродействия при запуске правил по сравнению с большими группами правил IF-THEN, которые должны проверяться один за другим в обычной системе, основанной на правилах. Rete-алгоритм основан на использовании динамической структуры данных, подобной стандартному дереву В+, которая автоматически реорганизуется в целях оптимизации поиска.

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

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

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

    На рис.11.19 показаны технологии, которые образуют фундамент современных экспертных систем, основанных на правилах.

    (рис 11.19) Современные экспертные системы, основанные на правилах

    Пример разработки экспертной системы

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

  • ЕСЛИ класс – бухгалтерские программы

    И форма конфигурирования системы должна быть жёсткой (пользователь не будет иметь возможности сам конфигурировать какие-либо входные или выходные документы)

    ТО лучше всего подходит бухгалтерская программа 1С версия 6.0.
  • ЕСЛИ класс – бухгалтерские программы

    И форма конфигурирования системы должна быть лояльной (т.е. пользователь может сам конфигурировать какие-либо входные или выходные документы)

    И программа разработана под оболочку DOS.

    ТО лучше всего подходит система бухгалтерских программ "Бест".
  • ЕСЛИ класс – бухгалтерские программы

    И форма конфигурирования системы должна быть лояльной (т.е. пользователь может сам конфигурировать какие-либо входные или выходные документы)

    И программа разработана под оболочку Windows95.

    И программа одноуровневая.

    ТО лучше всего подходит бухгалтерская программа "Инфо Бухгалтер".
  • ЕСЛИ класс – бухгалтерские программы

    И форма конфигурирования системы должна быть лояльной (т.е. пользователь может сам конфигурировать какие-либо входные или выходные документы).

    И программа разработана под оболочку Windows95.

    И программа не одноуровневая.

    ТО лучше всего подходит система бухгалтерских программ "Турбо Бухгалтер".
  • ЕСЛИ тип – правовые системы

    И пополнение информационной базы происходит еженедельно (минимум), посредством курьера

    ТО лучше всего подходит правовая программа "Гарант".
  • ЕСЛИ тип – правовые системы

    И пополнение информационной базы происходит ежемесячно (минимум), через покупку нового CD-ROM.

    ТО лучше всего подходит правовая программа "Кодекс".
  • ЕСЛИ тип – правовые системы

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

    ТО лучше всего подходит правовая программа "Эталон".
  • ЕСЛИ тип – складские программы

    И форма конфигурирования системы должна быть жёсткой (пользователь не будет иметь возможности сам конфигурировать какие-либо входные или выходные документы)

    ТО лучше всего подходит правовая складская программа "Фолио".
  • ЕСЛИ тип – складские программы.

    И форма конфигурирования системы должна быть лояльной (т.е. пользователь может сам конфигурировать какие-либо входные или выходные документы)

    ТО лучше всего подходит правовая программа склад "1С версия 7.5".
  • Предположим, что перед пользователем стоит задача: узнать, какое обеспечение из широкого спектра предлагаемого сейчас программного обеспечения ему наиболее подойдет, учитывая специфику ПК, на который предполагается установить это ПО. С помощью некоторых базовых правил фирмы "Элком-Информ" составлена некоторая экспертная система, которая поможет пользователю в его нелёгком выборе. Сеанс диалога может иметь следующий вид:

    ЭС: Какое программное обеспечение вы хотели бы приобрести? (правовое, бухгалтерское, складское).

    Пользователь: Бухгалтерское

    ЭС: Форма конфигурирования системы должна быть жёсткой (пользователь не будет иметь возможности сам конфигурировать какие-либо входные или выходные документы)? (да, нет).

    Пользователь: Нет.

    ЭС: Форма конфигурирования системы должна быть лояльной (т.е. пользователь может сам конфигурировать какие-либо входные или выходные документы)?

    Пользователь: Да

    ЭС: Программа должна быть разработана под оболочку Windows95?

    Пользователь: Да.

    ЭС: Программа должна быть одноуровневая? (да, нет).

    Пользователь: Нет.

    ЭС: Программа должна быть не одноуровневая?

    Пользователь: Да

    ЭС: Лучше всего для вас подходит система бухгалтерских программ "Турбо Бухгалтер".

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

    Правила типа "если – то" для представления знаний

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

  • если предварительное условие P, то заключение (вывод) C;
  • если ситуация S, то действие A;
  • если выполнены условия C1 и C2, то не выполнено условие C.
  • "Если – то" - правила обычно оказываются весьма естественным выразительным средством представления знаний. Кроме того, они обладают следующими привлекательными свойствами:

  • Модульность: каждое правило описывает небольшой, относительно независимый фрагмент знаний.
  • Возможность инкрементного наращивания: добавление новых правил в базу знаний происходит относительно независимо от других правил.
  • Удобство модификации (как следствие модульности): старые правила можно изменять и заменять на новые относительно независимо от других правил.
  • Применение правил способствует "прозрачности системы".
  • Последнее свойство - это важное, относительное свойство экспертных систем. Под прозрачностью понимается способность системы к объяснению принятых решений и полученных результатов. Применение "если – то" - правил облегчает получение ответов на следующие основные типы вопросов пользователя:

  • Вопросы типа "как": Как вы пришли к этому выводу?
  • Вопросы типа "почему": Почему вас интересует эта информация?
  • "Если – то" - правила часто применяют для определения логических отношений между понятиями предметной области. Про чисто логические отношения можно сказать, что они принадлежат к "категорическим знаниям", "категорическим" - потому, что соответствующие утверждения всегда абсолютно верны. Однако в некоторых предметных областях преобладают "мягкие" или вероятностные знания. Эти знания являются "мягкими" в том смысле, что говорить об их применимости к любым практическим ситуациям можно только до некоторой степени ("часто, но не всегда"). В таких случаях используют модифицированные "если – то" - правила, дополняя их логическую интерпретацию вероятностной оценкой. Например:

    если условие A, то заключение B с уверенностью F

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

    Преимущества экспертных систем

    Как описано ниже, экспертные системы обладают многими привлекательными особенностями.

  • Повышенная доступность. Для обеспечения доступа к экспертным знаниям могут применяться любые подходящие компьютерные аппаратные средства. В определённом смысле вполне оправдано утверждение, что экспертная система - это средство массового производства экспертных знаний.
  • Уменьшенные издержки. Стоимость предоставления экспертных знаний в расчёте на отдельного пользователя существенно снижается.
  • Уменьшенная опасность. Экспертные системы могут использоваться в таких вариантах среды, которые могут оказаться опасными для человека.
  • Постоянство. Экспертные знания никуда не исчезают. В отличие от экспертов - людей, которые могут уйти на пенсию, уволиться с работы или умереть, знания экспертной системы сохраняются в течение неопределённо долгого времени.
  • Возможность получения экспертных знаний из многих источников. С помощью экспертных систем могут быть собраны знания многих экспертов и привлечены к работе над задачей, выполняемой одновременно и непрерывно, в любое время дня и ночи. Уровень экспертных знаний, скомбинированных путём объединения знаний нескольких экспертов, может превышать уровень знаний отдельно взятого эксперта-человека.
  • Повышенная надёжность. Применение экспертных систем позволяет повысить степень доверия к тому, что принято правильное решение, путём предоставления еще одного обоснованного мнения эксперту-человеку или посреднику при разрешении несогласованных мнений между несколькими экспертами - людьми. (Разумеется, такой метод разрешения несогласованных мнений не может использоваться, если экспертная система запрограммирована одним из экспертов, участвующих в столкновении мнений.) Решение экспертной системы должно всегда совпадать с решением эксперта; несовпадение может быть вызвано только ошибкой, допущенной экспертом, что может произойти, только если эксперт-человек устал или находится в состоянии стресса.
  • Объяснение. Экспертная система способна подробно объяснить свои рассуждения, которые привели к определённому заключению. А человек может оказаться слишком усталым, не склонным к объяснениям или неспособным делать это постоянно. Возможность получить объяснение способствует повышению доверия к тому, что было принято правильное решение.
  • Быстрый отклик. Для некоторых приложений может потребоваться быстрый отклик или отклик в реальном времени. В зависимости от используемого аппаратного и программного обеспечения экспертная система может реагировать быстрее и быть более готовой к работе, чем эксперт - человек. В некоторых экстремальных ситуациях может потребоваться более быстрая реакция, чем у человека; в таком случае приемлемым вариантом становится применение экспертной системы, действующей в реальном времени.
  • Неизменно правильный, лишенный эмоций и полный ответ при любых обстоятельствах. Такое свойство может оказаться очень важным в реальном времени и в экстремальных ситуациях, когда эксперт-человек может оказаться неспособным действовать с максимальной эффективностью из-за воздействия стресса или усталости.
  • Возможность применения в качестве интеллектуальной обучающей программы. Экспертная система может действовать в качестве интеллектуальной обучающей программы, передавая учащемуся на выполнение примеры программ и объясняя, на чём основаны рассуждения системы.
  • Возможность применения в качестве интеллектуальной базы данных.
  • Экспертные системы могут использоваться для доступа к базам данных с помощью интеллектуального способа доступа. В качестве примера можно привести анализ скрытых закономерностей в данных.

    11.5.2.Особенности экспертных систем экономического анализа*

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

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

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

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

    $$O_i = \sum (W_{ij}O_{ij}), $$

    где $$О_{ij}$$ - оценка влияния j - го фактора на i - й вышестоящий фактор по некоторой числовой шкале, а $$W_{ij}$$ - вес (коэффициент) влияния j – го фактора на i - й фактор.

    ------------------------------------------------------------------------------------------------

    * При написании этого раздела использованы материалы из Интернет: Тельнов Ю.Ф. Информационные интеллектуальные системы. – М., 2004.

    Правила базы знаний оценивают отдельные факторы, реализуя так называемый дизъюнктивный (независимый) подход к построению правил. Примеры правил имеют следующий вид:

    IF: Управление = "удовлетворительно"
    THEN: Фин.состояние + = "удовлетворительно" cf 40
    IF: Финансовая структура = "удовлетворительно"
    THEN: Фин.состояние + = "удовлетворительно" cf 60
    IF: Ресурсы = "удовлетворительно"
    THEN: Фин.состояние + = "удовлетворительно" cf 50
    . . . . . . . . . . . . . . . . . . . . . . . . .
    IF: Качество управления = "удовлетворительно"
    THEN: Управление + = "удовлетворительно" cf 80
    IF: Структура управления = "удовлетворительно"
    THEN: Управление + = "удовлетворительно" cf 90

    и т.д.

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

    В результате внедрения системы EvEnt для 80 % ситуаций решения формируются без экспертов. Если раньше на оценку предприятия экспертом банка требовалось в среднем 2-3 недели, то после внедрения экспертной системы основные затраты стали связываться со сбором и вводом исходных данных в течение 2-3 дней, а собственно оценка предприятия занимает порядка 20 минут. При этом стоимость экспертизы в среднем сократилась с 10000 долларов до 1000 долларов.

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

    Классообразующим признаком является признак "Класс кредитоспособности" (1 - высший класс, 5 - низший класс). В результате обобщения примеров обучающей выборки часть признаков была формально отброшена: коэффициенты мобильности, ликвидности и величина предприятия, причем по различным ветвям дерева решений наблюдалась различная последовательность классификации.

    Для каждой отдельной ветки дерева решения строится правило, в котором все признаки классификации последовательно связываются в конъюнкцию () факторов левой части правила (так называемый конъюнктивный подход), например:

    IF: Кпокрыт. > = 1.55  Kпокрыт. < 2  Pепутац = 3  Kсоб.заем. > =
    0.625  Kсоб.заем. < 0.75  Kавтоном. > = 0.375  Kавтоном. < 0.6
    THEN: Кред.сп = 1
    (рис 11.20) Дерево решений "Определение класса кредитоспособности"

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

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

    В основе диагностики лежит метод последовательной декомпозиции "сверху - вниз" или дезагрегации "целое - часть", когда проблема последовательно разбивается на подпроблемы, пока на каком-либо уровне не станет ясным, какая подпроблема в действительности имеет место. Примером применения декомпозиционного метода к построению экспертных систем служит система внутреннего финансового анализа FINEX (рис.11.21).

    В случае применения экспертной системы внутреннего финансового анализа FINEX экспертиза осуществляется автоматически на основе введённых данных финансовой отчётности.

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

    Для проведения комплексного экономического анализа предприятия целесообразно комбинировать применение описанных выше методов к построению наборов правил. В МЭСИ разработан исследовательский прототип экспертной системы "Финансовый анализ предприятий" в среде интегрированного ППП Интерэксперт (GURU), реализующий и рейтинговый, и классификационный, и декомпозиционный методы анализа.

    Функциями экспертной системы финансового анализа предприятия являются:

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

    Анализ финансового состояния предприятия предполагает комплексную рейтинговую и классификационную оценку платежеспособности и финансовой устойчивости предприятия.

    (рис 11.21) Диагностика рентабельности предприятия

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

    11.5.3. Экспертная система анализа финансового состояния предприятия

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

    (рис 11.22)

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

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

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

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

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

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

    Для оценки такого баланса кроме простого (приближенного) метода группировки существует более точный метод нормативов-скидок. При расчете показателей платежеспособности используются следующие формулы:

    1) Финансовые коэффициенты ликвидности:

    а) коэффициент абсолютной ликвидности (Кал):

    $$Кал =\frac{D}{ Kt + Rp + Ko}$$

    где D - денежные средства и краткосрочные финансовые вложения;

    Kt - краткосрочные кредиты и заемные средства;

    Rp - расчёты и прочие пассивы;

    Ko - ссуды, не погашенные в срок.

    б) коэффициент ликвидности (Кл):

    $$Кл =\frac{Ra}{Kt + Rp + Ko}$$

    где Ra - денежные средства, расчёты и прочие активы.

    в) коэффициент покрытия (Кп):

    $$Кп =\frac{(Z - Sf) + Ra}{Kt + Rp + Ko}$$

    где Z - запасы и затраты;

    Sf - расходы будущих периодов;

    Ra - денежные средства, расчёты и прочие активы.

    Оценка коэффициентов ликвидности для промышленных предприятий осуществляется на основе проверки ограничений.

    Коэффициент абсолютной ликвидности:

  • Кал <= 0,2 - неудовлетворительное значение c уверенностью 50%;
  • Кал > 0,2 и <= 0,7 - "удовлетворительно" с уверенностью 30%;
  • Кал > 0,7 и <= 1,0 - "удовлетворительно" с уверенностью 50%;
  • Кал > 1,0 - "удовлетворительно" с уверенностью 30%.
  • Коэффициент ликвидности:

  • Кл <= 0,6 - неудовлетворительное значение c уверенностью 60%;
  • Кл > 0,6 и <= 0,8 - "удовлетворительно" с уверенностью 40%;
  • Кл > 0,8 и <= 1,0 - "удовлетворительно" с уверенностью 60%;
  • Кл > 1,0 - "удовлетворительно" с уверенностью 40%.
  • Коэффициент покрытия:

  • Кп <= 1,0 - неудовлетворительное значение c уверенностью 70%;
  • Кп > 1,0 и <= 2,0 - "удовлетворительно" с уверенностью 50%;
  • Кп > 2,0 и <= 3 - "удовлетворительно" с уверенностью 70%;
  • Кп > 3,0 - "удовлетворительно" с уверенностью 50%.
  • 2) Ликвидность баланса:

    а) Расчёт ликвидности баланса простым методом:

  • наиболее ликвидные активы $$A1 = D$$;
  • быстрореализуемые активы $$A2 = Ra - D$$;
  • медленно реализуемые активы $$A3 = Z + Sf + FT + RTa$$ , где $$Sf$$ - расходы будущих периодов, $$FT$$ - долгосрочные финансовые вложения, R$$Ta$$ - расчеты с участниками (учредителями);
  • наиболее срочные пассивы $$П1 = Rp + Ko$$;
  • краткосрочные пассивы $$П2 = Kt - Ko$$;
  • долгосрочные и среднесрочные пассивы $$П3 = КT + RTp$$ , где $$КT$$ - долгосрочные и среднесрочные кредиты и заемные средства, RTp - расчёты за имущество;
  • б) Расчёт ликвидности баланса методом нормативов скидок:

    $$А1 = D;$$ $$ A2 = 0,82a + 0,7Г + 0,5(Z - Sf -Г),$$

    где Г - готовая продукция;

    $$A3 = 0,22a + 0,3Г +0,5(Z - Sf -Г) + FT + RTa;$$ $$П1 = 0,8Rp + Ko;$$ $$П2 = 0,2Rp + Kt - Ko;$$ $$П3 = KT + RTp.$$

    Для обоих методов оценки ликвидности баланса рассчитываются платежные излишки/недостатки по следующим формулам:

  • платежный излишек/недостаток наиболее ликвидных активов: $$А11(А21) = А1 - П1;$$
  • платежный излишек/недостаток быстрореализуемых активов $$А12(А22) = А2 - П2;$$
  • платежный излишек/недостаток медленно реализуемых активов $$А13(А23) = A3 - П3.$$
  • В общей оценке платежеспособности наибольшее значение придается оценке баланса ликвидности по сравнению с оценкой коэффициентов ликвидности, например, факторы уверенности назначаются в соотношении 2 к 1. В оценке баланса ликвидности метод нормативов - скидок играет уточняющую роль, он лишь немного увеличивает хорошие значения и уменьшает плохие значения ликвидности.

    Оценку баланса ликвидности можно представить в виде следующей матрицы ("+" - избыток, "-" - недостаток):

    А11 А12 А13 Оценка Уверенность
    + + + Удовл. 100
    + + - Удовл. 80
    + - + Удовл. 75
    - + + Удовл. 70
    - - - Неудовл. 100
    - - + Неудовл. 75
    - + - Неудовл. 70
    + - - Неудовл. 60

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

    1) Трёхкомпонентный показатель типа финансовой ситуации:

  • излишек/недостаток собственных оборотных средств: $$+ Ес = Иc - F - Z;$$
  • излишек/недостаток собственных, долгосрочных и среднесрочных заемных средств: $$+Ет = Иc - F - Z + Kt;$$
  • излишек/недостаток общей величины основных источников формирования запасов и затрат: $$+Е = Иc - F - Z + Kt + KT;$$
  • Полученное значение трёхкомпонентного показателя может характеризовать состояние финансовой устойчивости как:

  • абсолютно устойчивое: запасы минимальны, если $$+Ес > 0 и +Eт > 0 и +Е > 0;$$
  • нормальное: нормальные величины запасов, если $$+Ес < 0 и +Eт > 0 и +Е > 0;$$
  • неустойчивое: избыток запасов, если $$+Ес < 0 и +Eт < 0 и +Е > 0;$$
  • Такое состояние можно восстановить путём привлечения долгосрочных и среднесрочных кредитов и заемных средств или обоснованным снижением уровня запасов;

  • кризисное: чрезмерная величина неподвижных и малоподвижных запасов, если $$+Ес < 0 и +Eт < 0 и +Е < 0;$$
  • В этом случае денежные средства, краткосрочные ценные бумаги и дебиторская задолженность не покрывают даже кредиторской задолженности и просроченных ссуд.

    2) Коэффициенты финансовой устойчивости предприятия:

  • коэффициент автономии: $$Ка =\frac{Ис}{В}$$ где В - итог актива и пассива баланса;
  • коэффициент соотношения заемных и собственных средств: $$ Кз/с =\frac{K + Rp}{Ис}$$
  • коэффициент маневренности: $$ Км =\frac{Ис - F}{Ис}$$
  • коэффициент обеспеченности запасов и затрат собственными источниками финансирования: $$ Коб=\frac{Ис - F}{Z}$$
  • Оценка коэффициентов финансовой устойчивости для промышленных предприятий осуществляется на основе проверки ограничений:

    Коэффициент автономии:

  • Ка <= 0,2 - неудовлетворительное значение с уверенностью 100%;
  • Ка > 0,2 и <= 0,5 - "удовлетворительно" с уверенностью 75%;
  • Ка > 0,5 - "удовлетворительно" с уверенностью 100%.
  • Коэффициент соотношения заемных и собственных средств:

  • Кз/с < 0,7 - удовлетворительное значение с уверенностью 100%
  • Кз/с >= 0,7- неудовлетворительное значение с уверенностью 100%
  • Коэффициент маневренности:

  • Км = 0,5 - удовлетворительное значение с уверенностью 100%;
  • Км <> 0,5 - неудовлетворительное значение с уверенностью 100%.
  • Коэффициент обеспеченности запасов и затрат собственными источниками финансирования:

  • Коб <= 0,6 - неудовлетворительное значение с уверенностью 100%;
  • Коб > 0,6 и <= 0,8 - удовлетворительное с уверенностью 100%;
  • Коб > 0,8 - удовлетворительное с уверенностью 80%.
  • Оценки показателей платежеспособности и финансовой устойчивости корректируются в зависимости от оценки тенденции развития предприятия (динамики значений показателей). При этом производится сравнение показателей отчётного периода со средней величиной этих показателей за предшествующий период деятельности предприятия с учётом инфляционных процессов. В случае улучшения значений показателей коэффициент уверенности удовлетворительной оценки увеличивается, предположим, на 10%, а в случае ухудшения коэффициент уверенности, соответственно, уменьшается.

    Проверка ограничений на значения отдельных показателей и их последующая оценка задается в виде правил базы знаний в следующей форме:

    Если: <посылка> То: < заключение > Уверенность < значение >, например:

    Если: А11 > 0 и A12 > 0 и A13 > 0

    То: Ликвидность баланса = "Удовлетворительна" Уверенность 100.

    В случае независимого воздействия на оценку некоторой целевой переменной нескольких показателей (соответственно нескольких правил, оценивающих эту переменную) коэффициент уверенности (КУ) итоговой оценки формируется рейтинговым методом по формуле нормализованного сложения:

    $$КУрез i = КУрез i-1 + КУфактора i - КУрез i-1* КУфактора i/100$$ $$(КУрез 1 = КУфактора 1)$$

    Например, коэффициент уверенности оценки ликвидности на основе значений финансовых коэффициентов ликвидности рассчитывается следующим образом:

    Кал = 1,1 -> Ликвидность коэф-в = "Удовлетвор." Уверенность 30
    Кл = 1,5 -> Ликвидность коэф-в = "Удовлетвор." Уверенность 40
    Кп = 3,1 -> Ликвидность коэф-в = "Удовлетвор." Уверенность 50

    Ликвидность коэф-в = "Удовлетвор." Уверенность 79

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

    IF: Ликвидность коэф-в = "Удовл." AND Ликвидность баланса = "Удовл."
    THEN: Платежеспособность = "Удовл." cf 100
    
    IF: Ликвидность коэф-в ="Неудовл." AND Ликвидность баланса ="Удовл."
    THEN: Платежеспособность = "Удовл." cf 80
    
    IF: Ликвидность коэф-в="Удовл." AND Ликвидность баланса="Неудовл."
    THEN: Платежеспособность = "Удовл." cf 40
    
    IF: Ликвидность коэф-в="Недовл." AND Ликвидность баланса="Недовл."
    THEN: Платежеспособность = "Неудовл." cf 100
    
    IF: Платежеспособность="Удовл." AND Финанс.устойчивость ="Удовл."
    THEN: Финансовое состояние = "Удовл." cf 100
    
    IF: Платежеспособность = "Неудовл." AND Финанс. устойчивость="Удовл"
    THEN: Финансовое состояние = "Удовл." cf 50
    
    IF: Платежеспособность="Удовл." AND Финанс. устойчивость ="Неуд."
    THEN: Финансовое состояние = "Удовл." cf 20
    
    IF: Платежеспособность="Неудовл." AND Финанс.устойчивость="Неуд."
    THEN: Финансовое состояние = "Неудовл." cf 100
    

    Объединение коэффициентов уверенности значений показателей для таких правил осуществляется следующим образом:

  • из коэффициентов уверенности посылки правила выбирается минимальный;
  • коэффициенты уверенности посылки и заключения правила объединяются по формуле:
  • $$КУ правила = КУ посылки * КУ заключения / 100 $$

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

    Платежеспособность = "Удовл." Уверенность 60
    Финанс. устойчивость = "Неудовл." Уверенность 70
    -----------------------------------------------------------------------------
    Посылка правила Уверенность 60
    Заключение правила Уверенность 20
    -----------------------------------------------------------------------------
    Финансовое состояние = "Удовл." Уверенность 12

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

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

    11.5.4. Экспертная система анализа эффективности результатов финансово-хозяйственной деятельности предприятия

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

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

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

    Рассмотрим взаимосвязи представленных в дереве показателей.

    Показатель рентабельности текущих активов (Рта), отражающий получение чистой прибыли (ЧП) на один рубль оборотных средств (ОбС):

    $$Рта=\frac {ЧП}{ОбС}$$

    может быть выведен через показатели оборачиваемости текущих активов (Ота) и рентабельности реализованной продукции (Ррп):

    $$Рта = Ота * Ррп.$$ (рис 11.23) Дерево целей "Оценка эффективности ФХД предприятия"

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

    $$Врп=\frac {Ота}{ОбС}$$

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

    Рентабельность реализованной продукции рассчитывается как отношение чистой прибыли к выручке от реализации продукции (Врп):

    $$Ррп=\frac {Ррп}{Врп}$$

    Выручка от реализации продукции в стоимостном выражении складывается из затрат на производство реализованной продукции (Зпр), или себестоимости, и результата от реализации, или прибыли (Пр):

    $$Врп = Зпр + Пр.$$

    Затраты на производство продукции включают прямые затраты (сырьё и материалы, оплату труда рабочих, отчисления на социальные нужды, брак в производстве и прочие расходы) и постоянные затраты (общехозяйственные, общепроизводственные и коммерческие расходы).

    Диагностика результатов финансово-хозяйственной деятельности предприятия осуществляется путём просмотра описанного дерева целей по принципу "сверху – вниз" и "слева – направо". Каждому уровню дерева соответствует правило, сопоставляющее значение показателя с требуемым уровнем. Для сопоставления рассчитанных показателей со среднеотраслевыми значениями такие абсолютные показатели, как прямые и постоянные затраты, переводятся в относительные посредством отнесения их к объему реализации продукции в рублях. Значения рассчитанных показателей оцениваются также путём сравнения с аналогичными значениями за предшествующий период, обеспечивая тем самым динамический анализ. Например:

    IF: Рта >= Рта отр. и Рта >= Рта пред.
    THEN: Рентабельность тек. активов + = "Удовл."
    
    IF: Рта >= Рта отр. и Рта < Рта пред.
    THEN: Рентабельность тек. активов += {"Удовл." cf 70, "Неудовл." cf 30}
    
    IF: Рта < Рта отр. и Рта >= Рта пред.
    THEN: Рентабельность тек. активов += {"Удовл." cf 30, "Неудовл." cf 70}
    
    IF: Рта < Рта отр. и Рта < Рта пред.
    THEN: Рентабельность тек. активов += "Неудовл."

    В приведённых правилах: Рта - показатель рентабельности текущих активов предприятия, Рта пред. - показатель рентабельности текущих активов предприятия за прошлый период, Рта отр. – показатель рентабельности текущих активов по отрасли.

    Сформированное качественное значение показателя фиксируется в специальной переменной "Финансово-хозяйственный результат". В случае неудовлетворительного значения того или иного показателя экспертная система осуществляет переход на анализ следующего уровня дерева показателей по функции KNOWN, например:

    IF: Рентабельность тек. активов = "Неудовлетв."
    AND KNOWN ("Оборачиваемость тек. активов")
    AND KNOWN("Рентабельность реал. продукции")
    THEN: Финансово-хозяйственный результат + =
    "Рентабельность тек. активов неудовлетворительна"
    
    IF: Рентабельность тек. активов = "Удовлетв."
    THEN: Финансово-хозяйственный результат + =
    "Рентабельность тек. активов удовлетворительна"
    
    IF: Оборачиваемость тек. активов = "Неудовлетв."
    AND KNOWN("Оборачиваемость гот. продукции")
    AND KNOWN("Оборачиваемость матер. запасов")
    THEN: Финансово-хозяйственный результат + =
    " Оборачиваемость тек. активов неудовлетворительна"
    
    IF: Оборачиваемость тек. активов = "Удовлетв."
    THEN: Финансово-хозяйственный результат + =
    " Оборачиваемость тек. активов удовлетворительна"
    . . . . . . . . . . . . . . . . . . . . . . . . .

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

    Контрольные вопросы и упражнения

  • Что объединяет в себе теория решений?
  • Что является характеристикой нечёткого множества?
  • Назовите основные логические операции нечётких множеств.
  • Что осуществляют нечёткие нейронные сети?
  • Назовите четыре слоя, из которых состоит нечёткая нейронная сеть.
  • Что представляют собой нечёткие когнитивные карты?
  • Для чего применяются нейронные сети?
  • Поясните шаги построения нейронной сети.
  • В чём отличие обобщенно-регрессионной нейронной сети от вероятностной нейронной сети?
  • Что представляет собой генетический алгоритм?
  • Назовите основные определения, которые используются при описании генетических алгоритмов.
  • Из каких шагов состоит основной (классический) генетический алгоритм?
  • В чём заключается селекция хромосом?
  • Пояснить работу двух основных генетических операторов, которые используются в классическом генетическом алгоритме.
  • Изложить алгоритм решения следующей задачи: необходимо оптимизировать эффективность от вложения средств в различные проекты, операции, недвижимость и т.д.
  • Показать, как должно рассчитываться значение функции приспособленности применительно к монополистической конкуренции на основе величин ценовых и неценовых характеристик.
  • Что представляют собой экспертные системы (ЭС)?
  • На использовании каких идей основаны экспертные системы?
  • В чём заключается главная идея использования технологии экспертных систем?
  • В чём состоит сходство информационных технологий, используемых в экспертных системах и системах поддержки принятия решений?
  • Какие различия существуют между информационными технологиями, используемыми в экспертных системах и системах поддержки принятия решений?
  • Для чего используется интерфейс в экспертной системе?
  • Что определяет правило в базе знаний?
  • Из каких частей состоит правило?
  • Перечислите наиболее распространенные семантические модели.
  • Поясните технологию работы интерпретатора.
  • Какие дополнительные блоки вводятся в экспертных системах?
  • Для чего используется модуль создания системы?
  • Что представляет собой оболочка экспертных систем?
  • Приведите пример экспертной системы внешнего анализа.
  • Поясните дизъюнктивный (независимый) подход к построению правил.
  • Поясните метод классификации ситуаций.
  • Какой подход используется для внутреннего экономического анализа?
  • Перечислите функции экспертной системы финансового анализа предприятия.
  • Какой может быть оценка финансового состояния предприятия?
  • Какие факторы необходимо учитывать при проведении экспертизы, оказывающие влияние на финансовое состояние предприятия?
  • Как рассчитывается оценка ликвидности (платежеспособности) предприятия?
  • Когда используется метод нормативов-скидок?
  • Как осуществляется расчет ликвидности баланса?
  • Как формируется оценка финансовой устойчивости предприятия?
  • Что включают затраты на производство продукции?
  • Как осуществляется диагностика результатов финансово-хозяйственной деятельности предприятия?
  • Заключение

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

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

    Вернуться к учебному плану