WEBVTT

00:00.330 --> 00:02.320
Olá e bem-vindo à história.

00:02.460 --> 00:09.240
Tudo bem, então, depois que fizemos essas quatro convoluções e o LCN, agora temos um estado codificado que será

00:09.240 --> 00:14.500
a entrada dessas duas redes neurais que faremos para o ator e o crítico.

00:14.790 --> 00:20.730
E, falando sobre eles, o único que temos que fazer agora é apenas criar ferramentas em nossas conexões completas.

00:20.730 --> 00:22.880
Uma para o ator e outra para o crítico.

00:23.190 --> 00:27.260
Mas antes de fazer isso precisamos obter o número de ações possíveis.

00:27.290 --> 00:32.520
E então vou chamar você de variável aqui que não vai ser uma variável do objeto.

00:32.520 --> 00:38.970
mas vou criar resultados não viáveis ​​que representarão uma série de ações possíveis e para obtê-lo.

00:38.970 --> 00:41.610
Então não vou usar o eu aqui,

00:41.760 --> 00:44.520
Bem, podemos obtê-lo a partir do espaço de ação.

00:44.520 --> 00:51.330
Então, nós levamos nosso espaço de ação que será a entrada da função quando criarmos o objeto.

00:51.510 --> 00:56.300
E depois adicionamos isso e conseguimos esse número de ações possíveis.

00:56.580 --> 01:03.180
E agora o ator e o crítico tomarão separadamente o mesmo input que é o resultado de todo

01:03.180 --> 01:06.290
esse processo aqui com as convoluções e o GLSEN.

01:06.500 --> 01:12.900
Então, ele terá a mesma entrada que é um estado codificado, mas então eles terão duas conexões lineares diferentes

01:13.110 --> 01:19.000
para que possamos eventualmente realmente duas redes neurais um para os dois e um para um crítico.

01:19.020 --> 01:21.030
Então, vamos fazer essas duas redes neurais separadas.

01:21.060 --> 01:27.360
Mas já que já fizemos o grande trabalho com o codificar aqui, o que simplesmente precisamos fazer é

01:27.360 --> 01:33.640
criar dois objetos um na conexão completa para o ator e uma outra conexão linear para o crítico.

01:33.660 --> 01:35.430
E então é exatamente o que eu vou fazer.

01:35.490 --> 01:42.560
Eu vou criar dois objetos agora um primeiro objeto para a conexão linear do

01:42.570 --> 01:49.210
crítico que vou chamar crítico e a pontuação Linnie e criar essa conexão linear.

01:49.380 --> 01:55.020
Você sabe como fazê-lo, simplesmente precisamos pegar o módulo do motor e depois a classe linear à qual

01:55.020 --> 01:55.800
temos duas entradas.

01:55.880 --> 02:01.800
Bem, os neurônios de entrada que são as saídas de tudo isso, incluindo aqui com

02:01.910 --> 02:05.190
as convoluções e o GM que é 256 neurônios.

02:05.190 --> 02:12.120
Então, quando eu coloquei duzentos e cinquenta e seis aqui e depois vamos ter uma saída porque lembre-se da saída

02:12.210 --> 02:17.940
da rede neural para o crítico é o valor da função aplicada ao estado de entrada para

02:18.080 --> 02:20.960
os estados codificados de entradas que fizemos Aqui.

02:21.180 --> 02:28.680
Então, se chamamos o estado de entrada s que é a saída de tudo isso, a saída da rede

02:28.680 --> 02:32.530
neural do crítico será VS e, portanto, tem uma dimensão.

02:32.550 --> 02:33.710
É apenas um valor.

02:33.870 --> 02:36.320
E então aqui nós colocamos um.

02:36.510 --> 02:43.020
E lembre-se que isso é o que é compartilhado entre os atores para que eles possam obter informações

02:43.020 --> 02:46.590
comuns que possam usar para atuar de maneira mais relevante.

02:46.980 --> 02:50.430
OK, então é para a rede neural do crítico.

02:50.580 --> 02:59.820
E agora vamos fazer a nova rede do ator e, portanto, eu estou aqui ator autodidata linear e mesmo nós

02:59.850 --> 03:02.830
já temos os estados codificados de insumos.

03:02.850 --> 03:08.430
dizer que nós levamos o módulo em seguida a classe linear e agora dizendo

03:08.430 --> 03:15.870
que esta nova rede do ator terá o estado codificado que tem o tamanho de 256, portanto 256 aqui.

03:15.870 --> 03:19.840
Então, agora, simplesmente precisamos adicionar uma conexão linear e, portanto,

03:20.070 --> 03:26.010
Mas, então, o resultado será diferente porque é claro que você sabe que a saída da rede

03:26.010 --> 03:30.790
neural para o ator outra chave envolve os valores-chave dos estados de entrada.

03:30.860 --> 03:33.620
Aquele que poderíamos ouvir e a placa de ação.

03:33.810 --> 03:40.980
Então, novamente, se chamarmos esse estado codificado que queremos dizer aqui como uma ação desempenhada como resultado

