sábado, 23 de agosto de 2008

Adaline: “Convertir un número binario a decimal”.

En la implementación se ha considerado realizar un programa generalizado, de manera que se pueda aplicar a diferentes casos, para esto las entradas son patrones, que contienen un vector característico y un valor deseado de salida, el factor de aprendizaje y el valor mínimo de error.
Como criterio de parada se considero que el error de época sea menor que un valor determinado (0.1).

En la fase de entrenamiento se consideró los siguientes patrones

1 0 0 1 1
1 0 1 0 2
1 0 1 1 3
1 1 0 1 5

Factor de aprendizaje = 0.3
Valor de error mínimo = 0.1


Se probó con estos datos el programa y el aprendizaje nos dio como resultados lo siguiente:
Número de Iteraciones = 49
w = 0.6350 3.7432 1.6340 0.5798

Ahora para probar que el aprendizaje fue correcto se probó con las siguientes nuevas entradas:

>> convertidor(w,[1,1,1,1])
rpta = 7

>> convertidor(w,[1,1,0,0])
rpta = 4

>> convertidor(w,[1,1,1,0])
rpta = 6

Como podemos notar los resultados son los deseados y por lo tanto queda demostrado que el aprendizaje fue correcto.

Notas:
El factor de aprendizaje mas adecuado que se encontró es el 0.3 porque por ejemplo si probamos con el factor 0.5 el aprendizaje no es tan bueno, como podemos notar a continuación:

Número de Iteraciones = 45
w = 0.1335 4.3759 1.8665 0.7593

>>convertidor(w,[1,1,0,1])
rpta sin redondeo=5.2687
rpta = 5

>> convertidor(w,[1,1,0,0])
rpta sin redondeo=4.5094
rpta = 5

Como se puede notar el resultado de la segunda conversión no es correcta, por tanto el factor
de aprendizaje 0.5 no es el adecuado.

Si el factor de aprendizaje es 0.1 se tiene lo siguiente:
Número de Iteraciones = 265
w = 0.2678 4.2013 1.8016 0.8055

>> convertidor(w,[1,1,0,0])
rpta = 4
>> convertidor(w,[1,1,0,1])
rpta = 5
>> convertidor(w,[1,1,1,1])
rpta = 7
>> convertidor(w,[1,1,1,0])
rpta = 6
>> convertidor(w,[1,0,1,1])
rpta = 3
>> convertidor(w,[1,0,1,0])
rpta = 2
>> convertidor(w,[1,0,0,1])
rpta = 1
>> convertidor(w,[1,0,0,0])
rpta = 0
Como podemos notar el aprendizaje es correcto pero el número de iteraciones son muchas.

6 comentarios:

CRISTINA dijo...

Hola, buenas tardes!
...soy estudiante de Ingenieria de Sistemas y estoy en medio de un proyecto para la clase de redes neurales en el que tengo que utilizar este tipo de funcion...
Pudieran enviarme su codigo?
Estare muy agradecida, besos y gracias!

Unknown dijo...

hola soy estudiante de Sistemas y estoy cruzando la materia de Inteligencia artificial por favor podrían enviarme su código de antemano muy agradecida.
tocris_mikysita@hotmail.com

Unknown dijo...
Este comentario ha sido eliminado por el autor.
Unknown dijo...

hola me puedes colaborar con el codigo?

lo estoy necesitando para un trabajo de la asignatura sistemas expertos.

abedoya84@gmail.com


muchas gracias

Unknown dijo...

Muchas gracias!! me servira para completar el mio, saludos!! :3

Patricio Vara dijo...

hola que tal buenas tardes, me gustaría saber si pudieras ayudarme compartiendome el codigo por favor.. soy estudiante de ingnieria en software y tengo algunas dudas acerca del Adaline.. me seria de gran ayuda y sobre todo un emujon para comprender mejor.. muchisimas gracias
te dejo mi mail vale
patriciioo10@gmail.com