В этом разделе мы смотрим на пример, который загружает подобное обучение и проверяющий наборы данных. Набор данных проверки повреждается шумом.
Чтобы работать оба из следующих примеров, вы загружаете обучающие наборы данных (fuzex1trnData
и fuzex2trnData
) и наборы данных проверки (fuzex1chkData
и fuzex2chkData
) в Neuro-Fuzzy Designer из рабочей области. Можно также заменить собственными наборами данных.
Загружать наборы данных из рабочей области в Neuro-Fuzzy Designer:
Введите следующие команды в командной строке MATLAB®, чтобы загрузить наборы данных в рабочее пространство MATLAB:
load fuzex1trnData.dat load fuzex2trnData.dat load fuzex1chkData.dat load fuzex2chkData.dat
Откройте Neuro-Fuzzy Designer путем ввода neuroFuzzyDesigner
в командной строке MATLAB.
Загружать обучающий набор данных из рабочей области:
Во фрагменте Load data разработчика выберите следующие опции:
Type: Training
From: worksp
Нажмите Load Data, чтобы открыть Загрузку из диалогового окна рабочей области.
Введите fuzex1trnData
как показано в следующей фигуре и нажмите ОК.
Обучающий набор данных используется, чтобы обучить нечеткую систему путем корректировки параметров функции принадлежности, что лучшая модель эти данные, и появляется в графике в центре приложения как набор кругов.
Горизонтальная ось является отмеченным индексом набора данных. Этот индекс указывает на строку, из которой то значение входных данных было получено (является ли вход вектором или скаляром).
Загружать набор данных проверки из рабочей области:
В разделе Load data выберите Checking в столбце Type.
Нажмите Load Data, чтобы открыть Загрузку из диалогового окна рабочей области.
Введите fuzex1chkData
как имя переменной и нажмите OK.
Данные о проверке появляются в графике как плюсы, наложенные на данные тренировки.
Следующий шаг должен задать начальную нечеткую систему вывода для anfis
, чтобы обучаться.
Можно или инициализировать параметры FIS к собственной настройке, или если у вас нет настройки тому, как вы хотите, чтобы начальные функции принадлежности были параметризованы, можно позволить anfis
инициализировать параметры для вас, как описано в следующих разделах:
Инициализировать ваш FIS использование anfis
:
Выберите раздел Grid, метод разделения значения по умолчанию. Два метода раздела, разделение сетки и отнимающая кластеризация, описаны в genfis
.
Нажмите Generate FIS. Нажатие на эту кнопку отображает меню, из которого можно выбрать количество функций принадлежности, MFS и типа функций принадлежности ввода и вывода. Существует только два варианта для выходной функции принадлежности: constant
и linear
. Это ограничение выходного выбора функции принадлежности - то, потому что anfis
только работает с Sugeno-системами-типов.
Заполните записи как показано в следующей фигуре и нажмите ОК.
Можно также реализовать эту генерацию FIS из командной строки с помощью genfis
.
Можно выбрать собственные предпочтительные функции принадлежности с определенными параметрами, которые будут использоваться anfis
в качестве начального FIS для обучения.
Задавать вашу собственную структуру FIS и параметры:
Откройте пункт меню Функций принадлежности из меню Edit.
Добавьте свои желаемые функции принадлежности (пользовательская опция членства будет отключена для anfis
). Выходные функции принадлежности должны или быть всей константой или всеми линейными. Для выполнения этого и следующего шага, смотрите Fuzzy Logic Designer и Редактор Функции принадлежности.
Выберите пункт меню Rules в меню Edit и используйте Редактор Правила, чтобы сгенерировать правила (см. Редактор Правила).
Выберите пункт меню FIS Properties из меню Edit. Назовите свой FIS и сохраните его или в рабочую область или в файл.
Нажмите кнопку Close, чтобы возвратиться к Neuro-Fuzzy Designer, чтобы обучить FIS.
Чтобы загрузить существующий FIS для инициализации ANFIS, в Том, чтобы генерировать фрагмент FIS разработчика, нажимают Load от worksp или Загрузку из файла. Вы загружаете свой FIS из файла, если бы вы имеете сохраненный FIS ранее, что требуется использовать. В противном случае вы загружаете свой FIS из рабочей области.
После того, как вы сгенерируете FIS, можно просмотреть образцовую структуру путем нажатия кнопки Structure посреди правой стороны редактора. Новый редактор появляется, можно следующим образом.
Ответвления в этом графике являются закодированным цветом. Расцветка ответвлений характеризует правила и указывает, используются ли и, не, или или в правилах. Вход представлен крайним левым узлом и выводом самым правым узлом. Узел представляет коэффициент нормализации для правил. Нажатие на узлы указывает на информацию о структуре.
Можно просмотреть функции принадлежности или правила путем открытия или Редактора Функции принадлежности или Редактора Правила из меню Edit.
Двумя опциями метода оптимизации параметров управления anfis
, доступными для обучения FIS, является hybrid
(значение по умолчанию, смешанные наименьшие квадраты и обратная связь) и backpropa
(обратная связь). Ошибочный Допуск используется, чтобы создать критерий остановки обучения, который связан с ошибочным размером. Обучение остановится после того, как ошибка данных тренировки остается в этом допуске. Это лучше всего оставляют установленным в 0, если вы не уверены, как ваша учебная ошибка может вести себя.
Если вы хотите сохранить учебные ошибочные данные, сгенерированные во время обучения ANFIS к рабочему пространству MATLAB, необходимо обучить FIS в командной строке. Для примера Сохраните Учебные Ошибочные Данные к рабочему пространству MATLAB.
Запустить обучение:
Оставьте метод оптимизации в hybrid
.
Определите номер учебных Эпох к 40 (значение по умолчанию равняется 3).
Выберите Train Now.
Следующее окно появляется на вашем экране.
График показывает ошибку проверки как ♦ ♦ на верхней части. Учебная ошибка появляется как * * на нижней части. Ошибочные уменьшения проверки до определенного момента в обучении, и затем это увеличивается. Это увеличение представляет точку образцового сверхподбора кривой. anfis
выбирает параметры модели, сопоставленные с минимальной ошибкой проверки (только до этой точки скачка). Этот пример показывает, почему опция данных о проверке anfis
полезна.
Чтобы протестировать ваш FIS против данных о проверке, выберите данные о Checking в Тесте фрагмент FIS Neuro-Fuzzy Designer и нажмите Test Now. Когда вы тестируете данные о проверке против FIS, это выглядит удовлетворительным.
anfis
Если вы загружаете данные в anfis
после очистки ранее загруженных данных, необходимо убедиться, что недавно загруженные наборы данных имеют то же количество входных параметров, как ранее загруженные единицы сделали. В противном случае необходимо запустить новый сеанс Neuro-Fuzzy Designer с командной строки.
Если вы не хотите использовать опцию данных о проверке anfis
, то не загружайте данные о проверке, прежде чем вы обучите FIS. Если вы решаете переобучить свой FIS без проверки данных, можно разгрузить данные о проверке одним из двух способов:
Установите переключатель Checking во фрагменте данных о Загрузке Neuro-Fuzzy Designer, и затем нажмите Clear Data, чтобы разгрузить данные о проверке.
Закройте Neuro-Fuzzy Designer, и перейдите к командной строке MATLAB и перепечатайте neuroFuzzyDesigner
. В этом случае необходимо перезагрузить данные тренировки.
После очистки данных необходимо регенерировать FIS. После того, как FIS сгенерирован, можно использовать первый учебный опыт выбрать номер учебных эпох, которые вы хотите для второго раунда обучения.
Этот пример исследует то, что происходит, когда обучение и проверяющий наборы данных достаточно отличается. Чтобы видеть, как Neuro-Fuzzy Designer может использоваться, чтобы узнать что-то о наборах данных и как они отличаются:
Очистите Neuro-Fuzzy Designer:
Очистите и данные об обучении и проверке.
(дополнительное) Нажатие кнопки кнопка Clear Plot справа.
Загрузите fuzex2trnData
и fuzex2chkData
(соответственно, данные тренировки и данные о проверке) от рабочего пространства MATLAB, как вы сделали в предыдущем примере.
Необходимо видеть график, подобный тому в следующей фигуре. Данные тренировки появляются как круги, наложенные с данными о проверке, появляясь как плюсы.
Обучите FIS этой системе точно, как вы сделали в предыдущем примере, кроме теперь выбирают 60
Epochs перед обучением. Необходимо получить следующий график, показав ошибку проверки как ♦ ♦ на верхней части и учебной ошибке как * * на нижней части.
В этом случае ошибка проверки является довольно большой. Кажется, что минимальная ошибка проверки происходит в течение первой эпохи. Используя опцию данных о проверке с anfis
автоматически устанавливает параметры FIS, чтобы быть сопоставленными с минимальной ошибкой проверки. Очевидно этот набор функций принадлежности не является лучшим выбором для моделирования данных тренировки.
Этот пример иллюстрирует, что проблема обсудила ранее, где набор данных проверки, представленный anfis
для обучения, достаточно отличался от обучающего набора данных. В результате обученный FIS не получал функции этого набора данных очень хорошо. Важно знать функции вашего набора данных хорошо, когда вы выбираете свои данные об обучении и проверке. Когда вы не знаете функции своих данных, можно анализировать диаграммы погрешностей проверки, чтобы видеть, выполнили ли данные о проверке достаточно хорошо с обученной моделью.
В этом примере ошибка проверки является достаточно большой, чтобы указать, что или необходимо выбрать больше данных для обучения или изменить выбор функции принадлежности (и количество функций принадлежности и тип). В противном случае система может быть переобучена без данных о проверке, если вы думаете, что данные тренировки достаточно получают функции, которые вы пытаетесь представлять.
Чтобы завершить этот пример, протестируйте обученную модель FIS против данных о проверке. Для этого выберите данные о Checking в Тесте фрагмент FIS приложения и нажмите Test Now. Следующий график в приложении показывает, что существует настоящее несоответствие между выводом данных проверки и FIS вывод.