WEBVTT

00:00.480 --> 00:06.650
Olá e bem vindo a este tutorial agora vamos fazer essa segunda função para inicializar os pesos.

00:06.840 --> 00:11.190
E este será usado para obter uma aprendizagem ideal.

00:11.340 --> 00:13.160
Na verdade, esses pesos.

00:13.230 --> 00:21.960
Assim, a segunda função que vamos chamar de peso sublinhado nela e levará como argumento o

00:22.200 --> 00:26.020
objeto e que representará a rede neural.

00:26.220 --> 00:27.080
Então é tudo.

00:27.090 --> 00:32.300
E depois cólon e agora vamos entrar na função para definir o que queríamos fazer.

00:32.580 --> 00:38.610
queríamos fazer é inicializar os pesos da nova rede de forma a obter uma aprendizagem ideal.

00:38.610 --> 00:39.920
Então, basicamente, o que

00:40.080 --> 00:43.590
Portanto, isso não parece particularmente intuitivo.

00:43.590 --> 00:46.740
Isto é baseado em trabalhos de pesquisa e experiências.

00:46.740 --> 00:52.440
Vamos inicializar os pesos de uma maneira específica que não vimos antes, mas acredite em

00:52.440 --> 00:54.740
mim, otimizando o processo de aprendizagem.

00:54.930 --> 01:00.760
Então, acabamos de implementar sem entrar nos detalhes de por que inicializamos os pesos desta forma.

01:00.960 --> 01:06.390
um truque que será usado mais tarde para fazer a distinção entre a convolução

01:06.660 --> 01:13.260
e a conexão completa, porque você sabe que nossa AI terá olhos e, portanto, terá algumas camadas convolutivas.

01:13.260 --> 01:15.290
E então vamos começar usando

01:15.330 --> 01:20.550
E é claro que também terá algumas camadas totalmente conectadas e teremos uma inicialização diferente

01:20.550 --> 01:23.550
dos pesos para esses dois tipos de conexões.

01:23.820 --> 01:28.620
Então, vamos usar esse truque para separar esses dois tipos de conexões e

01:28.890 --> 01:34.160
depois usaremos algumas condições para obter a inicialização diferente para cada uma dessas conexões.

01:34.170 --> 01:40.410
Então, esse truque é criar uma nova variável que vamos chamar de sobrenome e que

01:40.410 --> 01:44.630
será chamado para um objeto e representa a rede neural.

01:44.670 --> 01:47.140
Mas é um objeto que veremos mais tarde.

01:47.430 --> 01:54.290
E nós vamos obter o atributo especial deste objeto, que será Kolesnik com

01:54.390 --> 02:01.570
duplo sublinhado primeira classe duplo sublinhado ponto duplo sublinhado novamente nome e quase aí.

02:01.610 --> 02:03.100
Outro sublinhado duplo.

02:03.360 --> 02:10.500
Então, esse é um truque muito feio para procurar o tipo de conexão do nosso novo objeto de rede, mas isso nos dará

02:10.500 --> 02:12.100
exatamente o que você quer.

02:12.210 --> 02:15.300
Você vai ver que vai dar sentido quando começamos se as condições.

02:15.540 --> 02:19.710
E, a propósito, falar de condições, podemos detê-las agora.

02:19.710 --> 02:26.170
E então, o que vamos fazer agora é iniciar a primeira condição que nos dará o primeiro caso.

02:26.280 --> 02:34.770
Isso é se a conexão é uma convolução e, portanto, para escrever esta condição, se o nome da classe estiver

02:35.010 --> 02:35.510
bem.

02:35.510 --> 02:45.180
Aqui, usamos um método que o método de busca encontra e dentro quando colocado entre aspas para convolução.

02:45.300 --> 02:54.330
E, portanto, se o nome da classe encontrar pode é que vamos fazer diferente do menos um que é realmente

02:54.540 --> 02:57.900
se tivermos uma convolução porque Manasquan significa não.

