Escolar Documentos
Profissional Documentos
Cultura Documentos
Script
Slide 2
Então, vamos lá! Algo bem comum no nosso dia-a-dia é a checagem da previsão de
temperatura de um dado dia, especialmente quando estamos fazendo planos para aquela
data. Para isso, normalmente usamos um aplicativo/site específico. E como se chega à
temperatura que vemos no celular? Basicamente, tem-se uma sequência de valores de
temperaturas coletados nos diferentes horários observados em um período de tempo e
baseado nesse histórico a aplicação prevê qual será a temperatura. Ou seja, para essa
aplicação a minha entrada são dados seqüenciais e que dependem uns dos outros, pois a
temperatura que meu celular fornece agora depende da temperatura de 1 hora atrás, ou
do dia anterior porque os valores não mudam bruscamente.
Dessa forma, quando eu penso em aplicações com dados seqüenciais, existe essa
limitação para as redes tradicionais, pois cada amostra é processada individualmente,
não memorizando amostras vistas no passado.
Slide 3
Então, diante dessa limitação, nós temos as Redes neurais recorrentes que podem ser
entendidas como redes com loops, permitindo que as informações persistam por isso
também são conhecidas como Redes Neurais de Retroalimentação. Isto porque as redes
recorrentes são um tipo de rede neural artificial projetada para reconhecer padrões em
sequências de dados. Agora, então, eu posso trabalhar em aplicações como previsão de
temperatura, por exemplo, tendo em vista que se eu tenho elementos seqüenciais
dependentes eu penso em uma arquitetura de rede recorrente para resolver esse
problema.
Slide 4
Por que contextualizar ao invés de começar com um conceito? Para que se entenda dois
pontos fundamentais: 1º A diferença entre as redes recorrentes e as redes padrões
observando a necessidade das redes recorrentes para determinadas aplicações,
observando que as estruturas são diferentes pois a tradicional se tem uma entrada, uma
camada oculta e uma saída já na recorrente tem uma retroalimentação, o que explicarei
mais tarde e 2º Entender o tipo de dado que a Rede recorrente processa. Que tipo de
dado é esse? Seq de tamanho T com valores X indexados no tempo até x(t) com um
determinado output. Então, repito: quando eu penso em aplicações com dados
seqüenciais eu trabalho com redes recorrentes.
Entendido isso, vamos começar a nos aprofundar na estrutura e arquitetura das redes
recorrentes ou Recurrent Neural Networks (RNNs)
Slide 5
Na rede recorrente eu tenho uma entrada no tempo t que passa por uma camada no
tempo t e produz uma saída no tempo t mas percebam que o resultado da camada no
tempo t vai retroalimentar a próxima entrada de forma que quando eu tenho uma entrada
x no tempo t+1 ele vai receber também a saída de h(t). Qual a ideia? Tem-se sempre
uma relação entre a entrada no tempo T e a informação da entrada no tempo anterior.
Em outras palavras: A camada oculta obtém sua entrada da camada de entrada e da
camada oculta do tempo anterior. E isso faz com que o fluxo dessas informações em
etapas de tempos adjacentes na camada oculta permita que a rede tenha uma memória
de eventos passados.
(Gilberto)
Redes recorrentes são redes com pelo menos uma célula recorrente, ou seja, uma
camada com memória. Essas células têm a seguinte estrutura:
Na imagem acima, temos uma camada de uma rede neural em azul que recebe um input
𝑥 e gera um output 𝑜, onde 𝑈 é o peso da camada de input e 𝑊 o peso da camada de
output. Além de propagar a informação para outras camadas, a célula transmite essa
informação para si mesma por meio de um loop com peso 𝑉. Esse “estado interno” da
rede, que flui de um instante para o próximo, é representado por ℎ.
O estado ℎ(𝑡) pode ser visto como a memória da rede. Ele captura informações sobre o
que aconteceu em todas as etapas de tempo anteriores. A saída na etapa 𝑜 (𝑡) é calculada
exclusivamente com base na memória no tempo 𝑡. É um pouco mais complicado na
prática, uma vez que não é possível capturar informações de muitas etapas de tempo
anteriores.
Slides 6 e 7
Aprendizagem Sequencial
As RNNs conseguem lidar com entradas e saídas de tamanho variável. O objetivo das
redes neurais recorrentes é aprender a classificar com precisão uma entrada
sequencial.Para isso, contamos com retropropagação(o famoso backpropagation) do
erro e o gradiente descendente.
A retropropagação em redes retrocede do erro final através das saídas, pesos e entradas
de cada camada oculta, atribuindo a esses pesos a responsabilidade por uma parte do
erro, calculando as suas derivadas parciais −𝜕𝐸/𝜕𝑉, ou a relação entre suas taxas de
mudança. Essas derivadas são usadas pelo gradiente descendente para ajustar os pesos
para cima ou para baixo.
Slide 8
Considere que estamos criando uma RNN que seja capaz de prever a próxima palavra
em um texto. As equações básicas para o modelo são:
𝑜̂𝑡 = 𝑊ℎ𝑡
Onde 𝑜̂𝑡 se refere ao valor da predição e 𝑜(𝑡) se refere ao valor real. Estamos diante de
um problema de classificação. Definimos a nossa perda como a perda de entropia
cruzada.
𝜕𝐸 𝜕𝐸𝑡
=∑
𝜕𝑉 𝜕𝑉
𝑡
Onde 𝑧3 = 𝑊ℎ3 . Observe que 𝜕𝐸3 /𝜕𝑊 depende apenas dos valores no momento atual.
Tendo esses valores, calcular o gradiente é apenas uma multiplicação de tensores. Para
𝜕𝐸3 /𝜕𝑉, a história é diferente. Aplicando novamente a regra da cadeia, teremos:
Como 𝑉 é usado em todas as etapas até a saída que nos interessa, precisamos retroceder
gradientes na rede de 𝑡 = 3 até 𝑡 = 0.
A imagem acima ilustra todo o processo. A única diferença é a nomeação de cada
estado. No nosso caso, nomeamos os estados como ℎ𝑡 e na imagem os mesmos foram
nomeados como 𝑠𝑡 .
As RNNs, na forma como foram apresentadas até aqui, são difíceis de treinar na prática.
Imagine uma sequência longa de palavras. Você precisaria retroceder através de várias
camadas.
Slide 9
Como as redes recorrentes podem lidar tanto com entradas quanto com saídas de
tamanho variável, no que se refere à sua arquitetura, temos os seguintes tipos:
Observando que:
One-to-one: Ou seja, modelo de um para um, são as redes neurais clássicas que utilizam-
se de feedforward, utiliza-se um input e espera-se um output
Slide 10
One to many: Ou seja, modelo de um para muitos. são modelos que recebem apenas um
input e devolvem vários outputs, por exemplo, deseja-se legendar uma imagem com uma
palavra ou uma frase de tamanho não necessariamente fixo.
Slide 11
Slide 12
Slide 13
Os modelos de muitos para muitos são ideais para tradução de textos também, como
aqueles que vemos no Google tradutor. O input poderia ser uma frase em alguma língua,
possuindo tamanho variável, e o output seria a mesma sentença em outra língua, que não
necessariamente possuiria o mesmo tamanho.
Algumas vezes, nós precisamos apenas olhar para informações recentes para realizar a
tarefa desejada. Por exemplo, imagine um modelo que tenta prever a próxima palavra
baseada nas anteriores. Na frase “as nuvens estão no céu”, não é necessário nenhum
contexto, afinal, é bem óbvio que a última palavra será “céu”. Em tais casos, onde o
gap entre a informação relevante e o lugar que ela é requisitada é pequeno, as RNNs
podem aprender a usar informações passadas. Repare aqui que o contexto se refere
apenas a termos que estão longe do presente, afinal, para a rede prever corretamente
a palavra “céu”, precisamos saber que ela está antecedida das palavras “nuvens” e
“estão”.
Redes LSTM
As redes Long Short-Term Memory (memória de curto e longo prazo) são um tipo
especial de rede neural recorrente. Elas são capazes de aprender conexões de longo
prazo. Primeiramente, vamos entender como o cérebro humano funciona. De forma
extremamente simplificada, nossa memória pode ser dividida em dois tipos:
Nesse diagrama, cada célula recorrente (retângulos verdes) recebe uma entrada 𝑥 e o
estado do instante anterior e gera uma saída 𝑜. Podemos utilizar outro diagrama para
explicar como essa transformação da entrada para a saída é feita, olhando mais de
perto.
Para isso, serão utilizadas portas que controlam a passagem de informações entre os
dois canais. O componente básico das portas é a estrutura abaixo.
A forget gate determina quais parte do estado da célula são importantes e quais
devem ser esquecidas, conforme figura abaixo.
Uma das mais famosas é a geração de texto. O modelo utiliza as palavras iniciais para
predizer a próxima com base na probabilidade de ela ocorrer.
Ainda no campo de textos, RNNs também podem ser usadas para a tradução de
sentenças de uma língua para outra. Nesses casos, não se pode simplesmente traduzir
cada palavra separadamente, pois o contexto é muito importante.
As RNN com células LSTM também são capazes de produzir resultados significativos no
campo de séries temporais, seja para produzir predições do preço de ações, ou para
identificar sazonalidade.