Aprendizaje por refuerzo: algoritmo Q Learning
Todos los seres vivos exhiben algún tipo de comportamiento, en el sentido que realizan alguna acción como respuesta a las señales que reciben del entorno en el que viven. Algunos de ellos, además, modifican su comportamiento a lo largo del tiempo, de forma que ante señales equivalentes se comportan de forma distinta con el paso del tiempo... en algunos de estos casos decimos que estos seres vivos han aprendido de su entorno (independientemente de si esa variación en la respuesta ha generado alguna ventaja o no en el individuo). De hecho, esta variación es la que aprovechamos cuando entrenamos un perro para que se siente cuando se lo pidamos.
Como ya hemos visto en entradas anteriores, el campo del aprendizaje automático estudia la generación de algoritmos que sean capaces de aprender de su entorno (en este caso, el entorno es el conjunto de datos que el algoritmo recibe en una etapa particular que se llama entrenamiento).

Aprendizaje por Refuerzo
Para simular el aprendizaje de sistemas biológicos reales necesitamos hacer algunas suposiciones que simplifican el comportamiento de nuestros agentes (o aprendices). Estas simplificaciones nos permitirán tener un sistema más flexible para proyectar diversas situaciones con el mismo sistema, y a la vez nos permitirá extraer conclusiones más generales acerca de las propiedades de los algoritmos que implementen estos sistemas de aprendizaje. En general, y como primera aproximación, supondremos que los aprendices siguen en su decisión un Proceso de Decisión de Markov
, es decir:

- El agente percive un conjunto finito, , de estados distintos en su entorno, y dispone de un conjunto finito, , de acciones para interactuar con él.
- El tiempo avanza de forma discreta, y en cada instante de tiempo, , el agente percive un estado concreto, , selecciona una acción posible, , y la ejecuta, obteniendo un nuevo estado, .
- El entorno responde a la acción del agente por medio de una recompensa, o castigo, . Formalizaremos esta recompensa/castigo por medio de un número, de forma que cuanto mayor es, mayor es el beneficio.
- Tanto la recompensa como el estado siguiente obtenido no tienen porqué ser conocidos a priori por el agente, y dependen únicamente del estado actual y de la acción tomada. Es decir, antes de aprender, el agente no sabe qué pasará cuando toma una acción determinada en un estado particular. Precisamente, un buen aprendizaje es aquel que permite adelantarse al agente en las consecuencias de las acciones tomadas, reconociendo las acciones que sobre estados concretos le llevan a conseguir con más eficacia y mayores recompensas, sus objetivos.

El objetivo del aprendizaje por refuerzo es extraer qué acciones deben ser elegidas en los diferentes estados para maximizar la recompensa. En cierta forma, buscamos que el agente aprenda lo que se llama una política, que formalmente podemos verla como una aplicación que dice en cada estado qué acción tomar. Dividiremos la política del agente en dos componentes: por una parte, cómo de buena cree el agente que es una acción sobre un estado determinado y, por otra, cómo usa el agente lo que sabe para elegir una de las acciones posibles.
Hay varias formas de implementar estos procesos de aprendizaje. En esta entrada nos centraremos en lo que se conoce como Q learning, una forma de aprendizaje por refuerzo en la que el agente aprende a asignar valores de bondad a los pares (estado, acción).
Para diseñar un algoritmo que use estas ideas hemos de hacer una distinción entre lo que es verdad en el mundo, y lo que el agente cree que es verdad en el mundo:

Si el agente supiera a priori los valores Q de todos los posibles pares (estado, acción) podría usar esta información para seleccionar la acción adecuada para cada estado. El problema es que al principio el agente no tiene esta información, por lo que su primer objetivo es aproximar lo mejor posible esta asignación de valores Q. Como los valores de Q dependen tanto de recompensas futuras como de recompensas actuales, hemos de proporcionar un método que sea capaz de calcular el valor final a partir de los valores inmediatos y locales. Para ello:
- Si una acción en un estado determinado causa un resultado no deseado, hay que aprender a no aplicar esa acción en ese estado. Si una acción en un estado determinado causa un resultado sí deseado, hay que aprender a aplicar esa acción en ese estado.
- Si todas las acciones que se pueden tomar desde un estado determinado dan resultado negativo, es conveniente aprender a evitar ese estado. Es decir, no tomar acciones desde otros estados que nos lleven a él. Por contra, si cualquier acción en un determinado estado da un resultado positivo, se debe aprender que es conveniente llegar a él. Este hecho es lo que permite propagar la recompensa de un par (estado, acción) a los pares de los estados adyacentes.
Matemáticamente, podemos formalizar el cálculo de los valores Q por medio de la aiguiente ecuación:
\(Q(s_t,a_t)= r(s_t,a_t) + \gamma \max_{a_{t+1
http://www.cs.us.es/~fsancho/?e=109
https://advancedtech.wordpress.com/2008/08/08/aprendizaje-por-refuerzo/
http://www.cs.us.es/~fsancho/?e=109
https://advancedtech.wordpress.com/2008/08/08/aprendizaje-por-refuerzo/
Comentarios
Publicar un comentario
Agregue aquí sus comentarios.
Gracias por sus aportes.