Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

Deep Learning 
Deep Learning 
• Caracaterísticas: 
– Problema com dados são de difícil 
compreensão/visualização humana 
– Representação dos dados em diferentes níveis de 
abstração 
– Realiza extração de características 
– Possui grande quantidade de parâmetros 
– Exige enorme número de exemplos para o 
aprendizado 
– Aplicação na área de Visão Computacional 
(processamento de áudio, imagens, vídeo, etc) e 
muitas outras 
DEEP LEARNING (DL) 
• DL se destacaram em tarefas difíceis de serem realizadas 
por maquinas, devido a sua subjetividade inerente, como 
por exemplo reconhecimento de imagens e de fala. 
– Dentre as técnicas incluídas em Deep Leraning destaca-se: 
• Deep MLP, Deep Boltzmann Machine, Deep Belief Networks, Autoencoders, 
Recursive Neural Networks, Convolutional Neural Netorks 
 
• Deep Laerning: 
– muitas imagens e máquinas para processamento 
AlexNet (2012) 
– competição ImageNet 
 
Diferença entre ML e DL 
• ML: busca uma única função 
– 𝑓 𝑥 = 𝑦 
• DL: busca por composição de funções e separa as 
múltimplas características do dado original 
– 𝑓 𝑥 = 𝑓𝐿(𝑓𝐿−1(…𝑓2 𝑓1 𝑥𝑙 )) 
onde 𝑥𝑙 é o vetor de entrada construído para a camada l e 
produzindo o próximo vetor xl+1 
Como cada transformação usa seu próprio conjunto de 
parâmetros: 
– 𝑓 𝑥 = 𝑓𝐿(𝑓𝐿−1(…𝑓2 𝑓1 𝑥𝑙 ,𝑊1 ,𝑊2),𝑊𝐿−1),𝑊𝐿 
– L camadas e f funções 
 
MLP 1 camada 
... 
0 
1 
2 
3 
4 
5 
6 
7 
8 
9 
 
 Entrada X Neurônios 
 de Saída 
X=matriz com 64 imagens, cada uma com 
784 posições – cada pixel de imagem 
28 x 28, por exemplo 
X = [ 64 x 784 ] 
W = [ 784 x 10 ] 
Y = [ 64 x 10 ] 
Y = softmax(X·W+b) 
x.w0+b 
x.w1+b 
x.w2+b 
x.w3+b 
x.w4+b 
x.w5+b 
x.w6+b 
x.w7+b 
x.w8+b 
x.w9+b 
 
MLP 1 camada 
... 
0 
1 
2 
3 
4 
5 
6 
7 
8 
9 
 
 Entrada X Neurônios 
 de Saída X=vetor 784 posições 
– cada pixel de 
imagem 28 x 28, 
por exemplo 
MLP 
X. W+ b 
x.w0+b 
x.w1+b 
x.w2+b 
x.w3+b 
x.w4+b 
x.w5+b 
x.w6+b 
x.w7+b 
x.w8+b 
x.w9+b 
 
• Para que W seja ajustado é necessário computar o erro 
 
 
MLP 1 camada 
𝜀 = 0,0001 𝑒𝑣𝑖𝑡𝑎𝑛𝑑𝑜 log (0) 
𝐸𝑏 =
1
𝑁
 𝐸(𝑦𝑖 , 𝑦 𝑖
𝑁
𝑖=1
) =
1
𝑁
 𝐸(𝑦𝑖 , 𝑓(𝑥𝑖; 𝑊, 𝑏)
𝑁
𝑖=1
) 
 
MLP 3 camadas 
 Entrada X NH1 NH2 N Saída 
... 
0 
1 
2 
3 
4 
5 
6 
7 
8 
9 
 
x.w0+b 
x.w1+b 
x.w2+b 
x.w3+b 
x.w4+b 
x.w5+b 
x.w6+b 
x.w7+b 
x.w8+b 
x.w9+b 
 
... ... 
𝑦 = 𝑓 𝑥 = 𝑓3(𝑓2 𝑓1 𝑥𝑙 ,𝑊1 ,𝑊2),𝑊3 
𝑊1=[ 784×64] 
𝑊2 = [64×32] 
𝑊3 = [32×10] 
𝑓1 𝑥𝑙 = 𝑥2 
𝑓2 𝑥2 = 𝑥3 
𝑓3 𝑥3 = 𝑦 
 
