eleccion definitiva del PIC a usar, creemos ke esta serie va bien, pero aun hay dudas con la capacidad de memoria. sugerencias?
funciones de la red (aprendizaje, activacion, etc) en lenguage c para programar el PIC.
en la actualidad dispongo de mucha teoria sobre redes, pero no tengo claras las politicas para poner esta info. en el foro, asi que si me aclaran esto se los agradesco.
asi que estoy disponible para ayudar al que este interesado en este tema tan interesante y de antemano muchas gracias por la colaboracion.
Hola y bienvenido
Actualmente yo también estoy trabajando RNA. Ya terminé mi algoritmo para backprop y ahora estoy trabajando las redes de base radial.
Para montar una RNA en un pic, yo la entrenaría en la pc y cargaría los pesos y umbrales ya entrenados en el pic para aligerar la programación. Tienes que definir qué compilador de C usarás, los más usados aquí son el C18 de Microchip y el CCS.
Necesitarás matrices de pesos flotantes del siguiente tamaño:
Capa entrada a 1a capa oculta: 4x7= 28 flotantes
1a capa oculta a 2a capa oculta: 7x5 = 35 flotantes
2a capa oculta a capa de salida: 5x3 = 15 flotantes
Y arreglos de umbrales de los siguientes tamaño:
1a capa oculta: 7 flotantes
2a capa oculta: 5 flotantes
capa salida: 3 umbrales
Total de flotantes: 93
Total de memoria: 93 flotantes x 4bytes = 372bytes
Estos datos al ser fijos podrán almacenarse en memoria de programa ROM.
Ahora hay que considerar que se tendrán las activaciones de las neuronas.
Activaciones:
4 de entrada
7 de 1a oculta
5 de 2a oculta
3 de salida
Total: 19 flotantes
19 flotantes x 4bytes= 76bytes
Esto se deberá montar en RAM.
El algoritmo de propagación no es grande, la función más compleja es la sigmoidal, pero haciéndolo en c se facilita.
Ahí tienes un estimado de cuánta memoria emplearás. Creo que casi cualquier pic actual te da el ancho para tu problema. El PIC18F4550 es ideal ya que cuenta con USB.