exponenta event banner

Нейро-адаптивное обучение и ANFIS

Предположим, что необходимо применить нечеткий вывод к системе, для которой уже имеется набор входных/выходных данных, которые необходимо использовать для моделирования, последующего моделирования или какого-либо аналогичного сценария. Кроме того, предположим, что не обязательно иметь заданную структуру модели на основе признаков переменных в системе. В некоторых ситуациях моделирования различение параметров функций членства путем просмотра данных может быть трудным или невозможным. В этих случаях вместо произвольного выбора параметров, связанных с данной функцией членства, можно настроить параметры функции членства на входные/выходные данные. С помощью программного обеспечения Fuzzy Logic Toolbox™ можно настраивать системы нечеткого вывода Sugeno, используя нейро-адаптивные методы обучения, аналогичные тем, которые используются для обучения нейронных сетей.

Программное обеспечение Fuzzy Logic Toolbox предоставляет функцию командной строки (anfis) и интерактивное приложение (Neuro-Fuzzy Designer) для обучения адаптивной системе нейро-нечеткого вывода (ANFIS).

Структура FIS

С помощью методов обучения ANFIS можно обучать системы Sugeno следующим свойствам:

  • Одиночный выход

  • Средневзвешенная дефузификация

  • система первого или нулевого порядка; то есть все выходные функции членства должны быть одного типа, либо 'linear' или 'constant'.

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

  • Вес единицы для каждого правила.

  • Нет пользовательских функций членства или методов дефуззификации.

Для создания такой нечеткой системы в рабочей области MATLAB ® можно:

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

  • Используйте приложение Fuzzy Logic Designer и экспортируйте FIS в рабочую область MATLAB.

  • Используйте sugfis функция.

  • Загрузка системы из файла с помощью readfis функция.

При обучении системы с помощью anfis , укажите начальную структуру, создав anfisOptions набор опций и установка InitialFIS собственность. Если это свойство не указано, anfis функция выполняет деривацию структуры FIS с использованием секционирования сетки.

При использовании Neuro-Fuzzy Designer в разделе Генерация FIS можно создать FIS следующим образом:

  • Загрузка из файла (выберите «Загрузить из файла»)

  • Загрузка из рабочего пространства MATLAB (выберите Загрузить из worksp)

  • Использование секционирования сетки (выберите «Секционирование сетки»)

  • Использование вычитаемой кластеризации (выберите Sub. кластеризация)

Данные обучения

Чтобы обучить нечеткую систему с помощью нейро-адаптивных методов, необходимо собрать входные/выходные обучающие данные с помощью экспериментов или моделирования системы, которую требуется смоделировать. В целом обучение АНФИС хорошо работает, если данные обучения полностью отражают особенности данных, которые предназначен моделировать обученный ИФС.

Чтобы указать данные обучения, можно:

  • Создайте массив в рабочей области MATLAB. Каждая строка содержит точку данных, а последний столбец содержит выходное значение, а остальные столбцы содержат входные значения. Затем можно передать эти данные в trainingData входной аргумент anfis или загрузите его в приложение Neuro-Fuzzy Designer.

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

При использовании anfis создать или загрузить входные данные и передать их в trainingData входной аргумент.

При использовании Neuro-Fuzzy Designer в разделе Load data выберите Training, а затем:

  • Чтобы загрузить данные из файла, выберите файл.

  • Для загрузки данных из рабочего пространства MATLAB выберите worksp.

Варианты обучения

Оба anfis и Neuro-Fuzzy Designer позволяют настроить метод оптимизации, количество периодов обучения и цель ошибки обучения. Однако anfis предоставляет дополнительные возможности обучения для управления размером шага обучения.

ВыборanfisOptions СобственностьНейро-нечеткий дизайнер настройки
Метод оптимизацииOptimizationMethodВ разделе FIS поезда укажите Optim. Метод.
Количество периодов обученияEpochNumberВ разделе FIS поезда укажите Эпохи.
Цель ошибки обученияErrorGoalВ разделе Train FIS укажите Допуск ошибок.
Начальный размер шагаInitialStepSizeНедоступно
Коэффициент уменьшения размера шагаStepSizeDecreaseRate
Коэффициент увеличения размера шагаStepSizeIncreaseRate

