# Reinforcement Learning: Introduccion a Policy Optimization.  Reinforce #artificialintelligence

## Метаданные

- **Канал:** The Machine Learning Engineer
- **YouTube:** https://www.youtube.com/watch?v=CZgASJmRLvg
- **Дата:** 07.05.2026
- **Длительность:** 1:50:49
- **Просмотры:** 46

## Описание

En este video exploraremos RL Policy Optimization  — REINFORCE desde cero: matemática, código y conexión con RLHF. Construimos desde los fundamentos cómo funciona REINFORCE — el algoritmo de policy gradient que es la base de PPO y del finetuning de LLMs con RLHF.

No hace falta saber RL de antes. Arrancamos desde el MDP y llegamos hasta código funcional en PyTorch.
**¿Qué vas a aprender?**
▸ Qué es una policy y por qué optimizarla directamente (vs. aprender Q-values)
▸ Cómo se modela un MDP: estado, acción, recompensa, trayectoria y return descontado
▸ Por qué usamos policies estocásticas y cómo aparece la exploración de forma intrínseca
▸ El log-derivative trick — el insight matemático que hace posibles los policy gradients sin modelo del entorno
▸ El policy gradient theorem y qué significa cada término de la ecuación central
▸ Funciones de valor: V(s), Q(s,a) y la función de ventaja A(s,a)
▸ Las 4 variantes del policy gradient y cómo cada una reduce varianza sin cambiar el estimador
▸ Monte Carlo en REINFORCE: por qué es insesgado pero ruidoso, y cómo se normaliza
▸ El algoritmo REINFORCE paso a paso — con mapeo directo a código PyTorch
▸ Cómo la red neuronal aprende la policy episodio a episodio (evolución de los pesos)
▸ Exploración implícita vs. ε-greedy: por qué REINFORCE no necesita schedule manual
▸ Por qué los policy gradients son la base de RLHF y cómo PPO extiende esto

**El repositorio**

Suite de benchmarking de algoritmos de policy optimization sobre CartPole-v1. Incluye implementaciones independientes de REINFORCE, A2C, A3C, PPO y TRPO, un orquestador unificado para comparar todos los métodos, y scripts de agregación de resultados.

📌 Código: [enlace al repo]

Archivos clave de esta sesión:
- policy_gradient.py — implementación REINFORCE
- policy_gradient_benchmark.py — runner standalone
- run_all_comparison.py — comparación multi-algoritmo
- aggregate_results.py — agregación de corridas
- 03_policy_gradient.md — documento de referencia del algoritmo.

#ReinforcementLearning #DeepLearning #MachineLearning #DistributionalRL #PyTorch #Python

Codigo:
https://github.com/olonok69/Reinforcement_Learning_Policy_Optimization/blob/main/README_es.md

## Содержание

### [0:00](https://www.youtube.com/watch?v=CZgASJmRLvg) Segment 1 (00:00 - 05:00)

Hola, bienvenidos a mi canal de Machine Learning Engineer. Hoy vamos a ver otro vídeo en la serie Reinforcement Learning y el tema de hoy es policy optimization. Y como veis en el título de la presentación, la introducción, hoy haremos una introducción a esta a este tipo de algoritmos en reinforcement learning, que son el fundamento de lo que conocemos y luego veremos más tarde en el curso en la en esta serie que es el reinforcement running for para human feedback y de algunas algunos modelos muy conocidos como el GPT que todos conocemos de Openias técnicas para hacer el fine tuning de los modelos. Bien, hoy veremos la introducción e y veremos una demo también como solemos hacer, que es la optimización de la policy, de la política, de cómo interactúa el gente en un entorno. Y bueno, eh en los próximos vídeos veremos ya los eh algoritmos más complejos, que son los que digamos tienen más una utilidad, una utilidad más práctica. ya que los que vimos en la sección anterior de Coolarning difícilmente son utilizados en la práctica. Es cierto que los que más han tenido, digamos, un uso práctico, como os digo, de hecho, son la base de algunas de las técnicas que hoy día se están utilizando para entrenar los LLMs, eh pues son estos de derivados del policy optimization. no vieremos lo más básico que es el algoritmo reinforce reinforce, ¿no? Refuerzo, ¿no? Que es básicamente basado en lo que llaman el la simulación de Monte Carlo o Monte Carlos Simulation que es algo también bastante maduro y muy usado dentro de la industria, especialmente de la industria financiera. Muy bien, vamos allá. Mi nombre es Juan. Como bien sabéis, soy un ingeniero de sistemas con más de 30 años de experiencia en el sector de la tecnología y los últimos 10 años, bueno, ya 11, dedicados al mundo de la inteligencia artificial y el machine learning. Bueno, vamos a empezar el poco de recordatorio. Como bien sabéis, los esta es la taxonomía de algoritmos que hemos ido viendo. Eh los diferenciábamos, la primera gran diferencia era si el algoritmo trataba de modelar el entorno, o sea, modelar el sí, modelar el entorno o eh todas las dinámicas del entorno o si eh o si no, ¿no? Entonces, dentro de los que tenían querían lo que llaman model base, o sea, que se le da un modelo o que intenta aprender un modelo, ¿no? Eh, esto significa que trata de aprender todas las dinámicas, ¿no? solo en un entorno, imaginaros, estamos en un entorno, una ciudad que quieres y quieres ir de un punto A al punto B, pues lo que tratan estos modelos o les das una un modelo de cómo funciona la ciudad, todo, ¿no? Los coches, las señales, las aperturas de comercios, etcétera, o se das oh, intentan aprenderla. en los model free esto no pasa, no quieren saber cómo funcionan todas las dinámicas del eh del entorno. Simplemente tratan de o buscar lo que llaman una policy, una política o un punto A al punto B, que estos son los algoritmos policy optimization y luego están los modelos de la otra rama que llaman cool learning. Esto es lo que tratan de eh entender estando en una posición eh entre en una posición, ya sea la inicial, la final o una intermedia, tratan de saber cuál es la acción que más interesa tomar en ese en esa posición, ¿no? En ese estado. Eh, cada uno pues eh tiene sus pros y sus cons. Como se decía al principio, cool learning, eh lo primero no está o es difícil de aplicar a entornos continuos de acción. tonos continuos de acciones eh donde la eh digamos eh cuando tú eh entornos sí entornos variables de acción o entornos variables de eh de estado, ¿no?

### [5:00](https://www.youtube.com/watch?v=CZgASJmRLvg&t=300s) Segment 2 (05:00 - 10:00)

Entonces, eh cuando las variables que tratas de modelar son continuas, pues el cool learning es difícil de aplicar porque digamos está diseñado o se diseñó para entornos de estado y de acción discretos. Luego con la de las el distribuional, las redes distribucionales en las que generábamos distribuciones y el uso de neon networks se han podido adaptar, pero en principio eh no están diseñados para eso. Luego, además, el cool learning, pues digamos que hace expectativas de lo que es la todo el camino que va desde un inicio a un final, ¿no? O que o de todo el lo que se llama Enri Fosmerin en el episodio. Y eh estas expectativas las utilizan para eh decidir, ¿no? el si un estado es bueno o es malo, con lo cual pues digamos que tienen una visibilidad más estrecha, ¿no? Esto eh que qué significa que el camino que vamos a utilizar en el ejemplo que os estoy dando, quiero ir del punto A al punto B en una ciudad un punto, o sea, la el esa trayectoria o esa policy, esa forma de ir del punto A al punto B, tú eh no la aprendes, sino que la derivas de cada uno de las decisiones que ha ido tomando o que aprende a tomar el modelo en cada uno de esos estados. O sea, la policí es implícita eh de derivada de los eh de los estados que vas aprendiendo. En cambio, el en los algoritmos de policy optimization lo que estás aprendiendo es la policy en sí, ¿no? Con lo cual es la policy es explícita, ¿no? En los algoritmos de cool learning aprendes el qué estado es el mejor o qué acción es la mejor a tomar en ese estado y en la policy lo que haces es aprender, como os digo, la policy. Dentro de los algoritmos de policy veremos hoy el más sencillo, el que es el digamos el fundacional, como era el cool learning en la variante de Coolarning. Y luego en un vídeo posterior veremos ya las variantes más complejas. Estos algoritmos que veis, el A2C, la actor critic, el actor critic distribuido, el PPO. Este algoritmo, aunque no lo hayáis visto, lo estáis usando seguramente sin saberlo, que es al algoritmo que se utilizó y que utilizan eh con alguna mejora eh muchos LLMs eh para hacer el fine tuning, ¿no? Y para eh digamos eh optimizarlos. De hecho, GPT, el los GPT, lo de la serie, eh los modelos de OpenI usan PPO y TRPO, que es una variante. Y luego teníamos los modelos híbridos que tratan de tomar lo mejor de ambos mundos, ¿no? Bien, todo el tema de reinforcement learning, como sabéis, está basado en el marco decision process, que es bueno, pues un agente tiene una serie de componentes, el agente, el entorno y un agente al final pues eh mientras está interactuando con el entorno, pues eh digamos que está en un estado, puede ser el estado inicial, un estado intermedio, un estado final y mientras interactúa con el entorno, pues toma una acción Y esa acción pues tiene unas consecuencias. Las consecuencias son pues que pasa del estado uno al estado o del estado A al estado B o del estado T, como veis aquí, al estado T + 1 y hay una recompensa que puede ser positiva o negativa. O sea, disculpar. Con lo cual hay una serie, digamos, de componentes dentro que es el estado, la acción y la recompensa. Hay unas dinámicas que es pasar pues del estado uno al estado dos después de que toma su nación y luego hay una eh lo que llaman un descuento, un factor de descuento en la por lo cual valoramos más las eh recompensas inmediatas que las recompensas futuras. O sea, como en eh normalmente

### [10:00](https://www.youtube.com/watch?v=CZgASJmRLvg&t=600s) Segment 3 (10:00 - 15:00)

