WEBVTT

00:00.480 --> 00:06.650
Hola y bienvenidos a este tutorial ahora vamos a hacer esta segunda función para inicializar los pesos.

00:06.840 --> 00:11.190
Y este se usará para obtener un aprendizaje óptimo.

00:11.340 --> 00:13.160
En realidad estos pesos.

00:13.230 --> 00:21.960
Entonces, la segunda función que vamos a llamar, ponderaciones de subrayado en ella, tomará como argumento

00:22.200 --> 00:26.020
el objeto y representará la red neuronal.

00:26.220 --> 00:27.080
Así que eso es todo.

00:27.090 --> 00:32.300
Y luego dos puntos y ahora entremos en la función para definir lo que queríamos hacer.

00:32.580 --> 00:38.610
queríamos hacer es inicializar los pesos de la nueva red de tal forma que obtengamos un aprendizaje óptimo.

00:38.610 --> 00:39.920
Entonces, básicamente, lo que

00:40.080 --> 00:43.590
Entonces esto no parece particularmente intuitivo.

00:43.590 --> 00:46.740
Esto se basa en trabajos de investigación y experimentos.

00:46.740 --> 00:52.440
Vamos a inicializar los pesos de una manera específica que no hemos visto antes, pero créanme

00:52.440 --> 00:54.740
que optimizará el proceso de aprendizaje.

00:54.930 --> 01:00.760
Así que simplemente implementamos sin entrar en los detalles de por qué inicializamos los pesos de esta manera.

01:00.960 --> 01:06.390
que se usará más tarde para hacer la distinción entre la convolución y la conexión

01:06.660 --> 01:13.260
completa, ya que usted sabe que nuestra IA tendrá ojos y por lo tanto tendrá algunas capas convolucionales.

01:13.260 --> 01:15.290
Y entonces comenzaremos usando un truco

01:15.330 --> 01:20.550
Y, por supuesto, también tendrá algunas capas completamente conectadas y tendremos una inicialización diferente de

01:20.550 --> 01:23.550
los pesos para estos dos tipos de conexiones.

01:23.820 --> 01:28.620
Así que vamos a utilizar este truco para separar estos dos tipos de conexiones

01:28.890 --> 01:34.160
y luego usaremos algunas condiciones para obtener la inicialización diferente para cada una de estas conexiones.

01:34.170 --> 01:40.410
Entonces, este truco es crear una nueva variable que vamos a llamar apellido y que

01:40.410 --> 01:44.630
se llamará a un objeto y representará la red neuronal.

01:44.670 --> 01:47.140
Pero es un objeto que veremos eso más tarde.

01:47.430 --> 01:54.290
Y vamos a obtener el atributo especial de este objeto que será Kolesnik con doble guión

01:54.390 --> 02:01.570
bajo de primera clase doble guión bajo punto doble guión bajo de nuevo nombre y casi allí.

02:01.610 --> 02:03.100
Otro guion bajo doble.

02:03.360 --> 02:10.500
Entonces, ese es un truco bastante feo para buscar el tipo de conexión de nuestro nuevo objeto de red, pero eso nos dará

02:10.500 --> 02:12.100
exactamente lo que usted quiere.

02:12.210 --> 02:15.300
Vas a ver que va a tener sentido cuando comencemos si las condiciones.

02:15.540 --> 02:19.710
Y, por cierto, hablando de condiciones, podemos detenerlos ahora mismo.

02:19.710 --> 02:26.170
Y entonces, lo que vamos a hacer ahora es comenzar la primera condición que nos dará el primer caso.

02:26.280 --> 02:34.770
Eso es si la conexión es una convolución y así escribir esta condición correcta si el nombre de la clase está

02:35.010 --> 02:35.510
bien.

02:35.510 --> 02:45.180
Aquí usamos un método, el método de búsqueda find y inside, cuando lo ponemos entre comillas para convolución.

02:45.300 --> 02:54.330
Y si el nombre de clase encuentra la lata, vamos a hacer algo diferente a menos uno, que en realidad es

