Настройка системы нечеткого вывода Sugeno-типа с помощью обучающих данных
генерирует одну систему нечеткого вывода Sugeno (FIS) и настраивает системные параметры, используя указанные обучающие данные ввода/вывода. Объект FIS автоматически генерируется с помощью разделения сетки.fis
= anfis(trainingData
)
Для моделирования набора обучающих данных алгоритмов настройки использует комбинацию методов градиентного спуска методом наименьших квадратов и обратного распространения.
настраивает FIS с помощью заданных обучающих данных и опций. Используя этот синтаксис, можно задать:fis
= anfis(trainingData
,options
)
Начальный объект FIS для настройки.
Данные валидации для предотвращения сверхподбора кривой к обучающим данным.
Опции алгоритма настройки.
Отображать ли информацию о процессе обучения.
[
возвращает среднеквадратическую ошибку обучения для каждой эпохи обучения.fis
,trainError
]
= anfis(___)
[
возвращает размер шага обучения в каждую эпоху обучения.fis
,trainError
,stepSize
]
= anfis(___)
[
возвращает ошибку данных валидации для каждой эпохи обучения, fis
,trainError
,stepSize
,chkFIS
,chkError
]
= anfis(trainingData
,options
)chkError
, и настроенный объект FIS, для которого ошибка валидации минимальна, chkFIS
. Чтобы использовать этот синтаксис, необходимо задать данные валидации с помощью options.ValidationData
.
tunefis
ФункцияНачиная с R2019a, можно настроить нечеткую систему, используя tunefis
. Эта функция предоставляет несколько других опций для настройки алгоритмов, заданных tunefisOptions
объект.
Чтобы использовать ANFIS, задайте алгоритм настройки следующим "anfis"
в tunefisOptions
. Затем используйте объект опций в качестве входного параметра для tunefis
. Для примера:
Создайте начальную систему нечеткого вывода и задайте настройки настраиваемого параметра.
x = (0:0.1:10)';
y = sin(2*x)./exp(x/5);
options = genfisOptions('GridPartition');
options.NumMembershipFunctions = 5;
fisin = genfis(x,y,options);
[in,out,rule] = getTunableSettings(fisin);
Настройте параметры функции принадлежности с помощью "anfis"
.
opt = tunefisOptions("Method","anfis"); fisout = tunefis(fisin,[in;out],x,y,opt);
[1] Джанг, Ж.-С. R., «Нечеткое моделирование с использованием обобщенных нейронных сетей и алгоритма фильтра Калмана», Proc. девятого Национального Конфедерации по искусственному интеллекту (AAAI-91). 1991 июля, с. 762-767.
[2] Джанг, Ж.-С. R., «ANFIS: Adaptive-Network Based Fuzzy Inference Systems», Транзакции IEEE по системам, человеку и кибернетике, том 23, № 3, май 1993, стр. 665-685.