𝑓1 = 𝑠 𝑥𝑙𝑤1,𝑗 + 𝑏1 
𝑓2 = 𝑠 𝑥2𝑤2𝑗 + 𝑏2 
𝑓3 = 𝑠𝑜𝑓𝑡𝑚𝑎𝑥 𝑥3𝑤1,𝑗 + 𝑏1 
s(.) 
64 32 
MLP 3 camadas 
 
 
• ao vetorizar as imagens está se desprezando 
toda a estrutura espacial que permite 
entender a relação entre os pixels vizinhos em 
uma determinada imagem 
• MNIST: 
– MLP 1 camada: acurácias  91% 
– MLP 3 camadas: acurácias  97% 
MLP 3 camadas 
Funções de Ativação 
• A derivada da ReLU, seu gradiente terá sempre uma direção 
não-nula, enquanto no caso das sigmoidais, para valores 
longe da origem podemos ter gradiente nulo. 
• A função ReLU possui relações com a restrição de não-
negatividade presente em regularização como em restauração 
de imagens. 
• A ReLU paramétrica (PReLU) é uma variação que permite 
valores negativos com menor ponderação, parametrizado por 
uma variável 0 < a < 1 
• Uma das possíveis vantagens da PReLU é a possibilidade de 
aprender “a” durante a fase de treinamento 
MLP 3 camadas 
Taxa de aprendizado 
• Com decaimento : 
– é comum definir a taxa de aprendizado com decaimento. 
Iniciar com um valor mais alto, e definir uma função de 
decaimento exponencial como exp−k/d, em que k é a 
iteração atual e d a taxa de decaimento (quanto maior d, 
mais lento o decaimento). 
0
0,2
0,4
0,6
0,8
1
1,2
1 8
1
5
2
2
2
9
3
6
4
3
5
0
5
7
6
4
7
1
7
8
8
5
9
2
9
9
1
0
6
1
1
3
1
2
0
1
2
7
d=0,1
d=1
d=10
d=100
Redes Convolucionais (CNNs) 
• Camadas convolucionais processa as entradas 
considerando campos receptivos locais. 
• A principal aplicação das CNNs é para o 
processamento de informações visuais, em 
particular imagens, pois a convolução permite 
filtrar as imagens considerando sua estrutura 
bidimensional (espacial). 
– Redes Residuais (ResNet) 
– Inception 
– GANs 
– CapsNet 
Redes Convolucionais (CNNs): 
camadas 
• Uma rede neural convolutiva principalmente contem em três tipos 
de camadas: 
– Camada Convolutiva 
– Camada de Amostragem/Pooling 
– Camada Totalmente Conectada(Fully Connected) 
• As camadas convolutivas e de amostragem são as primeiras 
camadas da rede e são intercaladas. 
• Estas duas camadas extraem as principais características da imagem 
Redes Convolucionais (CNNs): 
camadas 
• As camadas convolucionais são : 
– responsáveis por extrair características dos volumes de entradas. 
• As camadas de pooling são: 
– responsáveis por reduzir a dimensionalidade do volume resultante 
após as camadas convolucionais e ajudam a tornar a representação 
invariante a pequenas translações na entrada. 
• As camadas totalmente conectadas são: 
– responsáveis pela propagação do sinal por meio da multiplicação 
ponto a ponto e o uso de uma função de ativação. 
• A saída da CNN é a probabilidade da imagem de entrada 
pertencer a uma das classes para qual a rede foi treinada. 
Redes Convolucionais (CNNs): 
camadas 
Imagem 
de entrada 
Camada 
Convolucional 
Camada 
Convolucional 
Camada 
Amostragem 
Camada 
Amostragem 
Camada 
Totalmente 
Conectada 
Camada 
de Saída 
Redes Convolucionais (CNNs) 
• Camada Convolucionais (CNNs): 
– A convolução aproveita três ideias importantes que 
podem ajudar a melhorar um sistema de 
aprendizado de máquina: 
• interações esparsas, 
• compartilhamento de parâmetros e 
• representações equivariantes 
Camada Convolucionais (CNNs): 
Interações Esparsas 
• A arquitetura garante que os "filtros" aprendidos produzam a 
resposta mais forte a um padrão de entrada espacialmente 
local. 
 a unidade na camada oculta j + 2 pode 
codificar um recurso não linear de largura 5 
j 
 j + 1 
j + 2 
as unidades na camada j + 1 têm campos 
receptivos de largura 3 na “camada de 
entrada” e, portanto, são conectados apenas a 
3 neurônios adjacentes na “camada de 
entrada” 
 o empilhamento de muitas dessas camadas 
leva a “filtros” (não lineares) que se tornam 
cada vez mais “globais” (ou seja, respondem a 
uma região maior do espaço de pixels) 
Camada Convolucionais (CNNs): 
Compartilhamento de Parâmetros 
 
O compartilhamento de parâmetro usado pela 
operação de convenção significa que, em vez de 
aprender um conjunto separado de parâmetros para 
cada local, aprende-se apenas um conjunto. 
j 
 j + 1 Além disso, o compartilhamento de peso aumenta a 
