Você está na página 1de 68

Petrobras

Ciência de Dados
2021 - CEBRASPE
Ementa - BLOCO I
• 3 Redes neurais artificiais. Redes neurais com Python: treino de
modelos com Keras e Pytorch.
Ementa – Bloco II
• 1 Machine learning aplicado. 1.1 Noções de Visão computacional
com redes neurais convolucionais. 1.2 Classificação de imagens. 1.3
Detecção de objetos. 1.4 Segmentação de objetos e instâncias. 1.5
Noções de Processamento Natural de Linguagem. 1.6 Stop-words,
stemização e n-grams. 1.7 TF-IDF. 1.8 Modelagem de tópicos (LDA,
NMF). 1.9 Word embeddings: CBOW e Skip Gram. 1.10 Conceitos
Básicos em Séries Temporais.
Redes neurais com Python:
treino de modelos com Keras
e Pytorch.
Curiosidade
Keras
• Keras é uma bela API para composição de blocos para criar e
treinar modelos de aprendizagem profunda.
• O Keras pode ser integrado a vários mecanismos de aprendizado
profundo, incluindo Google TensorFlow, Microsoft CNTK, Amazon
MxNet e Theano.
• A partir do TensorFlow 2.0, o Keras foi adotado como a API padrão
de alto nível, simplificando muito a codificação e tornando a
programação mais intuitiva.
Vejamos um exemplo
• https://keras.io/examples/
Questão do Grupo
• Considere o modelo de rede neural abaixo desenvolvido no pacote
Keras e que aceita como entrada uma imagem 10x10 grayscale.
Julgue a assertiva a seguir.
• model = tf.keras.Sequential([
• tf.keras.layers.Flatten(input_shape=(10, 10)),
• tf.keras.layers.Dense(12, activation='relu'),
• tf.keras.layers.Dense(10)
• ])
• Quantos parâmetros serão treinados?
model.summary()
Pytorch
Recursos do PyTorch
• Interface fácil - o PyTorch oferece API fácil de usar; portanto, é
considerado muito simples de operar e roda em Python.
• Uso do Python - esta biblioteca é considerada Pythônica, que se integra
perfeitamente com a pilha de ciência de dados do Python. Assim, pode
alavancar todos os serviços e funcionalidades oferecidos pelo ambiente
Python.
• Grafos computacionais - PyTorch fornece uma excelente plataforma que
oferece grafos computacionais dinâmicos. Assim, um usuário pode
alterá-los em tempo de execução. Isso é muito útil quando um
desenvolvedor não tem ideia de quanta memória é necessária para criar
um modelo de rede neural.
Três níveis de abstração
• Tensor - array n-dimensional imperativo que roda em GPU.
• Variable (Variável) - Nó no gráfico computacional. Armazena dados
e gradiente.
• Module (Módulo) - Camada de rede neural que armazenará o
estado ou pesos aprendíveis.
Vantagens do PyTorch
• É fácil depurar e entender o código.
• Inclui muitas camadas como Torch.
• Inclui muitas funções de perda (loss functions).
• Pode ser considerado uma extensão NumPy para GPUs.
• Permite construir redes cuja estrutura depende da própria
computação.
Machine Learning
Aplicado
Visão computacional
https://keras.io/examples/vision/image_classification_from_scratch/
Conceitos
• A visão computacional ajuda os computadores a compreender o
conteúdo de imagens digitais, como fotografias. Começando com
um artigo seminal em 2012, as abordagens de aprendizado
profundo para a visão computacional se tornaram extremamente
bem-sucedidas.

AlexNet
Unidades de
processamento ReLU Regularização Profundidade
gráfico (GPUs)
Classificação de imagens.
• A classificação de imagens é um problema de aprendizado
supervisionado descrito da seguinte forma: defina um conjunto de
classes de destino (objetos a serem identificados em imagens) e
treine um modelo para reconhecê-los usando fotos de exemplo já
rotuladas.
Noções de Visão computacional com
redes neurais convolucionais.
Detecção de objetos.
• A detecção de objetos é uma tarefa mais desafiadora e combina
essas duas tarefas e desenha uma caixa delimitadora ao redor de
cada objeto de interesse na imagem e atribui a eles um rótulo de
classe.
• Juntos, todos esses problemas são chamados de reconhecimento
de objetos.
Segmentação de objetos e instâncias.
Segmentação em vídeo
Reconhecimento facial
Processamento de Linguagem
Natural (PLN)
Processamento de Linguagem Natural
(PLN)
• A PLN é uma abordagem baseada em
princípios para processar a linguagem
humana.
• Um subcampo da inteligência artificial (IA)
que se refere a abordagens computacionais
para processar, compreender e gerar a
linguagem humana.
• A razão pela qual faz parte da IA é porque o
processamento da linguagem é considerado
uma característica da inteligência humana.
Entendimento da Aprendizado de Geração de
linguagem natural máquina Linguagem

Qual a política de
devolução da loja? Processa o que está Determinar qual a Devolver a resposta em
sendo dito. resposta correta um formato adequado

Podemos devolver seu


dinheiro até em 7 dias
após a compra.

Processamento de Linguagem Natural


Tokenização
• Tokenização é um processo em que o texto de entrada é dividido
em unidades menores. Existem dois tipos de tokenização:
• A tokenização de palavras que divide uma frase em tokens (equivalente a
palavras e pontuação)
• A tokenização de frases que divide um trecho de texto incluindo
possivelmente mais de uma frase em frases individuais.
• Se você ouvir falar em tokenização, geralmente trata-se de
tokenização de palavras em PLN.

>>> import nltk


>>> from nltk.tokenize import word_tokenize, sent_tokenize
Stemming
• Stemming é um processo para
identificar radicais de palavras.
• Um radical de palavra é a parte
principal de uma palavra após a
remoção de seus afixos (prefixos e
sufixos).
• Por exemplo, a palavra radical de
“maçãs” (plural) é “maçã”.
Lemmatização
• Um lema é a forma original de uma palavra que você costuma
encontrar como palavra-chave em um dicionário.
• É também a forma básica da palavra antes da inflexão.
• Por exemplo, o lema de "reuniões" (como um substantivo no plural)
é "reunião".
Stop-words
• Uma palavra de parada é uma palavra comumente usada que um
mecanismo de pesquisa foi programado para ignorar, tanto ao indexar
entradas para pesquisa quanto ao recuperá-las como resultado de
uma consulta de pesquisa.
• Essas palavras não devem ocupar espaço no banco de dados ou nem
gastar o tempo valioso de processamento.
• Para isso, podemos removê-los facilmente, armazenando uma lista de
palavras que são consideradas Stop-Words.
Nuvem de palavras de StopWords
Elementos básicos da linguagem
• Caracteres - também chamado de grafema em linguística, é a
menor unidade de um sistema de escrita.
• Não carregam necessariamente um significado
• Palavras - é a menor unidade em um idioma que pode ser
pronunciada independentemente e que geralmente carrega algum
significado
• Frases - é um grupo de palavras que desempenham um
determinado papel gramatical.
N-gramas
• Um n-grama é uma sequência contígua de uma ou mais
ocorrências de unidades linguísticas, como caracteres e palavras.
• Em uma frase um n-grama pode conter unidades linguisticamente
relevantes.
• n-gramas de caracteres são usados quando queremos capturar
unidades de subpalavra que correspondem aproximadamente a
morfemas
N-grams
• Usamos n-gramas e as probabilidades de ocorrências de certas
palavras em certas sequências pode melhorar as previsões dos
sistemas de autocompletar.
• Da mesma forma, usamos PNL e n-gramas para treinar robôs
assistentes pessoais baseados em voz.
• Por exemplo, usando um modelo de treinamento de 3 gramas ou
trigramas, um bot será capaz de entender a diferença entre frases
como "qual a temperatura?" e "definir a temperatura."
TF-IDF.

𝑁ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑜𝑐𝑜𝑟𝑟ê𝑛𝑐𝑖𝑎𝑠 𝑑𝑜 𝑡𝑒𝑟𝑚𝑜 𝒕 𝑛𝑜 𝑑𝑜𝑐𝑢𝑚𝑒𝑛𝑡𝑜 𝒅


𝑇𝐹 𝑡, 𝑑 =
𝑇𝑜𝑡𝑎𝑙 𝑑𝑒 𝑡𝑒𝑟𝑚𝑜𝑠 𝑛𝑜 𝑑𝑜𝑐𝑢𝑚𝑒𝑛𝑡𝑜 𝒅

