Beruflich Dokumente
Kultur Dokumente
Para elaborar la red de la xor con una ecuacin diferente, primero buscamos
en internet algn modelo o alguna gua, la cual la siguiente funcin
)( a+b )
( ab
, para realizar la red neural observamos que la red necesitara
tres neuronas dos cultas y una de salida, de las ocultas una cumplir la
funcin de la and, y la otra neurona la funcin or, al final la neurona de
salida ser la funcin and. En seguida mostramos la red neural, con los
pesos que supusimos y que despus comprobaremos en las tablas.
X2
y =X 1W 1.1+ X 2W 1.2
1 Z1
0=0(1)+0 (1)
1=0(1)+1(1)
1=1(1)+0(1)
2=1(1)+1(1)
X
1
X2
y =X 1W 2.1+ X 2W 2.2
0=0(1)+ 0(1)
1=0 (1)+1(1)
1=1(1)+0(1)
2=1(1)+1(1)
Z
2
Z
1
Z2
y =X 1V 1 + X 2V 2
1=1(1)+0(1)
2=1(1)+1(1)
2=1(1)+1(1)
1=1(0)+1(1)
Threshold2=2;
%reded ocultas
for (i=1:2)
%mediante este ciclo creamos el valor para cada Z
if (z_in(1,i)>=Threshold(1,i)) %los if nor servira para dar el
valor
Z(1,i)=1;
%de 1 o 0 a cada Z
else Z(1,i)=0;
end
end
v=ones(1,2); %damos valor de 1 a nuestros pesos "v"
y_in=0;
%igualamos a 0 nuestro y_in para realizar las sumas
for(i=1:2)
%mediante este ciclo, acemos la sumatoria de y_in
y_in=y_in+v(1,i)*Z(1,i);
end
%activation function, output layer
if(y_in>=Threshold2) Y=1; %mediante el if damos un valor de 1 o 0 a Y
else Y=0;
end
Notas musicales
Para desarrollar la red que generaba los tonos, primero analizamos que
condiciones tendra que llevar, una de ellas es que dos tonos no se podan
tocar al mismo tiempo ya que no se marcaria una escala, despus se tiene
que observar si es una escala ascendente o descendente, primeramente
creamos tres neuronas ocultas las cuales nos permitirn realizar la condicin
de que no se puedan tocar notas al mismo tiempo, tienen que ser tres
debido a que despus se har un anlisis de cual nota se introdujo primero y
cual despus, de las salidas de dichas neuronas se har el anlisis para ver
si es ascendente o descendente. Las tablas de verdad para cada nota se
mostraran enseguida (tabla 6.6, tabla 6.7, tabla 6.8)
DO
0
0
0
0
1
1
1
1
DO
0
0
0
0
RE
MI
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
Tabla 6.6 Tabla de verdad de la salida de
RE
0
0
1
1
MI
0
1
0
1
Salida de Do
0
0
0
0
1
0
0
0
Do
Salida de Do
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
Tabla 6.7 Tabla de verdad de la salida de
0
0
0
0
RE
DO
0
0
0
0
1
1
1
1
RE
MI
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
Tabla 6.8 Tabla de verdad de la salida de
Salida de Do
0
1
0
0
0
0
0
0
RE
ascendente=Do ( t2 ) ( t1 )Mi(t)
Aunque primero sea tocada do necestiamos analisarla hasta que se toque
mi, que ser en el tiempo 3 de nuestra red, por lo que la nota Do la tenemos
que retrasar su respuesta para verel valor de t-2 y Re en t-1, analizado esto
para descendente lo nico que cambia son los valores de tiempo de Do y Mi
quedando de la siguiente manera:
descendente : Do ( t ) ( t1 )Mi(t 2)
Observando esto sabemos que las redes neurales de salida, son dos and de
tres entradas, cuya tabla de verdad se muestra en la tabla 6.9
X1
0
0
0
0
1
1
1
1
X2
X3
Y
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
1
1
Tabla 6.9 Tabla de verdad de AND de 3 entradas
Do
Re
Mi
0=0 (1 )+ 0 (1 ) +0(1)
1=0 ( 1 )+ 0 (1 ) +1(1)
1=0 ( 1 )+ 1 (1 ) +0(1)
2=0 ( 1 )+ 1 (1 ) +1(1)
1=1 ( 1 )+ 0 (1 ) +0 (1)
0=1 ( 1 ) +0 (1 )+ 1(1)
0=1 ( 1 ) +1 (1 ) +0 (1)
1=1 ( 1 ) +1 (1 ) +1(1)
Z1
Do
Re
Mi
Z1
0=0 (1 ) +0 ( 1 ) +0(1)
1=0 (1 ) +0 ( 1 ) +1(1)
1=0 (1 )+ 1 ( 1 ) +0 (1)
0=0 (1 ) +1 ( 1 )+ 1(1)
1=1 (1 ) +0 ( 1 ) +0(1)
2=1 (1 ) +0 ( 1 ) +1(1)
0=1 (1 )+ 1 ( 1 ) +0 (1)
1=1 (1 ) +1 (1 ) +1(1)
Do
Re
Mi
Z1
0=0 (1 ) +0 (1 )+ 0(1)
1=0 (1 )+ 0 (1 ) +1(1)
1=0 (1 ) +1 (1 )+ 0(1)
0=0 (1 ) +1 (1 ) +1(1)
1=1 (1 ) +0 (1 )+ 0(1)
0=1 (1 )+ 0 (1 ) +1(1)
2=1 (1 ) +1 (1 ) +0(1)
1=1 (1 ) +1 (1 ) +1(1)
Do
Re
Mi
Z1
0=0 (1 )+ 0 ( 1 ) +0 (1)
1=0 ( 1 ) +0 ( 1 ) +1(1)
1=0 ( 1 ) +1 ( 1 )+ 0(1)
2=0 ( 1 ) +1 ( 1 )+1( 1)
1=1 ( 1 )+ 0 ( 1 )+ 0(1)
2=1 ( 1 )+ 0 ( 1 )+1( 1)
2=1 ( 1 )+ 1 ( 1 ) +0( 1)
3=1 ( 1 ) +1 (1 ) +1(1)
3 4 5
MI
4 5
0 0
0 0
0 1
MI
7
1
0
0
6
0
1
0
6 7
9 10 11 12
DO
RE
RE
MI MI
8 9101112
0 0 0 1 0];%DO
0 0 1 0 0];%RE
0 1 1 0 0];%MI
DO
%capas de salida
Y1=0;
%igualamos primero a 0 nuestra salida
Y2=0;
%pesos %damos valores a cada uno de los pesos que se utilizaran
w1=1; w2=-1;w3=-1;w4=-1;w5=1;w6=-1;w7=-1;w8=-1;w9=1;
w10=1;w11=1;w12=1;w13=1;w14=1;w15=1;
%avanze en el tiempo
for (t=1:T)
%con este ciclo for lo que se pretende es repetir el
proceso
%hasta el periodo de tiempo que ingresamos
%entradas y pesos aplicados,
z1_in=w1*x1(t)+w4*x2(t)+w7*x3(t);%representa la neurona para Do
z2_in=w2*x1(t)+w5*x2(t)+w8*x3(t);%representa la neurona para Re
z3_in=w3*x1(t)+w6*x2(t)+w9*x3(t);%representa la neurona para Mi
%activacion de funcion, capa oculta Z1
if (z1_in>=Threshold) Z1(t)=1; %con el if activamos el valor para
Do
else Z1(t)=0;
end
%activacion de funcion, capa oculta Z2
if (z2_in>=Threshold) Z2(t)=1; %con el if activamos el valor para
RE
else Z2(t)=0;
end
%activacion de funcion, capa oculta Z3
if (z3_in>=Threshold) Z3(t)=1;%con el if activamos el valor para MI
else Z3(t)=0;
end
1
1
0
0
1
0
0
x
x
2
0
1
0
0
1
0
x
x
3
0
0
1
0
0
1
x
x
4
0
0
0
0
0
0
1
0
5
0
0
1
0
0
1
0
0
6
0
1
0
0
1
0
0
0
7
1
0
0
1
0
0
0
1
8
0
0
0
0
0
0
0
0
9
0
0
1
0
0
1
0
0
10
1
1
0
0
0
0
0
0
11
1
0
0
1
0
0
0
0
12
0
0
0
0
0
0
0
0