Redes final

18
Redes Neuronales Presentación final

Transcript of Redes final

Page 1: Redes final

Redes NeuronalesPresentación final

Page 2: Redes final

El proyecto...Nuestro proyecto trata sobre el control de la interfaz de Gnome por medio de movimientos de la mano, los cuales serán obtenidos por Kinect y procesados por una red neuronal del tipo supervisada.

Page 3: Redes final

En general...Se creó una red neuronal multicapa en python que trabaja con la información recibida por el Kinect y modifica los pesos de manera que obtenemos los valores deseados. La red determina si el movimiento es hacia la izquierda,derecha,arriba,abajo.

Page 4: Redes final

Herramientas● Python● Kinect● OpenKinect(librería freenect)

Page 5: Redes final

Cómo lo hicimos?● Nuestra red neuronal es de tipo supervisada.● Nuestra red consiste de 3 capas con 2 entradas y 2

salidas.● La capa de entrada recibe las coordenadas (x,y) que se

obtienen desde el kinect, de acuerdo al movimiento que se realice.

● La capa de salida arroja la dirección del movimiento realizado por el usuario (derecha,izquierda,arriba,abajo).

Page 6: Redes final

Red SupervisadaLas redes de entrenamiento supervisado utilizan datos para el entrenamiento, los cuales están constituidos por varios pares de patrones de entrenamiento de entrada y de salida. El hecho de conocer la salida implica que el entrenamiento se beneficia de la supervisión de un maestro

Page 7: Redes final

Red SupervisadaSe utilizó este tipo de red ya que de antemano se conoce la salida que queremos obtener en base a un movimiento realizado (entrada).

Page 8: Redes final

Qué es lo que hicimos?● Se realizó dos script en python. ● La clase principal es Neurona que recibe como

parámetros las coordenadas (x,y) tomadas desde el kinect, las cuales son analizadas en la red.

● Cuenta con una capa oculta para procesar los datos.

● Se usó backpropagation para entrenar la red. ● La clase kinect, la cual obtiene las coordenadas

y las envía a la red neuronal.

Page 9: Redes final

Nuestra Red

Page 10: Redes final

Pre-procesamientoLa primera etapa que realizamos fue la del pre-procesamiento.

Nuestro pre-procesamiento consta de obtener los valores de las coordenadas del movimiento de la mano o el dedo que detecte Kinect.

Luego de obtener los valores, nosotros solo mostramos a la entrada de la red los valores que realmente se necesitan (valor de x1, valor de x2).

Page 11: Redes final

Pre-procesamiento

Page 12: Redes final

Entradas...Como entrada a esta neurona utilizamos un arreglo con n coordenadas, cada coordenada consta de un conjunto de coordenadas x,y.

Estas coordenadas x,y son los pixeles en la imagen que detecta el Kinect, el cual solamente detecta una imagen de 640 x 480.

Page 13: Redes final

SalidaPara obtener nuestra salida, la cual nos dice si el movimiento es hacia la izquierda o hacia la derecha, se compara con el valor 320 ya que es el valor medio de la ventana.

Por lo tanto si al calcular la sumatoria de las entradas por los pesos el valor obtenido es mayor a 320 es un movimiento a la derecha, si es menor sería clasificado como un movimiento a la izquierda

Page 14: Redes final

Salida del programaLa salida que nos importa es la segunda lista. Cada ejecución lanza una respuesta diferente, la cual claramente nos dice que el cálculo del error esta mal.

Page 15: Redes final

Complicaciones: BackpropagationEn una red supervisada, el problema surge al momento de entrenarlas ya que sólo se conoce la salida y la entrada de la red, de forma que no se pueden ajustar los pesos sinápticos asociados a las neuronas de las capas ocultas, ya que no podemos inferir a partir del estado de la capa de salida como tiene que ser el estado de las capas ocultas.

Page 16: Redes final

BackpropagationEl entrenamiento mediante backpropagation consiste en:● Empezar con unos pesos sinápticos cualquiera

(generalmente elegidos al azar).● Introducir unos datos de entrada (en la capa de

entradas) elegidos al azar entre los datos de entrada que se van a usar para el entrenamiento.

● Dejar que la red genere un vector de datos de salida (propagación hacia delante).

Page 17: Redes final

Backpropagation● Comparar la salida obtenida con la salida deseada.● La diferencia obtenida entre la salida generada y la

deseada (denominada error) se utiliza para ajustar los pesos sinápticos de las neuronas de la capa de salidas.

● El error se propaga hacia atrás (backpropagation), hacia la capa de neuronas anterior, y se usa para ajustar los pesos sinápticos en esta capa.

● Se continúa propagando el error hacia atrás y ajustando los pesos hasta que se alcance la capa de entradas.

Page 18: Redes final

Fuentes● Libro: Inteligencia Artificial con aplicaciones a la

ingeniería.Ponce Cruz, Pedro.Marcombo.1ª ed● alimanya/backprop● galaxy.agh.edu.pl