Escolar Documentos
Profissional Documentos
Cultura Documentos
false
Descrição
Propósito
Preparação
Objetivos
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 1/86
18/10/23, 20:04 Redes Neurais Recorrentes
Módulo 1
Fundamentos
Descrever fundamentos das RNN e suas aplicações.
Módulo 2
Arquiteturas
Distinguir as principais variações de arquiteturas de RNN.
Módulo 3
Módulo 4
Aplicação em Processamento de
Linguagem Natural
Empregar RNN em Processamento de Linguagem Natural.
Introdução
Atualmente, temos à disposição tecnologias que nos ajudam a
fazer escolhas de produtos e serviços. Cada vez que acessamos
essas tecnologias, estamos consumindo e, ao mesmo tempo,
produzindo dados. Esses dados revelam muitas coisas sobre nosso
comportamento: o que pensamos sobre determinados assuntos,
quais são nossos interesses profissionais e de entretenimento e
quais são nossos anseios.
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 2/86
18/10/23, 20:04 Redes Neurais Recorrentes
1 - Fundamentos
Ao final deste módulo, você será capaz de descrever fundamentos
das RNN e suas aplicações.
Ligando os pontos
Você sabia que existem diferentes tipos de redes neurais de
aprendizado de máquina profundo? Sabia que algumas dessas redes
são aplicadas para problemas de predição? Para respondermos a estas
perguntas, vamos analisar algumas situações práticas.
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 3/86
18/10/23, 20:04 Redes Neurais Recorrentes
Até então, esse trabalho era feito por profissionais que utilizavam
ferramentas para auxiliá-los. No entanto, a empresa está tendo muitas
dificuldades de atender a demanda de seus clientes, além, é claro, não
tem nenhuma possibilidade de expandir os negócios dela no atual
cenário. Diante desse quadro, os gestores da empresa tiveram algumas
reuniões para reverter essa situação. Uma das ideias propostas foi a de
utilizar técnicas de aprendizado profundo no contexto do
processamento de linguagem natural. Em especial, foi dado destaque
para um modelo computacional chamado de Rede Neural Recorrente,
ou, como é mais conhecida, RNN. Isso porque esse modelo de rede é
aplicado com bastante sucesso exatamente para esse tipo de situação
que a Sentimentos Classificados atua.
A ideia teve uma boa recepção, mas não foi simples transformá-la em
realidade. Um dos principais problemas foi a carência de profissionais
que dominassem o conhecimento sobre as redes RNN. Em resumo, a
empresa traçou e executou um plano para qualificar seus profissionais,
além de fazer parcerias com algumas instituições de ensino para
acelerar o aprendizado e intensificar a colaboração. Hoje em dia, a
Sentimentos Classificados utiliza redes RNN nas suas soluções e está
obtendo excelentes resultados para seus clientes.
Questão 1
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 4/86
18/10/23, 20:04 Redes Neurais Recorrentes
Questão 2
texto.
Questão 3
Chave de respostaexpand_more
Redes neurais
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 6/86
18/10/23, 20:04 Redes Neurais Recorrentes
translate
Processamento de Linguagem
Natural (PLN)
Fazem a tradução entre idiomas, reconhecimento de voz e legenda de
imagens.
calculate
Estimativa de valores
Obtêm o provável próximo valor de uma série temporal a partir da
análise do histórico.
Atenção!
Semelhantemente ao que ocorre com outros tipos de redes neurais
artificiais, as RNN também passam por algoritmos de treinamento, em
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 7/86
18/10/23, 20:04 Redes Neurais Recorrentes
Conceitos essenciais
As RNN têm muitos conceitos que precisamos conhecer antes de
estudarmos as particularidades de suas arquiteturas. Como veremos, os
termos das redes neurais são bastante referenciados pelos termos
originais em inglês. É importante sabermos disso, pois nos ajuda no uso
de pacotes computacionais para fazermos implementações. Aqui,
vamos apresentar alguns deles de forma resumida:
Exemplos expand_more
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 8/86
18/10/23, 20:04 Redes Neurais Recorrentes
(w k )
ΔJ (w k )
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 9/86
18/10/23, 20:04 Redes Neurais Recorrentes
w k+1 = w k − ηΔJ (w k )
Otimizador expand_more
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 10/86
18/10/23, 20:04 Redes Neurais Recorrentes
Funções de ativação
Este tipo de função é usado para ativar um neurônio por meio de um
sinal. A ideia, basicamente, é que um neurônio receba um valor,
calculado pela combinação da multiplicação dos pesos com suas
respectivas entradas e seus vieses, e o utilize como entrada para uma
função de ativação. Conheça as principais funções de ativação a seguir.
1
σ(z) =
−z
1 + e
′
σ (z) = σ(z)(1 − σ(z))
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 11/86
18/10/23, 20:04 Redes Neurais Recorrentes
tanh(z) = 2σ(2z) − 1
′ 2
tanh (z) = 1 − tanh (z)
Função ReLU
Sua fórmula e derivada são dadas por:
ReLU(s) = max{0, s}
1, se x ≥ 0
′
ReLU (s) = {
0, caso contr rio á
Softmax
É uma função que fornece probabilidades para cada classe de saída
possível. Ela é usada no final de uma rede neural. Sua fórmula é dada
por:
zi
e
pi = n zj
∑ e
j=1
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 12/86
18/10/23, 20:04 Redes Neurais Recorrentes
Em que:
pi
zi
Aspectos intrínsecos
Nas redes neurais profundas tradicionais, as entradas e saídas são
consideradas independentes entre si. No caso das RNN, as informações
de entradas anteriores são usadas para influenciar a entrada e a saída
atuais, ou seja, a saída delas depende dos elementos anteriores da
sequência.
Exemplo
Quando queremos expressar que apreciamos um filme, podemos usar
uma frase do tipo: “O filme foi muito legal!”. Mas se disséssemos “Legal
muito foi o filme!”, apesar de termos aplicado exatamente as mesmas
palavras, a frase não faria sentido, pois a ordem das palavras é
importante para que a ideia fique clara. Esse exemplo ilustra como as
RNN consideram a posição de cada palavra na frase e usam essa
informação para prever a próxima palavra na sequência.
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 13/86
18/10/23, 20:04 Redes Neurais Recorrentes
FNN
Quando uma rede neural processa as informações em uma única
direção, que vai da camada de entrada para a camada de saída, ela é
chamada de feedforward (Feedforward Neural Network - FNN), também
conhecida como rede sem realimentação e, ainda, rede direta ou
alimentação avante.
CNN
As Redes Neurais Convolucionais (Convolutional Neural Networks - CNN)
extraem características dos objetos de forma automática e adaptativa
usando camadas em estruturas de hierarquias espaciais e são
aplicadas, principalmente, em visão computacional e reconhecimento de
imagens.
No esquema, temos:
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 14/86
18/10/23, 20:04 Redes Neurais Recorrentes
Processo de aprendizado
Para que as RNN possam ser aplicadas para resolver problemas
práticos, elas precisam passar por um processo de aprendizado
parecido com o que ocorre com outras redes neurais tradicionais. As
redes neurais tradicionais são treinadas por meio do algoritmo
backpropagation, que atualiza os pesos sinápticos entre os neurônios,
de modo a extrair características (features) dos dados de treinamento,
usadas para fazer generalizações.
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 15/86
18/10/23, 20:04 Redes Neurais Recorrentes
Nuvem de palavras.
BPTT
Backpropagation Through Time ou Retropropagação ao Longo do Tempo.
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 16/86
18/10/23, 20:04 Redes Neurais Recorrentes
LSTM
Long Short-Term Memory Networks ou Unidades de Memória Longa de
Curto Prazo
Explosão do gradiente
Nesta situação, ocorre exatamente o contrário em relação ao caso da
dissipação: o gradiente cresce excessivamente, e o modelo nunca
converge. As soluções para esse problema são:
Aplicações
As RNN são aplicadas em contextos em que os dados são sequenciais,
como nos casos de problemas de predição de séries temporais e
processamento de linguagem natural (SOCHER et al., 2013; BAHDANAU;
CHO; BENGIO, 2015).
Modelagem de linguagem e
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 17/86
18/10/23, 20:04 Redes Neurais Recorrentes
geração de texto
Quando assistimos a algum filme ou lemos alguma história e
observamos os diálogos dos personagens, em muitos casos, podemos
ter uma boa noção do que eles vão falar em seguida. Isso ocorre porque
fazemos analogias com outras situações que já observamos e
conseguimos capturar características que nos ajudam a fazer
generalizações. De forma semelhante ocorre com as RNN.
Máquina de tradução
No exemplo de aplicação anterior, estávamos interessados em predizer
a próxima palavra. Agora, nosso interesse é entender como as RNN
podem ser usadas para traduzir texto de um idioma para outro.
Um dos grandes exemplos de programas de tradução que utiliza RNN é o Google Translate.
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 18/86
18/10/23, 20:04 Redes Neurais Recorrentes
Reconhecimento de fala
Reconhecimento de fala.
Pessoas correndo.
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 19/86
18/10/23, 20:04 Redes Neurais Recorrentes
As redes CNN são um tipo de rede neural utilizado para problemas que
envolvem visão computacional. Então, o processo tem duas etapas:
segment description
CNN RNN
Fazem a segmentação.
arrow_forward Usam os dados
segmentados para
recriar a descrição.
Tag de vídeo
Outra situação muito útil para aplicação de RNN é fazer pesquisa de
vídeo: fornecemos como entrada para o modelo uma descrição da
imagem de um vídeo, e a rede retorna o quadro do vídeo.
Resumo do texto
Este tipo de aplicação ajuda a resumir o conteúdo de textos, por meio do
processamento de linguagem natural, e a personalizá-los para entrega
em aplicativos que não podem suportar grandes volumes.
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 20/86
18/10/23, 20:04 Redes Neurais Recorrentes
thumb_up thumb_down_alt
O problema foi
close O problema não foi
resolvido. resolvido.
Saiba mais
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 21/86
18/10/23, 20:04 Redes Neurais Recorrentes
Vantagens e desvantagens
Conheça as vantagens e desvantagens de utilizar as RNN:
add_circle remove_circle
Vantagens Desvantagens
Podem processar O cálculo de
entradas de qualquer treinamento é lento
comprimento. devido à sua natureza
Lembram de cada recorrente.
close
informação ao longo do São propensas a
tempo e, por causa problemas como
disso, encaixam-se bem explosão e
em diversas aplicações desaparecimento de
sequenciais. gradiente.
Os pesos podem ser
compartilhados entre as
etapas de tempo.
video_library
Fundamentos das redes
recorrentes
Está na hora de nosso bate-papo sobre os principais conceitos sobre
Redes Neurais Recorrentes com foco na arquitetura básica da rede e em
algumas de suas principais aplicações. Vamos lá!
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 22/86
18/10/23, 20:04 Redes Neurais Recorrentes
Questão 1
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 23/86
18/10/23, 20:04 Redes Neurais Recorrentes
Questão 2
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 24/86
18/10/23, 20:04 Redes Neurais Recorrentes
2 - Arquiteturas
Ao final deste módulo, você será capaz de distinguir as principais
variações de arquiteturas de RNN.
Ligando os pontos
Você sabe qual a importância de uma arquitetura de rede neural RNN?
Sabia que elas podem ter diferentes arquiteturas? Para respondermos a
estas perguntas, vamos analisar algumas situações práticas.
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 25/86
18/10/23, 20:04 Redes Neurais Recorrentes
Questão 1
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 26/86
18/10/23, 20:04 Redes Neurais Recorrentes
Questão 2
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 27/86
18/10/23, 20:04 Redes Neurais Recorrentes
Questão 3
Chave de respostaexpand_more
ondemand_video
Os vídeos são formados por uma sequência de quadros.
music_note
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 28/86
18/10/23, 20:04 Redes Neurais Recorrentes
font_download
O texto é tipicamente sequencial, pois surge de uma combinação de
caracteres.
Exemplo
Em um diálogo entre personagens, os argumentos são construídos com
o que um personagem disse em dado momento, para que haja
coerência no fluxo da conversa. De modo semelhante, as RNN
aprendem e se lembram dos dados para formular uma decisão baseada
no aprendizado adquirido na instância anterior.
Um-para-um
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 29/86
18/10/23, 20:04 Redes Neurais Recorrentes
Um-para-muitos
Muitos-para-um
Muitos-para-muitos
Vamos analisar essas categorias com mais detalhes.
Estrutura um-para-um
É uma estrutura de rede neural em que os comprimentos da entrada e
da saída são fixos e independentes da informação anterior. Na imagem
a seguir, apresentamos um exemplo de RNN com estrutura um-para-um:
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 30/86
18/10/23, 20:04 Redes Neurais Recorrentes
Estrutura um-para-um.
Esse tipo de estrutura de RNN pode ser aplicado, por exemplo, para
classificação de imagens.
Estrutura um-para-muitos
É uma estrutura de RNN em que a entrada possui um tamanho fixo de
informação e que fornece uma sequência de dados como saída. Esse
tipo de estrutura é aplicado a problemas sequenciais em que os dados
de entrada têm uma etapa de tempo, e a saída contém um vetor de
valores múltiplos ou etapas de tempo múltiplas. Assim, há uma única
entrada e uma sequência de saídas. Na imagem a seguir, mostramos
um exemplo dessa estrutura de RNN:
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 31/86
18/10/23, 20:04 Redes Neurais Recorrentes
Estrutura um-para-muitos.
Estrutura muitos-para-um
Neste caso, a rede recebe uma sequência de informações como entrada
e produz uma saída de tamanho fixo. Na imagem a seguir, mostramos
esse tipo de estrutura:
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 32/86
18/10/23, 20:04 Redes Neurais Recorrentes
Estrutura muitos-para-um.
Estrutura muitos-para-muitos
Esta estrutura recebe uma sequência de informações como entrada e
produz uma sequência de saídas recorrentes. Veja:
Estrutura muitos-para-muitos.
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 33/86
18/10/23, 20:04 Redes Neurais Recorrentes
GRU
Gate Recurrent Unit ou Unidade Recorrente Bloqueada.
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 34/86
18/10/23, 20:04 Redes Neurais Recorrentes
LSTM
As RNN são apropriadas para trabalhar com dados baseados em
sequência, mas, à medida que as sequências aumentam, elas começam
a perder informações sobre a sequência de dados ao longo do tempo.
Como consequência, as saídas podem ser bem diferentes do que
esperávamos.
Cada porta está conectada a outra por meio de sua entrada e saída, e
várias conexões são recorrentes. Na imagem a seguir, apresentamos a
estrutura de uma LSTM:
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 35/86
18/10/23, 20:04 Redes Neurais Recorrentes
east Ct
east ht
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 36/86
18/10/23, 20:04 Redes Neurais Recorrentes
σ e tanh
east
Os símbolos σ e tanh representam,
respectivamente, as funções sigmoide e tangente
hiperbólica. Os dados podem ser adicionados ou
removidos do estado da célula por meio de portas
sigmoides. Uma porta é semelhante a uma camada
ou série de operações de matriz, que contêm pesos
individuais diferentes, representados pelo símbolo
W.
east ft
f t = σ (W f [h t−1 , x t ] + b f )
~
east Ct
~
O símbolo C t representa o vetor candidato. Sua
fórmula é dada por:
~
C t = tanh (W C [h t−1 , x t ] + b C )
east it
i t = σ (W i [h t−1 , x t ] + b i )
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 37/86
18/10/23, 20:04 Redes Neurais Recorrentes
~
C t = f t C t−1 + i t C t
o t = σ (W o [h t−1 , x t ] + b o )
h t = o t tanh (C t )
Atenção!
As LSTM são projetadas para evitar o problema de dependência de
longo prazo, porque usam portas para controlar o processo de
memorização.
GRU
Uma arquitetura de RNN que pode ser vista como uma simplificação da
LSTM é a GRU. Ela combina as portas de esquecimento e de entrada em
uma única porta, que é chamada de porta de atualização (update gate).
Além disso, a GRU possui uma porta de redefinição (reset gate). Na
imagem a seguir, mostramos um diagrama simplificado da GRU:
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 38/86
18/10/23, 20:04 Redes Neurais Recorrentes
z t = σ (W z x t + U z h t−1 )
r t = σ (W r x t + U r h t−1 )
~
h t = tanh (W x t + r t ⊙ U h t−1 )
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 39/86
18/10/23, 20:04 Redes Neurais Recorrentes
a 11 a 12 b 11 b 12 a 11 b 11 a 12 b 12
[ ] ⊙ [ ] = [ ]
a 21 a 22 b 21 b 22 a 21 b 21 a 22 b 22
~
h t = z t ⊙ h t−1 + (1 − z t ) ⊙ h t
RNN bidirecionais
Uma variação da arquitetura das RNN são as RNN bidirecionais. Elas
são formadas por uma composição de duas RNN que extraem
informações dos dados em dois sentidos distintos. Dessa forma, podem
extrair características das entradas anteriores para fazer predições
sobre o estado atual, semelhante às RNN convencionais, e extrair
informações sobre dados futuros para melhorar a precisão das
estimativas. Na imagem a seguir, apresentamos uma RNN bidirecional:
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 40/86
18/10/23, 20:04 Redes Neurais Recorrentes
video_library
Arquiteturas de redes
neurais recorrentes
Está na hora de nosso bate-papo sobre arquitetura das Redes Neurais
Recorrentes com especial destaque para as arquiteturas LSTM, GRU e
RNN bidirecionais. Vamos lá!
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 41/86
18/10/23, 20:04 Redes Neurais Recorrentes
Questão 1
Questão 2
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 43/86
18/10/23, 20:04 Redes Neurais Recorrentes
Ligando os pontos
Você sabia que as redes RNN são aplicadas com sucesso para
problemas de predição? Mas como isso pode ser feito no dia a dia? Para
respondermos a estas perguntas, vamos analisar algumas situações
práticas.
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 44/86
18/10/23, 20:04 Redes Neurais Recorrentes
Questão 1
Como você leu no texto, a Pague Certo S.A. utiliza redes RNN para
estimar preços de ativos do setor elétrico. Analisando a decisão
dos gestores, na sua visão, qual é o motivo da empresa ter
escolhido um segmento específico para aplicar as redes RNN?
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 45/86
18/10/23, 20:04 Redes Neurais Recorrentes
Questão 2
Como você leu no texto, a Pague Certo S.A. atua com estimativas
de precificação de ativos de empresas do setor elétrico negociados
na bolsa de valores. Na sua visão, qual o motivo que levou a Pague
Certo a escolher as redes RNN para esse objetivo?
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 46/86
18/10/23, 20:04 Redes Neurais Recorrentes
Questão 3
Considere o seguinte cenário: você foi contratado pela Pague Certo S.A.
para auxiliar a expandir os negócios da empresa sem mudar o foco de
atuação. Com base em sua experiência, como você cumpriria essa
missão?
Chave de respostaexpand_more
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 47/86
18/10/23, 20:04 Redes Neurais Recorrentes
X = [x 1 , . . . , x T ]
Métodos estatísticos
tradicionais
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 48/86
18/10/23, 20:04 Redes Neurais Recorrentes
Métodos baseados em
modelos de aprendizado de
máquina
Em nosso caso, vamos estudar como aplicar RNN para fazer essas
estimativas com a utilização de:
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 49/86
18/10/23, 20:04 Redes Neurais Recorrentes
Implementação para
processamento de séries
temporais
Agora, vamos estudar o passo a passo da implementação da arquitetura
de um modelo de RNN para fazermos uma análise de uma série
temporal. Para isso, vamos utilizar o Google Colab, a fim de desenvolver
nosso código em Python com o framework TensorFlow.
Comentário
Uma das vantagens do Google Colab é que podemos trabalhar com
trechos de código e, assim, visualizar com mais clareza os detalhes de
nossa implementação.
1. Geração de dados;
8. Compilação do modelo;
9. Treinamento do modelo;
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 50/86
18/10/23, 20:04 Redes Neurais Recorrentes
code
A quantidade de pontos da série
que queremos estudar.
code
Os valores mínimo e máximo que
os dados podem assumir ao longo
do tempo.
O código para geração de dados é:
Python
content_copy
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 51/86
18/10/23, 20:04 Redes Neurais Recorrentes
Python
content_copy
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 52/86
18/10/23, 20:04 Redes Neurais Recorrentes
Python
content_copy
Python
content_copy
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 53/86
18/10/23, 20:04 Redes Neurais Recorrentes
Python
content_copy
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 54/86
18/10/23, 20:04 Redes Neurais Recorrentes
Python
content_copy
Python
content_copy
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 55/86
18/10/23, 20:04 Redes Neurais Recorrentes
Python
content_copy
Python
content_copy
Passo 7: visualização da
arquitetura do modelo
O TensorFlow permite que possamos visualizar a arquitetura de nossa
implementação. Para isso, basta implementarmos o código dado por:
Python
content_copy
Python
content_copy
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 57/86
18/10/23, 20:04 Redes Neurais Recorrentes
Python
content_copy
Devemos notar a última linha do código, que separa 30% dos dados de
treinamento para fazer a validação do modelo. Aqui, cabe um
comentário: os dados de validação são usados para fazer ajustes nos
hiperparâmetros do modelo.
Python
content_copy
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 58/86
18/10/23, 20:04 Redes Neurais Recorrentes
Python
content_copy
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 59/86
18/10/23, 20:04 Redes Neurais Recorrentes
Python
content_copy
Python
content_copy
loss: 0.0804748684167862
Python
content_copy
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 60/86
18/10/23, 20:04 Redes Neurais Recorrentes
Python
content_copy
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 61/86
18/10/23, 20:04 Redes Neurais Recorrentes
Python
content_copy
video_library
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 62/86
18/10/23, 20:04 Redes Neurais Recorrentes
Predição de séries
temporais com RNN
Está na hora de nosso bate-papo sobre os conceitos que relacionam
Redes Neurais Recorrentes e séries temporais, demonstrando uma
aplicação prática com emprego do framework TensorFlow. Vamos lá!
Questão 1
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 63/86
18/10/23, 20:04 Redes Neurais Recorrentes
Questão 2
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 64/86
18/10/23, 20:04 Redes Neurais Recorrentes
4 - Aplicação em Processamento de
Linguagem Natural
Ao final deste módulo, você será capaz de empregar RNN em
Processamento de Linguagem Natural.
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 65/86
18/10/23, 20:04 Redes Neurais Recorrentes
Ligando os pontos
Você sabia que uma das aplicações das redes RNN é para o
processamento de linguagem natural? Mas o que isso significa em
termos reais? Para respondermos a estas perguntas, vamos analisar
algumas situações práticas.
Até pouco tempo, a tradução dos textos era feita por especialistas. Na
prática, o processo era lento, subjetivo e caro. Era comum ocorrer
situações em que dois especialistas traduziam de forma diferente o
mesmo texto. Depois de perceber o problema, os gestores da Tradução
S.A. contrataram um professor universitário que trabalhava com
problemas semelhantes com finalidades acadêmicas. Esse professor
viu uma oportunidade muito interessante de usar seus conhecimentos
para resolver problemas reais. Tentou aplicar as técnicas que dominava,
mas não foi bem-sucedido de imediato. Ele chegou à conclusão de que
não era só uma questão de aplicar a melhor técnica, mas de
compreender o contexto da aplicação e fazer ajustes. Depois de mais
algumas tentativas e muito estudo, ele conseguiu desenvolver uma
solução robusta. O resultado de aplicar as RNNs para fazer a tradução
de textos coloquiais para termos técnicos superou a expectativa inicial
dos gestores da empresa e, assim, passaram a utilizar essas redes nas
suas soluções e o professor, agora, faz parte do quadro permanente da
empresa, ocupando um papel de destaque na área de pesquisa e
desenvolvimento aplicados.
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 66/86
18/10/23, 20:04 Redes Neurais Recorrentes
Questão 1
Questão 2
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 67/86
18/10/23, 20:04 Redes Neurais Recorrentes
Questão 3
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 68/86
18/10/23, 20:04 Redes Neurais Recorrentes
Chave de respostaexpand_more
Tokenização expand_more
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 69/86
18/10/23, 20:04 Redes Neurais Recorrentes
x_t =['o','futebol','é','o','esporte','mais','conhecido','do','país' ]
Stemming expand_more
Stemming(rapidamente) = rapida
Stemming(previsto) = visto
Lematização expand_more
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 70/86
18/10/23, 20:04 Redes Neurais Recorrentes
Hot code
A ideia é associar as palavras a números. Para isso, existem duas
abordagens. São elas:
Exemplo
Seja o texto: x = “gato cachorro leão golfinho”. A codificação das
palavras do texto é:
Na codificação única:
codificação_única(gato) = [1 0 0 0]
codificação_única(cachorro) = [0 1 0 0]
codificação_única(leão) = [0 0 1 0]
codificação_única(golfinho) = [0 0 0 1]
codificação_número(gato) = 1
codificação_número(cachorro) = 2
codificação_número (leão) = 3
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 71/86
18/10/23, 20:04 Redes Neurais Recorrentes
codificação_número (golfinho) = 4
Vetores de palavras
Na técnica anterior, o vetor que representava o vocabulário (conjunto de
palavras) tinha muitos zeros. É o que chamamos de vetor esparso. Além
disso, os valores associados às palavras não traziam nenhuma
informação sobre o contexto em que elas apareciam.
Implementação de RNN
para PLN
Vamos apresentar o código de RNN para PLN. Esse exemplo é voltado
para a análise de sentimentos. Para fins didáticos, nossa
implementação é dividida nos seguintes passos:
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 72/86
18/10/23, 20:04 Redes Neurais Recorrentes
6. Avaliação do modelo;
Python
content_copy
Python
content_copy
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 73/86
18/10/23, 20:04 Redes Neurais Recorrentes
Python
content_copy
Python
content_copy
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 74/86
18/10/23, 20:04 Redes Neurais Recorrentes
Python
content_copy
Python
content_copy
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 75/86
18/10/23, 20:04 Redes Neurais Recorrentes
Python
content_copy
Arquitetura do modelo.
Python
content_copy
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 76/86
18/10/23, 20:04 Redes Neurais Recorrentes
Passo 5: compilação e
treinamento do modelo
Depois de criar o modelo, precisamos escolher a função de perda, o
algoritmo de otimização e a métrica para medir a qualidade do
aprendizado que ocorre durante o treinamento. Para isso,
implementamos o seguinte código:
Python
content_copy
Python
content_copy
Python
content_copy
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 77/86
18/10/23, 20:04 Redes Neurais Recorrentes
Python
content_copy
Teste de Perda
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 78/86
18/10/23, 20:04 Redes Neurais Recorrentes
0.3297092616558075
Teste de Acurácia
0.8688799738883972
Python
content_copy
Python
content_copy
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 79/86
18/10/23, 20:04 Redes Neurais Recorrentes
Por fim, vamos verificar como nosso modelo funciona, na prática, para
fazer análises de sentimentos. Vamos escrever um comentário para
fazer a classificação:
Python
content_copy
Python
content_copy
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 80/86
18/10/23, 20:04 Redes Neurais Recorrentes
Classificação de sentimentos.
video_library
Processamento de
linguagem natural com
RNN
Está na hora de nosso bate-papo sobre os conceitos que relacionam
RNN e processamento de linguagem natural, demonstrando uma
aplicação prática usando o framework TensorFlow. Vamos lá!
Questão 1
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 81/86
18/10/23, 20:04 Redes Neurais Recorrentes
Questão 2
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 82/86
18/10/23, 20:04 Redes Neurais Recorrentes
Considerações finais
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 83/86
18/10/23, 20:04 Redes Neurais Recorrentes
headset
Podcast
Para encerrar, saiba mais sobre redes neurais recorrentes e suas
aplicações práticas.
Explore +
Pesquise o site oficial do pacote Tutoriais – TensorFlow e navegue pelos
conteúdos disponíveis para textos (embedding de palavras) e dados
estruturados (previsão de série temporal).
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 84/86
18/10/23, 20:04 Redes Neurais Recorrentes
Referências
BAHDANAU, D.; CHO, K.; BENGIO, Y. Neural machine translation by
jointly learning to align and translate. San Diego: ICLR, 2015.
Download material
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 85/86
18/10/23, 20:04 Redes Neurais Recorrentes
Relatar problema
https://stecine.azureedge.net/repositorio/00212ti/04165/index.html# 86/86