Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Экспертные системы (техника и технология проектирования). Методические указания к лабораторным работам

.pdf
Скачиваний:
0
Добавлен:
15.08.2026
Размер:
1 Мб
Скачать

На графике отображено положение вентиля на десятитысячном шаге.

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

Соотношение положение вентиля (горизонтально) и температуры (вертикально).

31

Фрагмент графика изменения давления в течении времени.

График положения вентиля относительно давления.

Система работает стабильно, придерживаясь, в основном, средней температуры и среднего давления.

4.4 Задача 4 – Модель управления углом поворота вентиля

4.4.1 Задание правил в нормализованной форме

В системе CubiCalc возможно задание правил не в альтернативной форме, а в нормализованной. В данном случае указывать селектор SYNTAX_ALTERNATE в блоке правил не нужно.

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

(Вес правила) IF Условие THEN заключение

В условии перечисляются перечень условий вида Лингвистическая переменная Is значение, объединенные связками И (AND), ИЛИ (OR), НЕ (NOT). Вместо AND может использоваться знак &, вместо OR знак |, вместо NOT знак !.

Вес правила определяет степень его универсальности (достоверности).

К значениям переменных в условиях могут применяться модификаторы ОЧЕНЬ (VERY) и

немного (SOMEWHAT).

Пример правила – (0.7) IF X is Large AND (Y is Small OR U is Negative) THEN Z is Large

Его естественно-языковая интерпретация выглядит следующим образом: «С достоверностью 0.7, если X является большим и (Y малое или U отрицательное), то Z является большим». Где X, Y,U – лингвистические переменные, а большое, маленькое, отрицательное – их значения.

4.4.2 Условие задачи Входами технической системы является информация с трех датчиков – яркость света (1-

1000 Лк), температура воды (0-60), давление (100-1000 МПа).

Назначение системы – управление углом поворота вентиля

[-90; 90] согласно сле-

дующему набору правил.

 

1)(Вес 1) ЕСЛИ освещенность малая И температура малая И давление малое ТО повернуть вентиль сильно влево.

32

2)(Вес 0.8) ЕСЛИ освещенность малая И температура малая И давление среднее ТО повернуть вентиль сильно влево.

3)(Вес 0.6) ЕСЛИ освещенность малая И температура малая И давление большое ТО повернуть вентиль достаточно влево.

4)(Вес 1) ЕСЛИ освещенность малая И температура средняя И давление малое ТО повернуть вентиль сильно влево.

5)(Вес 0.3) ЕСЛИ освещенность малая И температура средняя И давление среднее ТО повернуть вентиль в нейтральное положение.

6)(Вес 0.9) ЕСЛИ освещенность малая И температура средняя И давление большое ТО повернуть вентиль достаточно вправо.

7)(Вес 0.8) ЕСЛИ освещенность малая И температура большая И давление малое ТО повернуть вентиль достаточно вправо.

8)(Вес 1) ЕСЛИ освещенность малая И температура большая И давление среднее ТО повернуть вентиль сильно вправо.

9)(Вес 1) ЕСЛИ освещенность малая И температура немного (SOMEWHAT) большая И давление немного (SOMEWHAT) большое ТО повернуть вентиль сильно вправо.

10)(Вес 1) ЕСЛИ освещенность большая И (Температура очень (VERY) малая ИЛИ давление ОЧЕНЬ (VERY) малое) ТО повернуть вентиль сильно влево.

11)(Вес 0.6) ЕСЛИ освещенность большая И температура средняя И давление среднее ТО повернуть вентиль в нейтральное положение.

12)(Вес 0.8) ЕСЛИ температура большая И давление большое ТО повернуть вентиль достаточно вправо.

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

1)Яркость со значениями: малая, большая.

2)Температура со значениями: малая, средняя, большая.

3)Давление со значениями: малое, среднее, высокое.

И одну выходную лингвистическую переменную – угол поворота вентиля с базовым терммножеством значений:

­сильно влево;

­достаточно влево;

­нейтральное положение;

­достаточно вправо;

­сильно вправо.

Остальные значения лингвистических переменных образуются от элементов базового терм-множества с помощью модификаторов ОЧЕНЬ (VERY), НЕМНОГО (SOMEWHAT), НЕ

(NOT)

Модель изменения яркости, температуры и давления (simulation) после выполнения каждого цикла имеет следующий вид:

Температура = температура– угол поворота вентиля/4 + uniform()*10-uniform()*10 + Давление/200 + Яркость/200.

Давление = давление – угол поворота вентиля/4 + uniform()*10-uniform()*10 + Температу-

ра/10.

33

В 5 случаях из 100 после выполнения каждого цикла температура поднимается вверх на 5 градусов. В 5 случаях из 100 после выполнения каждого цикла давление поднимается на 5 МПа.

