# How to calculate weights and bias and to plot learning rate for each neuron in ANN?

14 views (last 30 days)

Show older comments

##### 0 Comments

### Answers (1)

atharva
on 13 Nov 2023

Hey Vasikaran,

I understand that you want to learn how to calculate weights and bias and to plot learning rate for each neuron in ANN.

In order to calculate weights and biases, and plot learning rates for each neuron in an Artificial Neural Network (ANN) using MATLAB, you'll need to go through a series of steps. I'll provide a simple example for a single-layer perceptron (SLP) with one neuron. You can extend the code for a multi-layer perceptron (MLP) with more neurons if needed.

% Define the input data

X = [1, 2, 3; 4, 5, 6]; % Two input samples with three features each

% Define the target labels

y = [0, 1]; % Corresponding binary target labels

% Initialize weights and bias

weights = rand(size(X, 2), 1); % Random weights for each feature

bias = rand(); % Random bias

% Set the learning rate

learning_rate = 0.01;

% Set the number of epochs

epochs = 100;

% Initialize arrays to store learning rates for each neuron

learning_rates = zeros(epochs, 1);

% Training loop

for epoch = 1:epochs

% Forward pass

z = X * weights + bias;

output = sigmoid(z); % Assuming a sigmoid activation function

% Calculate the error

error = y' - output;

% Backpropagation

weights = weights + learning_rate * X' * error;

bias = bias + learning_rate * sum(error);

% Store learning rate for each neuron

learning_rates(epoch) = learning_rate;

% Update learning rate (you can modify this based on your requirements)

learning_rate = learning_rate * 0.9;

end

% Plot learning rate for each neuron

figure;

plot(1:epochs, learning_rates, '-o');

xlabel('Epoch');

ylabel('Learning Rate');

title('Learning Rate for Each Neuron');

% Display the final weights and bias

disp('Final Weights:');

disp(weights);

disp('Final Bias:');

disp(bias);

% Function for sigmoid activation

function result = sigmoid(x)

result = 1./(1 + exp(-x));

end

In this example, we initialize random weights and bias and update them through a series of epochs using the backpropagation algorithm. The learning rate for each epoch is plotted, and you can observe how it changes over time. In a real-world scenario, you might want to consider a more complex network architecture, use more advanced optimization algorithms, and apply proper data preprocessing.

I hope this helps!

##### 0 Comments

### See Also

### Categories

### Products

### Community Treasure Hunt

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

Start Hunting!