Buscar

CNN_Slides

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 252 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 252 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 252 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Redes Neurais Convolucionais 
Profundas 
Leonardo Vidal Batista 
DI/PPGI/PPGCC 
leonardo@ci.ufpb.br 
Programa do componente curricular 
 
Objetivos 
 
 
Estudar arquiteturas clássicas e avançadas de redes neurais 
convolucionais profundas (DCNN) 
 
Estudar técnicas de pré-processamento para redução de 
treinamento e aumento de acurácia de métodos baseados em 
DCNN 
 
Pesquisa envolvendo DCNN 
 
Programa do componente curricular 
Conteúdo 
 
 
Conceitos e técnicas fundamentais 
Redes Neurais Convolucionais 
Biblioteca Keras 
Arquiteturas Avançadas de CNN 
Tópicos de Pesquisa em Visão Computacional utilizando CNN 
 
Cronograma e avaliação 
27/11/2018-05/02/2019 - Conceitos e técnicas fundamentais 
07/02/2019-07/02/2019 - Entrega e apresentação do Trabalho 1 
12/02/2019-14/02/2019 - Semana da Computação 
19/02/2019-05/03/2019 - Redes Neurais Convolucionais (CNN) 
07/03/2019-07/03/2019 - Entrega e apresentação do Trabalho 2 
12/03/2019-28/03/2019 - Arquiteturas avançadas de CNN 
02/04/2019-02/05/2019 - Pesquisa em VC utilizando CNN 
07/05/2019-07/05/2019 - Entrega e apresentação do Trabalho 3 
 
M = (T1+T2+T3) / 3 
 
 
Referências 
 
Livro - GOODFELLOW, Ian; BENGIO, Yoshua; COURVILLE, 
Aaron. Deep Learning. Mit Press. 2016 
 
Livro - Josh Patterson. Deep Learning: A Practitioner’s Approach. 
O'Reilly Media. 2017 
 
Livro - BUDUMA, Nikhil. Fundamentals of Deep Learning - Designing 
Next-Generation Machine Intelligence Algorithms. O'Reilly Media. 
2017 
 
Processamento de Imagens e Visão 
Computacional 
Dados 
Imagens 
Computação 
Gráfica 
Visão 
Computacional 
(VC) 
Processamento 
Digital de Imagens 
(PDI) 
= 
PDI+ 
Inteligência 
Artificial 
(vídeos, sinais) 
Processamento de Imagens e Visão 
Computacional 
Dados 
CG VC 
PDI 
Por que pesquisar VC? 
30% dos neurônios no cortex cerebral humano dedicados à visão 
(8% tato, 2% audição) 
Informação em pixels: mais de 85% do cyberspace (Cisco) 
Ver é desafiador! 
“As imagens dominam nossa vida, mas são a matéria escura do 
universo digital, a parte menos entendida. Essencialmente 
invisível como informação digital” 
 
 
 
Imagens Digitais 
Imagens Digitais 
Ver é desafiador! 
 
 
 
 
Ver é desafiador! 
O que é uma cadeira? 
Teoria das formas, ideal platônico 
 
 
 
 
Ver é desafiador! 
O que é uma cadeira? 
 
 
 
 
PDI e VC 
 
29/11/2018 Leonardo Vidal Batista - 14 
Você confia em seu Sistema Visual? 
 
 
Você confia em seu Sistema Visual? 
 
 
VC x Visão humana 
 
 
Objetiva 
Inflexível 
Insensível 
Algorítmica 
 
Subjetiva 
Flexível 
Emotiva 
Ambígua 
 
VC x Visão humana 
 
 
VC x VH 
 
 
Complementaridade VC x VH 
 
 
VC  VH 
 
 
Deep Artificial 
Convolutional Neural 
Networks 
 
Reconhecimento de Padrões 
 
 
 
Probabilístico, Simbólico, Conexionista 
 
 
 
 
Reconhecimento de Padrões Clássico 
 
 
 
 
 
 
 
 
 
 
 
Aquisição 
Pré-processamento 
Seleção e extração de 
características 
a = (a1, a2, ... an) Classificador 
Cachorro Ave Gato 
Seleção e Extração de Atributos 
Número de patas, Número de asas 
Pelos, Penas, Bico, Focinho (boolean) 
Tamanho 
Área da cabeça / Área total 
Perímetro da cabeça / Perímetro total 
Circularidade, Solidez 
Razão entre os eixos da elipse de melhor ajuste para a cabeça 
Descritores de textura 
Cor 
Histogramas de gradientes orientados 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Em geral, impossível 
Exigem reconhecimento de padrões! 
Seleção e Extração de Atributos 
Simbólico 
Se Penas e Bico então Ave 
Senão, se Tamanho > 1 m então cachorro 
... 
Probabilístico 
P(Cachorro|a) > P(Gato|a) e P(Cachorro|a) > P(Ave|a) 
Então Cachorro 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Seleção e Extração de Atributos 
Conexionista 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
a = (a1, a2, ... an) 
Cachorro 
Gato 
Ave 
O que é um cachorro? 
 
 
 
 
 
 
 
 
 
 
 
 
Técnicas clássicas 
Pascal Object Recognition Challenge 
2005, 4 classes: bicycles, cars, motorbikes, people 
Train/validation/test: 1578 images, 2209 annotated objects. 
2006, 10 classes: bicycle, bus, car, cat, cow, dog, horse, 
motorbike, person, sheep. Train/validation/test: 2618 images, 
4754 annotated objects. 
2007, 20 classes: person, bird, cat, cow, dog, horse, sheep, 
aeroplane, bicycle, boat, bus, car, motorbike, train, bottle, 
chair, dining table, potted plant, sofa, tv/monitor 
Train/validation/test: 9,963 images containing 24,640 
annotated objects. 
 
 
 
 
 
Técnicas clássicas 
Pascal Object Recognition Challenge 
 
 
 
 
 
 
 
Técnicas clássicas 
Pascal Object Recognition Challenge 
 
 
 
 
 
 
 
Técnicas clássicas 
Pascal Object Recognition Challenge 
2008, 20 classes. The train/val data has 4,340 images containing 
10,363 annotated objects. 
2009, 20 classes. The train/val data has 7,054 images containing 
17,218 ROI annotated objects and 3,211 segmentations. 
2010, 20 classes. The train/val data has 10,103 images containing 
23,374 ROI annotated objects and 4,203 segmentations. 
2011, 20 classes. The train/val data has 11,530 images containing 
27,450 ROI annotated objects and 5,034 segmentations. 
2012, 20 classes. The train/val data has 11,530 images containing 
27,450 ROI annotated objects and 6,929 segmentations. 
 
 
 
 
 
 
 
Deep Convolucional Neural Networks 
 
2009 
ImageNet Large-Scale Visual Recognition Challenge 
22K classes 
15M de imagens 
http://www.image-net.org/eva/ 
 
 
 
 
 
 
Redes Neurais 
 
 
 
 
 
≈86 bilhões de neurônios, cada um conectado a até 10000 outros 
≈ 33 bilhões de neurônios e 150 trilhões de sinapses no neocortex 
Cortex visual tem estrutura hierárquica em camadas (V1, V2, V3, 
V4, V5): Lateral geniculate body  simple cells  complex cells  
lower order hypercomplex cells  higher order hypercomplex cells 
 
Redes Neurais 
 
“As imagens são quebradas e cada área do córtex analisa um 
pedaço separadamente. Esse processo começa na própria retina. 
De lá, os impulsos são transferidos para o córtex visual primário, 
também chamado V1. Essa área tem células especializadas no 
reconhecimento de linhas. Para essas células não interessa o 
recheio da imagem, e sim os contornos.” 
Vinicius Baldo, neurofisiologista, USP 
Redes Neurais Artificiais (ANN) 
Clássicas 
De dezenas até dezenas de milhares de “neurônios” 
 
 
 
 
 
Completamente conectadas ou densas 
Redes Neurais Artificiais Profundas 
Múltiplas camadas de aprendizagem hierarquicamente 
organizadas 
CNN: Camadas convolucionais seguidas por camadas densas 
(PDI + IA) 
Redes Neurais Artificiais Profundas 
Múltiplas camadas de aprendizagem hierarquicamente 
organizadas 
Redes Neurais Artificiais Profundas 
Google Brain: 24 milhões de “neurônios”, 15 bilhões de conexões, 
140 milhões de parâmetros 
Executando em 16 mil CPUs 
Team GoogleNet 
 
 
 
 
 
 
Sejamos específicos! 
Descrição de cenas 
Interação Pessoa-Objeto 
2012 
 
 
 
 
 
 
Erros 
Erros 
Como funciona? 
Redes Neurais ArtificiaisProfundas 
Redes Neurais Artificiais Profundas 
 
 
 
 
 
 
Aprendizagem ou treinamento: determinar w 
Algoritmos de minimização de erros 
 
Conhecido Desconhecido Conhecido 
Redes Neurais Artificiais Profundas 
 
 
 
 
 
 
 
Conhecido Desconhecido Conhecido 
Teste: produzir y 
Redes Neurais Artificiais Profundas 
 
 
 
 
 
 
 
Conhecido Desconhecido Conhecido 
E se?... 
 
(TED - How computers are learning to be creative - Blaise 
Agüera y Arcas, Google Brain) 
Síntese de imagens 
Detecção de objetos 
Detecção de objetos 
Transferência de Estilo 
Transferência de Estilo 
Transferência de Estilo 
Transferência de Estilo 
Transferência de Estilo 
Transferência de Estilo 
ICAO 
Padrão de fotografias faciais da International Civil Aviation 
Organization (ICAO), agência da ONU para normatização de 
aviação civil e documentos de viagem 
 
Adotado pela Polícia Federal na emissão do passaporte, pelo 
Tribunal Superior Eleitoral e pelo Instituto de Polícia Científica 
da Paraíba na emissão de documentos de identidade 
 
 
ICAO 
25 requisitos avaliados 
Competição 
 
 
1 - Localização do centro do olho de alta precisão 
 
Softwares de Monitoramento 
O que é Deep Learning? 
Subfield of machine learning concerned with models inspired by 
the structure and function of the brain called artificial neural 
networks 
 
“very large neural networks we can now have and … huge 
amounts of data that we have access to” 
(Andrew Ng, Coursera, Chief Scientist da Baidu Research, fundador do Google Brain) 
O que é Deep Learning? 
O que é Deep Learning? 
Deep learning algorithms seek to exploit the unknown structure 
in the input in order to discover good representations, often at 
multiple levels, with higher-level learned features defined in 
terms of lower-level features 
 
Deep learning methods aim at learning feature hierarchies with 
features from higher levels of the hierarchy formed by the 
composition of lower level features 
(Joshua Bengio) 
O que é Deep Learning 
“Deep learning, which has been useful but not good enough, 
should be thrown away in favor of searching for entirely new 
techniques” 
(Geoffrey Hinton) 
"Artificial Intelligence Pioneer Says We Need to Start Over" 
Communications of the ACM. Retrieved 30 January 2018 
 
 
Máquinas Morais 
Máquinas Morais 
Artificial consciousness (AC) 
 
Neuroscience hypothesizes that consciousness is generated by 
the interoperation of various parts of the brain, called the 
neural correlates of consciousness or NCC 
 
Debate da Plausibilidade 
Máquinas Morais 
Geoffrey Everest Hinton 
Psicólogo congnitivo e cientista da computação britânico 
Petições contra máquinas letais autônomas 
Riscos existenciais da IA 
“Superintelligence seems more than 50 years away” 
"It is very hard to predict beyond five years" 
 
O Dilema do Bonde 
Filipa Foot, 1967 
Máquinas Morais 
Máquinas Morais 
Máquinas Morais 
Máquinas Morais 
The Malicious Use of Artificial Intelligence report 
 
Shahar Avin 
Cambridge University's Centre for the Study of Existential Risk 
 
Policy-makers and technical researchers should work together to 
understand and prepare for the malicious use of AI 
 
Reinforcement learning, where AIs are trained to superhuman levels 
of intelligence without human examples or guidance 
 
 
Palestras etc 
TED Talks 
 
Can we build AI without losing control over it? 
https://www.ted.com/talks/sam_harris_can_we_build_ai_without_losing_control_over_it?referrer=playlis
t-talks_on_artificial_intelligen 
 
Machine intelligence makes human morals more important 
https://www.ted.com/talks/zeynep_tufekci_machine_intelligence_makes_human_morals_more_importan
t?referrer=playlist-talks_on_artificial_intelligen 
 
The wonderful and terrifying implications of computers that can learn 
https://www.ted.com/talks/jeremy_howard_the_wonderful_and_terrifying_implications_of_computers_t
hat_can_learn?referrer=playlist-talks_on_artificial_intelligen 
 
How we're teaching computers to understand pictures 
https://www.ted.com/talks/fei_fei_li_how_we_re_teaching_computers_to_understand_pictures?referrer
=playlist-talks_on_artificial_intelligen 
 
What happens when our computers get smarter than we are? 
https://www.ted.com/talks/nick_bostrom_what_happens_when_our_computers_get_smarter_than_we_
are?referrer=playlist-talks_on_artificial_intelligen 
Palestras etc 
ML Review - Machine Learning Research, Projects and Educational Materials 
https://medium.com/mlreview 
Geoffrey Hinton talk "What is wrong with convolutional neural nets ?" 
https://www.youtube.com/watch?v=rTawFwUvnLE 
Capsule Networks (CapsNets) – Tutorial 
https://www.youtube.com/watch?v=pPN8d0E3900 
How to implement CapsNets using TensorFlow 
https://www.youtube.com/watch?v=2Kawrd5szHE 
Capsule Networks: An Improvement to Convolutional Networks 
https://www.youtube.com/watch?v=VKoLGnq15RM 
 
 
Vetores 
 
 
 
 
 
 
 
 
a = (4, 7) 
 
4 
7 
Sinais 
 
 
 
 
 
 
 
Sinal 1D = tensor de ordem 1 = sequência numérica 
ou vetor 
Ex: s = (4.5, 7, 8, -4, 3) 
Amostra do sinal colhida em n = 1: 4.5 
s[n]: s[1] = 4.5, s[2] = 7, s[3] = 8, ... 
 
Imagens em tons de cinza 
 
 
 
 
 
 
 
 
Sinal 2D = tensor de ordem 2 = imagem 
ou matriz 
 
Ex: I =
4 7 6
2 0 0
7 1 1
 
 
Pixel na posição (1,1): 4 
I(i, j): I(1,1) = 4, I(1,2) = 7, I(1,3) = 6, I(2,1)=2... 
 
 
Imagens em tons de cinza 
 
 
 
 
 
 
 
 
 
 
Imagens RGB 
 
 
 
 
 
 
 
3 matrizes (R,G,B) = volume 3D = tensor de ordem 3 
 
IR =
255 128 0
255 0 0
128 0 128
 IG=
255 128 0
0 255 0
128 1 1
IB =
255 128 0
0 255 0
7 254 1
 
 
I = 
(255,255,255) (128,128,128) (0,0,0
(255,0,0) (0,255,255) (0,0,0)
(128,128,7) (0,1,254) (128,1,1)
 
 
Pixel na posição (1,1): I(1,1)=(255, 255, 255) 
I(i,j): I(1,1)=(255, 255, 255), I(1,2)=(128, 128, 128), 
I(1,3)=(0,0, 0), I(2,1)=(255, 0, 0)... 
 
 
Imagens RGB 
 
 
 
 
 
 
 
 
Ex: 
IR =
255 128 0
255 0 0
128 0 128
 IG=
255 128 0
0 255 0
128 1 1
IB =
255 128 0
0 255 0
7 254 1
 
 
 
Associando R ao índice 1, G ao 2 e B ao 3: 
I(i,j,c): I(1,1,1) = ?; I(2,1,1) = ?; I(2,1,2) = ? 
I(i,j,c): I(1,1,1) = 255; I(2,1,1) = 255; I(2,1,2) = 0 
 
 
 
Imagens RGB 
 
 
 
 
 
 
 
 
 Imagem H x W x 3 
 Imagens H x W x C 
 C: no. de canais, ou profundidade 
 
Coeficiente de Correlação 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Deseja-se invariância ao deslocamento vertical e à escala 
Coeficiente de Correlação Linear 
 
 
 
 
 
 
 
Tempo a b 
0 3 6 
1 4 8 
2 8 16 
a 
b 
Correlação linear máxima (=1) 
Coeficiente de Correlação Linear 
 
 
 
 
 
 
 
Tempo a b 
0 3 9 
1 4 11 
2 8 19 
Correlação linear máxima (=1) 
b 
a 
Coeficiente de Correlação Linear 
 
 
 
 
 
 
 
Tempo a b 
0 3 12 
1 4 16 
2 8 32 
Correlação linear máxima (=1) 
b 
a 
Coeficiente de Correlação Linearr = 0.99 
Coeficiente de Correlação Linear 
 
 
 
 
 
(Grade Point Average) 
Coeficiente de Correlação Linear 
 
 
 
 
 
 
 
 
𝒂, 𝒃: vetores ∈ ℝn 
Ex: 𝒂 = (𝑎1, 𝑎2,..., 𝑎n) e 𝒃 = (𝑏1, 𝑏2,..., 𝑏n) 
𝒂 = (3, 4, 8) e 𝒃 = (6, 8, 16) 
 
𝒂.𝒃 = ? 
 
𝒂.𝒃 = 𝑎1 𝑏1+ 𝑎2 𝑏2+ ...+ 𝑎n 𝑏n = 𝑎𝑖𝑏𝑖
𝑛
𝑖=1 
𝒂.𝒃 = |𝒂||𝒃|cosθ 
𝒂 = 𝑎𝑖
2 𝑛𝑖=1 e 𝒃 = 𝑏𝑖
2 𝑛𝑖=1 
 
Coeficiente de Correlação Linear 
 
 
 
 
 
 
 
 
Ex: 𝒂 = (3, 4, 8) e 𝒃 = (6, 8, 16) 
𝒂.𝒃 = ? 
𝒂.𝒃 = 3x6+4x8+8x16 = 178 
ou 
𝒂.𝒃 = |𝒂||𝒃|cosθ 
𝒂 = 𝑎𝑖
2 𝑛𝑖=1 = 89 = 9,43 
𝒃 = 𝑏𝑖
2 𝑛𝑖=1 = 356 = 18,87 
cosθ =
𝒂.𝒃
𝒂 |𝒃|
 = 178/(9,43*18,87) = 1 
 
 
Coeficiente de Correlação Linear 
 
 
 
 
 
 
 
 
O cosseno pode ser uma boa medida de correlação! 
cosθ =
𝒂.𝒃
𝒂 |𝒃|
==
𝒂
𝒂
 . 𝒃
𝒃
 
Vetores colineares de mesmo sentido: cosθ = 1 
Vetores colineares de sentidos opostos: cosθ = -1 
Vetores perpendiculares: cosθ = 0 
 
Invariante à escala? 
 
 
Coeficiente de Correlação Linear 
 
 
 
 
 
 
 
v = (4,7), w = (8, 14) 
 
 
 
 
 
 
 
 
 
4 
7 
8 
v 
w 14 
Invariante à escala! 
Invariante ao deslocamento? 
Coeficiente de Correlação Linear 
 
 
 
 
 
 
 
v = (4,7), w = v+4 = (8,11) 
 
 
 
 
 
 
 
 
 
 
Não é invariante ao deslocamento! 
4 
7 
8 
v 
w 11 
Ex: 𝒂 = (1, 2) e 𝒃 = (2, 4) 
𝒂.𝒃 = 1x2+2x4 = 10 
𝒂 = 𝑎𝑖
2 𝑛𝑖=1 = 5 
𝒃 = 𝑏𝑖
2 𝑛𝑖=1 = 20 
cosθ =
𝒂.𝒃
𝒂 |𝒃|
=
10
5 20
=1 
 
 
Coeficiente de Correlação Linear 
 
 
 
 
 
 
 
Ex: 𝒂 = (1, 2) e 𝒃 = (2, 4)-(4,4)= (2,4) – 4 = (-2,0) 
𝒂.𝒃 = 1x(-2)+2x0 = -2 
𝒂 = 𝑎𝑖
2 𝑛𝑖=1 = 5 
𝒃 = 𝑏𝑖
2 𝑛𝑖=1 = 4 
cosθ =
𝒂.𝒃
𝒂 |𝒃|
=
−2
5 4
=-0.44 
Não é invariante ao deslocamento! 
 
 
Coeficiente de Correlação Linear 
 
 
 
 
 
 
 
Solução 
Transformar os vetores para média 0: 
cosθ =
(𝒂−𝜇𝑎).(𝒃−𝜇𝑏)
𝒂−𝜇𝑎 |𝒃−𝜇𝑏|
= 
=
(𝒂−𝜇𝑎)
𝒂−𝜇𝑎
 . (𝒃−𝜇𝑏)
𝒃−𝜇𝑏
= 
=
𝜎(𝒂,𝒃)
𝜎(𝒂)𝜎(𝒃)
 
 r = cosθ: coeficiente de correlação linear de Pearson 
Subtração da média e divisão pela norma: 
normalização 
Coeficiente de Correlação Linear 
 
 
 
 
 
 
 
Ex: 𝒂 = (1, 2) e 𝒃 = (2, 4) 
 
𝝁𝒂 = 1,5 e 𝝁𝒃 = 3 
 
𝒂 − 𝜇𝑎=(-0,5, 0,5) e 𝒃 − 𝜇𝑏 = (-1, 1) 
 
cosθ =
0,5+0,5
0,5 2
 = 1 
Coeficiente de Correlação Linear 
 
 
 
 
 
 
 
 
Ex: 𝒂 = (1, 2) e 𝒃 = (2, 4)-4=(-2,0) 
 
𝝁𝒂 = 1,5 e 𝝁𝒃 = −1 
 
𝒂 − 𝜇𝑎=(-0,5, 0,5) e 𝒃 − 𝜇𝑏 = (-1, 1) 
 
cosθ =
0,5+0,5
0,5 2
 = 1 
Coeficiente de Correlação Linear 
 
 
 
 
 
 
 
 
 
r = 1: correlação máxima 
r = -1: correlação negativa máxima 
r = 0: correlação nula 
 
Muitas aplicações, inclusive em ML 
 
Coeficiente de Correlação Linear 
 
 
 
 
 
 
 
Coeficiente de Correlação Linear 
 
 
 
 
 
Coeficiente de Correlação Linear 
 
 
 
 
 
 
Duas sequências numéricas, s e w 
Sinal s, máscara w (filtro correlacional) 
g = s∘w: correlação não normalizada entre w e janelas 
de s = produto interno entre w e janelas de s 
Ex: w = (3, 7, 5) 
 s = (4, 1, 3, 8, 4, 0, 3, 8, 0, 7, 7, 7, 1, 2) 
 
 
 
Correlação não normalizada 
 
 
 
 
 
 
 
4 1 3 8 4 0 3 8 0 7 7 7 1 2 
3 7 5 
? 
s 
w 
g 
(3, 7, 5).(4, 1, 3)=12+7+15=34 
 
 
 
Correlação não normalizada 
 
 
4 1 3 8 4 0 3 8 0 7 7 7 1 2 
3 7 5 
34 
s 
w 
g 
4 1 3 8 4 0 3 8 0 7 7 7 1 2 
3 7 5 
34 ? 
s 
w 
g 
4 1 3 8 4 0 3 8 0 7 7 7 1 2 
3 7 5 
34 64 
s 
w 
g 
Correlação não normalizada 
 
 
4 1 3 8 4 0 3 8 0 7 7 7 1 2 
3 7 5 
34 64 85 52 27 61 65 59 84 105 75 38 
s 
w 
g 
 
 
 
 
Correlação da máscara com 
(3,7,5)? 
(6,14,10)? 
 
Correlação normalizada 
 
 
Sinal s, máscara w 
g = s•w (correlação normalizada entre s e w) 
 
 
Ex: w = (3, 7, 5) 
 s = (4, 1, 3, 8, 4, 0, 3, 8, 0, 7, 7, 7, 1, 2) 
 
 
 
 
 
4 1 3 8 4 0 3 8 0 7 7 7 1 2 
3 7 5 
? 
s 
w 
g 
 
 
 
 
Correlação normalizada 
 
4 1 3 8 4 0 3 8 0 7 7 7 1 2 
3 7 5 
-.98 
s 
w 
g 
4 1 3 8 4 0 3 8 0 7 7 7 1 2 
3 7 5 
-.98 ? 
s 
w 
g 
4 1 3 8 4 0 3 8 0 7 7 7 1 2 
-.98 0.28 
s 
w 
g 
4 1 3 8 4 0 3 8 0 7 7 7 1 2 
3 7 5 
-.98 0.28 0.94 -0.5 -.96 0.37 0.62 -.92 0.87 ? 
s 
w 
g 
 
 
 
 
Correlação normalizada 
 
 
 
 
 
Filtro casado: resposta máxima na posição do sinal mais 
“semelhante” (correlacionada com) à máscara 
 
Correlação da máscara com 
(3,7,5)? 
(6,14,10)? 
Resposta: 1 e 1 
 
4 1 3 8 4 0 3 8 0 7 7 7 1 2 
3 7 5 
-.98 0.28 0.94 -0.5 -.96 0.37 0.62 -.92 0.87 NaN 0 -.93 
s 
w 
g 
 
 
 
 
Correlação normalizada 
 
 
 
 
 
Correlação produz sinal g com dimensão inferior à de s 
dim(g) = dim(s)-dim(w)+1 
Evitar essa redução: usar extensão por zero (zero padding) 
Anexar zeros no início e no final de s, conforme necessário 
Correlação com stride (passo) = 2, 3, 4... (subamostragem) 
 
 
4 1 3 8 4 0 3 8 0 7 7 7 1 2 
3 7 5 
? -.98 0.28 0.94 -0.5 -.96 0.37 0.62 -.92 0.87 NaN 0 -.93 ? 
s 
w 
g 
Convolução 
Sinal s, máscara w (filtro convolucional) 
 
Convolução entre s e w: 
g = s ∗ w = s∘wr ou s•wr 
 
wr é w rebatido (“flipado”) 
w = (h1, h2,..., hn) 
wr = (hn, hn-1,..., h1) 
 
 
 
Convolução e Correlação 
 
 
Convolução 
 
 
 
 
Correlação 
 
 
 





 ][][][*][][ nhsnhnsng





 ][][][][][ nhsnhnsng 
Convolução 2D 
 
 
 
 
 
 
 
 
Complexidade computacional elevada! 
Dw
2 x Df 
2 
 
 
Convolução 2D 
 
 
 
 
 
 
 
 
Máscara convolucional: campo receptivo 
Imagem resultante: mapa de ativação ou de 
características (feature maps) 
 
 
 
Convolução 2D 
Convolução com Filtro de Sobel 
 
 
10 10 10 
10 10 10 
10 10 10 
0 10 10 
0 10 10 
0 10 10 
10 10 10 
0 10 10 
0 0 10 
10 10 10 
10 10 10 
0 0 0 
-1 0 1 
-2 0 2 
-1 0 1 
0 40 30 0 
10 10 0 
10 10 0 
10 10 0 
-40 
Convolução 2D 
 
 
 
 
 
 
 
Qual o efeito de um filtro de dimensão 1x1? 
R: ajuste de brilho 
 
 
 
Sobel Gx Sobel Gy 
Mapa de 
Ativação 
Mapa de 
Ativação 
Convolução 2D – filtros casados 
 
 
 
Convolução 2D 
Rebatimento horizontal e vertical da máscara 
 
a b c 
d e f 
g h i 
c b a 
f e d 
i h g 
i h g 
f e d 
c b a 
Convolução de convolução 
 
 
 
 
 
 
Tamanho do campo receptivo de Gx: 3x3 (igual ao de f) 
Campo receptivo de f em relação à imagem de entrada? 
R: 5x5 
 
 
Filtro f 
Convolução com volumes 
Dois modos 
 
 
Convolução com volumes 
Exemplo 
 
 
 
 
 
 
 
 
 
Convolução com volumes 
Exemplo 
 
 
Convolução com volumes 
Exemplo 
Seis filtros 5x5x3→seis mapas de ativação: volume de 
dimensões 28x28x6Exemplo 
 
 
 
 
 
 
 
R: 3 filtros 1x1x6 
Qual o efeito de um filtro 1x1x6? 
R: combinação da intensidade dos canais em cada pixel 
 
 
 
 
 
 
 
 
Convolução com volumes 
6 filtros 5x5x3 
Camada convolucional Camada convolucional 
Filtros? (sem 
zero padding) 
28 
28 
Convolução com volumes 
Produto interno de Frobenius 
y = 𝒙.𝒘 = 𝑥0 𝑤0+ 𝑥1 𝑤1+ ...+ 𝑥n-1 𝑤n-1 = 𝑥𝑖𝑤𝑖
𝑛−1
𝑖=0 
𝒙: pontos do volume “vistos” pela máscara 
𝒘: pesos da máscara 
 
1 escalar obtido por um produto 
interno com 75 multiplicações 
 
 
𝑥0 
𝑥1 
… 
𝑥n-1 
𝑤0 
𝑤1 
𝑤n-1 
𝑥0𝑤0 
𝑥1𝑤1 = 𝑥𝑖𝑤𝑖
𝑛−1
𝑖=0 
y 
xn-1wn-1 
Convolução com bias 
𝑦 = 𝒙.𝒘 + b = 𝑥𝑖𝑤𝑖
𝑛−1
𝑖=0 + 𝑏 
𝑏: bias (viés) 
 
 
 
𝑥0 
𝑥1 
… 
𝑥n-1 
𝑤0 
𝑤1 
𝑤n-1 
𝑥0𝑤0 
𝑥1𝑤1 = 𝑥𝑖𝑤𝑖
𝑛−1
𝑖=0 + 𝑏 
𝑦 
xn-1wn-1 
Função de ativação 
𝑦 = 𝑓(𝒙.𝒘 + b) = f( 𝑥𝑖𝑤𝑖
𝑛−1
𝑖=0 + 𝑏) 
 
 
 
𝑥0 
𝑥1 
… 
𝑥n-1 
𝑤0 
𝑤1 
𝑤n-1 
𝑥0𝑤0 
𝑥1𝑤1 = 𝑥𝑖𝑤𝑖 + 𝑏
𝑛−1
𝑖=0 
xn-1wn-1 
𝑓 
𝑦 
Neurônios Artificiais 
 
 
 
𝑥0 
𝑥1 
… 
𝑥n-1 
𝑤0 
𝑤1 
𝑤n-1 
𝑥0𝑤0 
𝑥1𝑤1 
= 𝑥𝑖𝑤𝑖 + 𝑏
𝑛−1
𝑖=0 
𝐶𝑜𝑟𝑝𝑜 𝑐𝑒𝑙𝑢𝑙𝑎𝑟 
𝑎𝑥ô𝑛𝑖𝑜 (𝑠𝑎í𝑑𝑎) 
xn-1wn-1 
𝑓 
f( 𝑥𝑖𝑤𝑖 + 𝑏
𝑛−1
𝑖=0 ) 
Redes Neurais Artificiais 
 
 
 
Neurônio com 
conectividade local 
𝑥0 
𝑥1 
… 
𝑥n-1 
𝑤0 
𝑤1 
𝑤n-1 
𝑥0𝑤0 
𝑥1𝑤1 
= 𝑥𝑖𝑤𝑖 + 𝑏
𝑛−1
𝑖=0 
𝐶𝑜𝑟𝑝𝑜 𝑐𝑒𝑙𝑢𝑙𝑎𝑟 
𝑎𝑥ô𝑛𝑖𝑜 (𝑠𝑎í𝑑𝑎) 
xn-1wn-1 
𝑓 
f( 𝑥𝑖𝑤𝑖 + 𝑏
𝑛−1
𝑖=0 ) 
𝑎𝑥ô𝑛𝑖𝑜 (saída) de 
outro neurônio 
𝑎𝑥ô𝑛𝑖𝑜 (saída) de 
outro neurônio 
𝑎𝑥ô𝑛𝑖𝑜 (saída) de 
outro neurônio 
Funções de ativação 
 
 
 
 
Função de Ativação Logística 
Sigmoidal 
Pode-se associar a saída a uma probabilidade 
Usada para classificação binária 
 
 
 
Função de Ativação Tangente Hiperbólica 
Sigmoidal 
 
 
Função de ativação ReLU 
Rectified Linear Unit 
Simples e eficaz 
A mais usada em CNN 
Problemas potenciais com valores de entrada negativos 
 
 
Função de ativação Leaky ReLU 
ReLU com “vazamento” ou ReLU parametrizada 
Parâmetro ‘a’ em torno de 0,01 
 
 
 
Primeiro Trabalho 
 
Implementar em Python a operação de convolução Dw x Dw x C, 
com viés e função de ativação (ReLU e tanh), stride (inteiro 
positivo) e zero padding (boolean) especificados pelo usuário 
em tempo de execução. A máscara convolucional e o viés devem 
ser especificados em arquivo texto a ser lido durante a 
execução. Apresentar resultados com imagens monocromáticas 
e RGB, e com volumes Df x Df x N, produzidos a partir da 
aplicação prévia de N filtros convolucionais. Os campos de 
ativação devem ser exibidos como imagens monocromáticas 
com nível de cinza no intervalo [0, 255], com a) zero = preto e 
b) mínimo = preto. 
 
 
 
 
 
 
 
 
Convolução com volumes 
Redes Neurais Convolucionais (CNN) 
 
 
 
 
 
 
 
Redes Neurais Convolucionais (CNN) 
 
 
 
 
 
 
 
Redes Neurais Convolucionais (CNN) 
 
 
 
 
 
Convoluções: g = x.w + b 
Coeficientes (pesos) de w, e b, aprendidos 
(e.g. backpropagation) 
Em geral, filtros com a mesma profundidade do 
volume a processar 
 
 
CNN 
 
 
 
 
 
 
 
 
 
 
Rede densa ou completamente conectada (fully connected): 
16*784 = 12544 pesos na 1ª camada 
Convolucional (16 filtros 3x3x1): 
16*9 = 144 pesos na 1ª camada 
 
28x28x1 
CNN 
 
 
Com cinco filtros, 
haverá cinco 
neurônios “olhando” 
para a mesma região 
no volume de entrada 
 
 
 
CNN - Pooling 
 
 
CNN - Pooling 
 
 
 
 
CNN - Pooling 
MaxPool 3x3, stride 2 
21 8 8 12 10 4 2 
12 19 9 7 9 11 6 
8 10 4 3 15 13 21 
18 12 9 10 22 14 19 
0 1 4 8 16 17 4 
3 3 3 5 5 20 10 
0 4 3 16 20 17 16 
21 
CNN - Pooling 
MaxPool 3x3, stride 2 
21 8 8 12 10 4 2 
12 19 9 7 9 11 6 
8 10 4 3 15 13 21 
18 12 9 10 22 14 19 
0 1 4 8 16 17 4 
3 3 3 5 5 20 10 
0 4 3 16 20 17 16 
21 15 
CNN - Pooling 
MaxPool 3x3, stride 2 
21 8 8 12 10 4 2 
12 19 9 7 9 11 6 
8 10 4 3 15 13 21 
18 12 9 10 22 14 19 
0 1 4 8 16 17 4 
3 3 3 5 5 20 10 
0 4 3 16 20 17 16 
21 15 21 
CNN - Pooling 
MaxPool 3x3, stride 2 
21 8 8 12 10 4 2 
12 19 9 7 9 11 6 
8 10 4 3 15 13 21 
18 12 9 10 22 14 19 
0 1 4 8 16 17 4 
3 3 3 5 5 20 10 
0 4 3 16 20 17 16 
21 15 21 
18 
Redes Neurais Convolucionais (CNN) 
 
 
 
 
 
 
 
 
 
 
 
 
 
Classificação de Imagens 
 
 
 
 
 
 
 
 
 
 
 
Aquisição 
Pré-processamento 
Seleção e extração de 
características 
a = (a1, a2, ... an) Classificador 
cachorro ave gato 
Classificação de Imagens 
 
 
 
 
 
 
 
 
 
 
 
Aquisição 
Pré-
processamento 
Extração de 
características 
a = (a1, a2, ... an) f(a, w) 
fM ∈ [0,1] fH ∈ [0,1] 
if fM ≥ fH then M 
else H 
Treinamento supervisionado 
Instâncias previamente rotuladas 
Definir um classificador é definir uma fronteira de decisão que minimiza os erros de 
treinamento... 
e que generaliza bem! 
 
 
 
 
 
 
 
 
 
 
 
a1 
a2 
Treinamento supervisionado 
Instâncias previamente rotuladas 
Definir um classificador é definir uma fronteira de decisão que minimiza os erros de 
treinamento... 
e que generaliza bem! 
 
 
 
 
 
 
 
 
 
 
 
a1 
a2 
Treinamento supervisionado 
Instâncias previamente rotuladas 
Definir um classificador é definir uma fronteira de decisão que minimiza os erros de 
treinamento... 
e que generaliza bem! 
 
 
 
 
 
 
 
 
 
 
 
a1 
a2 
Classificação 
 
 
 
 
 
 
 
 
 
 
 
a1 
a2 
Classificador linear binário 
Classificação não supervisionada 
 
 
 
Instâncias não rotuladas 
Agrupamento ou clustering 
Exemplo: K-médias 
 
 
 
 
 
 
 
 
 
 
 
K-Médias 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
K-Médias 
 
 
 
Sempre converge 
Resultado depende dos centróides iniciais 
Executa-se o algoritmo diversas vezes para encontrar um resultado “típico” 
Classificação de Imagens 
 
 
 
 
 
 
 
 
 
 
 
Aquisição 
Pré-
processamento 
Extração de 
características 
a = (a1, a2, ... an) Classificador 
M H 
CNN (Classificador) 
Classificação de Imagens 
 
 
 
 
 
 
 
 
 
 
 
Aquisição 
Pré-
processamento 
f(x, w) 
fM ∈ [0,1] fH ∈ [0,1] 
if fM ≥ fH then M 
else H 
x 
Classificação Multiclasses 
 
 
 
 
 
 
 
 
 
 
 
Aquisição 
Pré-
processamento 
f(x, w) 
f1 fN 
Classe = argmax fi 
 i 
x 
f2 
Métricas de avaliação 
Acurácia = 
𝑁𝑜
 
𝑑𝑒 𝑐𝑙𝑎𝑠𝑠𝑖𝑓𝑖𝑐𝑎çõ𝑒𝑠 𝑐𝑜𝑟𝑟𝑒𝑡𝑎𝑠
𝑁𝑜
 
𝑑𝑒 𝑐𝑙𝑎𝑠𝑠𝑖𝑓𝑖𝑐𝑎çõ𝑒𝑠
 
 
Taxa de verdadeiros positivos, taxa de verdadeiros 
negativos, taxa de falsos positivos, taxa de falsos negativos, 
precisão, revocação, especificidade, sensibilidade, F-
measure, índice de Jaccard, matriz de confusão, curva 
ROC...Classificação de Imagens 
Um classificador tem uma série de parâmetros e 
hiperparâmetros a otimizar 
 
Parâmetros 
Definidos automaticamente no treinamento (w, b...) 
Hiperparâmetros 
Definidos a priori (pelo usuário) 
(no de camadas, no de filtros por camada, dimensões dos 
filtros, funções de ativação, função de perdas...) 
 
 
 
 
 
 
 
 
 
 
 
 
Otimização de hiperparâmetros 
 
Baseada em conhecimento prévio 
Baseada em dados 
 
 
 
 
 
 
 
 
 
 
 
 
 
Otimização de hiperparâmetros 
 
Estratégia I – Baseada em dados de treinamento e teste 
1. Definem-se hiperparâmetros 
2. Definem-se parâmetros no treinamento 
3. Avalia-se o resultado em uma base de teste 
4. Repete-se até algum critério de parada 
Qual o resultado em dados nunca vistos? 
Não utilizar Estratégia I! 
 
 
 
 
 
 
 
 
 
 
 
 
 
Treinamento Teste 
Base disponível 
Otimização de hiperparâmetros 
 
 
Estratégia II – Baseada em dados de treinamento e validação 
1. Definem-se hiperparâmetros 
2. Definem-se parâmetros no treinamento 
3. Avalia-se o resultado em uma base de validação 
4. Repete-se até algum critério de parada 
 
Avalia-se o desempenho na base de testes 
 
 
 
 
 
 
 
 
 
 
 
 
 
Treinamento Validação Teste 
Base disponível 
Otimização de hiperparâmetros 
Validação cruzada 
(para bases pequenas) 
 
 
 
 
 
 
 
 
 
 
 
Teste 
Base disponível 
Teste 
Teste 
Teste 
Teste 
Otimização de hiperparâmetros 
Acurácia de validação 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Número de filtros por camada 
Número ótimo 
Otimização de hiperparâmetros 
Acurácia de validação 
 
 
 
 
 
Otimizar cada hiperparâmetro individualmente? 
Não! O problema é combinatório! 
 
 
 
 
 
 
 
 
 
 
 
