Aprendizaje automático por refuerzo – Parte 4

  1. Conceptos esenciales
  2. Aprendizaje:
    • supervisado
    • sin supervisión
    • de refuerzo (estás aquí)

El aprendizaje automático por refuerzo ocupa un lugar interesante en el mundo de los problemas de aprendizaje automático.

Por un lado, utiliza un sistema de retroalimentación y mejora que se parece a cosas como el aprendizaje supervisado con descenso de gradiente.

Por otro lado, normalmente no utilizamos conjuntos de datos para resolver problemas de aprendizaje automático por refuerzo.

Dado que todos nuestros enfoques anteriores han dependido completamente de un conjunto de datos, puede parecer confuso cómo se puede relacionar este nuevo problema.

Ciertamente, existen diferencias entre el aprendizaje automático por refuerzo y lo que hemos hecho anteriormente; En muchos sentidos, el aprendizaje automático por refuerzo en sí es más similar a los problemas en el campo más amplio de la inteligencia artificial.

Al final del día, sin embargo, todavía hay un elemento de maestro y alumno. Y todavía aprendemos la lógica de nuestro problema a través de la retroalimentación. El aprendizaje automático por refuerzo es un buen ejemplo de cuán amplio puede ser el enfoque general de “aprendizaje”.

Aprendizaje automático por refuerzo: El problema

Imagine que se sienta en una mesa para un juego de blackjack. Nunca antes has jugado al blackjack. No conoces ninguna de las reglas y nadie tiene permitido decírtelo (raro, lo sé).

El crupier te dice “Tu total es un 19 duro, la carta ascendente del crupier es 10, puedes pararte o golpear”. Eliges “golpear” aunque no sepas qué significa todo eso. El crupier te dice ‘ he perdido y te quito el dinero.

¿Qué has aprendido de esto?

Probablemente la próxima vez que se te presente exactamente con la misma mano y la opción de hit o stand, elegirás pararte en lugar de la opción que falló la última vez.

No es mucho, pero es más de lo que sabías antes. Básicamente, esto es aprendizaje automático por refuerzo donde aprendemos a elegir las acciones correctas en función de los resultados de acciones anteriores en situaciones similares.

El aprendizaje automático por refuerzo funciona bien en situaciones en las que no sabemos si una acción específica es “bueno” o “malo” antes de tiempo. Pero nosotros podemos medir el resultado de la acción y descubrirlo después del hecho.

Este tipo de problemas son sorprendentemente comunes. Y las computadoras son muy adecuadas para aprender este tipo de patrón. El aprendizaje automático por refuerzo sigue siendo un algoritmo de aprendizaje. Pero tiene una serie de diferencias con respecto a lo que hemos cubierto antes, lo que requiere definir algunos términos nuevos.

Terminología del aprendizaje automático por refuerzo

El primer término es agente . La palabra “agencia” se puede definir más o menos como “La capacidad de actuar en el propio entorno”.

En ejemplos anteriores, nuestros modelos no hicieron nada más que responder pasivamente a los datos que se les presentaron, pero en el aprendizaje automático por refuerzo estamos entrenando algoritmos que pueden afectan activamente a su entorno. En otras palabras, estamos entrenando algoritmos con agencia. También conocidos como “agentes”.

Los agentes logran esto eligiendo una acción que afecta el medio ambiente que los rodea. Deciden esta acción examinando el estado que es el “estado del medio ambiente” en lo que respecta a ellos.

El estado es más fácil de entender con ejemplos (que veremos más adelante). Pero por ahora solo asuma que el estado contiene toda la información necesaria para elegir una acción.

Usaremos la opción para referirnos a la acción elegida entre todas las opciones en ese estado en particular, y la combinación de todas las elecciones que hace nuestro agente define su comportamiento . En última instancia, estamos tratando de aprender un comportamiento óptimo.

En el aprendizaje automático por refuerzo esto se logra a través del elemento maestro, que proporciona una puntuación para cada acción.

