Hola y bienvenidos a este tutorial ahora vamos a hacer esta segunda función para inicializar los pesos.
Y este se usará para obtener un aprendizaje óptimo.
En realidad estos pesos.
Entonces, la segunda función que vamos a llamar, ponderaciones de subrayado en ella, tomará como argumento
el objeto y representará la red neuronal.
Así que eso es todo.
Y luego dos puntos y ahora entremos en la función para definir lo que queríamos hacer.
queríamos hacer es inicializar los pesos de la nueva red de tal forma que obtengamos un aprendizaje óptimo.
Entonces, básicamente, lo que
Entonces esto no parece particularmente intuitivo.
Esto se basa en trabajos de investigación y experimentos.
Vamos a inicializar los pesos de una manera específica que no hemos visto antes, pero créanme
que optimizará el proceso de aprendizaje.
Así que simplemente implementamos sin entrar en los detalles de por qué inicializamos los pesos de esta manera.
que se usará más tarde para hacer la distinción entre la convolución y la conexión
completa, ya que usted sabe que nuestra IA tendrá ojos y por lo tanto tendrá algunas capas convolucionales.
Y entonces comenzaremos usando un truco
Y, por supuesto, también tendrá algunas capas completamente conectadas y tendremos una inicialización diferente de
los pesos para estos dos tipos de conexiones.
Así que vamos a utilizar este truco para separar estos dos tipos de conexiones
y luego usaremos algunas condiciones para obtener la inicialización diferente para cada una de estas conexiones.
Entonces, este truco es crear una nueva variable que vamos a llamar apellido y que
se llamará a un objeto y representará la red neuronal.
Pero es un objeto que veremos eso más tarde.
Y vamos a obtener el atributo especial de este objeto que será Kolesnik con doble guión
bajo de primera clase doble guión bajo punto doble guión bajo de nuevo nombre y casi allí.
Otro guion bajo doble.
Entonces, ese es un truco bastante feo para buscar el tipo de conexión de nuestro nuevo objeto de red, pero eso nos dará
exactamente lo que usted quiere.
Vas a ver que va a tener sentido cuando comencemos si las condiciones.
Y, por cierto, hablando de condiciones, podemos detenerlos ahora mismo.
Y entonces, lo que vamos a hacer ahora es comenzar la primera condición que nos dará el primer caso.
Eso es si la conexión es una convolución y así escribir esta condición correcta si el nombre de la clase está
bien.
Aquí usamos un método, el método de búsqueda find y inside, cuando lo ponemos entre comillas para convolución.
Y si el nombre de clase encuentra la lata, vamos a hacer algo diferente a menos uno, que en realidad es
si tenemos una convolución porque Manasquan significa no.
Bueno, en ese caso haremos una inicialización especial de los pesos.
Entonces, esta condición aquí significa si tenemos una conexión de convolución.
Entonces, en ese caso, lo que hacemos es ejecutar esta inicialización específica de la forma en que queremos hacer.
Y ahí es donde vendrán todas las cosas no intuitivas.
Comenzaremos creando una variable que vamos a llamar.
Y esta forma de la cancha, así que el peso subraya la forma, será una lista que básicamente contendrá la forma de
los pesos en nuestra nueva red.
Y entonces usaremos la función de lista para crear una lista.
Y dentro vamos a poner en la red neuronal ese peso que será el peso de la
red neuronal.
y luego el tamaño de tamaño nos dará la forma de estos pesos en la conexión de convolución.
Pero en la conexión de convolución y para obtener la forma de estos pesos utilizamos otro atributo que es ese dato
Entonces, la forma del peso contiene en una lista la forma de los pesos y las conexiones de convolución
de nuestra red y.
De acuerdo, entonces tenemos forma de peso para inicializar los pesos de esta conexión de convolución.
Vamos a necesitar dos valores.
Primero es el producto de la primera dimensión por la segunda nominación de esta tercera dimensión.
obtener ahora y luego también tendremos que obtener el tiempo de los ceros en tiempos muy antiguos la segunda
vez y, a veces, la tercera dimensión y luego usaremos estos dos valores en la competencia de cómo inicializamos el pesas
Así que eso es lo que vamos a
Así que vamos a obtener esto a través de este primer producto.
Lo llamamos divertido y eso será igual al producto y vamos a usar la función prod que es una
función no tailandesa que tiene un atajo y P So MP que PRUD y dentro de prod lo ingresamos lo que
queremos hacer. producto.
Y así como dijimos que es el diamante y uno dos y tres de nuestra forma de peso.
Y para obtener esto podemos tomar una forma de onda y obtener los índices de estos tres motores de línea.
Y así lo configuramos Simonton uno hasta 10 pulgadas y tres incluidos.
Entonces una mazmorra para excluidos.
Y así es como podemos obtenerlo para el límite superior que aquí no está incluido.
Entonces eso es lo que queremos, entonces lo mismo para divertirnos como dijimos, Fan out será el producto del daño en la
dimensión de tiempo cero dos veces que mencioné tres.
Y aquí podemos indexarnos de dos incluidos a cuatro excluidos.
Entonces eso se obtendrá como el producto del tiempo y dos y tres y luego podemos multiplicarlo
por diseño y cero, a lo que podemos acceder con el cero de ballenas del índice cero.
es la única vez dos veces en tres y justo debajo tenemos cero veces dos veces en tres de nuestra lista de pesas.
Entonces, para resumir, esta
Muy bien, ahora vamos a utilizar estos dos valores para abrir y abrir en abanico para
proceder a la inicialización porque vamos a calcular un nuevo valor, ya que vamos a llamar a W enlazado y eso es igual
a la raíz cuadrada que podemos obtener con una función y P desde y por eso como qr t.
Segundo como antes.
Entonces, la raíz cuadrada de 6 se divide por abanico.
Entonces, el ventilador en abaniquemos que tenemos esta W aquí representa de alguna manera el tamaño de las decenas de
pesos.
Y por qué lo conseguimos
Es porque entonces lo que estábamos a punto de hacer ahora es que queremos generar algunos pesos
aleatorios que sean inversamente proporcionales al tamaño del tensor de pesos.
Porque de hecho, lo que vamos a hacer ahora es tomar nuestra nueva red y luego hacer su peso.
Entonces, al tomar el peso del atributo, entonces acceda a sus datos que son el tensor mismo.
Y luego, a partir de este tensor de pesos, vamos a generar algunos pesos aleatorios que son
inversamente proporcionales al tamaño de los pesos del tensor.
que poner un límite inferior que será menos W límite y el límite superior que será más W atrás.
Y así en esta función uniforme ahora tenemos
OK, así que eso es para los pesos.
Y ahora necesitamos inicializar el sesgo y buenas noticias para el sesgo.
Va a ser mucho más simple.
Vamos a inicializarlos todos con ceros, así que para obtener estas compras los sacamos de nuestro modelo de curso, que es
nuestra nueva red.
Y luego el atributo para el sesgo es sesgo, entonces lo mismo con el acceso a los datos.
llenar el tensor de sesgo con ceros y con las reglas, tenemos que especificar que queremos llenarlo con ceros aquí.
Y luego vamos a usar un método que es el método de subrayado de Phil que, como habrás
adivinado, se usa para
Y es por eso que estoy poniendo aquí Zero.
De acuerdo, para resumir generamos algunos pesos aleatorios inversamente proporcionales al tamaño de los
pesos del tensor e inicializamos el dispositivo con ceros.
De acuerdo, así fue para la acción Inicializar en las conexiones de convolución.
Ahora tenemos que hacer lo mismo para la conexión completa.
tomamos este truco utilizamos el nombre de primera clase que es esta variable que contiene los diferentes nombres de las conexiones.
Y entonces vamos a agregar una nueva condición y si
Entonces, si el nombre de la clase es el mismo, usamos el método find, que esta vez, al poner entre comillas, una conexión completa
que es una conexión lineal clásica en una red neuronal artificial clásica.
Y entonces el nombre es lineal y dice que vamos a usar este truco para decir que queremos que
sea diferente a menos uno, así que este fin de clase es que las sábanas finas son diferentes a menos uno
significa que la conexión está en ahí está eso si tenemos una conexión clásica.
Entonces, en ese caso, ¿cómo vamos a inicializar los pesos?
Bueno, va a ser bastante igual.
Vamos a introducir el ballenero Voivode que no borrará el primero porque lo haremos en este
caso o en ese caso así que no será el mismo, así que podemos invertir totalmente eso, entonces
mismo vamos a introducir un ventilador en variable que esta vez no será igual al producto de
estas tres dimensiones.
Pero en realidad esta vez será igual al diseño mencionar uno.
Y eso es porque para la conexión completa hay menos conexiones que en una conexión de convolución.
Ahora bien, esta es una intuición de conferencias al final y en la sección de CNN hay menos mención
para una conexión completa que para una convolución.
Básicamente, tomamos esta vez en un año y luego dijimos que tendremos una variable
de abanico que luego se usará para calcular W. límites y esta dominación de abanico va a ser la forma de pesos del
índice 0.
Ese es el diamante cero.
Muy bien entonces para GWB y va a ser lo mismo.
Va a ser la raíz cuadrada de 6 dividido por la suma de ofender y descubrir.
Entonces ahí vamos
tipo de inicialización esta vez con un ventilador diferente y abanico y por lo tanto diferente que .
Y luego la buena noticia es que es exactamente lo mismo que anteriormente utilizamos la función uniforme para los pesos y la función
de relleno para el sesgo para obtener el mismo
Entonces ese es el mismo principio que es la misma idea.
Lo único que cambia aquí es que tenemos menos dominaciones para la conexión completa y,
por lo tanto, una consideración más simple de este límite de los pesos aquí para generar estos pesos aleatorios.
Pero la buena noticia es que ahora no solo son estos pesos y funciona muy bien.
Pero ahora tenemos dos herramientas.
Y entonces estamos listos para comenzar a construir el cerebro.
Entonces no puedo esperar
Esta será, por supuesto, la parte más emocionante.
Esto fue solo para calentarnos y prepararnos para lo importante.
Así que nos ocuparemos de eso en el próximo tutorial.
Bueno, en realidad va a tomar varios tutoriales, por supuesto.
Comenzaremos por hacer los ojos.
Y luego recuerde que agregaremos una ilustración para aprender las propiedades temporales de la entrada y luego
nos encargaremos del actor y el crítico.
Y ahí es donde lo usaremos para funcionar con el inicializador normalizado viene y pesa en él.
Entonces no puedo esperar para hacer eso.
Vamos a hacer algo muy poderoso ahora.
Así que prepárate para eso.
Hasta entonces, disfruta de la IA.