Mostrando entradas con la etiqueta Inteligencia artificial. Mostrar todas las entradas
Mostrando entradas con la etiqueta Inteligencia artificial. Mostrar todas las entradas

Red neuronal Backpropagation






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


 









Reconocimiento de caras con Delphi





Software de reconocimiento de caras ( face recognition ) en imágenes con formato bmp.



Lo que hace es enmarcar cada rostro detectado dentro de un rectángulo utilizando funciones de una dll llamada VCOpenCV.


VCOpenCV se basa en OpenCV (Open Computer Vision) que es una biblioteca de funciones relacionadas con visión artificial  y que como curiosidad se ha utilizado en el sistema de visión del vehículo no tripulado del "Gran desafío DARPA"

Actualmente es un área de investigación muy compleja que necesita la participación de investigadores de diferentes ámbitos, ya que involucra no sólo o programadores e ingenieros de software, sino que también necesita la colaboración de neurocientíficos y psicólogos.




Debido a que estos sistemas son poco intrusivos, aún permanecen en primera línea de investigación por encima de otros como pueden ser los sistemas biométricos, de detección de huellas o reconocimiento del iris.






Descargar codigo fuente




En caso de que nos interese detectar zonas más específicas como ojos y boca, 

tendremos que hacerlo como indica el programa del que abajo os adjunto el link




Descargar codigo fuente




Descargar OpenCV.pas




Descargar OpenCV.pas (Es la traducción de las cabeceras de Opencv en Delphi realizada por Vladimir Vasilyev)





Además me gustaría recordarles que si quieren iniciarse en la programación con Delphi pueden utilizar una versión totalmente gratuita llamada Delphi Starter Edition que la pueden descargar desde aquí.
 




Libros



Face-Detection and Gesture Recognition for Human-computer interaction

Intelligent Biometric Techniques in Fingerprint and Face Recognition (International Series on Computational Intelligence)

Handbook of Face Recognition






















Redes neuronales con Delphi


Os presento una página donde muestra cómo se implementa en delphi una red neuronal utilizando backpropagación como algoritmo de aprendizaje.





Una red neuronal la forman varias capas, una de ellas es la capa de entrada, otra la capa de salida y una o varias capas ocultas. Cada capa se interconecta con la previa desde sus nodos (neuronas) simulando de alguna manera los sistemas neuronales biológicos.





La salida viene dada por tres funciones:



-función de propagación: Sumatorio de cada entrada multiplicado por el peso de su interconexión.

-función de activación: Suele ser la salida de la función de propagación

-función de transferencia: Acota la salida entre [-1,1] (en este caso utiliza la tangente hiperbólica - tanh-, aunque en otros casos se utiliza la función sigmoidea)





Link:

http://www.ibrtses.com/delphi/neuralnets.html











Simulación del movimiento de los electrones en un campo electrico

Espectacular simulación realizada con OpenGL del movimiento de los electrones cuando atraviesan un campo eléctrico. Como muestra la image...