02:58.200 --> 03:03.360
Bem, nesse caso, faremos uma inicialização especial dos pesos.

03:03.420 --> 03:07.830
Então, esta condição aqui significa se temos uma conexão de convolução.

03:07.830 --> 03:13.910
Então, nesse caso, o que fazemos é executar esta inicialização específica da maneira que queremos fazer.

03:14.040 --> 03:17.930
E é assim que todas as coisas não intuitivas virão.

03:18.060 --> 03:21.990
Começaremos criando uma variável que vamos chamar.

03:22.180 --> 03:29.260
E esta forma de corte, de modo que o peso destaca a forma será uma lista que basicamente contém a forma dos

03:29.530 --> 03:31.310
pesos em nossa nova rede.

03:31.580 --> 03:35.800
Para que possamos usar a função de lista para criar uma lista.

03:35.930 --> 03:42.880
E dentro, vamos colocar na rede neural o peso que será o peso da rede

03:42.880 --> 03:43.500
neural.

03:43.570 --> 03:50.890
em seguida, o tamanho do tamanho nos dará a forma desses pesos na conexão de convolução.

03:50.890 --> 03:59.670
Mas na conexão de convolução e para obter a forma desses pesos, usamos outro atributo que é esse dado e,

03:59.680 --> 04:06.580
Então, agora a forma de peso contém em uma lista a forma dos pesos e as conexões de convolução

04:06.880 --> 04:08.300
de nossa rede e.

04:08.460 --> 04:14.510
Tudo bem, então temos forma de peso, então, para inicializar os pesos desta conexão de convolução.

04:14.560 --> 04:16.650
Nós vamos precisar de dois valores.

04:16.650 --> 04:22.920
Primeiro é o produto da primeira dimensão pela segunda nomeação por esta terceira dimensão.

04:22.930 --> 04:27.960
agora e então também precisaremos obter o tempo dos zeros tempos antigos pela segunda vez e

04:27.960 --> 04:33.570
às vezes a terceira dimensão e depois usaremos esses dois valores na competição de como inicializamos o pesos.

04:33.660 --> 04:35.660
Então, é isso que vamos conseguir

04:35.670 --> 04:37.920
Então, obtenha isso através deste primeiro produto.

04:37.920 --> 04:46.050
Nós chamamos isso de diversão e isso será igual ao produto e vamos usar a função prod, que é

04:46.050 --> 04:55.270
uma função de não-tailandês que tem um atalho e P So MP que PRUD e dentro da peça que nós inserimos o

04:55.260 --> 04:56.680
que queremos fazer produtos.

04:57.180 --> 05:02.590
E, como dissemos, é o diamante e um e dois e três da nossa forma de peso.

05:02.880 --> 05:10.430
E para obter isso, podemos dar uma forma de onda e obter os índices desses três motores de linha.

05:10.500 --> 05:15.800
E assim estabelecemos Simonton um até 10 polegadas e três incluídos.

05:16.020 --> 05:18.770
Então uma masmorra para excluídos.

05:19.050 --> 05:24.230
E é assim que podemos obtê-lo para o limite superior aqui não está incluído.

05:24.440 --> 05:35.410
Então, é isso que queremos, então, o mesmo para se divertir, como dissemos que o Fan vai ser o produto do dano na

05:35.410 --> 05:39.650
dimensão do tempo zero duas vezes que mencionei três.

05:39.730 --> 05:45.490
E aqui podemos obter indexados de dois incluídos para quatro excluídos.

05:45.730 --> 05:52.110
Então, isso será como o produto do tempo e dois e três e, então, podemos

05:52.180 --> 05:58.900
multiplicá-lo pelo design e zero, o que podemos acessar com cerco zero do índice zero.

05:59.230 --> 06:16.990
é uma vez duas vezes em três e logo abaixo, temos zero vezes duas vezes em três da nossa lista de pesos de pesagem.

06:16.990 --> 06:20.320
Então, para resumir, esta

06:20.320 --> 06:25.390
Tudo bem, então, agora vamos usar esses dois valores, fã e avançar para