Un puntaje positivo denota una buena elección. Mientras que un puntaje negativo denota una mala. Puede haber múltiples opciones buenas y múltiples malas.

También puede haber cero elecciones buenas o malas en un estado dado. El objetivo final es encontrar la mejor opción entre esas opciones. El puntaje es la retroalimentación que nos ayuda a encontrarlo.

Para poner estos términos en el contexto de nuestro ejemplo anterior. Usted era el agente desde que tomaba decisiones. El total de su mano (19) y la carta superior del crupier (10) formaban el estado .

Las acciones disponibles para usted fueron “golpear” o “resistir” y, en el ejemplo, su opción fue “golpear”. La puntuación de esa elección fue perder el dinero que haya apostado.

Si jugaste cientos de manos, la combinación de todas tus elecciones definiría tu comportamiento cuando se trata de jugar al blackjack.

Enfocarse en los resultados, no en las elecciones

Tocamos algo antes que deberíamos ampliar en: Cuando puntuamos en el aprendizaje automático por refuerzo queremos juzgar los resultados de una elección en lugar de la elección en sí. Hay tres razones principales para juzgar los resultados en lugar de las acciones:

Primero, sabemos mucho más sobre el resultado que sobre el valor de cada acción. De hecho, el valor de las acciones es lo que estamos tratando de aprender. El hecho de que no las conozcamos está implícito. Si supiéramos el valor de cada acción en cada estado. No habría ninguna razón para el aprendizaje automático por refuerzo.

Segundo, el valor de algunas acciones puede cambiar incluso si el estado sigue siendo el mismo; Por lo general, este es el resultado de la aleatoriedad. Esto no afecta nuestro ejemplo de pintura de cercas, pero sí afecta a un juego como el blackjack. Elegir hit en un total de 15 en el blackjack a veces gana y otras no. Veremos más de esto más adelante.

Finalmente, tratar de recompensar acciones específicas en lugar de resultados puede conducir a un comportamiento extraño.

Imagine que estamos entrenando a un robot para pintar cercas: puede parecer que deberíamos recompensar al robot cada vez que elige “pintar” como su acción.

Para un humano, esto tiene sentido porque entendemos el contexto del problema: queremos que se pinte toda la cerca.

Sin embargo, todo lo que ve la máquina es que es recompensado por pintar. Por lo que podría pintar la misma sección de cercar sin cesar hasta que se apaga. Por extraño que parezca, ya que el robot no es recompensado por moverse. Esta es en realidad la estrategia óptima para nuestro sistema de puntuación.

Si cambiamos las recompensas para que se basen en estado – .En otras palabras, premiamos los resultados y no las acciones – luego obtenemos el comportamiento adecuado.

Desde la perspectiva del estado que permanece en un lugar y la pintura no hace nada porque la cerca está tan pintada como antes.

Sin embargo, mover y pintar una nueva sección se acerca al objetivo (y conduce a una puntuación más alta). Al enmarcar el problema correctamente obtenemos el comportamiento que queremos.

Aprendizaje automático por refuerzo: Comparación con la Clasificación Supervisada

Cuando observamos el ciclo central del aprendizaje automático por refuerzo que tenemos: Tomar una decisión (acción). Obtener retroalimentación (puntuación). Usar esa retroalimentación para mejorar la lógica.

Compare eso con el aprendizaje supervisado donde tenemos:

Tome una decisión (predicción). Obtenga retroalimentación (métrica de error). Use esa retroalimentación para mejorar la lógica.

Se ven muy similares porque, en términos de su proceso de aprendizaje, lo son. Ambos usan comentarios de una fuente bien informada para mejorar su lógica.

Vaya más allá de eso, sin embargo, y las cosas son diferentes entre los dos. La principal diferencia es cómo reciben y procesan los datos para aprender.

En el aprendizaje supervisado tenemos un conjunto de ejemplos de datos. Etiquetados con los resultados correctos. El modelo usa esos ejemplos y etiquetas para encontrar tendencias y patrones que pueden usarse para predecir el valor de respuesta.