𝑁ú𝑚𝑒𝑟𝑜 𝑡𝑜𝑡𝑎𝑙 𝑑𝑒 𝑑𝑜𝑐𝑢𝑚𝑒𝑛𝑡𝑜𝑠 𝑒𝑚 𝑢𝑚 𝑐𝑜𝑟𝑝𝑜𝑠


𝐼𝐷𝐹 𝑡 = 𝑙𝑜𝑔𝑒
𝑁ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑑𝑜𝑐𝑢𝑚𝑒𝑛𝑡𝑜𝑠 𝑒𝑚 𝑞𝑢𝑒 𝑜 𝑡𝑒𝑟𝑚𝑜 𝒕 𝑎𝑝𝑎𝑟𝑒𝑐𝑒
Modelagem de tópicos
Contexto
LDA - Latent Dirichlet Allocation
• O que o LDA faz? Vamos começar com um corpus de exemplo.
Digamos que temos uma coleção de documentos, D1 a D5, e cada
documento consiste em uma única frase:
• • D1: Gosto de comer brócolis e banana.
• • D2: Comi banana com salada no café da manhã.
• • D3: Cachorros e gatinhos são fofos.
• • D4: Minha irmã adotou um gatinho ontem.
• • D5: Olhe este hamster fofo mastigando um pedaço de
brócolis.
Saída do LDA
• Aprender um modelo de tópico nesta coleção usando LDA pode
produzir uma saída como esta:
• Tópico A: 30% brócolis, 15% bananas, 10% café da manhã, 10%
mastigando
• Tópico B: 20% cachorros, 20% gatinhos, 20% fofos, 15% hamster
• Documento 1 e 2: 100% Tópico A
• Documento 3 e 4: 100% Tópico B
• Documento 5: 60% Tópico A, 40% Tópico B
Definição Teórica LDA
• Consiste em um modelo probabilístico, no qual cada documento é modelado
como uma combinação de tópicos, onde cada tópico corresponde a uma
distribuição multinomial sobre as palavras.
• A distribuição documento-tópico e tópico-palavra aprendidas pelo LDA, por
meio de inferência Bayesiana, descrevem os melhores tópicos por documento
e as palavras mais descritivas para cada tópico.
• Uma definição formal para um tópico, é uma distribuição sobre um
vocabulário fixo.
• Por exemplo, o tópico sobre genética tem palavras sobre genética com alta
probabilidade e o tópico biologia evolutiva tem palavras sobre biologia
evolutiva com alta probabilidade.
NMF - Non-negative Matrix Factorization
NMF
Definição teórica.
• O NMF consiste em um algoritmo de fatoração de matrizes que
encontra a fatoração positiva de uma matriz positiva recebida
como entrada.
• Seja S o conjunto de documentos representados por uma matriz V
de dimensão m x n, onde m é o número de termos distintos e n é
equivalente ao número de documentos em S.
• O NMF encontra a menor aproximação de V em termos de alguma
métrica específica fatorando V no produto (WH) de duas matrizes
de menor dimensões W (m x k) e H (k x n), onde k é o número de
tópicos.
Word embeddings
Contextualizando
• Para usar redes neurais em seu aplicativo PLN, você precisa
converter unidades linguísticas em números, como vetores.
• Por exemplo, se você deseja construir um analisador de
sentimento, você precisa converter a frase de entrada (sequência
de palavras) em uma sequência de vetores.
Embedding
• Um embedding é uma representação vetorial com valor real de
algo que geralmente é discreto.

vec("cat") = [0.7, 0.5, 0.1]


vec("dog") = [0.8, 0.3, 0.1]
vec("pizza") = [0.1, 0.2, 0.8]
Por que os embeddings são importantes?
• Palavras que ocorrem em contextos semelhantes têm significados
semelhantes. Por exemplo, as palavras em inglês “cachorro” e
Hipótese distributiva “gato” ocorrem em contextos semelhantes. Assim, de acordo com
a hipótese distributiva, deve haver uma forte semelhança entre os
significados dessas duas palavras.

Representação • Refere-se a esquemas de representação obtidos com


base na distribuição de palavras a partir do contexto em
que as palavras aparecem. Esses esquemas são baseados
distribucional em hipóteses distributiva.

• Esquemas de representação distribuída comprimem


significativamente a dimensionalidade. Isso resulta em
Representação distribuída vetores que são compactos (ou seja, de baixa dimensão)
e densos (ou seja, quase nenhum zero). O espaço vetorial
resultante é conhecido como representação distribuída .