02:54.540 --> 02:57.900
si tenemos una convolución porque Manasquan significa no.

02:58.200 --> 03:03.360
Bueno, en ese caso haremos una inicialización especial de los pesos.

03:03.420 --> 03:07.830
Entonces, esta condición aquí significa si tenemos una conexión de convolución.

03:07.830 --> 03:13.910
Entonces, en ese caso, lo que hacemos es ejecutar esta inicialización específica de la forma en que queremos hacer.

03:14.040 --> 03:17.930
Y ahí es donde vendrán todas las cosas no intuitivas.

03:18.060 --> 03:21.990
Comenzaremos creando una variable que vamos a llamar.

03:22.180 --> 03:29.260
Y esta forma de la cancha, así que el peso subraya la forma, será una lista que básicamente contendrá la forma de

03:29.530 --> 03:31.310
los pesos en nuestra nueva red.

03:31.580 --> 03:35.800
Y entonces usaremos la función de lista para crear una lista.

03:35.930 --> 03:42.880
Y dentro vamos a poner en la red neuronal ese peso que será el peso de la

03:42.880 --> 03:43.500
red neuronal.

03:43.570 --> 03:50.890
y luego el tamaño de tamaño nos dará la forma de estos pesos en la conexión de convolución.

03:50.890 --> 03:59.670
Pero en la conexión de convolución y para obtener la forma de estos pesos utilizamos otro atributo que es ese dato

03:59.680 --> 04:06.580
Entonces, la forma del peso contiene en una lista la forma de los pesos y las conexiones de convolución

04:06.880 --> 04:08.300
de nuestra red y.

04:08.460 --> 04:14.510
De acuerdo, entonces tenemos forma de peso para inicializar los pesos de esta conexión de convolución.

04:14.560 --> 04:16.650
Vamos a necesitar dos valores.

04:16.650 --> 04:22.920
Primero es el producto de la primera dimensión por la segunda nominación de esta tercera dimensión.

04:22.930 --> 04:27.960
obtener ahora y luego también tendremos que obtener el tiempo de los ceros en tiempos muy antiguos la segunda

04:27.960 --> 04:33.570
vez y, a veces, la tercera dimensión y luego usaremos estos dos valores en la competencia de cómo inicializamos el pesas

04:33.660 --> 04:35.660
Así que eso es lo que vamos a

04:35.670 --> 04:37.920
Así que vamos a obtener esto a través de este primer producto.

04:37.920 --> 04:46.050
Lo llamamos divertido y eso será igual al producto y vamos a usar la función prod que es una

04:46.050 --> 04:55.270
función no tailandesa que tiene un atajo y P So MP que PRUD y dentro de prod lo ingresamos lo que

04:55.260 --> 04:56.680
queremos hacer. producto.

04:57.180 --> 05:02.590
Y así como dijimos que es el diamante y uno dos y tres de nuestra forma de peso.

05:02.880 --> 05:10.430
Y para obtener esto podemos tomar una forma de onda y obtener los índices de estos tres motores de línea.

05:10.500 --> 05:15.800
Y así lo configuramos Simonton uno hasta 10 pulgadas y tres incluidos.

05:16.020 --> 05:18.770
Entonces una mazmorra para excluidos.

05:19.050 --> 05:24.230
Y así es como podemos obtenerlo para el límite superior que aquí no está incluido.

05:24.440 --> 05:35.410
Entonces eso es lo que queremos, entonces lo mismo para divertirnos como dijimos, Fan out será el producto del daño en la

05:35.410 --> 05:39.650
dimensión de tiempo cero dos veces que mencioné tres.

05:39.730 --> 05:45.490
Y aquí podemos indexarnos de dos incluidos a cuatro excluidos.

05:45.730 --> 05:52.110
Entonces eso se obtendrá como el producto del tiempo y dos y tres y luego podemos multiplicarlo

05:52.180 --> 05:58.900
por diseño y cero, a lo que podemos acceder con el cero de ballenas del índice cero.

05:59.230 --> 06:16.990
es la única vez dos veces en tres y justo debajo tenemos cero veces dos veces en tres de nuestra lista de pesas.