06:25.870 --> 06:33.280
a inicialização, porque vamos calcular um novo valor, pois vamos chamar W bound e isso é igual à raiz

06:33.280 --> 06:39.530
quadrada que podemos obter com uma função e P de e por isso como qr t.

06:39.520 --> 06:40.830
Segundo, como antes.

06:40.840 --> 06:46.710
Então, a raiz quadrada de 6 dividida por fanning out.

06:46.820 --> 06:57.340
Então, o fã, vamos nos afastar de que conseguimos que este W aqui embaixo represente de alguma forma o tamanho das dezenas

06:57.340 --> 06:58.140
de pesos.

06:58.240 --> 06:59.740
E por que conseguimos isso.

06:59.740 --> 07:06.130
É porque, então, o que estávamos prestes a fazer agora é que queremos gerar pesos

07:06.130 --> 07:10.070
aleatórios inversamente proporcionais ao tamanho do tensor de pesos.

07:10.180 --> 07:18.580
Porque, de fato, o que estamos prestes a fazer agora é levar nossa nova rede e, em seguida, obter o seu peso.

07:18.580 --> 07:25.260
Então, ao seguir tomando o peso do atributo, acesse seus dados que são o próprio tensor.

07:26.100 --> 07:33.330
E, a partir desse tensor de pesos, vamos gerar alguns pesos aleatórios que são

07:33.330 --> 07:37.110
inversamente proporcionais ao tamanho dos pesos dos tensores.

07:37.180 --> 07:45.520
que colocar um limite inferior que será menos W ligado e o limite superior que será mais W de volta.

07:45.520 --> 07:49.090
E assim, nesta função de uniforme agora temos

07:49.750 --> 07:52.460
OK, então é para os pesos.

07:52.510 --> 07:57.460
E agora precisamos inicializar o viés e boas notícias para o viés.

07:57.460 --> 07:59.130
Vai ser muito mais simples.

07:59.200 --> 08:07.650
Vamos inicializá-los com zeros, para que essas aquisições os levem do nosso modelo de curso, que é a

08:08.070 --> 08:09.470
nossa nova rede.

08:09.930 --> 08:15.790
E, em seguida, o atributo para o viés é o viés, em seguida, o mesmo com o acesso aos dados.

08:16.200 --> 08:23.430
preencher o tensor de polarização com zeros, bem com as regras que precisamos para especificar que queremos preenchê-lo com zero.

08:23.580 --> 08:29.970
E então, vamos usar um método que é o método de sublinhado de Phil, que, como você pode

08:29.970 --> 08:31.600
ter adivinhado, é usado para

08:31.700 --> 08:34.230
E por isso estou colocando aqui Zero.

08:34.560 --> 08:40.210
Tudo bem, para resumir, geramos alguns pesos aleatórios inversamente proporcionais ao tamanho dos

08:40.210 --> 08:43.860
pesos dos tensores e inicializamos o dispositivo com zeros.

08:43.860 --> 08:49.850
Tudo bem, então foi para a ação Inicializar nas conexões de convolução.

08:49.880 --> 08:52.880
Agora, precisamos fazer o mesmo para a conexão completa.

08:53.300 --> 09:01.470
mesmo fizermos esse truque, usamos o nome da primeira classe que é essa variável que contém os diferentes nomes das conexões.

09:01.470 --> 09:05.160
E então vamos adicionar novas condições e, se o

09:05.160 --> 09:14.440
Então, se o nome da classe o mesmo, usamos o método de busca ao qual, ao colocar as citações desta vez, uma conexão completa

09:14.580 --> 09:19.050
que é uma conexão linear clássica em uma rede neural artificial clássica.

09:19.390 --> 09:27.160
E assim, o nome para isso é linear e dizendo que vamos usar esse truque para dizer que queremos

09:27.160 --> 09:35.810
que seja diferente de menos um, então esse é o objetivo final da classe. A linho fino é diferente de menos

09:35.810 --> 09:41.360
um se a conexão estiver em Aí, se é que temos uma conexão clássica.