Todo lo que un modelo de aprendizaje supervisado “sabe” proviene de este conjunto de datos de capacitación. El entrenamiento también es completamente pasivo: no existe la noción de que el modelo necesite hacer algo para generar o acceder a nuevos datos de entrenamiento.

En el aprendizaje por refuerzo ese no es el caso. Con el aprendizaje por refuerzo en lugar de los datos de entrenamiento etiquetados. Lo que obtenemos (a menudo) es un conjunto de reglas.

Tenemos reglas para determinar cuándo ciertas acciones son válidas, por ejemplo:

“Cuando el robot está al lado de una cerca, paint es una acción válida”.

Tenemos otras reglas que dictan cómo cambia el estado en respuesta a una acción. Por ejemplo “Si la valla está unpainted en el estado actual y el agente elige paint como la acción. La valla ahora está painted.

“La forma en que calificamos cada acción es en sí misma un conjunto de reglas. Una valla que va de unpainted a painted puede valer +10 pero pasar de ir de painted a painted no vale nada.

A esto se suma el hecho de que no tendremos acceso a un conjunto de datos completo que enumere todas las combinaciones posibles de estados, acciones y consecuencias.

En su lugar, estos deben ser descubiertos por elegir una acción y transformar el estado usando el conjunto de reglas.

Esto significa que el agente tiene que explorar eligiendo una acción. Transformando el estado y recibiendo retroalimentación.

En otras palabras, el proceso de aprendizaje requiere que el agente sea activamente haciendo algo , a diferencia de cualquiera de los otros algoritmos de aprendizaje que hemos visto hasta ahora.

¿Se preguntará por qué no podemos simplemente crear un conjunto de datos de todos los posibles pares de estado, acción y retroalimentación y aprender de esa manera?

Podemos, si es posible enumerar cada combinación. La mayoría de las veces, sin embargo, enumerar todos los estados posibles es no posible porque hay un número vasto, posiblemente infinito de ellos.

Terminaríamos con un conjunto de datos de billones de ejemplos (o más). También puede darse el caso de que realmente no sabremos qué estados son posibles incluso sin elegir algún punto de partida y aplicar acciones para ver qué nuevos estados emergen.

De cualquier manera, el resultado es el mismo: necesitamos un agente para aprender los estados, acciones y comentarios a través de la exploración . Tiene que elegir acciones aleatorias y ver qué pasa.

Vale la pena enfatizar aquí que a muchos estados solo se puede llegar realizando ciertas acciones. Y el agente solo puede aprender sobre estos estados al alcanzarlos primero:

si el robot de pintura de cercas quiere aprender sobre las acciones que resultan de una cerca pintada. Por ejemplo , pero toda la cerca comienza sin pintar. Luego debe elegir pintar una sección primero.

El hecho de que algunos estados solo son accesibles a través de una determinada combinación de acciones hace que aprender todas las acciones correctas sea mucho más difícil.

Esto es muy diferente a todo lo que hemos visto antes. Y necesita algunos términos más para describirlo. El concepto de esta red interconectada de estados y acciones se denomina espacio de estado .

El término “espacio” hace explícito el hecho de que un agente necesita “moverse” de un estado a otro a través de acciones. El acto de moverse por el espacio de estado en sí se llama transversal .

Nuevos desafíos

Como puede imaginar. Este tipo de problema crea un conjunto completamente nuevo de desafíos. Uno de los mayores problemas es solo el tamaño del espacio de estado en sí.

Muchos problemas de aprendizaje automático por refuerzo tienen espacios de estado que contienen miles de millones. Billones o incluso un número infinito de estados.

Estos espacios de estado masivos generalmente ocurren debido a:
  1. Estados muy complejos con una gran cantidad de variables.
  2. Estados que involucran aleatoriedad. Por lo que una sola acción podría conducir a una serie de resultados diferentes, o ambos.

