WEBVTT

00:00.330 --> 00:02.320
Hola y bienvenidos a la historia

00:02.460 --> 00:09.240
Está bien, así que después de hacer estas cuatro convoluciones y el LCN, ahora tenemos un estado codificado que será la

00:09.240 --> 00:14.500
entrada de estas dos redes neuronales que vamos a hacer para el actor y el crítico.

00:14.790 --> 00:20.730
Y hablando de ellos, lo único que tenemos que hacer ahora es simplemente crear herramientas en nuestras conexiones completas.

00:20.730 --> 00:22.880
Una para el actor y otra para el crítico.

00:23.190 --> 00:27.260
Pero antes de hacerlo, necesitamos obtener el número de acciones posibles.

00:27.290 --> 00:32.520
Y entonces te llamaré variable aquí que no va a ser una variable del objeto.

00:32.520 --> 00:38.970
yo aquí, pero crearé no salidas viables que representarán una serie de acciones posibles y para obtenerlo.

00:38.970 --> 00:41.610
Así que no voy a utilizar el

00:41.760 --> 00:44.520
Bueno, podemos obtenerlo del espacio de acción.

00:44.520 --> 00:51.330
Entonces tomamos nuestro espacio de acción que será la entrada de la función cuando creamos el objeto.

00:51.510 --> 00:56.300
Y luego lo agregamos y para obtener este número de acciones posibles.

00:56.580 --> 01:03.180
Y ahora el actor y el crítico tomarán por separado la misma entrada que es la salida de

01:03.180 --> 01:06.290
todo este proceso aquí con las convoluciones y GLSEN.

01:06.500 --> 01:12.900
Por lo tanto, tomará la misma entrada que es un estado codificado, pero luego tendrán dos conexiones lineales diferentes,

01:13.110 --> 01:19.000
de modo que finalmente obtendremos dos redes neuronales, una para los dos y otra para un crítico.

01:19.020 --> 01:21.030
Así que hagamos estas dos redes neuronales separadas.

01:21.060 --> 01:27.360
Pero como ya hicimos un gran trabajo con la codificación aquí, lo que tenemos que hacer simplemente es crear

01:27.360 --> 01:33.640
dos objetos, uno en la conexión completa para el actor y otro en conexión lineal para el crítico.

01:33.660 --> 01:35.430
Y eso es exactamente lo que voy a hacer.

01:35.490 --> 01:42.560
Voy a crear dos objetos, ahora un primer objeto para la conexión lineal del crítico, que

01:42.570 --> 01:49.210
voy a llamar crítico y el puntaje de Linnie y para crear esta conexión lineal.

01:49.380 --> 01:55.020
Ya sabes cómo hacerlo, simplemente tenemos que tomar el módulo del motor y luego la clase lineal a la que

01:55.020 --> 01:55.800
tenemos dos entradas.

01:55.880 --> 02:01.800
Bueno, las neuronas de entrada que son las salidas de todo esto, incluso aquí con las

02:01.910 --> 02:05.190
circunvoluciones y el GM que es de 256 neuronas.

02:05.190 --> 02:12.120
Entonces, cuando coloque doscientos cincuenta y seis aquí y luego vamos a tener una salida porque recuerde que la salida de

02:12.210 --> 02:17.940
la red neuronal para el crítico es el valor de la función aplicada al estado de entrada

02:18.080 --> 02:20.960
a los estados de entrada codificados que hicimos aquí.

02:21.180 --> 02:28.680
Entonces, si llamamos al estado de entrada s que es el resultado de todo esto, la salida de la red neuronal

02:28.680 --> 02:32.530
del crítico será VS y, por lo tanto, tiene una dimensión.

02:32.550 --> 02:33.710
Es solo un valor.

02:33.870 --> 02:36.320
Y entonces aquí ponemos uno.

02:36.510 --> 02:43.020
Y recuerde que esto es lo que comparten los actores para que puedan obtener información común que puedan

