Você está na página 1de 7

01/08/2023 - Deep Learning I

 Viés – estimador – a certar na média, mas se não acertar, esteja bem próximo do valor dela.
Acertar na média, mas com variância pequena.

Overfitting – modelo se ajustou muito aos dados, que não tem capacidade de generalização. Extremamente específico.
Underfitting – modelo não se ajustou nada aos dados. É muito geral e não prevê nada. Extremamente generalista.
Fitting - não é tão especifico e nem tão generalista. Acertar na média com variância mínima.

 Redução do overfitting
Regularização – mexer com os neurônios. Tirar a cola dos alunos, dificultar a capacidade de memorização do
modelo.

 Épocas: vai e vem das informações pela rede neural.


Convergência: queremos que o nosso modelo se aproxime do valor real dos parâmetros do modelo. Se aproximar do
modelo real, que o modelo vá para uma direção de pesos estimados, por uma rede neural estimada que seja a melhor
possível para prever o evento. Isso vai ser feito a partir das épocas, que vai e volta as informações.

 Acurácia: capacidade de acerto do modelo


 Acurácia variáveis qualitativas : soma dos resultados previstos corretamente / soma de todos os dados

 Cross validation: troca treinamento e validação, por isso chama cross validation (validação cruzada)
K fold cross validation: divide o modelo em 3 partes
pega o valor de cada k fold
faz a media dos 3 k fold
através dessa media, sabemos o valor esperado de acurácia do modelo.

 Otimizadores para descida do gradiente: ADAGRAD, ADAM, RMSPROP


são otimizadores diferentes da descida do gradiente.
O ADAM é um ótimo otimizador, costuma dar resultados muito bons.

 MinMaxScaler: digitar no chrome


É um estimador que quando aplicado a uma serie de dados transforma os valores entre 0 e 1.

 Hiperparâmetros: os hiperparâmetros a serem ajustados são o número de neurônios, função de ativação,


otimizador, taxa de aprendizado, tamanho do lote e épocas. O segundo passo é ajustar o número de camadas.

Perguntas:
 O que é viés?
 Quantas camadas seria interessante ter em uma rede neural? Em geral, tem um número interessante que a gente
possa ter um bom resultado, ou depende do contexto?
 Existe um valor para verificar quando a função perda está boa?
 Toda vez que a gente for trabalhar com redes neurais e valores seria interessante usar a função scale?
 A atualização dos pesos é feita no processo de backward pass ou no forward pass?
 O que e generalização?
 O software minitab também importa scripts do R e Python ou temos que usar ele em vez do R ou Python?
08/08/2023 - Deep Learning II
 Série temporal: um conjunto de valores de uma variável ao longo do tempo
 Dados seccionais (cross section): não é dado sequencial. É uma série “isolada” em um ponto do tempo, ex: ano
passado, PIB de cada estado no ano passado.

 Ao prever uma varável, é importante perceber que os valores futuros estão relacionados com os valores passados.

 RNN (Redes neurais recorrentes): constrói distribuição de probabilidade


O objetivo da RNN é que as redes neurais tenham memória
RNN consegue guardar o passado
RNN é uma rede neural com memória que permite guardar parte da informação que passa pela camada
escondida no vai e volta anterior. Foi e voltou, guarda um pouco da informação. Quando passar de novo, o
neurônio vai lembrar.

 Sumiço (dissipação) e explosão do gradiente: w>1 ou w<1


Quanto mais no passado vc tá, maior o risco de vc ter um descontrole do peso
Se o peso for elevado a potencias muito altas, ele pode sumir ou explodir, pq tudo depende do peso.
A normalização (colocar os valores target e features entre 0 e 1 para os pesos ficarem pequenos) é importante.
Neste caso, normalmente ocorrerá a dissipação do gradiente.
Quando normalizamos, normalmente os pesos ficam pequenos também. Dessa forma, teremos pesos longínquos de
valores bem pequenininhos que começam a sumir. O neurônio começa apagar. Se vc começa apagar o neurônio,
esse valor que esta sendo apagado , ele não vai so influenciar o passado longínquo, porque ele está ligado no hoje,
então ele vai apagando lá de trás, apagando, apagando, até chegar no dia de hj. Quanto mais antiga a informação,
menos importância ela tem.
Ela vai perdendo importância ate zerar e quando ela zera ela afeta todo o processo, pq quando ela chega muito
próximo de zero, ela vai começar a zerar e gerar perda para frente, porque o valor que zerou influencia lá na frente,
pq o t-1000 influencia t. Isso é a dissipação do gradiente, não conseguiremos ter um resultado consistente. Esse é
um problema que nem sempre ocorre, mas pode ocorrer, principalmente quando tem períodos muito longos ou
muitas camadas intermediarias oiu quando a arquitetura é muito complexa, então teremos a questão da
recorrência. Isso pode ocorrer em qualquer rede, a mais comum é na RNN. Podemos usar um técnica chamada
backpropagation truncada (é um tanto arbitraria esta técnica). Podemos usar uma técnica que chama clipping do
gradiente, que coloca um limite e impede que o peso tenda para zero ou ele tenda ao infinito (explode). Esse
problema de zerar chama Vanishing Gradient e o de explodir chama Explode Gradient.

 LSTM - Long Short-Term Memory: Memória Longa de Curto Prazo: tem o estado da célula