Más técnicamente el término para esto es explosión combinatoria . A veces esto no se puede tratar realmente, otras veces podemos reducir el tamaño del espacio de estado ignorando cosas que no afectarán el comportamiento.

A veces, también podemos evitar explorar estados que probablemente no forman parte de ningún comportamiento óptimo y. Por lo tanto, probablemente nunca los alcanzaremos en la práctica. Hablaremos más sobre ambos más adelante en el ejemplo.

Esto nos lleva al concepto relacionado de exploración vs. explotación . Cuando un agente comienza a aprender. Verá estados en los que tiene poca o ninguna información la mayor parte del tiempo.

Entonces tiene sentido probar acciones aleatorias solo para ver qué sucede / ver a dónde conducen. Esto se llama exploración y ayuda al agente a desarrollar el conocimiento del problema.

Una vez que el agente ha adquirido algún conocimiento de estos estados iniciales. Vale la pena enfocarse solo en aquellos estados y acciones que parecen ser óptimos. En ese caso, el agente debe tomar las decisiones “correctas” en cada estado.

Este proceso se llama explotación porque el agente está explotando su conocimiento del problema para tomar decisiones.

La explotación nos permite refinar nuestras estimaciones de nuestras elecciones óptimas y atravesar una serie de estados que consideramos óptimos.

Pero que tal vez no sepamos lo suficiente. La elección óptima en sí misma se llama la opción “codiciosa” aquí porque es la mejor opción en ese momento. Ignorando cualquier consecuencia futura.

Hay opciones que no son codiciosas y nos llevan a una final consideración de la que no hablaremos mucho. No porque no sea importante, sino porque es demasiado complejo para cubrirlo en profundidad aquí.

Es posible que el comportamiento óptimo en un problema particular implique tomar decisiones no ambiciosas simplemente para alcanzar un estado que tiene una acción con una recompensa muy grande.

En otras palabras, necesitamos planificar con anticipación para llegar a un estado que tiene, una gran recompensa. una recompensa que compensa las elecciones subóptimas necesarias para alcanzarla.

Estos problemas se denominan problemas de planificación y requieren una forma de contabilizar las futuras recompensas así como las actuales.

Como dije, este es un problema complicado por sí solo y tiene un campo completo de enfoques diferentes. Por lo que no profundizaremos en esto. Pero es bueno saber que existe.

Esa fue una gran cantidad de información en un tramo corto. Pero la idea básica aquí es que en el aprendizaje por refuerzo tenemos un espacio de estado.

Y que un agente solo puede mejorar atravesando el espacio de estado y aprendiendo de los comentarios asociados con sus elecciones.

Es significativamente diferente de todo lo que hemos cubierto hasta ahora. Pero afortunadamente si comprende este concepto. Ha conquistado la parte más confusa del aprendizaje por refuerzo.

El proceso de aprendizaje en sí es bastante simple:

el agente obtiene retroalimentación inmediata sobre sus acciones y simplemente tiene que recordar la combinación de estado / acción / retroalimentación.

Enfoque

