idFeedforwardNetwork

Многоуровневая функция отображения нейронной сети прямого распространения для нелинейных моделей ARX (требует Deep Learning Toolbox),

Описание

idFeedforwardNetwork возразите реализует функцию нейронной сети и нелинейный объект отображения для оценки нелинейных моделей ARX. Этот объект отображения позволяет вам использовать network Объекты (Deep Learning Toolbox), которые создаются с помощью Deep Learning Toolbox™ в нелинейных моделях ARX.

Математически, idFeedforwardNetwork функция, которая сопоставляет входные параметры m X (t) = [x (t 1), x 2 (t), …, xm (t)]T к скалярному выходу y (t), с помощью многоуровневого feedforward (статическая) нейронная сеть, как задано в Deep Learning Toolbox.

Вы создаете многоуровневые нейронные сети прямого распространения при помощи команд такой как feedforwardnet (Deep Learning Toolbox), cascadeforwardnet (Deep Learning Toolbox) и linearlayer (Deep Learning Toolbox). Когда вы создаете сеть,

  • Определяйте размеры ввода и вывода быть неизвестными путем оставления их в значении, равном нулю (рекомендуемыми метод). При оценке нелинейной модели ARX с помощью nlarx команда, программное обеспечение автоматически определяет размеры ввода и вывода сети.

  • Инициализируйте размеры вручную путем установки областей значений ввода и вывода на m-by-2 и 1 2 матрицы, соответственно, где m является количеством нелинейных регрессоров модели ARX, и значения области значений являются минимальными и максимальными значениями регрессоров и выходных данных, соответственно.

Смотрите Примеры для получения дополнительной информации.

Используйте evaluate(net_estimator,x) вычислить значение функции, определяемой idFeedforwardNetwork объект net_estimator во входном значении x. Когда используется для нелинейной оценки модели ARX, x представляет регрессоры модели для выхода для который idFeedforwardNetwork объект присвоен как средство оценки нелинейности.

Вы не можете использовать idFeedforwardNetwork когда Focus опция в nlarxOptions 'simulation' потому что базовый network объект считается недифференцируемым для оценки. Минимизация ошибки симуляции требует дифференцируемых нелинейных функций.

Используйте idFeedforwardNetwork как значение OutputFcn свойство idnlarx модель. Например, задайте idFeedforwardNetwork когда вы оцениваете idnlarx модель со следующей командой.

sys = nlarx(data,regressors,idFeedforwardNetwork)
Когда nlarx оценивает модель, она по существу оценивает параметры idFeedforwardNetwork функция.

Создание

Описание

пример

net_estimator = idFeedforwardNetwork(Network) создает объект отображения нейронной сети прямого распространения, который основан на feedforward (статический) сетевой объект Network это было создано с помощью одной из команд нейронной сети feedforwardnet, cascadeforwardnet, или linearlayer. Network должен представлять статическое отображение между входными параметрами и выход без задержек ввода-вывода или обратной связи. Номер выходных параметров сети, если присвоено, должен быть определен одной. Для нескольких - выводит нелинейные модели ARX, создают отдельное idFeedforwardNetwork объект для каждого выхода — то есть, каждый элемент выходной функции должен представлять сетевой объект одно выхода.

Свойства

развернуть все

Объект нейронной сети прямого распространения, обычно созданное использование feedforwardnet (Deep Learning Toolbox), cascadeforwardnet (Deep Learning Toolbox) или linearlayer (Deep Learning Toolbox).

Информация о входном сигнале для сигналов использовала для оценки в виде векторов из m специфичные для свойства значения, где m является количеством входных сигналов. Input свойства для каждого входного сигнала следующие:

  • Name — Имена входных сигналов в виде 1 строкой m или символьным массивом, где m является количеством входных параметров

  • Mean — Среднее значение входных сигналов в виде числового скаляра

  • Range — Области значений входных сигналов в виде 2 m числовым массивом, который содержит минимальные и максимальные значения

Опция, чтобы обучить нейронную сеть в виде true или false. Установите Free ко лжи, когда нейронная сеть вы используете, был уже обучен и, как известно, обеспечивает результаты хорошей подгонки. Free свойство особенно полезно, когда ваша idnlarx модель имеет несколько выходных параметров что каждое использование нейронная сеть. Установка Free к false для хорошо обучил нейронные сети, позволяет времени вычислений фокусироваться на сетях, которым действительно нужно обучение.