normalmente el tú lo que materializas es la digamos eh si estás en el en un en una posición, pasas a la siguiente, bueno, puedes tener una expectativa de llegar pronto o de llegar más tarde, ¿no? Pero lo que digamos siente el algoritmo, lo que materializa es lo que pasa en el siguiente paso, ¿no? Entonces puedes tener una expectativa de que vas a hacer eh ganar una recompensa en dos o tres o c 25 pasos más adelante, pero lo que cuenta, lo que tiene que tener más peso es lo que pasa en el paso siguiente, ¿no? Entonces, esto es lo que llaman el factor de descuento, ¿no? O sea, conforme el todo el reinforcement running está basado y el marco decision process está basado en las expectativas de ganancia futuro, ¿no? De ganancia. La ganancia puede ser una ganancia positiva que ganas más dinero, por ejemplo, o que tardas menos tiempo, o sea, que ganas tiempos llegar de un punto A al punto B o que simplemente eh una ganancia de que sobrevives más, ¿no?, en un juego, por ejemplo, ¿no? Pero claro, lo dicho, esto, la ganancia conforme digamos avanza en el futuro, o sea, son más pasos a un futuro más lejano, pues tiene menos influencia en el en el siguiente paso, o en el paso este que estás dando, ¿no? Con lo cual tienen un peso inferior. Luego también aquí hay que tener cuenta el entorno donde estás moviendo. entornos que no tienen un horizonte finito para el descuento o son eh en el imaginaros un problema continuo en el que digamos lo único que tienes que hacer es mantener como por ejemplo la conducción de un coche hasta que no para. Pues esto eh digamos tú no sabes, la gente no sabe per sé cuándo va a parar o cuándo se le va a indicar parar o por ejemplo un juego como estamos diciendo de que solo tienes que hacer mantenerte y ganar cuantos más puntos mejor, ¿no? Entonces ahí no hay un horizonte finito, digamos, en el cual eh puedas esto. Entonces le las recompensas se toman a un largo paso, ¿no? Normalmente lo que se hace aquí es cortar eh a un punto, aunque sea lejano de número de pasos, porque si no el problema es, digamos, infinito. No puedes tener un infinito número de pasos hasta que llegas al final. Hay otros entornos en los que hay un infinito, hay un número finito de de pasos, con lo cual ahí tienes una limitación. Por eso veréis que cuando interactuamos con los con los entornos hay dos variables, una que te dice si has llegado al objetivo y otra dice que se haado al número máximo de pasos que estableces para que digamos eh digamos haya un valor que digamos te pueda dar una retroalimentación positiva negativa de si lo que de si el camino que está llegando está estás en el buen camino o no camino. Bien, lo dicho, esto todo el reinformers reinforcement learning se basa en el mdp eh la realidad es que eh cualquiera que sea la definición del programa de del entorno, pues de lo que se trata es de eh una secuencia de pasos, sea finita o infinita, que te lleva desde un punto inicial a un punto final. El punto final, como os digo, el objetivo es la puede ser cualquier tipo de ganancia o evitar una pérdida. Esto es como se defina el la recompensa en el en el entorno. Y entonces aquí es otro de los conceptos que ya lo hemos visto desde la introducción, que es lo que es la trayectoria. La trayectoria que la podemos considerar, pues es una serie de pasos desde un inicio hasta un final, de un inicio a un final o hasta que consideras que, bueno, pues el lo que se llama el episodio, la trayectoria se ha terminado. Esto normalmente en los entornos que estamos viendo de del de la librería Gymnasium, eh pues esto normalmente está limitado a un número de pasos o de steps que llaman, ¿no? Esto

### [15:00](https://www.youtube.com/watch?v=CZgASJmRLvg&t=900s) Segment 4 (15:00 - 20:00)

luego tiene una asimilación muy sencilla o muy eh concreta con la con el entrenamiento de las redes neuronales. Puedes asimilar el episodio a lo que es una iPods y lo que y los steps pues a los steps de training, ¿no? A un proceso en el cual hay un fit forward y una B propagation en el entrenamiento de una red normal. Esto pues es bastante similar y es la una de las asimilaciones que se hacen, ¿no? Como os decía, el también hay una los retornos, ¿no? Como os decía, pues todos los retornos es el aprendizaje de estos agentes se basa pues en la una expectativa de retorno, de ganancia y esa expectativa se calcula pues e dándole más peso al retorno inmediato que a los a las recompensas futuras. y la las en el caso del policy optimization eh lo que estamos buscando es encontrar una política que sea aleatoria, ¿no? ¿Por qué? Porque aquí lo que estamos eh tratando de crear pues es una eh en el police optimization es una distribución de probabilidades sobre las acciones. Esto es eh en un entorno, como veremos ahora en un segundo, eh vamos a conocer pues eh mediante la interacción de la gente con el entorno, qué es lo que le interesa más hacer. en un en una posición en concreto, qué acción tomar. Y esto va a ir creando una serie, una distribución de probabilidades de que qué es lo que más le interesa hacer en ese en este en esa posición en concreto, si tomar a la derecha, tomar a la izquierda, ir para adelante, ir para atrás, ¿no? esto lo va a ir eh digamos depurando, haciendo o optimizando con respecto a la interacción que va haciendo o el entrenamiento que va haciendo de la gente. Y esto lo hace de una vez eh cuando el police optimization lo hacemos eh digamos de una de una vez en concreto. Eh tratamos de aprender la política en global y esta política va a ser una distribución de probabilidades sobre las acciones. Las acciones que son pues la acción que tomo en un punto en concreto, en un estado en concreto. O sea, ¿qué qué probabilidades va, o sea, hay de tomar la acción A, la acción B, la acción D, la acción D con respecto a la ganancia que voy obteniendo en el futuro. que lo que tratas de hacer aquí es aprender la eh la trayectoria completa, qué hacer en cada uno de los pasos intermedios y esa eso que vas a aprender es esencialmente una distribución de probabilidades sobre las acciones, las acciones que tomas en cada uno de los pasos de la trayectoria. ¿Qué es lo que a qué ayuda esto? a que haya expl a lo que recordaréis de eh de los del de lo que implementábamos en el Cool Earning, la exploración, explotación. Exploración era que, si recordáis, eh aprender, o sea, hacer algo nuevo en el entorno. Al principio sobre todo, pues bueno, tú no sabes cómo ir del punto A al punto B, pues pruebo, me voy a la derecha, luego izquierda. Exactamente. Pruebas. Eso es lo que llaman exploración. explotación es pues cuando ya has hecho varios intentos, pues eh has aprendido que ir a la derecha en este punto pues no ha sido muy acertado e ir a la izquierda pues ha te ha llevado más cerca del objetivo. Pues eso es la exploración explotaciones conforme el algoritmo. Al final recordar que todo esto de la del reinformering se basa en prueba y error, ¿no? analizar eh que si esa prueba y error que vamos haciendo eh pues te genera más ganancia, menos ganancia. Y muchos de vosotros seguramente habéis jugado en juegos, ¿no? Cuando empezáis con un juego nuevo, pues empezáis a probar cosas nuevas hasta que llegáis a la clave de cómo pues os o estar más tiempo vivos o cómo podéis pasar de una pantalla a otra. Esto es lo mismo. Al final un algoritmo, pues eso que estás haciendo tú es exploración, explotación, es exactamente

### [20:00](https://www.youtube.com/watch?v=CZgASJmRLvg&t=1200s) Segment 5 (20:00 - 25:00)

lo mismo. Y aquí pues le digamos que en Qarning lo que hacíamos era pues establecer un algoritmo que llamábamos Exilon Grady, que pues con un con una variable aleatoria que ibas decayendo conforme el entrenamiento, pues al principio explorabas mucho, luego explotabas. En el caso de eh luego introdujimos las redes eh las capas ruidosas para que esto eh la red neuronal aprendiera cuándo tenía que explorar o explotar, cuándo le interesaba más explorar o explotar. Y en el tema de policy optimization, esto va embebido en el entrenamiento. ¿Por qué? Porque lo que estás aquí haciendo es calcular una distribución de probabilidad sobre la acción que tomar en un caso en concreto. O sea, él al principio eh tomará, digamos, eh 50 y conforme va entrenando la red en ese paso, pues dice, imagínate, tienes como vamos a ver en el carpol que tienes dos acciones, eh, mover a la izquierda, mover a la derecha, pues era al principio es tirar una moneda. me voy a la derecha. Eh, va a ir eh haciendo pasos en una trayectoria. cuando llegue al final de la trayectoria, esto le habrá dado un recompensa positiva o negativa. Hará el cálculo de eh usando lo que veremos ahora, que es el teorema de la del policy optimization, y le dirá, "Bueno, pues mira, eh tomé esta decisión y esto me dio una recompensa de tal tipo, positiva o negativa. " Entonces va a rebalancear esa probabilidad en función de la recompensa que le ha dado el tomar esa acción en ese momento adecuado, ¿no? Con lo cual de esa manera va a ir modulando, ¿no? exploración, explotación en base a esas probabilidades que va recalculando en eh durante el entrenamiento y así hace en el caso de policy optimization eh la exploración, explotación, ¿no? Luego e cuando se está haciendo la optimización aquí vamos a utilizar también gradienten o lo negativo del gradient de scén que es lo que utilizamos normalmente para minimizar el los pues aquí hacemos gradient que es exactamente lo mismo, pero en este caso el la estas distribuciones de probabilidades hacen que los gradientes que se que se digamos eh que utilizas para hacer la fase de B propagación de B propagation son más suaves, ¿no? Entonces la optimización va eh digamos eh paso a paso. No hay grandes oscilaciones, hay menos oscilaciones que en el cool learning, pero como veréis también en el especialmente usando algoritmos que ya están muy superados, como es el de Reinforce, que es la simulación de Montecarlo, normal y corriente, eh pues también aquí pues el eh hay menos oscilaciones, obviamente que en el entrenamiento que si recordáis también en el current tuvimos que meter eh muchísimas mejoras hasta que se llega al algoritmo de Rainbow, que ya incorpora todas las mejoras para evitar la la las oscilaciones, el entrenamiento con una red dual, con la red Dueling, con el con las con el per, con todo esto. Esto no pasa per sé, solo necesitas una red para entrenar. O sea, con lo cual el entrenamiento es bastante más rápido que en cool learning, pero sí es cierto que el desde el más simple que es el reinforce hasta lo más complejo que es el TRPO o PPO, estos algoritmos pues eh pues obviamente también tienen eh oscilaciones y eh van disminuyendo conforme incrementas eh o la complejidad en el cálculo del en el error y cómo luego pues lo vas limitando, qué es lo que se hace en el PPO y todo esto en el en el algoritmo más simple que es reinforce es cierto que los gradientes son más pequeños que los que hay en un algoritmo como Coolarning sin mejoras y todo esto, pero eh hay diferencias eh sustanciales entre lo que es el algoritmo Reinforce y los algoritmos más complejos. disculpar. Eh, bien. Y luego eh aquí hay una cosa eh también eh

