Introdução a Deep Learning

29
Pontif´ ıcia Universidade Cat´ olica do Rio de Janeiro Departamento de Engenharia El´ etrica (DEE) 2016 - I ESTUDO ORIENTADO DEEP LEARNING Aluno: Cristian Mu˜ noz Villalobos Matricula: 1521847 Orientador: Prof. Ricardo Tanscheit Co-orientador: Prof. Leonardo Mendoza

Transcript of Introdução a Deep Learning

Page 1: Introdução a Deep Learning

Pontifıcia Universidade Catolica do Rio de Janeiro

Departamento de Engenharia Eletrica (DEE)

2016 - IESTUDO ORIENTADO

DEEP LEARNING

Aluno: Cristian Munoz VillalobosMatricula: 1521847

Orientador: Prof. Ricardo TanscheitCo-orientador: Prof. Leonardo Mendoza

Page 2: Introdução a Deep Learning

Sumario

1 Introducao 3

1.1 Deep Learning e Redes Neurais . . . . . . . . . . . . . . . . . . . . . . 3

1.2 Porque arquiteturas Deep? . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 Aprendizagem de Representacoes (features) 4

2.1 Modelos tradicionais de aprendizagem . . . . . . . . . . . . . . . . . . . 5

2.2 Modelos de Aprendizagem de representacoes (Deep Learning) . . . . . . 6

2.3 Tipos de arquiteturas e protocolos de treinamento . . . . . . . . . . . . . 8

2.4 Complexidade da teoria . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

3 Consideracoes nos algoritmos apresentados neste trabalho 9

3.1 Modelos Analisados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3.2 Metodo da gradiente descendente . . . . . . . . . . . . . . . . . . . . . . 10

3.3 Backpropagation: Casos Gerais . . . . . . . . . . . . . . . . . . . . . . . 11

4 Redes Neurais Convolutivas (Convnets) 12

4.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

4.2 Contexto Historico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

4.3 Arquitetura da rede . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

4.3.1 Camada Convolutiva . . . . . . . . . . . . . . . . . . . . . . . . 14

4.3.2 Camada de Amostragem (Max Pooling) . . . . . . . . . . . . . . 15

5 Redes Neurais Recorrentes (Deep LSTM) 16

5.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

5.2 Modelo de um neuronio de uma rede LSTM . . . . . . . . . . . . . . . . 17

5.3 Modelo de uma Deep LSTM . . . . . . . . . . . . . . . . . . . . . . . . 18

5.4 Treinamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

6 Restricted Boltzmann Machine (RBM) 19

6.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

6.2 Modelo de uma RBM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

6.3 Divergencia Contrastiva e Treinamento . . . . . . . . . . . . . . . . . . . 21

7 Deep Belief Networks (DBN) 22

Page 3: Introdução a Deep Learning

7.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

7.2 Modelo de uma DBM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

7.3 Algoritmos de aprendizagem . . . . . . . . . . . . . . . . . . . . . . . . 23

7.3.1 Wake - Sleep . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

7.3.2 Greedily Layer-Wise Training . . . . . . . . . . . . . . . . . . . 24

7.3.3 Up-Down . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

8 Stacked Autoencoders 26

8.1 Modelo do Stacked Autoencoders . . . . . . . . . . . . . . . . . . . . . 26

8.2 Treinamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

2

Page 4: Introdução a Deep Learning

Deep Learning

Cristian Munoz1, Ricardo Tanscheit1, Leonardo Medoza Forero1

1Departamento de Engenharia EletricaPontifıcia Universidade Catolica do Rio de Janeiro (PUC-RJ)

RJ, Brazil

crismunoz,ricardo,[email protected]

Resumo. Deep Learning e um subcampo de Machine Learning que tem rece-bido uma atencao significativa nos ultimos anos. O interesse aumentou drasti-camente com a aquisicao da DeepMind (empresa britanica de inteligencia arti-ficial) pelo Google em 2014, que faz uso principalmente de algoritmos de DeepLearning. Sua popularidade se deve a sua capacidade de atingir maior acuraciado que os algoritmos convencionais de Machine Learning e suas aplicacoesabrangem reconhecimento de voz, processamento de imagem e processamentode linguagem natural, por exemplo. No mundo dos negocios, os algoritmos deDeep Learning ainda estao em uma etapa inicial, mas tem o potencial de mudarprofundamente a maneira e a velocidade com que dados sao tratados.

1. Introducao

1.1. Deep Learning e Redes Neurais

Deep learning comeco como uma necessidade em Machine Learning de interpretar nıveisde maior complexidade do mundo perceptual e criar sistemas perceptivos que possamaprender essas interpretacoes olhando seu ambiente . A literatura coloca o Deep Learningcomo um subcampo de redes neurais artificiais. O treinamento de redes neurais profun-das (Deep Neural Networks) com base em backpropagation apresentou dificuldades aoser colocado em pratica pelo final dos anos 1980. Assim, tal treinamento tornou-se umassunto de pesquisa no inıcio da decada de 1990, levando ao desenvolvimento de novasmetodologias de treinamento. Finalmente, nos anos 2000, houve um aperfeicoamento daaprendizagem supervisionada utilizando puramente Deep Learning [1].

Os algoritmos de Deep Learning dependem de unidades de processamento naolineares estruturadas em multiplas camadas em cascata (mais camadas do que os algorit-mos convencionais – Shallow Learning) [2]. Estas unidades sao geralmente compostaspor redes neurais artificiais, cujos parametros sao estimados atraves do treinamento, e saoutilizadas para a extracao de caracterısticas e transformacao dos sinais. Os algoritmosincluem variaveis latentes organizadas ”Layer-Wise”(treina-se uma camada de cada vez),tambem utilizadas em Deep Belief Networks e em Deep Boltzmann Machines[3].

Finalmente, os algoritmos de Deep Learning requerem uma grande quantidadede poder computacional e uma quantidade significativa de tempo para treinamento. Emcompensacao, os algoritmos de treinamento e de inferencia de arquiteturas de Deep Lear-ning apresentam um maior paralelismo [4].

Page 5: Introdução a Deep Learning

1.2. Porque arquiteturas Deep?

Com Lippman [5] e Cybenko [6], mostrou-se que 2 camadas escondidas sao suficientespara representar regioes de qualquer tipo. Porem, alguns casos pode ser extremamentedifıcil de descrever com modelos simples, nestes casos sao necessarios sistemas de maiorordem. Em Deep learning podemos dizer que a ”profundidade”e o ”ordem de complexi-dade”sao sinonimos. Como tambem a largura de uma funcao e definido pelo numero deneuronios numa transformacao [7] .

Figura 1. Representacao de regioes em funcao ao numero de camadas

Existe evidencia empirica e teorica que MLP nao pode implementar tarefas dereconhecimento visual invariantes eficientemente. [8]. Deep Learning e mais eficientepara representar algumas classes de funcoes ”Trocando amplitude por profundidade”, ouutilizar um maior numero de camadas. Por exemplo, para modelar um circuito detectoresde paridade, precisa-se de N-1 portas XOR num arvore de profundidade log(N), masprecisa-se de um numero exponencial de portas para conseguir estruturar em 2 camadas.

2. Aprendizagem de Representacoes (features)O desempenho dos metodos de Machine Learning esta fortemente ligado a engenhariade atributos (pre-processamento), o que requer boa parte do esforco real ao momento deimplementar o algoritmo e conseguir um aprendizagem eficaz.

Figura 2. Cortex Visual em mamıferos e hierarquica

4

Page 6: Introdução a Deep Learning