Número de filtros por camada 
Número ótimo 
Função de Perdas 
 
 
 
 
 
 
 
 
 
 
 
Aquisição 
Pré-
processamento 
f(x, w) 
f1 fN 
Classe = argmax fi 
 i 
x 
f2 ∈ ℝ 
 
 
 
 
 
 
Função de perdas L 
Permite aferir a adequação da distribuição de escores 
Encontrar w que minimize L 
 
 
 
Função de Perdas 
Classe Escore 
1 Pessoa 3,7 0,5 -0,3 
2 Gato 3,9 1,1 0,1 
3 Carro -0.9 0,0 0,9 
4 Avião -1,0 -2,4 5,0 
5 Sapo 2,3 5,5 -2,3 
Função de Perdas 
 
Dado um conjunto de instâncias rotuladas {(xi, yi)}, i = 1, …N 
xi é uma imagem 
yi é um rótulo (inteiro) da classe verdadeira 
 
 
𝐿 =
1
𝑁
 𝐿𝑖(𝑓 𝑥𝑖, 𝒘 , 𝑦𝑖
𝑁
𝑖=1
) 
 
 
 
Função de Perdas 
Instâncias rotuladas {(xi, yi)}, i = 1, …N 
xi: imagem; yi: rótulo (inteiro) da classe verdadeira 
𝑠𝑦𝑖: escore atribuído à classe verdadeira pelo classificador 
𝑠𝑗: escore atribuído às demais classes pelo classificador 
 
Perda do SVM multiclasses: 
 
 𝐿𝑖 = 
0
𝑠𝑗 + 1 − 𝑠𝑦𝑖
𝑗≠𝑦𝑖
 
𝐿𝑖 = max (0, 𝑗≠𝑦𝑖 𝑠𝑗 + 1 − 𝑠𝑦𝑖) 
 
 
 
se 𝑠𝑦𝑖 ≥ 𝑠𝑗+1 
caso contrário 
Função de Perdas 
Perda do SVM multiclasses: 
 𝐿𝑖 = 
0
𝑠𝑗 + 1 − 𝑠𝑦𝑖
𝑗≠𝑦𝑖
 
𝐿𝑖 = max (0, 𝑗≠𝑦𝑖 𝑠𝑗 + 1 − 𝑠𝑦𝑖) 
 
 
 
se 𝑠𝑦𝑖 ≥ 𝑠𝑗+1 
caso contrário 
Perda para uma 
instância e uma 
classe 𝑗 ≠ 𝑦𝑖 
𝑠𝑦𝑖 
𝑠𝑗 𝑠𝑗+1 
Hinge loss 
(perda dobradiça) 
Função de Perdas 
Exemplo: 3 classes, 3 instâncias de treinamento 
 
 
 
 
 
𝐿𝑖 = max (0, 𝑗≠𝑦𝑖 𝑠𝑗 + 1 − 𝑠𝑦𝑖) 
 
 
 
 
 
 
 
Classe Escore 
1 Gato 3.2 1.3 2.2 
2 Carro 5.1 4.9 2.5 
3 Sapo -1.7 2.0 -3.1 
𝐿1 = max (0, 𝑗≠1 𝑠𝑗 + 1 − 3,2) 
𝐿1 = max 0, 5.1 + 1 − 3,2 + max 0,−1.7 + 1 − 3,2 = 2,9 + 0 = 2.9 
𝐿2 = max 0, 1.3 + 1 − 4,9 +max 0, 2.0 + 1 − 4,9 = 0 + 0 =0 
𝐿3 = max 0, 2.2 + 1 + 3,1 + max 0, 2.5 + 1 + 3,1 = 6,3 + 6,6 = 12.9 
L = (2.9+0+12.9)/3 = 5.27 
Função de Perdas 
 
Limites 
0 ≤ L < ∞ 
 
Variante 
𝐿𝑖 = [max (0, 𝑗≠𝑦𝑖 𝑠𝑗 + 1 − 𝑠𝑦𝑖)]
2 
 
 
 
 
 
Regularização 
Treinamento: encontrar w que minimize L 
 
Risco de superajuste (overfitting)! 
Regularização reduz o risco: 
𝐿𝑖 = max (0, 𝑗≠𝑦𝑖 𝑠𝑗 + 1 − 𝑠𝑦𝑖) + λR(w) 
Modelo deve ser simples para generalizar bem 
Regularização L2: 𝑅(𝒘) = 𝒘2 
Regularização L1: 𝑅(𝒘) = |𝒘| 
Dropout 
λ é mais um hiperparâmetro 
 
 
 
Dropout 
Em cada iteração, anula-se a saída de alguns neurônios 
Seleção aleatória, com probabilidade P 
P é mais um hiperparâmetro 
P = 0,5 é típico 
 
 
 
Dropout 
 
 
Teste 
 
Sem dropout 
Multiplicar cada ativação por P 
 
 
 
Função Softmax 
Regressão Logística Multinomial 
Escores ajustados e interpretados como probabilidades 
 
 
 
 
 
Classe Escore 
1 Gato 3.2 1.3 2.2 
2 Carro 5.1 4.9 2.5 
3 Sapo -1.7 2.0 -3.1 
Função softmax: 
𝑒𝑠𝑘
 𝑒
𝑠𝑗
𝑗
 
𝑃 𝑦 = 𝑘 𝑥 = 𝑥𝑖 =
𝑒𝑠𝑘
 𝑒𝑠𝑗𝑗
 
Para a imagem de treinamento x1
 (gato) 
𝑃 𝑦 = 𝑘 𝑥 = 𝑥1 =
𝑒𝑠𝑘
 𝑒𝑠𝑗𝑗
 
Função Softmax 
𝑃 𝑦 = 𝑘 𝑥 = 𝑥𝑖 =
𝑒𝑠𝑘
 𝑒𝑠𝑗𝑗
 
Para a imagem de treinamento x1
 (gato) 
 𝑒𝑠𝑗𝑗 = 𝑒
3.2 + 𝑒5.1 + 𝑒−1.7 = 24,5 + 164,0 + 0,18=188,7 
𝑃 𝑦 = 1 𝑥 = 𝑥1 =
24,5
188,7
= 0,13 
 
𝑃 𝑦 = 2 𝑥 = 𝑥1 =
164,0
188,7
= 0,87 
 
𝑃 𝑦 = 3 𝑥 = 𝑥1 =
0,18
188,7
= 0,00 
 
 
Classe Escore 
1 Gato 3.2 1.3 2.2 
2 Carro 5.1 4.9 2.5 
3 Sapo -1.7 2.0 -3.1 
Função Softmax 
𝑃 𝑦 = 𝑘 𝑥 = 𝑥𝑖 =
𝑒𝑠𝑘
 𝑒𝑠𝑗𝑗
 
Para a imagem de treinamento x1
 (gato) 
 𝑒𝑠𝑗𝑗 = 𝑒
3.2 + 𝑒5.1 + 𝑒−1.7 = 24,5 + 164,0 + 0,18=188,7 
𝑃 𝑦 = 1 𝑥 = 𝑥1 =
24,5
188,7
= 0,13 
 
𝑃 𝑦 = 2 𝑥 = 𝑥1 =
164,0
188,7
= 0,87 
 
𝑃 𝑦 = 3 𝑥 = 𝑥1 =
0,18
188,7
= 0,00 
 
 
Classe Escore 
1 Gato 0,13 
2 Carro 0,87 
3 Sapo 0,00 
Função de Perdas Softmax 
Classe Escore 
1 Gato 0,13 
2 Carro 0,87 
3 Sapo 0,00 
 
𝑃 𝑦 = 𝑘 𝑥 = 𝑥𝑖 =
𝑒𝑠𝑘
 𝑒𝑠𝑗𝑗
 
𝐿𝑖 = −𝑙𝑜𝑔
𝑒𝑠𝑦𝑖
 𝑒𝑠𝑗𝑗
 
 
 
 𝐿1 = −log (0,13) = 0,89 
 
 
 
Função de Perdas Softmax 
 
𝐿𝑖 = −𝑙𝑜𝑔
𝑒𝑠𝑦𝑖
 𝑒𝑠𝑗𝑗
 
? ≤ 𝐿𝑖 < ? 
0 ≤ 𝐿𝑖 < ∞ 
 
 
 
 
 
 
Otimização de parâmetros 
Procurar um ponto de perda mínima no espaço de 
parâmetros 
 
 
 
 
 
 
 
 
Otimização de parâmetros 
Estratégia 1: busca aleatória 
 
Testar conjuntos de parâmetros aleatórios, até encontrar um 
que minimize a perda 
O espaço pode ser enorme para que uma busca aleatória 
funcione! 
 
 
 
 
 
 
Otimização de parâmetros 
Estratégia 2: siga a declividade 
 
 
 
 
 
 
 
Otimização de parâmetros 
Estratégia 2: siga a declividade 
Declividade de uma função de uma variável em um ponto w 
𝑑𝑓(𝑤)
𝑑𝑤
= lim
ℎ→0
𝑓 𝑤 + ℎ − 𝑓(𝑤)
ℎ
 
Para f(w) = f(w1, w2, ...wn) 
dw = 
𝜕𝑓(𝑤1)
𝜕𝑤1
𝜕𝑓(𝑤2)
𝜕𝑤2⋯
𝜕𝑓(𝑤𝑛)𝜕𝑤𝑛
 
Otimização de parâmetros 
Estratégia 2: siga a declividade 
Vetor gradiente 
dw = 
𝜕𝑓(𝑤1)
𝜕𝑤1
𝜕𝑓(𝑤2)
𝜕𝑤2⋯
𝜕𝑓(𝑤𝑛)
𝜕𝑤𝑛
 
dw aponta na direção de máxima subida de f(w) 
-dw aponta na direção de máxima descida de f(w) 
 
Cálculo do gradiente 
Método simplista 
𝜕𝐿(𝑤1)
𝜕𝑤1
= lim
ℎ→0
𝐿 𝑤1 + ℎ − 𝐿(𝑤1)
ℎ
 
 
 
 
w atual wi+h dw 
0.34 
-1.11 
0.78 
0.12 
0.55 
... 
Perda= 1.25347 
Cálculo do gradiente 
Método simplista 
𝜕𝐿(𝑤1)
𝜕𝑤1
= lim
ℎ→0
𝐿 𝑤1 + ℎ − 𝐿(𝑤1)
ℎ
 
 
 
 
w atual w1+h dw 
0.34 0.34+0.0001 
-1.11 -1.11 
0.78 0.78 
0.12 0.12 
0.55 0.55 
... ... 
Perda= 1.25347 
1.25322 − 1.25347
0,0001
 
Perda= 1.25322 
-2.5 
Cálculo do gradiente 
Método simplista 
𝜕𝐿(𝑤1)
𝜕𝑤1
= lim
ℎ→0
𝐿 𝑤1 + ℎ − 𝐿(𝑤1)
ℎ
 
 
 
 
w atual w1+h dw 
0.34 0.34 -2.5 
-1.11 -1.11+0.0001 
0.78 0.78 
0.12 0.12 
0.55 0.55 
... ... 
Perda= 1.25347 
1.25353 − 1.25347
0,0001
 
Perda= 1.25353 
0.6 
Cálculo do gradiente 
 
Usar cálculo! 
 
𝐿 =
1
𝑁
 𝐿𝑖(𝑓 𝑥𝑖, 𝒘 , 𝑦𝑖
𝑁
𝑖=1 ) + λR(w) 
Calcular analiticamente 
𝛻𝒘𝐿 
 
Gradient descent 
Algoritmo simplista 
while (true) 
 dw = evaluate_grad(loss_function, train_data, w) 
 w = w - step_size*dw 
 
Step size ou learning rate (taxa de aprendizagem): 
hiperparâmetro 
(dos mais importantes!) 
 
 
Gradient descent 
while (true) 
 dw = evaluate_grad(loss_function, train_data, w) 
 w = w – 0.01*dw 
 
 
 
w atual novo w dw 
0.34 -2.5 
-1.11 0.6 
0.78 ... ... 
0.12 
0.55 
... 
Perda= 1.25347 
0.34 – 0.01 x -2.5 = 0.365 
-1.11 – 0.01 x 0.6 = -1,116 
Perda = 1.21257 
Gradient descent 
 
 
 
Gradient descent 
Decaimento de taxa de aprendizagem 
 
 
Learning Rate 
 
 
 
 
Learning Rate 
 
 
 
 
 
Iniciar com uma taxa alta (não muito alta) 
Decrescer a medida que o treinamento prossegue 
Decaimento em passos (step decay) 
Reduzir a taxa pela metade (por exemplo) a cada n épocas 
Decaimento exponencial 
Decaimento 1/t 
 
 
 
 
 
Learning Rate 
 
 
 
 
 
Exemplo: step decay na ResNet 
 
 
 
 
 
Gradient descent 
O que acontece com os gradientes nas regiões de 
saturação das funções de ativação sigmóide? 
 
 
 
 
 
 
 
Gradient descent 
 
dw = 0 
Pesos não serão mais atualizados 
Vanishing gradients 
Gradientes extintos 
Problema minimizado com ReLU e eliminado com Leaky 
ReLU 
 
 
Gradient descent 
 
Leaky ReLU ou PReLU 
Não satura 
Computacionalmente eficiente 
Converge mais rapidamente que sigmóides (6x) 
Não “morre” 
 
Gradient descent 
𝐿 =
1
𝑁
 𝐿𝑖(𝑓 𝑥𝑖, 𝒘 , 𝑦𝑖
𝑁
𝑖=1 ) + λR(w) 
𝛻𝒘𝐿 =
1
𝑁
 𝛻𝒘𝐿𝑖(𝑓 𝑥𝑖 , 𝒘 , 𝑦𝑖
𝑁
𝑖=1 ) + λ𝛻𝒘R(w) 
Custoso quando N é grande 
Aproximar a soma usando um minibatch de instâncias 
Tamanho típico do minibatch: 32, 64, 128, 256 
Stochastic Gradient Descent (SGD) 
 
Stochastic Gradient Descent (SGD) 
 
while (true) 
 minibatch = sample_train_data(train_data, 256) 
 dw = evaluate_grad(loss_function, minibatch, w) 
 w = w – step_size*dw 
 
Estratégias de atualização dos pesos 
 
Há estratégias diferentes para atualizar os pesos 
 
 
SGD+Momento 
 
 
 
 
Adam 
 
 
 
 
SGD + 1º Momento + 2º Momento + outras técnicas 
Normalização por lote 
 
Batch normalization 
x: imagem de entrada ou mapa de ativação 
𝜇𝑏 = média das imagens ou mapa no lote 
𝜎𝑏 = desvio padrão das imagens ou mapa no lote 
 
𝒙 =
𝒙 − 𝜇𝑏
𝜎𝑏
 
 
 
Inicialização dos Pesos 
Pesos muito pequenos 
Ativações tendem a zero: neurônios não aprendem 
 
Pesos muito grandes 
Sigmóides saturam: neurônios não aprendem 
 
Usar inicialização Xavier 
 
Data Augmentation 
Técnica para ampliar artificialmente a base de imagens 
 
Rebatimento (flip) horizontal 
 
 
 
Data Augmentation 
Técnica para ampliar artificialmente a base de imagens 
Recortes e alteração de escala aleatórios 
 
 
 
Data Augmentation – Exemplo Resnet 
Treinamento 
Escolha L em [256, 480] 
Redimensione imagem para que menor dimensão = L 
Selecione aleatoriamente recortes de 224 x 224 
Teste 
Redimensione imagem em 5 escalas (menor dimensão): 
{224, 256, 384, 480, 640} 
Para cada escala, use até 10 recortes 224x224: 
4 quinas, centro + flip de todas 
 
 
 
 
 
 
Data Augmentation 
Alterações de cores 
Por exemplo, contraste e brilho aleatórios 
 
 
 
 
 
 
Data Augmentation 
Outros 
Translação 
Rotação 
Cizalhamento 
Distorção ótica 
Foco 
Etc 
 
 
 
 
CNN LeNet-5 (1998) 
 
 
 
 
 
 
 
 
 
 
 
 
Conv-pool-conv-pool-conv-FC-FC 
 
 
 
 
 
 
 
 
6 filtros 
convolucionais 
5 x 5 x 1 
16 filtros 
convolucionais 
5 x 5 x 6 
120 filtros conv 5 x 5 x 16 
Mapas 1x1 
 
 
Entrada em níveis de cinza 
C1: 6 filtros 5x5, stride 1, no zero padding, tanh 
Pooling 2x2 
C2:16 filtros 5x5x6, stride 1, no zero padding, tanh 
Pooling 2x2 
 
 
 