### [25:00](https://www.youtube.com/watch?v=CZgASJmRLvg&t=1500s) Segment 6 (25:00 - 30:00)

que es fundamental entre eh lo que es un algoritmo de policy optimization y un algoritmo de cool learning. Vamos a hacer una asimilación en el en el Imagínate que quieres aprender cuáles son los gustos de un cliente en un restaurante, ¿no? Pues la asimilación de esto sería que tú le vas en el policy, en el cool learning, tú le vas dando platos y observas si le gustas, no le gustas y vas a tener al final una serie de platos que le gustan y no le gustan al cliente. Y en la polic optimization vas a aprender las preferencias, ¿no? O sea, que es todos los platos que le puedan gustar o no le puedan gustar algo más un poquito más sofisticado. De hecho, de hecho, como veis, como recordaréis de la serie anterior, pues en Cool Earning, que es esta en el Coolarning, pues el eh lo que aprendes es eh un qué es lo mejor hacer en un estado en concreto, ¿no? ¿Qué acción mejor tomar, no? En cambio, en la en los polices vas a aprender el camino completo. Tardas más, obviamente, en aprender el camino completo, pero digamos que esto eh está todos los pasos están más entrelazados, ¿no? Es cierto también que puedes llegar a lo mismo con el Q learning, lo mismo que haces con el police optimization, pero digamos que al ser todo un conjunto, el integrar la exploración eh explotación está también incluida dentro del propio entrenamiento. Esto hace que el resultado sea más homogéneo, por decirlo de alguna manera, ¿no? Y esto es un poco lo que os viene a decir aquí la policy implicit o la policy explicit, ¿no? En el policy B la estás aprendiendo, en la policy, en el DQN, la estás derivando de los mejores estados que tomas con el ARMAX o con, sí, con el ARMAX al final, porque si recordáis incluso cuando estábamos utilizando las distribuciones con C51 o con el cuantil regression de QN, pues al final utilizas el Q+ para elegir la mejorción en ese a tomar en ese estado en concreto, ¿no? Y luego la policy se va a crear, la trayectoria se va a crear pues con los pasos que te dan la mayor ganancia en cada uno de los estados individuales. Esto es lo que luego tú aprendes en el policy optimization, pero de una simple vez, ¿no? vas a aprender mediante eh el aprendizaje de qué acción es mejor tomar o eh o sea, con qué probabilidad dará una acción con respecto a la ganancia que vas a tener en el en al final de la trayectoria del episodio. Y esto es lo que vas a ir modificando, o sea, vas a ir aprendiendo esas probabilidades en conjunto, ¿no? una por una y luego agregarlas, ¿no? Aquí lo aprendes en un solo conjunto. Un segundo. Bueno, el lo que os decía e la gran diferencia que teníamos entre los dos eh o las dos formas de entrenar un algoritmo o unos o cómo se estaban diseñados los algoritmos, ¿no? De hecho, también Cool Leearning está basado en la Belman Equation y el policy y los policy bases están todos basados en otro teorema que al final pues bueno, pues son eh combinaci es como un tema de bloques, todo deriva al final del marco decision process y cómo podemos digamos entender qué es lo mejor que puede hacer un agente en un momento determinado. La gran diferencia, no obstante, entre unos y otros, y lo podemos sumarizar así, es que los policy bases aprenden una policy, cómo llegar del punto A al punto B. Y esto lo hacen eh en un conjunto, ¿no? aprenden eh que, o sea, toda la trayectoria, los QLearning, los algoritmos basados en una función de valor, ya sea la función de valor, la Q value o la combinación de función, valor y función de ventaja

### [30:00](https://www.youtube.com/watch?v=CZgASJmRLvg&t=1800s) Segment 7 (30:00 - 35:00)

intentan quieren solo se basan en saber qué es lo mejor hacer en un estado en concreto. Si veis la diferencia, pues es bastante fundamental, ¿no? ¿Y cuál es la qué implicaciones puede tener? Como os digo, son eh unos construyen la policy, al final llegan al mismo resultado, construyen una policy para llegar del punto A al punto B, pero la policy que construye el cool learning, pues es la, digamos, agregando o sumando, eh, digamos pequeños trozos de la policy que va aprendiendo individualmente. En cambio, en los policy base aprenden una policy y van depurándola, van optimizándolo de principio a fin, ¿no? Vamos a ver qué de qué se basa, qué es eh la policy optimization, ¿no? La policy optimization se basa al final en lo que es el teorema, ¿no?, del policy gradient. Al final lo que queremos optimizar aquí es el retorno esperado de una trayectoria. Como os decía antes, si veis aquí hay varias formas de llegar a del punto A al punto B, ¿no? Pero tú lo que quieres llegar al final es, digamos, eh, a este punto, ¿no?, que es el de máxima máxima máximo reguar, ¿no? Y entonces aquí eh lo que queremos hacer es en digamos para formular el problema, lo que queremos hacer es maximizar el retorno esperado de una trayectoria, ¿no? O sea, lo que queremos hacer es yo quiero ir de quiero tener, o sea, mi las eh imaginaos que esto está, digamos, esta este plano eh o esta esto más bien es la representación de una función no lineal eh con una integral, pues tú quieres obtener con de esa función quieres obtener la máxima nota, ¿no? El máximo la máxima recompensa. Pues tú lo que quieres es de usando una trayectoria para ir desde aquí desde el punto cero hasta el punto X, pues quieres obtener una trayectoria que a mí me llegue al punto más alto de esta montaña. ¿Por qué? Porque tú no quieres llegar aquí, quieres llegar aquí arriba, ¿no? Y entonces dices, ¿cómo formular el problema? Pues bueno, yo quiero hacer una quiero maximizar el retorno de una trayectoria, o sea, la eh quiero maximizar, o sea, mi objetivo es maximizar el retorn el retorno esperado de las trayectorias. ¿Y qué es el retorno esperado? pues es el la recompensa en total promedio que hace que obtenemos de mostrar todas las trayectorias posibles. O sea, tú empiezas a hacer muestreo para llegar el punto A, pues llegas aquí me da un una recompensa. otra recompensa. Te vas por aquí y llegas a otro punto, ¿no? Entonces, pues esta expectativa tú la construyes pues digamos muestreando. Esto es en definitiva lo que hace el el Montecarro, ¿no? Va eh lanzando, o sea, creando trayectorias y modificando la probabilidad de esa trayectoria. ¿En base a qué? pues en base al retorno que va obteniendo. Dice, si tú te vas por aquí y observas que el retorno pues es cero o negativo, pues a esta trayectoria, eh, a esta acción que ha hecho que este en este punto en concreto se vaya por este camino, pues le vas a dar una prioridad menor que se la vas a dar a una trayectoria que va por este camino o partiendo de este punto. Si partes de este punto, pues lo mismo. Cada uno de estas pasos que va tomando, pues tú los le vas modificando las la imaginaros que los pasos que va tomando son estos, los puntos de inicio son todos estos que tienes aquí. Y a cada uno de estos pasos intermedios les vas a ir modificando las trayectorias en función del eh le vas a ir modificando, perdón, las probabilidades en función de la eh del retorno que te da al final de la trayectoria. pues la suma de todas eh de todas esas acciones que vas tomando por sus probabilidades es lo que vamos a

### [35:00](https://www.youtube.com/watch?v=CZgASJmRLvg&t=2100s) Segment 8 (35:00 - 40:00)

lo que llamamos eh expectedes, ¿no? esperado o el retorno esperado, ya que vas probando todo, o sea, y se van eh muestreando eh trayectorias y conforme vas muestreando, pues vas modificando, como os digo, las trayectoras, la suma de todas esas probabilidades por todas las trayectorias que vas probando, pues esto es lo que te va a dar la eh digamos la eh la fórmula, ¿no? el retorno, el retorno esperado para una trayectoria en concreto, ¿no? ¿Cómo puedes hacer esto en principio? Pues obviamente esto es un problema que se puede resolver pues como en este caso con los con un algoritmo de optimización. Eh, tú vas a definir una serie de parámetros. Eh, estos parámetros se van a ir eh progresando. Los parámetros pueden ser los parámetros de un algoritmo de optimización o de una red neuronal, que será lo que veramos que veamos más tarde. Este es el principio de cualquier algoritmo eh de optimización. tienes una serie de parámetros que le vas a sumar una un algo eh un rey de eh un ratio de aprendizaje y luego lo vas a multiplicar por un incremento positivo o negativo de eh de esos parámetros, ¿no? O sea, el parámetro para poder llegar, para poder ir maximizando esto, vas a optimizar al final un una función como la que ves aquí, ¿no? O sea, tienes un parámetro, este parámetro va a ir aprendiendo eh con un eh ratio de aprendizaje y con un gradiente que va a ser positivo o negativo. Para maximizar, pues vas a lo que vas a hacer es maximizar esta fórmula que tienes aquí, que esto será lo que haga que el parámetro que tú tomas llegue a maximizar la función objetivo. ¿Qué problema tiene esto en algunos escenarios? Eh, tú puedes tener eh esto es un problema también que es eh digamos típico en los algoritmos de optimización. Puede aquí es un ejemplo muy claro de que tienes una montaña al final aquí un único punto que es un lo que llaman un global máximo. Eh, sí, esto es un ejemplo muy sencillo, pero lo normal es que tengas múltiples. Por ejemplo, aquí también puedes ver, ¿no? El algoritmo puede llegar a pensar de que este es el punto final de del objetivo, ¿no? Que llegue aquí. o podrías tener aquí dos montañas muy similares, eh, y, eh, no tuvieras un punto tan claro de destino como ves aquí. Lo que me refiero es que en gradient ascen o gradient descen también pasa lo mismo porque al final son las dos caras de la misma moneda. Grading ascen es tú quieres optimizar, maximizar una función con grade descendo. Tú quieres minimizar. Gradi lo que estás utilizando siempre que estás eh entrenando una red neuronal y lo que quieres hacer en es minimizar el error, vas a utilizar exactamente lo mismo, el mismo optimizador en el entrenamiento de la red neuronar que veremos luego. Y lo único que vamos a hacer es cambiarle el signo. Si recordáis bien cuál eran los problemas que tenían esto, pues lo que os digo, pues en vez de estar encontrando lo que llaman un global, un global eh máximo, ¿no? Un global mínimo, pues están encontrando un local mínimo, un local máximo. Esto lo verías aquí en una en si esta este plano que está o esta geografía que ves aquí, pues tuviera por aquí un punto eh que hiciera pues que en este caso, imaginaros que aquíis tuvierais una otra elevación que no llegara hasta el mismo punto, pero sí que aquí pues el algoritmo pues se pudiera llegar a confundir y en vez de tomar esta trayectoria que le lleva hacia el global máximo, que aquí es bastante clara Porque aquí todo lo que tiene es, digamos, valle o plano y está en la zona azul. Pero imagínate que aquí tuviera, pues lo que os digo, tuviera otra otro ramal que tuviera casi la misma altura, pues en este punto pues él podría confundirse e irse para este otro. Esto es bastante común en los algoritmos de

