How to set up Neural network and train the data

2 vues (au cours des 30 derniers jours)
Dinh Le Dung
Dinh Le Dung le 29 Nov 2022
I have a linear system:
x(n+1) = Ax(n)+By(n)
y(n+1) = Cx(n)+Dy(n)
x(0) = -2, y(0) = 3.
I also have set of 1000 point (x,y)
How do i train to get the coefficient A, B, C, D

Réponses (1)

Drishti
Drishti le 7 Oct 2024
Hi Dinh,
I understand that you are trying to build a neural network to solve the linear equations to get the corresponding coefficients A, B, C, D.
To accomplish this, you can create a simple neural network with one hidden layer. Given that the task involves solving linear equations, set the transfer function (specified as ‘transferFcn’) of the layers to ‘purelin’.
Refer to the implementation below for better understanding:
% Create a neural network with a minimal hidden layer size
hiddenLayerSize = 1;
% Minimal size to approximate linearity
net_x = feedforwardnet(hiddenLayerSize);
net_y = feedforwardnet(hiddenLayerSize);
% Configure the networks for a linear output
net_x.layers{2}.transferFcn = 'purelin';
net_y.layers{2}.transferFcn = 'purelin';
% Train the network for x(n+1)
net_x = train(net_x, inputs, targets_x);
% Train the network for y(n+1)
net_y = train(net_y, inputs, targets_y);
% Extract the weights (coefficients)
weights_x = net_x.IW{1};
bias_x = net_x.b{1};
weights_y = net_y.IW{1};
bias_y = net_y.b{1};
The weights will correspond to the coefficients in order A, B, C, D. You can also refer to the MATLAB Documentation of ‘purelin’ function for more information:
Additionally, work arounds such as linear regression and the mean square method can also be utilized to solve the given linear equations.
I hope this helps in getting started.

Community Treasure Hunt

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

Start Hunting!

Translated by