exponenta event banner

neuralnet

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

Синтаксис

net_estimator = neuralnet(Network)

Описание

neuralnet является классом, который инкапсулирует нейронную сеть нелинейной оценки. A 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-by-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 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)

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

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

См. также

| | | | | (глубоко изучение комплекта инструментов) | (инструментарий для глубокого обучения) | (инструментарий для глубокого обучения)

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