WEBVTT

00:00.560 --> 00:02.560
Hola y bienvenido a este tutorial.

00:02.750 --> 00:04.610
Ahora tenemos el cerebro del mañana.

00:04.610 --> 00:06.350
También tenemos el optimizador.

00:06.350 --> 00:09.980
Entonces, básicamente, estamos listos para entrenar a nuestros diferentes agentes.

00:10.010 --> 00:11.620
Ese es nuestro cerebro diferente.

00:11.720 --> 00:18.650
Así que eso es a partir de ahora que hará que esta función de tren grande contenga todo el algoritmo A3 y

00:18.650 --> 00:24.920
por lo tanto lo que estamos por implementar en este tren que encontré es solo esta enorme función de tren

00:25.230 --> 00:31.200
que será solo la función de este gran tren, nada más clase pero quién usará esta función de tren.

00:31.250 --> 00:33.880
Y el último paso de este módulo con el código principal.

00:34.100 --> 00:35.010
Entonces ahí vamos

00:35.060 --> 00:37.340
Pero antes de comenzar, puedes notar eso.

00:37.490 --> 00:42.020
Bueno, primero importamos algunas bibliotecas, así que esas son las bibliotecas clásicas con el módulo de antorcha.

00:42.020 --> 00:49.040
Me refiero a que su biblioteca de antorchas termina la biblioteca para crear el entorno que se abrirá.

00:49.220 --> 00:54.470
Entonces, por supuesto, importaremos realmente la clase de nuestro modelo.

00:54.620 --> 00:55.980
Archiva este.

00:56.420 --> 01:00.070
Y finalmente usaremos una variable de TORCIDA.

01:00.150 --> 01:04.000
Lamento realizar concursos de alto rendimiento en el gradiente.

01:04.100 --> 01:05.750
Gracias a los gráficos dinámicos.

01:05.990 --> 01:11.960
Y luego tenemos esto asegurar la función de graduado compartido, que no quería pasar demasiado tiempo en esto

01:11.960 --> 01:16.930
porque, en primer lugar, esto es solo una función que asegurará que todo funcione correctamente.

01:17.030 --> 01:20.400
Si el modelo utilizado por el agente no tiene ningún gradiente de acciones.

01:20.480 --> 01:25.640
Es por eso que se llama graduado corto compartido y la otra razón es que no creo que esta

01:25.640 --> 01:26.530
función sea necesaria.

01:26.630 --> 01:32.700
menos con esto estará 100 por ciento seguro de que el código se ejecutará correctamente, pero eso no es realmente importante.

01:33.080 --> 01:34.790
Pero nunca lo sabemos y al

01:34.880 --> 01:40.640
En lo que debemos enfocarnos es en esta función de tendencia que todos empezamos a hacer ahora mismo.

01:41.000 --> 01:41.600
Así que, aquí vamos.

01:41.610 --> 01:48.860
Def y train pronto se convertirán en un tren y esta transformación tomará varios argumentos.

01:49.010 --> 01:50.400
El primero es rango.

01:50.420 --> 01:56.460
Voy a explicar de qué se trata y el segundo, el segundo es harams para que todos los

01:56.460 --> 01:57.840
parámetros sean el entorno.

01:57.920 --> 02:02.860
Entonces el tercer parámetro se va a compartir moral.

02:03.170 --> 02:09.260
Entonces, usted sabe que el modelo compartido es lo que el agente obtendrá para ejecutar su

02:09.260 --> 02:17.050
pequeña exploración en un cierto número de pasos y, finalmente, el último argumento será el optimizador que hemos creado anteriormente.

02:17.770 --> 02:20.040
Tan perfecto que se trata de argumentos.

02:20.090 --> 02:24.010
Y ahora estamos listos para comenzar a implementar la misma función.

02:24.170 --> 02:30.890
Entonces, lo primero que haremos es recordar que lo que A-380 significa significa agentes

02:31.010 --> 02:32.480
Crilley activos sincrónicos.

02:32.540 --> 02:34.980
Entonces en 8: 3 vemos que hay un sincrónico.

02:34.980 --> 02:40.940
parámetro de rango aquí es solo para cambiar la semilla para que cada agente de entrenamiento esté sincronizado.