### [40:00](https://www.youtube.com/watch?v=CZgASJmRLvg&t=2400s) Segment 9 (40:00 - 45:00)

optimización. el que en muchas ocasiones no encuentras el global máxima que llaman o el global mínima, sino que encuentras uno local y ahí el algoritmo se queda, ¿no? Bueno, eh, ¿cuál es la parte difícil de la optimización de esta fórmula, no? Pues es este incremento, ¿no? ¿Por qué? Porque en esta fórmula al demás eh al final es la eh la J eh parámetros, digamos, pues implica el la probabilidad de una trayectoria que depende eh tanto de la policy como de las dinámicas del entorno que no las conoces, estas las tienes que aprender, ¿no? Entonces, aquí eh vamos a tener que utilizar un un truco de cálculo para poder solventar esta fórmula. Para que os hagáis una idea qué es lo que estamos viendo aquí. Dices, aquí vamos, el algoritmo va a ir mejorando estas digamos probabilidades. Tú estás en el estado X, ¿no? Con cualquiera de estos puntos que puedas tener aquí. y eh el algoritmo va a partir de unas transacciones eh o sea, de unas probabilidades y luego va a tener unas dinámicas en el entorno, ¿no?, que le van a llegar pues eh a unos a unas recompensas. ¿Cómo va? ¿Cómo se calcula la recompensa en un entorno de este tipo? No, pues como veis aquí, ¿no? Aquí tengo una probabilidad del 25% de irme por este ramal y una probabilidad 75% ramal. Esto hace que eh luego tengo un 30%, que son las dinámicas del entorno, eh con un 30% consigo un +s 1 y con un 70% consigo un +s 2. Entonces, pues el cálculo total de que se que se espera de este estado es esto, ¿no? Entonces, tú lo que tienes que maximizar es el el total de esta función. Entonces, lo que vamos a ir modificando van a ser estas dos probabilidades de aquí, la del ramal derecho, ramal izquierdo, para que maximices el retorno total de ir del paso eh, o sea, de la decisión que tomas en el estado ese, ¿no? Esto lois que lo tenéis que ir mirando conforme eh esto aquí está más simplificado. Imagínate que después tienes otro paso con otras eh probabilidades. Cada una de esas probabilidades las vas a ir optimizando, ¿no? Eh, una por una hasta que consigas la trayectoria adecuada. Y como os digo, veis aquí que tenéis dos positivos, 2 + 2, ¿no? Esto sería eh un cómo llegas aquí cuando al final es lo que os trataba de decir antes, ¿no? Puedes tener dos incluso como está pasando aquí, ¿no? incluso dos puntos que son eh que tienen la misma ganancia y esto pues hace que eh el algoritmo pues pueda tomar una u otra, ¿no? Hay puntos este es un caso muy, ¿cómo se dice? muy sencillo, ¿no? Pero hay casos que son todavía eh muchísimo más complejos cuando aquí tienes cientos de pasos intermedios y la diferencia en el reguar pues es mínima, ¿no? En vez de tener, pues imaginaros, aquí tienes 100 pasos en el medio o 500 pasos y la diferencia pues es más 500 y el otro es + 499. pues llegar eh poder seleccionar cuál es la óptima, que es lo que os decía antes, del global mínima y el local eh local mínima o global máxima y local máxima, pues en estos en este tipo de problemas es muy difícil de calcular, aparte de que, como os digo, las dinámicas del eh en el en los cálculos y durante el entrenamiento, las dinámicas de del entorno tú no las conoces. las estás explorando durante el entrenamiento. Lo que sí que os dice es cómo tenéis que calcularlas, ¿no? Cómo tenéis que calcular el o cómo se calcula el retorno al final del eh para poder asignar luego las probabilidades eh de a las acciones que tienes en cada uno de los pasos. Bien, quedaros aquí como eh qué es lo que vamos a optimizar, porque aquí es donde viene el truco que vamos a eh

### [45:00](https://www.youtube.com/watch?v=CZgASJmRLvg&t=2700s) Segment 10 (45:00 - 50:00)

utilizar de del cálculo matemático. Se utiliza el de para poder solventar esta función que es muy compleja, ya que no conocemos una de las variantes. Un segundo. Bien, como os decía, el tenemos que utilizar un log de cálculo, ya que esto es un problema intratable y lo que se hace pues es utilizar una función del cálculo. Tenemos nuestra función que como os decía, se basaba en una expectativa con un problema intratable. El problema entatable es este cálculo de este incremento. Si tomamos el incremento eh de el logaritmo de f(x), esto es el incremento de f(x) dividido de f(x). Si lo reagrupas, te pasa a ser que el incremento de f(x) es f(x) por el incremento del logaritmo de f(x). Si lo aplicamos esto a nuestra fórmula, esta de aquí, pues nos queda que el incremento de la trayectoria es igual a la trayectoria por el incremento del lock de la policy, ¿no? Entonces, en el siguiente paso lo que hacemos es que el entorno eh se cancela y al tomar el logaritmo de del producto, o sea, la probabilidad de trayectores es un producto, ¿no? Aquí podemos, en este caso, ahora podemos tomar la probabilidad de las trayectorias haciendo sampleado, ¿no? Podemos convertir las las expectativa esta que llamábamos antes la en una suma eh que podemos obtener mediante muestreo, que esto es lo que hacente en principio Montecarlo. Entonces esta la probabilidad de todas estas trayectorias es un producto, ¿no? Y este producto al tomar el logaritmo se convierte en sumas, que es esto que estamos viendo aquí. ¿Qué es lo que pasa de esta fórmula? Eh, cuando tú eh al tomar el incremento eh de los parámetros, en este caso, todo aquello que no depende de los parámetros se cancela porque vale cero. ¿Qué es lo que qué es lo que pasa con esta eh parte de aquí? Pues bueno, pues tanto la parte de PSO, que es esta de aquí, como la parte del estado, es el logaritmo de la de la policy en el estado so como el logaritmo eh como esta parte de aquí, el valor del eh de la póliy del estado eh o sea, de la transición del estado S al estado S prima tomando la acción A. como no dependen de la de los parámetros, pues eh estos dos estas dos partes de la ecuación se convierten a cero. Se no porque no dependen de los parámetros, los parámetros son el ad eh digamos eh con respecto a ese no que es la policí que tienes aquí. Con lo cual, toda nuestra fórmula que teníamos antes se convierte en lo que es simplemente el logaritmo de la policy, eh, o sea, el incremento de nuestro logaritmo e por la de del logaritmo de la póliy de ese de esa acción por en ese estado, que es lo que vamos a calcular con nuestra red neuronal por e la ganancia ía de esa trayectoria, ¿no? Y esto son los dos componentes que ahora sí ya tenemos. O sea, nos hemos venido de un problema que no podíamos resolver porque era intratable a algo que sí que podemos estimar con el algoritmo de eh del gradienten ascen en este caso, que son por un lado el gradiente de los policy, que esto lo sacamos con el conce neuronal, como veremos luego. un segundo y luego tenemos el retorno eh del de ese episodio en concreto. O sea, durante un episodio vamos a ir calculando los gradientes en cada uno de los pasos y hacemos la propagación.

### [50:00](https://www.youtube.com/watch?v=CZgASJmRLvg&t=3000s) Segment 11 (50:00 - 55:00)

