How to update the weights of a Shallow neural network by supplying one sample at a time?

3 次查看(过去 30 天)
I would like to use a shallow neural network inside a simulation loop. Every loop will generate a new input that is used to update the weights of the neural network. This online training of a shallow network.
To clarify, I am not asking how to use concurrent nerual network, or reinforcement learning. I am just asking how to make the shallow neural network perform one backprobagation operation based on one desired output. Nothing more. Thanks.

回答(1 个)

Venu
Venu 2023-12-25
编辑:Venu 2023-12-25
Hi @EngM,
You can refer to the documentation below to start with.
To perform online training of a shallow neural network in MATLAB by supplying one sample at a time and updating the weights based on that sample, you can use the "adapt" function.
The "adapt" function is designed to perform online updates to the network weights and biases according to the specified training function (example "traingd") for each new input-target pair.
Read the "adapt" documentation for more understanding.
help adapt
doc adapt
Hope this helps
  1 个评论
EngM
EngM 2024-1-4
编辑:EngM 2024-1-5
Hello, thanks for answering, I tried the adapt function, the weights/biases don't seem to be adapting (getwb(net)) .
I am using ode23 to simulate a simple 2-dof linear system that the NN is trying to fit, please review. Thanks..
The ode function file is below: input is sin(3*t)., the net is passed on with the ode function
function [dxdt] = SysLTI_2dof_NN(t,x,net)
% Auto generated function on 04-Jan-2024 11:19:18
dxdt = zeros(4,1);
dxdt(1) = x(3);
dxdt(2) = x(4);
dxdt(3) = 50*x(2) - 150*x(1) + sin(3*t);
dxdt(4) = 100*x(1) - 100*x(2) - x(4)/5;
% get the output
y1 = x(1);
y2 = x(2);
net = adapt(net,sin(3*t),[y1;y2]); % adapt function is called here.
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% network shallow feedforward:
net = feedforwardnet(10,'trainlm');
net = configure(net,input,output);
% perform initial off line training so network can get inputs/outputs configuration
[net,tr] = train(net,input,output); % input/output data were provided.
% online training
tspan = [0 1]; % simulation time.
x0 = [0;0;4;0]; % initial point of the ode.
%options = odeset('OutputFcn',@adapt_net);
[t,x] = ode23(@(t,x)SysLTI_2dof_NN(t,x,net),tspan,x0);

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Sequence and Numeric Feature Data Workflows 的更多信息

标签

产品


版本

R2023b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by