06:16.990 --> 06:20.320
Entonces, para resumir, esta

06:20.320 --> 06:25.390
Muy bien, ahora vamos a utilizar estos dos valores para abrir y abrir en abanico para

06:25.870 --> 06:33.280
proceder a la inicialización porque vamos a calcular un nuevo valor, ya que vamos a llamar a W enlazado y eso es igual

06:33.280 --> 06:39.530
a la raíz cuadrada que podemos obtener con una función y P desde y por eso como qr t.

06:39.520 --> 06:40.830
Segundo como antes.

06:40.840 --> 06:46.710
Entonces, la raíz cuadrada de 6 se divide por abanico.

06:46.820 --> 06:57.340
Entonces, el ventilador en abaniquemos que tenemos esta W aquí representa de alguna manera el tamaño de las decenas de

06:57.340 --> 06:58.140
pesos.

06:58.240 --> 06:59.740
Y por qué lo conseguimos

06:59.740 --> 07:06.130
Es porque entonces lo que estábamos a punto de hacer ahora es que queremos generar algunos pesos

07:06.130 --> 07:10.070
aleatorios que sean inversamente proporcionales al tamaño del tensor de pesos.

07:10.180 --> 07:18.580
Porque de hecho, lo que vamos a hacer ahora es tomar nuestra nueva red y luego hacer su peso.

07:18.580 --> 07:25.260
Entonces, al tomar el peso del atributo, entonces acceda a sus datos que son el tensor mismo.

07:26.100 --> 07:33.330
Y luego, a partir de este tensor de pesos, vamos a generar algunos pesos aleatorios que son

07:33.330 --> 07:37.110
inversamente proporcionales al tamaño de los pesos del tensor.

07:37.180 --> 07:45.520
que poner un límite inferior que será menos W límite y el límite superior que será más W atrás.

07:45.520 --> 07:49.090
Y así en esta función uniforme ahora tenemos

07:49.750 --> 07:52.460
OK, así que eso es para los pesos.

07:52.510 --> 07:57.460
Y ahora necesitamos inicializar el sesgo y buenas noticias para el sesgo.

07:57.460 --> 07:59.130
Va a ser mucho más simple.

07:59.200 --> 08:07.650
Vamos a inicializarlos todos con ceros, así que para obtener estas compras los sacamos de nuestro modelo de curso, que es

08:08.070 --> 08:09.470
nuestra nueva red.

08:09.930 --> 08:15.790
Y luego el atributo para el sesgo es sesgo, entonces lo mismo con el acceso a los datos.

08:16.200 --> 08:23.430
llenar el tensor de sesgo con ceros y con las reglas, tenemos que especificar que queremos llenarlo con ceros aquí.

08:23.580 --> 08:29.970
Y luego vamos a usar un método que es el método de subrayado de Phil que, como habrás

08:29.970 --> 08:31.600
adivinado, se usa para

08:31.700 --> 08:34.230
Y es por eso que estoy poniendo aquí Zero.

08:34.560 --> 08:40.210
De acuerdo, para resumir generamos algunos pesos aleatorios inversamente proporcionales al tamaño de los

08:40.210 --> 08:43.860
pesos del tensor e inicializamos el dispositivo con ceros.

08:43.860 --> 08:49.850
De acuerdo, así fue para la acción Inicializar en las conexiones de convolución.

08:49.880 --> 08:52.880
Ahora tenemos que hacer lo mismo para la conexión completa.

08:53.300 --> 09:01.470
tomamos este truco utilizamos el nombre de primera clase que es esta variable que contiene los diferentes nombres de las conexiones.

09:01.470 --> 09:05.160
Y entonces vamos a agregar una nueva condición y si

09:05.160 --> 09:14.440
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

09:14.580 --> 09:19.050
que es una conexión lineal clásica en una red neuronal artificial clásica.

09:19.390 --> 09:27.160
Y entonces el nombre es lineal y dice que vamos a usar este truco para decir que queremos que