02:43.020 --> 02:46.590
usar para interpretar su acción de una manera más relevante.

02:46.980 --> 02:50.430
OK, así que eso es para la red neuronal de la crítica.

02:50.580 --> 02:59.820
Y ahora hagamos la nueva red del actor y por lo tanto estoy aquí autodidacta actor lineal y mismo ya

02:59.850 --> 03:02.830
tenemos los estados de entrada codificados.

03:02.850 --> 03:08.430
lo tanto, decir que tomamos el en un módulo, luego la clase lineal y ahora

03:08.430 --> 03:15.870
diciendo que esta nueva red del actor tomará el estado codificado que tiene el tamaño de 256 por 256 aquí.

03:15.870 --> 03:19.840
Así que ahora simplemente necesitamos agregar una conexión lineal y, por

03:20.070 --> 03:26.010
Pero entonces el resultado será diferente porque, por supuesto, usted sabe que la salida de la red neuronal

03:26.010 --> 03:30.790
para el actor, otra clave, involucra los valores clave de los estados de entrada.

03:30.860 --> 03:33.620
El que pudimos escuchar y el plato de acción.

03:33.810 --> 03:40.980
Así que de nuevo si llamamos a este estado codificado que queremos decir aquí como una acción jugada a la salida

03:40.980 --> 03:44.480
de esta red neuronal en realidad habrá q como a.

03:44.880 --> 03:50.010
Y como sabes que tenemos un gran valor para cada acción, entonces no tenemos resultados.

03:50.010 --> 03:57.680
por lo tanto, el resultado aquí serán no resultados porque ningún resultado es realmente el número de humanos.

03:57.680 --> 03:59.380
Los valores Q y,

03:59.840 --> 04:01.100
Bien perfecto.

04:01.130 --> 04:05.360
Entonces, si quieres, puedo escribir para tu producción aquí.

04:05.390 --> 04:18.410
El crítico es el bien, así como el estado codificado y para el actor, la salida es linda, está bien.

04:18.410 --> 04:23.750
Entonces, es muy importante comprender esta distinción aquí y comprender que, por lo tanto, tenemos dos

04:23.900 --> 04:25.370
redes de noticias separadas.

04:25.370 --> 04:29.370
Uno para el crítico y el otro para el actor. Bien perfecto.

04:29.380 --> 04:32.080
Así que casi hemos terminado con esta función.

04:32.170 --> 04:33.920
Ahora lo más importante está hecho.

04:34.030 --> 04:39.370
Lo único que queda por hacer es inicializar todos los pesos de esas dos redes neuronales y

04:39.790 --> 04:40.830
todos los sesgos.

04:40.860 --> 04:45.800
Y, por supuesto, para hacer eso vamos a utilizar las dos funciones que hicimos anteriormente que son el

04:45.900 --> 04:48.480
inicializador de columnas normalizado y los pesos en él.

04:48.490 --> 04:49.720
Así que hagámoslo rápido

04:49.870 --> 04:52.180
Va a ser bastante fácil y bastante rápido.

04:52.180 --> 04:56.590
aleatorios y para hacer esto vamos a aplicar los pesos en su función a nuestro objeto.

04:56.590 --> 04:58.420
Entonces primero vamos a inicializar algunos pesos

04:58.420 --> 05:03.150
Entonces aquí tenemos que tomar auto para obtener nuestro objeto y objetar.

05:03.160 --> 05:06.440
Aplicamos el peso en su función.

05:06.620 --> 05:14.200
Por lo tanto, dentro solo tenemos que poner los pesos en esa función y luego obtenemos que aplicaremos esta función a

05:14.200 --> 05:20.080
nuestro objeto y al hacerlo solo estamos inicializando algunos pesos aleatorios para obtener un aprendizaje óptimo en

05:20.140 --> 05:21.930
el futuro de estos pesos.

05:22.000 --> 05:27.460
Y ahora lo que tenemos que hacer es hacer una normalización especial para el actor y el crítico.

05:27.670 --> 05:33.700
la misma varianza para la X en acrílico. Yakked obtendrá una pequeña desviación estándar de varianza pequeña.

05:33.780 --> 05:38.890
Pero recuerde que creo que dije esto en los tutoriales anteriores, no vamos a establecer

05:38.890 --> 05:40.840
Y los críticos obtendrán uno grande.

05:40.840 --> 05:41.800
Y por qué hacemos esto

05:41.800 --> 05:47.560
¿Cuál es el propósito de dar una pequeña desviación estándar de los pesos para el actor y la gran desviación

05:47.560 --> 05:49.320
estándar del camino para el crítico?

05:49.510 --> 05:53.830
Bueno, eso permite gestionar la exploración versus la explotación.

05:53.830 --> 05:58.620
Ese es exactamente el propósito de hacer esto al darle una pequeña variación al actor en una audiencia más amplia para

05:58.630 --> 05:59.460
que haga una crítica.

05:59.490 --> 06:04.510
Tendremos una buena gestión de exploración versus explotación.

06:04.600 --> 06:07.510
Así que hagamos esto, primero cuidemos al actor.

06:07.510 --> 06:14.170
Entonces nos tomamos auto u objeto entonces vamos a tomar la red neuronal de nuestro actor, que es el actor

06:14.270 --> 06:20.350
Linnea, entonces vamos a acceder a los pesos de esta nueva red del actor y recordar acceder a

06:20.350 --> 06:23.360
los datos de los pesos que necesitamos esa información

06:23.410 --> 06:24.280
Todo bien.

06:24.280 --> 06:31.000
Entonces con esto obtenemos los pesos y ahora vamos a usar nuestra función de inicializador de peine normalizado.

06:31.390 --> 06:36.520
Así que estoy copiando este pegar aquí y vamos a ingresar un argumento.

06:36.520 --> 06:38.810
La desviación estándar que queremos que tengan estos pesos.

06:39.160 --> 06:42.130
Pero primero recuerda que esta función tiene dos argumentos.

06:42.200 --> 06:45.280
Primero, la forma en que queremos inicializar.

06:45.280 --> 06:49.750
Entonces, simplemente necesitamos tomar eso de nuevo y basar eso aquí.

06:49.870 --> 06:53.010
Y el segundo argumento es la desviación estándar.

06:53.170 --> 06:54.420
Queremos que estos pesos tengan.

06:54.580 --> 07:02.880
Entonces, como dijimos que queremos una pequeña desviación estándar para el actor en una pequeña, va a ser 0. 01 perfecto.

07:02.890 --> 07:05.880
Entonces ahí es donde están los pesos de la red neuronal del actor.

07:05.900 --> 07:09.610
Ahora ocupémonos de la parcialidad del nuevo trabajo del actor.

07:09.850 --> 07:15.460
Y, por lo tanto, aquí vamos a hacer casi lo mismo, vamos a copiar esta pegada a continuación.

07:15.520 --> 07:26.470
Reemplace el peso de los compradores para acceder a los compradores y después de los datos simplemente vamos a agregar relleno y recordar adentro cuando ponga

07:26.560 --> 07:31.170
cero porque queremos que todos los dispositivos se inicialicen con cero.

07:31.510 --> 07:37.840
Así que, en realidad, no creo que esta línea sea necesaria porque, como recordarán, los compradores ya se han inicializado

07:37.840 --> 07:41.400
a cero con esta función de relleno en la función de espera.

07:41.620 --> 07:47.560
Entonces, usted sabe que estamos haciendo esto solo para asegurarnos de que los compradores se inicialicen a cero.

07:47.560 --> 07:49.490
Pero creo que ya está hecho aquí.

07:49.690 --> 07:52.720
Pero de todos modos, ahora estamos 100 por ciento seguros.

07:53.050 --> 07:55.990
De acuerdo, vamos a hacer lo mismo con la crítica.

