0% found this document useful (0 votes)
188 views22 pages

Soft Computing

This document contains 10 programs written in MATLAB to demonstrate various neural network concepts. Program 1 generates activation functions. Program 2 implements an ANDNOT function using McCulloch-Pitts neurons. Program 3 generates the XOR function using McCulloch-Pitts neurons. Program 4 implements Hebbian learning. Programs 5-7 demonstrate perceptrons, Adalines, and self-organizing maps. Programs 8-10 implement counterpropagation networks, Hopfield nets, and ART1 neural networks. Each program provides the relevant theory, code, and example output to classify patterns or learn weights for different neural network architectures.

Uploaded by

Kriti Bajpai
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
188 views22 pages

Soft Computing

This document contains 10 programs written in MATLAB to demonstrate various neural network concepts. Program 1 generates activation functions. Program 2 implements an ANDNOT function using McCulloch-Pitts neurons. Program 3 generates the XOR function using McCulloch-Pitts neurons. Program 4 implements Hebbian learning. Programs 5-7 demonstrate perceptrons, Adalines, and self-organizing maps. Programs 8-10 implement counterpropagation networks, Hopfield nets, and ART1 neural networks. Each program provides the relevant theory, code, and example output to classify patterns or learn weights for different neural network architectures.

Uploaded by

Kriti Bajpai
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 22

Soft Computing 201

INDEX
S
No.

Name of Experiment
Write a MATLAB program to
generate a few activation functions
that are being used in neural
networks.
Generate ANDNOT function using
McCulloch-Pitts Neural Net by a
MATLAB program.

1.

2.

Generate XOR function using


McCulloch-Pitts neuron by writing
an M-file
Write a MATLAB program for Hebb
Net to classify two dimensional
input patterns.

3.

4.

5.

Write a MATLAB program for


perceptron net for an AND function
with bipolar inputs and targets.

6.

Write a MATLAB program for Adaline


network for OR function Bipolar
inputs and targets

7.

Write a MATLAB program for cluster


two vectors using Kohonen self
organizing maps.

8.

Write a MATLAB program for Full


Counter Propagation Network for
given input pair.
Write a MATLAB program for
Discrete Hopfield net.

9.

Date

Signat
ure

Soft Computing 201


6
Write a MATLAB program for the
ART1 Neural Net.

10.

Program-1
AIM-1

Write a MATLAB program to generate a few activation


functions that are being used in neural networks.
Solution: The activation functions play a major role in determining the
output of the functions. One such program for generating the
activation functions is as given below.
% Illustration of various activation functions used in NN's
x = -10:0.1:10;
tmp = exp(-x);
y1 = 1./(1+tmp);
y2 = (1-tmp)./(1+tmp);
y3 = x;
subplot(231); plot(x, y1); grid on;
axis([min(x) max(x) -2 2]);
title('Logistic Function');
xlabel('(a)');
axis('square');
subplot(232); plot(x, y2); grid on;
axis([min(x) max(x) -2 2]);
title('Hyperbolic Tangent Function');
xlabel('(b)');
axis('square');
subplot(233); plot(x, y3); grid on;
axis([min(x) max(x) min(x) max(x)]);
title('Identity Function');
2

Soft Computing 201


6
xlabel('(c)');
axis('square');

Soft Computing 201


6

Program-2
AIM-2
Solution

Generate ANDNOT function using McCulloch-Pitts


Neural Net by a MATLAB program.
The truth table for the ANDNOT function is as follows:
X1 X2 Y

0
0
1
1
%ANDNOT function

0 0
1 0
0 1
1 0
using Mcculloch-Pitts neuron

clear;
clc;
%Getting weights and threshold value
disp('Enter weights');
w1=input('Weight w1=');
w2=input('weight w2=');
disp('Enter Threshold Value');
theta=input('theta=');
y=[0 0 0 0];
x1=[0 0 1 1];
x2=[0 1 0 1];
z=[0 0 1 0];
con=1;
while con
zin=x1*w1+x2*w2;
for i=1:4
if zin(i)>=theta
y(i)=1;
else
y(i)=0;
4

Soft Computing 201