Информация о выходном сигнале в виде специфичных для свойства значений. Output свойства следующие:

  • Name — Имя выходного сигнала в виде строки или символьного массива

  • Mean — Среднее значение выходного сигнала в виде числового скаляра

  • Range — Область значений выходного сигнала в виде 2 1 числового массива, который содержит минимальные и максимальные значения

Примеры

свернуть все

Создайте объект отображения нейронной сети, который использует нейронную сеть прямого распространения с тремя скрытыми слоями, передаточными функциями типов logsig, radbas, и purelin, и неизвестные размеры ввода и вывода.

Создайте нейронную сеть.

net = feedforwardnet([4 6 1]);
net.layers{1}.transferFcn = 'logsig';
net.layers{2}.transferFcn = 'radbas';
net.layers{3}.transferFcn = 'purelin';

Просмотрите сетевой график.

view(net)

Создайте объект отображения нейронной сети.

net_estimator = idFeedforwardNetwork(net);

Создайте одноуровневую, прямую каскадом сеть с неизвестными размерами ввода и вывода и используйте эту сеть для нелинейной оценки модели ARX.

Создайте прямую каскадом нейронную сеть с 20 нейронами и неизвестными размерами ввода/вывода.

net = cascadeforwardnet(20);

Создайте объект отображения нейронной сети прямого распространения.

net_estimator = idFeedforwardNetwork(net);

Загрузите данные об оценке.

load twotankdata
data = iddata(y,u,0.2);

Оцените нелинейную модель ARX sys.

sys = nlarx(data,[2 2 1],net_estimator);

Сравните ответ модели на измеренный выходной сигнал.

compare(data,sys)

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent data (y1), sys: 91.72%.

График показывает хорошее соглашение между измеренным сигналом и симулированным выходным сигналом модели.

Инициализируйте размеры ввода - вывода 2D слоя нейронная сеть прямого распространения на основе данных об оценке и используйте эту сеть для нелинейной оценки ARX.

Загрузите данные об оценке.

load iddata7 z7
z7 = z7(1:200);

Создайте шаблон нелинейная модель ARX без нелинейности.

model = idnlarx([4 4 4 1 1],[]);

Эта модель имеет шесть регрессоров и используется, чтобы задать регрессоры. Область значений значений регрессора для данных ввода - вывода в z7 затем используется, чтобы установить входные диапазоны в объекте нейронной сети, как показано на следующих шагах.

Получите значения регрессора модели.

R = getreg(model,'all',z7);
R = R.Variables;

Создайте 2D слой, нейронную сеть прямого распространения и инициализируйте сетевые размерности ввода и вывода к 2 и 1, соответственно. Используйте 5 нейронов для первого слоя и 7 для второго слоя.

net = feedforwardnet([5 7]);

Определите входной диапазон.

InputRange = [min(R);max(R)].';

Инициализируйте входные размерности средства оценки.

net.inputs{1}.range = InputRange;

Определите выходную область значений.

OutputRange = [min(z7.OutputData),max(z7.OutputData)];

Инициализируйте выходные размерности средства оценки и выбор учебной функции.

net.outputs{net.outputConnect}.range = OutputRange;
net.trainFcn = 'trainbfg';

Создайте средство оценки нелинейности нейронной сети.

net_estimator = idFeedforwardNetwork(net);

Задайте средство оценки нелинейности в модели.

model.Nonlinearity = net_estimator;

Оцените, что параметры сети минимизируют ошибку предсказания между данными и моделью. Модель Estimate.

model = nlarx(z7,model);

Сравните предсказанный ответ модели на измеренный выходной сигнал.

compare(z7(1:100),model,1)

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent Validation data (y1), model: 66.29%.

Алгоритмы

nlarx команда использует train метод network объект, заданный в программном обеспечении Deep Learning Toolbox, чтобы вычислить сетевые значения параметров.

Вопросы совместимости

развернуть все

Не рекомендуемый запуск в R2021b

Представленный в R2007a