03:40.980 --> 03:44.480
dessa rede neural, na verdade, haverá q como um.

03:44.880 --> 03:50.010
E como você sabe que temos um enorme valor para cada ação, então, não temos resultados.

03:50.010 --> 03:57.680
portanto, a saída aqui não será saída porque nenhuma saída é realmente o número de humanos.

03:57.680 --> 03:59.380
Q valores e,

03:59.840 --> 04:01.100
Ok, perfeito.

04:01.130 --> 04:05.360
Então, se você quiser, posso escrever para você produzir aqui.

04:05.390 --> 04:18.410
O crítico é o bem, como é o estado codificado e para o ator, o resultado é bonito, tudo bem.

04:18.410 --> 04:23.750
Então é muito importante entender esta distinção aqui e entender que, portanto, temos duas

04:23.900 --> 04:25.370
redes de notícias separadas.

04:25.370 --> 04:29.370
Um para o crítico e um para o ator Ok, perfeito.

04:29.380 --> 04:32.080
Então, quase terminamos com essa função.

04:32.170 --> 04:33.920
Agora, o mais importante é feito.

04:34.030 --> 04:39.370
A única coisa restante que temos a fazer é inicializar todos os pesos dessas duas redes neurais e

04:39.790 --> 04:40.830
todo o viés.

04:40.860 --> 04:45.800
E, claro, para fazer isso, vamos usar as duas funções que fizemos anteriormente, que é o

04:45.900 --> 04:48.480
inicializador de colunas normalizadas e os pesos nela.

04:48.490 --> 04:49.720
Então vamos fazer isso rapidamente.

04:49.870 --> 04:52.180
Vai ser bastante fácil e muito rápido.

04:52.180 --> 04:56.590
aleatórios e, para isso, vamos aplicar os pesos na função para o nosso objeto.

04:56.590 --> 04:58.420
Então, primeiro vamos inicializar alguns pesos

04:58.420 --> 05:03.150
Então, aqui, temos de nos levar para obter nosso objeto e se opor.

05:03.160 --> 05:06.440
Nós aplicamos o peso em sua função.

05:06.620 --> 05:14.200
Portanto, dentro, precisamos colocar os pesos nessa função e, então, obtemos que aplicará essa função ao nosso

05:14.200 --> 05:20.080
objeto e, ao fazê-lo, estamos apenas iniciando alguns pesos aleatórios para obter uma

05:20.140 --> 05:21.930
ótima aprendizagem futura desses pesos.

05:22.000 --> 05:27.460
E agora o que temos a fazer é fazer uma normalização especial para o ator e o crítico.

05:27.670 --> 05:33.700
uma mesma variação para o X em acrílico eakked, você terá um pequeno desvio padrão de pequena variação.

05:33.780 --> 05:38.890
Mas lembre-se que eu acho que eu disse isso nos tutoriais anteriores, não vamos definir

05:38.890 --> 05:40.840
E os críticos receberão um grande.

05:40.840 --> 05:41.800
E por que fazemos isso.

05:41.800 --> 05:47.560
Qual o propósito de dar um pequeno desvio padrão dos pesos para o ator e o grande desvio

05:47.560 --> 05:49.320
padrão do caminho para o crítico.

05:49.510 --> 05:53.830
Bem, isso permite gerenciar a exploração versus exploração.

05:53.830 --> 05:58.620
Esse é exatamente o propósito de fazer isso, dando uma pequena variância ao ator em uma audiência maior

05:58.630 --> 05:59.460
para a crítica.

05:59.490 --> 06:04.510
Teremos uma boa gestão da exploração versus exploração.

06:04.600 --> 06:07.510
Então, vamos fazer isso, vamos primeiro cuidar do ator.

06:07.510 --> 06:14.170
Então, nos levamos a si mesmo ou a um objeto, então vamos levar a rede neural do nosso ator,

06:14.270 --> 06:20.350
que é o ator Linnea, então vamos acessar os pesos desta nova rede do ator e lembre-se de

06:20.350 --> 06:23.360
acessar os dados dos pesos que precisamos esses dados.

06:23.410 --> 06:24.280
Tudo bem.

06:24.280 --> 06:31.000
Então, com isso, nós pegamos os pesos e agora vamos usar o mecanismo de inicialização de nosso processador de função normal.

06:31.390 --> 06:36.520
Então eu estou copiando esta colagem aqui e vamos entrar em uma discussão.

06:36.520 --> 06:38.810
O desvio padrão que queremos ter desses pesos.

06:39.160 --> 06:42.130
Mas primeiro lembre-se de que esta função leva dois argumentos.

06:42.200 --> 06:45.280
Primeiro, como queremos inicializar.

06:45.280 --> 06:49.750
Então, simplesmente precisamos tomar isso novamente e basear isso aqui.

06:49.870 --> 06:53.010
E o segundo argumento é o desvio padrão.

06:53.170 --> 06:54.420
Queremos que esses pesos tenham.

06:54.580 --> 07:02.880
Então, como dissemos, queremos um pequeno desvio padrão para o ator em um pequeno, será 0. 01 perfeito.