07:56.050 --> 07:59.660
Entonces, seamos eficientes y cubramos estas dos líneas.

08:00.220 --> 08:07.180
Afrontémoslos aquí y aquí solo vamos a reemplazar al actor por crítico.

08:07.180 --> 08:08.400
Igual que aquí.

08:08.540 --> 08:13.600
Y ahora lo único que tenemos que cambiar es solo la desviación estándar que queremos que tengan los

08:13.600 --> 08:15.680
pesos de la red neuronal para el crítico.

08:15.970 --> 08:23.310
tenemos una pequeña desviación estándar para los pesos del nuevo trabajo del actor y una gran desviación estándar para los pesos.

08:23.830 --> 08:29.680
Y como recordarán una vez esta vez una desviación estándar grande en lugar de abierta o una,

08:29.680 --> 08:31.610
ingresaremos una, así que ahí vamos

08:31.630 --> 08:33.290
Y luego, cuando lleguemos a la crítica.

08:33.370 --> 08:37.560
Y, por supuesto, eso es algo que tenemos que reemplazar activo aquí por crédito.

08:37.980 --> 08:40.460
Bien ahora nos ponemos guays

08:40.510 --> 08:46.300
Así que ahora tenemos dos cosas restantes que hacer primero es inicializar también el sesgo del equipo y para hacerlo tomamos nuestro objeto porque el

08:46.300 --> 08:53.500
LACMA pertenece a nuestro objeto y diríamos o como T. NORTE. entonces eso y luego vamos a

08:53.870 --> 08:57.980
obtener los dos tipos de compradores que están en el último.

08:58.180 --> 09:04.650
Eso es un sesgo y el puntaje por edad y el otro se basa en la edad del puntaje.

09:04.660 --> 09:09.880
Esos son los dos tipos de sesgo en el CME y lo mismo se va a inicializar a cero.

09:09.880 --> 09:18.810
Entonces, primero accedemos a los datos y luego usamos la función de subrayado de relleno para llenar todos esos

09:18.850 --> 09:21.940
compradores con ceros inicializándolos con los suyos.

09:21.940 --> 09:22.320
Derecha.

09:22.360 --> 09:31.500
Y ahora, para el segundo grupo de compradores que estamos aquí, los reemplazamos por edad según la edad.

09:31.500 --> 09:32.430
Todo bien.

09:32.570 --> 09:39.560
que tenemos que hacer es usar un método que se hereda del extremo y ese módulo que es el método del tren.

09:39.560 --> 09:43.090
Eso inicializa el sesgo de los ceros y ahora lo último

09:43.220 --> 09:47.360
Y básicamente hay solo un método que pone el módulo en tratamiento.

09:47.540 --> 09:48.760
Entonces, ¿de qué sirve?

09:48.890 --> 09:55.440
Bueno, el uso es que permite activar si hay alguna caída en las ligaduras del baño.

09:55.550 --> 10:03.100
Y para usarlo simplemente agregamos el tren de auto pensamiento y eso pone al módulo en perfecto estado.

10:03.170 --> 10:05.650
Así que terminamos con la función init.

10:05.720 --> 10:11.210
Tenemos nuestras circunvoluciones, tenemos la CME, tenemos nuestras dos redes neuronales separadas para el crítico

10:11.210 --> 10:15.400
y el actor, y todos los pesos y sesgos están bien inicializados.

10:15.620 --> 10:16.940
Así que eso está bien.

10:16.940 --> 10:21.860
Estamos listos para pasar al siguiente paso que consiste en hacer que la función de avance, por

10:21.890 --> 10:27.230
supuesto, adelante propague la señal desde el principio con las imágenes de entrada originales en todo el cerebro

10:27.230 --> 10:28.640
hasta que obtengamos la salida.

10:29.000 --> 10:30.770
Así que hagámoslo en el siguiente tutorial.

10:30.800 --> 10:32.330
Y hasta entonces, disfruta de la IA.