09:41.360 --> 09:44.620
Então, nesse caso, como vamos inicializar os pesos.

09:44.840 --> 09:47.260
Bem, será o mesmo.

09:47.270 --> 09:54.020
Nós vamos introduzir o Voivode Whaleship que não irá apagar o primeiro, porque queremos, neste

09:54.050 --> 10:01.430
caso ou caso, por isso não será o mesmo, então podemos reverter totalmente o mesmo, então,

10:01.430 --> 10:08.600
vamos apresentar um fã em variável que desta vez não será igual ao produto dessas três

10:08.600 --> 10:09.440
dimensões.

10:09.650 --> 10:17.090
Mas, na verdade, desta vez será igual a designar uma menção.

10:17.380 --> 10:23.870
E isso é porque, para a conexão completa, há menos conexões do que em uma conexão de convolução.

10:23.880 --> 10:29.970
Agora, isso é uma palestra de intuição no final e na seção CNN há menos menção para

10:29.970 --> 10:32.640
uma conexão completa do que para uma convolução.

10:32.640 --> 10:39.840
Então, basicamente, nós apenas tomamos esse tempo em um ano e depois dizemos que vamos ter uma

10:39.840 --> 10:48.780
variável de fan out que então usará para calcular W. os limites e a dominação do ventilador vão ser a forma de peso do

10:49.160 --> 10:49.890
índice 0.

10:49.890 --> 10:51.470
Esse é o diamante zero.

10:51.480 --> 10:55.290
Tudo bem então para o GWB e vai ser o mesmo.

10:55.470 --> 11:01.780
Será a raiz quadrada de 6 dividida pela soma do crime e descobrirá.

11:01.830 --> 11:04.660
Então vamos lá.

11:04.880 --> 11:11.870
tipo de inicialização desta vez com um ventilador diferente e ventilar e, portanto, diferente w que .

11:11.870 --> 11:20.990
E então a boa notícia é que é exatamente o mesmo que anteriormente usamos a função uniforme para os pesos e a função

11:20.990 --> 11:24.440
de preenchimento para o viés para obter o mesmo

11:24.560 --> 11:27.520
Então, esse é o mesmo princípio que é a mesma idéia.

11:27.530 --> 11:32.660
A única coisa que muda aqui é que temos menos dominações para a conexão

11:32.780 --> 11:39.160
completa e, portanto, uma consideração mais simples sobre este limite dos pesos aqui para gerar esses pesos aleatórios.

11:39.200 --> 11:45.210
Mas a boa notícia é que agora não é só esses pesos e funciona muito.

11:45.380 --> 11:47.150
Mas agora temos duas ferramentas.

11:47.330 --> 11:50.180
E então estamos prontos para começar a construir o cérebro.

11:50.300 --> 11:51.280
Então eu não posso esperar.

11:51.290 --> 11:53.500
Esta será, naturalmente, a parte mais emocionante.

11:53.510 --> 11:57.630
Isso foi apenas para se aquecer e nos preparar para o grande.

11:57.650 --> 11:59.990
Então, vamos cuidar disso no próximo tutorial.

12:00.080 --> 12:02.590
Bem, na verdade, vai levar vários tutoriais, é claro.

12:02.690 --> 12:04.350
Vamos começar por fazer os olhos.

12:04.520 --> 12:10.040
E então lembre-se de que vamos adicionar uma ilustração para aprender as propriedades temporais da entrada e

12:10.040 --> 12:12.170
depois cuidaremos do ator e do crítico.

12:12.170 --> 12:17.000
E é aí que vamos usar isso para funcionar de forma normalizada, vem o inicializador e os pesos nela.

12:17.120 --> 12:18.590
Então eu não posso esperar para fazer isso.

12:18.590 --> 12:20.630
Nós vamos fazer algo muito poderoso agora.

12:20.630 --> 12:22.510
Então prepare-se para isso.

12:22.790 --> 12:24.250
Até então, desfrute da AI.