Яркость = Яркость + uniform () – uniform (); ЕСЛИ Яркость > 999 ТО Яркость = 999; ЕСЛИ Яркость < 1 ТО Яркость = 1;

где uniform () – случайное число от 0 до 1.

или

Перед первым запуском, проинициализировать данные переменные следующим образом: Температура = 50, Давление = 600, Яркость = 500.

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

Ответ:

Графики, отображающие работу системы:

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

34

Лабораторная работа № 2 – Моделирование экспертных систем на основе нейронных сетей в нейропакетах BrainMaker и NeuroPro

1 Цель работы

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

тах BrainMaker и NeuroPro.

2 Использование нейропакетов BrainMaker и NeuroPro

2.1 Социальное прогнозирование итогов президентских выборов с использованием нейропакета NeuroPro 0.25

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

Внейропакете NeuroPro 0.25 имеется возможность целенаправленного упрощения нейронной сети для последующей генерации словесного описания.

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

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

­ сокращение числа нейронов сети путем удаления нейронов, наименее значимых для принятия сетью решения;

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

­ сокращение числа связей в нейронной сети путем удаления связей, наименее значимых для принятия сетью решения;

­ бинаризация связей в нейронной сети – приведение весов синапсов к значениям 1 и 1 или значениям из более широкого набора выделенных значений.

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

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

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

Какая партия победит на очередных выборах в США – правящая или оппозиционная? На первый взгляд, кажется, что это зависит от личностей кандидатов и от их программ.

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

Результаты выборов можно предсказать на основании ответов на 12 вопросов: 1) Правящая партия была у власти более одного срока?

2) Правящая партия получила больше 50% на прошлых выборах? 3) В год выборов была активна третья партия?

4) Была серьезная конкуренция при выдвижении от правящей партии? 5) Кандидат от правящей партии был президентом в год выборов?

6) Год выборов был временем спада или депрессии?

7) Рост среднего национального валового продукта на душу населения больше 2,1%?

35

8)Правящий президент произвел существенные изменения в политике?

9)Во время правления были существенные социальные волнения?

10)Администрация правящей партии виновна в серьезной ошибке или скандале?

11)Кандидат правящей партии – национальный герой?

12)Кандидат оппозиционной партии – национальный герой?

Нейропакету NeuroPro для обучения предоставляется информация об итогах выборов в США за 100 лет. Для всех выборов известны ответы на 12 вопросов и то, какая партия и когда победила. После обучения нейронная сеть дает свой вариант для дополнительного набора ответов, т.е. предсказывает результаты выборов.

Данные для нейропакета представлены в виде таблицы Excel, где в качестве полей представлены 12 вопросов, описанные выше, а в качестве записей – ответы на все эти вопросы по всем годам проведения выборов, начиная с 1860 и заканчивая 1980 (файл Election.db). Ниже представлено описание аббревиатур всех полей:

­MORE1 – правящая партия была у власти более одного срока;

­MORE5 – правящая партия получила больше 50% голосов избирателей на прошлых выборах;

­THIRD – в год выборов была активна третья партия;

­CONC – была серьезная конкуренция при выдвижении от правящей партии;

­PREZ – кандидат от правящей партии был президентом в год выборов;

­DEPR – год выборов был временем спада или депрессии;

­VAL2_1 – рост среднего национального валового продукта на душу населения больше

2,1%;

­CHANG – правящий президент произвел существенные изменения в политике;

­WAVE – во время правления были существенные социальные волнения;

­MIST – администрация правящей партии виновна в серьезной ошибке или скандале;

­R_HERO – кандидат правящей партии – национальный герой;

­O_HERO – кандидат оппозиционной партии – национальный герой.

Ответы на вопросы представлены в виде 0 и 1. Единица означает утвердительный ответ на вопрос, ноль – отрицательный.

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

Работа с нейронными сетями возможна только в рамках некоторого нейропроекта. Для того чтобы создать нейропроект, необходимо выбрать пункт меню “Файл/Создать” или нажать кнопку “Создатьв панели кнопок, при этом появляется окно следующего вида (рисунок 6).

Рисунок 6 – Вид окна после выбора “Файл/Создать”

36

После создания нейропроекта в него можно вставлять нейронные сети с помощью кнопки «Открыть файл данных» и работать с ними. Созданный нейропроект может также быть сохранен при помощи команды меню «Файл/Сохранить», «Файл/Сохранить как» или нажатием на кнопку «Сохранить» на панели инструментов.

В дальнейшем возможна работа с сохраненными файлами нейропроекта. Для этого необходимо выбрать пункт меню «Файл-Открыть» или нажать кнопку «Открыть» и выбрать в открывшемся диалоговом окне имя желаемого проекта.

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

Для подключения файла данных или его замены необходимо нажать кнопку «Открыть файл данных» в окне нейропроекта и далее выбрать имя необходимого файла данных (файл Election.db). Открытый файл отображается в собственном окне, где предоставляется возможность его редактирования. При подключенном файле данных можно проводить операции создания новых сетей, их обучения, тестирования и упрощения.