07:02.890 --> 07:05.880
Então é aí que os pesos da rede neural do ator.

07:05.900 --> 07:09.610
Agora vamos cuidar do viés do novo que funciona do ator.

07:09.850 --> 07:15.460
E, portanto, aqui vamos fazer quase a mesma coisa que vamos copiar essa pasta abaixo.

07:15.520 --> 07:26.470
Substitua o peso pelos compradores para acessar os compradores e, após os dados, simplesmente vamos adicionar preenchimento e lembrar-nos de dentro quando colocar zero

07:26.560 --> 07:31.170
porque queremos que todos os dispositivos sejam inicializados com zero.

07:31.510 --> 07:37.840
Então, na verdade, não acho que essa linha seja necessária porque, como você lembra, os compradores já foram inicializados

07:37.840 --> 07:41.400
a zero com essa função de preenchimento na função de espera.

07:41.620 --> 07:47.560
Então, você sabe que estamos fazendo isso apenas para garantir que os compradores sejam inicializados em zero.

07:47.560 --> 07:49.490
Mas acho que já está feito aqui.

07:49.690 --> 07:52.720
Mas de qualquer forma agora estamos 100% seguros.

07:53.050 --> 07:55.990
Tudo bem agora vamos fazer o mesmo para o crítico.

07:56.050 --> 07:59.660
Então, vamos ser eficientes e vamos cobrir essas duas linhas.

08:00.220 --> 08:07.180
Vamos enfrentá-los aqui e aqui vamos substituir o ator pelo crítico.

08:07.180 --> 08:08.400
O mesmo aqui.

08:08.540 --> 08:13.600
E agora o único que temos que mudar é apenas o desvio padrão que queremos os pesos

08:13.600 --> 08:15.680
da rede neural para a crítica ter.

08:15.970 --> 08:23.310
lá, temos um pequeno desvio padrão para os pesos do novo trabalho do ator e um grande desvio padrão para os pesos.

08:23.830 --> 08:29.680
E, como você se lembra, uma vez desta vez, um grande desvio padrão em vez de aberto

08:29.680 --> 08:31.610
ou um, entraremos um, então, vamos

08:31.630 --> 08:33.290
E então, quando chegamos ao crítico.

08:33.370 --> 08:37.560
E é claro que é algo que conseguimos substituir ativos aqui por crédito.

08:37.980 --> 08:40.460
Tudo bem agora ficamos legal.

08:40.510 --> 08:46.300
Então, agora temos duas coisas restantes a fazer primeiro é inicializar também o viés da equipe e, para fazer isso, nós levamos o nosso objeto porque

08:46.300 --> 08:53.500
a LACMA pertence ao nosso objeto e diriamos ou como T. N. então, e então vamos conseguir

08:53.870 --> 08:57.980
os dois tipos de compradores que estão no último.

08:58.180 --> 09:04.650
Esse é o viés e a pontuação por idade e o outro baseia-se na idade de idade.

09:04.660 --> 09:09.880
Esses são os dois tipos de viés no CME e o mesmo será inicializado para zero.

09:09.880 --> 09:18.810
Então, primeiro nós acessamos os dados e então usamos a função de sublinhado de preenchimento para preencher todos esses

09:18.850 --> 09:21.940
compradores com zeros inicializá-los com os seus.

09:21.940 --> 09:22.320
Certo.

09:22.360 --> 09:31.500
E agora, para o segundo grupo de compradores, estamos aqui, o mesmo é substituído pela idade por idade.

09:31.500 --> 09:32.430
Tudo bem.

09:32.570 --> 09:39.560
coisa que precisamos fazer é usar um método herdado do final e desse módulo que é o método do trem.

09:39.560 --> 09:43.090
Isso inicia o preconceito dos zeros e agora a última

09:43.220 --> 09:47.360
E, basicamente, há apenas um método que coloca o módulo em tratamento.

09:47.540 --> 09:48.760
Então, o que é o uso disso.

09:48.890 --> 09:55.440
Bem, o uso é que ele permite ativar se há alguma queda nas ligaduras do banheiro.

09:55.550 --> 10:03.100
E, portanto, para usá-lo, nós apenas adicionamos trem auto-pensado e isso coloca o módulo em bonde perfeito.

10:03.170 --> 10:05.650
Então, terminamos com a função init.

10:05.720 --> 10:11.210
Nós temos nossas convoluções, temos o CME, temos nossas duas redes neurais separadas para o crítico

10:11.210 --> 10:15.400
e o ator e todos os pesos e preconceitos estão bem inicializados.

10:15.620 --> 10:16.940
Então tudo bem.

10:16.940 --> 10:21.860
Estamos prontos para avançar para o próximo passo, que é para tornar a função de avanço

10:21.890 --> 10:27.230
que, naturalmente, irá propagar o sinal desde o início com as imagens de entrada originais em todo o

10:27.230 --> 10:28.640
cérebro até obter a saída.

10:29.000 --> 10:30.770
Então vamos fazer isso no próximo tutorial.

10:30.800 --> 10:32.330
E até então, desfrute da AI.
