Saltar al contenido

¿Cuál es la diferencia entre Q-learning y SARSA?

Te recomendamos que revises esta solución en un entorno controlado antes de enviarlo a producción, un saludo.

Solución:

Cuando estaba aprendiendo esta parte, también lo encontré muy confuso, así que reuní los dos pseudocódigos de R.Sutton y AGBarto con la esperanza de hacer la diferencia más clara.

ingrese la descripción de la imagen aquí

Los recuadros azules resaltan la parte en la que los dos algoritmos realmente difieren. Los números resaltan la diferencia más detallada que se explicará más adelante.

TL; NR:

|             | SARSA | Q-learning |
|:-----------:|:-----:|:----------:|
| Choosing A' |   π   |      π     |
| Updating Q  |   π   |      μ     |

donde π es una política ε-codiciosa (por ejemplo, ε> 0 con exploración), y μ es una política codiciosa (por ejemplo, ε == 0, NO exploración).

  1. Dado que Q-learning está usando diferentes políticas para elegir la siguiente acción A ‘y actualizar Q. En otras palabras, está tratando de evaluar π mientras sigue otra política μ, por lo que es un algoritmo fuera de la política.

  2. Por el contrario, SARSA usa π todo el tiempo, por lo que es un algoritmo de política.

Explicación más detallada:

  1. La diferencia más importante entre los dos es cómo se actualiza Q después de cada acción. SARSA usa la Q ‘siguiendo exactamente una política ε-codiciosa, como A’ se extrae de ella. Por el contrario, Q-learning utiliza el máximo Q ‘sobre todas las acciones posibles para el siguiente paso. Esto hace que parezca que sigue una política codiciosa con ε = 0, es decir, NO hay exploración en esta parte.

  2. Sin embargo, cuando realmente toma una acción, Q-learning todavía usa la acción tomada de una política ε-codiciosa. Es por eso que “Choose A …” está dentro del ciclo de repetición.

  3. Siguiendo la lógica de bucle en Q-learning, A ‘sigue siendo de la política ε-codiciosa.

Sí, esta es la única diferencia. Dentro de la política SARSA aprende valores de acción en relación con la política que sigue, mientras que Q-Learning fuera de la política lo hace en relación con la política codiciosa. En algunas condiciones comunes, ambos convergen a la función de valor real, pero a velocidades diferentes. Q-Learning tiende a converger un poco más lento, pero tiene la capacidad de continuar aprendiendo mientras se cambian las políticas. Además, no se garantiza que Q-Learning converja cuando se combina con la aproximación lineal.

En términos prácticos, bajo la política de ε-codicioso, Q-Learning calcula la diferencia entre Q (s, a) y el valor máximo de acción, mientras que SARSA calcula la diferencia entre Q (s, a) y la suma ponderada de la acción promedio. valor y el máximo:

Q-Learning: Q (st + 1,at + 1) = máx.aQ (st + 1,a)

SARSA: Q (st + 1,at + 1) = ε · mediaaQ (st + 1, a) + (1-ε) · máx.aQ (st + 1,a)

¿Cuál es la diferencia matemáticamente?

Como ya se describe en la mayoría de las otras respuestas, la diferencia matemática entre las dos actualizaciones es, de hecho, que, al actualizar el Q-valor para un par estado-acción (St, At):

  • Sarsa utiliza la política de comportamiento (es decir, la política que utiliza el agente para generar experiencia en el entorno, que normalmente es épsilon-codicioso) para seleccionar una acción adicional At + 1, y luego usa Q (St + 1, At + 1) (descontado por gama) como retornos futuros esperados en el cálculo del objetivo de actualización.
  • Q-learning no usa la política de comportamiento para seleccionar una acción adicional At + 1. En cambio, estima los rendimientos futuros esperados en la regla de actualización como maxA Q (St + 1, A). El max El operador utilizado aquí puede verse como “siguiendo” la política completamente codiciosa. Sin embargo, el agente no está siguiendo la política codiciosa.; sólo dice, en la regla de actualización, “supongamos que empezaría a seguir la política codiciosa de ahora en adelante, ¿cuáles serían mis futuros retornos esperados entonces?”.

¿Qué significa esto intuitivamente?

Como se mencionó en otras respuestas, la diferencia descrita anteriormente significa, usando terminología técnica, que Sarsa es un en política algoritmo de aprendizaje, y Q-learning es un fuera de la política algoritmo de aprendizaje.

En el límite (dada una cantidad infinita de tiempo para generar experiencia y aprender), y bajo algunas suposiciones adicionales, esto significa que Sarsa y Q-learning convergen en diferentes soluciones / políticas “óptimas”:

  • Sarsa convergerá a una solución que es óptima bajo el supuesto de que seguimos siguiendo la misma política que se utilizó para generar la experiencia. A menudo, esta será una política con algún elemento de aleatoriedad (bastante “estúpido”), como épsiloncodiciosos, porque de lo contrario no podemos garantizar que convergiremos a nada en absoluto.
  • Q-Learning convergerá a una solución óptima bajo el supuesto de que, tras generar experiencia y formación, pasamos a la política codiciosa.

¿Cuándo usar qué algoritmo?

Un algoritmo como Sarsa es típicamente preferible en situaciones en las que nos preocupamos por el desempeño del agente durante el proceso de aprendizaje / generación de experiencia. Considere, por ejemplo, que el agente es un robot caro que se romperá si cae por un acantilado. Preferimos que no se caiga con demasiada frecuencia durante el proceso de aprendizaje, porque es caro. Por eso, nos preocupamos por su desempeño durante el proceso de aprendizaje. Sin embargo, también sabemos que necesitamos que actúe de forma aleatoria a veces (por ejemplo, épsilon-codicioso). Esto significa que es muy peligroso para el robot caminar junto al acantilado, porque puede decidir actuar al azar (con probabilidad épsilon) y caer. Por lo tanto, preferimos que aprendamos rápidamente que es peligroso estar cerca del acantilado; Incluso si una política codiciosa pudiera caminar junto a ella sin caerse, sabemos que estamos siguiendo una política de codicia épsilon con aleatoriedad, y nos preocupamos por optimizar nuestro rendimiento dado que sabemos que a veces seremos estúpidos.. Esta es una situación en la que Sarsa sería preferible.

Un algoritmo como Q-aprendizaje Sería preferible en situaciones en las que no nos importa el desempeño del agente durante el proceso de entrenamiento, pero solo queremos que aprenda una política de codicia óptima a la que cambiaremos eventualmente. Considere, por ejemplo, que jugamos algunos juegos de práctica (en los que a veces no nos importa perder debido a la aleatoriedad), y luego jugamos un torneo importante (donde dejaremos de aprender y cambiaremos de épsilon-codicioso a la política codiciosa ). Aquí es donde Q-learning sería mejor.

Si guardas alguna indecisión y disposición de enriquecer nuestro ensayo puedes añadir una nota y con gusto lo analizaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *