• Nenhum resultado encontrado

Aprendizagem Profunda (Deep Learning) Marcondes Ricarte Universidade Federal de Pernambuco Centro de Informática

N/A
N/A
Protected

Academic year: 2021

Share "Aprendizagem Profunda (Deep Learning) Marcondes Ricarte Universidade Federal de Pernambuco Centro de Informática"

Copied!
95
0
0

Texto

(1)

Marcondes Ricarte

Universidade Federal de Pernambuco

Centro de Informática

Aprendizagem Profunda

(2)

2

Conteúdo

• Motivação.

• Conceitos gerais.

• Operações básicas

• Modelos:

– Convolutional Neural Networks (CNN); – Auto-encoders;

(3)

3

Redes Neurais

• Uma rede neural padrão possui

2 camadas: um camada

intermediária e uma camada de saída.

(4)

4

Motivação

• Permitir aos computadores modelar nosso mundo bem o

suficiente para exibir o que nós chamamos de

inteligência tem sido o foco de pesquisas de mais da metade de um século.

• Para alcançar esse objetivo, é claro que a grande quantidade de informação sobre o nosso mundo deve ser

de alguma forma armazenada, explicitamente ou

implicitamente, no computador.

• Já que não podemos formalizar manualmente a

(5)

5

Motivação

• Muito esforço (e progresso!) tem sido feito em entender e melhorar algoritmos de aprendizagem, mas o desafio em IA permanece;

• Temos algoritmos capazes de entender cenas e descrevê-las em linguagem natural?

• Temos algoritmos capazes de inferir conceitos semânticos suficientes a ponto de interagir com humanos?

(6)

6

(7)

7

Motivação

• Um modo plausível e comum de extrair informação

útil a partir de imagens naturais envolve transformar

gradualmente os pixels com valores “brutos” em

representações mais abstratas;

– Detecção de borda, detecção de formas locais, identificação de categorias;

(8)

8

Motivação

• Assim, uma máquina que expresse “inteligência”

requer funções matemáticas altamente variáveis;

– Não-lineares em termos de entradas cruas, sendo capazes de apresentar muitas variações.

• A abstração de um objeto em uma imagem pode ser

encarada como uma categoria ou feature (discreta ou

contínua).

– Muitos conceitos em nível mais baixo ou

intermediário poderiam ser úteis para construir um detector mais sofisticado.

(9)

9

Motivação

• O foco em arquiteturas profundas é descobrir

automaticamente essas abstrações:

– Construir features com níveis mais baixos até conceitos de nível mais alto;

• Utilizar algoritmos de aprendizagem que descubram

essas abstrações com o mínimo esforço humano

(10)

10

Motivação

• Redes Neurais Artificiais

feed-forward:

– Maldição da

(11)

11

Motivação

• Uma das soluções encontradas para maldição de

dimensionalidade é pré-processamento de dados:

– Redução da dimensionalidade (às vezes por humanos). – Desafiante e altamente dependente da tarefa.

• Se pensarmos no cérebro humano, não há indícios de

que ele resolve esse problema dessa forma.

• Aprender características automaticamente em

múltiplos níveis de abstração permite ao sistema

mapear funções complexas sem depender de

(12)

12

• Algoritmos

de

Deep

Learning

podem

ser

considerados como processos de aprendizagem que

descobrem múltiplos níveis de abstração;

• As representações mais abstratas podem ser mais

úteis em extrair informações para classificadores ou

preditores;

• Características intermediárias aprendidas podem ser

compartilhadas entre diferentes tarefas;

(13)

13

• Por décadas, diversos pesquisadores tentaram, sem

sucesso, treinar redes neurais de múltiplas camadas

profundas;

– Inicializadas com pesos aleatórios; – Mínimos locais.

• À medida que a profundidade aumenta torna-se

ainda mais difícil uma boa generalização

(14)

14

Motivação

• Múltiplas camadas constroem um espaço de

características melhorado:

– Primeira camada aprende as características de primeira ordem (por exemplo, bordas em imagem);

– Segunda camada aprende características de maior ordem (por exemplo, combinação de bordas e outras características);

– As camadas são treinadas de modo não-supervisionado de modo a descobrir características gerais do espaço de entrada;

– As características finais alimentam uma camada supervisionada – A rede inteira é então ajustada de modo supervisionado.

(15)

15

Motivação

• As camadas no MLP não aprendem bem:

– Difusão do gradiente;

– Treinamento muito lento;

– Camadas mais baixas tendem a fazer um mapeamento aleatório; – Frequentemente há mais dados não rotulados do que dados

rotulados;

(16)

16

• Em 2006, Hinton et al descobriram que os resultados

de

uma

rede

neural

profunda

poderiam

ser

sensivelmente melhorados quando pré‐treinadas com

um algoritmo de aprendizagem não-supervisionado,

uma camada após outra a partir da primeira camada.

(17)

17

Porque Deep Learning?

• O Teorema de Kolmogorov-Smirnov demonstraram

que uma única camada oculta é suficiente para

representar qualquer função ou para resolver a maioria

dos problemas de generalização. Contudo a

quantidade de neurônios nesta camada pode sem

inviável para a solução do problema.

(18)

18

Porque Deep Learning?

• Plausibilidade biológica – córtex visual

• Problemas que podem ser representados com um

número polinomial de nós com k camadas podem

requerer número exponencial de nós com k‐1

camadas;

– Funções muito variáveis podem ser eficientemente representadas com arquiteturas profundas;

(19)

19

Modelos

- Stacked Auto-Encoders;

- Deep Belief Nets;

- Convolutional Neural Networks;

- Deep Reinforcement Networks;

- Recurrent Neural Networks;

(20)

20

Operações básicas

- Convolução;

- Inserção de não-linearidade;

(21)

21

(22)

22

• Convolução é um operador linear que, a partir de

duas funções dadas, resulta numa terceira que mede a

área subentendida pela superposição delas em função

do deslocamento existente entre elas.

• Contínua:

• Discreta:

(23)

23

(24)

24

(25)

25

(26)

26

(27)

27

(28)

28

(29)

29

Inserção de não-linearidade

(30)

30

• Pooling:

– Esse passo comprime e suaviza os dados;

– Normalmente toma a média ou o valor máximo entre trechos disjuntos;

– Dá robustez a pequenas

variações espaciais dos dados. – Espasidade.

– Max(0,x).

Convolutional Neural

Networks

(31)

31

• Hubel e Wiesel em 1968, estudaram o sistema visual

de felinos e detectaram o papel importante das

chamadas Receptive Cells que agiam sobre como

filtros locais sobre o espaço de entrada e tinham dois

comportamentos:

– Simple Cells: respondem a padrões de bordas na imagem;

– Complex Cells: que possuem o campo de

receptividade grande e são invariantes a posição do padrão.

Convolutional Neural

Networks

(32)

32

Convolutional Neural

Networks

(33)

33

Convolutional Neural

Networks

(34)

34

Convolutional Neural

Networks

(35)

35

Convolutional Neural

Networks

(36)

36

Convolutional Neural

Networks

(37)

37

• Parâmetros:

– Margens: (Ignorar/Replicar/Zerar) – Tamanho do kernel.

– Tamanho do passo (stride). – Quantidade de núcleos.

– Configuração dos núcleos (aprendidos).

Convolutional Neural

Networks

(38)

38

• Connectividade espaça: CNN exploram correlações espaciais

focando em connectividade entre neurônios próximos. Os campos receptivos são contíguos. Os neurônios são invisíveis as variações fora do seu campo receptivo.

• Analogia (quando a entrada são imagens):

– Pixels -> Neurônios – Kernel -> Sinapses

– Convolução -> Operação básica de um neurônio

Convolutional Neural

Networks

(39)

39

• Procedimento ad-hoc para construir informação prévia

no design de uma RNA:

1. Restringir a arquitetura da rede através do uso de conexões locais conhecidas como campos receptivos.

2. Limitar a escolha dos pesos sinápticos através do uso do compartilhamento de pesos.

• Essas duas técnicas, especialmente a segunda, têm um

efeito colateral benéfico: o número de parâmetros

livres na rede é reduzido significativamente.

Convolutional Neural

Networks

(40)

40

• Considere a rede feedforward parcialmente conectada. Essa rede apresenta uma

arquitetura restringida por construção. Os seis nós fonte superiores constituem o campo receptivo para o neurônio escondido 1.

Convolutional Neural

Networks

(41)

41

• Para satisfazer a restrição do compartilhamento de pesos, deve-se usar o mesmo conjunto de pesos sinápticos para cada um dos

neurônios da camada escondida.

• Portanto, para seis conexões locais por neurônio escondido e um total de quatro neurônios escondidos (figura 4), pode-se expressar o campo local induzido do neurônio escondido j como (soma de convolução):

• Onde {wi}6i= 1, constitui o mesmo conjunto de pesos

compartilhados por todos os quatro neurônios escondidos e xk é o

sinal do nó fonte k=i+j.

(42)

42

• Uma rede CNN é um MLP projetado para

reconhecer formas bidimensionais com um alto grau

de invariância para translação, mudança de escala, e

outras formas de distorção.

• Esta tarefa difícil é aprendida de uma maneira

supervisionada por uma rede cuja estrutura inclui as

seguintes formas de restrições:

– Extração de características;

– Mapeamento de características; – Sub-amostragem.

• .

(43)

43

• Extração de características: Cada neurônio obtém suas entradas sinápticas de um campo receptivo local da

camada anterior, forçando-o a extrair características

locais. A posição relativa de uma característica extraída em relação às outras é preservada.

• Mapeamento de características: Cada camada

computacional da rede é composta de múltiplos mapas de características, onde cada mapa tem a forma de um plano no qual os neurônios individuais são restringidos para compartilhar o mesmo conjunto de pesos

sinápticos. • .

(44)

44

• Os filtros são aprendidos pelo algoritmo. • A inicialização dos filtros é aleatória.

• O pesos dos filtros são os mesmo em qualquer uma das regiões do mapa.

• A convolução é linear.

• Facilita o paralelismo do processo.

(45)

45

• Sub-amostragem: cada camada da CNN é seguida

por uma camada computacional que realiza cálculo

da média local e sub-amostragem, onde a resolução

do mapa de características é reduzida. Tem o efeito

de reduzir a sensibilidade da saída do mapa a

deslocamentos e outras formas de distorção.

• Todos os pesos em todas as camadas de uma CNN

são aprendidos através do treinamento.

• No entanto, a rede aprende a extrair suas próprias

características automaticamente.

(46)

46

(47)

47

• A camada de entrada, com 28x28 nós sensoriais, recebe as

imagens de diferentes caracteres, centralizados e normalizados. Então, a computação alterna entre convolução e sub-amostragem:

– Camada 1 escondida: convolução. 4 mapas de características com cada mapa consistindo de 24x24 neurônios. Cada neurônio tem um campo receptivo de tamanho 5x5.

– Camada 2 escondida: sub-amostragem e média local. 4 mapas de características com cada mapa consistindo de 12x12 neurônios. Cada neurônio tem um campo receptivo de tamanho 2x2, um coeficiente treinável, um bias treinável e uma função de ativação sigmoide.

– Camada 3 escondida: convolução. 12 mapas de características com cada mapa consistindo de 8x8 neurônios. Cada neurônio tem conexões sinápticas com vários mapas de características das camadas escondidas anteriores.

– Camada 4 escondida: sub-amostragem e média local. 12 mapas de características com cada mapa consistindo de 4x4 neurônios.

– A camada de saída realiza um estágio final da convolução. Consiste de 26 neurônios, atribuídos a um dos 26 caracteres possíveis. Cada neurônio tem um campo receptivo de tamanho 4x4.

(48)

48

(49)

49

(50)
(51)

51

(52)

52

Backpropagation Convolutional

Layer

(53)

53

Backpropagation Convolutional

Layer

Passo 1: Inicializamos todos os filtros e parâmetros / pesos com valores aleatórios

Passo 2: A rede recebe uma imagem de treinamento como entrada, passa pela etapa de propagação direta (convolução,

ReLU e operações de agrupamento junto com a propagação direta na camada totalmente conectada) e localiza as probabilidades de saída para cada classe.

Vamos dizer que as probabilidades de saída para a imagem do barco acima são [0.2, 0.4, 0.1, 0.3]

Como os pesos são atribuídos aleatoriamente para o primeiro exemplo de treinamento, as probabilidades de saída também são aleatórias de início.

(54)

54

Backpropagation Convolutional

Layer

Passo 3: Calcular o erro total na camada de saída (soma das 4 classes)

Erro total = ∑ ½ (probabilidade de destino - probabilidade de saída) ²

(55)

55

Backpropagation Convolutional

Layer

Passo 4: Use Backpropagation para calcular os gradientes do erro em relação a todos os pesos na rede e use o gradiente descendente para atualizar todos os valores / pesos de filtro e valores de

parâmetros para minimizar o erro de saída.

Os pesos são ajustados em proporção à sua contribuição para o erro total.

Isso significa que a rede aprendeu a classificar corretamente essa imagem específica ajustando seus pesos / filtros de forma que o erro de saída seja reduzido.

Parâmetros como número de filtros, tamanhos de filtros,

arquitetura da rede, etc. foram todos corrigidos antes da Etapa 1 e não são alterados durante o processo de treinamento - somente os valores dos pesos de conexão são atualizados.

(56)

56

Backpropagation Convolutional

Layer

Passo 5: Repita os passos 2-4 com todas as imagens no conjunto de treino.

(57)

57

Backpropagation Convolutional

Layer

(58)

58

Backpropagation Convolutional

Layer

(59)

59

(60)

60

• Os ajustes dos parâmetros livres são feitos usando uma forma estocásticas (sequencial) do aprendizado back-propagation.

• O uso do compartilhamento de pesos torna possível implementar a CNN de forma paralela: outra vantagem sobre a MLP

totalmente conectada.

(61)

61

(62)

62

• http://cs.stanford.edu/people/karpathy/convnetjs/demo/cifar10.html

• http://www.cs.toronto.edu/~kriz/cifar.html

(63)

63

• Transferência de aprendizagem e aprendizagem

multitarefa:

– Transferência em aprendizagem é a habilidade do algoritmo de

aprendizagem de extrapolar pontos em comum em diferentes tarefas e transferir conhecimento entre elas.

– Conferências como ICML (International Conference on Machine

Learning) e NIPS (Neural Information Processing Systems) possuem

desafios nessa área, com arquiteturas Deep Learning vencedoras.

(64)

64

• Android App - Prisma

(65)

65

• Originalmente voltado para problemas de redução de dimensionalidade.

• Objetivo: criar um novo conjunto de características que captura informação essencial do conjunto original de entrada.

• As novas características são combinações lineares das características originais.

• Tentam capturar ao máximo a variância original do conjunto de entrada.

Principal Components Analysis

(PCA)

(66)

66

Principal Components Analysis

(PCA)

(67)

67

• A partir de uma matriz de características X, com dimensões m × n, os vetores que representam os

componentes principais são os autovetores da matriz

XTX, com dimensões n × n, ordenados pela magnitude

decrescente dos autovetores.

• Após encontrar os vetores dos componentes principais, os valores das n colunas originais são reduzidos a k

valores, em que k ≤ n, através do cálculo das projeções do vetor a partir dos k principais componentes.

Principal Components Analysis

(PCA)

(68)

68

• A transformação linear ortogonal captura a variância do conjunto original, de forma que o primeiro componente possui a maior variância, o segundo componente a

segunda maior variância, e assim sucessivamente.

• A transformação PCA que preserva a dimensionalidade é dada por:

Principal Components Analysis

(PCA)

(69)

69

• A transformação da expressão YT = VΣT denota que cada

linha de YTé uma rotação de linha de XT , de forma que

a primeira coluna de YT denota os pesos do primeiro

componente principal, a segunda coluna os pesos do

segundo componente principal, e assim sucessivamente.

Principal Components Analysis

(PCA)

(70)

70

Principal Components Analysis

(PCA)

(71)

71

• No processo de redução de dimensionalidade, a projeção

linear de Rm para RL é chamado de codificação

(encoding).

• O processo inverso, a projeção de RL para Rm é chamado

de decodificação (decoding).

Principal Components Analysis

(PCA)

(72)

72

• Limitações:

– Assumimos que as direções das projeções com maior

variância são as que melhor representam as características originais (válido apenas para colunas linearmente

correlacionadas);

– Na versão clássica do PCA, só consideramos as

transformações ortogonais, o que implica que o método não trata de mapeamentos não lineares (PCA é um

método linear de redução de dimensionalidade).

Principal Components Analysis

(PCA)