Um dos melhores exemplos de aprendizagem de representacoes e nossa memoria.Diferentes areas de estudo como neurociencia, biologia pesquisam a forma em que apren-demos caraterısticas ou hierarquias de caraterısticas do mundo perceptivo. Por exemplo,como a cortex visual dos mamıferos (Figura 2) consegue perceber? como a memoriaaprende os conceitos mais abstratos desde os nıveis mais baixos?. A via ventral (de re-conhecimento) no cortex visual tem multiplas etapas de representacao intermediarias:Retina-LGN-V1-V4-PIT-AIT, cada uma detecta desde bordas (nos nıveis primarios), for-mas geometricas, grupos, ate descrever objetos mais complexos como rostos ou obje-tos [9]. Yoshua Bengio [10] propor alguns fatores gerais que podem definir uma boarepresentacao, sao apresentados os principais:

• Suavidade (Smoothness): E um conceito basico presente na maioria de algoritmosde Machine Learning, mas e uma problema com o aumento da dimensionalidadeda funcao a ser aprendida.• Multiples fatores explicativos (featrures) : Os dados de uma distribuicao podem

ser gerado por um conjunto de fatores explicativos e na maior parte, o que aprendesobre um fator, e generalizado na configuracao dos outros fatores.• Estrutura Hierarquica de Representacoes: As representacoes que percebemos em

torno nos pode ser definida em termo de outras representacoes (features), estrutu-rando uma hierarquia onde os conceitos mais abstratos ou mais elevados estao emfuncao dos conceitos menos abstratos.• Manifolds: Probabilidade de concentrar a massa de dados em regioes que tem

uma dimensionalidade muito menor do que o espaco original. Este e exploradoem algoritmos como por exemplo os Autoencoders.• Simplicidade na dependencias de Representacoes: Uma boa representacao de alto

nıvel esta relacionados com outras representacoes atraves de dependencias sim-ples, normalmente lineares.

Finalmente, Deep Learning se baseia no aprendizagem de Representacoes. Mu-dando a forma do modelagem de Machine Learning que desde finais dos 50s ate a decadapassada nao tinha sido mudada em essencia.

2.1. Modelos tradicionais de aprendizagem

O modelo tradicional de aprendizagem de Representacoes era realizado principalmenteem 2 processos, representado pelos 2 blocos na Figura 3. O bloco da esquerda representaa engenharia de atributos (Feature Extractor) que ate a decada passada era realizada porum especialista nos dados.

Figura 3. Modelo Tradicional: Engenharia de atributos + Classificador

Esta engenharia requer um cuidado significativo e um domınio consideravelpara projetar a extracao de caracterısticas transformando os dados brutos em umarepresentacao interna adequada para ser classificados treinando um classificador simples

5

Page 7: Introdução a Deep Learning

(bloco direita Figura 3). Ate o ano 2011 o estado de arte em reconhecimento de vozmantida essa estrutura tradicional [11]. Por exemplo, na Figura 4 se mostra o modelotradicional de um sistema de reconhecimento de voz.

Figura 4. Modelo Tradicional: Reconhecimento de voz (90’s - 2011)

A sinal passa por um metodo fixo (nao treinavel), neste caso MFCC, que estrai oscoeficientes para a representacao da fala que sao baseados na percepcao auditiva humana.As saıdas deste bloco fixo sao tratados por metodos nao supervisionado, no caso daFigura 4 Mix of Gaussians o qual representara subpopulacoes dentro da populacao total(todos os dados), realizando uma inferencia sobre as propriedades das sub-populacoesdado so observacoes da populacao agrupada. Finalmente esta saıda sao entrada para umclassificador quem termina o processo.

Em reconhecimento de objetos ate o ano 2012, o modelamento nao muda muito[12]. Eram estruturado por 4 processos principais para conseguir extrair as principaiscaraterısticas antes de entrar no classificador. Um segundo exemplo de um modelo tradi-cional e mostrado na Figura 5.

Figura 5. Modelo Tradicional: Reconhecimento de objetos (2006 - 2012)

As imagens sao filtradas por metodos fixos (nao treinaveis) como SIFT ou HoGque extraem caraterısticas basicas da imagem (SIFT: Detector de caraterısticas locais(keypoint), HoG: Descreve caraterısticas como histograma de orientacao de gradientes).Esta informacao passa por um algoritmo nao supervisionado como K-means, Sparse Co-ding, etc., sendo agrupadas caraterısticas de nıvel medio e passando por um processo depolling antes de ingressar finalmente ao classificador treinavel.

2.2. Modelos de Aprendizagem de representacoes (Deep Learning)

Uma proposta que mudo o modelamento classico de aprendizagem em ML foi: Porquenao podemos fazer todos os modulos treinaveis (engenharia de atributos + classificacao)?.O aprendizagem de representacoes aglomera um conjunto de metodos que permitem pro-cessar os dados automaticamente e encontrar as representacoes necessarias para deteccaoou classificacao. Especificamente, Deep Learning (um subconjunto de metodos de apren-dizagem de representacoes) aborda esse problema modelando hierarquias de features oukernels treinaveis nao lineais (Feature transform), transformando cada representacao de

6

Page 8: Introdução a Deep Learning

um nıvel (comecando pelos dados brutos) a uma de maior nıvel, atingindo assim nıveisde abstracao maiores [1].

Figura 6. Feature (ou kernel) treinaveis + Classificador Treinavel

A proposta de ter modulos treinaveis tanto na aprendizagem de representacoes e naclassificacao (Figura 7) sao os aspectos mais importante de Deep Learning. Um algoritmoe considerado Deep se utiliza mais de um nıvel de representacao. Essas representacoessao aprendidas desde os dados utilizando um procedimento de aprendizagem de propositogeral.

Figura 7. Feature(ou kernel) treinaveis + Classificador Treinavel

Na Figura 7 se mostra uma estrutura hierarquica de 3 nıveis de representacao.A entrada, o primeiro nıvel de representacao sao os pixeis da imagem (a foto mesma),no primeiro feature transform (Baixo Nıvel) sao detetados tipicamente a presencia ouausencia de bordas com tambem orientacao especifica e locacao ma imagem. O segundofeature transform (Medio Nıvel) extrai as partes de um objeto e o terceiro feature trans-form (Alto Nıvel) detecta objeto ou combinacao das partes. Os feature maps de Alto Nıvelsao mais globais e invariantes. Os Feature maps de Baixo Nıvel sao compartilhados entreos diferentes Feature maps das camadas posteriores.

Figura 8. Hierarquias de representacoes incrementam o nıvel de abstracao

7

Page 9: Introdução a Deep Learning

Yann LeCun [13], apresenta exemplos de hierarquia de representacoes de algumasareas de pesquisa importantes na comunidade de Machine Learning , sao apresentadas naFigura 8.

2.3. Tipos de arquiteturas e protocolos de treinamento

Atualmente existem tres tipos de arquiteturas de Deep Learning. Como se mostra naFigura 9, a primeira arquitetura e Feed-Forward, utilizado em Multilayer neural nets,convolutional nets. A segunda, Feed-Back, utilizadas em Stacked Sparse Coding, Des-convolutional nets. A terceira, Bi-Directional, utilizada em Deep boltzmann machines,Stacked Auto-Encoders.

Figura 9. Tipos de arquiteturas em Deep Learning

Estas arquiteturas tem diferentes formas de treinamento, baseando nos treina-mento supervisionados e nao supervisionados, podem utilizar alguns dos seguintes proto-colos de treinamento:

• Puramente supervisionado: A inicializacao de parametros aleatoria. Este trei-namento utiliza tipicamente o metodo da gradiente descendente, utilizando Back-propagation para calcular as gradientes.• Nao supervisionado + classificador supervisionado no topo: O treinamento e

realizada em cada camada nao supervisionada, uma depois da outra. Depois ascamadas supervisionada sao treinadas, mantendo as outras camadas fixas.• Nao supervisionado + sintonizacao global supervisionada: O treinamento e

realizada em cada camada nao supervisionada, uma depois da outra. Se adicionauma camada classificadora (opcional) e retreina-se supervisionadamente toda aarquitetura.

2.4. Complexidade da teoria

Deep learning atualmente tem varios topico discutıveis, como metodologia de vanguarda,Yann LeCun [13] menciona alguns aspeitos importantes.

• Nao convexidade: Muitos dos algoritmos em Machine Learning tem limitacoespara resolver problemas em que a funcao de custo e nao convexa (linear regres-sion/ Ridge regression, SVM, etc.). Frequentemente, o custo por insistir em con-vexidade e um insuportavel incremento no tamanho do modelo, ou o escalamentode propriedades do algoritmo de otimizacao (O(n2), O(n3), ...).

8

Page 10: Introdução a Deep Learning

Muitos outros algoritmos nao tem limitacoes com problemas de otimizacao naoconvexa, por exemplo os Modelo Oculto de Markov e sistemas baseados emGraph-Transformer-Network (em reconhecimento de escrita), assim como os Mo-delos ocultos de Markov discriminativos (em reconhecimento de voz) sao sistemasnao convexo.Para lidiar com as mais complexas e interessantes tarefas de aprendizagem (visao,voz, escrita), Deep learning implementa sistemas de arquitetura profunda (Deep),para o aprendizagem de representacoes hierarquicas (caraterısticas baixo nıvel,representacoes de nıvel medio, conceitos de alto nıvel). Estas arquiteturas lidaminevitavelmente funcao de custo nao convexa.• Nao tem limite de Generalizacao: Segun Yann Lecun, nao existe uma metrica

que quantifique o limite a generalizacao dos algoritmos de Deep Learning. Omelhor referencia ate agora e o VC-Bound, o numero de VC que da uma referenciado nivel de generalizacao do algoritmo. Se ela for infinita, o algoritmo pode cairem overfitting. Em Deep learning, a maioria de algoritmos tem um valor de VC-dimension finita. Atualmente dada o pouco fundamento matematico da teoria, edifıcil provar qualquer coisa sobre sistemas Deep Learning.

3. Consideracoes nos algoritmos apresentados neste trabalho

3.1. Modelos Analisados

Na Figura 10 mostra-se on esquema classificando os algoritmos de arquitetura Deep e naoDeep. Agrupando tambem pelo tipo de modelo (redes neurais ou probabilısticos) e tipode aprendizagem. Podemos observar que existem algoritmos de Deep Learning do tiposupervisionado e nao supervisionado, e hıbridos entre os modelos probabilıstico e redesneurais.

Figura 10. Contexto historico em Deep Learning

9

Page 11: Introdução a Deep Learning

Neste trabalho os algoritmos com base em redes neurais puros e misturado commodelos probabilısticos serao descrita desde a secao 4. Os algoritmos do Deep Learningpodem ser estruturados em base a o modelamento com redes neurais e modelos proba-bilısticos. Os algoritmos apresentados neste trabalho sao os seguintes:

• Deep Learning– Redes Neurais

∗ Convolutional Neural Networks (Convnets)∗ Recurrent Neural Network (RNN)

– Redes Neurais + Modelos Probabilısticos∗ Restricted Boltzmann Machine (RBM)∗ Deep Belief Networks (DBN)∗ Stacked Autoencoders (D-AE)

Todos os algoritmos apresentados neste trabalho utilizam o metodo da gradientedescendente no processo de aprendizagem. A rede Restricted Boltzmann Machine e apre-sentada mesmo que ela nao pertenca neste grupo de algoritmos, dado que e o moduloprincipal para descrever os posteriores algoritmos. Antes de apresentar os algoritmos, va-mos descrever alguns hiperparametros utilizados na configuracao do metodo da gradientedescendente e o metodo de backpropation para casos gerais.

3.2. Metodo da gradiente descendente

Em um sistema de aprendizagem supervisionado. Seja o conjunto de pares de entradase saıdas (x, y), definimos a funcao de perda l(y, y) como a medida do custo de inferir yquando a reposta real e y e selecionamos uma famılia F de funcoes fw(x) parametrizadopelo vetor de pesos w. Se procura a funcao f ∈ F que minimiza a funcao l(y, y). Ateoria de aprendizagem estatıstico justifica a minimizacao do rico empırico (En) que medeo desempenho dos dados de treinamento en vez da esperanca do rico (E) que mede odesempenho geral (intratavel), ambos funcoes estao definidas na Eq. 1.

E(f) =

∫l(f(x), y)dP (x, y) En(f) =

1

n

n∑i=1

l(f(x), y) (1)

A minimizacao do risco empırico e realizado utilizando o metodo da gradientedescendente se baseia na atualizacao dos parametros de uma camada na direcao negativada gradiente do risco empırico. A equacao de atualizacao dos parametros e mostrada naEq. 2.

wt ← wt − nt(t).gt gt = ∇wEn(f) (2)

O metodo tem alguns hiperparametros que ajudam na performance do metodo.Na tabela 1 sao apresentados os principais. Varios ja conhecidos no treinamento de redesneurais regulares, como a taxa de decaimento do aprendizagem, momentum e a capaci-dade de controle, o qual diminui o valor dos parametros em cada atualizacao, evitando ocrescimento e instabilidade.

10

Page 12: Introdução a Deep Learning

Tabela 1. Hiperparametros do metodo da Gradiente DescendenteTaxa dedecaimento

Ajusta a taxa de aprendizagemno tempo.

n(t) = α(β+t)γ

MomentumAjuda com o mınimo local,lida com oscilacoes

m← (1− λ)mt−1 + λ.gt

w ← wt − nt.gt − nt.mt

MinibatchReduze a variancia emgradientes. Melhor vetorizacaoem GPU.

Capacidade deControle

Prevenir a divergenciados parametros (instabilidadenumerica - weight decay)

wt ← (1− λ)wt−1 + nt.gt

DropoutEvita a sensibilidadenos parametros

Pr(ξti = π−1) = π

Pr(ξti = 0) = 1− πyti = ξti.yti

Alguns novos parametros, produto do treinamento com grandes bases de dadoscomo o ”minibatch”, ele referencia a quantidade de elementos num subconjunto do con-junto total de dados para o calculo da gradiente e atualizacao dos parametros. Outroparametro importante e ”Dropout”, encarregado desligar um porcentagem das conexoesdos neuronios de forma uniforme e aleatoria, este processo e realizado com a intencao deevitar a sensibilidade de um neuronio na resposta total.

3.3. Backpropagation: Casos Gerais

O metodo Backpropagation para casos gerais foi formulado para estruturar diferentestipo de camadas de redes neurais numa estrutura unificada, com a condicao que todas ascamadas utilizem o algoritmo backpropagation na atualizacao de seus parametros. Estascamadas devem cumprir 2 condicoes:

”A funcao de ativacao do neuronio deve ser derivavel respeito a variavel de entrada etambem respeito os parametros do neuronio.”

O metodo esta composto por 4 passos, antes de mostrar o procedimento, definire-mos a nomenclaturas dos variaveis utilizadas.

x : Entrada da rede neural.θ : Conjunto dos parametros na funcao de ativacao do neuronio.hθ : Saıda da rede neural utilizando os conjunto de parametros θ.f (l) : Funcao de ativacao da camada l.δ : Erro de retro propagacao (backpropagation).∇g(l)

