Министерство образования и науки Российской Федерации Сибирский федеральный университет
ИНТЕЛЛЕКТУАЛЬНЫЕ ИНФОРМАЦИОННЫЕ СИСТЕМЫ
Учебно-методическое пособие для лабораторных работ
Электронное издание
Красноярск СФУ 2012
УДК 004.891(07) ББК 32.973.2я73 И741 Составитель: Носкова Елена Евгеньевна И741
Интеллектуальные информационные системы: учебнометодическое пособие для лабораторных работ [Электронный ресурс] / сост. Е. Е. Носкова. – Электрон. дан. – Красноярск: Сиб. федер. ун-т, 2012. – Систем. требования: PC не ниже класса Pentium I; 128 Mb RAM; Windows 98/XP/7; Adobe Reader V8.0 и выше. – Загл. с экрана.
Учебно-методическое пособие для лабораторных работ в рамках дисциплины «Интеллектуальные информационные системы» составлены в соответствии с рабочей программой дисциплины и содержат описание основных этапов построения систем нечеткого вывода при решении экономических задач и систем прогнозирования на основе нейро-нечеткой сети ANFIS с помощью пакета Fuzzy Logic Toolbox среды MATLAB. Предназначены для студентов специальности 080801.65 «Прикладная информатика (по областям)». УДК 004.891(07) ББК 32.973.2я73 © Сибирский федеральный университет, 2012 Учебное издание Подготовлено к публикации редакционно-издательским отделом БИК СФУ Подписано в свет 15.11.2012. Заказ 9582. Тиражируется на машиночитаемых носителях. Редакционно-издательский отдел Библиотечно-издательского комплекса Сибирского федерального университета 660041, г. Красноярск, пр. Свободный, 79 Тел/факс (391) 206-21-49. E-mail
[email protected]; http://rio.sfu-kras.ru
Введение Началом практического применения теории нечетких множеств можно считать 1975г., когда Мамдани и Ассилиан построили первый нечеткий контролер для управления простым паровым двигателем. Успех первого промышленного контролера, основанного на нечетких лингвистических правилах “Если - то” привел к всплеску интереса к теории нечетких множеств среди математиков и инженеров. Несколько позже Бартоломеем Коско (Bart Kosko) была доказана теорема о нечеткой аппроксимации (Fuzzy Approximation Theorem), согласно которой любая математическая система может быть аппроксимирована системой, основанной на нечеткой логике. Другими словами, с помощью естественно-языковых высказываний-правил “Если - то”, с последующей их формализацией средствами теории нечетких множеств, можно сколько угодно точно отразить произвольную взаимосвязь “входы-выход” без использования сложного аппарата дифференциального и интегрального исчислений, традиционно применяемого в управлении и идентификации [1]. Системы, основанные на нечетких множествах разработаны и успешно внедрены в таких областях, как: управление технологическими процессами, управление транспортом, медицинская диагностика, техническая диагностика, финансовый менеджмент, биржевое прогнозирование, распознавание образов. Спектр приложений очень широкий - от видеокамер и бытовых стиральных машин до средств наведения ракет ПВО и управления боевыми вертолетами. Практический опыт разработки систем нечеткого логического вывода свидетельствует, что сроки и стоимость их проектирования значительно меньше, чем при использовании традиционного математического аппарата, при этом обеспечивается требуемый уровень робастности и прозрачности моделей. Основными потребителями нечеткой логики на рынке СНГ являются банкиры и финансисты, а также специалисты в области политического и экономического анализа. Они используют системы нечеткого вывода для создания моделей разных экономических, политических, биржевых ситуаций. Можно с уверенностью сказать, что эпоха расцвета прикладного использования нечеткой логики на отечественном рынке еще впереди. Сегодня элементы нечеткой логики можно найти в десятках промышленных изделий - от систем управления электропоездами и боевыми вертолетами до пылесосов и стиральных машин. Без применения нечеткой логики немыслимы современные ситуационные центры руководителей западных стран, где принимаются ключевые политические решения и моделируются разные кризисные ситуации. Одним из впечатляющих примеров масштабного применения нечеткой логики стало комплексное моделирование системы здравоохранения и социального обеспечения Великобритании, которое впервые позволило точно оценить и оптимизировать затраты на социальные нужды. В представленных лабораторных работах рассмотрены решения прикладных задач , которые иллюстрируют особенности реализации идей нечеткого моделирования и могут быть эффективно решены с использованием такого программного инструмента, как пакет Fuzzy Logic Toolbox системы MATLAB
Лабораторная работа №1: Разработка системы нечеткого вывода с помощью пакета Fuzzy Logic Toolbox системы MATLAB 1. Этапы разработки системы нечеткого вывода с помощью пакета Fuzzy Logic Рассмотрим основные этапы проектирования систем типа Мамдани на примере создания системы нечеткого логического вывода, моделирующей зависимость , [1]. Проектирование системы нечеткого логического вывода будем проводить на основе графического изображения указанной зависимости. Для построения трехмерного изображения функции области
в
составим следующую программу:
n=15; x1=-7:10/(n-1):3; x2=-4.4:6.1/(n-1):1.7; y=zeros(n,n); for j=1:n y(j,:)=x1.^2*sin(x2(j)-1); end surf(x1,x2,y) xlabel('x1') ylabel('x2') zlabel('y') title('Target'); В результате выполнения программы получим графическое изображение, приведенное на рис. 1.1. Проектирование системы нечеткого логического вывода, соответствующей приведенному графику, состоит в выполнении следующей последовательности шагов.
Рис.1.1. Эталонная поверхность Шаг 1. Для загрузки основного fis-редактора напечатаем слова fuzzy в командной строке. После этого откроется нового графическое окно, показанное на рис. 1.2.
Рис.1.2. Окно редактора FIS-Editor
Шаг 2. Добавим вторую входную переменную. Для этого в меню Edit выбираем команду Add input. Шаг 3. Переименуем первую входную переменную. Для этого сделаем один щелчок левой кнопкой мыши на блоке input1, введем новое обозначение x1 в поле редактирования имени текущей переменной и нажмем . Шаг 4. Переименуем вторую входную переменную. Для этого сделаем один щелчок левой кнопкой мыши на блоке input2, введем новое обозначение x2 в поле редактирования имени текущей переменной и нажмем . Шаг 5. Переименуем выходную переменную. Для этого сделаем один щелчок левой кнопкой мыши на блоке output1, введем новое обозначение y в поле редактирования имени текущей переменной и нажмем . Шаг 6. Зададим имя системы. Для этого в меню File выбираем в подменю Export команду To disk и вводим имя файла, например, first. Шаг 7. Перейдем в редактор функций принадлежности. Для этого сделаем двойной щелчок левой кнопкой мыши на блоке x1. Шаг 8. Зададим диапазон изменения переменной x1. Для этого напечатаем -7 3 в поле Range (см. рис. 3.3) и нажмем . Шаг 9. Зададим функции принадлежности переменной x1. Для лингвистической оценки этой переменной будем использовать 3 терма с треугольными функциями принадлежности. Для этого в меню Edit выберем команду Add MFs... В результате появиться диалоговое окно выбора типа и количества функций принадлежностей. По умолчанию это 3 терма с треугольными функциями принадлежности. Поэтому просто нажимаем . Шаг 10. Зададим наименования термов переменной x1. Для этого делаем один щелчок левой кнопкой мыши по графику первой функции принадлежности (см. рис. 3.3). Затем вводим наименование терма, например, Низкий, в поле Name и нажмем . Затем делаем один щелчок левой кнопкой мыши по графику второй функции принадлежности и вводим наименование терма, например, Средний, в поле Name и нажмем . Еще раз делаем один щелчок левой кнопкой мыши по графику третьей функции принадлежности и вводим наименование терма, например, Высокий, в поле Name и нажмем . В результате получим графическое окно, изображенное на рис. 1.3.
Рис.1.3. Функции принадлежности переменной x1
Рис 1.4. Функции принадлежности переменной x2
Шаг 11. Зададим функции принадлежности переменной x2. Для лингвистической оценки этой переменной будем использовать 5 термов с гауссовскими функциями принадлежности. Для этого активизируем переменную x2 с помощью щелчка левой кнопки мыши на блоке x2. Зададим диапазон изменения переменной x2. Для этого напечатаем -4.4 1.7 в поле Range (см. рис. 1.4) и нажмем . Затем в меню Edit выберем команду Add MFs.... В появившимся диалоговом окне выбираем тип функции
принадлежности gaussmf в поле MF type и 5 термов в поле Number of MFs. После этого нажимаем . Шаг 12. По аналогии с шагом 10 зададим следующие наименования термов переменной x2: Низкий, Ниже среднего, Средний, Выше среднего, Высокий. В результате получим графическое окно, изображенное на рис. 1.4. Шаг 13. Зададим функции принадлежности переменной y. Для лингвистической оценки этой переменной будем использовать 5 термов с треугольными функциями принадлежности. Для этого активизируем переменную y с помощью щелчка левой кнопки мыши на блоке y. Зададим диапазон изменения переменной y. Для этого напечатаем -50 50 в поле Range (см. рис. 1.5) и нажмем .Затем в меню Edit выберем команду Add MFs.... В появившимся диалоговом окне выбираем 5 термов в поле Number of MFs. После этого нажимаем .
Рис 1.5. Функции принадлежности переменной y Шаг 14. По аналогии с шагом 10 зададим следующие наименования термов переменной y: Низкий, Ниже среднего, Средний, Выше среднего, Высокий. В результате получим графическое окно, изображенное на рис. 1.5. Шаг 15. Перейдем в редактор базы знаний RuleEditor. Для этого выберем в меню Edit выберем команду Edit rules.... Шаг 16. На основе визуального наблюдения за графиком, изображенным на рис. 1.1 сформулируем следующие девять правил: 1. 2. 3. 4. 5. 6.
Если x1=Средний, то y=Средний; Если x1=Низкий и x2=Низкий, то y=Высокий; Если x1=Низкий и x2=Высокий, то y=Высокий; Если x1=Высокий и x2=Высокий, то y=Выше Среднего; Если x1=Высокий и x2=Низкий, то y=Выше Среднего; Если x1=Высокий и x2=Средний, то y=Средний;
7. Если x1=Низкий и x2=Средний, то y=Низкий; 8. Если x1=Высокий и x2=Выше Среднего, то y=Средний; 9. Если x1=Высокий и x2=Ниже Среднего, то y=Средний. Для ввода правила необходимо выбрать в меню соответствующую комбинацию термов и нажать кнопку Add rule. На рис. 1.6 изображено окно редактора базы знаний после ввода всех девяти правил. Число, приведенное в скобках в конце каждого правила представляет собой весовым коэффициент соответствующего правила.
Рис 1.6. База знаний в RuleEditor Шаг 17. Сохраним созданную систему. Для этого в меню File выбираем в подменю Export команду To disk. Окно визуализации нечеткого логического вывода активизируется командой View rules... меню View. В поле Input указываются значения входных переменных, для которых выполняется логический вывод.
2. Задания для выполнения лабораторной работы Вариант 1: Нечеткое моделирование конкурентоспособности марочного товара Рассматриваются марочные товары, т.е. товары, продающиеся под торговой маркой (брендом). Конкурентоспособность - одна из важных маркетинговых характеристик товара. Она выражает совокупную способность товара выдержать конкуренцию с другими товарами на определенном рынке, быть реализованным и принести прибыль.
При моделировании конкурентоспособности товара обычно используют различные модификации метода взвешенной суммы частных технико-экономических показателей (или их отклонения от показателей идеального товара). При этом неявно предполагается, что недостаток одних показателей можно компенсировать избытком других. Пропорции таких "взаимозачетов" постоянны на всем факторном пространстве - они задаются весовыми коэффициентами функции свертки. Однако, на рынке продаются товары, показатели которых отличаются в несколько раз. При таком разбросе показателей чувствительность конкурентоспособности не может быть постоянной на всем факторном пространстве. Значимый вклад в конкурентоспособность марочных товаров вносят не только показатели качества и цены товара (как для немарочных товаров), но и степень информированности покупателя, географическая и временная доступность покупки, уровень сервиса, социальные, экономические, психологические и прочие бонусы, которые стают доступными потребителю. Для оценки таких показателей зачастую применяют экспертные оценки типа: "дешевый товар", "слабенький имидж", "отличный сервис". Такая неопределенность исходных данных связана с невозможностью дорогих полномасштабных маркетинговых исследований, а также с ограниченным доступом к правдивой финансовой отчетности конкурентов. В указанных условиях с помощью традиционных подходов трудно получать адекватные модели конкурентоспособности, учитывающие доступные экспертные знания. Заметим, что опытные бренд-менеджеры часто действуют на основе лингвистических правил типа "Если цена - низкая, и качество - высокое, и имидж бренда - высокий, тогда конкурентоспособность - очень высокая", в которых сконцентрированы теоретические знания и личный опыт управления. Превращать такие экспертные правила в математическую модель удобно с помощью теории нечетких множеств [1,2]. Критерием конкурентоспособности марочного товара назовем число . Чем больше значение этого критерия, тем больше шансов у марочного товара быть выбранным покупателями, тем больше его сегмент рынка. На конкурентоспособность марочного товара влияет много производственных, психологических, социальных, политических и других факторов. Обозначим их через , тогда модель конкурентоспособности марочного товара будет представлять функциональное отображение вида: ,где
- вектор влияющих факторов.
При большом числе факторов их влияние удобно классифицировать в виде иерархического дерева логического вывода. Предлагается иерархическая классификация влияющих факторов в виде такого дерева (рис. 1.7). Элементы дерева интерпретируется так: корень дерева - конкурентоспособность марочного товара (
);
терминальные вершины - частные влияющие факторы влияния ( ); нетерминальные вершины (двойные окружности) - свертки влияющих факторов; дуги графа, выходящие из нетерминальных вершин - укрупненные влияющие факторы (
).
Описание факторов приведено в табл. 1.
Свертки знаний.
,
,
и
осуществим посредством логического вывода по нечетким базам
Рис. 1.7 Иерархическая классификация факторов, влияющих на конкурентоспособность Таблица 1 - Влияющие факторы Наименование фактора
Описание фактора
- качество
Совокупность потребительских свойств; способность удовлетворять ожидаемые потребности потребителя
- имидж
Целостная совокупность ассоциаций и впечатлений, представляющая торговую марку в сознании потребителя
- сервис
Множество услуг, скидок и льгот, предоставляемым реальным и потенциальным потребителям марочного товара
- цена
Розничная цена марочного товара на анализируемом рынке
Потенциальное качество, заложенное в марочный товар. качество Определяется: для пищевых продуктов - рецептурой; для аппаратуры - схемотехническими решениями; для одежды проектных решений дизайном; для образовательных услуг - учебными планами. Объективные ограничения достижения потенциального качества. Для товаропроизводителей они обусловлены технологическим качество процессом, средствами труда (оборудование, инструменты) и предметами труда (комплектующие, сырье, ингредиенты). Для производственных учебных заведений эти ограничения обусловлены лабораторной технологий базой и учебным процессом (расписание, технологии передачи и контроля знаний и т.п.).
Субъективные ограничения достижения потенциального качества, кадровое обусловленные квалификацией, дисциплинированностью и обеспечение мотивированностью персонала.
производителя
Мера доверия к производителю марочного товара, обычно определяемая государственными органами сертификации. Например, потребители больше доверяют товарам, произведенных ранг концернами, заводами и фабриками согласно ГОСТу или ISO, чем частными предпринимателями выпускающим продукцию по ТУ. Для вузов ранг определяется уровнем аккредитации и статусом (национальный университет, университет, институт или филиал).
Информация, распространяющая в интересах производителя марочного товара. Состоит из рекламного обеспечения всего рекламное бренда и конкретного марочного товара. Определяется идентичностями бренда и марочного товара (имя, товарный знак, обеспечение история и т.п.), а также объемом и качеством прямой и скрытой реклам. Информация, распространяющая не в интересах производителя марочного товара. Состоит из рекламаций на конкретный уровень марочный товар и весь бренд. Определяется количеством и степенью претензий потребителей, уровнем распространением информации о рекламациях, а также контрпропагандой конкурентов.
рекламаций
покупки
Легкость совершения покупки, определяемая географической и удобность временной доступностью точек продажи, а также сервисным обслуживанием при приобретении товара (консультации, доставка и установка).
сервис эксплуатации
- бонусы
Удобства при эксплуатации марочного товара, определяемые возможностью модернизации товара, сроком гарантийного и при послегарантийного обслуживания, географической и временной доступностью сервисных центров и точек сбыта расходных материалов Дополнительные льготы, скидки и услуги, стающие доступными потребителям марочного товара.
Значения факторов выражаются как отклонения (в процентах) от усредненных показателей по аналогичным товарам конкурирующих брендов на анализируемом рынке. Для моделирования укрупненных влияющих факторов используются экспертные нечеткие базы знаний типа Мамдани, приведенные в табл. 2-4. Элементы антецедентов нечетких правил связаны логической операцией И. Таблица 2 - Нечеткая база знаний для моделирования качества марочного товара
Высокое Высокое Высокое Высокое Высокое Высокое Среднее Высокое Высокое Среднее Высокое Высокое
Среднее Высокое Высокое Высокое Среднее Высокое Среднее Высокое Низкое
Низкое
Низкое
Низкое
Низкое
Низкое
Среднее Низкое
Низкое
Среднее Низкое
Низкое
Среднее Низкое
Низкое
Среднее Низкое
Среднее Низкое
Высокое Низкое
Среднее Среднее
Высокое Среднее Низкое
Низкое
Среднее
Низкое
Высокое Среднее Среднее
Низкое
Среднее Высокое Среднее
Среднее Высокое Низкое Среднее Низкое
Среднее
Высокое Среднее
Среднее Среднее Среднее Среднее Таблица 3 - Нечеткая база знаний для моделирования имиджа марочного товара
Высокий Высокое Средний Высокий Высокий Среднее Низкий
Высокий
Любой
Высокий
Высокое Низкий
Средний Высокое Средний Высокий Любой
Низкое
Высокий Низкий
Низкий
Низкое
Средний Низкий
Низкий
Среднее Высокий Низкий
Средний Низкое
Средний Низкий
Высокий Низкое
Средний Средний
Высокий Среднее Высокий Средний Низкий
Высокое Средний Средний
Низкий
Среднее Низкий
Средний
Средний Высокое Высокий Средний Средний Низкое
Низкий
Средний
Средний Среднее Средний Средний Таблица 4 - Нечеткая база знаний для оценки уровня сервиса
Высокая Высокий Высокие Высокий Высокая Высокий Средние Высокий Высокая Средний Высокие Высокий Высокая Средний Средние Высокий Средняя Высокий Высокие Высокий Низкая
Низкий
Низкие
Низкий
Низкая
Низкий
Средние Низкий
Низкая
Средний Низкие
Низкая
Средний Средние Низкий
Низкий
Средняя Низкий
Низкие
Высокая Низкий
Средние Средний
Высокая Средний Низкие
Низкий Средний
Низкая
Высокий Средние Средний
Низкая
Средний Высокие Средний
Средняя Высокий Низкие Средняя Низкий
Средний
Высокие Средний
Средняя Средний Средние Средний Конкурентоспособность марочного товара моделируется с учетом трех типов сбыта, когда для потребителя показатели И цены И качества И имиджа И сервиса являются: 1) плохими, 2) средними и 3) хорошими. Предполагается, что при каждом типе сбыта эластичность конкурентоспособности по факторам постоянна. Границы подобластей с постоянными эластичностями конкурентоспособности - нечеткие, что обусловлено плавным переходом одного типа сбыта в другой. В табл. 5 предлагается нечеткая база знаний типа Сугено для моделирования конкурентоспособности марочного товара. Каждое правило этой базы знаний моделирует один тип сбыта. Коэффициенты в заключениях правил задают чувствительность конкурентоспособности по соответствующим факторам. Коэффициенты выбирались экспертно по методу парных сравнений Саати [1]. Таблица 5- Нечеткая база знаний для оценки конкурентоспособности
Высокая Низкое
Низкий
Низкий
Средняя Среднее Средний Средний Низкая
Высокое Высокий Высокий
Графики функций принадлежности нечетких термов "Низкий" (Н), "Средний" (С) и "Высокий" (В) приведены на рис. 1.8. Используется гауссовая функция принадлежности:
(1) , где
- функция принадлежности фактора
нечеткому числу ;
та - параметры функции принадлежности: координата максимума и коэффициент концентрации.
Рис. 1.8. Функции принадлежности нечетких термов Нечеткую модель конкурентоспособности реализовать следующими системами нечеткого вывода: - нечеткая система моделирования качества марочного товара ( ); - нечеткая система моделирования имиджа марочного товара ( ); нечеткая система прогнозирования конкурентоспособности марочного товара (Q). Вариант 2: Оценивание финансовой состоятельности клиентов при предоставлении банковских кредитов. При выдаче долгосрочных кредитов на строительство зданий под залог недвижимости для оценки состоятельности клиентов традиционно используется метод экспертных оценок. Целью банков является получение максимальной прибыли от заключенных сделок по предоставлению кредитов и исключение возможных финансовых потерь. Анализ стратегии предоставления кредитов на строительство зданий показывает, что для оценки финансовой состоятельности клиентов могут быть использованы различные характеристики, которые будут входными переменными для нечеткой модели принятия решений, а именно: 1. месторасположение строящегося здания (непрестижное, престижное, очень престижное);
2. качество предполагаемого выполнения отделочных работ (плохое, хорошее, прекрасное); 3. оценка активов, использующаяся для оценки имущества в случае несостоятельности потенциального клиента при невозвращении им взятого кредита (низкие, средние, высокие); 4. оценка дохода потенциального клиента за вычетом фиксированных расходов, которая тоже используется в случае несостоятельности потенциального клиента при невозвращении им взятого кредита (низкий, высокий, очень высокий); 5. величина подлежащих уплате процентов, согласно предполагаемому плану выплат по взятому кредиту (низкие, средние, высокие); В качестве выходной переменной используется оценка кредитоспособности, которая является основой для принятия решений руководством банка по предоставлению кредита потенциальным клиентам: (очень низкая, низкая, средняя, высокая, очень высокая). База правил должна содержать не менее 40 правил, моделирующих анализ финансовой состоятельности потенциальных клиентов руководством банка. 3. Порядок выполнения работы: 1) Разработать модель системы нечеткого управления объектом или процессом на основе анализа предметной области. Проанализировать эмпирические знания о рассматриваемой предметной области и представить их в форме эвристических правил. 2) Фаззифицировать входные переменные на основе редактора систем нечеткого вывода FIS; Сформировать функции принадлежности для входных и выходных переменных с помощью редактора функций принадлежности. 3) Записать правила нечеткого вывода с помощью редактора правил. 4) Получить результат нечеткого вывода для конкретных значений входных переменных. 5) Построить поверхность нечеткого вывода для разработанной модели. 6) Составить отчет.
Лабораторная работа №2: Применение адаптивной системы нейронечеткого вывода ANFIS для решения задач прогнозирования. 1. Теоретические сведения ANFIS - это аббревиатура Adaptive-Network-Based Fuzzy Inference System адаптивная сеть нечеткого вывода. Она была предложена Янгом (Jang) в начале девяностых [2]. ANFIS является одним из первых вариантов гибридных нейро-нечетких сетей - нейронной сети прямого распространения сигнала особого типа. Архитектура нейро-нечеткой сети изоморфна нечеткой базе знаний. В нейро-нечетких сетях используются дифференцируемые реализации треугольных норм (умножение и вероятностное ИЛИ), а также гладкие функции принадлежности. Это позволяет применять для настройки нейро-нечетких сетей быстрые алгоритмы обучения нейронных сетей, основанные на методе обратного распространения ошибки. Ниже описываются архитектура и правила функционирования каждого слоя ANFIS-сети. ANFIS реализует систему нечеткого вывода Сугено в виде пятислойной нейронной сети прямого распространения сигнала. Назначение слоев следующее:первый слой термы входных переменных;второй слой - антецеденты (посылки) нечетких правил; третий слой - нормализация степеней выполнения правил; четвертый слой - заключения правил; пятый слой - агрегирование результата, полученного по различным правилам. Входы сети в отдельный слой не выделяются. На рис. 2.1 изображена ANFIS-сеть с двумя входными переменными (x1 и x2) и четырьмя нечеткими правилами. Для лингвистической оценки входной переменной x1 используется 3 терма, для переменной x2 - 2 терма.
Рис. 2.1. Функции принадлежности нечетких термов
Введем следующие обозначения, необходимые для дальнейшего изложения: - входы сети; y - выход сети;
нечеткое
-
правило
с
применяемый
для
порядковым номером r; m - количество правил , -
нечеткий
терм
; с
функцией
лингвистической оценки переменной
принадлежности в r-ом правиле (
- действительные числа в заключении r-го правила (
, ,
); ,
).
ANFIS-сеть функционирует следующим образом. Слой 1. Каждый узел первого слоя представляет один терм с колокообразной функцией принадлежности. Входы сети соединены только со своими термами. Количество узлов первого слоя равно сумме мощностей терм-множеств входных переменных. Выходом узла являются степень принадлежности значения входной переменной соответствующему нечеткому терму:
, где a, b и c - настраиваемые параметры функции принадлежности. Слой 2. Количество узлов второго слоя равно m. Каждый узел этого слоя соответствует одному нечеткому правилу. Узел второго слоя соединен с теми узлами первого слоя, которые формируют антецеденты соответствующего правила. Следовательно, каждый узел второго слоя может принимать от 1 до n входных сигналов. Выходом узла является степень выполнения правила, которая рассчитывается как произведение входных сигналов. Обозначим выходы узлов этого слоя через
,
.
Слой 3. Количество узлов третьего слоя также равно m. Каждый узел этого слоя рассчитывает относительную степень выполнения нечеткого правила:
. Слой 4. Количество узлов четвертого слоя также равно m. Каждый узел соединен с одним узлом третьего слоя а также со всеми входами сети (на рис. 1 связи с входами не показаны). Узел четвертого слоя рассчитывает вклад одного нечеткого правила в выход сети: . Слой 5. Единственный узел этого слоя суммирует вклады всех правил: .
Типовые процедуры обучения нейронных сетей могут быть применены для настройки ANFIS-сети так как, в ней использует только дифференцируемые функции. Обычно применяется комбинация градиентного спуска в виде алгоритма обратного распространения ошибки и метода наименьших квадратов. Алгоритм обратного распространения ошибки настраивает параметры антецедентов правил, т.е. функций принадлежности. Методом наименьших квадратов оцениваются коэффициенты заключений правил, так как они линейно связаны с выходом сети. Каждая итерация процедуры настройки выполняется в два этапа. На первом этапе на входы подается обучающая выборка, и по невязке между желаемым и действительным поведением сети итерационным методом наименьших квадратов находятся оптимальные параметры узлов четвертого слоя. На втором этапе остаточная невязка передается с выхода сети на входы, и методом обратного распространения ошибки модифицируются параметры узлов первого слоя. При этом найденные на первом этапе коэффициенты заключений правил не изменяются. Итерационная процедура настройки продолжается пока невязка превышает заранее установленное значение. Для настройки функций принадлежностей кроме метода обратного распространения ошибки могут использоваться и другие алгоритмы оптимизации, например, метод Левенберга-Марквардта. 2. ANFIS-редактор Гибридная сеть ANFIS в пакете Fuzzy Logic Toolboxсистемы MATLAB представляет собой нейронную сеть с единственным выходом и несколькими входами, которые представляют собой нечеткие лингвистические переменные [2]. При этом термы входных лингвистических переменных описываются стандартными функциями принадлежности, а термы выходной переменной представляются линейной или постоянной функцией принадлежности. С другой стороны, гибридная сеть ANFIS представляет собой систему нечеткого вывода типа Сугено нулевого или первого порядка, в которой каждое из правил нечетких продукций имеет постоянный вес, равный 1. Редактор ANFIS позволяет создавать или загружать конкретную модель адаптивной системы нейро-нечеткого вывода, выполнять ее обучение, визуализировать ее структуру, изменять и настраивать ее параметры, а также использовать настроенную сеть для получения результатов нечеткого вывода. Загрузка ANFIS-редактора осуществляется по команде anfisedit. В результате выполнения этой команды появится графическое окно, изображенное рис. 2.2. На этом же рисунке указаны функциональные области ANFIS-редактора, описание которых приведено ниже.
Рисунок 2.2. Основное окно ANFIS-редактора ANFIS-редактор содержит 3 верхних меню - File, Edit и View, область визуализации, область свойств ANFIS, область загрузки данных, область генерирования исходной системы нечеткого логического вывода, область обучения, область тестирования, область вывода текущей информации, а также кнопки Help и Close, которые позволяют вызвать окно справки и закрыть ANFIS-редактор, соответственно. Меню File и View одинаковые для всех GUI-модулей используемых с системами нечеткого логического вывода. Они подробно описаны в разделе 7.1. Меню Edit Общий вид меню приведен на рис.2.3.
Рисунок 2.3 Меню Edit Команда Undo отменяет ранее совершенное действие. Выполняется также по нажатию Ctrl+Z.
Команда FIS Properties… открывает FIS-редактор. Эта команда может быть также выполнена нажатием Ctrl+1. Команда Membership Functions… открывает редактор функций принадлежностей. Эта команда может быть также выполнена нажатием Ctrl+2. Команда Rules… открывает редактор базы знаний. Эта команда может быть также выполнена нажатием Ctrl+3. Команда Anfis… открывает ANFIS-редактор. Эта команда может быть также выполнена нажатием Ctrl+3. Заметим, что данная команда, запущенная из ANFIS-редактора не приводит к выполнению каких-либо действий, так этот редактор уже открыт. Однако, в меню Edit других GUI-модулей, используемых с системами нечеткого логического вывода, добавляется команда Anfis…, позволяющая открыть ANFIS-редактор из этих модулей. Область визуализации: В этой области выводится два типа информации:
при обучении системы – кривая обучения в виде графика зависимости ошибки обучения от порядкового номера итерации. при загрузке данных и тестировании системы – экспериментальные данные и результаты моделирования.
Экспериментальные данные и результаты моделирования выводятся в виде множества точек в двумерном пространстве. При этом по оси абцисс откладывается порядковый номер строчки данных в выборке (обучающей, тестирующей или контрольной), а по оси ординат - значение выходной переменной для данной строчки выборки. Используются следующие маркеры: голубая точка (.) – теструющая выборка; голубая окружность (o) – обучающая выборка; голубой плюс (+) – контрольная выборка; красная звездочка (*) – результаты моделирования. Область свойств ANFIS: В области свойств ANFIS (ANFIS info) выводится информация о количестве входных и выходных переменных, о количестве функций принадлежностей для каждой входной переменной, а также о количестве строчек в выборках. В этой области расположены две кнопки Structure и Clear Plot. Нажатие кнопки Structure открыет новое графическое окно, в котором система нечеткого логического вывода представляет в виде нейро-нечеткой сети. В качестве иллюстрации на рис. 2.4 приведна нейро-нечеткая сеть, содержащая четыре входных переменных и одну выходную. В этой системе по три лингвистических терма используеться для оценки каждой из входных переменных и четыре терма для выходной. Нажатие кнопки Clear Plot позволяет очистить область визуализации.
Рисунок 2.4. Пример структуры нейро-нечеткой сети Область загрузки данных: В области загрузки данных (Load data) расположены:
меню выбора типа данных (Type), содержащее альтернативы: o o o o
меню выбора источника данных (From), содержащее альтернативы: o o
Traning - обучающая выборка; Testing - тестирующая выборка; Checking - контрольная выборка; Demo - демонстрационный пример;
disk – диск; worksp. - рабочая область MatLab;
кнопка загрузки данных Load Data…, по нажатию которой появляется диалоговое окно выбора файла, если загрузка данных происходит с диска, или окно ввода идентификатора выборки, если загрузка данных происходит из рабочей области; кнопка очистки данных Clear Data.
Примечание. В течении одной сеанса работы ANFIS-редактора можно загружать данные одного формата, т.е. количество входных переменных в выборках должно быть одинаковым. Область генерирования исходной системы нечеткого логического вывода: В области генерирования (Generate FIS) расположены меню выбора способа создания исходной системы нечеткого логического вывода. Меню содержит следующие альтернативы:
Load from disk – загрузка системы с диска; Load from worksp. – загрузка системы из рабочей области MatLab; Grid partition - генерирование системы по методу решетки (без кластеризации); Sub. clustering – генерирование системы по методу субкластеризации.
В области также расположена кнопка Generate, по нажатию которой генерируется исходная система нечеткого логического вывода.
При выборе Load from disk появляется стандартное диалоговое окно открытия файла. При выборе Load from worksp. появляется стандартное диалоговое окно ввода идентификатора системы нечеткого логического вывода. При выборе Grid partition появляется окно ввода параметров метода решетки (рис. 2.5), в котором нужно указать количество термов для каждой входной переменной и тип функций принадлежности для входных и выходной переменных.
Рисунок 2.5. Окно ввода параметров для метода решетки При выборе Sub. clustering появляется окно ввода следующих параметров метода субкластеризации (рис. 2.6): Range of influence – уровни влияния входных переменных; Squash factor – коэффициент подавления; Accept ratio – коэффициент, установливающий во сколько раз потенциал данной точки должен быть выше потенциала центра первого кластера для того, чтобы центром одного из кластеров была назначена рассматриваемая точка; Reject ratio –коэффициент, установливающий во сколько раз потенциал данной точки должен быть ниже потенциала центра первого кластера, чтобы рассматриваемая точка была исключена из возможных центров кластеров.
Рисунок 2.6. Окно ввода параметров для метода субкластеризации Область обучения: В области обучения (Train FIS) расположены меню выбора метода оптимизации (Optim. method), поле задания требуемой точности обучения (Error tolerance), поле задания количества итераций обучения (Epochs) и кнопка Train Now, нажатие которой запускает режим обучение. Промежуточные результаты обучения выводятся в область визуализации и в рабочую област MatLab. В ANFISредакторе реализованы два метода обучения:
backpropa – метод обратного распространения ошибки, основанный на идеях метода наискорейшего спуска; hybrid – гибридный метод, объединяющий метод обратного распространения ошибки с методом наименьших квадратов.
Область тестирования: В области тестирования (Test FIS) расположены меню выбора выборки и кнопка Test Now, по нажатию по которой происходит тестирование нечеткой системы с выводом результатов в область визуализации. Область вывода текущей информации: В этой области выводится наиболее существенная текущая информация, например, сообщения об окончании выполнении операций, значение ошибки обучения или тестирования и т.п. 3. Задание для выполнения лабораторной работы Зная динамику изменения курсовой стоимости продажи некоторой валюты за фиксированный интервал времени, предсказать значение ее курсовой стоимости на определенный момент времени в будущем. При этом характерной особенностью динамики изменения курса является наличие двух основных тенденций в колебаниях соответствующих цен. с одной стороны, наблюдается общее долгосрочное повышение курсовой стоимости, связанное с величиной инфляции. С другой стороны, наблюдается краткосрочное колебание цен , связанное с целым рядом случайных факторов, адекватное представление которых в той или инонй информационной модели вряд ли возможно. традиционно для решения данной задачи применяются различные модели технического анализа, основанные на использовании различных индикаторов. В то же время наличие неявных тенденций в динамике изменения курсовой стоимости валют позволяют позволяет применить модель адаптивных нейро-нечетких сетей. В качестве исходных данных используем информацию о динамике курса ЦБ РФ по валютам за некоторый временной интервал по адресу: www. finmarket.ru. Для
конкретности возьмем значения курсовой стоимости USD за период 40 дней 2011 года и для удобства представим ее в табличной форме. Таблица 1: Курсы ЦБ РФ по валюте "Доллар США" за период с 21.08.2011 по 21.10.2011 : 21.10.2011
31.3788
+0.4531
20.10.2011
30.9257
-0.0437
19.10.2011
30.9694
+0.2324
18.10.2011
30.7370
-0.2535
15.10.2011
30.9905
-0.2109
14.10.2011
31.2014
-0.2137
13.10.2011
31.4151
-0.0119
12.10.2011
31.4270
-0.5826
11.10.2011
32.0096
-0.1909
08.10.2011
32.2005
-0.3080
07.10.2011
32.5085
-0.1289
06.10.2011
32.6374
-0.0425
05.10.2011
32.6799
+0.0909
04.10.2011
32.5890
+0.4790
01.10.2011
32.1100
+0.2349
30.09.2011
31.8751
+0.0571
29.09.2011
31.8180
-0.4021
28.09.2011
32.2201
-0.2418
27.09.2011
32.4619
+0.3536
24.09.2011
32.1083
+0.1977
23.09.2011
31.9106
+0.4984
22.09.2011
31.4122
-0.0838
21.09.2011
31.4960
+0.6280
20.09.2011
30.8680
+0.3352
17.09.2011
30.5328
+0.0286
16.09.2011
30.5042
+0.1399
15.09.2011
30.3643
+0.1771
14.09.2011
30.1872
-0.1162
13.09.2011
30.3034
+0.6130
10.09.2011
29.6904
+0.1889
09.09.2011
29.5015
+0.0110
08.09.2011
29.4905
-0.1202
07.09.2011
29.6107
+0.2671
06.09.2011
29.3436
+0.2832
03.09.2011
29.0604
+0.1693
02.09.2011
28.8911
-0.0367
01.09.2011
28.9278
+0.0709
31.08.2011
28.8569
+0.1461
30.08.2011
28.7108
-0.1609
27.08.2011
28.8717
-0.0108
26.08.2011
28.8825
-0.0212
25.08.2011
28.9037
-0.0510
24.08.2011
28.9547
-0.3008
23.08.2011
29.2555
-0.0154
20.08.2011
29.2709
Предположим, что нечеткая модель гибридной сети будет содержать 4 входных переменных. При этом 1-ая входная переменная будет соответствовать курсу USD на текущий банковский день; 2-ая –курсу на предыдущий банковский день, т.е. на день (i-1), где i- текущий банковский день. 3-я входная переменная соответствует курсу на (i-2) банковский день, а 4-я входная переменная соответствует курсу на (i-3) банковский день. Соответствующие обучающие данные сведены в Таблицу 2. Объем, полученной таким образом, обучающей выборки равен 40. Обучающую выборку необходимо сохранить во внешнем файле с расширением *.dat. 4. Порядок выполнения работы Разработка нечеткой модели гибридной сети для решения задачи прогнозирования валютных цен на финансовом рынке: 1. Загрузить файл с обучающими данными (в соответствии с вариантом Таблицы 3). 2.
Сгенерировать структуру системы нечеткого вывода типа Сугено.
3.
Настроить параметры обучения гибридной сети и выполнить обучение.
4.
Визуально оценить структуру построенной нечеткой модели.
5.
Выполнить проверку адекватности построенной нечеткой модели гибридной сети с помощью функции командной строки evalfis.
6.
Оформить отчет.
Таблица 2. Обучающие данные 31.4270
31.4151
31.2014
30.9905
30.7370
32.0096
31.4270
31.4151
31.2014
30.9905
32.2005
32.0096
31.4270
31.4151
31.2014
32.5085
32.2005
32.0096
31.4270
31.4151
32.6374
32.5085
32.2005
32.0096
31.4270
32.6799
32.6374
32.5085
32.2005
32.0096
32.5890
32.6799
32.6374
32.5085
32.2005
32.1100
32.5890
32.6799
32.6374
32.5085
31.8751
32.1100
32.5890
32.6799
32.6374
31.8180
31.8751
32.1100
32.5890
32.6799
32.2201
31.8180
31.8751
32.1100
32.5890
32.4619
32.2201
31.8180
31.8751
32.1100
32.1083
32.4619
32.2201
31.8180
31.8751
31.9106
32.1083
32.4619
32.2201
31.8180
31.4122
31.9106
32.1083
32.4619
32.2201
31.4960
31.4122
31.9106
32.1083
32.4619
30.8680
31.4960
31.4122
31.9106
32.1083
30.5328
30.8680
31.4960
31.4122
31.9106
30.5042
30.5328
30.8680
31.4960
31.4122
30.3643
30.5042
30.5328
30.8680
31.4960
30.1872
30.3643
30.5042
30.5328
30.8680
30.3034
30.1872
30.3643
30.5042
30.5328
29.6904
30.3034
30.1872
30.3643
30.5042
29.5015
29.6904
30.3034
30.1872
30.3643
29.4905
29.5015
29.6904
30.3034
30.1872
29.6107
29.4905
29.5015
29.6904
30.3034
29.3436
29.6107
29.4905
29.5015
29.6904
29.0604
29.3436
29.6107
29.4905
29.5015
28.8911
29.0604
29.3436
29.6107
29.4905
28.9278
28.8911
29.0604
29.3436
29.6107
28.8569
28.9278
28.8911
29.0604
29.3436
28.7108
28.8569
28.9278
28.8911
29.0604
Таблица 3. Тип валюты 1) Австралийский доллар 2)
Азербайджанский манат
3)
Армянский драм
4)
Белорусский рубль
5)
Бразильский реал
6)
Вона Республики Корея
7)
Датская крона
8)
Доллар США
9)
ЕВРО
10) Индийская рупия 11) Казахстанский тенге 12) Канадский доллар 13) Киргизский сом 14) Китайский юань Жэньминьби 15) Молдавский лей 16) Сингапурский доллар 17) Таджикский сомони 18) Турецкая лира 19) Узбекский сум 20) Украинская гривна 21) Фунт стерлингов 22) Швейцарский франк 23) Южноафриканский рэнд 24) Японская йена
Список источников: 1. С.Д.Штовба "Введение в теорию нечетких множеств и нечеткую логику" // режим доступа: http://matlab.exponenta.ru/fuzzylogic/book1/4_5.php 2. Леоненков, А.В. Нечеткое моделирование в среде MATLAB и fuzzyTECH. – СПб.: БХВ – Петербург, 2003. – 736с.