2. 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.
3. 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.
5. 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).
6. Red Supervisada
Las 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
7. Red Supervisada
Se utilizó este tipo de red ya que de antemano
se conoce la salida que queremos obtener en
base a un movimiento realizado (entrada).
8. 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.
10. Pre-procesamiento
La 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).
12. 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.
13. Salida
Para 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
14. Salida del programa
La 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.
15. Complicaciones:
Backpropagation
En 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.
16. Backpropagation
El 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).
●
17. 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.
18. Fuentes
● Libro: Inteligencia Artificial con aplicaciones a la
ingeniería.Ponce Cruz, Pedro.Marcombo.1ª ed
● alimanya/backprop
● galaxy.agh.edu.pl