Neural Networks
Grupo: 3CM1
Alumno:
Introducción
El primer modelo matemático de una neurona artificial, creado con el fin de llevar a
cabo tareas simples, fue presentado en el año 1943 en un trabajo conjunto entre el
psiquiatra y neuro anatomista Warren McCulloch y el matemático Walter Pitts. Un
ejemplo de modelo neuronal con dos entradas x e y es representado en la figura 2.
Las entradas x e y son el estímulo que la neurona artificial recibe del entorno que
la rodea, y la salida z es la respuesta a tal estímulo. La neurona se adapta al
medio circundante y aprende de ´el modificando el valor de sus pesos sinápticos
w1 y w2 y su término aditivo b. Estos son conocidos como los parámetros libres
del modelo, pues los mismos pueden ser modificados y adaptados para realizar
una tarea determinada. En este modelo, la salida neuronal z está dada por
z = f (w1 x + w2 y + b)
Diagrama Flujo
4
Neural Networks
Ejemplos
AND
>> celula
Celula McCuloch-Pitts
and =
0 0 0
0 1 0
1 0 0
1 1 1
Aprendizaje correcto
Aprendizaje correcto
Aprendizaje correcto
Aprendizaje correcto
OR
>> celula
Celula McCuloch-Pitts
or =
0 0 0
0 1 1
1 0 1
1 1 1
Aprendizaje correcto
Aprendizaje correcto
Aprendizaje correcto
Aprendizaje correcto
NOT
>> celula
Celula McCuloch-Pitts
6
Neural Networks
not =
1 0
0 1
-1
-1
Aprendizaje correcto
Aprendizaje correcto
Discusión resultados
Al momento de realizar las pruebas con diferentes casos, pude observar que el
umbral dependía del número de entradas menos 1 en la compuerta AND y en la
compuerta OR el umbral en la mayoría de casos tenía que ser 0 para que se
comporte correctamente y en la NOT pues muy fácil de visualizar los resultados.
Conclusiones
Debido a los ejemplos base de cada compuerta podemos determinar algunos
ejemplos con los cuales asegurar el correcto funcionamiento de las compuertas
establecidas. Tomando en cuenta estas situaciones y comprobando algunos casos
con pruebas de escritorio fue fácil implementar cada caso correctamente.
Referencias
1. W. S. McCulloch y W. Pitts, "A logical calculus of the ideas immanent in
neurons activity", Bull. En línea [PDF]:
http://www.cs.cmu.edu/~./epxing/Class/10715/reading/McCulloch.and.Pitts.p
df
2. Redes Neuronales Artificiales En línea [PDF]:
http://www.famaf.unc.edu.ar/~revm/digital24-3/redes.pdf
7
Neural Networks
Código:
disp('Celula McCuloch-Pitts') a=0;
aceptado=0; end
case 1
aceptado=aceptado+1;
clc
else
tam = input('Escoja tamanio
entradas\n'); disp('Aprendizaje
incorrecto')
switch tam
aceptado=aceptado-
case 2
1;
and=[0 0 0;0 1 0;1 0 0;1 1 1]
end
omega=input('Ingrese un
end
valor para el umbral \n');
if(aceptado==4)
w1= input('Ingrese un valor
para W1\n'); disp('Compuerta simulada
correctamente');
w2= input('Ingrese un valor
para W2\n'); else
end
n=(and(i,1)*w1)+(and(i,2)*w2);
case 3
if(n>omega)
and=[0 0 0 0;0 0 1 0;0 1 0 0;0
a=1; 1 1 0;1 0 0 0;1 0 1 0;1 1 0 0;1 1 1 1]
else
8
Neural Networks
omega=input('Ingrese un end
valor para el umbral \n');
if(aceptado==8)
w1= input('Ingrese un valor
disp('Compuerta simulada
para W1\n');
correctamente');
w2= input('Ingrese un valor
else
para W2\n');
disp('Compuerta erronea');
w3= input('Ingrese un valor
para W3\n'); end
for i=1:8 case 4
disp('Aprendizaje
n=(and(i,1)*w1)+(and(i,2)*w2)+(and(i,3)*
incorrecto')
w3)+(and(i,4)*w4);
aceptado=aceptado-
if(n>omega)
1;
a=1;
end
9
Neural Networks
if(aceptado==16) n=(and(i,1)*w1)+(and(i,2)*w2)+(and(i,3)*
w3)+(and(i,4)*w4)+(and(i,5)*w5);
disp('Compuerta simulada
correctamente'); if(n>omega)
else a=1;
disp('Compuerta erronea'); else
end a=0;
case 5 end
and=[0 0 0 0 0 0;0 0 0 0 1 0;0 if(a==and(i,6))
0 0 1 0 0;0 0 0 1 1 0;0 0 1 0 0 0;0 0 1 0 1
0;0 0 1 1 0 0;0 0 1 1 1 0;0 1 0 0 0 0;0 1 0 0 disp('Aprendizaje
1 0;0 1 0 1 0 0;0 1 0 1 1 0;0 1 1 0 0 0;0 1 1 correcto')
0 1 0;0 1 1 1 0 0;0 1 1 1 1 0;1 0 0 0 0 0;1 0
0 0 1 0;1 0 0 1 0 0;1 0 0 1 1 0;1 0 1 0 0 0;1
aceptado=aceptado+1;
10
Neural Networks
aceptado=aceptado-
1; n=(and(i,1)*w1)+(and(i,2)*w2);
end if(n>omega)
end a=1;
if(aceptado==32) else
otherwise
aceptado=aceptado+1;
end
else
case 2
disp('Aprendizaje
clc
incorrecto')
tam = input('Escoja tamanio
aceptado=aceptado-
entradas\n');
1;
switch tam
end
case 2
end
or=[0 0 0;0 1 1;1 0 1;1 1 1]
if(aceptado==4)
omega=input('Ingrese un
disp('Compuerta simulada
valor para el umbral \n');
correctamente');
w1= input('Ingrese un valor
else
para W1\n');
disp('Compuerta erronea');
11
Neural Networks
end disp('Aprendizaje
incorrecto')
case 3
aceptado=aceptado-
or=[0 0 0 0;0 0 1 1;0 1 0 1;0 1
1;
1 1;1 0 0 1;1 0 1 1;1 1 0 1;1 1 1 1]
end
omega=input('Ingrese un
valor para el umbral \n'); end
end
n=(and(i,1)*w1)+(and(i,2)*w2)+(and(i,3)*
if(aceptado==16)
w3)+(and(i,4)*w4)+(and(i,5)*w5);
disp('Compuerta simulada
if(n>omega)
correctamente');
a=1;
else
else
disp('Compuerta erronea');
a=0;
end
end
case 5
13
Neural Networks
disp('Aprendizaje n=not(i,1)*w;
correcto')
if(n>omega)
a=1;
aceptado=aceptado+1;
else
else
a=0;
disp('Aprendizaje
incorrecto') end
aceptado=aceptado- if(a==not(i,2))
1;
disp('Aprendizaje correcto')
end
aceptado=aceptado+1;
end
else
if(aceptado==32)
disp('Aprendizaje incorrecto')
disp('Compuerta simulada
correctamente'); aceptado=aceptado-1;
else end
end if(aceptado==2)