Для создания новой нейронной сети необходимо нажать кнопку «Новая сеть» в окне нейропроекта и заполнить окно для создания неронной сети (рисунок 7).

Рисунок 7 – Окно для создания нейронной сети

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

число входных полей: 12;

число входов сети: 12;

число выходных полей: 1;

число выходов сети: 1;

слой 1: 10 нейронов;

слой 2: 10 нейронов;

слой 3: 10 нейронов.

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

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

37

необходимости самостоятельно завершить обучение нажатием кнопки «Завершить» (рисунок

8).

Рисунок 8 – Отображение процесса обучения сети

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

Имея нейронную сеть, можно посмотреть, насколько точно она прогнозирует значения выходных полей в файле данных. Для тестирования нейронной сети выбираем пункт меню «Нейросеть/Тестирование». Результат тестирования сети выводится в «Окно тестирования сети» (рисунок 9).

Рисунок 9 – Результат тестирования сети

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

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

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

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

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

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

38

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

Для упрощения нейронной сети имеются следующие операции в меню «Нейросеть»: Сокращение числа входных сигналов – удаление наименее значимых входных сигналов

(рисунок 10).

Рисунок 10 – Изменение параметров сети при ее упрощении

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

Упрощение нейронной сети можно производить по различным параметрам.

­сокращение числа нейронов – удаление наименее значимых нейронов сети;

­сокращение числа синапсов – удаление наименее значимых синапсов сети;

­сокращение числа неоднородных входов – удаление наименее значимых неоднородных входов нейронов сети;

­равномерное упрощение сети – сокращение числа приходящих на нейроны сети сигналов до количества, задаваемого пользователем;

­бинаризация синапсов сети – приведение значений весов синапсов и неоднородных

входов нейронов к выделенным значениям.

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

1)Была серьезная конкуренция при выдвижении от правящей партии?

2)Во время правления были существенные социальные волнения?

3)Год выборов был временем спада или депрессии?

4)Правящий президент произвел значительные изменения в политике?

5)В год выборов была активна третья партия?

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

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

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

39

Таблица 2 – Зависимость количества шагов обучения от количества слоев нейронной сети

Нейронов Слоев Кол-во шагов обучения

2.2Прогнозирование на финансовых рынках с использованием нейропакета

BrainMaker

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

BrainMaker – популярный нейросетевой пакет, разработанный компанией California Scietific Software. Пакет состоит из нескольких модулей, среди которых основными являются сам BrainMaker, а также модуль предварительной подготовки и анализа данных NetMaker.

Рассмотрим пример создания нейросети для финансового прогнозирования, разобрав последовательность и технику использования средств пакета BrainMaker 3.1.

1)Первый шаг при разработке нейросети определить, что она должна делать. Этот вопрос важнее, чем кажется на первый взгляд. Предположим, нейросеть предсказывает наступление какого-либо события с погрешностью 20%. Сегодня акции стоят 95$, а завтра будут стоить 100$. Что может быть спрогнозировано с большей точностью – абсолютная цена акций, изменение цены или направление движения рынка? В первом случае прогноз будет в пределах 80–120$. При прогнозе изменения цены результат будет находиться в интервале 4–6$, что соответствует абсолютной цене 99-101$. А предугадать направление движения рынка можно безошибочно. Таким образом, результат зависит уже от того, как сформулирована цель разработки нейросети.

В примере нейросеть разворачивается с целью прогнозирования изменения цен на акции некоторой компании Bart-Davis-100 (BD100).

2)Затем необходимо определить состав исходных данных (второй шаг) и собрать их (третий шаг). Для наглядности применения аналитических средств будем использовать специально подобранные данные. Файл для воспроизведения примера – PRICE1.DAT находится в папке пакета BrainMaker. Для практического использования, естественно, нужно строить нейросеть на реальных, а не на абстрактных данных.

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

1).

Таблица 1 – Исходные данные

day

BD100

price1

price2

index1D

index2D

1

2877

38.77

46.77

14.68

-5.4

2

2789

39.07

46.88

20.69

-3.55

3

2622

39.47

47.11

23.66

0.15

Продолжение таблицы 1

day

line

streng

utilD

transpD

1

114.37

97.62

26.22

3.23

2

126.19

91.92

26.84

2.6

3

140.34

99.76

28.64

2.92

Каждой строке соответствуют данные одного дня. В столбцах, обозначенных: day, BD100, price1, price2, index1D, index2D, line, streng, utilD, transpD, содержатся данные одного типа.

Первый столбец (day) – порядковый номер дня, выполняет информативные функции. Столбец BD100 содержит значения BD100, которые одновременно являются как входны-

ми данными, так и результатом работы нейросети – прогнозом. Поэтому позже придется до-

40

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]