09:27.160 --> 09:35.810
sea diferente a menos uno, así que este fin de clase es que las sábanas finas son diferentes a menos uno

09:35.810 --> 09:41.360
significa que la conexión está en ahí está eso si tenemos una conexión clásica.

09:41.360 --> 09:44.620
Entonces, en ese caso, ¿cómo vamos a inicializar los pesos?

09:44.840 --> 09:47.260
Bueno, va a ser bastante igual.

09:47.270 --> 09:54.020
Vamos a introducir el ballenero Voivode que no borrará el primero porque lo haremos en este

09:54.050 --> 10:01.430
caso o en ese caso así que no será el mismo, así que podemos invertir totalmente eso, entonces

10:01.430 --> 10:08.600
mismo vamos a introducir un ventilador en variable que esta vez no será igual al producto de

10:08.600 --> 10:09.440
estas tres dimensiones.

10:09.650 --> 10:17.090
Pero en realidad esta vez será igual al diseño mencionar uno.

10:17.380 --> 10:23.870
Y eso es porque para la conexión completa hay menos conexiones que en una conexión de convolución.

10:23.880 --> 10:29.970
Ahora bien, esta es una intuición de conferencias al final y en la sección de CNN hay menos mención

10:29.970 --> 10:32.640
para una conexión completa que para una convolución.

10:32.640 --> 10:39.840
Básicamente, tomamos esta vez en un año y luego dijimos que tendremos una variable

10:39.840 --> 10:48.780
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

10:49.160 --> 10:49.890
índice 0.

10:49.890 --> 10:51.470
Ese es el diamante cero.

10:51.480 --> 10:55.290
Muy bien entonces para GWB y va a ser lo mismo.

10:55.470 --> 11:01.780
Va a ser la raíz cuadrada de 6 dividido por la suma de ofender y descubrir.

11:01.830 --> 11:04.660
Entonces ahí vamos

11:04.880 --> 11:11.870
tipo de inicialización esta vez con un ventilador diferente y abanico y por lo tanto diferente que .

11:11.870 --> 11:20.990
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

11:20.990 --> 11:24.440
de relleno para el sesgo para obtener el mismo

11:24.560 --> 11:27.520
Entonces ese es el mismo principio que es la misma idea.

11:27.530 --> 11:32.660
Lo único que cambia aquí es que tenemos menos dominaciones para la conexión completa y,

11:32.780 --> 11:39.160
por lo tanto, una consideración más simple de este límite de los pesos aquí para generar estos pesos aleatorios.

11:39.200 --> 11:45.210
Pero la buena noticia es que ahora no solo son estos pesos y funciona muy bien.

11:45.380 --> 11:47.150
Pero ahora tenemos dos herramientas.

11:47.330 --> 11:50.180
Y entonces estamos listos para comenzar a construir el cerebro.

11:50.300 --> 11:51.280
Entonces no puedo esperar

11:51.290 --> 11:53.500
Esta será, por supuesto, la parte más emocionante.

11:53.510 --> 11:57.630
Esto fue solo para calentarnos y prepararnos para lo importante.

11:57.650 --> 11:59.990
Así que nos ocuparemos de eso en el próximo tutorial.

12:00.080 --> 12:02.590
Bueno, en realidad va a tomar varios tutoriales, por supuesto.

12:02.690 --> 12:04.350
Comenzaremos por hacer los ojos.

12:04.520 --> 12:10.040
Y luego recuerde que agregaremos una ilustración para aprender las propiedades temporales de la entrada y luego

12:10.040 --> 12:12.170
nos encargaremos del actor y el crítico.

12:12.170 --> 12:17.000
Y ahí es donde lo usaremos para funcionar con el inicializador normalizado viene y pesa en él.

12:17.120 --> 12:18.590
Entonces no puedo esperar para hacer eso.

12:18.590 --> 12:20.630
Vamos a hacer algo muy poderoso ahora.

12:20.630 --> 12:22.510
Así que prepárate para eso.

12:22.790 --> 12:24.250
Hasta entonces, disfruta de la IA.
