martes, 5 de marzo de 2019

Perceptron para clasificacion de frutas

Existe una neurona capaz de clasificar frutas comestibles y no comestibles, por medio de las entradas, la neurona esta en la capacidad de determinar la clasificación de las frutas.

Nota:
1= si, -1= no
Procedimiento
1.       Declarar entradas de cada fruta y salida, basándose en si es comestible o no
2.       Declarar el intervalo, el cual podrá ser 1 o -1 de forma aleatoria
3.       El umbral de los pesos se tomará de forma aleatoria
4.       Los pesos se toman de manera aleatoria dependiendo de época de cada nivel de aprendizaje
5.       Para el entrenamiento del perceptrón, se tiene en cuenta cada entrada la cual se multiplica por el peso, si el resultado es diferente a la salida esperada, se ejecuta las veces que sean necesarias hasta que el perceptrón este entrenado.


Banano
Pera
Limón
Mora
Maracuyá
Manzana
Piel
-1
1
-1
1
-1
1
Semilla
1
-1
-1
1
1
-1
Sabor
1
1
-1
-1
-1
1
Color
1
1
1
-1
1
1
Estado
1
1
1
1
1
1
Olor
1
1
1
1
1
1
Resultado
1
1
-1
-1
-1
1


Código C++
Declaración de variables entradas, pesos, umbral.



Entrenamiento de perceptrón


resultados: 


Main


Época 2:

Época 3:


Época 4:

Época 6:




Época 7:




Época 8:










domingo, 3 de marzo de 2019

Perceptron multicapa




Función XOR

X1
X2
Y
0
0
0
0
1
1
1
0
1
1
1
1

Ecuaciones a utilizar:
W= Wa +α * (Sd-So)
H1= X1 (W11) + X2 (W12)
H2= X1 (W21) + X2 (W22)
Y= H1 (W1) + H2 (W2)

Evaluando los casos

Caso n°1:

X1=0 and X2= 0

Reemplazando
H1= 0
H2=0

Caso n°2:

X1=0 and X2=1

Reemplazando
H1= 0(2) + 1(-2) H1= -2
H2= 0(-1) + 1(-2) H2= -2

Caso n°3:

X1= 1 and X2=0

Reemplazando
H1= 1(2) + 0(-2) H1= 2
H2= 1(-1) + 0(-2) H2= -1

Caso n°4:

X1= 1 and X2=1

Reemplazando
H1= 1(2) + 1(-2) H1= 0
H2= 1(-1) + 1(-2) H2= -3

Evaluando cálculo de la salida

Caso n° 1

X1=0 and X2=0

Reemplazando
Y= 0 (1) + 0(-1) Y= 0

Caso n° 2

X1=0 and X2=1

Reemplazando
Y= -2 (1) + (-2) (-1) Y= 0

Caso n° 3
X1=1 and X2=0

Reemplazando
Y= 2(1) + (-1) (-1) Y= 3

Caso n° 4
X1=1 and X2=1

Reemplazando
Y= 0 (1) + (-3) (-1) Y= 3


Actualización de pesos

α= 0.2

caso 1:
X1= 0 and X2=0
Peso no cambia

caso 2:
X1= 0 and X2=1
Peso no cambia

caso 3:
X1= 1 and X2=0
Peso no cambia

  • -          En ninguno de los casos anteriores el peso cambia porque la salida obtenida es igual a la deseada
Caso 4:
X1= 1 and X2=1

W’11=2 à 1 x
Se requiere realizar el cambio pues la salida deseada no es igual a la obtenida

Cambio: 

W’12= (-1.8) + 0.2= -1.6
 W’1= 0.2* H’1= 0.2*(-1.6) = -0.32
W’2= 0.2* H’2= 0.2*(-1.6) = -0.32

H’1=X1(W’11) + X2(W12) = 0.4
H’1=X1(W’11) + X2(W22) = 0.4

W’21=-1
W’22= -1.8 + 0.2= -1.6

Tabla de resultados

Entradas
Pesos
Salidas

X1
X2
W11
W12
W1
W2
W21
W22
Sd
So
0
0
2
-2
1
-1
-1
-2
0
0
0
1
2
-1.8
-0.36
-0.36
-1
-1.8
1
1
1
0
2
-1.8
-0.36
-0.36
-1
-1.8
1
1
1
1
2
-1.6
-0.32
-0.32
-1
-1.6
0
0


















Perceptron Simple