(73)

73

• Alterativas ao PCA:

– Extensões do método com transformações não lineares; – Autoencoders:

• Mapeamentos não lineares;

• Empilhamento (representação hierárquica).

Principal Components Analysis

(PCA)

(74)

74

• Alterativas ao PCA:

– Extensões do método com transformações não lineares; – Autoencoders:

• Mapeamentos não lineares;

• Empilhamento (representação hierárquica).

Principal Components Analysis

(PCA)

(75)

75

• Um tipo de modelo que tenta descobrir características genéricas dos dados

– Aprende a identificar funções através do aprendizado de subcaracterísticas;

– Compressão: pode usar novas características como um novo conjunto de treinamento.

• Ao colocar uma camada oculta menor que a entrada, a rede e forcada a criar uma representação compacta do espaço de entrada.

• Função de minimização de erro:

(76)

76

(77)

77

• Em um exemplo clássico, construímos um autoencoder com 8 entradas e 3 neurônios na camada oculta

• Os exemplos de treinamento consistem em 8 bits onde apenas um deles e 1 e o restante e 0 (8 exemplos

portanto)

• O autoencoder aprende a representar os 8 exemplos com codificação binaria de 3 bits, sem nenhuma supervisão.

(78)

78

(79)

79

• O número de neurônios na camada oculta deve ser

menor que a dimensão de entrada para evitar que a rede

aprenda a solução trivial, ou seja, simplesmente copiar a entrada;

• Com menos neurônios para codificar a entrada, a rede e forcada a aprender uma representação compacta do

espaço de entrada.

(80)

80

(81)

81

• (Bengio, 2007) E

mpilhar muitos auto‐encoders

esparsos e treiná-los de forma gulosa.

• O codigo gerado por um é repassado como entrada para o seguinte.

(82)

82

• Realizar treinamento supervisionado na última

camada utilizando características finais;

• Treinamento supervisionado da rede como um

todo para realizar ajustes finos dos pesos

(83)

83

• Cada camada abstrai um pouco a camada

anterior, criando representações de alto nível.

• - Isso facilita o trabalho de camadas superiores,

pois elas passam a trabalhar sobre conceitos de

mais alto nível.

• - Ex.: pixels → linhas → formas → objetos

(84)

84

1. Treinar primeira camada utilizando dados sem rótulos. Já que não há targets nesse nível, rótulos não importam;

2. Fixar os parâmetros da primeira camada e começar a treinar a segunda usando a saída da primeira camada como entrada não-supervisionada da segunda camada;

3. Repetir 1 e 2 de acordo com o número de camadas desejada (construindo um mapeamento robusto);

4. Usar a saída da camada final como entrada para uma

camada/modelo supervisionada e treinar de modo supervisionado (deixando pesos anteriores fixos);

5. Liberar todos os pesos e realizar ajuste fino da rede como um todo utilizando uma abordagem supervisionada

(85)

85

• Evita muitos dos problemas associados ao treinamento de uma rede profunda de modo totalmente

supervisionado.

– Cada camada toma foco total no processo de aprendizagem; – Pode tomar vantagem de dados não rotulados;

– Quando a rede completa é treinada de modo supervisionado, os pesos já estão minimamente ajustados (evita mínimos

locais);

(86)

86

(87)

87

• Função de custo de erro supervisionado:

• Função de custo de erro não-supervisionado:

(88)

88

• Podemos treinar o Stack auto-encoder normalmente com backpropagation, mas caímos no problema dos

gradientes diluídos.

• O treinamento fica demorado ou mesmo inviável.

• A solução está em treinar cada camada como um auto-encoder isolado, o que reduz o caminho do gradiente para uma única camada.

(89)

89

• Outra possibilidade de Auto-Encoders está em restringir as ativações da camada oculta

• Podemos modificar a função de custo da rede para incluir um termo que penaliza muitas ativações nos neurônios. • Como resultado, uma codificação esparsa e aprendida

(poucos neurônios ativados por vez), mesmo que a camada oculta seja maior que a dimensionalidade de entrada.

• Ω(h) – penalização por espasidade. • Função de minimização de erro:

(90)

90

• Podemos utilizar compartilhamento de pesos para

reduzir o numero de parâmetros no auto-encoder e ao mesmo tempo explorar conhecimento prévio dos