Esto es el cada uno de los pasos me va a dar un gradiente y este sumatorio de los gradientes por el eh por el retorno calculado de ese episodio será lo que eh el la mejora o la o eh o el o la mejora o el empeoramiento que tengamos para esa trayectoria, ¿no? el incremento o decremento que nos dé en eh de nuestra función principal, ¿no? Bien. Eh, vamos a repetirlo por si no ha quedado suficientemente claro. O sea, veníamos de un problema eh intratable a un problema que sí que vamos a poder tratar. Porque, ¿cómo hacíamos esto? con uno con un simple eh truco de cálculo matemático. Convertíamos la función inicial, nuestra función inicial eh le dábamos la vuelta lo que era el eh utilizando eh una derivada del logaritmo de f, ¿no? Y utilizando esto, reescribíamos la fórmula, la descomponíamos en componentes y luego eliminábamos los componentes que no dependían de la policy. ¿Por qué? Porque al no al hacer el al tomar el incremento de aquellos valores que es el cuando llamamos el incrédito es el gradiente, ¿no? De aquellos de aquellos parámetros eh en aquellos componentes donde no aparece el parámetro, pues los puedes eh los puedes eliminar porque son constantes. Entonces, al ser constantes, no hay un incremento ni positivo ni negativo, con lo cual nuestra función se quedaba reducida a un único a único valor. Este valor lo podemos optimizar usando una red neuronal, usando gradienten ascendent, que es lo negativo a gradient descen. Y el otro término de la de la ecuación era el retorno esperado. Y el retorno esperado lo conoces porque es el que te va a dar el final del episodio y este cada uno de los pasos que que vas tomando la trayectoria te va a ir dando un retorno, el entorno te con el que estás interactuando te va a dar un retorno y ese el retorno final eh de esa trayectoria lo vas a calcular mediante la suma, como hemos visto en este en esta ecuación de aquí. lo vas a poder sumar al final del episodio, con lo cual vamos a poder saber eh qué bueno o qué malo ha sido una trayectoria utilizando una red neuronal eh que nos va a dar el un error y el cálculo del retorno que nos lo va a dar la suma de los retornos esperados utilizando la fórmula que hemos visto antes. al final del episodio. Al final de un episodio haremos el cálculo y podremos eh propagar eh el error en la red que estamos entrenando, como luego veremos en el ejemplo. Bien, vamos a ver esto en la en la práctica, ¿no? Que es lo que al final utilizan todos los algoritmos, que es el teorema de la de policy credit, ¿no? la ecuación fundamental. Como veis, recordáis, aquí tenemos que lo que vamos a hacer es todas vamos a muestrear una serie de trayectorias de forma aleatoria y con esto iremos entrenando una red neuronal. Entonces, eh esa expectativa la vamos a construir, pues si vamos a muestrear, vamos a lanzar eh n en una muestra, pues eh será 1/ 500 del sumatorio de cada una de estos cálculos que vayas obteniendo. Como ves, aquí vas a calcular qué bueno, qué malo ha sido una trayectoria en concreto. ¿Cómo? Pues con el gradiente, con el con la con las probabilidades que vas calculando de con el gradiente que vas obteniendo de en uno en cada uno de los episodios y el retorno obtenido por esa trayectoria. con este con esta simple fórmula vas a poder eh vas a poder estimar que qué buena o qué mala van a ser las trayectorias que vas muestreando en un principio, como os decía, eh van a ser completamente

### [55:00](https://www.youtube.com/watch?v=CZgASJmRLvg&t=3300s) Segment 12 (55:00 - 60:00)

aleatorias. irás modificando las probabilidades que tenga eh de irse en un sentido o en otro, en una dirección o en otra, estando en un estado en concreto y eso es lo que vas a ir aprendiendo durante la eh el entrenamiento de tu red neuronal. Entonces, ¿qué qué son las partes de esta fórmula? Pues tienes por aquí esta parte es el digamos el gradiente que es la dirección para aumentar la probabilidad de la acción elegida a en el estado S. Esto es lo que va a ir aprendiendo la red neuronal eh conforme va progresando el entrenamiento. Y esto hace también que introduzca la exploración y la explotación de forma aleatoria. Conforme va pasando el entrenamiento está esto que en un principio pues digamos que puede empezar el 50, irte a la derecha, irte a la izquierda o moverte para la derecha, a la izquierda, o 25, eh si estuvieras con cuatro posibilidades o cuatro acciones, pues eso conforme vas entrenando van a ir modificando esas probabilidades hasta que unas vayan eh decrementándose y otras vayan aumentándose hasta que haya una que sea la dominante. Esto es lo que hacíamos con el ARMAX en el entrenamiento de Coolarning. Pues aquí lo vamos a ir haciendo eh una a una conforme vas avanzando eh en los eh en una trayectoria, tú vas obteniendo las ganancias y esas ganancias luego van a modificar los pesos de cada una de las probabilidades de eh esos estados en esa trayectoria. esa trayectoria como recordar una trayectoria como recordaris es lo que me hace llegar del punto A al punto B o al punto de máxima ganancia o de estar más tiempo vivo o cualquiera que sea la definición de eh ganancia que tengo yo, ¿no? Luego tienes aquí el G, que es qué tan bueno fue el resultado muestreado, el resultado al final de la trayectoria. dice los eh en reinforce, en el algoritmo fundamental, eh los buenos las buenas los buenos outcomancias pues refuerzan las acciones, los malos las disminuyen. Esto es bastante. Si esto es pequeño, pues este valor va a ser más pequeño. Si esto es más grande, esto es bastante simple, ¿no? No hace falta de explicarlo. O sea, cada uno de los pasos de las de los pasos, como veis aquí, es un sumatorio. Si este tiene un al mismo valor, si esto es más grande, pues este conjunto, este elemento del sumatorio va a influir más en la suma final, ¿no? Si esto se hace más pequeño, influirá menos. Y luego como estamos haciendo el promedio de n trayectorias muestreados para estimar la expectativa, ¿no? Y así es como vamos a construir nuestra, este es el teorema principal y como os digo, esto aplica a todos los algoritmos que vamos a ver en policy grading, tanto el A2C, el PPO, que como os decía, es el que estamos se está utilizando para optimizar los algoritmos de la serie GPT. TRPO, si no recuerdo mal, TRPO es el que está utilizando Dipsic y luego también son el fundamento del reinforce Merlin para human feedback, ¿no? La intuición aquí es bastante simple. Si una acción me lleva un alto retorno, se aumenta su probabilidad. Si una acción me lleva un bajo retorno, se disminuye la probabilidad. y el gradiente apunta en la dirección que hace las buenas trayectorias más probables. Así de simple es esto, aunque parezca simple, es bastante más complejo. Dice, "Y por esto se llama el algoritmo reinforce, refuerza las acciones proporcionalmente a que también funcionaron, ¿no? Y esto luego lo veremos en el código, eh, que, bueno, esto se, como veréis, el eh se es tan simple como que las eh todas las probabilidades multiplicadas por los returnos, o sea, las probabilidades de una trayectoria eh en un episodio eh cada uno de las eh acciones eh que hemos obtenido en ese en esa trayectoria, la multiplicamos por los retornos y la sumamos. Y luego, como veis, si recordáis, eh, en un cálculo convencional de los aquí vamos a utilizar, como vais a ver, vais a ver luego, el mismoor el mismo optimizador ADAN que hemos utilizado en Coolarning. Y para poder y como decimos en el cool

### [1:00:00](https://www.youtube.com/watch?v=CZgASJmRLvg&t=3600s) Segment 13 (60:00 - 65:00)

learning, pues aquí eh le cambiamos el signo para que lo que en convencionalmente en un en un problema de clasificación, por ejemplo, o de regresión, eh calculas una minimización del los, aquí vas a hacer lo contrario, vas a intentar hacer una maximización, que significa lo contrario de una minimización. Por eso le cambiamos el signo. Una vez que has calculado el error, pues haces una propagación del los y de esta forma estás haciendo una propagación del incremento hacia todos los nodos de tu red neuronal. esta función, eh este cálculo lo puedes hacer de varias maneras, ¿no? Hay distintas distintos eh digamos eh funciones valor que puedes calcular y cada una de ellas pues tiene eh sus eh digamos eh ventajas y sus desventajas, ¿no? Y esto también es lo que luego vamos a ver que se utilizan en los algoritmos más complejos, ¿no? Lados C, PPO, trpo, ¿no? Aquí esto ya son cosas también que hemos visto en ejemplos anteriores. Son las cuatro funciones principales, ¿no? Que eran la el la función eh la función valor. Esto es el valor de un estado. Eh, qué bueno es estar en un estado. recordar en el cool learning eh que descomponíamos en las redes duelling eh lo que era el Q value en dos componentes, el componente qué bueno está en este estado y qué ventaja obtengo de tomar la opción A o la toma o tomar la opción B. El valor es el mismo del Q value, ¿no? Eh, va a ser el mismo. Lo que pasa que el significado del de ese cubario tú lo puedes descomponer en dos componentes. Como os digo, uno, qué bueno es estar en esa acción. No es lo mismo estar en el estado uno que está en el estado eh final menos un y luego lo puedes componer en ese componente y darles un peso y luego que qué buena es tomar la acción a con respecto a la media de ganancias que yo tengo eh con todas las acciones que tengo disponibles en este estado y eso es lo que llaman la función de ventaja. Esto se puede aplicar aquí también, ¿no? Dice que la acción value, que es en esa policy en concreto que es el equivalente a la función Q en el QLearning, pero aplicada a una política en concreto. La política en concreto es la política que estás muestreando, ¿no? Y en este caso, pues podemos también utilizar estas mismas funciones en el cálculo, en nuestros cálculos y en nuestra implementación del policy optimization. ¿Por qué? ¿Por qué se suele utilizar eh la función de ventaja en el en los algoritmos de policy optimization? Porque en el tanto en el reinforce como en cada uno de los algoritmos vamos a siempre a utilizar lo que se llama el retorno eh digamos eh crudo, ¿no? Retorno en en global, ¿no? Y en esto pues como solo obtienes el retorno y el retorno que te da una acción en concreto, no tienes muy en cuenta cuál es el peso de estar en ese estado. Esto tenía muchísimo más sentido en el cool learning, pero en el policy optimization es como que no tiene, tú vas a calcular al final las probabilidades de ese de tomar una acción en ese estado dependiendo del peso que te da el eh o sea, de la ganancia que te da eh al final del episodio. Con lo cual, fijaros en las palabras que te digo, vas a calcular las probabilidades de tomar una acción en ese estado dependiendo del objetivo. O sea, estás ya implícitamente diciendo de lo que te importa es que qué bueno es tomar esta ventaja en ese momento. Eh en función qué qué bueno es de tomar esa acción con respecto a las otras acciones. Por eso estás calculando las probabilidades de las acciones con

### [1:05:00](https://www.youtube.com/watch?v=CZgASJmRLvg&t=3900s) Segment 14 (65:00 - 70:00)