J : Gradiente do funcao de custo.

Passo 1: Descompor as operacoes das camadas da rede neural em funcoes cuja

11

Page 13: Introdução a Deep Learning

derivada w.r.t. entrada e conhecida simbolicamente.

hθ(x) = (f lmax ... f (l) ... f (1))(x), onde f 1 = x, hθ(x) e ∀l : ∂f l+1

∂f le conhecido

Passo 2: Calcular o erro de retro propagacao correspondente a derivada da funcaode custo computada numericamente.

δ(l) = ∂J(θ;x,y)

∂f (l) = ∂J∂f (l+1)

∂f (l+1)

∂f (l) = δ(l+1).∂f(l+1)

∂f (l) , onde δ(lmax) = ∂J∂f (lmax) e conhecido

Passo 3: Utilizar o erro de retro propagacao para calcular a gradiente w.r.t.parametros.

∇g(l)J(θ;x, y) = ∂J(θ;x,y)

∂θ(l) = ∂J∂f (l) .

∂f (l)

∂θ(l) = δ(l+1).∂f(l+1)

∂θ(l) , onde ∂f (l)

∂θ(l)e conhecido

Passo 4: Somar as gradientes geradas sobre todas as amostras para obter agradiente total.

∇g(l)J(θ) =

m∑i=1

∇g(l)J(θ;x(i), y(j))

4. Redes Neurais Convolutivas (Convnets)

4.1. Introducao

As redes neurais convolutivas sao redes do tipo Feedforward na qual cada camada aprenderepresentacoes hierarquicas em varios nıveis de abstracao. Esta rede se baseia em algunsprincıpios ou ideias basicas em sua arquitetura:

• Conexoes Locais.• Compartilhamento de parametros.• Camadas de amostragem.

Nesta secao se apresentara o contexto historico, a arquitetura da rede e processode aprendizagem.

4.2. Contexto Historico

Em 1960, Hubel e Wiesel [14] analisaram a arquitetura funcional no cortex visual de umgato, encontrando principalmente 2 tipos de celulas, celulas simples (S-Cell) e complexas(C-Cell). Estas celulas sao ativadas em resposta a certas propriedades de entradas sen-soriais visuais como a orientacao de bordas. As celulas simples detectam caracterısticaslocais; as celulas complexas sintetizam (“pool)” as saıdas das celulas simples dentro deuma vizinhanca retinotopica.Em 1979, Fukushima [15] cria a primeira rede neural que incorporar as ideias neurofisi-ologia, chamada “Neocognitron”. Assim, introduze o conceito de redes neurais convo-lutivas (CNNs ou Conv. Net) onde o campo receptivo de uma unidade convolutiva e um

12

Page 14: Introdução a Deep Learning

vetor de pesos (filtro) e e deslocado passo a passo atraves de uma matriz de 2 dimensoes(a variavel de entrada) como os pixels de uma imagem. Cabe indicar que a rede de Fu-kushima era nao supervisionada mais se considerando como o inicio das CNNs.Em 1990, Yan LeCun [16] cria LeNet e reinventou as redes convolutivas utilizando oBackpropagation para a atualizacao dos pesos, assim como posteriormente o comparti-mento de peso e camadas de redes neurais convolutivas com conexoes adaptativas. Im-plementaram as primeiras aplicacoes bem-sucedidas de rede neurais convolutivas, sendoutilizadas para leitura de codigos zip, dıgitos, etc.Em 1992, Weng [17] cria o Cresceptron que adapta seu topologia durante seu treinamento.O Cresceptron usa uma camada Max-Pooling (MP). Aqui uma camada de 2 dimensoesou matriz de unidade de ativacoes e particionada em matrizes retangulares menores. Cadaparticao ao passar pela camada MP e substituıdo pela ativacao da unidade maximamenteativa. Posteriormente foi integrada as CNNs.Em 2006, Chellapilla [18] apresentou as primeiras redes neurais convolutivas implemen-tadas em GPU, com um speedup maior a 4 que a CNN baseada em CPU.

4.3. Arquitetura da redeAs Convnets estao estruturadas principalmente por 3 tipos de camadas:

• Camada Convolutiva (Convolutive Layer)• Camada de Amostragem (Polling Layer)• Camada Full Connected (Full Connected Layer)

As duas primeiras se encontram normalmente entre as primeiras camadas da rede, e vaosendo intercaladas (convolutiva-amostragem-convolutiva-...), este grupos de camadas ex-traem as principais caraterısticas para classificar as imagens, ativando neuronios para cadaclasse. Finalmente, a ultima camada full connected conecta todos os neuronios da camadaanterior e liga a saıda do classificacao. Na Figura 11 e apresentado uma rede convolutivaa qual a camada convolutiva recebe os dados de entrada, extrai um conjunto de features(valores de saıda da camada), os quais entram na camada de amostragem (max polling),ao sair desta camada a dimensao dados foi reduzido a pelo menos num 75% de seu di-mensao ao entrar na camada. este processo e potencialmente beneficioso para a rede dadoque reduze em 75% a probabilidade de ativacao dos neuronios, evitando o overfitting.

Figura 11. Estrutura da camadas da rede convnets

O funcionamento de cada camada e descrita a continuacao:

13

Page 15: Introdução a Deep Learning

4.3.1. Camada Convolutiva

Uma caraterıstica basica numa camada convolutiva e que cada neuronio nao esta ligado atodas as entrada da rede, so com um subconjunto local. O fato de ligar cada neuronio atodas as entradas incrementaria drasticamente o numero de conexoes na rede, assim comosua dificuldade de otimizar cada um desses parametros. Uma rede convolutiva dedicavarios neuronios para conseguir mapear toda a entrada (conetar com todas a dimensao daentrada). Na Figura 12, se tem uma feature de 3 dimensoes (e.g. uma imagem de 3 canaisRGB), cada um mapeando uma regiao local.

Figura 12. Conexoes locais numa camada Convolutiva

As redes convnets consideram o seguinte criterio: Se o conjunto pesos de umneuronio (kernel) podem descrever bem uma regiao da imagem, provavelmente essesmesmo pesos possam descrever bem outra regiao. Essa ideia e chamada de comparti-lhamento de parametros. Na Figura 13 (a) se mostra um grupo de neuronios que compar-tilham pesos, a saıdas destes neuronios sao chamados de ”receptive fields”. A conexao detodos destes ”receptive fields”numa unidade e um ”feature map”.

Figura 13. Compartilhamento de pesos (a) e parametros (b) de uma camada Con-volutiva

A rede convolutiva utiliza o metodo de aprendizagem descrito na secao 3. NaFigura 13 (b) se apresenta todos os parametros involucrados no calcula da gradiente. De-

14

Page 16: Introdução a Deep Learning

finimos: i, j, f ′′ os ındices do feature de entrada nas 3 dimensoes, i′, j′, f ′ os ındicesdos neuronios da camada convolutiva (f ′ simboliza o numero de feature maps na saıda),i′′, j′′, f ′′, f ′ os ındices do kernel do neuronio. Pode-se observar que tanto o kernel comoo feature de entrada tem o mesmo ındice na profundidade f ′′. o kernel tem mais um ındicef ′ que referencia ao feature map que pertence. A dimensao do kernel de cada neuronio eHf ×Lf ×F e o valor de cada ındice do kernel esta representado pela variavel θi′′,j′′,f ′′,f ′ .Se a profundidade do feature de entrada e F , entao podemos definir a ativacao do neuroniocom a Eq. 3:

yi′,j′,f ′ =

Hf∑i′′=1

Lf∑j′′=1

F∑f ′′=1

xi,j,f ′′ .θi′′,j′′,f ′′,f ′ (3)

E importante considerar a relacao entre os ındices das entidades involucradas na ativacaodo neuronio: i = i′ + i′′ − 1 ou i′′ = i− i′ + 1. Utilizando o passo 2 da subseccao 3.3, secalcula o erro de retro propagacao, onde f (l) representa o feature map referente a camadal. Entao, f (l+1) = yi′,j′,f ′ e f (l) = xi,j,f ′′ . Se calcula o erro de retro propagacao da camadal na Eq. 4:

δ(l) = δ(l+1).∂f (l+1)

∂f (l)=⇒ δlijf =

∑i′j′f

δl+1i′j′f ′ .θi−i′−′,j−j′+1,f,f ′ (4)

∂E

∂θi′′,j′′,f ′′= δ(l+1).

∂f (l+1)

∂θ(l)=⇒ ∂E

∂θi′′,j′′,f ′′=

∑i′j′f

δl+1i′j′f ′ .xi,j,f ′′ (5)

θi′′j′′f ′′ ← θi′′j′′f ′′ − ni′′j′′f ′′(t).gi′′j′′f ′′ (6)

Para obter a gradiente do erro realizamos o passo 3 da subseccao 3.3, onde f (l+1) = yi′,j′,f ′e θ(l) = θi′′,j′′,f ′′ . Se calcula a gradiente do erro na Eq. 5. Finalmente. na Eq. 6 se realizaa atualizacao dos parametros da rede.

4.3.2. Camada de Amostragem (Max Pooling)

Na literatura de Hubel e Wiesel, as celulas complexas no cortex visual dos mamıferos,estao encarregadas de sintetizar as saıdas das celulas simples; a camada de amostragemrealiza um processo similar com os features de entrada. Reduze uma vizinhanca dofeature em uma unidade (pegando o valor maximo), ao realizar este procedimento variasvezes reduze as variancas da representacao do feature.

Na Figura 14, a regiao vermelha (matriz de 2x2) e escolhido o maximo valor e elepassa como unidade representativa de toda a regiao. Ao eliminar seus outras 3 alternativas,reduze a probabilidade de ativar neuronios num 75%.

15

Page 17: Introdução a Deep Learning

Figura 14. Camada de Amostragem ou Max Pooling

A funcao de ativacao da camada de amostragem esta definida na equacao 7. Umadetalhe importante e indicar que o processo de Max Pooling nao contem parametrospara otimizar, entao nao existe equacoes de correcao dos parametros. O erro de retropropagacao deve passar para a seguinte camada (Eq. 8). Passando completamente so parao neuronio ativado na etapa de inferencia (Eq. 7).

yi′,j′ = maxij∈Ω(i′j′)

xij (7)

δli′j′ =∑i′j′

δl+1i′j′ .

∂fi′j′(x)

∂xij=⇒ δli′j′ = δli′j′ .Iij=argi′′j′′ maxi′′j′′∈Ω(i′j′) xi′′j′′

(8)

5. Redes Neurais Recorrentes (Deep LSTM)5.1. IntroducaoA memoria nao comeca seus pensamentos desde zero cada segundo, existe persistencianos eventos acontecidos anteriormente. As redes neurais recorrentes abrangem este tipode questoes. Eles tem lacos de conexao que permitem a persistencia da informacao. Nafigura 15 (a), A recebe uma entrada xt e emita uma saıda ht. O laco permite a informacaopassar de um estado da rede para o seguinte. Uma rede neural recorrente pode ser conce-bido como multiples copias da mesma rede, cada uma passando alguma informacao a seusucessor (Figura 15 (b)).

Figura 15. Redes Neurais Recorrentes desdobrada

Atualmente as redes neurais recorrentes tem sido eficientes numa variedade deproblemas: reconhecimento de voz, modelamento do linguagem, traducao, etc. A estru-tura de uma rede neural recorrentes tradicional e apresentada na Figura 16 (a).

16

Page 18: Introdução a Deep Learning

Figura 16. Neuronio de uma RNN tradicional e uma rede LSTM

A rede LSTMs e um tipo especial de rede neural recorrente que trabalha muitomelhor que as versoes tradicionais. As redes recorrentes associam eventos passados (me-morizam), fornecendo uma saıda para a entrada atual em funcao dessa memorizacao. NaFigura 17 (a) pode-se observar que os eventos x0 e x1 sao estados ativados que sao me-morizados em uma posterior ativacao na entrada de x3.

Figura 17. Dependencia de eventos passados nas Redes Neurais Recorrentes

A estrutura de uma rede neural recorrentes tradicional e apresentada na Figura 18(a). Embora, quando tem passado um longo perıodo entre os eventos passados e a entradaatual, as redes neurais recorrentes tradicionais tem problemas para conseguir associarestes eventos (Figura 17 (b)). A rede LSTM resolve este problema, ele e um tipo especialde rede neural recorrente com a capacidade de aprender a memorizar dependencias entrelongos perıodos.

5.2. Modelo de um neuronio de uma rede LSTM

LSTM consegue memorizar entre longos lapsos de eventos utilizando blocos de memoriae 3 unidades multiplicativas: as entrada it, a saıda ht e ”Constant Error Carousel”(CEC)Ct. Esta arquitetura foi criada analisando o problema do fluxo do erro de retro propagadoque explodia ou decaia exponencialmente. Um conjunto de passos sao apresentadosexplicando o processo de inferencia da LSTM representado na Figura 18.

17

Page 19: Introdução a Deep Learning

Figura 18. Descricao do funcionamento de um Neuronio de uma rede LSTM

O primeiro passo e saber que informacao tenho que esquecer em meu CEC, essadecisao e tomada por uma chave de esquecimento representada por ft que observa ht−1 ext e retorna um valor entre 0 e 1 definidos pela equacao 9. O segundo passo e saber qualinformacao tem que ser memorizada no CEC. Para este processo temos 2 elementos: itchamado chave de entrada (Eq. 10), que define os valores que serao atualizados e o novovetor candidato Ct (Eq. 11).

ft = σ(Wf .[ht−1, xt] + bf ) (9)

it = σ(Wi.[ht−1, xt] + bi) (10)

Ct = tanh(WC , [ht−1, xt] + bC) (11)

Ct = ft Ct−1 + it Ct (12)

ot = σ(Wo.[ht−1, xt] + bo) (13)

ht = ot tanh(Ct) (14)

ht = Lt(ht−1, xt) (15)

O terceiro passo e atualizar o CEC, conetando com a chave de esquecimento ft esomando a informacao a memorizar it Ct, este processo esta definido pela equacao 12.Finalmente processamos a saıda ht esta baseado em CEC e filtrado por ot pela Eq. 13 eEq. 14. Para fines praticos de notacao definimos a inferencia no neuronio em funcao deseus parametros de entrada na Eq. 15, considerando Ct uma variavel de estado interna doneuronio, atualizando L.

5.3. Modelo de uma Deep LSTMDefinimos N como o numero de camadas da rede, e st nossa saıda. Se realiza o seguinteprocesso iterativo:

h0t = xt; (16)

h(n)t = L(n)

t (h(n−1)t−1 , h

(n)t−1) (17)

st = W (N)(N+1)hNt + b(N+1) (18)

Para n=1,...,N e h(n)t denota a saıda no tempo t da camada n. Aqui e posterior-

mente, W (n),(n+1) denota os pesos de conexao desde a camada n para a seguinte camada

18

Page 20: Introdução a Deep Learning

(n=0: camada de entrada, n=N:camada de saıda), e W (n),(n), n > 0 contem os pesos deconexao de recurrencia na estrutura; b e o vetor de bias. Definimos na Eq. 19 e 20 asequacoes da chave de saıda e CEC para um neuronio na camada n:

h(n)t = o

(n)t tanh(C

(n)t ) (19)

C(n)t = f

(n)t C

(n)t−1 + i

(n)t C

(n)

t (20)

C(n)

t = tanh(W (n−1),(n)h(n−1)t +W (n),(n)h

(n)t−1 + b

(n)C ) (21)

Os pesos WC na Eq. 11 foram separados na Eq. 21 para denotar os pesos de conexaocom a camada anterior W (n−1),(n) e os pesos conexao de recurrencia W (n),(n). Existemvariantes do algoritmos LSTM, uma das mais importantes e LSTM Bidirecional [19].

5.4. Treinamento

A soma de quadrados dos error entre st e a referencia certa st e usada como funcao deerro. O algoritmo original de LSTM e Deep LSTM utilizam a gradiente do erro calculadocom a combinacao de RTRL (Real Time Recurrent Learning) e BPTT (BackpropagationThrought Time). O Backpropagation e truncado apos uma iteracao porque noto-se que aslongas dependencias seria tratadas pelos blocos de memoria e nao pela gradiente de retropropagacao. Um analise detalhado no calculo da gradiente pode ser encontrado em [20]e [21].

6. Restricted Boltzmann Machine (RBM)

6.1. Introducao

Uma RBM e um caso especial de uma Bolltzmann Machine (BM) sem conexoes entreneuronios da mesma camada. O modelo de uma RBM e uma rede neural de duas camadas:oculta e visıvel, com uma sinapses nao direcionada. Utiliza variaveis latentes (geralmentebinario) para modelar a distribuicao de uma entrada. Smolensky [22], inventou a RBM edeu um primeiro nome de Harmonium, posteriormente comeco ser popular quando Hin-ton [23] invento o algoritmo de aprendizagem rapido para Deep Belief Networks. RBMtem sido usada como modelo gerador de varias tipos de dados como janelas de coeficien-tes cepstrais de frequencia Mel que representam a fala, bolsas de palavras que representamdocumentos e avaliacoes de filmes pelo usuario . Seu uso mais importante e como modulode aprendizagem para construir uma Deep Belief Networks. A rede RBM geralmente saotreinados utilizando o procedimento de aprendizagem divergencia contrastive [24].

6.2. Modelo de uma RBM

RBM esta composto por 2 camadas: a camada visıvel e camada oculta representada naFigura 19 por neuronios chamados unidades binarias estocasticas. Na camada visıvel, seencontra as entradas binarias as quais sao ligadas com feature detectors binarios utilizandopesos de conexao.

19

Page 21: Introdução a Deep Learning

Figura 19. Rede Neural RBM

E chamado camada visıvel porque sao observados pelos feature detector que seencontram na camada oculta. As duas camadas sao representadas pelas vetores aleatoriosv (visıvel) e h (oculta), onde a configuracao conjunta (v, h) definida pela distribuicao deGibbs tem uma energia dada por:

E(v,h) = −∑

i∈visıvel

aivi −∑

j∈oculto

bjhj −∑i,j

vihjwij (22)

Onde vi e hj sao os estados (valores) das unidades binarias estocasticas visıvel ie oculta j respetivamente. A rede atribui a probabilidade definida na Eq. 23 de todo parvetor visıvel e oculto (v,h) em funcao de sua energia conjunta, onde Z e dado pela so-matoria de todos as possıveis pares dos vetores (v,h). Na pratica o valor de Z e intratavel.

p(v,h) =1

Ze−E(v,h) , Z =

∑v,h

e−E(v,h) (23)

A probabilidade que a rede atribui ao vetor visıvel v, definido na Eq. 24, e dadopela somatoria de todos os possıveis vetores ocultos h.

p(v) =1

Z

∑h

e−E(v,h) (24)

A probabilidade que a rede atribui aos dados de entrada de treinamento pode seraumentado ajustando os pesos para baixar a energia da configuracao da rede e aumentara energia de outros dados, em especial aqueles dados que tem baixas energias e, portanto,fazem uma grande contribuicao na p(v). A derivada da probabilidade log do vetor v emrelacao a seus pesos pode ser computada como segue na Eq. 25.

∂log(p(v))

∂wij=< vihj >data − < vihj >model (25)

Onde ”<>”sao usados para denotar a Esperanca (Expectation) sob a distribuicaoespecificada pelos ındices indicados. Para resolver a equacao 25 se utiliza a regra deaprendizagem (metodo da gradiente) na equacao 26.

∆wij = ε(< vihj >data − < vihj >model) (26)

20

Page 22: Introdução a Deep Learning

Para calcular < vihj >data selecionamos aleatoriamente um dado binario de en-trada v e calculamos o valor de h dada a probabilidade do neuronio na equacao 27.

p(hj = 1|v) = σ(bj +∑i

viwij) (27)

Onde σ(x) e a funcao logıstica sigmoide 1/(1+exp(−x)). Assim tendo o valor deh, como a rede e bidirecional podemos realizar o processo de reconstrucao de v passandopela funcao de probabilidade do neuronio.

p(vi = 1|h) = σ(bi +∑i

hjwij) (28)

Porem, calcular o valor de < vihj >data e mais complicado. Precisa-se inici-ando um estado aleatorio e alternar amostragem de Gibbs por um longo perıodo. Umaiteracao de alternar amostragem de Gibbs consiste em atualizar todas as unidades ocultasem paralelo utilizando a equacao 27, logo atualizar todas as unidades visıveis em paraleloutilizando a equacao 28, este metodo e chamado de Divergencia Contrastiva.

6.3. Divergencia Contrastiva e TreinamentoHinton [25] apresento um metodo Divergencia Contrastiva (DC), que minimiza umafuncao que aproximadamente segue a gradiente da diferenca entre duas divergenciasKullback-Leibler, mas ignora um termo complicado nesta funcao objectivo por isso naoe exatamente essa gradiente . Com efeito, Sutskever e Tielemen demonstraram que naosegue a gradiente de nenhuma funcao [26]. No entanto, tem funcionado com sucesso emmuitas aplicacoes significativas. Na Figura 20 se representa o metodo DC iterando atechegar a calcular < vihj >modelo.

Figura 20. Divergencia Contrastiva

Uma processo de aprendizagem muito mais rapido foi proposto por ????. Limi-tando a equacao a um numero aceitavel de iteracoes mostrado na equacao 29. Algumasliteraturas propor um numero de iteracoes (DC-k) onde k=1 ou um numero aceitavel com-putacionalmente, sendo quando k aumenta a aproximacao da gradiente da probabilidadedos dados de treinamento, mais aumenta seu custo computacional.

21

Page 23: Introdução a Deep Learning

∆wij = ε(< vihj >data − < vihj >recon) (29)

Basicamente e uma versao simplificada da regra de aprendizagem em 26. O al-goritmo trabalha vem mesmo que aproxima vagamente a gradiente da probabilidade logdos dados de treinamento. O passos do algoritmo de treinamento de uma RBM pode-sesimplificar em:

1. Para cada mostra de treinamento v(t) na camada visıvel

(a) Gerar < vihj >recon utilizando k iteracoes de amostras de Gibbs,comencando em v(t) (DC).

(b) Atualizar os parametros.

∆wij = ε(< vihj >data − < vihj >recon) (30)

2. Retornar para (1) ate o criterio de parada.

Existem variacoes do metodo de divergencia contrastiva, por exemplo para DC-ka divergencia contrastiva persistente que basicamente mantem o ultimo estado de vi e hide < vihj >modelo e armazena o valor para inicializar a DC na seguinte iteracao apos daatualizacao os parametros da rede.

7. Deep Belief Networks (DBN)

7.1. Introducao

Uma RBM esta limitado nos dados que ele pode representar. Seu verdadeiro poder apa-rece quando sao estruturados concatenadamente formando uma Deep Belief Network.DBN e um modelo generativo probabilıstico formado por varias camadas de variaveis la-tentes estocasticas [27]. Seu objetivo e aprender nıveis mais abstratos representacao dadistribuicao dos dados de entrada. Neste trabalho Sao apresentados 3 metodos de apren-dizagem: Algoritmo wake-sleep’, ’Greedily Training’, e ’Up-Down’ ( um hibrido dos 2primeiros algoritmos).

7.2. Modelo de uma DBM

Numa DBN, cada camada compreende um conjunto de entradas binarias ou reais. NaFigura 21 o modelo de DBN esta composta por 1 camada visıvel e 3 camadas ocultas.As duas camadas superiores da DBN com distribuicao p(h(2),h(3)) formam uma RBMcom conexoes nao direcionadas, as camadas inferiores sao chamadas de Sigmoid BeliefNetworks (SBN) dado que sao conexoes direcionadas. DBN pode ser considera comouma estrutura de simples modulos de aprendizagem RBM, que contem uma camada deunidades visıvel que representam os dados, e uma camada de unidades oculta que apren-dem a representacoes (features) que capturam uma correlacoes de ordem superior dosdados. Na Figura ?? as camadas SBN tem pesos direcionados,de reconhecimento (ver-melho) e generativos (verde).

22

Page 24: Introdução a Deep Learning

Figura 21. Rede Deeb Belief Networks

As probabilidades condicionais das camadas ocultas na direcao h(2) → h(1) eh(1) → dados sao definidas na Eq. 31 e Eq. 32.

p(h(1)j = 1|h(2)) = σ(b(1) + (W(2))ᵀh(2)) (31)

p(vi = 1|h(1)) = σ(b(0) + (W(1))ᵀh(1)) (32)

As equacoes das probabilidades das unidades binarias estocasticas e da configuracao dosistema de uma RBM se podem generalizar para modelar uma DBM. A Figura 21 mostrauma estrutura de DBN modelado na equacao (Eq. 33).

p(v,h(1),h(2),h(3)) = p(h(2),h(3))p(h(1)|h(2))p(v|h(1)) (33)

p(v,h(1),h(2),h(3)) ∝ e−E = e(h(2)W(3)h(3)+(b(2))ᵀh(2)+(b(3))ᵀh(3)) (34)

Onde a distribuicao de p(v,h(1),h(2),h(3)) dada pela energia da configuracao, semostra na Eq. 34. As probabilidades condicionais p(h(1)|h(2)) e p(v|h(1)) e igual aoproduto da probabilidade condicional de cada unidade estocastica do vetor h(1) e v.

p(h(1)|h(2)) =∏j

p(h(1)j |h(2)) (35)

p(v|h(1)) =∏i

p(vi|h(1)) (36)

7.3. Algoritmos de aprendizagem

7.3.1. Wake - Sleep

Nas camadas SBN na Figura 31, e facil melhorar os pesos generativos se a rede ja temum bom conjunto de pesos de reconhecimento. Para cada vetor de dados de treinamento

23

Page 25: Introdução a Deep Learning

os pesos de reconhecimento (wij)reco sao usados em propagacao bottom-up e estocasti-camente selecionamos os estados binarios de cada unidade oculta. Aplicando a regra deaprendizagem da Eq. 37, seguira a gradiente de uma variacional ligado a quao bem a redegera os dados de treinamento [28]. E uma simples regra de aprendizagem aproximadaque funciona bem na pratica.

∆(wij)reco ∝ hj(hi − hi) (37)

Agora, se comecamos a gerar valores desde o modelo utilizando os pesos generativos numpase Top-down, se conhece os valores verdadeiros em cada camada, entao se pode compa-rar os valores reais com os estimados pelo gerador, e ajustar os pesos de reconhecimento(wij)gen, para maximizar a probabilidade que o preditor este certo Eq. 38.

∆(wij)gen ∝ hi(hj − σ(∑i

hi(wij)gen)) (38)

7.3.2. Greedily Layer-Wise Training

DBN sao treinados uma camada por vez, tratando os valores das variaveis latentes de umacamada (que foram inferidos pela entrada de dados) como os dados para treinar a camadaseguinte.

Hinton [23] propor um metodo eficiente para treinar uma Deep Belief Network,chamado Greedily Layer-Wise Training, mostrando que se as ativacoes da camada ocultaproduzidas a partir dos dados de treinamento sao tratadas como dados de treinamento paraa proxima RBM (seguinte par conjunto de camadas) melhora a variacao do limite inferiorda probabilidade dos dados de treinamento sob o modelo composto. Este processo funci-ona bem na pratica. Posteriormente se pode realizar um ajuste fino dos pesos resultantesutilizando o metodo da gradiente descendente.

Os passos do algoritmo sao apresentados:1. Treinar a primeira camada oculta (camada de caraterısticas) que recebe direta-

mente os dados de entrada. Considerar uma RBM entre a camada de entrada (v) ea primeira camada oculta (h(1)). Nesta RBM a maximizacao da probabilidade davariave v esta dada por:

p(v) =∑h(1)

p(v|h(1)) (39)

2. Tratar a ativacao de h(1) como se for a entrada para a RBM entre as camadasocultas h(1) e h(2).Dado que os pesos W(1) treinados na primeira camada ficamfixos a funcao de probabilidade que sera maximizada nesta RBM e:

p(v,h(1)) = p(v|h(1))∑h(2)

p(h(1),h(2)) (40)

3. O treinamento como RBM para as camadas inferiores sao so para inicializar ospesos. As camadas nao so bidirecionais. A camada superior sim e uma RBM queutiliza ativacao da camada h(2) para gerar amostras de Gibbs.

p(h(1),h(2)) = p(h(1)|h(2)

)∑h(3)

p(h(2),h(3)) (41)

24

Page 26: Introdução a Deep Learning

7.3.3. Up-Down

Algumas caraterısticas importantes deste algoritmo:

• Utiliza o algoritmo Greedily Training que pode encontrar uns bons conjuntos deparametros rapidamente.• O aprendizagem e nao supervisionado mas pode-se colocar classes a cada lado

do modulo superior de RBM para criar um modelo que gere ambas a classe e osdados.• O algoritmo de aprendizagem e local: ajuste dos pesos depende so dos estados de

entrada e saida.• A comunicacao e simples: neuronio so precisam comunicar seus estados binarios

estocasticos.

O algoritmo Greedily Training e uma forma relativamente rapida e eficaz de aprender ospesos da DBN, mas nao garante necessariamente pesos de alta qualidade.Parar obter me-lhores pesos foi proposto o metodo ”up-down”; que e uma versao contrastiva do metodo”wake-sleep”mas sem algumas das desvantagens. A ideia e que, depois de pesos foramaprendidas de tal maneira que as unidades estocasticas na saıda de cada camada deve-se aproximar com uma distribuicao fatorial dos valores da camada anterior. Os pesosascendentes de reconhecimento (cor vermelho na Figura 22) estao liberados dos pesosdescendentes geradores (cor verde na Figura 22). Em seguida, os pesos de nıvel mais altopodem ser utilizados para influenciar a os de nıvel mais baixo.

