Estás leyendo la publicación: ¿Cómo se utilizan los árboles de comportamiento en el aprendizaje por refuerzo?
En el escenario reciente, el aprendizaje por refuerzo es un campo en evolución donde podemos ver que varios grandes grupos de investigación como OpenAI y DeepMind han realizado varias formalidades e implementaciones del mismo. Por otro lado, los árboles de comportamiento se desarrollan originalmente en las industrias del juego y se utilizan principalmente para realizar acciones o conjuntos de acciones de manera gerencial. En este artículo, analizaremos la intuición de los árboles de comportamiento y, a continuación, podemos usar este árbol en el aprendizaje por refuerzo. Los puntos principales que se discutirán en este artículo se enumeran a continuación.
Tabla de contenido
- ¿Qué es un árbol de comportamiento?
- ¿Qué es el aprendizaje por refuerzo?
- Árbol de comportamiento en el aprendizaje por refuerzo
Comencemos la discusión entendiendo el árbol de comportamiento.
¿Qué es un árbol de comportamiento?
En los últimos años, hemos sido testigos de que la realización de tareas con inteligencia artificial se está volviendo compleja. El diseño de un agente de inteligencia artificial necesita aprender una lista extendida de acciones con anticipación. Esta lista de acciones y la forma de resolver esas acciones a través de un agente requiere un algoritmo de planificación.
En los algoritmos de planificación de un agente, los árboles de comportamiento se pueden considerar como una forma de construir, controlar y estructurar el código relacionado con la acción o la tarea. Usando el árbol de comportamiento, podemos administrar de manera efectiva una gran base de código a través de jerarquías y modularidad, y enfatizar la legibilidad humana y la reutilización. La siguiente imagen se puede considerar como una representación de un árbol de comportamiento básico.
En el ejemplo anterior, el propósito del agente es levantar el teléfono, contestar la llamada, cortar la llamada y colgar el teléfono.
Como sugiere el nombre, el árbol de comportamiento es una estructura de árbol similar al otro tipo de árbol. Donde el nodo raíz puede ser considerado como el punto de partida de la ejecución de un árbol. El árbol generalmente es operado por la señal de consulta generada en el nodo raíz. Estas señales luego se distribuyen por todo el árbol y el estado de ejecución de la señal se detiene por el comentario de éxito o falla de cualquier nodo. El estado de ejecución representa el proceso en curso en el nodo y la observación final representa el resultado correspondiente del nodo.
El comentario final del nodo regresa al nodo principal mediante retropropagación, donde los padres pueden decidir buscar otro nodo o propagar la señal a más nodos secundarios de su nodo secundario. Por retropropagación, el resultado de cada nodo llega al nodo raíz y esto provoca la generación de nuevas señales de consulta. Todo esto funciona en un bucle cíclico, repitiendo continuamente la ejecución del árbol. El comportamiento de respuesta del árbol al medio ambiente es generado por el ciclo cíclico que hemos discutido.
De acuerdo con el funcionamiento anterior de los nodos en el árbol de comportamiento, podemos dividir los nodos en este árbol en tres categorías:
- Nodos de ejecución
- Nodos de flujo de control
- Nodo decorador
Nodos de ejecución: En el árbol, los nodos Leaf pueden considerarse como nodos de ejecución que son responsables de actuar o definir condiciones utilizando la señal de consulta. Estos nodos pueden ser de dos categorías:
- Nodos de acción: Estos son los nodos que son responsables de contener la definición de todo el comportamiento de bajo nivel que se puede utilizar para controlar a cualquier agente. Podemos decir que estos nodos en el árbol están formados por códigos de cualquier subtarea definida que un árbol de comportamiento necesita realizar. Puede haber algunas condiciones definidas en los nodos de acción para la ejecución de cualquier acción. Con estas condiciones, un nodo de acción puede definir los comentarios de éxito o fracaso del proceso y también representar el estado de ejecución si el proceso tarda tanto en ejecutarse.
- Nodo de condición: Los nodos de condición son nodos que indican un predicado que se verifica cuando recibe una señal de consulta. El valor de verdad del predicado definido es la razón para representar el éxito o el fracaso. Las condiciones se modelan considerando la observación realizada por el agente en el entorno y el estado interno de la memoria del agente. Si ocurre algún cambio en el entorno, los nodos de condición le permiten al agente decidir la acción con la ayuda de los nodos de flujo de control.
Nodos de flujo de control: Estos nodos son nodos no hoja con al menos un nodo secundario. Estos nodos son los encargados de definir las relaciones entre los diferentes nodos. Estos también se pueden usar para representar sub-ramas del árbol. Todos los tipos de nodos pueden ser nodos secundarios de nodos de flujo de control. Podemos categorizar los nodos de flujo de control en las siguientes categorías:
- Secuencia: Estos nodos iteran el procedimiento hasta que un estado de falla o ejecución no regresa de un nodo secundario. Esto significa que estos nodos mantienen sus nodos secundarios en iteración hasta que no aparece el estado de éxito.
- Retroceder: Estos nodos tienen la funcionalidad inversa a los nodos de secuencia. Esto significa que la iteración funciona hasta que se realiza correctamente o se devuelve el estado de ejecución desde un nodo secundario.
- Paralelo: Estos nodos son responsables de la ejecución de los nodos secundarios todo el tiempo. Devuelven un Éxito si todos los hijos devuelven un Éxito o un Fallo si algún hijo devuelve un Fallo.
Nodo decorador: Estos nodos se pueden considerar como una mezcla de los nodos de flujo de control y ejecución. Es principalmente responsable de definir la política para los tiempos cuando un nodo secundario recibe la señal de consulta. Estos nodos se pueden usar para describir la lógica personalizada y estos nodos dependen de la implementación específica. Un ejemplo de lógica personalizada puede ser un nodo de inversión donde el trabajo de un nodo de inversión es cambiar el estado de un nodo fallido a correcto o viceversa.
La siguiente tabla puede ser una representación del resumen de todos los nodos en el árbol de comportamiento.