Baseada em “portões” (gates)
O gate serve para dizer quando ele vai guardar ou manter uma informação

LSTM: intuição
Um neurônio em uma rede LSTM vai fazer 3 coisas:
1-esquecer informação irrelevante
2-adicionar/atualizar nova informação
3-passa informação atualizada

A rede LSTM tem uma função que esquece parte das informações.

TANH: tangente hiperbólica: função de ativação


Resultado entre -1 e 1: “negativo”, “neutro”, “positivo”

Sigmoide: função de ativação


Resultado entre 0 e 1: “sim” ou “não”

O estado da célula é incluído no neurônio. O estado da célula vai nos dizer o quanto vai guardar, o quanto vai
esquecer, o quanto vai usar de cada informação. O estado da célula vai ajudar a filtrar qual é a informação que me
interessa, o quanto queremos dessa informação. Para isso, será utilizado 3 gates:
- Forget Gate – Quanto lembrar?
- Input Gate – Quanto manter dos inputs? O que adicionar ao estado da célula?
- Output Gate – O que do estado da célula e do hidden state será utilizado como resultado?

 GRU: Gate Recurrent Unit: arquitetura de rede neural basicamente para resolver o mesmo problema que a LSTM. É
mais simples que a LSTM.

- Resolve problema da dissipação do gradiente


- Baseada em portões: reinicialização e atualização
- Apenas 1 estado oculto

Perguntas
 Vimos vários modelos de rede neural. No caso, qual modelo usaremos na prática ou qual modelo é bastante
utilizado?
 O professor sugeriu que a gente melhorasse a rede RNN visualizando o gráfico de erros com relação as épocas. Como
podemos saber quando esta relação erro e época está bom?
O professor disse para gente ajustar a RNN, eu ainda não sei fazer isso. Em que momento o professor vai montar uma
rede legal para gente ter como exemplo, tipo analisando o erro e época, acurácia, etc..?
15/08/2023 - Deep Learning III
 Deep Learning supervisionado:
Temos variáveis target (explicada) e as features (explicativas)
Fazer previsões: prever uma variável.
Tentar achar uma função que explique a variável target em função das variáveis features

 Deep Learning não supervisionado:


Não temos mais a variável target, só temos as features.
Não está preocupado em prever uma variável. O objetivo é achar relações relevantes entre os valores dessas
features para várias coisas como: redução de dimensionalidade, clusterização.
Ex: agrupar os clientes em grupos diferentes com base nas características deles. quero saber se o cliente vai pagar
com base nas características dele. Tentar agrupar os clientes em grupos nos quais a gente não sabe, como:
proximidade entre valores, distância entre valores.
Supondo que temos 3 características: escolaridade, renda e histórico de pagamento (separar os clientes com base
nessas características).
O exemplo acima é uma técnica de clusterização. Não estamos prevendo, estamos separando os indivíduos em
grupos diferentes.

 Máquinas de Boltzmann: modelos baseados em energia: objetivo de reduzir a função custo, achando os parâmetros
de menor valor possível da função custo.
Reduzir a energia ao máximo = ter o máximo de acurácia.
Máquinas de Boltzmann é uma rede neural de uma única camada.
inputs = features = características
Objetivo: aprender a distribuição da probabilidade dos inputs
Ajustar os pesos para ser possível reconstruir os inputs (entradas)
Como criar grupos com base nas características deles? Temos que entender como se dá a distribuição da
probabilidade. Como as características de distribuem? Qual a distribuição da probabilidade desses indivíduos e com
base nisso, criar os grupos.
O agrupamento das observações da amostra (no exemplo acima, dos clientes), vem da distribuição da probabilidade.
Os grupos devem ser representativos, refletindo a divisão que existe entre esses indivíduos.
A ideia da máquina de Boltzmann é que se possa agrupar os indivíduos nos grupos ou usar informação dos grupos
para recriar os indivíduos. A ideia é separar esses indivíduos em grupos e esses grupos devem ser exemplificativos,
representativos das características dos indivíduos que poderíamos usar informação desse grupo para recriar o
indivíduo. A ideia é que a gente consiga fazer de trás para frente e de frente para trás.