respecto al a la ventaja que te dan al futuro. Esto es una particularidad del policy optimization, por eso tiene muchísimo más sentido aquí utilizar la función de ventaja. Y dentro de la función de ventaja, pues hay distintas variantes que son las que veremos ahora. Entonces, estas variantes son las que hacen que se diferencie cada uno de estos algoritmos. eh desde el reinforce que utiliza eh lo que llaman el retorno crudo como peso, como peso multiplicador, ¿no? Eh el lo el retorno que obtengo al final es la señal que me va a hacer el refuerzo positivo o negativo de cómo modificar las probabilidades en ese en ese estado. Esto lo que hace es utilizar, dice, eh introducir mucho ruido. ¿Por qué? Porque todas las acciones reciben crédito por el outcome total del episodio. ¿Y esto qué es? pues digamos que no estás teniendo en cuenta eh bueno pues eh está digamos que las estás dando un peso igual eh a todos los estados independientemente de donde estés, ¿no? Y esto pues es digamos que estás introduciendo un ruido mayor, por ejemplo, en las posiciones iniciales que en las finales, ¿no? Y viceversa, ¿no? Entonces, bueno, para evitar eso, pues hay variantes que serán las que veremos en un segundo, que son estas de aquí, para evitar, que es lo que pasa en el reinforce, que utilizas todo el refuerzo o todo el retorno obtenido en el episodio para calcular las probabilidades de las acciones en los estados intermedios, No, disculpar un segundo. Tengo unas datos tremendas disculpas. Eh, bueno, vamos a ver la los cálculos de las variantes que hay en Policy Gradient, ¿no? El algoritmo básico que utiliza el Reinforce, que es el algoritmo que veréis aquí, como os decía, es el eh multiplicar, utilizar como valor multiplicado el retorno total de la trayectoria. Esto, ¿qué es lo que esto es eh digamos la formulación básica del algoritmo de policy gradient? Pero, ¿qué problema tiene esto? que en el estás introduciendo retornos pasados antes de que se tomara una decisión en una en la en como un valor multiplicador. O sea, al agregar todo el retorno en a todas las acciones por igual, pues haces que estés introduciendo eh estás introduciendo ruido. ¿Por qué? porque estás introduciendo retornos pasados, por ejemplo, en una en una acción que pues ya no le digamos no le eh no le afectan, ¿no? O sea, esto es, imagínate, eh, tú estás en el paso número uno de la trayectoria, pues eh el retorno ahí, final pues sí que tiene un impacto, pero si estás a un paso eh de llegar al final, pues lo que han pasado en todos los retornos, en todos los pasos anteriores, digamos, como que no le afectan, ¿no? O sea, aquí eh yo tengo a mí lo que ha pasado 50 pasos atrás, pues digamos como que no me debería afectar para la decisión que tengo que tomar ahora que estoy delante del objetivo. Esto es un poco el problema que tiene esta formulación que es la que hace el reinforce, ¿no? Que hace introduce ruido de eh retornos pasados en la acción que estás tomando en este momento, ¿no? Esto se mejora con lo que llaman reward to go. Esto es simplemente aplicas retorno esperado desde este paso en adelante, con lo cual los retornos, el retorno que se ha producido en el paso anterior o anteriores, no tienen nada que eh no influyen en el retorno que yo aplico aquí en el multiplicador. Fijaros que esta variante no cambia, lo que cambia es cómo aplico el retorno, ¿de

### [1:10:00](https://www.youtube.com/watch?v=CZgASJmRLvg&t=4200s) Segment 15 (70:00 - 75:00)

acuerdo? Eh, aquí simplemente eh le digo pues a este a esta acción que yo tomo en este paso, pues solo le voy a aplicar los retornos que se producen desde este punto hasta el final. nada de lo que pasó antes, que es lo que se utilizaba en el gradiente. Luego hay otra variante en la cual que se llama sustracción del de una baseline, de una base en la cual solo esa se retorna se le resta a este a esta variable que ya solo depende desde esta desde este estado en adelantes le restas una baseline eh staff baseline, que lo común es que tomes el valor del estado. Y esto, ¿qué es lo que hace? que todas las acciones en con retorno, todas las acciones con retorno se refuerzan con el promedio de una forma positiva, ¿no? Esto es una forma, digamos, de estabilizar también y de, digamos, minimizar que haya unos, digamos, unos refuerzos más eh más grandes que otros. Esta baseline, digamos que es como una media que tú tomas y de esta manera pues vas a digamos a eh creas una biseline. Esto es un poco como hacemos cuando con las eh con la descomposición de una señal. tú tienes una baseline y luego puedes tener una tendencia y una seasonality, ¿no?, que llaman, ¿no? Entonces, de esta manera, pues tú puedes eh una vez que le restas eh la baseline, pues obtienes qué es exactamente bueno que ha tenido en esa acción, en esa en ese estado en concreto, eh, en la toma de esa acción. O sea, y además lo estás tomando con respecto a las eh a los estados que hay desde ese punto en concreto hasta el final. Esto es como restarle, como os estoy diciendo, la eh en una señal eh lo común y dejar solo el ruido, la tendencia y la seasonality. De esa forma, pues quitas eh a la señal eh lo que es común para todas y le estás diciendo, pues mira, si ha sido buena, mala o no tan buena con respecto a lo que ha pasado al final del episodio. Y luego tenemos el un segundo, disculpar, ¿eh? Y luego tienes el simplemente pues el utilizar en la variante cuatro. Estas son las cuatro variantes que tenemos, el utilizar la función de ventaja. La función de ventaja, recordar que era eh simplemente lo mismo que utilizábamos en Coolarning. En Coolarning descomponíamos el valor Q. Aquí estamos a utilizar exactamente lo mismo. Eh, vamos a utilizar eh, ¿cuál es el valor Q utilizando la Belman equation de ese eh de tomar esa acción en ese estado y la podíamos descomponer en la función valor y la función ventaja. Como recordaréis, eh, esto lo hacíamos implementamos en realidad tomando haciendo la duelling network, una una sí, una red, una red a la cual eh red neuronal que tenía un único input, pero que tenía dos salidas. Las dos salidas eran, una el que, la función valor, que nos daba el valor de ese estado y otra el valor de ventaja de cada una de esas acciones. ¿Cómo se calculaba el valor de la ventaja de cada una de esas acciones? pues el valor de que te daba de la salida de la red neuronal dividido de la media de todas las ventajas de cada una de las acciones disponibles en ese estado. Pues esto es lo mismo que le vamos a hacer eh aquí en este en la última variante el componente de la policy queda igual. Lo único que en este caso vamos a utilizar

### [1:15:00](https://www.youtube.com/watch?v=CZgASJmRLvg&t=4500s) Segment 16 (75:00 - 80:00)

una red adicional, que esto es lo que hace tanto A2C como PPO, una red adicional en la cual vamos a calcular la función de ventaja, eh, la función de advance function para ese partícula, ese ese estado y esa acción en concreto. Esto, ¿qué es lo que nos dice? Eh, pues que si recordáis la función de ventaja se calculaba también eh como en el cool learning se calculaba teniendo en cuenta qué buena era esa acción en el cómputo general de eh en del entrenamiento. Estábamos eh calculando unos valores que me estaban diciendo al final qué buena era esa acción en ese estado en concreto. Pues esto es lo que vamos a hacer como peso, vamos a utilizar como peso ponderador para darle para calcular las probabilidades de esa eh acción en el de esa acción en ese estado en concreto. ¿De acuerdo? Y esto al final, como os digo, es lo que utilizan los algoritmos más conocidos. En resumen, tenemos eh cuatro formas de calcular eh el policy gradient que como veis el el la forma de calcularlas es exactamente la misma. utilizamos eh las probabilidades, el o sea, el factor de incremento que va a modular las probabilidades de acción y que son los que lo que va lo que vas a hacer de utilizar para hacer la fase de B propagation en la red neuronal. lo vas a modular de cuatro formas diferentes. Una, con el eh refuerzo e la recompensa total, que es lo que utiliza el el reinforce, lo vas a utilizar solo con la recompensa que utilizas desde ese estado en adelante, ¿no? con las pasadas le a ese a esa misma variante le vas a quitar, digamos, el componente común a todos los a todas las a todos los eh que es el la función valor en principio a todos los estados que tienes desde ese hasta el final, que es la lo que llaman baseline sustraction o utilizando la función de ventaja, que es La dice, "¿Cuándo utilizar uno otro? " dice, "Bueno, pues aquí eh desde el valor esperado eh las cuatro variantes tienen el mismo valor esperado, pero cada uno de ellos eh lo que modulan son la varianza, ¿no? en cada la varianza y cómo se digamos incrementa o decrementa o cómo se refuerza o se o se o no se refuerza el valor de el valor esperado en función de la del reguar esperado, del retorno esperado en para o sea del retorno esperado que ha producido la toma de acción en ese punto en concreto. Entonces, cada una de estas pues hace que la varianza o la varianza sea mayor o menor. ¿Y qué es lo que hace? pues que el entrenamiento de tu red sea más eh digamos estable, menos estable o más acertado, menos aceptado. Bueno, ¿qué es lo que eh vamos a ver ahora ya más en detalle? el que estamos el que lo que vamos a ver hoy en la demo, que es el algoritmo reinforce, que esencialmente es utilizar Montecarlo. Montecarlo es un algoritmo de simulación muy usado, especialmente en finanzas, la simulación Montecarlo, que la solvemos utilizar pues para optimizar portfolios, mirar a ver cuál sería una de las inversiones que más me interesaría y lo simplemente lo que estás haciendo es ponerte en diferentes escenarios. Es lo mismo que vas a hacer aquí. Dice, pues mira, eh, tienes cuatro opciones en tu acciones en tu portfolio y haces simulas escenarios. si me sube cuatro, o sea, eh, perdón, le das eh partes de una cartera con cuatro acciones y vas variando eh el porcentaje

### [1:20:00](https://www.youtube.com/watch?v=CZgASJmRLvg&t=4800s) Segment 17 (80:00 - 85:00)

