Aprendizaje Reforzado » Función Ventaja
Función Ventaja

Matemáticamente, la Función Ventaja, denotada como A(s,a)A(s,a), se define como la diferencia entre el valor de acción (Q-value) y el valor de estado (V-value):

A(s,a)=Q(s,a)V(s)A(s,a)=Q(s,a)-V(s)

Donde:

  1. Q(s,a)Q(s,a): es la función de valor de acción, que representa el valor esperado de tomar una acción aa en un estado ss y seguir la política óptima a partir de ahí. Básicamente es el valor que el agente espera obtener al tomar la acción aa en estado ss.

  2. V(s)V(s): es la función de valor de estado, que representa el valor esperado de estar en el estado ss y seguir la política óptima. Básicamente es la recompensa descontada en el estado ss.

Interpretación

La función de ventaja indica cuánto mejor es una acción específica aa en el estado ss en comparación con el valor promedio de todas las acciones posibles desde ese estado bajo la política actual. Si el valor de A(s,a)A(s,a) es positivo, significa que la acción es mejor que el promedio, mientras que un valor negativo indica que es peor que el promedio.

Uso en Algoritmos de Aprendizaje Reforzado

La Función Ventaja se utiliza en muchos algoritmos de Aprendizaje Reforzado, especialmente en aquellos basados en gradiente de política como Advantage Actor-Critic (A2C) y Proximal Policy Optimization (PPO). En estos algoritmos, la función de ventaja ayuda a guiar las actualizaciones de la política de manera más eficiente, enfocándose en aquellas acciones que realmente mejoran el desempeño.

Empareja las oraciones arrastrando los cuadros hasta que estén en verde. Las oraciones no pueden moverse entre columnas.

Ejemplo

Nuestro amigo Aifa quiere probar nuevas bebidas. En el supermercado hay 4 sabores de bebidas: Cereza, Melocotón, Limón y Naranja.

Aifa quiere tomar la que le dé más energía ⚡ pero no sabe cuál es porque nunca ha probado ninguna, asi que supone que todas le darán 5 de energía y por lo tanto todas tendrán la misma posibilidad de ser elegidas.

Decide probar una al azar y termina eligiendo la de Cereza. Al beberla le dio 8 de energía ⚡. Entonces ahora su cerebro se actualizará teniendo en cuenta la función de ventaja:

a=elegircerezaa=elegir cereza
s=eligiendobebidas=eligiendo bebida
A(s,a)=Q(s,a)V(s)A(s,a)=Q(s,a)-V(s)
A(eligiendobebida,elegircereza)=Q(eligiendobebida,elegircereza)V(eligiendobebida)A(eligiendo bebida,elegir cereza)=Q(eligiendo bebida,elegir cereza)-V(eligiendo bebida)
A(eligiendobebida,elegircereza)=85A(eligiendo bebida,elegir cereza)=8-5
A(eligiendobebida,elegircereza)=3A(eligiendo bebida,elegir cereza)=3

La ventaja A(eligiendobebida,elegircereza)A(eligiendo bebida,elegir cereza) es un valor positivo lo cual significa que la recompensa fue más grande de lo esperado.

Ahora vamos a actualizar nuestra tabla de valores esperados sumando la ventaja. Pero esta actualización no solo afecta a la energía que esperábamos tener, sino que también afecta a la probabilidad que tenemos en el futuro de elegir las bebidas porque recuerda que Aifa quiere la bebida que le de mayor energía y ahora sabemos con certeza que la de Cereza es la que más energía le da.

Supongamos otro escenario. Aifa decide probar otra bebida más y elige al azar la de Limón. Al probarla la energía que le dio fue de 2. Si aplicamos la fórmula de la ventaja obtenemos esto:

a=elegirlimona=elegir limon
s=eligiendobebidas=eligiendo bebida
A(s,a)=Q(s,a)V(s)A(s,a)=Q(s,a)-V(s)
A(eligiendobebida,elegirlimon)=Q(eligiendobebida,elegirlimon)V(eligiendobebida)A(eligiendo bebida, elegir limon)=Q(eligiendo bebida,elegir limon)-V(eligiendo bebida)
A(eligiendobebida,elegirlimon)=25A(eligiendo bebida, elegir limon)=2-5
A(eligiendobebida,elegirlimon)=3A(eligiendo bebida, elegir limon)=-3

La ventaja A(eligiendobebida,elegirlimon)A(eligiendo bebida,elegir limon) es un valor negativo lo cual significa que la recompensa fue más pequeña de lo esperado.

Ahora vamos a actualizar nuestra tabla de valores esperados con la nueva ventaja y las nuevas probabilidades de elección.

Con este ejemplo pudimos ver que la función de ventaja sirve para calcular la diferencia que hay entre la recompensa que esperamos por realizar una acción y la que realmente obtenemos y esto es importante ya que un agente cuando empieza a entrenar tiene valores aleatorios en su red neuronal y por lo tanto las primeras estimaciones van a ser erróneas y será necesario corregirlas.

También pudimos ver la relación que hay entre la energía que se gana al realizar una acción en un estado determinado y la probabilidad de que se vuelva a elegir dicha acción en el mismo estado en el futuro. En nuestro ejemplo pudimos ver que Aifa tomo la bebida de Cereza, esta supero la cantidad de energía que esperaba obtener y por lo tanto en el futuro habrá más probabilidades de que vuelva a elegirla incluso aunque no haya probado las otras. En el caso de la bebida de Limón consiguió menos energía de la esperada y por lo tanto en el futuro habrá menos probabilidades de que vuelva a elegirla incluso aunque no haya probado las dos restantes.

Conclusiones

La función de ventaja es una herramienta fundamental en aprendizaje por refuerzo que facilita la toma de decisiones más informadas, la reducción de la varianza durante el entrenamiento y la mejora de la eficiencia de los algoritmos de optimización de políticas. Al comparar directamente el valor de una acción con el valor promedio esperado de todas las acciones posibles en un estado, proporciona una medida más refinada de qué tan beneficiosa es una acción en un contexto dado.

Hemos llegado al final de este artículo. Espero que te halla resultado útil y que hallas disfrutado leyéndolo tanto como yo disfrute escribiéndolo 😁.