02:40.940 --> 02:49.010
Entonces, como usted entendió, tenemos que privar de derechos a cada agente de entrenamiento y deseconomías, entonces vamos a usar el rango para cambiar

02:49.220 --> 02:52.230
cada lado con este rango, por lo que este

02:52.580 --> 02:59.390
Entonces, por ejemplo, si hay agentes de entrenamiento, los rangos irán de 1 a 10 y habrá un

02:59.390 --> 03:02.600
número entero por agente de 1 a 10.

03:02.630 --> 03:08.840
Entonces, cuando cambiamos la semilla por un hilo, todos los números pseudoaleatorios creados por este hilo

03:08.840 --> 03:11.340
serán totalmente independientes de los otros hilos.

03:11.480 --> 03:14.250
Sin embargo, la semilla o los números fijos.

03:14.510 --> 03:19.640
Entonces, cuando reproducimos la experiencia, encontraremos exactamente los mismos eventos.

03:19.880 --> 03:23.450
Y eso es porque es determinista con respecto al asiento.

03:23.690 --> 03:30.470
Entonces, es importante entender eso y es por eso que tenemos que hacer es sincronizar a cada agente aprendiz usando

03:30.800 --> 03:34.260
el derecho aquí para cambiar la semilla con el rango.

03:34.350 --> 03:36.110
Así que hagamos esto para hacer eso.

03:36.140 --> 03:39.170
Vamos a tomar nuestra biblioteca de torche.

03:39.170 --> 03:45.350
Luego vamos a obtener la semilla con subrayado manual del paréntesis de semilla.

03:45.350 --> 03:51.040
Esta es una función y ahora vamos a tomar las semillas de todos los agentes a

03:51.220 --> 03:55.620
los que podemos acceder desde esa semilla y desplazarlos por rango para sincronizar.

03:55.660 --> 04:05.420
Cada uno de estos agentes solo agregará aquí más rec y eso cambiará la semilla con el rango para privar de derechos a cada agente

04:05.510 --> 04:09.970
en prácticas porque hay una semilla para cada agencia de capacitación.

04:09.980 --> 04:15.390
Está bien, lo primero que se hace y ahora el próximo paso, el siguiente paso es obtener el medio ambiente.

04:15.530 --> 04:21.470
Así que vamos a crear una nueva variable a la que vamos a llamar y que ahora usaremos para

04:21.590 --> 04:26.120
crear Atari y funcionar desde el módulo final para crear el ambiente para la ruptura.

04:26.150 --> 04:28.130
Eso es para que el ambiente se desate.

04:28.250 --> 04:38.070
Entonces tomamos esta función para crear Terry y ahora tenemos que ingresar solo un argumento que son los parámetros

04:38.070 --> 04:39.060
del entorno.

04:39.270 --> 04:42.730
Y los tenemos porque esta es una de las entradas de la función cerebral.

04:42.750 --> 04:48.270
Este es el parámetro aquí que serán los parámetros del entorno de breakout

04:48.330 --> 04:58.320
y, por lo tanto, para obtener los entornos de breakout, tomamos estos programas y luego eso y luego obtenemos un nombre que en el

04:58.320 --> 05:03.240
futuro está en el siguiente código con la función principal que ejecutará

05:03.240 --> 05:06.010
todo el código será breakout braquial visir.

05:06.010 --> 05:09.450
De acuerdo, eso nos da un ambiente perfecto.

05:09.610 --> 05:16.080
Y ahora el siguiente paso es alinear el asiento del entorno con uno de los agentes.

05:16.180 --> 05:17.650
Y por qué hacemos eso

05:17.650 --> 05:24.220
Es porque recuerde que cada agente del A-3 Silmaril tiene su propia visión del medio ambiente, como su propia

05:24.220 --> 05:31.000
copia del medio ambiente y, por lo tanto, debemos alinear a cada uno de los agentes en una versión

05:31.000 --> 05:36.520
específica del entorno y para hacerlo vamos a usar el asiento porque cada asiento determina un

05:36.520 --> 05:37.320
ambiente específico.

05:37.450 --> 05:43.390
Entonces, al asociar una semilla diferente a cada agente obtendremos exactamente lo que queremos, es

05:43.390 --> 05:46.340
decir, que cada agente tendrá su propio entorno.

05:46.500 --> 05:54.730
Entonces, ¿cómo podemos hacer eso? Entonces podemos tomar nuestro entorno y luego usar la función semilla para saber elegir los