Cada ”up-pass”consiste em usar os pesos de reconhecimento para escolher esto-casticamente estados para cada variavel oculta, e depois ajustar os pesos geradores com aregra de aprendizagem Eq. 37.

O ”down-pass”e semelhante na medida em que itera atraves das camadas e ajustede peso, embora a iteracao comeca nas camadas superiores e se propaga ao longo dasconexoes geradoras de cima para baixo, e os pesos de reconhecimento sao modificadosde baixo para cima com a regra de aprendizagem Eq. 38.

Figura 22. Camada h(2) - h(3) da DBN

25

Page 27: Introdução a Deep Learning

Na Figura 22 se mostra o modelo de um classificador utilizado para reconhe-cimento de dıgitos realizado por Hinton, o modelo treinado pode-ser testado no sitehttp://www.cs.toronto.edu/ hinton/adi/index.htm.

8. Stacked Autoencoders8.1. Modelo do Stacked AutoencodersOs Stacked Autoencoders sao outro tipo de estrutura em base a modulos de RBM, os quaissao muito utilizados em reducao da dimensao nao lineal para dados de alta dimensao [29].Stacked Autoencoders sao uma rede neural com uma pequena camada na intermediariaque divide a rede en 2 partes simetricas na estrutura das camadas: Encoder-Decoder. Aparte do Encoder sao blocos de RBM que vao reduzindo o numero de neuronios em cadacamada ate chegar a camada central (de menor dimensao em toda a rede).

Figura 23. Rede Neural Autoencoder

8.2. TreinamentoCada bloco e treinado como uma RBM calculando os valores dos pesos W em cada ca-mada. Ao chegar a camada central, se cria o Decoder desenrolando as camadas do Enco-der e utilizando a transposta dos pesos do Encoder Wᵀ como os novos pesos das camas doDecoder. Finalmente, o metodo da gradiente descendente pode ser utilizado para afinaros pesos [30]. Na Figura 23 se pode observar um exemplo de compressor de imagem,onde uma imagem de dimensao 28x28 pixels e reduzidos ate chegar a 30 unidades na ca-mada centra, posterior mente, a rede tem que reconstruir a imagem com essas 30 unidadeslineais [29].

26

Page 28: Introdução a Deep Learning

Referencias[1] Jurgen Schmidhuber. Deep learning in neural networks: An overview. Neural Networks,

61:85–117, 2015.

[2] Yann LeCun and M Ranzato. Deep learning tutorial. In Tutorials in International Confe-rence on Machine Learning (ICML’13). Citeseer, 2013.

[3] Yoshua Bengio, Pascal Lamblin, Dan Popovici, Hugo Larochelle, et al. Greedy layer-wise training of deep networks. Advances in neural information processing systems,19:153, 2007.

[4] Sharan Chetlur, Cliff Woolley, Philippe Vandermersch, Jonathan Cohen, John Tran, BryanCatanzaro, and Evan Shelhamer. cudnn: Efficient primitives for deep learning. arXivpreprint arXiv:1410.0759, 2014.

[5] Richard Lippmann. An introduction to computing with neural nets. IEEE Assp magazine,4(2):4–22, 1987.

[6] G Gybenko. Approximation by superposition of sigmoidal functions. Mathematics ofControl, Signals and Systems, 2(4):303–314, 1989.

[7] Eric J Humphrey, Juan P Bello, and Yann LeCun. Feature learning and deep architectures:new directions for music informatics. Journal of Intelligent Information Systems,41(3):461–481, 2013.

[8] Yoshua Bengio, Yann LeCun, et al. Scaling learning algorithms towards ai. Large-scalekernel machines, 34(5), 2007.

[9] Simon J Thorpe and Michele Fabre-Thorpe. Seeking categories in the brain. Science,291(5502):260–263, 2001.

[10] Yoshua Bengio, Aaron Courville, and Pascal Vincent. Representation learning: A reviewand new perspectives. IEEE transactions on pattern analysis and machine intelli-gence, 35(8):1798–1828, 2013.

[11] Moataz El Ayadi, Mohamed S Kamel, and Fakhri Karray. Survey on speech emotionrecognition: Features, classification schemes, and databases. Pattern Recognition,44(3):572–587, 2011.

[12] Kristen Grauman and Bastian Leibe. Visual object recognition. Synthesis lectures onartificial intelligence and machine learning, 5(2):1–181, 2011.

[13] Yann LeCun, Yoshua Bengio, and Geoffrey Hinton. Deep learning. Nature,521(7553):436–444, 2015.

[14] David H Hubel and Torsten N Wiesel. Receptive fields, binocular interaction and functi-onal architecture in the cat’s visual cortex. The Journal of physiology, 160(1):106–154, 1962.

[15] Kunihiko Fukushima. Neural network model for a mechanism of pattern recognitionunaffected by shift in position- neocognitron. ELECTRON. & COMMUN. JAPAN,62(10):11–18, 1979.

[16] B Boser Le Cun, John S Denker, D Henderson, Richard E Howard, W Hubbard, andLawrence D Jackel. Handwritten digit recognition with a back-propagation network.In Advances in neural information processing systems. Citeseer, 1990.

27

Page 29: Introdução a Deep Learning

[17] Juyang Weng, Narendra Ahuja, and Thomas S Huang. Cresceptron: a self-organizingneural network which grows adaptively. In Neural Networks, 1992. IJCNN., Inter-national Joint Conference on, volume 1, pages 576–581. IEEE, 1992.

[18] Kumar Chellapilla, Sidd Puri, and Patrice Simard. High performance convolutional neuralnetworks for document processing. In Tenth International Workshop on Frontiers inHandwriting Recognition. Suvisoft, 2006.

[19] Alex Graves, Abdel-rahman Mohamed, and Geoffrey Hinton. Speech recognition withdeep recurrent neural networks. In 2013 IEEE international conference on acoustics,speech and signal processing, pages 6645–6649. IEEE, 2013.

[20] Alex Graves and Jurgen Schmidhuber. Framewise phoneme classification with bidirecti-onal lstm and other neural network architectures. Neural Networks, 18(5):602–610,2005.

[21] Felix A Gers, Nicol N Schraudolph, and Jurgen Schmidhuber. Learning precise timingwith lstm recurrent networks. Journal of machine learning research, 3(Aug):115–143, 2002.

[22] Paul Smolensky. Information processing in dynamical systems: Foundations of harmonytheory. Technical report, DTIC Document, 1986.

[23] Geoffrey E Hinton, Simon Osindero, and Yee-Whye Teh. A fast learning algorithm fordeep belief nets. Neural computation, 18(7):1527–1554, 2006.

[24] Geoffrey Hinton. A practical guide to training restricted boltzmann machines. Momen-tum, 9(1):926, 2010.

[25] Geoffrey E Hinton. Training products of experts by minimizing contrastive divergence.Neural computation, 14(8):1771–1800, 2002.

[26] Ilya Sutskever and Tijmen Tieleman. On the convergence properties of contrastive diver-gence. In AISTATS, volume 9, pages 789–795, 2010.

[27] Geoffrey E Hinton. Deep belief networks. Scholarpedia, 4(5):5947, 2009.

[28] Geoffrey E Hinton. Learning multiple layers of representation. Trends in cognitive scien-ces, 11(10):428–434, 2007.

[29] Geoffrey Hinton. Deep belief nets. In Encyclopedia of Machine Learning, pages 267–269. Springer, 2011.

[30] Geoffrey E Hinton and Ruslan R Salakhutdinov. Reducing the dimensionality of datawith neural networks. Science, 313(5786):504–507, 2006.

28