Hola y bienvenido de nuevo.
En la última lección, vio cómo usamos nuestras funciones auxiliares para configurar realmente el núcleo de nuestra funcionalidad para
entrenar nuestros modelos.
Así que teníamos nuestro estado terminal, nuestra ubicación inicial, nuestra próxima acción, la próxima ubicación y la
ruta más corta realmente define la mayor parte de cómo funcionará nuestro agente o nuestro entorno.
Lo último que tenemos que hacer es usar nuestro entrenamiento para usar nuestro entrenamiento.
Es bastante sencillo en el sentido de lo que debemos incluir, pero cómo lo hacemos es una historia
diferente.
Dicho esto, también, si usan un enfoque diferente o si quieren personalizarlo y experimentar con
él, es muy recomendable.
Además de eso, si utiliza un enfoque diferente y desea discutirlo, no dude en compartirlo en
las preguntas y respuestas.
Más que felices de discutirlo con usted.
Es una gran idea porque hay muchas maneras de resolver esto y es posible que encuentre una manera
que sea mucho mejor, más ventajosa.
Podríamos ver los pros y los contras nuevamente, más que felices de discutirlo.
Bien.
Entonces, ¿qué tenemos que hacer?
Tenemos que poner en marcha nuestra formación.
Para nuestra formación.
Queremos usar el Epsilon.
Básicamente, el porcentaje que tomaremos para la mejor acción para R en lugar de una acción aleatoria.
Así que configuremos nuestro épsilon y configurémoslo en 0. 9 y vamos a hacer algo similar con nuestros valores para nuestro
factor de descuento y nuestra tasa de aprendizaje.
Así que hagamos un factor de descuento igual a 0. 9.
Tomemos también nuestra tasa de aprendizaje y fijémosla en 0. 9.
Esa va a ser la tasa que nuestro agente va a o debería aprender.
Y también queremos tomar el número de episodios de entrenamiento, llamémoslo, y episodios de entrenamiento.
Así que tenemos una serie de episodios de entrenamiento.
Pongámoslo a mil.
¿Cuántas veces se va a entrenar o en cuántos episodios se va a entrenar?
Impresionante.
Ahora, esencialmente lo que queremos hacer es iterar a través de cada episodio.
Queremos tomar el rango de nuestro número de episodios de entrenamiento y establecer básicamente nuestro épsilon.
Queremos encontrar nuestra diferencia temporal.
Para establecer eso, necesitamos mirar algunos valores Q anteriores.
Necesitamos calcular nuestra posición inicial en nuestro índice de acción.
Entonces empecemos.
Tomemos un bucle for grande.
Así que tenemos nuestro cuarto episodio.
En el rango de nuestro número de episodios de entrenamiento.
Aquí vamos.
Salvo cualquier error de sintaxis de mi parte allí, queremos tomar el índice de fila y el índice de columna para nuestra cuadrícula
para nuestra Sra. índice de columna
Y dijo una ubicación de inicio de destino, necesitamos una ubicación de inicio.
Así que tengamos esa mala hora en cada episodio.
Ahora podemos configurar nuestro estado terminal while.
No.
Es estado terminal.
Queremos ver el índice de fila y el índice de columna.
Bueno.
A continuación, configuremos nuestro índice de acción para nuestra próxima acción.
Así que necesitamos nuestra próxima acción.
A medida que este agente recorre los medios para nuestro índice de acción, podemos usar nuestra próxima acción.
Y podemos usar nuestro índice de columna de índice de fila y llamemos a nuestro epsilon.
Así que queremos tener esto en lugar de nuestra acción aleatoria, usemos el índice de columna.
Y necesitamos a Epsilon.
Impresionante.
Si pudiera escribir correctamente.
Aquí, queremos a Epsilon.
Está bien, déjame borrar esto.
Bueno.
Déjame agarrar el resto del código y lo revisaremos para que no tengas que verme escribir
cada línea.
Pero tenga en cuenta cómo queremos abordar esto.
Compensando la fila anterior, necesitaríamos un índice de fila anterior.
También nos gustaría tener las recompensas para nuestras columnas y nuestras filas.
Necesitamos echar un vistazo a los valores de cola y los valores de cola antiguos, y necesitamos calcular nuestra diferencia
temporal.
Bueno.
Entonces ves el cambio en el código o la actualización del código.
Estamos tomando nuestro índice de fila anterior y nuestro índice de columna anterior para ver nuestro índice de fila y el índice de columna.
Nuestro índice de columna de índice de fila es igual a nuestra próxima ubicación.
Y nuestra próxima ubicación necesitaría el índice de fila, columna, índice y acción.
Por último, estamos buscando recompensas.
Nuestros valores Q anteriores serían valores Q con el índice de fila anterior, el índice de columna anterior y nuevamente, haciendo referencia
a nuestro índice de acción y el cálculo de nuestra diferencia temporal, que es nuestra recompensa, más el factor
de descuento multiplicado por los valores Q con la fila índice e índice de columna menos el valor Q antiguo del valor Q
anterior.
Casi terminado donde necesitamos nuestro nuevo valor Q, que es nuestro antiguo valor de referencia, más la tasa de aprendizaje,
los tiempos, la diferencia temporal y nuestros valores de referencia con el índice de fila anterior en nuestro índice de columna anterior igual al nuevo
valor de referencia.
Si quieren seguir discutiendo esto, nuevamente, les recomiendo las preguntas y respuestas.
Por favor, siéntase libre de imprimir.
Trate de experimentar con todas las variables utilizadas aquí.
Si desea ver su forma, ver cómo se pueden usar, a qué se refiere, lo recomiendo encarecidamente y estoy más
que feliz de discutirlo más a fondo.
Una última cosa que podemos hacer, tenemos una pequeña notificación.
Agreguemos una declaración de impresión para que sepamos cuándo se completó el entrenamiento para nuestras mil filas.
Bien.
Si no hay errores de sintaxis de mi parte, deberíamos estar listos para comenzar.
El cuaderno de columnas se inicializa.
Volví a ejecutar todo, así que déjame ejecutar esto.
Debería ser muy rápido ya que solo estamos usando numpy.
Es un modelo muy optimizado en cierto sentido.
Déjame hacer clic aquí y luego buscaremos el camino más corto.
Bien.
Tenemos nuestra formación completa.
También imprimamos la ruta más corta para algunas opciones de inicio.
Así que estamos comenzando una fila tres, columna nueve con la opción de ruta más corta con nuestra ruta más corta.
Queremos ver la fila cinco y cero y comenzar en la fila nueve y la columna número cinco.
Imprimamos estos.
Impresionante.
Tenemos el camino más corto, pero no hemos terminado.
Casi estámos allí.
Podemos ver que nuestro cartero obtiene automáticamente el camino más corto desde una ubicación legal que podemos considerar desde nuestra ciudad hasta
el área de empaque del artículo.
Pero, ¿qué pasaría al revés del escenario opuesto, básicamente refiriéndose a, ya sabes, nuestro cartero puede entregar
un artículo desde cualquier lugar de la ciudad al área de empaque?
Pero después del artículo, tendría que ir desde esa área, desde el área de empaque a otro lugar en la
ciudad, porque tendría que recoger el siguiente artículo.
Entonces, ¿qué podemos hacer para solucionar esto?
Y en realidad es bastante simple.
Podrías revisar el orden del camino más corto.
Intenta pensar en eso por un segundo y luego esta sería la solución.
Podemos usar el camino más corto.
Entonces, tomemos la escritura cinco y la columna dos y luego todo lo que necesita hacer es usar la opción inversa
con Python.
Usamos path dot reverse y podríamos imprimir la ruta.
Así que estamos viendo cinco y dos.
Y ahí vamos.
Tenemos el camino más corto.
Y es realmente útil si desea capturar la imagen en la celda y bajarla para comparar y ver
esas rutas.
Pero en realidad puede ver el camino si toma el estado de cuenta impreso, mira la columna
en el pedido y ve cómo viaja el vendedor.
Tan impresionante trabajo que estás usando.
Aprendizaje Q.
Lo que aprendimos de este curso tiene un pequeño escenario adicional y divertido en la sección para resolver
este tipo de problema esencialmente de vendedor ambulante.
Estamos buscando al cartero para que entregue paquetes y artículos en la ciudad para encontrar las opciones y los caminos
más cortos.
Le recomiendo encarecidamente que personalice, pruebe otras opciones, cambie los hiperparámetros y, si descubre algo
mejor, si descubre alguna optimización o los mejores parámetros para usar, no dude en compartirlos en las
preguntas y respuestas.
Increíble.
Espero que hayan disfrutado mucho esto.
Personaliza, experimenta y sigue aprendiendo.
Es muy divertido trabajar contigo.
Aprender y disfrutar I.