eficiência do aprendizado, reduzindo bastante o número 
de parâmetros livres sendo aprendido. 
As restrições no modelo permitem que as CNNs alcancem 
uma melhor generalização em problemas de visão. 
O gradiente de um peso compartilhado é simplesmente a 
soma do gradientes dos parâmetros que estão sendo 
compartilhados. 
Replicar as unidadesdessa maneira permite que as 
características sejam detectadas, independentemente de 
sua posição no campo visual. 
Camada Convolucionais (CNNs): 
Equivariância 
• g(I(x, y)) ∗ W = I’ (x, y) ∗ W = g(I(x, y) ∗ W) 
O compartilhamento de parâmetros faz com que a camada tenha uma 
propriedade chamada equivariância. 
Dizer que uma função é equivariante significa que, se a entrada muda, a saída 
muda da mesma maneira 
Camada Convolucionais (CNNs) 
• Uma camada de convolução é composta de três 
estágios de processamento 
– primeiro passo: a camada realiza diversas operações 
lineares de convolução sobre a entrada. 
– para produzir relações não-lineares, o resultado dessa 
operação é utilizado como parâmetro de uma função 
de ativação não-linear. 
– O último estágio geralmente contem uma operação 
de pooling (amostragem) utilizado para modificar a 
estrutura da saída – realizando, por exemplo, uma 
subamostragem. 
Camada Convolucionais (CNNs): 
Filtros/Kernels 
• Cada camada de convolução possui um conjunto de 
parâmetros, chamados Kernels. 
• Cada neurônio da saída de uma camada de convolução 
𝑛𝑖
𝑘está associado a uma região da imagem de entrada xi e a 
um Kernel k 
• O valor no neurônio de saída é uma função do produto 
interno entre um dos Kernels Wk e essa região da entrada xi , 
ou seja 𝑛𝑖
𝑘 
• 𝑛𝑖
𝑘 = f ( Wk x xi ). 
• O conjunto de saídas nk associadas a um Kernel Wk é o 
Feature Map k. 
Camada Convolucionais (CNNs): 
Filtros/Kernels 
• Os Kernels são parâmetros ajustáveis do modelo, eles devem aprendera 
modelar relações entre pixels vizinhos, independente da posição em que 
esses pixels se encontram na imagem. 
• Cada filtro (kernel) dessa camada irá processar a imagem e produzir uma 
transformação dessa imagem por meio de uma combinação linear dos 
pixels vizinhos. 
 
 
se k = 3 filtros 3×3×3 45pesos 
O somatório do produto ponto a 
ponto entre os valores de um filtro e 
cada posição do volume de entrada é 
uma operação conhecida como 
convolução. 
Os valores resultantes após a operação 
de convolução passam por uma função de ativação ReLU 
f (x) = max(0;x): 
Camada Convolucionais (CNNs): 
Filtros/Kernels 
• Para X = [ a x l ] e Kernel = W = [s x s ] 
– Feature Map do kernel será: (l-s+1) x (a-s+1) valores de saída. 
• A camada de convolução funciona como uma extratora de 
features especializada em imagens. 
• Cada Kernel possui o mesmo número de canais que a imagem 
de entrada e a operação de convolução é bidimensional. 
• Seja uma imagem X com dimensões [ c x l x a ] , onde c e o 
número de canais. 
• Uma camada de convolução com m kernels (s x s) definiria 
um conjunto de parâmetros {W1, W2 , ... , Wm}, e cada W teria 
[c x s x s]. 
Camada Convolucionais (CNNs): 
Filtros/Kernels 
• uma saída f(i, j) do Feature Map k 
𝑓𝑘(𝑖,𝑗) = 𝜎( 𝑊(𝑖𝑘𝑙,𝑖𝑘𝑎)
𝑘,𝑖𝑐
𝑠
𝑖𝑘𝑎
𝑥 𝑋(𝑖+𝑖𝑘𝑎,𝑗+𝑖𝑘𝑙)
𝑖𝑐
𝑠
𝑖𝑘𝑙=0
𝑐
𝑖𝑐=1
 
Onde: 
k:é o Kernel 
ic: é o índice do canal, 
ikl e ika : índices da largura e altura do Kernel 
i e j: são os índices do Feature Map e 
 : é a função de ativação 
c: número de canais 
s: largura e altura do Kernel 
 
Camada Convolucionais (CNNs): 
Filtros/Kernels e Feature Maps 
• 4 filtros na 1ª camada 
• 5 filtros na 2ª camada 
 
Camada Convolucionais (CNNs): 
Hiperparâmetros da Camada de Convolução 
• São três hiperparâmetros definem a 
característica de estrutura espacial presente 
na camada convolutiva: 
– Depth (profundidade) 
– Stride (passo) 
– Zero-padding (preenchimento com zero) 
 
Camada Convolucionais (CNNs): 
Hiperparâmetros da Camada de Convolução 
• Depth: 
– o número de filtros (m) em uma camada convolutiva 
– Cada um desses filtros será responsável por extrair características 
diferentes no volume de entrada. 
– quanto maior o número de filtros maior o número de características 
extraídas, porém maior a complexidade computacional (memória e 
tempo de processamento) 
Nesse exemplo tem-se 
4 e 5 filtros nas camadas 
Convolutivas. 
Camada Convolucionais (CNNs): 
Hiperparâmetros da Camada de Convolução 
• Stride: 
– O parâmetro passo especifica o tamanho 
do salto na operação de convolução. 
– Quando o passo é igual a 1, o filtro salta 
uma posição por vez, para o passo é igual a 
2, o filtro salta duas posições por vez, e 
quanto maior o valor do passo menor será 
a altura e largura do volume resultante, 
porém características importantes podem 
ser perdidas. 
– Por esse motivo, é incomum se utilizar o 
valor de salto maior que 2 
Camada Convolucionais (CNNs): 
Hiperparâmetros da Camada de Convolução 
• Zero-padding 
– consiste em preencher com zeros a borda do volume de 
entrada. 
– tem por objetivo controlar a altura e largura do volume 
resultante e fazer com que eles fiquem com os mesmos 
valores do volume de entrada 
volume resultante de uma camada convolucional, onde: 
A e L: é a altura e largura do volume de entrada 
F: é o tamanho dos filtros utilizados, 
S: é o valor do passo, e 
P: é o valor do zero-padding 
Camada Convolucionais (CNNs): 
parâmetros 
• k=qq, i=qq, s=1, p=0 
• o=(i-k)+1 
• Feature maps 
– Ex: i=4,k=3,s=1,p=0 
entradas quadradas (i_1 = i_2 = i), 
tamanho do kernel quadrado (k_1 = k_2 = k), 
mesmo passo ao longo dos dois eixos (s_1 = s_2 = s), 
mesmo preenchimento com zero ao longo de ambos 
os eixos (p_1 = p_2 = p). 
Camada Convolucionais (CNNs): 
parâmetros 
• k=qq, i=qq, s=1, p=qq≠0 
– o=(i-k)+2p+1 
– Ex: i=5,k=4,s=1,p=2 
 
entradas quadradas (i_1 = i_2 = i), 
tamanho do kernel quadrado (k_1 = k_2 = k), 
mesmo passo ao longo dos dois eixos (s_1 = s_2 = s), 
mesmo preenchimento com zero ao longo de ambos 
os eixos (p_1 = p_2 = p). 
Camada Convolucionais (CNNs): 
parâmetros 
• Ter o tamanho da saída igual ao tamanho da 
entrada (o = i) pode ser uma propriedade 
desejável: 
– i =qq; k= (2n+1) , s=1, p=n 
– o=i-k+2p+1 
ímpar 
entradas quadradas (i_1 = i_2 = i), 
tamanho do kernel quadrado (k_1 = k_2 = k), 
mesmo passo ao longo dos dois eixos (s_1 = s_2 = s), 
mesmo preenchimento com zero ao longo de ambos 
os eixos (p_1 = p_2 = p). 
Camada Convolucionais (CNNs): 
parâmetros 
• Aumentar o feature map em relação a 
imagem: 
– i=qq, k=qq, p=k-1,s=1 
– Ex: i=5, k=3, p=2, s=1 
entradas quadradas (i_1 = i_2 = i), 
tamanho do kernel quadrado (k_1 = k_2 = k), 
mesmo passo ao longo dos dois eixos (s_1 = s_2 = s), 
mesmo preenchimento com zero ao longo de ambos 
os eixos (p_1 = p_2 = p). 
Redes Convolucionais (CNNs): 
camadas 
• Uma rede neural convolutiva principalmente 
contem em três tipos de camadas: 
– Camada Convolutiva 
– Camada de Amostragem/Pooling 
– Camada Full Connected 
 
• As camadas convolutivas e de amostragem são as primeiras 
camadas da rede e são intercaladas. 
• Estas duas camadas extraem as principais características da 
imagem 
Redes Convolucionais (CNNs): Pooling 
• Camada de Amostragem ou Pooling 
– operações responsáveis por reduzir a 
dimensionalidade espacial das representações 
• Após uma camada convolucional, geralmente existe uma camada 
de pooling. 
• O objetivo dessa camada é reduzir progressivamente a dimensão 
espacial do volume de entrada, consequentemente a redução 
diminui o custo computacional da rede e evita overfitting (diminuir 
a sensibilidade da rede com relação a pequenas alterações na 
imagem). 
• Ela consegue esse feito combinando as diferentes features de uma 
região em uma única feature. Isso diminui a redundância da rede. 
• Também proporciona invariância posicional e translacional na 
detecção de objetos 
 
RedesConvolucionais (CNNs): Pooling 
• Na operação de pooling, os valores pertencentes a uma 
determinada região do mapa de atributos, gerados pelas camadas 
convolucionais, são substituídos por alguma métrica dessa região. 
• A forma de pooling mais usada atualmente nos principais trabalhos 
de reconhecimento de objetos e o max-pooling. 
 
 
 
 
 
• Outras funções de pooling comumente usadas são a média, a 
norma L2 e a média ponderada baseada na distância partindo do 
pixel central 
F =2 
Stride =2 
Redes Convolucionais (CNNs): Pooling 
• Norma L1: 
– ||v||1 = |a1| + |a2| + |a3| 
• Norma L2: 
– ||v||2 = sqrt(a1^2 + a2^2 + a3^2) 
• Max Norm 
– maxnorm(v) = max(|a1|, |a2|, |a3|) 
Redes Convolucionais (CNNs): Pooling 
• A altura (AP) e a largura (LP) do volume resultante após a 
operação de pooling 
 
 
 
 
 
 
• A e L: são altura e largura do volume de entrada, 
• F: tamanho da janela utilizada 
• S: valor do passo. 
Redes Convolucionais (CNNs): Pooling 
• Overlapping Pooling 
– semelhante a camada de convolução, usa-se regiões 
que se sobrepõem ajuda a regularizar a rede 
– Esse tipo de camada de pooling tem dois parâmetros, 
o tamanho da região que se faz o pooling e o 
deslocamento (stride) que determina onde deve ser a 
proxima região a ser sub-amostrada na entrada. 
– Em uma camada de pooling convencional o 
deslocamento e igual ao tamanho 
Redes Convolucionais (CNNs): 
camadas 
• Uma rede neural convolutiva principalmente 
contem em três tipos de camadas: 
– Camada Convolutiva 
– Camada de Amostragem/Pooling 
– Camada Totalmente Conectada(Full Connected) 
 
• As camadas convolutivas e de amostragem são as primeiras 
camadas da rede e vão sendo intercaladas. 
• Estas duas camadas extraem as principais características da 
imagem 
Redes Convolucionais (CNNs): 
Fully Connected 
• Significa que todos os neurônios da camada anterior estão 
conectados a todos os neurônios da camada seguinte. 
• O objetivo das camadas totalmente conectadas é utilizar essas 
características para classificar a imagem em uma classe pré-
determinada. 
• As camadas totalmente conectadas são exatamente iguais a 
uma rede neural artificial convencional (Multi Layer 
Perceptron ou MLP) e usa a função de ativação softmax na 
última camada (de saída). 
Camada Totalmente Conectada 
• A transição entre uma camada convolucional (que produz um 
tensor) e uma camada FC, exige que o tensor seja vetorizado. 
• Se a camada convolucional antes de uma camada FC gera um 
tensor 5×5×50, redimensiona-se esses dados de forma que 
ele possua tamanho 1×(5×5×50) = 1×1050. 
• Assim, cada neurônio na camada FC deverá possuir 1050 
pesos de forma a produzir uma combinação linear do vetor 
• Em arquiteturas mais recentes utiliza-se FC com função de 
ativação ReLU, e a camada de saída com função de ativação 
softmax 
Redes Convolucionais (CNNs): 
Dropout 
• Técnica bastante utilizada entre as camadas totalmente 
conectadas para reduzir o tempo de treinamento e 
evitar overfitting. 
• Remove, aleatoriamente a cada iteração de 
treinamento, uma determinada porcentagem dos 
neurônios de uma camada, readicionando-os na 
iteração seguinte. 
• Essa técnica também confere à rede a habilidade de 
aprender atributos mais robustos, uma vez que um 
neurônio não pode depender da presença específica de 
outros neurônios 
• Funciona como se fosse um ensemble 
Resumo das Camadas 
• Convolucional : definem os filtros 
(Aprendizado / BackPropagation) 
– Ativação: Neurônios (Relu / Sigmoid / Tanh) 
• Pooling : reduzem as escalas (Max, Median, 
etc..) 
• Fully-Connected (FC): camada que determina 
as classes (Classificador) 
– Dropout (20%) 
 
Função de Ativação: 
ReLu 
• Com exceção do ponto 0 é derivavel. 
• A derivada dessa função é 1 para quando x e diferente de 0, 
ou 0 caso contrario. 
• d(ReLU) = 1, x > 0 
• d(ReLU) = 0 , x  0 
• Isso simplifica o algoritmo do backpropagation e diminui o 
numero de cálculos necessários por conexão. 
Inicialização Pesos 
• ReLu: 
– 𝑊𝑙 = 𝐷𝑖𝑠𝑡𝑟. 𝑁𝑜𝑟𝑚𝑎𝑙 𝑠𝑖𝑧𝑒𝑙 , 𝑠𝑖𝑧𝑒𝑙−1 ∗
2
𝑠𝑖𝑧𝑒𝑙−1
 
• tanh (): 
– Inicialização Xavier: 
– 𝑊𝑙 = 𝐷𝑖𝑠𝑡𝑟. 𝑁𝑜𝑟𝑚𝑎𝑙 𝑠𝑖𝑧𝑒𝑙 , 𝑠𝑖𝑧𝑒𝑙−1 ∗
1
𝑠𝑖𝑧𝑒𝑙−1
 
• Ou: pesos nem muito maiores que 1, nem muito 
menores que 1. 
– 𝑊𝑙 = 𝐷𝑖𝑠𝑡𝑟. 𝑁𝑜𝑟𝑚𝑎𝑙 𝑠𝑖𝑧𝑒𝑙 , 𝑠𝑖𝑧𝑒𝑙−1 ∗
2
𝑠𝑖𝑧𝑒𝑙+𝑠𝑖𝑧𝑒𝑙−1
 
Treinamento / Teste 
• Parâmetros a serem definidos: 
– número de camadas convolucionais C : 
• para cada camada: o número de filtros, seu tamanho e 
o tamanho do passo dado durante a convolução e 
padding. 
– número de camadas de pooling P: 
• tamanho da janela e do passo que definirão o fator de 
subamostragem 
– o número de camadas totalmente conectadas F: 
• número de neurônios contidos em cada das camadas. 
Treinamento / Teste 
• Passo 1: Todos os filtros e pesos da rede são inicializados com 
valores aleatórios; 
• Passo 2: A rede recebe uma imagem de treino como entrada e 
realiza o processo de propagação (convoluções, ReLU e pooling, e 
processo de propagação nas camadas totalmente conectadas). 
Após esse processo a rede obtém um valor de probabilidade para 
cada classe. 
• Passo 3: É calculado o erro total obtido na camada de saída 
(somatório do erro de todas as imagens): 
 Erro total = 
1
2
 𝑝𝑟𝑜𝑏 𝑟𝑒𝑎𝑙 − 𝑝𝑟𝑜𝑏 𝑜𝑏𝑡𝑖𝑑𝑎 2 
• Passo 4: O algoritmo Backpropagation é utilizado para calcular os 
valores dos gradientes do erro. 
• Passo 5: Repete os passos 2-4 para todas as imagens do conjunto de 
treinamento 
Treinamento / Teste 
• Critério de Parada: 
– a média do erro obtido pela rede durante a época 
atual seja menor que um liminar 
– um número máximo de épocas seja atingido 
– Early stopping 
DL: Exemplo de Arquitetura 
• Entrada: imagens RGB com dimensão 64× 64×3 
• Saída: 5 classes. 
• Essa arquitetura será composta por 3 camadas convolucionais, 
2 max pooling, e 2 camadas totalmente conectadas 
– Conv.L 1: 10 filtros 5×5×3 saída: tensor [64×64×10] 
– Max pooling 1: subamostragem com fator 4 (janela de tamanho 2×2 e 
stride 2) saída: tensor [16×16×10] 
– Conv.L2: 20 filtros 3×3×10 saída: tensor [16×16×20] 
– Conv.L3: 40 filtros 1×1×20 saída: tensor [16×16×40] 
– Max pooling 2: subamostragem com fator 4 (janela de tamanho 2×2 e 
stride 2) saída: tensor [4×4×40] 
– FC.L1: 32 neurônios saída: 32 valores 
– FC.L2 (saída da rede): 5 neurônios (um por classe) saída: 5 valores 
DL: Exemplo de Arquitetura 
• cada um dos filtros das três camadas convolucionais tem p× 
q×d parâmetros, além do bias, e que as camadas totalmente 
conectadas possuem pesos e o termo bias associado com 
cada valor do vetor recebido da camada anterior 
DL: Exemplo de Arquitetura – 
AlexNet (2012) 
• AlexNet [Krizhevsky et al. 2012] 
– Consiste numa versão mais profunda da LeNet: 
• 5 camadas convolucionais, camadas de max-pooling e 
• 3 camadas totalmente conectadas com dropout 
• A AlexNet foi utilizada para classificar imagens em 1000 
possíveis categorias. 
• Ganhou o desafio de classificação ILSVRC 2012 (ImageNet 
Large Scale Visual Recognition Challenge) 
DL: Exemplo de Arquitetura – 
ZFNet (2013) 
• A arquitetura da rede ZFNet : 
– modificações da AlexNet e diminuição do tamanho dos filtros e do 
passo na primeira camada. 
• A maior contribuição de Zeiler e Fergus foi o detalhamento do 
modelo proposto e o desenvolvimento da técnica DeConvNet 
(Deconvolutional Network), que consistia numa forma de 
visualização dos mapas de características da rede; 
• DeConvNet realiza operaçõesreversas de pooling até que o 
tamanho original da imagem seja atingido. 
• Por meio dessa operação, é possível verificar como cada 
camada convolucional “enxerga” a imagem de entrada e quais 
as regiões da imagem que estão ativando os filtros 
Transposta da Convolução 
É sempre possível implementar uma convolução transposta com uma convolução 
direta. 
A desvantagem é que geralmente envolve a adição de muitas colunas e linhas de 
zeros à entrada, resultando em uma implementação muito menos eficiente. 
 Para manter o mesmo padrão de conectividade na convolução equivalente, é 
necessário zerar a entrada de forma que a primeira aplicação (superior esquerda) 
do kernel toque apenas no pixel superior esquerdo, ou seja, o preenchimento 
deve ser igual para o tamanho do kernel menos um. 
 
convolução Transposta da convolução 
DL: Exemplo de Arquitetura – 
VGG (2014) 
• A primeira a utilizar filtros pequenos (3x3) em cada camada 
convolucional, contrariando LeNet e da AlexNet, com filtros 
grandes (9x9 e 11x11) 
• Múltiplas convoluções 3x3 em sequência podiam substituir 
efeitos de filtros de máscaras maiores (5x5 e 7x7), e que 
resultavam em maior custo computacional: 
– 13 camadas convolucionais, 5 de max-pooling e 3 totalmente 
conectadas 
DL: Exemplo de Arquitetura – 
GoogLeNet e Inception (2014) 
• Essa rede ganhou o ILSVRC 2014 
• blocos de camadas eram executados em paralelo - Inception 
Inception: combinações paralelas de camadas com 
filtros convolucionais de tamanho 1x1, 3x3 e 5x5. 
A grande vantagem do módulo Inception era o uso da 
convolução com filtros 1x1 para reduzir o número de 
características no bloco paralelo, antes de realizar as 
convoluções com os filtros maiores. 
As camadas das CNNs não 
precisavam ser executadas 
sequencialmente 
DL: Exemplo de Arquitetura – 
Microsoft e ResNet (2015) 
• Venceu o ILSVRC 2015 (desempenho dessa rede foi superior ao de 
seres humanos) 
• A ResNet era composta por 152 camadas e formada por blocos 
residuais (Residual Blocks). 
– uma entrada x passa por uma série de operações de convolução-relu-
convolução. 
– O resultado da operação F(x) é adicionado à entrada original x 
DL: Exemplo de Arquitetura – 
Generative adversarial networks (GANs) 
• São arquiteturas de redes neurais profundas compostas de 
duas redes, colocando se uma contra a outra (adversarial). 
• O potencial das GANs é aprendem a imitar qualquer 
distribuição de dados. 
• Algorimos Generativos  Algorimos Discriminativos 
– Discriminativos : prever um rótulo com determinados recursos 
– Generativos: prever recursos com um determinado rótulo. 
 
Modelos discriminativos aprendem o limite entre as classes 
Modelos gerativos modelam a distribuição de classes individuais 
 
DL: Exemplo de Arquitetura – 
Generative adversarial networks (GANs) 
• Uma rede geradora, gera novas instâncias de dados, enquanto a 
outra, o discriminadora, avalia sua autenticidade; 
• O discriminador decide se cada instância de dados que avalia 
pertence ao conjunto de dados de treino real ou não. 
– O gerador recebe números aleatórios e retorna uma imagem. 
– Essa imagem gerada é alimenta o discriminador em conjunto com um 
fluxo de imagens tiradas do conjunto de dados real. 
– O discriminador aceita imagens reais e falsas e retorna probabilidades, 
um número entre 0 e 1, com 1 = autenticidade e 0 = falso. 
CNN como Extrator de Características 
• Utilizar uma CNN já treinada como extrator de 
características, basta remover a última 
camada totalmente conectada da rede. 
– Utilizando com um classificador que requeira 
menos dados para o treinamento que uma CNN: 
SVM, RandomForest, KNN 
DL: Exemplo de Arquitetura – 
AS REDES ENCAPSULADAS/CAPSNET 
• Problemas causados pelo pooling, gera mais invariância do 
que o desejado, quando o que se desejava era a 
equivariância. 
DL: Exemplo de Arquitetura – 
AS REDES ENCAPSULADAS/CAPSNET 
• Proposta: 
 “cérebro humano tem módulos chamados 
"cápsulas". 
– Estas cápsulas são muito boas em lidar com diferentes 
tipos de estímulos visuais e codificam coisas como 
poses (posição, tamanho, orientação), deformação, 
velocidade, albedo (capacidade de reflexão da 
radiação solar) , matiz, textura etc. 
– O cérebro deve ter um mecanismo de baixo nível para 
"encaminhar" informações visuais para o que ele 
acredita ser a melhor cápsula para lidar com isso. 
DL: Exemplo de Arquitetura – 
AS REDES ENCAPSULADAS/CAPSNET 
• Uma cápsula consiste em um grupo de neurônios em uma 
camada que prevê a presença de uma característica específica 
em um determinado local. 
• As cápsulas de nível superior cobrir regiões maiores da 
imagem, mas ao contrário de max-pooling não se descarta 
informações sobre a posição precisa da entidade dentro da 
região. 
• O modelo é capaz de entender as alterações na imagem. 
 
Referências 
• UNICAMP. Tycho Brahe Parsed Corpus of Historical Portuguese. 2010. Disponível em: 
• http://www.tycho.iel.unicamp.br/~tycho/corpus/en/index.html. 
• ALUÍSIO, S. et al. An account of the challenge of tagging a reference corpus for brazilian portuguese. In: 
Computational Processing of the Portuguese Language. [S.l.]: Springer, 2003. p. 110–117. 
• AFONSO, S. et al. Floresta sintá tica: A treebank for portuguese. In: LREC. [S.l.: s.n.], 2002. 
• TURIAN, J.; RATINOV, L.; BENGIO, Y. Word representations: a simple and general method for semi-
supervised learning. In: ASSOCIATION FOR COMPUTATIONAL LINGUISTICS. Proceedings of the 48th annual 
meeting of the association for computational linguistics. [S.l.], 2010. p. 384–394. 
• COLLOBERT, R. et al. Natural language processing (almost) from scratch. The Journal of Machine Learning 
Research, JMLR. org, v. 12, p. 2493–2537, 2011. 
• MIKOLOV, T. et al. Efficient estimation of word representations in vector space. arXiv preprint 
arXiv:1301.3781, 2013. 
• KEPLER, F. N. Um etiquetador morfo-sintático baseado em cadeias de Markov de tamanho variável. 
Dissertação (Mestrado) — Instituto de Matemática e Estatística da Universidade de São Paulo, 
12/04/2005., 2005. 
• KEPLER, F. N.; FINGER, M. Variable-length markov models and ambiguous words in portuguese. In: 
ASSOCIATION FOR COMPUTATIONAL LINGUISTICS. Proceedings of the NAACL HLT 2010 Young Investigators 
Workshop on Computational Approaches to Languages of the Americas. [S.l.], 2010. p. 15–23. 
• . 
Referências 
• AGOSTINELLI, F., HOFFMAN, M., SADOWSKI, P., et al., Learning Activation Functions to Improve 
Deep Neural Networks", Proceedings of the 2015 International Conference on Learning 
Representations (ICLR'15), n. 2013, pp. 1{9. ISSN: 01628828. doi: 10.1007/3-540-49430-8. 
Disponvel em: <http://arxiv.org/abs/1412.6830>. 
• HINTON, G. E., 2007, \Learning multiple layers of representation", Trends in Cognitive Sciences, v. 
11, n. 10 (10), pp. 428{434. ISSN: 13646613.doi: 10.1016/j.tics.2007.09.004. Disponvel em: 
<http://linkinghub. elsevier.com/retrieve/pii/S1364661307002173>. 
• BENGIO, Y., YOSHUA, 2009, \Learning Deep Architectures for AI", Foundations and Trends® in 
Machine Learning, v. 2, n. 1, pp. 1{127. ISSN: 1935-8237. doi: 10.1561/2200000006. Disponvel em: 
http://www.nowpublishers.com/article/Details/MAL-006 
• HINTON, G., DENG, L., YU, D., et al., 2012, \Deep Neural Networks for Acoustic Modeling in Speech 
Recognition: The Shared Views of Four Research Groups", IEEE Signal Processing Magazine, v. 29, n. 
6 (11), pp. 82{97. ISSN: 1053-5888. doi: 10.1109/MSP.2012.2205597. Disponvel em: 
<http://ieeexplore.ieee.org/document/6296526/>. 
• Alex Krizhevsky, Ilya Sutskever, and Geoffrey E. Hinton. Imagenet classification with deep 
convolutional neural networks. In Advances in Neural Information Processing Systems 25: 26th 
Annual Conferenceon Neural Information Processing Systems., pages 1106–1114, 2012 
• Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. Deep residual learning for image 
recognition. CoRR, abs/1512.03385, 2015. (ResNet) 
Referências 
• KOMBRINK, S. et al. Recurrent neural network based language modeling in 
meeting recognition. In: INTERSPEECH. [S.l.: s.n.], 2011. p. 2877–2880. 
• BISHOP, C. M., 1995, Neural Networks for Pattern Recognition. New York, 
NY, USA, Oxford University Press, Inc. ISBN: 0198538642 
• LECUN, Y. A., BOTTOU, L., ORR, G. B., et al., 2012, “Efficient backprop”, 
Lecture Notes in Computer Science (including subseries Lecture Notes in 
Artificial Intelligence and Lecture Notes in Bioinformatics), v. 7700 LECTU, 
pp. 9–48. ISSN: 03029743. doi: 10.1007/978-3-642-35289-8-3. 
• BENGIO, Y., SIMARD, P., FRASCONI, P., 1994, “Learning Long Term 
Dependencies with Gradient Descent is Difficult”, IEEE Transactions on 
Neural Networks, v. 5, n. 2, pp. 157–166. ISSN: 1045-9227. doi: 
10.1109/72.279181 
• Sara Sabour, Nicholas Frosst, Geoffrey E Hinton, Dynamic Routing 
Between Capsules, arXiv:1710.09829

Mais conteúdos dessa disciplina