Habiendo discutido los diferentes aspectos del aprendizaje por refuerzo. Ahora podemos considerar un acercarse a ello. Hay varios elementos que necesitaremos resolver:

  1. Representación del estado:

    Necesitamos representar al estado de una manera que incluya toda la información que necesitamos, excluya la información que no necesitamos. Y si es posible reducir el tamaño del espacio de estado que deberíamos.

  2. Enumerar las opciones:

    Las opciones disponibles para nosotros pueden ser las mismas sin importar qué. Sin embargo, en algunos problemas. Las opciones cambian según el estado. Por lo que necesitaremos una forma de determinar qué opciones son válidas cuando le presentamos al agente el estado y su elección de acciones.

  3. Puntuación:

    Nosotros necesita una manera de calificar las acciones del agente. En algunos casos, esto puede ser obvio, por ejemplo. En los juegos de apuestas podemos usar la cantidad de dinero ganado / perdido, en otros casos tendremos que construir la puntuación nosotros mismos. Como mencionamos anteriormente con el ejemplo del robot de pintura de cercas. La forma en que calificamos las acciones es extremadamente importante para el éxito del algoritmo.

  4. Explorando:

    Necesitamos formas para que el algoritmo explore el espacio de estados. Esto, al menos, es bastante sencillo. Si hemos implementado todo lo anterior. Podemos explorar simplemente eligiendo una acción aleatoria de las que se nos presentan.

  5. Explotación:

    La explotación es un poco más difícil. Necesitamos poder almacenar los valores de las acciones que hemos elegido previamente. Esto implica registrar tanto la elección de la acción como el estado en el que la elegimos. Si los valores de las acciones nunca cambian. Simplemente necesitamos experimentar cada opción una vez. Si los valores de las acciones pueden cambiar entonces debemos probar repetidamente cada una de ellas. Y debemos almacenar algo así como el valor promedio de todas las veces que hemos elegido eso. El acto real de elegir la acción codiciosa simplemente implica buscar los valores de cada acción disponible en ese estado y elegir la que tenga la puntuación más alta esperada. Si necesitamos implementar la planificación y no siempre elegimos la acción codiciosa que esto necesita cambiar. Pero como antes no vamos a entrar en eso aquí.

Los problemas 1, 2 y 3 de esa lista dependen sobre el problema específico, por lo que no hay un enfoque general para tratar con ellos.

Sin embargo, resolver la compensación de exploración-explotación tiene algunos enfoques generales y uno de los más populares es el algoritmo epsilon-greedy .

En epsilon-greedy establecemos epsilon en un valor entre 0.0 y 1.0 y elegimos explorar con la probabilidad épsilon. Entonces, si epsilon = 0.9 exploramos el 90% del tiempo.

Con el tiempo, disminuimos el valor de épsilon. Por lo que hacemos la elección codiciosa cada vez más a menudo. En los problemas que requieren secuencias largas de acciones correctas.

Un valor bajo de épsilon significa que tenemos más probabilidades de seguir caminos de acción útiles que si estuviéramos explorando al azar, sin ignorar por completo la exploración.

Este es, naturalmente, el más útil para espacios de estado grandes y complejos.

Aprendizaje automático por refuerzo: Ejemplo

En la introducción de esta publicación. Hablé sobre el aprendizaje del blackjack utilizando solo el aprendizaje automático por refuerzo. Hagamos eso más concreto para demostrar que puede realmente hacerse.

Utilizaremos una versión simplificada del juego que elimina la división, la duplicación, la rendición y el seguro. Si no sabe qué significan esos términos.

No se preocupe porque no los utilizaremos. Para aquellos que desean un repaso rápido de las reglas restantes, pueden encontrar eso aquí .

Representación del Estado

Repasemos los problemas enumerados anteriormente. Primero tenemos que representar al estado, por cierto, probablemente la parte más difícil de este problema específico.

Como se mencionó anteriormente. Los problemas con un elemento aleatorio, como este, pueden tener un gran número de estados. Solo el reparto inicial de cuatro cartas tiene 6.497.400 estados posibles. Por lo que nos gustaría reducir eso si podemos.

También mencionamos que el problema de la explosión combinatoria puede ser ayudado si podemos simplificar el estado solo a lo que es necesario.

Esto es algo que podemos hacer aquí.

En primer lugar, el agente no sabrá el valor de la “tarjeta descendente” del distribuidor (la tarjeta boca abajo) en ningún momento cuando esté tomando decisiones.

Por lo que desde la perspectiva del agente podemos ignorarla. Ahora solo tenemos 132,600 estados, y una representación estatal que se ve así:

{
    Agent: [5 of Diamonds, 10 of Clubs],
    Dealer: [Jack of Spades]
}

