neuralnet

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

Синтаксис

net_estimator = neuralnet(Network)

Описание

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

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

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

  • Определяйте размеры ввода и вывода быть неизвестными путем оставления их в значении по умолчанию нуля (рекомендуемыми метод). При оценке нелинейной модели 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) создает средство оценки нелинейности нейронной сети на основе прямого каналом (статического) сетевого объекта 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®.

Примеры

свернуть все

Создайте средство оценки нелинейности нейронной сети с помощью прямой каналом нейронной сети с тремя скрытыми слоями; передаточные функции типов 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 слоя на основе данных об оценке и используйте эту сеть для нелинейной оценки ARX.

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

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

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

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

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

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

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

Создайте 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_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