martes, 5 de marzo de 2019

Perceptron Frutas

Implementación

Se tiene una neurona para clasificar frutas en comestibles y no comestibles, la neurona estará en la capacidad de decir por medio de las entradas que frutas son comestibles y cuales no son comestibles.


Cabe resaltar que 1 es si y -1 es no.

Procedimiento:

1. El primer paso sera declarar las entradas de cada fruta y la salida final en base de si es comestible o no.

2. Declarar el umbral que podrá ir de 1 a -1 de forma aleatoria.

3. Los rangos posibles de los pesos serán tomados de manera aleatoria para cada entrada.

4. Dependiendo de cada época el nivel de aprendizaje toma pesos de manera aleatoria.

5. Para el entrenamiento del perceptron se toma cada entrada y se multiplica por el peso. Cada una con su respectiva sumatoria. Si, el resultado es diferente a la salida esperada se ejecuta las veces necesarias hasta que el perceptron este entrenado.


Código c++

Declaración de variables Entradas, pesos, umbral, etc.


Entrenamiento del Perceptron.


Mostrar resultados finales.


Main.


Resultado Ejecución 


Época 2:


Época 3:

Época 4:


Época 6:


Época 7:


Época 8:






domingo, 3 de marzo de 2019

Algoritmo Genético


Elaborar un algoritmo genético que max f(x1,x2) = 21.5 + x1 sen(4π x1) + x2 sen(20π x2)

Rango:


-3.0 ≤ x1 ≤ 12.1


-3.0 ≤ x1 ≤ 12.1


Representación binaria (5) individuos:




Individuo 1:


Individuo 2:




Individuo 3:



Individuo 4:





Individuo 5:




f(x)
%
2690,7
47,9
-1050,2
-18,7
21,5
0,38
787,6
14,04
3157,2
56,31
Total
5606,8





Selección:
























sábado, 2 de marzo de 2019

Perceptron Multicapa

Perceptrón Multicapa



Función XOR:

Formulación de ecuaciones:

Evaluar Casos:

Caso 1: 

x1 = 0 and x2 = 0

Reemplazando:

h1 = 0
h2 = 0
Caso 2: 

x1 = 0 and x2 = 1

Reemplazando:

h1 = 0(2) + 1(-2) h1 = -2
h2 = 0(-1) + 1(-2)  h2 = -2

Caso 3: 

x1 = 1 and x2 = 0

Reemplazando:

h1 = 1(2) + 0(-2) h1 = 2
h2 = 1(-1) + 0(-2)  h2 = -1

Caso 4: 

x1 = 1 and x2 = 1

Reemplazando:

h1 = 1(2) + 1(-2) h1 = 0
h2 = 1(-1) + 1(-2)  h2 = -3


Calculo de la salida

Caso 1:

x1 = 0 and  x2 = 0

Reemplazando:
y = 0(1) +  0(-1)  y = 0


Caso 2:

x1 = 0 and  x2 = 1

Reemplazando:
y = -2(1) +  (-2)(-1)  y = 0

Caso 3:

x1 = 1 and  x2 = 0

Reemplazando:
y = 2(1) +  (-1)(-1)  y = 3

Caso 4:

x1 = 1 and  x2 = 1

Reemplazando:
y = 0(1) +  (-3)(-1)  y = 3



Actualización de pesos:


alfa = 0.2

Caso 1: x1 = 0 and  x2 = 0

Los pesos no cambian porque la salida deseada es igual a la obtenida.




Caso 2:  x1 = 0 and x2 = 1




Caso 3:  x1 = 1 and x2 = 0


Los pesos no cambian porque la salida deseada es igual a la obtenida.


Caso 4: x1 = 1 and x2 = 1



Entradas
Pesos
Salidas
x1
x2
w11
w12
w1
w2
w21
w22
salida deseada
salida obtenida
0
0
 2
-2 
-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









domingo, 17 de febrero de 2019

Perceptron

Perceptrón Simple 




Ecuaciones y condiciones:

Si > 0 = 1
Si < 0 = 0
Si la salida obtenida  salida deseada


Entradas
Pesos
Salida
Época 1
x1
x2
b
w1
w2
wb
salida deseada
salida obtenida
1
1
-1
0,8
1,2
0,5
1
1
1
0
-1
0,8
1,2
0,5
1
1
0
1
-1
0,8
1,2
0,5
1
1
0
0
-1
1,7
2,1
-1,4
1
1
Época 2
x1
x2
b
w1
w2
wb
salida deseada
salida obtenida
1
1
-1
0,3
1,6
0,9
1
1
1
0
-1
1,1
1,6
0,9
1
1
0
1
-1
1,1
1,6
0,9
1
1
0
0
-1
1,9
2,4
-1,7
1
1