Escolar Documentos
Profissional Documentos
Cultura Documentos
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
Palavra = Wid Vetor binário Doc Representação dos documentos (One Hot)
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