neuralnet

Класс, представляющий оценку нелинейности нейронной сети для нелинейных моделей ARX

Синтаксис

net_estimator = neuralnet(Network)

Описание

neuralnet - класс, который инкапсулирует оценщик нелинейности нейронной сети. A neuralnet позволяет использовать сети, созданные с помощью программного обеспечения Deep Learning Toolbox™, в нелинейных моделях ARX.

Оценка нелинейности нейронной сети задает нелинейную функцию y=F(x), где F является многослойной прямой (статической) нейронной сетью, как определено в программном обеспечении Deep Learning Toolbox. y является скаляром, а x - m-мерный вектор-строка.

Вы создаете многослойный 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) вычислить значение функции, заданное как neuralnet net_estimator объекта при входном значении x. При использовании для нелинейной оценки модели ARX x представляет регрессоры модели для выхода, для которого neuralnet объект назначается как средство оценки нелинейности.

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

Конструкция

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

Свойства

NetworkОбъект нейронной сети, обычно созданный с помощью команд Deep Learning Toolbox feedforwardnet, cascadeforwardnet, и linearlayer.

После создания объекта можно использовать get или запись через точку для доступа к значениям свойств объекта. Для примера:

% List Network property value
get(n)
n.Network

Вы также можете использовать set функция для задания значения конкретных свойств. Для примера:

set(d, 'Network', net_obj)
Первый аргумент к set должно быть именем MATLAB® переменная.

Примеры

свернуть все

Создайте оценку нелинейности нейронной сети, используя feedforward нейронную сеть с тремя скрытыми слоями; передаточные функции типов 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 = neuralnet(net);

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

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

net = cascadeforwardnet(20);

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

net_estimator = neuralnet(net);

Данные оценки нагрузки.

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

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

Model = nlarx(Data,[2 2 1],net_estimator);

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

compare(Data,Model)

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

Инициализируйте размеры входного-выходного сигнала двухслойного feedforward нейронной сети на основе данных оценки и используйте эту сеть для нелинейной оценки 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;

Создайте двухслойную прямую нейронную сеть и инициализируйте входную и выходную размерности сети, равные 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 = neuralnet(net);

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

model.Nonlinearity = net_estimator;

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

model = nlarx(z7,model);

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

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

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

Алгоритмы

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

См. также

| | | | | (Deep Learning Toolbox) | (Deep Learning Toolbox) | (Deep Learning Toolbox)

Введенный в R2007a