Hola y bienvenidos a la historia
Está bien, así que después de hacer estas cuatro convoluciones y el LCN, ahora tenemos un estado codificado que será la
entrada de estas dos redes neuronales que vamos a hacer para el actor y el crítico.
Y hablando de ellos, lo único que tenemos que hacer ahora es simplemente crear herramientas en nuestras conexiones completas.
Una para el actor y otra para el crítico.
Pero antes de hacerlo, necesitamos obtener el número de acciones posibles.
Y entonces te llamaré variable aquí que no va a ser una variable del objeto.
yo aquí, pero crearé no salidas viables que representarán una serie de acciones posibles y para obtenerlo.
Así que no voy a utilizar el
Bueno, podemos obtenerlo del espacio de acción.
Entonces tomamos nuestro espacio de acción que será la entrada de la función cuando creamos el objeto.
Y luego lo agregamos y para obtener este número de acciones posibles.
Y ahora el actor y el crítico tomarán por separado la misma entrada que es la salida de
todo este proceso aquí con las convoluciones y GLSEN.
Por lo tanto, tomará la misma entrada que es un estado codificado, pero luego tendrán dos conexiones lineales diferentes,
de modo que finalmente obtendremos dos redes neuronales, una para los dos y otra para un crítico.
Así que hagamos estas dos redes neuronales separadas.
Pero como ya hicimos un gran trabajo con la codificación aquí, lo que tenemos que hacer simplemente es crear
dos objetos, uno en la conexión completa para el actor y otro en conexión lineal para el crítico.
Y eso es exactamente lo que voy a hacer.
Voy a crear dos objetos, ahora un primer objeto para la conexión lineal del crítico, que
voy a llamar crítico y el puntaje de Linnie y para crear esta conexión lineal.
Ya sabes cómo hacerlo, simplemente tenemos que tomar el módulo del motor y luego la clase lineal a la que
tenemos dos entradas.
Bueno, las neuronas de entrada que son las salidas de todo esto, incluso aquí con las
circunvoluciones y el GM que es de 256 neuronas.
Entonces, cuando coloque doscientos cincuenta y seis aquí y luego vamos a tener una salida porque recuerde que la salida de
la red neuronal para el crítico es el valor de la función aplicada al estado de entrada
a los estados de entrada codificados que hicimos aquí.
Entonces, si llamamos al estado de entrada s que es el resultado de todo esto, la salida de la red neuronal
del crítico será VS y, por lo tanto, tiene una dimensión.
Es solo un valor.
Y entonces aquí ponemos uno.
Y recuerde que esto es lo que comparten los actores para que puedan obtener información común que puedan
usar para interpretar su acción de una manera más relevante.
OK, así que eso es para la red neuronal de la crítica.
Y ahora hagamos la nueva red del actor y por lo tanto estoy aquí autodidacta actor lineal y mismo ya
tenemos los estados de entrada codificados.
lo tanto, decir que tomamos el en un módulo, luego la clase lineal y ahora
diciendo que esta nueva red del actor tomará el estado codificado que tiene el tamaño de 256 por 256 aquí.
Así que ahora simplemente necesitamos agregar una conexión lineal y, por
Pero entonces el resultado será diferente porque, por supuesto, usted sabe que la salida de la red neuronal
para el actor, otra clave, involucra los valores clave de los estados de entrada.
El que pudimos escuchar y el plato de acción.
Así que de nuevo si llamamos a este estado codificado que queremos decir aquí como una acción jugada a la salida
de esta red neuronal en realidad habrá q como a.
Y como sabes que tenemos un gran valor para cada acción, entonces no tenemos resultados.
por lo tanto, el resultado aquí serán no resultados porque ningún resultado es realmente el número de humanos.
Los valores Q y,
Bien perfecto.
Entonces, si quieres, puedo escribir para tu producción aquí.
El crítico es el bien, así como el estado codificado y para el actor, la salida es linda, está bien.
Entonces, es muy importante comprender esta distinción aquí y comprender que, por lo tanto, tenemos dos
redes de noticias separadas.
Uno para el crítico y el otro para el actor. Bien perfecto.
Así que casi hemos terminado con esta función.
Ahora lo más importante está hecho.
Lo único que queda por hacer es inicializar todos los pesos de esas dos redes neuronales y
todos los sesgos.
Y, por supuesto, para hacer eso vamos a utilizar las dos funciones que hicimos anteriormente que son el
inicializador de columnas normalizado y los pesos en él.
Así que hagámoslo rápido
Va a ser bastante fácil y bastante rápido.
aleatorios y para hacer esto vamos a aplicar los pesos en su función a nuestro objeto.
Entonces primero vamos a inicializar algunos pesos
Entonces aquí tenemos que tomar auto para obtener nuestro objeto y objetar.
Aplicamos el peso en su función.
Por lo tanto, dentro solo tenemos que poner los pesos en esa función y luego obtenemos que aplicaremos esta función a
nuestro objeto y al hacerlo solo estamos inicializando algunos pesos aleatorios para obtener un aprendizaje óptimo en
el futuro de estos pesos.
Y ahora lo que tenemos que hacer es hacer una normalización especial para el actor y el crítico.
la misma varianza para la X en acrílico. Yakked obtendrá una pequeña desviación estándar de varianza pequeña.
Pero recuerde que creo que dije esto en los tutoriales anteriores, no vamos a establecer
Y los críticos obtendrán uno grande.
Y por qué hacemos esto
¿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
estándar del camino para el crítico?
Bueno, eso permite gestionar la exploración versus la explotación.
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
que haga una crítica.
Tendremos una buena gestión de exploración versus explotación.
Así que hagamos esto, primero cuidemos al actor.
Entonces nos tomamos auto u objeto entonces vamos a tomar la red neuronal de nuestro actor, que es el actor
Linnea, entonces vamos a acceder a los pesos de esta nueva red del actor y recordar acceder a
los datos de los pesos que necesitamos esa información
Todo bien.
Entonces con esto obtenemos los pesos y ahora vamos a usar nuestra función de inicializador de peine normalizado.
Así que estoy copiando este pegar aquí y vamos a ingresar un argumento.
La desviación estándar que queremos que tengan estos pesos.
Pero primero recuerda que esta función tiene dos argumentos.
Primero, la forma en que queremos inicializar.
Entonces, simplemente necesitamos tomar eso de nuevo y basar eso aquí.
Y el segundo argumento es la desviación estándar.
Queremos que estos pesos tengan.
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.
Entonces ahí es donde están los pesos de la red neuronal del actor.
Ahora ocupémonos de la parcialidad del nuevo trabajo del actor.
Y, por lo tanto, aquí vamos a hacer casi lo mismo, vamos a copiar esta pegada a continuación.
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
cero porque queremos que todos los dispositivos se inicialicen con cero.
Así que, en realidad, no creo que esta línea sea necesaria porque, como recordarán, los compradores ya se han inicializado
a cero con esta función de relleno en la función de espera.
Entonces, usted sabe que estamos haciendo esto solo para asegurarnos de que los compradores se inicialicen a cero.
Pero creo que ya está hecho aquí.
Pero de todos modos, ahora estamos 100 por ciento seguros.
De acuerdo, vamos a hacer lo mismo con la crítica.
Entonces, seamos eficientes y cubramos estas dos líneas.
Afrontémoslos aquí y aquí solo vamos a reemplazar al actor por crítico.
Igual que aquí.
Y ahora lo único que tenemos que cambiar es solo la desviación estándar que queremos que tengan los
pesos de la red neuronal para el crítico.
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.
Y como recordarán una vez esta vez una desviación estándar grande en lugar de abierta o una,
ingresaremos una, así que ahí vamos
Y luego, cuando lleguemos a la crítica.
Y, por supuesto, eso es algo que tenemos que reemplazar activo aquí por crédito.
Bien ahora nos ponemos guays
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
LACMA pertenece a nuestro objeto y diríamos o como T. NORTE. entonces eso y luego vamos a
obtener los dos tipos de compradores que están en el último.
Eso es un sesgo y el puntaje por edad y el otro se basa en la edad del puntaje.
Esos son los dos tipos de sesgo en el CME y lo mismo se va a inicializar a cero.
Entonces, primero accedemos a los datos y luego usamos la función de subrayado de relleno para llenar todos esos
compradores con ceros inicializándolos con los suyos.
Derecha.
Y ahora, para el segundo grupo de compradores que estamos aquí, los reemplazamos por edad según la edad.
Todo bien.
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.
Eso inicializa el sesgo de los ceros y ahora lo último
Y básicamente hay solo un método que pone el módulo en tratamiento.
Entonces, ¿de qué sirve?
Bueno, el uso es que permite activar si hay alguna caída en las ligaduras del baño.
Y para usarlo simplemente agregamos el tren de auto pensamiento y eso pone al módulo en perfecto estado.
Así que terminamos con la función init.
Tenemos nuestras circunvoluciones, tenemos la CME, tenemos nuestras dos redes neuronales separadas para el crítico
y el actor, y todos los pesos y sesgos están bien inicializados.
Así que eso está bien.
Estamos listos para pasar al siguiente paso que consiste en hacer que la función de avance, por
supuesto, adelante propague la señal desde el principio con las imágenes de entrada originales en todo el cerebro
hasta que obtengamos la salida.
Así que hagámoslo en el siguiente tutorial.
Y hasta entonces, disfruta de la IA.