Redução da dimensionalidade:
Camada de entrada: 4 características
Camada oculta: 3 neurônios

Máquina restrita: é chamada de máquina restrita porque os neurônios não se interligam na mesma camada
Não possui camada de saída
Entradas são passadas para a camada escondida

Variável latente: no exemplo do slide, são as características dos filmes. No exemplo, luta e drama
São variáveis que não existem naturalmente, mas que exemplifica ou caracteriza o que existe na realidade

Para correção dos pesos com relação aos seus erros (gradiente), utilizamos a técnica chamada Aprendizado pela
Divergência Contrastiva (vai e vem dos pesos)

Na maquina de boltzmann, estamos lidando com um modelo probabilístico (distribuição de probabilidade)


e não com valores pontuais, ou seja, qual a probabilidade daqueles valores ativem um neurônio ou não.
Não iremos prever um valor, iremos prever a probabilidade daqueles valores estarem juntos no mesmo
grupo. Se estamos tentando prever a probabilidades dos valores estarem juntos no mesmo grupo, temos
que comparar distribuições de probabilidade: a original das features com a realizada pela maquina de
boltzmann. Isto é feito a partir da divergência de Kullback-Leibler.
A técnica de Kullback-Leibler permite que a gente compare as distribuições de probabilidade. Ela será a
função custo e verá o quanto o modelo esta errando e com base na divergência contrastiva (vai e vem dos
pesos), otimizar os pesos.
A técnica de kullback-leibler ira avaliar se a uma diferença entre as distribuições de probabilidade
Não iremos otimizar a previsão com uma variável target , queremos otimizar a capacidade de
reconstrução da feature, porque se vc reconstroe sua feature com base em uma dimensão menor,
significa que a dimensão menor explica muito bem a variável original. A ideia desses grupos menores é
avaliar se esses grupos menores refletem a realidade

Deep Belief Networks: maquinas de boltzmann empilhadas (varias maquinas de boltzmann)


Aumentam a capacidade de previsão, aumenta a capacidade de generalização e pegar informações mais
lineares entre os grupos

Autoencoder:
Objetivos muito semelhantes à Máquina de Boltzmann
Reconstrução de input
Redução de dimensionalidade
Arquitetura diferente da maquina de boltzmann
Autoencoder é mais determinístico (gera valores). A maquina de boltzmann é mais probabilística

Na função PredictRBM, o parametro labels quer dizer target (variável target)


22/08/2023 - Coleta de Dados: Crawlers e Web Scraping
18/08/2023 – Plantão de Dúvidas
 Avaliação dos modelos
modelo de classificação: acurácia
modelo de regressão: erro quadrático médio

 matriz de confusão (no slide da aula)


sensibilidade: acertos (eventos – coluna da esquerda – SIM)
especificidade: erros (não eventos – coluna da esquerda – NÂO)

 curva roc
qto mais perto do 1 estiver a curva, melhor o modelo

 acurácia: baseado no slide da aula, o que o modelo está acertando:


quando previu SIM e era SIM
quando previu NÂO e era NÂO

 árvore de decisão (no exemplo, foi feita arvore de decisão para classificação)
separação entre treino e teste
estima o modelo, no exemplo é uma única arvore
verifica a acurácia, curva ROC
verifica as métricas de avaliação na amostra de treino
verifica as métricas de avaliação na amostra de teste.
Verificar se há ou não overfitting. Faça ajuste de hiper parâmetros na amostra de treino para melhorar a capacidade
preditiva quanto reduzir o overfitting (essa é a finalidade dos hiper parâmetros feitos pelo grid search)
E depois pode utilizar aquele modelo para previsão de novas observações

 xgBosting
Após verificação da acurácia na base de treino e teste, para melhorar acurácia na base de teste, é interessante tunar
os hiper parâmetros

Arvores de decisão, Random forest, modelos ensemble: bagging, bost, gradiente bosting, xgbosting

Você também pode gostar