Algunas cosas saltan aquí. En el blackjack, el palo de una carta no importa, y muchas cartas valen 10. Por lo que debemos usar solo el valor de la carta y nada más.

El orden de las cartas de manera similar no es importante: una mano [5, 10] es igual a una [10, 5]por lo que debemos asegurarnos de que el agente se dé cuenta de eso.

Podemos lograr esto, y más, cambiando el estado a uno que solo muestra el valor total de las manos desde la perspectiva del jugador.

Esto requiere que nos aseguremos de que algo trata automáticamente con ases, que pueden ser 1 u 11. Pero eso no es difícil de hacer (y en la mayoría de los casinos el crupier elige el valor que sea mejor para el jugador de todos modos).

Eso nos lleva a un estado que se parece a:

{ Agent: 15, Dealer:10 }

Ahora las manos como [10, 5] y [5, 10] son ​​las mismas. También hace que las manos como [8, 7] sean equivalentes a [11, 4] ya que ambas suman un total de 15.

También ignoramos la carta de presentación de los crupieres. A pesar de que las diferentes cartas de abajo son estados técnicamente diferentes, ya que no lo sabremos de todos modos.

Recuerde que queremos que el agente aprenda el comportamiento de un jugador, por lo que necesitamos que el estado represente con precisión solo lo que un jugador sabría.

Con estos cambios, la única carta del crupier puede ser cualquier valor de 2 a 11 (9 valores posibles), mientras que la mano del jugador puede ser de 4 a 21 (18 valores posibles).

Esto nos da un número total de 9 * 18 = 162 estados posibles. Teniendo en cuenta que comenzamos en más de seis millones de estados iniciales, esta es una mejora enorme .

Ahora pasamos a enumerar las acciones. Probablemente la parte más fácil de este problema. En cualquier momento siempre tendremos la opción de golpear o pararse, nada más y nada menos (recuerde que eliminamos las reglas que permitieron más acciones). Por lo tanto, enumerar las acciones es fácil.

Puntuación

Para el sistema de puntuación solo estamos considerando si la mano fue una victoria, pérdida o empate (“empuje” en términos de blackjack). En otras palabras, tratamos al agente como si apueste la misma cantidad en cada mano. Esto simplifica la puntuación suficiente para usar:

Winning a hand = +1
Losing a hand = -1
Tie (Push) = 0

En realidad aquí hay una arruga. Necesitamos dar retroalimentación sobre cada elección que haga nuestro agente, pero este sistema de puntaje solo considera las manos que se han completado.

En las manos donde golpeamos y no nos quebramos. Tenemos un estado que no se puede juzgar usando este sistema.

Cómo evitar esto?

La planificación es una respuesta obvia. Podríamos esperar a que termine la mano y asignar el valor final de esa mano a cada elección que lo conduzca.

Esto funciona, pero hay dos razones por las que no parece ideal aquí. Primero, esto puede llevar a comentarios ilógicos sobre algunas opciones.

Supongamos que la mano inicial es un 10 y el agente elige el hit. Esta es objetivamente la elección correcta porque no hay forma de reventar cuando el total es 10.

Después del golpe, nuestro total es 20 y el agente elige hit nuevamente. No sorprendentemente esto revienta y la mano es una pérdida.

¿Asignamos esa pérdida a ambas opciones a pesar de que la primera opción hit fue buena?

A la larga, probablemente funcionaría incluso si lo hiciéramos. Pero creo que la mayoría de la gente estaría de acuerdo en que esta puntuación no tiene mucho sentido.

Un segundo problema separado es que agregar planificación a un enfoque simple como este es una gran complejidad adicional. Si podemos evitarlo, deberíamos hacerlo.

Podemos hacer eso simplemente considerando que cada vez que aumentamos nuestro total sin reventar es generalmente algo bueno. No es tan bueno como ganar una mano.

Pero aún mejor que nada; llamaremos a este resultado Hit/increase.

Para manejar un caso de borde final. debemos considerar lo que sucede cuando golpeamos y disminuir nuestro total.

