Нейросетевые технологии в обработке и защите данных

advertisement
Нейросетевые технологии в
обработке и защите данных
Защита информации иммунными
нейронными сетями
Лекция 13. Структура и обучение гибридных
сетей.
1
Структура и обучение гибридных
сетей
Системы нечеткого вывода позволяют решать
задачи автоматического управления, классификации
данных, распознавания образов, принятия решений,
защиты данных и многие другие.
Построение базы нечетких лингвистических
правил, фаззификацию входных переменных,
использование алгоритмов Мамдани и Сугено для
нечеткого вывода проанализируем на конкретном
примере в пакете Fuzzy Logic Toolbox системы
MATLAB.
2
Характеристика пакета
Fuzzy Logic Toolbox
Пакет Fuzzy Logic Toolbox (пакет нечеткой
логики) системы MATLAB – это совокупность
прикладных программ, реализующих операции над
нечеткими множествами и позволяющих
конструировать так называемые нечеткие
экспертные и / или управляющие системы.
В пакете Fuzzy Logic Toolbox системы MATLAB
гибридные нейронные сети реализованы в форме
адаптивных систем нейро-нечеткого вывода ANFIS.
3
ANFIS – адаптивная система нечеткого
вывода (Adaptive-Network-Based Fuzzy
Inference System) реализована в пакете
расширения Fuzzy Logic Toolbox (пакете
нечеткой логики) системы MATLAB .
ANFIS является одним из первых
вариантов средств создания гибридных
нейро-нечетких сетей. В пакете Fuzzy Logic
Toolbox реализованы две системы
нечеткого вывода Mamdani – типа Мамдани
– Заде, задаваемая по умолчанию, и Sugeno
– типа Такаги – Сугено – Канга.
4
Характеристика пакета
Fuzzy Logic Toolbox
Разработка и исследование гибридных сетей
оказываются возможными двояко :
• в интерактивном режиме с помощью специального
графического редактора адаптивных сетей ANFIS,
позволяющего создавать и загружать конкретную модель
адаптивной системы нейро-нечеткого вывода, выполнять
ее обучение, визуализировать ее структуру, изменять и
настраивать ее параметры, а также использовать
настроенную сеть для получения результатов нечеткого
вывода;
• в режиме командной строки с помощью ввода имен
соответствующих функций с необходимыми аргументами
непосредственно в окно команд системы MATLAB.
5
Адаптивная система нечеткого
вывода ANFIS
Редактор ANFIS позволяет создавать или
загружать конкретную модель адаптивной
системы нейро-нечеткого вывода, выполнять
ее обучение, визуализировать ее структуру,
изменять и настраивать ее параметры, а
также использовать настроенную сеть для
получения результатов нечеткого вывода.
Графический интерфейс редактора
ANFIS вызывается функций anfisedit из
командной строки.
6
Адаптивная система нечеткого
вывода ANFIS
Создание и обучение нечеткой нейронной
сети, как отмечалось ранее, можно производить не
только с помощью графического интерфейса
ANFIS. Существует пригодный для использования
в командной строке MATLAB набор функций, с
помощью которых можно загружать данные,
создавать и редактировать нечеткие правила,
задавать функции принадлежности, производить
обучение, представлять графически полученные
результаты.
7
Адаптивная система нечеткого
вывода ANFIS
Главное меню редактора ANFIS
предназначено для работы с предварительно
созданной системой нечеткого вывода.
Основную часть графического интерфейса
занимает окно визуализации данных, которое
расположено ниже главного меню. Для вновь
создаваемой гибридной сети это окно не
содержит никаких данных. Для создания
сети необходимо загрузить данные либо из
файла, либо из рабочей области (Workspace).
8
Адаптивная система нечеткого
вывода ANFIS
Исходные данные представляет собой
обычную числовую матрицу размерности
m×( n+1), в которой количество строк m
соответствует объему выборки, первые n
столбцов – значениям входных переменных
модели, а последний столбец – значению
выходной переменной.
Отдельные значения матрицы отделяются
пробелами, а каждая строка завершается
нажатием клавиши “Enter”.
9
Адаптивная система нечеткого
вывода ANFIS
После загрузки обучающих данных их
структура отображается в рабочем окне
редактора ANFIS. При этом каждой строке
данных соответствует отдельная точка
графика, которая для обучающих данных
отображается кружком. На горизонтальной
оси указываются порядковые номера
отдельных строк данных, а вертикальная
ось служит для указания значений
выходной переменной.
10
Адаптивная система нечеткого
вывода ANFIS
После подготовки и загрузки
обучающих данных можно сгенерировать
структуру системы нечеткого вывода FIS
типа Сугено, которая является моделью
гибридной сети в системе MATLAB. Для
этого следует воспользоваться кнопкой
Generate FIS в нижней части рабочего окна
редактора, после чего вызывается рабочее
окно с указанием числа и типа функций
принадлежности для отдельных термов
входных и выходной переменных.
11
Адаптивная система нечеткого
вывода ANFIS
После генерации структуры гибридной
сети можно визуализировать ее структуру,
нажав кнопку Structure в правой части
графического окна. Перед обучением
необходимо задать параметры обучения,
используя группу опций в правой нижней
части рабочего окна (выбрать метод
обучения, установить уровень ошибки,
задать количество циклов обучения).
12
Редактор ANFIS
Для обучения сети необходимо нажать кнопку
Train Now. Ход процесса обучения
иллюстрируется в окне визуализации в форме
графика зависимости ошибки от количества
циклов обучения. На верхнем графике окна
отображается зависимость ошибки проверки от
количества циклов обучения, а на нижнем –
зависимость ошибки обучения от количества
циклов обучения.
Созданную систему нечеткого вывода
сохраняют в файле с расширением fis, после чего
файл можно загрузить в редактор систем
нечеткого вывода для настройки ее параметров. 13
Редактор ANFIS
В редакторе системы нечеткого вывода
становятся доступными:
1) редактор функций принадлежности
(Membership Function Editor);
2) Редактор правил системы нечеткого вывода
(Rule Editor);
3) Программа просмотра правил нечеткого
вывода (Rule Viewer);
4) Программа просмотра поверхности системы
нечеткого вывода (Surface Viewer )
14
Пример решения задачи нейро нечеткого вывода
Величина суммы чаевых согласно традиции
в США не является постоянной и зависит,
например, от качества обслуживания и качества
приготовления заказанных блюд.
Необходимо разработать некоторую
экспертную систему, позволяющую определять
величину чаевых на основе субъективных
оценок посетителей ресторана качества
обслуживания и качества приготовления блюд.
15
Пример решения задачи нейронечеткого вывода
Проведем анализ работы систем нечеткого
вывода Мамдани и Сугено на примере задачи о
чаевых (tipper, tippersg) с помощью графических
средств Fuzzy Logic Toolbox, используя команды
соответственно fuzzy tipper и fuzzy tippersg в
командной строке системы MATLAB.
Для задачи о чаевых в системе нечеткой логики
выбрано две входные переменные и одна выходная
соответственно: service - обслуживание,
food - еда, tip - чаевые.
16
Пример решения
задачи нейро - нечеткого вывода
Эмпирические знания о рассматриваемой предметной
области могут быть представлены в форме следующих правил
продукций:
1. Если обслуживание плохое или еда подгоревшая, то чаевые –
малые;
2. Если обслуживание хорошее, то чаевые – средние;
3. Если обслуживание отличное или еда превосходная, то чаевые
– щедрые. В программе tipper правила заданы так:
1. If (service is poor) or (food is rancid) then (tip is cheap)
2. If (service is good) then (tip is average)
3. If (service is excellent ) or (food is delicious) then (tip is
generous)
17
Пример решения
задачи нейро - нечеткого вывода
В качестве входных переменных выбраны две
лингвистические переменные «качество
обслуживания» и «качество приготовления
заказанных блюд», а в качестве выходного
параметра - нечеткая лингвистическая переменная
«величина чаевых». В качестве терм-множеств :
T1={‘poor’, ‘good’, excellent}
T2={‘rancid’, ‘delicious’}
T3={‘cheap’, ‘average’, ‘generous’}
18
Пример решения
задачи нейро - нечеткого вывода
Каждый из термов первой и второй входной
переменной оценивается по десятибалльной
порядковой шкале, при которой цифре 0
соответствует наихудшая оценка, а цифре 10 –
наилучшая оценка.
Для термов выходной переменной принято,
что малые чаевые составляют около 5% от
стоимости заказанных блюд, средние чаевые –
около 15%, а щедрые чаевые – около 25%.
19
Пример решения
задачи нейро - нечеткого вывода
Процесс разработки системы нечеткого вывода
в интерактивном режиме включает ряд
последовательных действий.
1. Вызвать редактор систем нечеткого вывода FIS,
для чего в окне команд набрать имя
соответствующей функции fuzzy (fuzzy tipper ).
После выполнения этой команды на экране
появляется графический интерфейс редактора FIS
с именем системы нечеткого вывода и типом
системы нечеткого вывода (Мамдани, по
умолчанию).
20
Вид диаграммы системы нечеткого
вывода в редакторе FIS
21
Пример решения
задачи нейро - нечеткого вывода
2. Определить все переменные, выполнив команду:
Edit>Add Variable…>Input.
3. Задать имена входных и выходных переменных.
Для этого необходимо выделить прямоугольник с
именем соответствующей переменной, кликнув
на его изображении на диаграмме (стороны
выделенного прямоугольника отмечаются красным
цветом). В поле ввода Name в правой части
редактора FIS указывается необходимое имя
переменной.
22
Графический интерфейс редактора
функций принадлежности
23
Пример решения
задачи нейро - нечеткого вывода
4. Создаваемая структура системы нечеткого вывода с
выбранным именем сохраняется во внешнем файле или в
рабочей области Workspace .
File>Export>To Disk…
File>Export> Workspace …
5. Для того, чтобы определить термы и функции
принадлежности , необходимо вызвать редактор функций
принадлежности , что можно сделать одним из трех
способов:
• Двойным щелчком на значке прямоугольника;
• Командой Edit>Membership Functions…
• Нажатием клавиш <Ctrl>+<2>
24
Графический интерфейс программы
просмотра правил нечеткого вывода
25
Пример решения
задачи нейро - нечеткого вывода
6. Редактор правил нечеткого вывода для
разрабатываемой экспертной системы вызывается
одним из способов:
• Двойным щелчком на значке квадрата в центре с
именем создаваемой системы нечеткого вывода;
• Командой меню Edit>Rules…;
• Нажатием клавиш <Ctrl>+<3>.
Для изменения операции можно использовать
переключатель Connection и нажать на кнопку
Add Rules.
26
Пример решения
задачи нейро - нечеткого вывода
В поле ввода Weight отображается вес
каждого правила, меняющегося в пределах
интервала [0, 1] и который по умолчанию
задан единичным. Этот вес правил
записывается в круглых скобках в окне правил
нечеткого вывода после каждого из них.
В редакторе функций принадлежности
имеется возможность в интерактивном режиме
вносить различные изменения в создаваемой
системе нечеткого вывода.
27
•
•
•
•
7. Программа просмотра правил, позволяющая
получить значение выходной переменной
нечеткого вывода, вызывается одним из способов:
Командой меню View>Rules редактора FIS;
Командой меню View>Rules редактора функций
принадлежности;
Командой меню View>Rules редактора правил;
Нажатием клавиш <Ctrl>+<5>.
Для процесса нечеткого моделирования
необходимо провести анализ результатов
нечеткого вывода при различных значениях
входных переменных.
28
•
•
•
•
•
Для окончательного анализа
разработанной нечеткой модели используется
программа просмотра поверхности нечеткого
вывода, которая вызывается одним из способов:
Командой меню View>Surface редактора FIS;
Командой меню View>Surface редактора
функций принадлежности;
Командой меню View>Surface редактора правил;
Командой меню View>Surface программы
просмотра правил;
Нажатием клавиш <Ctrl>+<6>.
29
Графический интерфейс программы
просмотра поверхности
30
В случае необходимости можно получить
график зависимости выходной переменной от
одной из входных переменных.
Для этого выбирается нужная переменная в
раскрывающемся списке X , а в раскрывающемся
списке Z выбрать значение “none”.
Получаемый график, соответствующий
среднему значению 5 второй входной
переменной, представлен далее. В поле
Ref.Input можно ввести нужное значение второй
входной переменной вместо выбранного ранее
значения 5. Значение NaN для второй входной
переменной соответствует ее изменению во всем
интервале определения [0, 10].
31
График зависимости выходной
переменной от второй переменной
32
Процесс разработки системы
нечеткого вывода в режиме команд
может дополнить или заменить
процесс разработки системы в
интерактивном режиме, предоставляя
пользователю полный контроль над
всеми переменными рабочей области
системы MATLAB.
33
Download