Redes Neuronales Cooperativas para el Control de un Robot Autónomo
División de Estudios de Posgrado e Investigación, Instituto Tecnológico de La Paz
Oscar Luis Ruíz Bernal, Saúl Martínez Díaz
[email protected],
[email protected]
Resumen
En este trabajo se propone el uso de redes
neuronales cooperativas para controlar un robot
autónomo. El entrenamiento de las redes se llevó a
cabo utilizando un algoritmo genético. Además se
realizó una comparación entre la estructura propuesta
y una estructura de red neuronal única. Los resultados
obtenidos por medio de simulaciones muestran un
mejor desempeño de la estructura cooperativa con
respecto a la estructura monolítica.
1. Introducción
En
se ha
los últimos años
incrementado
considerablemente la aplicación de redes neuronales
artificiales (RNA) en
la solución de problemas
diversos. En gran medida esto se debe a su capacidad
de aprender, generalizar y organizar datos [1]. Esta
idea resulta particularmente atractiva en el área de la
robótica, donde se trata de emular un comportamiento
inteligente en el robot para realizar una
tarea
determinada.
Uno de los aspectos aún en estudio de las RNA´s es
la estructura que debe tener la red. En [2] se utilizó una
RNA única para que un robot seleccionara una acción
entre un conjunto de acciones posibles. Bajo este
esquema se requiere una red grande de la cual depende
totalmente la tarea a realizar. Otra posibilidad que se
ha propuesto es el uso de varias redes que trabajan de
manera colaborativa. De este modo una tarea se divide
en sub-tareas más simples, cada una de las cuales se
distribuye entre cada red [3]-[7]. En [3] se propuso el
alineamiento de imágenes utilizando redes neuronales
cooperativas. En [4] se utilizó este enfoque modular
para prevenir intrusiones en redes de computadoras y
dispositivos móviles. En [5] se utilizó este tipo de red
modular para clasificar datos obtenidos por sensores
remotos. En [6] se propuso una estructura de sub-
agentes simples para controlar un robot autónomo
mediante el uso de múltiples RNA’s. Además, en [7]
se presenta una aplicación utilizando una arquitectura
de múltiples redes cooperativas para controlar un robot
dirigible. En este último caso los resultados muestran
que dicha arquitectura es más robusta a fallas del robot
que una arquitectura monolítica.
resolver una
cooperativas para
En este trabajo se propone una arquitectura de
tarea
RNA´s
determinada, utilizando un robot autónomo. La tarea
consiste en encontrar un objeto (una pelota), buscar un
contenedor y colocar el objeto. Además se presenta una
comparación de la capacidad de generalización de la
arquitectura propuesta con respecto a una arquitectura
monolítica. En ambos casos se utilizó un algoritmo
genético (AG) para entrenar las redes. Debido a sus
características, los AG´s y las RNA´s han tendido a
fusionarse en diversas aplicaciones de inteligencia
artificial [8]. El entrenamiento se efectuó de forma
simultánea en varias computadoras personales, para
incrementar su velocidad.
Figura 1. Estructura de red neuronal monolítica.
2. Redes neuronales
La arquitectura de las RNA´s utilizadas se diseñó
utilizando retroalimentación (red recurrente). Este tipo
de redes han demostrado ser más poderosas y tener una
Memorias del 5to.Congreso Internacional en Ciencias Computacionales CiComp 2012-26-mayor estabilidad que las redes no recurrentes en
aplicaciones de planeación de trayectorias y control
[9]. La estructura de red neuronal monolítica se
muestra en la figura 1. Por otro lado las redes
cooperativas tienen la misma estructura, la cual se
muestra en la figura 2.
En la red neuronal de estructura monolítica se
definen tres capas de neuronas una de ellas oculta, la
capa de entrada cuenta con doce neuronas, nueve
reciben información de los sensores de distancia, una
recibe cero o uno al haber capturado o no la pelota, y
las dos siguientes reciben retroalimentación de la capa
de salida. La capa oculta cuenta con 11 neuronas sin
retroalimentación de la capa de salida o de sí misma.
Finalmente se tienen dos neuronas de salida que
definen el movimiento de cada rueda del vehículo y
cada neurona retroalimenta a una neurona de entrada
diferente.
Figura 2. Estructura de red neuronal monolítica.
El modelo de redes cooperativas utiliza tres redes
neuronales con la misma estructura. La primera red se
configura para evitar chocar, la segunda para detectar
de manera lateral los objetos, y la tercera para detectar
de manera frontal los objetos.
red
seis neuronas, cada
En cada red cooperativa se definen tres capas de
neuronas una de ellas oculta, la capa de entrada cuenta
con
recibe diferente
información de entrada. La capa oculta cuenta con
cuatro neuronas sin retroalimentación de la capa de
salida o de sí misma. Finalmente se tienen dos
neuronas de salida que definen el movimiento de cada
rueda del vehículo y cada neurona retroalimenta a una
neurona de entrada diferente.
El valor final de salida que define la velocidad y la
dirección del vehículo es la sumatoria de las salidas de
las tres redes neuronales. Esto es, la neurona de salida
1 de cada red neuronal se suma para alimentar a la
rueda izquierda, la neurona de salida 2 de cada red
neuronal se suma para alimentar a la rueda derecha.
Se utiliza retroalimentación a sí misma para que
cada neurona establezca un nivel de “estados”, donde
una parte de la entrada sea un historial de los
comportamientos anteriores. Con
la finalidad de
incrementar la influencia de los comportamientos
anteriores, la entrada de estas neuronas se calcula por:
E = (S *0.2) + (E * 0.8)
(1)
Donde E es el valor de entrada y S es la salida que
se retroalimenta. El parámetro de umbral no se utiliza.
El resto de las neuronas se definen con la sumatoria de
todas las entradas y en cada neurona se utiliza como
función de activación la siguiente función, la cual
permite utilizar entradas continuas y discretas con un
rango de salida de [0, 1].
(2)
3. Algoritmo Genético
De acuerdo con Zbigniew Michalewicz [10] un
algoritmo genético está compuesto por 5 elementos:
Un individuo como una representación genética de
la solución del problema, el cual es evaluado para
seleccionar las mejores soluciones,
Un camino para crear una población inicial de
soluciones,
Una función de evaluación de la calidad de las
soluciones en términos de su eficiencia,
Operadores genéticos
intercambien
componentes genéticos en los hijos durante la
reproducción y
tal que
Un grupo de valores adecuados para los parámetros
del algoritmo genético.
Los AG´s se utilizan principalmente porque pueden
trabajar sobre varias soluciones de forma simultánea,
lo cual facilita su implementación en paralelo. Además,
al utilizarse en problemas de optimización son menos
susceptibles de quedar atrapados en óptimos locales,
comparados con los métodos de búsqueda local. Los
parámetros utilizados para el AG fueron:
Población = 100
Generaciones = 50
Tamaño del torneo = 3
Probabilidad de cruce = 70%
Probabilidad de mutación = 10%
Estos parámetros fueron obtenidos de manera
experimental, buscando aquellos que dieran mejores
resultados. Durante el cruce se hace una selección
aleatoria del número de cromosomas a intercambiar. El
porcentaje de mutación disminuye
cada
con
11xyeMemorias del 5to.Congreso Internacional en Ciencias Computacionales CiComp 2012-27-generación. Se utiliza el elitismo para conservar el
mejor de cada generación. El operador de selección por
torneo presenta la característica de preservar sólo a los
mejores individuos a diferencia del método de la ruleta
donde existe la posibilidad de que el peor calificado de
los individuos pase a la siguiente generación. El
número de individuos es de tres ya que da mayor
seguridad sobre
los mejor
calificados. Esta decisión va acorde al uso del elitismo,
el cual permite que el mejor de los individuos se
conserve para la siguiente generación, de modo que en
la última generación se tenga el mejor individuo hasta
ese momento.
la supervivencia de
En el caso particular de las redes independientes se
toman como un sólo individuo por lo que evolucionan
en su conjunto, esto es, se suma el valor de eficiencia
de las tres redes para estimar su valor al momento del
torneo y se seleccionan las tres para conformar el
siguiente
individuo. Al momento del cruce se
intercambian cromosomas entre las redes del mismo
tipo. La función de aptitud le da puntos por diferentes
conceptos:
El máximo valor se obtiene al depositar la pelota en
el contenedor (10,000).
Al encontrar la pelota (1,000).
Al detectar la pelota o el contenedor por los
sensores frontales se agrega 0.1 si la diferencia de
velocidad en ambas ruedas es menor a 0.05 (en un
rango de -3 a 3), en caso contrario se resta 0.1.
Al detectar la pelota o el contenedor por los
sensores laterales se agrega 0.1 si la diferencia de
velocidades de las ruedas en menor a 0.1 a favor
del sentido donde fue detectado el objeto, en caso
contrario se r
Comentarios de: Redes Neuronales Cooperativas para el Control de un Robot Autónomo (0)
No hay comentarios