Entrenamiento de un carrito usando redes neuronales
1. Implementación del auto guiado de robots móviles usando
redes neuronales.
SISTEMAS INTELIGENTES
2011-1
VIII
5ta Semana, Hasta el domingo 14 de mayo
2. RESUMEN
El siguiente informe de práctica consiste en la implementación del auto guiado de robots
móviles usando redes neuronales artificiales, analizando y aplicando estrategias que nos
permita dar instrucciones al robot móvil de tomar decisiones de encaminarse o decidir por
donde o que camino debe tomar para llegar a la meta en lugares o entornos desconocidos
para el mencionado anteriormente.
INTRODUCCIÓN
Hoy en día las aplicaciones informáticas tienen una gran importancia ante la sociedad, gracias
a ellas la vida cotidiana es mucho más sencilla.
Hablar de redes neuronales artificiales, es hablar de la inteligencia que los expertos humanos
dejan al interior de una máquina (por así decirlo), para que así los procesos rutinarios y
complejos sean capaces de realizar por una máquina, sin necesidad de la presencia de un
humano, podemos decir que las redes neuronales artificiales simulan una red neuronal
biológica, ya que se les puede entrenar hasta aprender un determinado aprendizaje y dar
resultados con muy buena precisión y porcentajes mínimos de error.
En éste trabajo vamos a realizar un autoguiado para un robot móvil, hemos aplicado o
entrenado: la red neuronal MLP (Multi-capa perceptrón) y también la red neuronal perceptrón
simple, utilizando como IDE y Framework el software JOONE y con los resultados del software
JOONE hemos aplicado un pequeñito aplicativo en EXCEL y así poder tener una mejor idea
de lo que se requiere y ver que nuestro robot o nuestra red neuronal funciona correctamente
dando los resultados esperados.
RESULTADOS:
Software utilizado:
Para ésta actividad se ha utilizado el software JOONE para entrenar nuestra red neuronal en
el autoguiado del robot móvil, y se ha utilizado Microsoft EXCEL para implementar una
pequeña programación con los resultados que nos dio JOONE y así tener una mejor idea de
lo se desea y verificar que los resultados de e nuestra red funciona correctamente (en éste
caso autoguiado del robot móvil).
Topología de la red:
Hemos utilizado o entrenado dos topología de red neuronal: MLP (Multi-Layer Perceptón) y
Perceptrón Simple, hemos graficado estas neuronas para un mejor entendimiento, en éste
caso vamos a tener 6 entradas, y 3 salidas.
Las entradas son: 5 sensores que va a tener el robot móvil y la meta donde va a llegar el
mismo.
Las salidas son: Girar 45 grados a mi izquierda, Avanzar, y Girar 45 grados a mi derecha.
3. DESCRIPCIÓN DE ENTRADAS
SENSORES: trabajan con señales lógicas: activo =1, no activo=0.
META A LLEGAR: se trabajará con ángulos:
Cuando es de -11° a -179° = -1
Cuando es de -10° a 10° = 0
Cuando es de 11° a 180°= 1
DESCRIPCIÓN DE SALIDAS:
Girar a 45 grados a la izquierda= -1
Avanzar: 0
Girar a 45 grados a la izquierda= 1
4. ENTRENANDO CON JOONE
ENTRENANDO UNA MLP
Como referencia al documento, vamos a entrenar una red neuronal MLP (Multi-Layer
perceptrón), Para eso utilizaremos 3 capas: Entradas (6), Capa oculta (4) y Salidas (3).
Iniciamos Joone, y creamos un archivo nuevo, luego con la herramienta sigmoid colocamos
las entrada, capa oculta y salida.
Para la entrada lo enlazamos con la herramienta File input (contiene la ruta del archivo
de entradas en éste caso un D:USSUSS-2017-1SISTEMAS
INTELIGENTESTrabajo individualjooneMLP Entradas-
5sensoresYmeta_Carrera_Sánchez.txt).
Para entrenar se necesita un la herramienta TEACHER que irá enlazada con file input,
especificando las salidas deseadas en el mismo archivo de las entradas.
Para Los resultados del JOONE, tenemos que utilizar la herramienta File output e
indicarle que archivo y en que ruta nos cree conteniendo los resultados (en éste caso
le he puesto C:JooneEditor2.0.0RC1-AlljooneMLP
resultadosMLP_Carrera_Sánchez.txt).
ENTRENAMIENTO:
Vamos a entrenar con los siguientes datos de entrada: donde quiere decir son 9 columnas: 6
de entrada y 3 de salidas deseadas (estos datos lo tengo en un bloc de notas). Observamos
que nuestras salidas deseadas son 1;0;0 que quiere decir = Girar a 45 grados a la izquierda,
entonces cualquier número que se acerque más al cero es 0 y cualquier número que se
acerque más al uno es 1, por ejemplo si nos da como resultado: 0.997486388243191 = 1 y si
es 0.002503980370318022=0.
5. EJECUTAMOS
Una vez que estamos preparados con las entradas y salidas deseadas, vamos a ejecutar para
que nos cree un archivo con los resultados que el software genera, y así podemos ver si los
resultados deseados son semejantes o iguales a nuestras salidas deseadas.
Para ejecutar o correr el programa, nos vamos a Tools, Panel control y le damos clic en RUN,
para esto he configurado para 1000 etapas y 5 patrones.
A continuación los resultados que genera JOONE son:
Observando la imagen anterior, podemos decir que nuestra red neuronal artificial se ha
entrenado correctamente, porque le hemos dicho que nos dé como resultado 1;0;0 y nos ha
respondido muy bien, por lo tanto con éstas entradas de sensores y meta nos da una salida
de girar a 45 grados a la izquierda.
INTERPRETACIÓN DEL ENTRENAMIENTO:
En el entrenamiento anterior ponemos las siguientes entradas:
En cada fila o patrón ponemos en los sensores el valor 1, que puede ser cualquier
sensor de los 5 que tenemos que se activó y eso nos dice que hay un obstáculo.
En la columna Meta podemos observar -1 que quiere decir que nuestra meta ésta entre
-11 grados a -179 grados.
6. Entonces con estas entradas queremos que nos dé como salida 1;0;0, que quiere decir
Girar 45 grados a la izquierda.
ENTRENANDO UNA PERCEPTRÓN SIMPLE
Como referencia al documento, también vamos a entrenar una red neuronal Perceptrón
Simple, Para eso utilizaremos 2 capas: Entradas (6), y Salidas (3).
Iniciamos Joone, y creamos un archivo nuevo, luego con la herramienta sigmoid colocamos
las entrada, capa oculta y salida.
Para la entrada lo enlazamos con la herramienta File input (contiene la ruta del archivo
de entradas en éste caso un D:USSUSS-2017-1SISTEMAS
INTELIGENTESTrabajo individualjoonePerceptrónSimple Entradas-
5sensoresYmeta_Carrera_Sanchez.txt).
Para entrenar se necesita un la herramienta TEACHER que irá enlazada con file input,
especificando las salidas deseadas en el mismo archivo de las entradas.
Para Los resultados del JOONE, tenemos que utilizar la herramienta File output e
indicarle que archivo y en que ruta nos cree conteniendo los resultados (en éste caso
le he puesto C:JooneEditor2.0.0RC1-AlljooneMLP
resultadosPerceptrónSimple_Carrera_Sánchez.txt).
ENTRENAMIENTO:
Vamos a entrenar con los siguientes datos de entrada: donde quiere decir son 9 columnas: 6
de entrada y 3 de salidas deseadas (estos datos lo tengo en un bloc de notas). Observamos
que nuestras salidas deseadas son 0;1;0 que quiere decir Avanzar, entonces cualquier
número que se acerque más al cero es 0 y cualquier número que se acerque más al uno es
1, por ejemplo si nos da como resultado: 0.997241431306053 = 1 y si es
0.0022356262277548524 = 0.
7. EJECUTAMOS
Una vez que estamos preparados con las entradas y salidas deseadas, vamos a ejecutar para
que nos cree un archivo con los resultados que el software genera, y así podemos ver si los
resultados deseados son semejantes o iguales a nuestras salidas deseadas.
Para ejecutar o correr el programa, nos vamos a Tools, Panel control y le damos clic en RUN,
para esto he configurado para 1000 etapas y 5 patrones.
A continuación los resultados que genera JOONE son:
Observando la imagen anterior, podemos decir que nuestra red neuronal artificial se ha
entrenado correctamente, porque le hemos dicho que nos dé como resultado 0;1;0 y nos ha
respondido muy bien.
INTERPRETACIÓN:
En el entrenamiento anterior ponemos las siguientes entradas:
En cada fila o patrón ponemos en los sensores el valor 0, que quiere decir que todos
están desactivados y eso nos dice que NO hay un obstáculos.
8. En la columna Meta podemos observar 0 que quiere decir que nuestra meta ésta entre
-10 grados a +10 grados.
Entonces con estas entradas queremos que nos dé como salida 0;1;0, que quiere decir
Avanzar sin girar.
Trabajando con los resultados:
He trabajo 2 pequeños aplicativos en Excel para cada red RNA entrenadas, para dar una
mejor idea de lo que se quiere obtener o mejor dicho de cómo queremos que trabaje o
funcione nuestro robot móvil. Para eso he identificado con un código a cada entrada y sus
respectivos resultados de Joone y para mostrar en mensaje lo que el robot móvil decide en su
camino, solo tenemos que seleccionar el código de cada entrada que tiene un color rojo.
9. CONCLUSIONES
Si bien es cierto, no soy ningún experto en Redes Neuronales Artificiales, pero he
intentado hacer mi trabajo y he aprendido algo que me sirve en mi carrera profesional,
lo importante es hacerlo uno mismo y así aprender al menos algo.
Los resultados generados por el software JOONE fueron satisfactorios ya que
coinciden al 100% con nuestras salidas deseadas.
Hemos entrenado dos redes neuronales artificiales: MLP (Multi-Layer Perceptrón) y
Perceptrón Simple.
La cantidad de patrones entrenados a las redes antes mencionadas son de 15
patrones a cada red, con diferentes entrenadas y salidas, dando resultados
satisfactorios.
Se puede decir que las redes neuronales artificiales pueden hacer cosas que una
simple programación de código no lo haría, simplemente dando como entradas y
salidas valores únicos y luego los resultados ya pueden ser interpretados en
programación por el programador.
BIBLIOGRAFÍA
Concepción Marcos Provecho, R. G. (s.f.). AUTOGUIADO DE ROBOTS MÓVILES
MEDIANTE REDES. Recuperado el Mayo de 2017, de
https://drive.google.com/file/d/0B7tovM6OJY3ceUwtVXNQdUFJTjQ/view?pref=2&pli=
1
Guide, G. E. (s.f.). GUI Editor User Guide. Recuperado el Mayo de 2017, de
https://drive.google.com/file/d/0B7tovM6OJY3cZzIzR0ZkZllCbzA/view?usp=sharing
LUÍS HERNANDO RIOS G., M. B. (s.f.). GENERACIÓN DE TRAYECTORIAS PARA
UN ROBOT MÓVIL EMPLEANDO REDES. Recuperado el Mayo de 2017, de
https://dialnet.unirioja.es/descarga/articulo/4742539.pdf
Sipan, U. S. (Marzo de 2017). Tema 01, Tema 02, Tema 03. Obtenido de
https://campus.uss.edu.pe/CampusNet5/Shared/frmRedirect.aspx?8.269976E+08
ANEXOS
Tomada en la sala de mi casa,
Diseñando la red neuronal artificial MLP.
29/04/2017 10:00 PM Aprox.
Tomada en el cuarto de mi casa, Diseñando la
red neuronal artificial Perceptrón Simple.
03/05/2017 06:00 AM Aprox.
10. Tomada en mi centro de trabajo,
continuando el trabajo, en este caso
entrenando la red MLP. 05/05/2017
11:00 AM Aprox.
Tomada en mi casa, continuando con el
entrenamiento.
07/05/2017 07:30 PM Aprox.
Tomada en mi centro de trabajo, terminando con los entrenamientos de las 2 redes para
poder hacer el informe final. 10/05/2017 03:00 PM Aprox.
CUESTIONARIO DE PRUEBAS:
¿Cuántos patrones se van a entrenar a las RNA?
¿Qué valores se tomarán como entradas y salidas?
¿Los valores obtenidos son satisfactorios?
¿Se obtienen los mismos resultados con las diferentes neuronas entrenadas en éste
caso?
¿Se entrenó lo suficiente a las neuronas para decir que aprendió?
¿Los patrones que se utilizó fueron los correctos?