6
end
end
disp('Output of Net');
disp(y);
if y==z
con=0;
else
disp('Net is not learning enter another set of weights and Threshold
value');
w1=input('weight w1=');
w2=input('weight w2=');
theta=input('theta=');
end
end
disp('Mcculloch-Pitts Net for ANDNOT function');
disp('Weights of Neuron');
disp(w1);
disp(w2);
disp('Threshold value');
disp(theta);

Soft Computing 201


6

Output
Enter weights
Weight w1=1
weight w2=1
Enter Threshold Value
theta=0.1
Output of Net
0

Net is not learning enter another set of weights and Threshold value
Weight w1=1
weight w2=-1
theta=1
Output of Net
0

Mcculloch-Pitts Net for ANDNOT function


Weights of Neuron
1
-1
Threshold value
1

Soft Computing 201


6

Program-3
AIM-3

Generate XOR function using McCulloch-Pitts neuron by

Solution

writing an M-file.
The truth table for the XOR function is,
X1 X2 Y
0
0
1
1

0
1
0
1

0
1
1
0

%XOR function using McCulloch-Pitts neuron


clear;
clc;
%Getting weights and threshold value
disp('Enter weights');
w11=input('Weight w11=');
w12=input('weight w12=');
w21=input('Weight w21=');
w22=input('weight w22=');
v1=input('weight v1=');
v2=input('weight v2=');
disp('Enter Threshold Value');
theta=input('theta=');
x1=[0 0 1 1];
x2=[0 1 0 1];
z=[0 1 1 0];
con=1;
while con
zin1=x1*w11+x2*w21;
zin2=x1*w21+x2*w22;
for i=1:4
if zin1(i)>=theta
7

Soft Computing 201


6
y1(i)=1;
else
y1(i)=0;
end
if zin2(i)>=theta
y2(i)=1;
else
y2(i)=0;
end
end
yin=y1*v1+y2*v2;
for i=1:4
if yin(i)>=theta;
y(i)=1;
else
y(i)=0;
end
end
disp('Output of Net');
disp(y);
if y==z
con=0;
else
disp('Net is not learning enter another set of weights and Threshold
value');
w11=input('Weight w11=');
w12=input('weight w12=');
w21=input('Weight w21=');
w22=input('weight w22=');
v1=input('weight v1=');
v2=input('weight v2=');
theta=input('theta=');
8

Soft Computing 201


6
end
end
disp('McCulloch-Pitts Net for XOR function');
disp('Weights of Neuron Z1');
disp(w11);
disp(w21);
disp('weights of Neuron Z2');
disp(w12);
disp(w22);
disp('weights of Neuron Y');
disp(v1);
disp(v2);
disp('Threshold value');
disp(theta);
Output
Enter weights
Weight w11=1
weight w12=-1
Weight w21=-1
weight w22=1
weight v1=1
weight v2=1
Enter Threshold Value
theta=1
Output of Net
0

McCulloch-Pitts Net for XOR function


Weights of Neuron Z1
1
-1
weights of Neuron Z2
9

Soft Computing 201


6
-1
1
weights of Neuron Y
1
1
Threshold value
1

10

Soft Computing 201


6

Program-4
AIM-4

Write a MATLAB program for Hebb Net to classify two


dimensional input patterns.

Sol :
clear;
clc;
%Input Patterns
E=[1 1 1 1 1 -1 -1 -1 1 1 1 1 1 -1 -1 -1 1 1 1 1];
F=[1 1 1 1 1 -1 -1 -1 1 1 1 1 1 -1 -1 -1 1 -1 -1 -1];
x(1,1:20)=E;
x(2,1:20)=F;
w(1:20)=0;
t=[1 -1];
b=0;
for i=1:2
w=w+x(i,1:20)*t(i);
b=b+t(i);
end
disp('Weight matrix');
disp(w);
disp('Bias');
disp(b);
Output
Weight matrix
Columns 1 through 18
0 0 0 0 0 0 0 0 0
Columns 19 through 20
2

Bias

11

0 0 0 0 2

Soft Computing 201


6

Program-5
AIM- 5

Write a MATLAB program for perceptron net for an AND

function with bipolar inputs and targets.


Solution The truth table for the AND function is given as
X1

X2

1 1

1 1

1 1

%Perceptron for AND function


clear;
clc;
x=[1 1 -1 -1;1 -1 1 -1];
t=[1 -1 -1 -1];
w=[0 0];
b=0;
alpha=input('Enter Learning rate=');
theta=input('Enter Threshold value=');
con=1;
epoch=0;
while con
con=0;
for i=1:4
yin=b+x(1,i)*w(1)+x(2,i)*w(2);
if yin>theta
y=1;
end
if yin <=theta & yin>=-theta
y=0;
12

Soft Computing 201


6
end
if yin<-theta
y=-1;
end
if y-t(i)
con=1;
for j=1:2
w(j)=w(j)+alpha*t(i)*x(j,i);
end
b=b+alpha*t(i);
end
end
epoch=epoch+1;
end
disp('Perceptron for AND funtion');
disp(' Final Weight matrix');
disp(w);
disp('Final Bias');
disp(b);
Output
Enter Learning rate=1
Enter Threshold value=0.5
Perceptron for AND funtion
Final Weight matrix
1

Final Bias
-1

13

Soft Computing 201


6

Program-6
AIM-6

Write a MATLAB program for Adaline network for OR


function Bipolar inputs and targets

clear all;
clc;
disp('Adaline network for OR function Bipolar inputs and targets');
%input pattern
x1=[1 1 -1 -1];
x2=[1 -1 1 -1];
%bias input
x3=[1 1 1 1];
%target vector
t=[1 1 1 -1];
%initial weights and bias
w1=0.1;w2=0.1;b=0.1;
%initialize learning rate
alpha=0.1;
%error convergence
e=2;
%change in weights and bias
delw1=0;delw2=0;delb=0;
epoch=0;
while(e>1.018)
epoch=epoch+1;
e=0;
for i=1:4
nety(i)=w1*x1(i)+w2*x2(i)+b;
%net input calculated and target
nt=[nety(i) t(i)];
delw1=alpha*(t(i)-nety(i))*x1(i);
delw2=alpha*(t(i)-nety(i))*x2(i);
14

Soft Computing 201


6
delb=alpha*(t(i)-nety(i))*x3(i);
%weight changes
wc=[delw1 delw2 delb]
%updating of weights
w1=w1+delw1;
w2=w2+delw2;
b=b+delb;
%new weights
w=[w1 w2 b]
%input pattern
x=[x1(i) x2(i) x3(i)];
%printring the results obtained
pnt=[x nt wc w]
end
for i=1:4
nety(i)=w1*x1(i)+w2*x2(i)+b;
e=e+(t(i)-nety(i))^2;
end
end

15

Soft Computing 201


6

Program-7
AIM-7

Write a MATLAB program for cluster two vectors using


Kohonen self organizing maps.

clc;
clear;
x=[1 1 0 0;0 0 0 1;1 0 0 0;0 0 1 1];
alpha=0.6;
%initial weight matrix
w=rand(4,2);
disp('Initial weight matrix');
disp(w);
con=1;
epoch=0;
while con
for i=1:4
for j=1:2
D(j)=0;
for k=1:4
D(j)=D(j)+(w(k,j)-x(i,k))^2;
end
end
for j=1:2
if D(j)==min(D)
J=j;
end
end
w(:,J)=w(:,J)+alpha*(x(i,:)'-w(:,J));
end
alpha=0.5*alpha;
epoch=epoch+1;
if epoch==300
16

Soft Computing 201


6
con=0;
end
end
disp('Weight Matrix after 300 epoch');
disp(w);

Output
Initial weight matrix
0.7266

0.4399

0.4120

0.9334

0.7446

0.6833

0.2679

0.2126

Weight Matrix after 300 epoch


0.0303

0.9767

0.0172

0.4357

0.5925

0.0285

0.9695

0.0088

Program-8
17

Soft Computing 201


6
AIM-8

Write a MATLAB program for Full Counter Propagation


Network for given input pair.

clc;
clear;
% set initial weights
v=[0.6 0.2;0.6 0.2;0.2 0.6; 0.2 0.6];
w=[0.4 0.3;0.4 0.3];
x=[0 1 1 0];
y=[1 0];
alpha=0.3;
for j=1:2
D(j)=0;
for i=1:4
D(j)=D(j)+(x(i)-v(i,j))^2;
end
for k=1:2
D(j)=D(j)+(y(k)-w(k,j))^2;
end
end
for j=1:2
if D(j)==min(D)
J=j;
end
end
disp('After one step the weight matrix are');
v(:,J)=v(:,J)+alpha*(x'-v(:,J))
w(:,J)=w(:,J)+alpha*(y'-w(:,J))

Output

18

Soft Computing 201


6
After one step the weight matrix are
v=
0.4200

0.2000

0.7200

0.2000

0.4400

0.6000

0.1400

0.6000

w=
0.5800

0.3000

0.2800

0.3000

19

Soft Computing 201


6

Program-9
AIM-9
Sol:

Write a MATLAB program for Discrete Hopfield net.

clc;
clear;
x=[1 1 1 0];
tx=[0 0 1 0];
w=(2*x'1)*(2*x1);
for i=1:4
w(i,i)=0;
end
con=1;
y=[0 0 1 0];
while con
up=[4 2 1 3];
for i=1:4
yin(up(i))=tx(up(i))+y*w(1:4,up(i));
if yin(up(i))>0
y(up(i))=1;
end
end
if y==x
disp('Convergence has been obtained');
disp('The Converged Ouput');
disp(y);
con=0;
end
end

Output
Convergence has been obtained
The Converged Output
1
1
1
0

20

Soft Computing 201


6

Program-10
AIM-10
Sol :

Write a MATLAB program for the ART1 Neural Net.

clc;
clear;
b=[0.57 0.0 0.3;0.0 0.0 0.3;0.0 0.57 0.3;0.0 0.47 0.3];
t=[1 1 0 0;1 0 0 1;1 1 1 1];
vp=0.4;
L=2;
x=[1 0 1 1];
s=x;
ns=sum(s);
y=x*b;
con=1;
while con
for i=1:3
if y(i)==max(y)
J=i;
end
end
x=s.*t(J,:);
nx=sum(x);
if nx/ns >= vp
b(:,J)=L*x(:)/(L-1+nx);
t(J,:)=x(1,:);
con=0;
else
y(J)=-1;
con=1;
end
if y+1==0
21

Soft Computing 201


6
con=0;
end
end
disp('Top Down Weights');
disp(t);
disp('Bottom up Weights');
disp(b);

Output
Top-down Weights
1

Bottom-up Weights
0.57000.66670.3000
0

0.3000

0.3000

0.66670.3000

22

You might also like