Redes final
-
Upload
eduardo-triana -
Category
Documents
-
view
604 -
download
0
Transcript of Redes final
![Page 1: Redes final](https://reader036.fdocuments.net/reader036/viewer/2022071816/55abcf3e1a28ab85228b473a/html5/thumbnails/1.jpg)
Redes NeuronalesPresentación final
![Page 2: Redes final](https://reader036.fdocuments.net/reader036/viewer/2022071816/55abcf3e1a28ab85228b473a/html5/thumbnails/2.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022071816/55abcf3e1a28ab85228b473a/html5/thumbnails/3.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022071816/55abcf3e1a28ab85228b473a/html5/thumbnails/4.jpg)
Herramientas● Python● Kinect● OpenKinect(librería freenect)
![Page 5: Redes final](https://reader036.fdocuments.net/reader036/viewer/2022071816/55abcf3e1a28ab85228b473a/html5/thumbnails/5.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022071816/55abcf3e1a28ab85228b473a/html5/thumbnails/6.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022071816/55abcf3e1a28ab85228b473a/html5/thumbnails/7.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022071816/55abcf3e1a28ab85228b473a/html5/thumbnails/8.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022071816/55abcf3e1a28ab85228b473a/html5/thumbnails/9.jpg)
Nuestra Red
![Page 10: Redes final](https://reader036.fdocuments.net/reader036/viewer/2022071816/55abcf3e1a28ab85228b473a/html5/thumbnails/10.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022071816/55abcf3e1a28ab85228b473a/html5/thumbnails/11.jpg)
Pre-procesamiento
![Page 12: Redes final](https://reader036.fdocuments.net/reader036/viewer/2022071816/55abcf3e1a28ab85228b473a/html5/thumbnails/12.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022071816/55abcf3e1a28ab85228b473a/html5/thumbnails/13.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022071816/55abcf3e1a28ab85228b473a/html5/thumbnails/14.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022071816/55abcf3e1a28ab85228b473a/html5/thumbnails/15.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022071816/55abcf3e1a28ab85228b473a/html5/thumbnails/16.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022071816/55abcf3e1a28ab85228b473a/html5/thumbnails/17.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022071816/55abcf3e1a28ab85228b473a/html5/thumbnails/18.jpg)
Fuentes● Libro: Inteligencia Artificial con aplicaciones a la
ingeniería.Ponce Cruz, Pedro.Marcombo.1ª ed● alimanya/backprop● galaxy.agh.edu.pl