05:54.770 --> 05:57.340
que obtiene para el medio ambiente.

05:57.520 --> 06:01.370
Y ahora, alinear el asiento del entorno con la semilla del agente.

06:01.600 --> 06:08.460
Bueno, simplemente tenemos que obtener esto porque esto corresponde a la sede del agente que se cambió las cosas a

06:08.530 --> 06:14.170
rango para obtener agentes de formación organizados decentes, ya que todos están en un conjunto diferente.

06:14.200 --> 06:20.020
Así que solo tenemos que pagar eso aquí y esto alineará el asiento del entorno con el

06:21.210 --> 06:24.660
del agente De acuerdo, ahora vamos a obtener nuestro modelo.

06:24.670 --> 06:27.060
Ese es nuestro A-3 ver cerebros.

06:27.180 --> 06:32.320
Y es que ahora vamos a usar la clase activa de nuestro archivo modelo.

06:32.350 --> 06:38.500
objeto de esta clase de actividad y vamos a llamar a este modelo de objeto o cerebro si lo desea.

06:38.500 --> 06:40.960
Así que básicamente vamos a crear un nuevo

06:41.200 --> 06:47.650
Pero básicamente este objeto contendrá todas las convoluciones del CM. La conexión lineal y la función de

06:47.650 --> 06:49.500
Ford para propagar la señal.

06:49.600 --> 06:55.630
Por lo tanto, básicamente contendrá los cerebros del actor en el crítico con la capacidad de propagar la

06:55.630 --> 06:59.120
señal a través del cerebro para obtener el resultado final.

06:59.170 --> 07:06.850
Así que hagamos esto, creemos nuestro modelo, así como dijimos que queremos llamar a este modelo de objetos.

07:07.150 --> 07:15.040
Y así creamos un objeto de la clase Crear acto y por lo tanto tomamos un crítico de actor de clase y ahora

07:15.040 --> 07:17.250
recordamos qué argumentos cuando las dos entradas.

07:17.350 --> 07:20.420
De hecho, estos son los argumentos de la función.

07:20.640 --> 07:26.230
Así que, si tenemos que ingresarlo, sabes que eso es lo que tenemos que hacer para usar el objeto en el método.

07:26.530 --> 07:33.010
Pero luego los argumentos que tenemos que poner son nomine puts que están en mal estado y que se hacen en cadenas

07:33.010 --> 07:38.680
de arte en imágenes impresas y el espacio real que lo contiene lo conoce como el conjunto de acciones.

07:38.680 --> 07:42.550
Entonces, pongamos estos argumentos en la función de tren.

07:42.760 --> 07:51.580
Entonces, el primero que podemos obtener con nuestro entorno y eso, y luego usamos el espacio de observación que es el espacio de

07:51.580 --> 07:59.020
observaciones, luego de eso, y luego se obtiene el número de entradas, obtenemos el cero del paréntesis de sombreado.

07:59.190 --> 07:59.550
Todo bien.

07:59.550 --> 08:01.120
Eso es para entradas.

08:01.290 --> 08:04.690
Y ahora para el espacio de acción.

08:04.860 --> 08:10.480
Bueno, eso es casi lo mismo que necesitamos obtener de nuestro entorno que somos más importantes que eso.

08:10.500 --> 08:12.920
Y luego espacio de acción.

08:12.920 --> 08:13.260
Todo bien.

08:13.260 --> 08:17.860
Y eso nos da los argumentos que necesitamos ingresar cuando creamos un objeto.

08:17.860 --> 08:20.130
El modelo de la clase execrate.

08:20.400 --> 08:25.150
OK, entonces ahora tenemos nuestro modelo y ahora el siguiente paso es preparar nuestros estados de entrada.

08:25.170 --> 08:31.230
Así que recuerde que todavía estamos haciendo un aprendizaje informal más profundo, por lo que la entrada indica nuestras imágenes de

08:31.560 --> 08:37.080
entrada y por lo tanto esto será realizado originalmente por Ray, que contendrá un canal porque trabajaremos con imágenes

08:37.080 --> 08:40.670
en blanco y negro y tendrá tiempo en océanos de 42 42.

08:40.980 --> 08:46.680
Pero es importante comprender y tener en cuenta aquí que los estados de entrada son imágenes de entrada.