de cada una de esas acciones y miras cuál es el resultado final. Imagina eh el caso, eh tú partes con eh en vez con cuatro acciones, ¿sí? cuatro acciones, ¿no? Y les vas dando pesos diferentes a ellas y observas qué es lo que hubiera pasado dentro de dos 2 años, ¿no? Esto es simplemente la simulación Montecarlo. Si imagínate tienes Tesla, Apple, Google y Microsoft a utilizas una muestra sería 25%. Eso dentro de 2 años vale X. En vez de tener 25% de cada uno de ellos, pues tienes eh 50% de Tesla. 20% de Apple y el resto la tienes entre Microsoft y Google. Eso te da otro resultado. Esos variantes de probabilidades y al final observas el resultado. Ese es lo mismo que vas a hacer aquí con Reinforce. Lo único que hace el Reinforce es eh va asignando probabilidades a cada uno de los pasos intermedios de tu trayectoria en función de eh la observación de la ganancia final, que esto es lo que ves aquí, ¿no? Cómo aplicas la ganancia. Eh, tienes estos eh eh como os comentaba antes, Rainforce utiliza eh la ganancia eh del final de del episodio para eh para hacer los cálculos, ¿no? Eh, o sea, calcula retornos completos de las red compresas de las recompensas muestreadas y luego las aplica a cada uno de los pasos. No, no usa ni Boostrack ni target de valors eh en la versión base. ¿Por qué es útil esta forma de hacerlo? Dice, bueno, pues porque no hay una estimación sesgada y del retorno y la implementación es muy simple. Lo que sí que se suele utilizar es una normalización. ¿Para qué? Pues para que los cambios eh los incrementos no sean demasiado bruscos. Eh, si imaginaros eh si tú tienes aquí un retorno que puede variar desde 0 a 500 como nos puede pasar en el carpol, pues claro, eh hacer una propagación de incrementos de 500 en una red neuronal, pues esto va a hacer que se desestabilice de una forma bastante grande. Entonces, lo que se suele recomendar es que los normalices utilizando pues la el la función de normalización, o sea, el retorno que te devuelve esa ese episodio lo dividas para la mini el el la media de los retornos y eh o sea, le restes lo dividas para la desviación esta Sí, la desviación estándar del estándar deviation del, o sea, la varianza del de los retornos hasta ese momento obtenidos. Y luego en este vamos a utilizar también eh lo que llaman Reward to go trick, que es lo que se utiliza aquí para es una, digamos, es una variante del algoritmo original para darle un poquito más de estabilidad porque si no el algoritmo reinforce tal y implementado eh tal y como os muestra el papel de investigación es muy difícil que incluso llegáis a conseguir eh tener una resolución positiva de cualquiera de los entornos en los que vais a trabajar. Tenéis que utilizar un par de trucos para que el algoritmo como tal está definido en el papel. el puro Monte Carlo, si eh utilizar Monte Carlo tal y como está definido pueda ser. Vamos a utilizar dos de las cosas, una es la normalización, va a utilizarse como parámetro, pero esto no va a ser ya un parámetro, sino que vamos a utilizar los eh los reguars desde cada uno de los estados hasta el final, que son eh el cálculo de el cálculo acertador sin introducir un ruido adicional en los cálculos de del retorno para ese estado en concreto y no introduc producir los eh retornos que han producido los estados previos a al que estamos al que queremos calcular la probabilidad en ese momento en concreto. ¿De acuerdo?

### [1:25:00](https://www.youtube.com/watch?v=CZgASJmRLvg&t=5100s) Segment 18 (85:00 - 90:00)

Entonces, vamos vámonos a ir al código en este paso y así vamos a poder observar cómo funciona. Bueno, en nuestro policy gradient vamos a tener eh bueno, como en todos estos vídeos que tenemos una clase para configuración que es la eh con los valores por defectos, vamos a definir nuestra policy network es una red neuronal muy simple con nuestros eh una capa de entrada, una a nuestra a una única capa de eh hiden, ¿no? a layer y luego desde eh aquí el input va a ser una observación y de la observación vamos a utilizar como eh por defecto el carpol y luego las salidas eh la salida va a ser el eh de la red eh hiden al no ver acciones, que en el caso de Carpol son dos acciones, derecha o izquierda. mover el palo hacia la derecha o hacia la izquierda. Las observaciones en el carpol es un estado es un vector de cuatro eh de cuatro parámetros que son la posición, la velocidad, la velocidad angular y el Ay, se me ha olvidado el A ver si lo si me acuerdo. Un segundo que lo busco y os lo digo. Si la posición del carro, la velocidad, el ángulo del palo y la velocidad angular. ¿De acuerdo? Estos son los cuatro input que le pasamos a la red neural y la salida van a ser derecha, izquierda. Eh, bien, en el forward pues simplemente vamos a pasar el la observación, se la pasamos a la red y esto nos va a dar unos logits que es el un número crudo, o sea, una un escalar, en este caso es un float, que nos va a decir eh digamos el peso de la acción derecha, mover a la derecha o mover a la izquierda el palo. la función para los descuentos eh o sea, el cálculo de retornos. En este caso lo vamos a hacer, como os decía, con el truco del eh requo, que significa que solo vamos a utilizar el los descuentos desde el eh a ver si lo digo, si es que de verdad desde el punto en cono concreto, desde el estado en concreto hasta el final, eh no vamos a utilizar los descuentos, eh, o sea, los retornos obtenidos por los pasos por los estados anteriores. retom from de caren st eh de acuerdo para eh no eh introducir un ruido adicional en el en el entrenamiento. Y aquí tenemos pues nuestro simple eh policy eh nuestro run eh para eh correr el algoritmo. Vamos a utilizar, como hicimos en Coolarning, los mismos en la misma metodología. Tendremos nuestros bet, como veis aquí ya lo tengo todo preparado y eh cada uno de estos pues luego va a tener sus opciones para grabar vídeo, todo este tipo de cosas. Y aquí tenemos nuestro run. en el RAM, pues bueno, donde vamos a inicializar el entorno con variables por defecto. Si no le pasas el config por línea de comandos, iniciaremos nuestro entorno. Aquí tomamos las observaciones, tanto el la dimensión del espacio de observaciones como del espacio de acciones. Como os veis, os estoy indicando, aquí tenéis derecha izquierda y aquí tenéis un vector de una dirección de una dimensión con cuatro valores. Este es el espacio de observaciones. Con esto tú construyes la red, os vais a policy network y como veis aquí la policy network en su initar al módulo eh modul de Pyth Torch y vas a inicializar pues tu red con el input

### [1:30:00](https://www.youtube.com/watch?v=CZgASJmRLvg&t=5400s) Segment 19 (90:00 - 95:00)

site y el número de nodos en la red de en la capa oculta de tu red. Eh, y luego el número de acciones, eh, que es eh lo que estamos pasando en el iniciador para el OPU, ¿de acuerdo? Aquí creamos nuestro nuestra red. El optimizador, si recordáis que os lo decía en el esto, es el mismo optimizador que estamos utilizando en cualquier eh entrenamiento de cualquier red neuronal. Inicializamos los eh las recompensas del episodio y aquí entramos en un loop de reinforce. desde por cada episodio en el número de episodios que quieras entrenar eh tu red, pues reseteas el estado, pones el dona falso. Aquí creas dos listas, una para las probabilidades de cada una de las acciones. Esto va a ser un tensor con dos posiciones, eh, en este caso, porque tienes dos acciones y la lista de retornos. Y luego aquí eh pasas, empiezas a hacer el sampleo de cada una de las trayectorias. Como veis, aquí inicializas el entorno. Aquí eh o sea, cada entorno es una un eh una muestra. Eh, aquí vas a poner el estado el estado acero, reseteas elorno y aquí lo que haces es este estado lo conviertes a un tensor y se lo pasas a la eh a la red. red. ¿Qué es lo que te va a dar la red? Pues la red los logics. Logics son los valores en crudo, digamos, en de tus dos posiciones. Aquí los vas a convertir en probabilidades y estas dos probabilidades, de estas dos probabilidades vas a eh construir una distribución de probabilidades. Con recordar que con eh distribución categorical le pasas dos probabilidades que esto van a ser un, por ejemplo, 5050. Y aquí pues con esta distribución eh se le vas a pasar las probabilidades de tus acciones y con esto creas una distribución de probabilidades y de ellas haces una tomas una muestra. ¿Qué significa aquí? Pues que aquí vas a tener al inicio del esto pues unas probabilidades las que sean las que haya. Eh, imagínate que pone 50. La quito más una acción con estas probabilidades y esa acción la implementas en el entorno y te va a devolver un nuevo estado, una recompensa eh si has terminado el episodio o si has llegado al máximo número de eh de pasos, que en el caso de Carpol son 500 por defecto. Y la variable don si has terminado, que es la que te va decir si estás en el bucle, esta se va a hacer si has terminado el episodio, si ya has si ya tu palo se queda en la posición horizontal o si has llegado al máximo número de eh pasos en esto de episodio. aquí eh le eh a la lista de probabilidades añades la probabilidad de esta acción, o sea, le eh o sea, a la distribución los probability acción, o sea, vas a calcular la probabilidad eh la probabilidad del, o sea, vas a almacenar, perdón, la probabilidad de en la lista de probabilidades para esa acción, en la posición adecuada y aquí en la misma lista que corren, digamos, van a van progresando en la misma dirección, pues vas a añadir el retorno que te ha producido esa acción y mueves hasta el próximo estado. Durante este bucle irás poniendo en la en lo sprox las probabilidades de cada la probabilidad obtenida de cada una de esas acciones y el retorno obtenido por cada una de esas eh acciones. Una vez que has llegado al final, al final que como os digo, llegarás o por un máximo número de pasos o porque has resuelto el entorno, pues pasas aquí los retornos, vas a calcular los retornos finales con la función discretón, que como veis aquí está teniendo solo en cuenta el retorno obtenido desde ese paso hasta el final con el truco

### [1:35:00](https://www.youtube.com/watch?v=CZgASJmRLvg&t=5700s) Segment 20 (95:00 - 100:00)