problemas.

• Por exemplo, podemos trabalhar com blocos de tamanho 32x32 utilizando pequenas regiões 3x3 onde todas

utilizam os mesmos pesos, efetivamente reduzindo a dimensão de entrada de 1024 para 9.

(91)

91

(92)

92

• O Denoising autoencoder (DAE) é uma versão estocástica do autoencoder que recebe valores corrompidos em sua entrada e é treinado para gerar uma representação latente dos dados não

corrompidos.

• Em Vincent et. al., 2010 é proposta a arquitetura do Stacked Denoising Autoencoder (SDA).

• Denoising autoencoders podem ser empilhados através da

alimentação da representação latente do DAE da camada anterior, servindo de entrada para a camada atual.

• Função de minimização de erro:

(93)

93

Ferramentas

Software Creator Platform Written in Interface

Apache MXNet Apache Software Foundation

Linux, macOS, Windows,AWS, Android,iOS, JavaScript

Small C++core

library C++, Python, Julia, Matlab, JavaScript, Go, R, Scala, Perl

Apache SINGA Apache Incubator Linux, macOS, Windows C++ Python, C++, Java

Caffe

Berkeley Vision and Learning

Center Linux, macOS, Windows C++ Python, MATLAB, C++

Deeplearning4j

Skymind engineering team; Deeplearning4j community;

originally Adam Gibson Linux, macOS, Windows, Android (Cross-platform) C++, Java Java, Scala, Clojure, Python(Keras), Kotlin

Intel Data Analytics Acceleration

Library Intel Linux, macOS, Windows on Intel CPU C++, Python, Java C++, Python, Java[10]

Keras François Chollet Linux, macOS, Windows Python Python, R

PyTorch

Adam Paszke, Sam Gross, Soumith

Chintala, Gregory Chanan Linux, macOS Python, C, CUDA Python

TensorFlow Google Brainteam Linux, macOS, Windows,Android C++, Python, CUDA Python (Keras), C/C++, Java, Go, R, Julia

Theano Université de Montréal Cross-platform Python Python (Keras)

Torch

Ronan Collobert, Koray

(94)

94

• Deep Learning Tutorial. LISA Lab, University of Montreal.

J. Schmidhuber. Deep Learning in Neural Networks: An Overview. Neural

Networks, Volume 61, January 2015, Pages 85-117 (DOI:

10.1016/j.neunet.2014.09.003), published online in 2014.

Bengio, Yoshua, et al. "Greedy layer-wise training of deep networks." Advances

in neural information processing systems 19 (2007): 153.

• Vincent, Pascal, et al. "Stacked denoising autoencoders: Learning useful

representations in a deep network with a local denoising criterion." The Journal

of Machine Learning Research 11 (2010): 3371-3408.

• http://www.robots.ox.ac.uk/~vgg/practicals/cnn/

(95)

95

Referências

Documentos relacionados

Vale ressaltar que o PNE guarda relação direta com o Plano de Aceleração do Crescimento (PAC) que tem como objetivo o desenvolvimento econômico e social, além de

6 Usou-se como referência para os fatores contextuais, o que foi considerado no SIMAVE, nas Avaliações Contextuais, aplicadas através de questionários aos alunos do

Constata - se, portanto, que, tanto o PNBE, quanto o PNLL colocam o desenvolvimento da competência leitora e a formação de leitores em destaque, seja por meio do acesso

O caso de gestão a ser estudado irá discutir sobre as possibilidades de atuação da Pró-Reitoria de Assistência Estudantil e Educação Inclusiva (PROAE) da

Depois de exibido o modelo de distribuição orçamentária utilizado pelo MEC para financiamento das IFES, são discutidas algumas considerações acerca do REUNI para que se

Em 2008 foram iniciadas na Faculdade de Educação Física e Desportos (FAEFID) as obras para a reestruturação de seu espaço físico. Foram investidos 16 milhões

Não obstante a reconhecida necessidade desses serviços, tem-se observado graves falhas na gestão dos contratos de fornecimento de mão de obra terceirizada, bem

intitulado “O Plano de Desenvolvimento da Educação: razões, princípios e programas” (BRASIL, 2007d), o PDE tem a intenção de “ser mais do que a tradução..