Codificación de una red neuronal Backpropagation con dos neuronas de entrada, dos de salida y una capa oculta.
El ejemplo proporciona dos conjuntos de datos con los que se puede entrenar la red y ver lo preciso que ha sido el aprendizaje minimizando el error que se muestra en un gráfico.
Modificando el programa podemos variar el número de veces que entrenamos a la red con los datos de prueba (epochs), de tal forma que llega un momento en el que a partir de un cierto número de epochs el error se mantiene siempre constante e incluso aumenta.
Pantalla del programa
Descargar codigo fuente
La propagación hacia atrás de errores o retropropagación (del inglés backpropagation) es un algoritmo deaprendizaje supervisado que se usa para entrenar redes neuronales artificiales.
El algoritmo emplea un ciclo propagación – adaptación de dos fases. Una vez que se ha aplicado un patrón a la entrada de la red como estímulo, este se propaga desde la primera capa a través de las capas superiores de la red, hasta generar una salida.
La señal de salida se compara con la salida deseada y se calcula una señal de error para cada una de las salidas.
Las salidas de error se propagan hacia atrás, partiendo de la capa de salida, hacia todas las neuronas de la capa oculta que contribuyen directamente a la salida. Sin embargo las neuronas de la capa oculta solo reciben una fracción de la señal total del error, basándose aproximadamente en la contribución relativa que haya aportado cada neurona a la salida original.
Este proceso se repite, capa por capa, hasta que todas las neuronas de la red hayan recibido una señal de error que describa su contribución relativa al error total. La importancia de este proceso consiste en que, a medida que se entrena la red, las neuronas de las capas intermedias se organizan a sí mismas de tal modo que las distintas neuronas aprenden a reconocer distintas características del espacio total de entrada.
Después del entrenamiento, cuando se les presente un patrón arbitrario de entrada que contenga ruido o que esté incompleto, las neuronas de la capa oculta de la red responderán con una salida activa si la nueva entrada contiene un patrón que se asemeje a aquella característica que las neuronas individuales hayan aprendido a reconocer durante su entrenamiento.
(fuente: wikipedia)
-----------------------
Clase TBackProp
------------------------
Archivo: BackPropCls.pas
Lenguaje: Delphi 2005
Autor: Theo Zacharias (theo_yz@yahoo.com)
Descripción : TBackProp es una clase que encapsula un objeto de red neuronal backpropagation
Eventos: OnTraining, OnTrainingFinish
Propiedades: ErrorThreshold (r/w), InputLayer (r/w),
InputPatternHeight (r/o), InputPatternWidth (r/o),
KnownSymbol (r/o), LearningRate (r/w), MaxEpoch (r/w),
Modified (r/o), NHiddenNeuron (r/o), NInputNeuron (r/o),
NNeuronError (r/o), NOutputNeuron (r/o), NTrainingEpoch (r/o),
NTrainingNeuron (r/o), NTrainingPair (r/o), OutputLayer (r/o),
StopTraining (r/w), TargetClassificationError (r/w),
TargetPatternHeight (r/o), TargetPatternWidth (r/0),
TargetSquaredError (r/o), TrainingError (r/o),
WeightsInitFactor (r/w)
Métodos: : AddTrainingPairs, Apply, GetResult, NewKnowledge,
OpenKnowledge, Retrain, SaveKnowledge, Train
Descargar clase tBackProp
No hay comentarios:
Publicar un comentario