que os comentaba antes de el reward to go, o sea, solo el retorno obtenido desde ese paso hasta el final, sin contar los retornos obtenidos por los pasos anteriores y donde estábamos eh aquí y eh lo conviertes esto en un tensor, lo normalizas Como veis, lo tenemos por un variable, por defecto va a ser eh por defecto lo va a ser true. Y aquí aplicamos el cálculo del error. Si recordáis de nuestra función las probabilidades por los retornos y le cambiábamos el signo. Esto, si lo recordáis, de nuestra función de gradiente. teníamos las probabilidades de cada una de nuestras de nuestra de nuestras acciones por los retornos obtenidos los sumábamos y como estamos utilizando Adan, pues le cambiamos el signo para que en vez de minimizar maximice. Una vez que has calculado el los haces la vas propagación, la propagación del del gradiente en tu red y esto lo que va a hacer es que modifiques las eh las propi las eh las probabilidades de las acciones en tu red neuronal. Si recordáis esto, esta propagación es lo que hace que se modifiquen los parámetros de tu red neuronal. cada paso que haces en el en el fit forward, eh tú haces un paso vas a ese paso va a tener unas probabilidades, de esas probabilidades vas a irse ampliando acciones eh en cada uno de los estados en los que estés. Esas acciones van a producir unos unas recompensas. Con esas recompensas vas a calcular un los y ese los va a ir en una dirección positiva o negativa que va a modificar los gradientes en la fase de propagación B propagation de tu red neuronal. Fácil, ¿verdad? sumas los episodios eh los rewards del episodio para el monitoring y bueno, luego aquí tienes los algo eh para grabar vídeo y todo ese tipo de cosas que ya estábamos haciendo en la red en el paso anterior. Vamos a ver una cosilla aquí. ¿Cómo aprende para esto? Solo es un recordatorio cómo aprendía eh la red, ¿no? Si recordáis en el logic eh cuando le pasas esto te generaba de para la acción derecha y la izquierda te generaba dos números. Esto lo conformábamos en probabilidades y estas probabilidades se las pasábamos en este en este, si recordáis aquí construíamos una distribución de probabilidades aquí después de la aplicación de softmch de los logics, lo conformamos, lo convertíamos en probabilidades y con esto creábamos una distribución de probabilidades. Pues tomáamos un ejemplo y con esos ejemplos y con ese eh con esa eh cada una de las acciones eh y van en cada episodio y van tomando si va eh tomando una acción con respecto a las probabilidades que íbamos obteniendo de ¿dónde? De nuestra red, que es lo que está aprendiendo la red. está aprendiendo las probabilidades con las que tomar una acción u otra. Esas probabilidades se van metiendo en esto y como veis cada paso en el que hacemos una propagación hacia atrás se modifican estas estos pesos, los pesos de nuestra red que van a generar estos logics y estas probabilidades. Esto es lo que hacíamos en el cool learning con o con las redes con las capas ruidosas o con el algoritmo exploración explotación. ¿Qué es lo que hace en uno en

### [1:40:00](https://www.youtube.com/watch?v=CZgASJmRLvg&t=6000s) Segment 21 (100:00 - 105:00)

un en el efecto? Pues para que veáis aquí un poco en el en práctica, en la práctica, en el episodio número uno, pues las probabilidades de nuestro derecha izquierda pues van a ser o 50% prácticamente 150, o sea, que prácticamente será random. Luego a partir de como conforme vas a entrenando la red, estas probabilidades irán modificándose con respecto al gradiente que le está pasando en la B propagation, la propagación hacia atrás de nuestra eh mientras está aprendiendo estas variables, estos dos probabilidades se irán modificando hasta que eh y como veis aquí en este caso hasta hace exploración. Aquí ya empieza ya puede eh empieza a elegir una que es más favorable que la otra, que es lo que se está haciendo aquí en esta acción de aquí. ¡Ups! Perdón. ¿Por qué? porque le estás pasando las probabilidades. Aquí convertimos las probabilidades en una distribución y una de las acciones va a tener más probabilidad que la otra. O sea, que cuando haces un muestreo, pues la probabilidad con el 70% va a ser más probable que la que tiene el 30%. O sea, ya estamos empezando a explotar y conforme va progresando el training, cada vez hay una de las acciones que tiene más probabilidad con la que la otra. Eh, esto este y como veis el secreto el secreto de todo el entrenamiento, aparte de la exploración, explotación que la va aprendiendo con las probabilidades que va asignando a cada una de las acciones, pues también depende muchísimo de cómo calculamos el retorno. El retorno, ¿por qué? que es que era donde tenía el ¿Dónde estaba esto? Donde tenía la importancia el eh este factor que era el que hacía que un incremento fuera mayor o menor y que era que lo que hacía que unos algoritmos se comportaran mejor que otros. ¿De acuerdo? Y esto es lo que veremos en el en los episodios, en el próximo vídeo que veremos, introduciremos los algoritmos a 2PO. Ahí está el secreto. O sea, la exploración explotación va a ser la misma las redes. Lo único que vamos a hacer es cómo hacemos que los que cómo digamos hacemos que el retorno influya en el cálculo de probabilidades que vamos a mejorar o no mejorar en cada paso que hacemos de entrenamiento de nuestra reduronal. ¿De acuerdo? Si recordáis cómo se hacía esto en el cool learning, pues lo hacíamos como os decía, con el exilong con una eh en exploración tomabas una acción random del entorno y en explotación utilizabas la red o de tu cool table o de tu target network. Y aquí, como os lo decía, y esto, bueno, como también comentábamos en el en los vídeos del coolarning, hasta que no se introdujeron las redes noisy, las capas Nois en las cuales la red aprendía cuándo era bueno explorar o explotar, pues todo el tema de exploración, explotación era algo que era ajeno al algoritmo, no dependía el algoritmo. Aquí no. Aquí el propio la propia red está aprendiendo cuándo explorar o explotar también, ¿no? ¿Por qué? Pues porque aquí estás haciendo un sample eh que depende de una distribución a la cual ya le estás accignando unas probabilidades para cada una de las acciones que tengas disponibles en ese estado y eso lo vas modificando con respecto al entrenamiento. ¿De acuerdo? Por eso están eh las diferencias en el cálculo del retorno son tan importantes, ¿no? Y esto es lo que hace las diferencias también en los próximos algoritmos que vamos a ver. Muy bien. Pues ya eh, ¿qué es lo que os me queda por? Bueno, pues vamos a ver simplemente un el

### [1:45:00](https://www.youtube.com/watch?v=CZgASJmRLvg&t=6300s) Segment 22 (105:00 - 110:00)

ejemplo de cómo sería esto. Eh, simplemente pues eh invocamos nuestro algoritmo que lo tenemos en el en este script en benchmark. Esto estamos siguiendo la misma metodología que estábamos utilizando en Coolarning para que cuando veáis el curso en completo o todos los vídeos, pues eh digamos que al menos eh cómo planteamos los problemas y cómo los resolvemos tenga haya una coherencia en todos ellos. Vamos a grabar un vídeo, número de episodios, número de vídeos eh que vamos a grabar, número de episodios que vamos a utilizar para entrenar la red, el Gasma, que es el factor de descuento y el rate de la red neuronal. Le damos. Hay otros valores también mientras entrena. Esto lo podemos ver en el en este algoritmo de aquí, que es el que invoca en definitiva al policy gradient. Y le podéis pasar también si normalice, no normalice el gamma, el learning ray, el tamaño de la red, o sea, que podéis luego jugar también con algunos de los parámetros que tiene ahí. Bueno, empieza aquí a entrenar. Y que como veis, el algoritmo este pues está muy superado ya. Eh, los retornos que dan son muy escasos. Esto, si os acordáis de Rainbow, eh, lo que vimos estaba dando retornos del de 500 o de 400 y pico en este mismo entorno para que veáis que se puede hacer lo mismo con uno o con otro. Esto, de hecho, estoy utilizando el mismo entorno que utilizábamos en Coolarning para que luego podáis comparar unos algoritmos con otros. Y bueno, aquí estamos grabando el vídeo que eh a ver si lo tengo por aquí. Sí, lo tengo. A ver, ¿dónde lo tengo. Vídeos vídeos. Policy gradient. Bueno, veréis el esto y bueno, lo resuelve. No es nada del otro mundo porque ya os digo, el algoritmo de Reinforce pues está bien. Eh, quizás lo podíamos eh entrenar un poco más, cambiar los parámetros de del descuento, los parámetros del learning rate y obtener un poquito algo un poquito más estable. Pero bueno, como veis, eh se termina eh se resuelve el entorno que es de lo que Bueno, lo he dicho, en los próximos vídeos veremos los otros algoritmos que eh bueno, eh lo dicho, eh PPO es algo que sin saber estáis utilizando eh todos los días eh cuando interactuáis con los con el CH GPT y con los otros LLMs están utilizando estas estos eh estos algoritmos, estas esta forma de eh digamos es sí, el reinforcement learning y todo esto para poder entrenar y optimizar los modelos y que den respuestas. Obviamente es mucho más complejo de lo que os estoy diciendo, eh, pero estos son unos fundamentos que son muy buenos tenerlos para cuando luego queráis hacer otras cosas más interesantes que veremos, eh, sobre todo en el tema de find tuning de LLMs, que veremos una vez que hayamos pasado por todos los las variantes, tanto cool learning como policy optimization como los modelos. Muy bien, lo dejamos aquí. Eso es todo. Espero que os haya gustado, que os haya entretenido. Un tema muy interesante como siempre, como todas las cosas que vemos. A mí me gusta mucho el tema reinforce meriting. Espero que os guste a vosotros también. Lo he dicho, espero que os haya entretenido, que os haya gustado, que os haya resultado de interés y si es así, pues ya sabéis, darle un like, suscribiros al canal si no estáis ya suscritos, considerar hacer los miembros de pago. De esa forma, pues así también me ayudáis a seguir con este proyecto. Y bueno, pues nada más, eh, nos vemos en el siguiente vídeo. también podéis ayudarme, pues ya sabéis, con el tema de los likes, de comentarios, siempre que sean eh buenos comentarios, eh más que buenos, que buena crítica es aceptada, que sean educados, ¿no? Se acepta también cualquier otro tipo de comentario, no pasa nada, simplemente que lo que nos acepta son pues insultos

### [1:50:00](https://www.youtube.com/watch?v=CZgASJmRLvg&t=6600s) Segment 23 (110:00 - 110:00)

y todo ese tipo de cosas. Yo me como cualquier persona me puedo equivocar. Eh, puedo decir una cosa mal. Eh, yo no lo sé todo. Lo que sé os lo cuento. Y como cualquier persona pues se puede equivocar o algo puede estar mal explicado. Esto eso es normal. Eso cualquier cualquiera de esas críticas es aceptada. Eh, otras ya insultos y otras cosas sin ningún sentido pues ni las acepto y a cualquiera que eso pues lo echo fuera del canal porque vamos suficiente tengo ya. Y bueno, también eso, pues podéis compartir vídeos con amigos y compañeros y de esa forma pues también el algoritmo de YouTube pues posiciona mejor este contenido con respecto a Bueno, venga, nos vemos en un en el próximo vídeo. Un saludo y hasta pronto.

---
*Источник: https://ekstraktznaniy.ru/video/50898*