neuralnet

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

Синтаксис

net_estimator = neuralnet(Network)

Описание

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

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

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

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

  • Инициализируйте размеры вручную путем установки областей значений ввода и вывода на m- 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)

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

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

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

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

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

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

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

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

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

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

model.Nonlinearity = net_estimator;

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

model = nlarx(z7,model);

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

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

Алгоритмы

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

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