Lo que puede suceder cuando los valores de las manos blandas se vuelven difíciles (la mano contiene un As contando como 11 pero cambia a 1 después de golpear); llamaremos a eso Hit/decrease.

Naturalmente, esto es peor que Hit/increase y mejor que perder. Por lo que debemos elegir un valor entre -1 y 0.5.

Es difícil decir si golpear y disminuir el total es bueno, malo o neutral. Pero seguiré adelante y le asignaré un valor de -0.2.

Esto nos da nuestros puntajes finales de:

Winning a hand = +1
Losing a hand = -1
Tie (Push) = 0
Hit/increase = +0.5
Hit/decrease = -0.2

Es posible que estos valores no sean del todo precisos y que requieran más pruebas para encontrar los que generan una estrategia óptima.

En cualquier caso, esto nos permite marcar cualquier mano sin necesidad de esperar y ver el resultado final. Evitamos la complejidad adicional de la planificación simplemente agregando a nuestra puntuación.

Exploración y Explotación

Finalmente, llegamos a la parte de exploración / explotación del problema. La exploración es fácil, podemos elegir al azar entre hitstand con una simple mecánica de lanzamiento de monedas. La explotación es más complicada, pero no por mucho.

Solo necesitamos una estructura (como un hashmap / diccionario) que pueda registrar cada combinación de estado y acción, y promediar el valor de los resultados que hemos visto al realizar eso. Elegir la elección codiciosa es solo una cuestión de elegir la opción con el puntaje más alto estimado.

Algoritmo final

Ahora tenemos un agente que aprenderá blackjack. Podemos seguir el enfoque de épsilon codicioso de reducir la cantidad de exploración a medida que pasa el tiempo.

Pero en este caso el número relativamente pequeño de estados totales y el hecho de que no tenemos que preocuparnos por la planificación significa que obtendríamos el mismo beneficio.

Buena estrategia si exploramos al azar a través de suficientes manos (podemos simular fácilmente millones de manos para esto).

A pesar de no saber nada acerca de las reglas, y sin necesitar una programación compleja para la planificación o la estrategia, este enfoque simple puede encontrar un enfoque prácticamente óptimo para un juego de cartas en cuestión de segundos.

Un enfoque que probablemente superaría a todos menos a los jugadores humanos más diligentes en términos de eficiencia.

Conclusión

El aprendizaje automático por refuerzo introdujo dos cosas que creo que son útiles para cualquier profesional de aprendizaje automático. Primero, muestra cuán flexible puede ser el mecanismo de retroalimentación y mejora para generar una lógica, ya que este problema se presenta de una manera bastante diferente a todo lo que hemos visto antes.

Segundo, introduce el concepto de resolver un problema buscando a través de un espacio de estado. Resulta que muchos problemas en IA pueden conceptualizarse de la misma manera. Esto incluso se puede aplicar a las otras formas de aprendizaje automático que hemos cubierto.

Los parámetros que generamos para, por ejemplo, un modelo de aprendizaje supervisado son solo un conjunto de parámetros dentro del espacio de estado de todos los parámetros posibles.

Encontrarlos a través de un método que realiza pequeños cambios en los parámetros en cada paso (como el descenso de gradiente) se parece mucho a la búsqueda a través de ese espacio de estado.

No es una conexión esencial para entender, pero a veces es interesante darse cuenta de que diferentes algoritmos, la mayoría de los cuales parecen muy distintos y diferentes, son en gran medida formas diferentes de abordar el mismo problema abstracto subyacente.

Conclusión de la serie

Mi más sincero agradecimiento a cualquiera que haya leído parte o la totalidad de esta serie. Espero que haya proporcionado una buena visión de alto nivel de lo que sucede en el aprendizaje automático y ayudó a desmitificar un campo que a veces puede parecer mágico. Si hay solicitudes o sugerencias para futuras publicaciones, déjelas en los comentarios.

Dejá un comentario