08:46.680 --> 08:51.940
Entonces, lo que tenemos que hacer es obtener el no poder, entonces lo convertiremos en una respuesta de tortura.

08:52.050 --> 08:57.770
Pero el primer paso, como lo hicimos anteriormente, es conseguir un árbitro y obtenerlo.

08:57.840 --> 08:58.970
En realidad es bastante simple.

08:58.980 --> 09:06.080
que crear una variable para el estado de entrada que cruzará el estado y esto para obtener una matriz de árbitros.

09:06.080 --> 09:07.130
Bien, primero tenemos

09:07.230 --> 09:13.000
Simplemente necesitamos tomar nuestro entorno y luego adaptarnos y luego usar la función de reinicio.

09:13.200 --> 09:19.940
Y esto inicializará a los Estados como una matriz de dimensiones del imperio, una por 42 por 42.

09:20.190 --> 09:27.170
Uno significa 1 canal, por lo que la imagen en blanco y negro y 42 por 42 es, por supuesto, la dominación de la imagen.

09:27.210 --> 09:30.860
El número de píxeles y el ancho y el número de píxeles y la altura.

09:30.870 --> 09:32.630
Así que, básicamente, esa es solo la instancia de tiempo.

09:32.670 --> 09:34.660
Y esos son con los que trabajamos.

09:34.820 --> 09:40.830
esto en arbitraje porque esto nos conseguirá estas imágenes de ese seguro de tiempo en Empire.

09:40.830 --> 09:42.670
Y ahora que ahora tenemos

09:42.870 --> 09:48.510
Ahora podemos convertirlos en bailarines de antorchas y para hacerlo bien volvemos a un estado de datos

09:48.510 --> 09:50.890
porque no necesitamos mantener las matrices numéricas.

09:51.180 --> 09:55.030
Y ahí es donde usamos la antorcha del módulo de antorcha.

09:55.260 --> 10:02.790
Y recuerde que ya hicimos eso para hacer con la función del subrayado de paréntesis no tailandés.

10:02.880 --> 10:08.350
Y dentro de esta función, necesitamos ingresar la tasa de número que queremos convertir en un sensor de antorcha.

10:08.610 --> 10:14.880
Y ese es el estado en que la versión anterior de la matriz estatal sin pago se canalizará desde la

10:14.880 --> 10:20.510
función de tubería a un sensor de soplete de modo que solo se crea un intensificador del estado.

10:20.550 --> 10:24.870
Y ahora solo tenemos que inicializar el hecho viable.

10:24.870 --> 10:30.650
Recuerde que la variable generalmente es la variable que dice si un episodio terminó o si el juego terminó.

10:30.870 --> 10:37.110
Bueno, aquí solo queremos presentar esto muy bien y el inicializador a verdadero para especificar que este Do

10:37.160 --> 10:41.230
not Voivode será igual a verdadero cuando el juego esté terminado.

10:41.260 --> 10:46.790
Eso será útil para más adelante para que la IA no juegue indefinidamente para estallar.

10:46.820 --> 10:47.350
Todo bien.

10:47.390 --> 10:54.320
Así que eso fue básicamente el comienzo de esta función de tendencia con algunas inicializaciones y algunas cosas que

10:54.320 --> 10:55.370
tenemos que hacer.

10:55.370 --> 11:00.560
La parte más importante aquí fue que debemos privar de derechos a cada agente en prácticas.

11:00.560 --> 11:04.890
Ese es un primer principio del A3 similar que tenemos que aplicar.

11:05.160 --> 11:09.780
Y ahora en el siguiente tutorial procederemos a la sincronización con el modelo compartido.

11:09.830 --> 11:14.810
No olvidemos que existe un modelo diferente, pero también el modelo compartido, que es un modelo

11:14.810 --> 11:16.180
que comparten todos los agentes.

11:16.190 --> 11:22.430
Y entonces tenemos que sincronizarnos con el modelo del espectáculo para que cada agente pueda obtener este modelo compartido para

11:22.520 --> 11:25.990
proceder a una pequeña exploración de un cierto número de pasos.

11:26.000 --> 11:28.080
Entonces eso es lo que haremos en el próximo Statoil.

11:28.130 --> 11:29.710
Y hasta entonces, disfruta de la IA.