Метод оптимизации

Для обучения нечеткой системы с помощью ANFIS программное обеспечение Fuzzy Logic Toolbox использует алгоритм обратного распространения либо отдельно, либо в сочетании с алгоритмом наименьших квадратов. Этот процесс обучения настраивает параметры функции членства FIS таким образом, что система моделирует входные/выходные данные.

В следующей таблице показаны два метода, которые оба anfis и Neuro-Fuzzy Designer используют для обновления параметров функции членства.

Метод оптимизацииanfisOptions НастройкаНейро-нечеткий дизайнер настройки
Обратное распространение для всех параметров (метод самого крутого спуска)OprimizationMethod = 'backpropagation'В разделе FIS поезда, в разделе Optim. Метод, выберите backpropa.
Гибридный метод, состоящий из обратного распространения для параметров, связанных с входными функциями членства, и оценки наименьших квадратов для параметров, связанных с выходными функциями членстваOprimizationMethod = 'hybrid'В разделе FIS поезда, в разделе Optim. Метод, выберите 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) выберите Проверка (Check).

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

Результаты обучения

При обучении нечеткой системы с помощью 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 (Загрузка данных) выберите Test (Тестирование) и щелкните Load Data (Загрузка данных). Для анализа обученной системы для любого загруженного набора данных в разделе Test FIS выберите набор данных и нажмите Test Now.

Различия в алгоритмах обучения

Приложение Neuro-Fuzzy Designer управляет эпохами обучения способом, отличным от anfis функция. Это различие приводит к различиям в результатах обучения.

Для обучения системы N эпохам в командной строке необходимо вызвать anfis функция один раз, указывая количество эпох как N. Однако приложение Neuro-Fuzzy Designer вызывает anfis функция N раз, указывающая количество эпох как 2 каждый раз.

Пример командной строки, демонстрирующий алгоритм обучения Neuro-Fuzzy Designer, см. в разделе Сохранение данных об ошибках обучения в рабочей области MATLAB.

Ссылки

[1] Чан, Ж.-С. р., «Нечеткое моделирование с использованием обобщенных нейронных сетей и алгоритма фильтра Калмана», Proc. девятого Национального совещания по искусственному интеллекту (AAAI-91), стр. 762-767, июль 1991.

[2] Чан, Ж.-С. R., «ANFIS: адаптивные сетевые системы нечеткого вывода», IEEE Transactions on Systems, Man, and Cybernetics, Vol. 23, No. 3, pp. 665-685, May 1993.

[3] Чан, J.-S.R. и N.Gulley. «Разработка нечеткого контроллера на основе планирования». В NAFIPS/IFIS/NASA "94. Материалы первой Международной совместной конференции Североамериканского общества нечеткой обработки информации, проводившейся раз в два года. Конференция по промышленному нечеткому управлению и интеллектуальным системам и Совместная технологическая конференция НАСА Wo, 101-5. Сан-Антонио, Техас, США: IEEE, 1994.

[4] Чан, Ж.-С.Р. и Чуэнь-Цай Сунь. «Нейро-нечеткое моделирование и управление». Материалы IEEE 83, № 3 (март 1995 года): 378-406.

[5] Чан, Джих-Шин Роджер, Чуэн-Цай Сунь и Эйдзи Мидзутани. Нейро-нечеткие и мягкие вычисления: вычислительный подход к обучению и машинному интеллекту. Серия учебных планов MATLAB. Река Верхнее Седло, Нью-Джерси: Прентис Холл, 1997.

[6] Ван, Ли-Синь. Адаптивные нечеткие системы и управление: анализ конструкции и стабильности. Энглвуд Клиффс, Нью-Джерси: ПТР Прентис Холл, 1994.

[7] Widrow, B. and D. Stearns, адаптивная обработка сигналов, Prentice Hall, 1985.

См. также

Приложения

Функции

Связанные темы