Предположим, что вы хотите применить нечеткий вывод к системе, для которой у вас уже есть набор данных о вводе/выводе, которые требуется использовать для моделирования, следования модели или некоторого подобного сценария. Кроме того, примите, что у вас не обязательно есть предопределенная структура модели на основе характеристик переменных в вашей системе. В некоторых ситуациях с моделированием проницательные параметры функций принадлежности путем рассмотрения данных могут затруднить или быть невозможными. В этих случаях, вместо того, чтобы выбрать параметры сопоставил с данной функцией принадлежности произвольно, можно адаптировать параметры функции принадлежности в соответствии с данными о вводе/выводе. Используя программное обеспечение Fuzzy Logic Toolbox™, можно настроить Sugeno нечеткие системы вывода с помощью нейроадаптивных методов изучения, похожих на используемых для того, чтобы обучить нейронные сети.
Программное обеспечение Fuzzy Logic Toolbox обеспечивает функцию командной строки (anfis
) и интерактивное приложение (Neuro-Fuzzy Designer) для обучения адаптивная нейронечеткая система вывода (ANFIS).
Используя методы обучения ANFIS, можно обучить системы Sugeno со следующими свойствами:
Один выход
Средневзвешенная дефаззификация
Первая или нулевая система порядка; то есть, все выходные функции принадлежности должны быть тем же типом, любым 'linear'
или 'constant'
.
Никакое совместное использование правила. Различные правила не могут использовать ту же выходную функцию принадлежности; то есть, количество выходных функций принадлежности должно равняться количеству правил.
Вес единицы для каждого правила.
Никакие пользовательские функции принадлежности или методы дефаззификации.
Чтобы создать такую нечеткую систему в рабочей области MATLAB®, вы можете:
Используйте genfis
функция. При использовании этого метода можно создать систему с помощью или разделения сетки или отнимающей кластеризации. Разделение сетки может произвести большое количество правил, когда количество входных параметров достигает четыре или пять. Чтобы сократить количество правил, рассмотрите использование отнимающего метода кластеризации.
Используйте приложение Fuzzy Logic Designer и экспортируйте FIS в рабочее пространство MATLAB.
Используйте sugfis
функция.
Загрузите систему из файла с помощью readfis
функция.
Когда обучение ваша система с помощью anfis
функционируйте, задайте начальную структуру путем создания anfisOptions
набор опции и установка InitialFIS
свойство. Если вы не задаете это свойство, anfis
функция выводит структуру FIS с помощью разделения сетки.
При использовании Neuro-Fuzzy Designer, в разделе Generate FIS, можно создать FIS:
Загрузка из файла (выбирают Load from file),
Загрузка от рабочего пространства MATLAB (выбирают Load from worksp),
Используя разделение сетки (выбирают Grid partition),
Используя отнимающую кластеризацию (выбирают Sub. clustering),
Чтобы обучить нечеткую систему с помощью нейрометодов адаптации, необходимо собрать обучающие данные ввода/вывода с помощью экспериментов или симуляций системы, которую вы хотите смоделировать. В общем случае обучение ANFIS работает хорошо, если обучающие данные являются полностью представительными для функций данных, что обученный FIS предназначается к модели.
Чтобы задать ваши обучающие данные, вы можете:
Создайте массив в рабочем пространстве MATLAB. Каждая строка содержит точку данных с последним столбцом, содержащим выходное значение и остальные столбцы, содержащие входные значения. Можно затем передать эти данные trainingData
входной параметр anfis
функция или загрузка это в приложение Neuro-Fuzzy Designer.
Загрузите данные из .dat
файл. Каждая линия файла содержит точку данных со значениями, разделенными пробелом. Окончательным значением на каждой линии является выход, и остающиеся значения являются входными параметрами.
При использовании anfis
функционируйте, создайте или загрузите входные данные и передайте его trainingData
входной параметр.
При использовании Neuro-Fuzzy Designer, в разделе Load data, выбирают Training, и затем:
Чтобы загрузить данные из файла, выберите file.
Чтобы загрузить данные из рабочего пространства MATLAB, выберите worksp.
Оба anfis
и Neuro-Fuzzy Designer позволяет вам настраивать метод оптимизации, количество циклов обучения и учебную ошибочную цель. Однако anfis
обеспечивает дополнительные опции обучения, чтобы управлять учебным размером шага.
Опция | anfisOptions Свойство | Установка Neuro-Fuzzy Designer |
---|---|---|
Метод оптимизации | OptimizationMethod | В разделе Train FIS задайте Optim. Method. |
Количество циклов обучения | EpochNumber | В разделе Train FIS задайте Epochs. |
Учебная ошибочная цель | ErrorGoal | В разделе Train FIS задайте Error Tolerance. |
Начальный размер шага | InitialStepSize | Не доступный |
Уровень уменьшения неродного размера | StepSizeDecreaseRate | |
Уровень увеличения неродного размера | StepSizeIncreaseRate |
Чтобы обучить нечеткую систему с помощью ANFIS, программное обеспечение Fuzzy Logic Toolbox использует алгоритм обратного распространения или один или в сочетании с алгоритмом наименьших квадратов. Этот учебный процесс настраивает параметры функции принадлежности FIS, таким образом что системные модели ваши данные о вводе/выводе.
Следующая таблица показывает два метода это оба anfis
и Neuro-Fuzzy Designer использует для обновления параметров функции принадлежности.
Метод оптимизации | anfisOptions Установка | Установка Neuro-Fuzzy Designer |
---|---|---|
Обратная связь для всех параметров (метод быстрейшего спуска) | OprimizationMethod = 'backpropagation' | В разделе Train FIS, под Optim. Method, выбирают backpropa . |
Гибридный метод, состоящий из обратной связи для параметров, сопоставленных с входными функциями принадлежности и оценкой методом наименьших квадратов для параметров, сопоставлен с выходными функциями принадлежности | OprimizationMethod = 'hybrid' | В разделе Train FIS, под Optim. Method, выбирают hybrid . |
Когда обучение с помощью anfis
функция, можно настроить учебные опции размера шага. Во время обучения, обновлений программного обеспечения неродной размер согласно следующим правилам:
Если ошибка подвергается четырем последовательным сокращениям, увеличьте размер шага путем умножения ее на константу (StepSizeIncreaseRate
) больше, чем один.
Если ошибка подвергается двум последовательным комбинациям одного увеличения и одного сокращения, уменьшите размер шага путем умножения его на константу (StepSizeDecreaseRate
) меньше чем один.
Идеально, увеличения размера шага в начале обучения, достигает максимума, и затем уменьшается для остатка от обучения. Чтобы достигнуть этого профиля размера шага, настройте начальный размер шага (InitialStepSize
), уровень увеличения неродного размера и неродной размер уменьшают уровень.
Когда обучение с помощью anfis
функция, можно задать что информацию о процессе обучения отобразиться в командном окне MATLAB. Используя anfisOptions
набор опции, можно установить следующие параметры отображения.
DisplayANFISInformation
— Отобразите информацию ANFIS в начале обучения
DisplayErrorValues
— Отобразите учебную ошибку в каждую эпоху
DisplayStepSize
— Отобразите неродной размер каждый раз, когда он изменяется.
DisplayFinalResults
— Отобразите итоговую учебную ошибку и ошибку валидации
Neuro-Fuzzy Designer не обеспечивает заданные пользователями параметры отображения. Вместо этого это отображает прогресс обучения как график.
Данные о валидации позволяют вам проверять возможность обобщения своей обученной нечеткой системы вывода. Данные о валидации должны полностью представлять функции данных, FIS предназначается к модели, также будучи достаточно отличающимся от обучающих данных, чтобы протестировать учебное обобщение. Программное обеспечение использует этот набор данных, чтобы перекрестный подтвердить нечеткую модель вывода путем применения данных о валидации к модели и наблюдения, как хорошо модель отвечает на эти данные.
Проверка допустимости модели полезна в следующих ситуациях:
Зашумленные данные — В некоторых случаях, данные собраны с помощью шумных измерений, и обучающие данные не могут представлять все функции данных, FIS предназначается к модели.
При сверхподборе кривой — Поскольку структура модели, используемая для ANFIS, фиксируется с большим количеством параметров, существует тенденция для модели, чтобы сверхсоответствовать данным, на которых это обучено, особенно при использовании большого количества учебных эпох. Если сверхподбор кривой действительно происходит, обученный FIS не может сделать вывод хорошо к другим независимым наборам данных.
Идея позади использования набора данных проверки для проверки допустимости модели состоит в том, что после определенного момента в учебном процессе модель начинает сверхсоответствовать обучающему набору данных. В принципе ошибка модели для набора данных проверки уменьшается до такой степени, что сверхподбор кривой начинается. После этой точки, ошибки модели для увеличений данных о проверке. Сверхподбор кривой составляется путем тестирования обученного FIS против данных о проверке и выбора параметров функции принадлежности, чтобы быть сопоставленными с минимальной ошибкой проверки, если эти ошибки указывают на сверхподбор кривой модели.
Обычно, обучение и проверяющий наборы данных собрано на основе наблюдений за целевой системой и затем хранится в отдельных файлах. Задавать данные о валидации при использовании:
anfis
функционируйте, создайте anfisOptions
объект и набор ValidationData
опция.
Neuro-Fuzzy Designer, в разделе Load data, выбирает Checking.
Массив и форматы файлов для данных о проверке совпадают с теми для обучающих данных.
Когда вы обучаете свою нечеткую систему с помощью anfis
функция, можно получить следующие обученные нечеткие системы:
fis
выходным аргументом является нечеткая система, для которой учебная ошибка минимальна. Эта система всегда возвращается anfis
функция, и соответствует FIS, возвращенному Neuro-Fuzzy Designer, когда вы не задаете данные о проверке.
chkFIS
выходным аргументом является нечеткая система, для которой ошибка валидации минимальна. Эта система возвращена только, когда вы задаете использование данных о валидации anfisOptions
, и соответствует FIS, возвращенному Neuro-Fuzzy Designer, когда вы задаете данные о проверке. Этот объект FIS является тем, который необходимо использовать для дальнейшего вычисления при проверке, что данные используются для перекрестной проверки.
Можно получить ошибку, сопоставленную с каждой из обученных нечетких систем. В каждом случае возвращенная ошибка является среднеквадратической ошибкой (RMSE) и возвращена как вектор. Каждым элементом вектора является ошибочное значение RMSE в каждую учебную эпоху.
Учебная ошибка — Различие между выходным значением обучающих данных и выходом нечеткой системы вывода для соответствующих входных значений обучающих данных.
Ошибка валидации — Различие между значением вывода данных проверки и выходом нечеткой системы вывода для соответствующих значений ввода данных проверки. Эта ошибка возвращена только, когда вы задаете использование данных о валидации anfisOptions
.
Во время обучения приложение Neuro-Fuzzy Designer строит ошибку обучения и проверки в течение каждой учебной эпохи. Экспорт обучения и проверка ошибки из приложения не поддерживаются. Чтобы получить учебную ошибку, необходимо переобучить систему от командной строки. Для примера смотрите, Сохраняют Учебные Ошибочные Данные к рабочему пространству MATLAB.
Чтобы далее протестировать вашу обученную нечеткую систему, можно использовать дополнительный набор тестирования данных, которые вы не использовали для обучения или валидации. Сделать так:
Когда обучение система в командной строке, используйте evalfis
функция.
При использовании Neuro-Fuzzy Designer, в разделе Load data, выбирают Testing и нажимают Load Data. Чтобы оценить обученную систему для любого загруженного набора данных, в разделе Test FIS, выбирают набор данных и нажимают Test Now.
Приложение Neuro-Fuzzy Designer управляет учебными эпохами способом, отличающимся от anfis
функция. Это различие производит изменения учебных результатов.
Чтобы обучить систему в течение эпох N в командной строке, вы вызываете anfis
функционируйте одно время, задавая номер эпох как N. Однако приложение Neuro-Fuzzy Designer вызывает anfis
функционируйте времена N, задавая номер эпох как 2
каждый раз.
Для примера командной строки, который демонстрирует алгоритм настройки Neuro-Fuzzy Designer, смотрите, Сохраняют Учебные Ошибочные Данные к рабочему пространству MATLAB.
[1] Jang, J.-S. R. "Нечеткое Моделирование Используя Обобщенные Нейронные сети и Алгоритм Фильтра Калмана", Proc. Девятой Национальной Конференции по Искусственному интеллекту (AAAI-91), стр 762-767, июль 1991.
[2] Jang, J.-S. R. "ANFIS: "Адаптивная Сеть основывала" Нечеткие Системы Вывода", Транзакции IEEE в Системах, Человеке, и Кибернетике, Издании 23, № 3, стр 665-685, май 1993.
[3] Jang, J.-S.R., и N. Дренажный колодец. ‘Табличное управление Основанное Нечеткое Проектирование контроллера’. В NAFIPS/IFIS/NASA ’94. Продолжения Первой Международной Объединенной Конференции североамериканского Нечеткого Общества Обработки информации Проходящая два раза в год Конференция. Промышленное Нечеткое Управление и Интеллектуальная Системная Конференция и Технология Соединения НАСА Во, 101–5. Сан-Антонио, TX, США: IEEE, 1994.
[4] Jang, Дж.-С.Р. и Куан-Тсай Sun. ‘Нейронечеткое Моделирование и Управление’. Продолжения IEEE 83, № 3 (март 1995): 378–406.
[5] Jang, Джих-Шинг Роджер, Куан-Тсай Sun и Eiji Mizutani. Нейронечеткое и мягкое вычисление: вычислительный подход к изучению и искусственному интеллекту. Ряд программы MATLAB. Верхний Сэддл-Ривер, NJ: Prentice Hall, 1997.
[6] Ван, литий-Xin. Адаптивные нечеткие системы и управление: проект и анализ устойчивости. Englewood Cliffs, NJ: PTR Prentice Hall, 1994.
[7] Widrow, B. и Д. Стернз, адаптивная обработка сигналов, Prentice Hall, 1985.