• Um mapeamento entre o espaço vetorial proveniente da


Embedding representação distribucional e o espaço vetorial
proveniente da representação distribuída.

• Conjunto de métodos de PLN que objetivam aprender as


Semântica vetorial representações de palavras com base em propriedades
de distribuição de palavras em um grande corpus.
Corpus
• D1 Cachorro morde homem.
• D2 Homem morde cachorro.
• D3 Cachorro come carne.
• D4 Homem come comida.
One-Hot representation

Palavra = Wid Vetor binário Doc Representação dos documentos (One Hot)

Cachorro = 1 [1 0 0 0 0 0] D1 [[1 0 0 0 0 0] [0 1 0 0 0 0] [0 0 1 0 0 0]]

Morde = 2 [0 1 0 0 0 0] D2 [[0 0 1 0 0 0] [0 1 0 0 0 0] [1 0 0 0 0 0]]

Homem = 3 [0 0 1 0 0 0] D3 [[1 0 0 0 0 0] [0 0 0 0 0 1] [0 0 0 1 0 0]]

Carne = 4 [0 0 0 1 0 0] D4 [[0 0 1 0 0 0] [0 0 0 0 0 1] [0 0 0 0 1 0]]

Comida = 5 [0 0 0 0 1 0]

Come = 6 [0 0 0 0 0 1]
Saco de palavras (BoW – Bag of Words)
• É uma técnica clássica de representação de texto que tem sido
usada comumente na PLN, especialmente em problemas de
classificação de texto.
• A ideia-chave por trás disso é a seguinte: representar o texto em
análise como uma bolsa (coleção) de palavras, ignorando a ordem
e o contexto.
• A intuição básica por trás disso é que ele assume que o texto
pertencente a uma determinada classe no conjunto de dados é
caracterizado por um conjunto único de palavras.
Representação

Palavra = Wid Vetor binário Doc Representação dos documentos (BoW)


Cachorro = 1 [1 0 0 0 0 0] D1 [[1 1 1 0 0 0]]
Morde = 2 [0 1 0 0 0 0] D2 [[1 1 1 0 0 0]]
Homem = 3 [0 0 1 0 0 0] D3 [[1 0 0 1 1 0]]
Carne = 4 [0 0 0 1 0 0] D4 [[0 0 1 0 1 1]]
Comida = 5 [0 0 0 0 1 0]
Come = 6 [0 0 0 0 0 1]
Arquiteturas para aprender
representações subjacentes
CBOW
• O modelo CBOW aprende a prever uma palavra
alvo aproveitando todas as palavras em sua vizinhança.
• A soma dos vetores de contexto é usada para prever a palavra
alvo.
• As palavras vizinhas levadas em consideração são determinadas
por um tamanho de janela pré-definido ao redor da palavra alvo.
Skip Gram
• O modelo SkipGram aprende a
prever uma palavra com base
em uma palavra vizinha.
• Simplificando, dada uma
palavra, ele aprende a prever
outra palavra em seu contexto.
Comparação
• Skip-gram: funciona bem com uma pequena quantidade de dados
de treinamento, representa bem até mesmo palavras ou frases
raras.
• CBOW: várias vezes mais rápido para treinar do que o skip-gram,
precisão ligeiramente melhor para as palavras frequentes.
Conceitos Básicos em
Séries Temporais.
Contexto
• A análise de dados de séries temporais é
cada vez mais importante devido à
produção massiva desses dados por meio
da internet das coisas, a digitalização da
saúde e o surgimento de cidades
inteligentes.
• À medida que o monitoramento contínuo
e a coleta de dados se tornam mais
comuns, a necessidade de análises de
séries temporais competentes com
técnicas estatísticas e de aprendizado de
máquina aumentará.
Análise de séries temporais
• A análise de séries temporais é o esforço de extrair um resumo
significativo e informações estatísticas de pontos organizados em
ordem cronológica.
• É feito para diagnosticar o comportamento passado, bem como
para prever o comportamento futuro.
Série temporal simples que segue uma
tendência ascendente
Multivariada
Padrões em Séries Temporais
Tendência, sazonalidade e ruido
Séria não estacionária
Ruído Branco
Aplicações da Análise de Séries
Temporais
• Predição
• Aprendizado de máquina
• Análise de outlier.
Train/Test
Detecção de anomalias
Obrigado!
Petrobras – 2021 - CEBRASPE

Você também pode gostar