Vous êtes sur la page 1sur 2

TP 3 Réseau de neurones

Exercice 1 Notre but est de créer un perceptron permettant de modéliser de la fonction


logique AND
1er étape : taper nntool

2ème étape : Déclarer les vecteurs des entrées x = [ 0 0 1 1; 0 1 0 1] et la sortie

d = [1 1 1 0] - New/data- n’oublier pas de mentioner le type des vecteurs (inputs ou

targets) et de taper sur le bouton create pour confirmation.

Dans Network, déclarer le nom du RN (perceptron), son type (percetron) et de choisir ces
entrées sortie. Taper sur View pour voir le RN

3ème étape : phase d’apprentissage Aller à train, entrer les vecteurs d’entrée et de sortie
puis lancer l’apprentissage en appuiant sur train network.

Commenter le resultat (l’erreur entre la sortie du Rn et la sortie désirée, le nombre


d’ittérations). Trouver les valeurs des poids et du biais du RN.

Exercice 2 Modéliser par un preceptron de la fonction logique OR en suivant les mêmes


étapes (refaire l’exercice 1 pour la foncion OR).
Exercice 3 Modéliser par un preceptron de la fonction logique XOR en suivant les mêmes
étapes (refaire l’exercice 1 pour la foncion XOR, varier les paramétres d’apprentissage)
Quelles sont vos remarques ?
Exercice 4 Modéliser par un RN perceptron sur un fichier -.m du matlab de la fonction
logique NAND
Entrer les vecteurs d’entrées-sortie x = [ 0 0 1 1; 0 1 0 1] d = [ 0 0 0 1]
Utiliser la commande plotpv pour tracer les entrées sorties de perceptron
Créer un nouveau perceptron en utilisant newp exemple red=newp([0 1;0 1],1)

Initialiser les poids à 1 et le biais à 0.5

Tracer la ligne de classification de perceptron en utilisat la commande plotpc

Faite l’apprentissage du perceptron en utiliser la commande train

Retracer la ligne de classification de perceptron après l’apprentissage. Quelles sont vos


remarques.

Utiliser la commande sim pour tester l’efficacité du perceptron.


Exercice 5 l’exercice suivat consiste à établir la fonction XOR en utlisant, sur un fichier -.m
du matlab l’algorithme de Rétropropagtion commenter le
input = [0 0; 0 1; 1 0; 1 1];
output = [0;1;1;0];
bias = [-1 -1 -1];
coeff = 0.7;
iterations = 10000;
rand('state',sum(100*clock));
weights = -1 +2.*rand(3,3);
for i = 1:iterations
out = zeros(4,1);
numIn = length (input(:,1));
for j = 1:numIn
H1=bias(1,1)*weights(1,1)+input(j,1)*weights(1,2)+input(j,2)*weights(1,3);
x2(1) = 1/(1+exp(-H1));
H2=bias(1,2)*weights(2,1)+input(j,1)*weights(2,2)+input(j,2)*weights(2,3);
x2(2) = 1/(1+exp(-H2));
x3_1=bias(1,3)*weights(3,1)+x2(1)*weights(3,2)+x2(2)*weights(3,3);
out(j) = 1/(1+exp(-x3_1));
delta3_1 = out(j)*(1-out(j))*(output(j)-out(j));
delta2_1 = x2(1)*(1-x2(1))*weights(3,2)*delta3_1;
delta2_2 = x2(2)*(1-x2(2))*weights(3,3)*delta3_1;
for k = 1:3
if k == 1
weights(1,k)=weights(1,k)+coeff*bias(1,1)*delta2_1;
weights(2,k)=weights(2,k)+coeff*bias(1,2)*delta2_2;
weights(3,k)=weights(3,k)+coeff*bias(1,3)*delta3_1;
else
weights(1,k)=weights(1,k)+coeff*input(j,1)*delta2_1;
weights(2,k)=weights(2,k)+coeff*input(j,2)*delta2_2;
weights(3,k)=weights(3,k)+coeff*x2(k-1)*delta3_1;
end
end
end
end

Vous aimerez peut-être aussi