Fuente de imagen
Como llegamos a saber, el motivo detrás del árbol de comportamiento es ordenar las acciones de un agente de forma secuencial. Tomando el ejemplo anterior de contestar el teléfono, podemos decir que el agente intentará contestar el teléfono, si el agente falla, intentará contestar el teléfono nuevamente y, si tiene éxito, intentará contestar y cortar el teléfono. después de completar todas las tareas. El agente finalmente colgará el teléfono. Una cosa es notable aquí si el agente falla en alguna de las tareas, no significa que el proceso se detenga. Un agente intentará una y otra vez realizar la tarea hasta que lo consiga.
En esta sección, tenemos una breve introducción al árbol de comportamiento y, siguiendo los nodos, comprendemos cómo hacemos que un agente realice cualquier acción requerida. En la siguiente sección, veremos una pequeña introducción al aprendizaje por refuerzo para que podamos generar una mejor comprensión del motivo de este artículo.
¿Qué es el aprendizaje por refuerzo?
Como se explica brevemente en este artículo, el aprendizaje por refuerzo es una sección del aprendizaje automático en la que hacemos que una computadora aprenda a realizar cualquier tarea mediante una interacción repetida de prueba y error con un entorno que puede ser dinámico. Ir en la dirección más profunda El problema de RL se trata de maximizar
recompensas actuando en un entorno desconocido. En el procedimiento, un agente realiza y elige la acción a realizar en el entorno. Como resultado de realizar una acción, un agente gana la recompensa que indica que es buena la transición a un estado particular.
La descripción de las recompensas combinadas se puede formular introduciendo el proceso de recompensa de Markov y el proceso de decisión de Markov. Empecemos por comprender el proceso de Markov.
Proceso de Markov: si en cualquier proceso, el final del proceso en el siguiente estado, dependiendo solo del estado actual del proceso, puede considerarse como un proceso de Markov. Por la fórmula, un proceso de Markov es:
P(St+1|St) = P(St+1|S1, .., St)
Dónde,
S = estado
P = probabilidad
Proceso de recompensa de Markov: El proceso de recompensa de Markov es un proceso de agregar la recompensa de un agente en el que, en resumen, podemos decir agregar una recompensa por la transición a cada estado y maximizar esa recompensa para el siguiente y todos los estados futuros en forma de un proceso de Markov.
La ecuación de Bellman se puede utilizar para expresar la suma de la recompensa de la siguiente manera:
v(s) =E[Gt|St = s] =E[Rt+1 + γGt+1|St = s] =E[Rt+1+γv(St+1)|St=s[Rt+1+γv(St+1)|St=s
Dónde,
S = suma de las recompensas
Y = factor de descuento
Proceso de decisión de Markov: Es similar al proceso de recompensa de Markov pero aquí además la decisión que puede tomar un agente con respecto a cualquier acción. Las decisiones en el RL dependen de la política definida por el ser humano. Usando el MDP podemos establecer la función de valor de estado y la función de valor de acción de la siguiente manera:
vπ(S) = Eπ(Gt |St = s)
La función de valor de estado se puede considerar como el rendimiento esperado del estado y actuando de acuerdo con la política,
qπ(s, a) = Eπ(Gt |St = s, At = a)
La función acción-valor se puede considerar como un rendimiento esperado del estado al tomar medidas y actuar de acuerdo con la política.
A partir de la definición anterior, podemos definir una configuración de aprendizaje por refuerzo como un procedimiento para entrenar a un agente para que aprenda usando el espacio de acción, y hablando del árbol de comportamiento podemos considerarlo como un espacio de acción. En la siguiente sección, veremos cómo se puede usar un árbol de comportamiento en el aprendizaje por refuerzo.
Árbol de comportamiento en el aprendizaje por refuerzo
En la sección anterior, hemos introducido el árbol de comportamiento y el aprendizaje por refuerzo. Ahora, si hablamos del árbol de comportamiento, podemos decir que diferentes nodos del árbol son responsables de completar cualquier acción de un agente y, mediante el aprendizaje por refuerzo, podemos decir que es todo el procedimiento para hacer que un agente trabaje en un procedimiento aprendiendo de el medio ambiente mientras obtiene recompensas. Hablando de la combinación de árbol de comportamiento y aprendizaje por refuerzo, podemos realizarlo de las siguientes maneras:
- En la categorización de los nodos del árbol de comportamiento, hemos discutido el nodo de flujo de control. Este nodo se puede utilizar en el espacio de acción del algoritmo RL. Generalmente, para este propósito, usamos los nodos de acción. Usando el nodo de acción, podemos aprovechar el beneficio de administrar la legibilidad y la modularidad de cualquier acción del conjunto o jerarquía de nodos de flujo de control.
- Los nodos secundarios de los nodos alternativos también se pueden usar como espacio de acción en el algoritmo RL. Con esto, también podemos reordenar los nodos según la probabilidad de acción. Una idea básica detrás del procedimiento es proporcionar una recompensa a un agente cada vez que se activa una condición del árbol original y luego reordenar el nodo de respaldo de acuerdo con los valores Q para ese estado en particular. Este enfoque puede considerarse como un proceso de propagación de recompensas junto con el estado del árbol de comportamiento.
- Después de aprender el problema, los nodos de ejecución se pueden usar para integrar todo el problema de RL en un solo nodo de ejecución. Debido a la menor reactividad y al menor control en el árbol, esta combinación de RL y árbol de comportamiento solo se puede aplicar a acciones relativamente pequeñas y específicas.
- Los nodos de secuencia se pueden tratar como el espacio de acción para el árbol de comportamiento. Estas acciones se pueden usar para entrenar el algoritmo RL y se genera una tabla con el valor Q. Después de completar el entrenamiento, se puede asignar una secuencia al nodo de condición. Cada Condición tiene una tabla de consulta de estados que corresponden a una buena utilidad (recompensa alta) para su acción correspondiente
En esta sección, hemos visto algunas de las formas en las que podemos combinar el árbol de comportamiento en el RL.
Ultimas palabras
En este artículo, hemos discutido el árbol de comportamiento y con un ejemplo, hemos discutido su funcionamiento con las categorías de los nodos en el árbol de comportamiento. Junto con eso, hemos discutido una pequeña introducción al aprendizaje por refuerzo y cómo los árboles de comportamiento se pueden usar en el aprendizaje por refuerzo.