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