CNN LeNet-5 (1998) 
 
 
CNN – AlexNet (2012) 
 
 
 
 
 
 
 
 
Conv1: 96 11x11 filtros, stride 4, no zero padding 
... (8 camadas) 
Treinada em GPUs GTX 580 com 3 GB de RAM 
Rede dividida entre duas GPUs 
Primeira CNN vencedora na ILSVRC 
 
 
 
227x
227 
CNN – AlexNet (2012) 
 
 
 
 
 
 
 
 
 
CNN – ZFNet (2013) 
 
Semelhante à AlexNet, mas... 
Conv1: filtros 7x7, stride 2 
Convs 3, 4, 5: 512, 1024 e 512 filtros, respectivamente 
 
Top 5 error rate 
Fração das imagens de teste para as quais o rótulo 
correto não está entre os cinco rótulos mais prováveis 
pela rede 
CNN – VGGNet (2014) 
 
 
 
 
 
 
 
 
 
 
CNN – VGGNet (2014) 
 
 
 
Por que filtros menores? 
 
conv3x3(conv3x3(conv3x3(I))) 
3x9 = 27 multiplicações no produto interno 
 
Mesmo campo receptivo de conv7x7 
49 multiplicações no produto interno 
 
CNN – GoogLeNet (2014) 
 
 
 
 
 
CNN – GoogLeNet (2014) 
 
 
 
 
 
Stem network 
conv-pool-conv-conv-pool 
CNN – GoogLeNet (2014) 
 
 
 
 
 
Classificações parciais para auxiliar no 
backpropagation 
CNN – GoogLeNet (2014) 
 
 
 
CNN – GoogLeNet (2014) 
 
 
 
Inception Module 
CNN – GoogLeNet (2014) 
 
 
 
 
22 camadas 
5 milhões de parâmetros 
12x menos que AlexNet 
Network within a network, microarquitetura 
6.7% top five error 
 
 
 
CNN – GoogLeNet (2014) 
 
 
 
 
 
CNN – GoogLeNet (2014) 
 
Parâmetros: 64x(1x1x64) + 192x(3x3x64) = 114688 = 112 K 
 
 
 
CNN – ResNet (2015) 
 
 
Residual Network 
 
 
 
152 Camadas na ILSVRC, 1202 no CIFAR 
 
 
 
 
 
 
 
 
3x3 conv 
3x3 conv 
CNN – ResNet (2015) 
 
 
 
 
64 convs 7x7, stride 2 
MaxPool 2x2 
Blocos residuais com 64 convs 3x3 
Bloco residual com 128 convs 3x3 stride 2 
Blocos residuais com 128 convs 3x3 
Bloco residual com 256 convs 3x3 stride 2 
Blocos residuais com 256 convs 3x3 
Bloco residual com 512 convs 3x3stride 2 e 512 convs 3x3 
Blocos residuais com 512 convs 3x3 
AvgPool e FC 1000 (apenas para os escores) 
 
 
 
 
 
 
 
 
 
 
CNN – ResNet (2015) 
 
 
 
 
Para 50+ camadas: 
Bottleneck layers, como GoogLeNet 
 
 
 
 
 
 
 
 
 
 
CNN – ResNet (2015) 
 
 
 
Batch normalization após cada camada conv 
Inicialização de pesos Xavier/2 
SGD+Momento (0.9) 
Learning rate = 0.1, /10 quando acurácia de 
validação estabiliza 
Tamanho de minibatch = 256 
Taxa de decaimento dos pesos = 10-5 
 
 
 
 
 
 
CNN – ResNet (2015) 
 
 
 
Com 152 camadas (ILSVRC 2015) 
2-3 semanas de treinamento em 8 GPUs 
 
Testes 
Mais rápida que a VGG, com 8x mais camada e 
Top 5 error = 3.57% (contra 6.7% da VGGNet) 
 
 
 
 
 
 
 
ILSVRC 
 
 
 
 
 
 
 
 
 
2016 
Ensamble of Inception, ResNet and Inception/ResNet 
Top 5 error = 2,991 (próximo ao nível de ruído) 
Sem Google, Microsoft, Baidu… 
 
ILSVRC 
2017 
SENet, erro de 2,25% 
Interligação de blocos "Squeeze-and-Excitation" (SE) com 
ResNeXt modificada 
 29 das 38 equipes com menos de 5% de erro 
ILSVRC 
 
 
Implementar a LeNet-5 com ReLU, minibatch = 32, 
batch normalization, inicialização de pesos de He, 
saída SoftMax 
Testar com MNIST 
http://yann.lecun.com/exdb/mnist/ 
 
 
Trabalho 2 
 
 
Matriz 2x4 de valores aleatórios de uma gaussiana de 
média 3 e variância 6.25, ou N(3, 6.25) 
sqrt(6.25) * np.random.randn(2, 4) + 3 
array([[-4.49401501, 4.00950034, -1.81814867, 7.29718677], 
[ 0.39924804, 4.68456316, 4.99394529, 4.84057254]]) 
 
Trabalho 2 
 
 
Inicialização de pesos de He 
Elementos de wl escolhidos de N(0, 2/𝑛l-1) 
𝑛 −1: número de neurônios da camada l-1 
 
 
 
Trabalho 2 
 
 
 
 
Em redes tradicionais: 
camada com N filtros Dk x Dk x M 
Volume de entrada Df x Df x M 
Stride 1, zero padding 
Custo da camada convolucional: 
Dk x Dk x M x N x Df x Df 
 
 
 
 
 
 
MobileNet 
Um filtro convolucional tradicional filtra e combina M 
canais em um único mapa de ativação 
 
Convolução fatorada, ou separável por profundidade 
(depthwise separable) 
M convoluções Dk x Dk x 1 (uma por canal)... 
... produzindo M canais filtrados, e 
N convoluções 1x1xM,... 
produzindo N mapas (combinações dos M canais) 
Custo: Dk x Dk x M x Df x Df + N x M x Df x Df 
 
 
 
 
 
 
 
 
MobileNet 
Exemplo: Dk = 3, Df = 112, M = 512, N = 256 
Custo de uma camada convolucional tradicional 
Dk x Dk x M x N x Df x Df = 3x3x512x256x112x112= 
= 14.797.504.512 
 
Custo de uma camada convolucional fatorada 
Dk x Dk x M x Df x Df + N x M x Df x Df 
 = 3x3x512x112x112+256x512x112x112= 
= 1.701.969.920 
100* 1.701.969.920 /14.797.504.512 = 11,5% 
 
 
 
 
 
 
 
 
 
 
 
 
MobileNet 
 
 
 
 
 
 
 
 
 
 
Temas de Pesquisa 
Aferição de qualidade em imagens de impressão digital 
Detecção de minúcias em imagens de impressão digital 
Análise de espectrogramas de voz 
Verificação de aderência ao padrão ICAO 
Detecção, contagem e reconhecimento de pessoas 
Detecção e reconhecimento de placas de automóveis 
 
Detecção e reconhecimento de sinalização de trânsito 
Determinação de vivacidade 
Realce de Imagens 
Classificação de idade e gênero de pessoas 
Rastreamento do olhar 
Detecção, contagem e reconhecimento de veículos 
Detecção de olhos e de íris 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
MobileNet 
Filtros da primeira camada 
Visualização 
Ajustar minimamente a imagem de entrada de forma a 
“enganar” a rede 
 
 
Redes Adversárias 
Avestruz + 
Caminhão 
 
Ajustar (por backpropagation) os pixels da imagem 
de entrada, até obter a saída desejada, com a 
confiança que se deseja 
 
 
Redes Adversárias 
Deep learning has deep flaws! 
 
 
Redes Adversárias 
Deep learning has deep flaws! 
 
 
Redes Adversárias 
Deep learning has deep flaws! 
 
 
Redes Adversárias 
Shallow NN has deep flaws! 
Transformando um nove em 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9 
 
 
Redes Adversárias 
 
 
Qualquer modelo linear tem falhas profundas! 
SVM etc 
 
Redes profundas são “muito lineares” por partes 
 
 
Redes Adversárias 
Solução: treinar com exemplos adversários 
Jogo de dois jogadores 
 
 
 
 
 
 
 
 
Instabilidade 
 
 
 
 
 
 
 
 
Redes Adversárias 
Redes Adversárias

Outros materiais