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
Sum´ario
1 Introduc¸˜ao 3
1.1 Deep Learning e Redes Neurais . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Porque arquiteturas Deep? . . . . . . . . . . . . . . . . . . . . . . . . . 4
2 Aprendizagem de Representac¸˜oes (features) 4
2.1 Modelos tradicionais de aprendizagem . . . . . . . . . . . . . . . . . . . 5
2.2 Modelos de Aprendizagem de representac¸˜oes (Deep Learning) . . . . . . 6
2.3 Tipos de arquiteturas e protocolos de treinamento . . . . . . . . . . . . . 8
2.4 Complexidade da teoria . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3 Considerac¸˜oes nos algoritmos apresentados neste trabalho 9
3.1 Modelos Analisados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2 M´etodo da gradiente descendente . . . . . . . . . . . . . . . . . . . . . . 10
3.3 Backpropagation: Casos Gerais . . . . . . . . . . . . . . . . . . . . . . . 11
4 Redes Neurais Convolutivas (Convnets) 12
4.1 Introduc¸˜ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.2 Contexto Hist´orico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Introduc¸˜ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
5.2 Modelo de um neurˆonio 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 Introduc¸˜ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
6.2 Modelo de uma RBM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
6.3 Divergˆencia Contrastiva e Treinamento . . . . . . . . . . . . . . . . . . . 21
7 Deep Belief Networks (DBN) 22
7.1 Introduc¸˜ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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
Deep Learning
Cristian Mu˜noz1
, Ricardo Tanscheit1
, Leonardo Medoza Forero1
1
Departamento de Engenharia El´etrica
Pontif´ıcia Universidade Cat´olica do Rio de Janeiro (PUC-RJ)
RJ, Brazil
{crismunoz,ricardo,mendonza}@ele.puc-rio.br
Resumo. Deep Learning ´e um subcampo de Machine Learning que tˆem rece-
bido uma atenc¸˜ao significativa nos ´ultimos anos. O interesse aumentou drasti-
camente com a aquisic¸˜ao da DeepMind (empresa britˆanica de inteligˆencia arti-
ficial) pelo Google em 2014, que faz uso principalmente de algoritmos de Deep
Learning. Sua popularidade se deve a sua capacidade de atingir maior acur´acia
do que os algoritmos convencionais de Machine Learning e suas aplicac¸˜oes
abrangem reconhecimento de voz, processamento de imagem e processamento
de linguagem natural, por exemplo. No mundo dos neg´ocios, os algoritmos de
Deep Learning ainda est˜ao em uma etapa inicial, mas tˆem o potencial de mudar
profundamente a maneira e a velocidade com que dados s˜ao tratados.
1. Introduc¸˜ao
1.1. Deep Learning e Redes Neurais
Deep learning comec¸o como uma necessidade em Machine Learning de interpretar n´ıveis
de maior complexidade do mundo perceptual e criar sistemas perceptivos que possam
aprender essas interpretac¸˜oes olhando seu ambiente . A literatura coloca o Deep Learning
como um subcampo de redes neurais artificiais. O treinamento de redes neurais profun-
das (Deep Neural Networks) com base em backpropagation apresentou dificuldades ao
ser colocado em pr´atica pelo final dos anos 1980. Assim, tal treinamento tornou-se um
assunto de pesquisa no in´ıcio da d´ecada de 1990, levando ao desenvolvimento de novas
metodologias de treinamento. Finalmente, nos anos 2000, houve um aperfeic¸oamento da
aprendizagem supervisionada utilizando puramente Deep Learning [1].
Os algoritmos de Deep Learning dependem de unidades de processamento n˜ao
lineares estruturadas em m´ultiplas camadas em cascata (mais camadas do que os algorit-
mos convencionais – Shallow Learning) [2]. Estas unidades s˜ao geralmente compostas
por redes neurais artificiais, cujos parˆametros s˜ao estimados atrav´es do treinamento, e s˜ao
utilizadas para a extrac¸˜ao de caracter´ısticas e transformac¸˜ao dos sinais. Os algoritmos
incluem vari´aveis latentes organizadas ”Layer-Wise”(treina-se uma camada de cada vez),
tamb´em utilizadas em Deep Belief Networks e em Deep Boltzmann Machines[3].
Finalmente, os algoritmos de Deep Learning requerem uma grande quantidade
de poder computacional e uma quantidade significativa de tempo para treinamento. Em
compensac¸˜ao, os algoritmos de treinamento e de inferˆencia de arquiteturas de Deep Lear-
ning apresentam um maior paralelismo [4].
1.2. Porque arquiteturas Deep?
Com Lippman [5] e Cybenko [6], mostrou-se que 2 camadas escondidas s˜ao suficientes
para representar regi˜oes de qualquer tipo. Porem, alguns casos pode ser extremamente
dif´ıcil de descrever com modelos simples, nestes casos s˜ao necess´arios sistemas de maior
ordem. Em Deep learning podemos dizer que a ”profundidade”e o ”ordem de complexi-
dade”s˜ao sinˆonimos. Como tamb´em a largura de uma func¸˜ao ´e definido pelo n´umero de
neurˆonios numa transformac¸˜ao [7] .
Figura 1. Representac¸ ˜ao de regi˜oes em func¸ ˜ao ao n´umero de camadas
Existe evidencia empirica e teorica que MLP n˜ao pode implementar tarefas de
reconhecimento visual invariantes eficientemente. [8]. Deep Learning ´e mais eficiente
para representar algumas classes de func¸˜oes ”Trocando amplitude por profundidade”, ou
utilizar um maior n´umero de camadas. Por exemplo, para modelar um circuito detectores
de paridade, precisa-se de N-1 portas XOR num arvore de profundidade log(N), mas
precisa-se de um n´umero exponencial de portas para conseguir estruturar em 2 camadas.
2. Aprendizagem de Representac¸˜oes (features)
O desempenho dos m´etodos de Machine Learning est´a fortemente ligado a engenharia
de atributos (pre-processamento), o que requer boa parte do esforc¸o real ao momento de
implementar o algoritmo e conseguir um aprendizagem eficaz.
Figura 2. Cortex Visual em mam´ıferos ´e hier´arquica
4
Um dos melhores exemplos de aprendizagem de representac¸˜oes ´e nossa memoria.
Diferentes ´areas de estudo como neurociˆencia, 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 memoria
aprende os conceitos mais abstratos desde os n´ıveis mais baixos?. A via ventral (de re-
conhecimento) no c´ortex visual tem m´ultiplas etapas de representac¸˜ao intermediarias:
Retina-LGN-V1-V4-PIT-AIT, cada uma detecta desde bordas (nos n´ıveis prim´arios), for-
mas geom´etricas, grupos, at´e descrever objetos mais complexos como rostos ou obje-
tos [9]. Yoshua Bengio [10] propor alguns fatores gerais que podem definir uma boa
representac¸˜ao, s˜ao apresentados os principais:
• Suavidade (Smoothness): ´E um conceito b´asico presente na maioria de algoritmos
de Machine Learning, mas ´e uma problema com o aumento da dimensionalidade
da func¸˜ao a ser aprendida.
• Multiples fatores explicativos (featrures) : Os dados de uma distribuic¸˜ao podem
ser gerado por um conjunto de fatores explicativos e na maior parte, o que aprende
sobre um fator, ´e generalizado na configurac¸˜ao dos outros fatores.
• Estrutura Hierarquica de Representac¸˜oes: As representac¸˜oes que percebemos em
torno n´os pode ser definida em termo de outras representac¸˜oes (features), estrutu-
rando uma hierarquia onde os conceitos mais abstratos ou mais elevados est˜ao em
func¸˜ao dos conceitos menos abstratos.
• Manifolds: Probabilidade de concentrar a massa de dados em regi˜oes que tem
uma dimensionalidade muito menor do que o espac¸o original. Este ´e explorado
em algoritmos como por exemplo os Autoencoders.
• Simplicidade na dependˆencias de Representac¸˜oes: Uma boa representac¸˜ao de alto
n´ıvel est´a relacionados com outras representac¸˜oes atrav´es de dependˆencias sim-
ples, normalmente lineares.
Finalmente, Deep Learning se baseia no aprendizagem de Representac¸˜oes. Mu-
dando a forma do modelagem de Machine Learning que desde finais dos 50s at´e a d´ecada
passada n˜ao tinha sido mudada em essˆencia.
2.1. Modelos tradicionais de aprendizagem
O modelo tradicional de aprendizagem de Representac¸˜oes era realizado principalmente
em 2 processos, representado pelos 2 blocos na Figura 3. O bloco da esquerda representa
a engenharia de atributos (Feature Extractor) que at´e a d´ecada passada era realizada por
um especialista nos dados.
Figura 3. Modelo Tradicional: Engenharia de atributos + Classificador
Esta engenharia requer um cuidado significativo e um dom´ınio consider´avel
para projetar a extrac¸˜ao de caracter´ısticas transformando os dados brutos em uma
representac¸˜ao interna adequada para ser classificados treinando um classificador simples
5
(bloco direita Figura 3). At´e o ano 2011 o estado de arte em reconhecimento de voz
mantida essa estrutura tradicional [11]. Por exemplo, na Figura 4 se mostra o modelo
tradicional de um sistema de reconhecimento de voz.
Figura 4. Modelo Tradicional: Reconhecimento de voz (90’s - 2011)
A sinal passa por um m´etodo fixo (n˜ao trein´avel), neste caso MFCC, que estrai os
coeficientes para a representac¸˜ao da fala que s˜ao baseados na percepc¸˜ao auditiva humana.
As sa´ıdas deste bloco fixo s˜ao tratados por m´etodos n˜ao supervisionado, no caso da
Figura 4 Mix of Gaussians o qual representara subpopulac¸˜oes dentro da populac¸˜ao total
(todos os dados), realizando uma inferˆencia sobre as propriedades das sub-populac¸˜oes
dado s´o observac¸˜oes da populac¸˜ao agrupada. Finalmente esta sa´ıda s˜ao entrada para um
classificador quem termina o processo.
Em reconhecimento de objetos at´e o ano 2012, o modelamento n˜ao muda muito
[12]. Eram estruturado por 4 processos principais para conseguir extrair as principais
carater´ı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 s˜ao filtradas por m´etodos fixos (n˜ao trein´aveis) como SIFT ou HoG
que extraem carater´ısticas b´asicas da imagem (SIFT: Detector de carater´ısticas locais
(keypoint), HoG: Descreve carater´ısticas como histograma de orientac¸˜ao de gradientes).
Esta informac¸˜ao passa por um algoritmo n˜ao supervisionado como K-means, Sparse Co-
ding, etc., sendo agrupadas carater´ısticas de n´ıvel m´edio e passando por um processo de
polling antes de ingressar finalmente ao classificador trein´avel.
2.2. Modelos de Aprendizagem de representac¸˜oes (Deep Learning)
Uma proposta que mudo o modelamento cl´assico de aprendizagem em ML foi: Porque
n˜ao podemos fazer todos os m´odulos trein´aveis (engenharia de atributos + classificac¸˜ao)?.
O aprendizagem de representac¸˜oes aglomera um conjunto de m´etodos que permitem pro-
cessar os dados automaticamente e encontrar as representac¸˜oes necess´arias para detecc¸˜ao
ou classificac¸˜ao. Especificamente, Deep Learning (um subconjunto de m´etodos de apren-
dizagem de representac¸˜oes) aborda esse problema modelando hierarquias de features ou
kernels trein´aveis n˜ao lineais (Feature transform), transformando cada representac¸˜ao de
6
um n´ıvel (comec¸ando pelos dados brutos) a uma de maior n´ıvel, atingindo assim n´ıveis
de abstrac¸˜ao maiores [1].
Figura 6. Feature (ou kernel) trein´aveis + Classificador Trein´avel
A proposta de ter m´odulos trein´aveis tanto na aprendizagem de representac¸˜oes e na
classificac¸˜ao (Figura 7) s˜ao os aspectos mais importante de Deep Learning. Um algoritmo
´e considerado Deep se utiliza mais de um n´ıvel de representac¸˜ao. Essas representac¸˜oes
s˜ao aprendidas desde os dados utilizando um procedimento de aprendizagem de prop´osito
geral.
Figura 7. Feature(ou kernel) trein´aveis + Classificador Trein´avel
Na Figura 7 se mostra uma estrutura hier´arquica de 3 n´ıveis de representac¸˜ao.
A entrada, o primeiro n´ıvel de representac¸˜ao s˜ao os pixeis da imagem (a foto mesma),
no primeiro feature transform (Baixo N´ıvel) s˜ao detetados tipicamente a presencia ou
ausˆencia de bordas com tamb´em orientac¸˜ao especifica e locac¸˜ao ma imagem. O segundo
feature transform (M´edio N´ıvel) extrai as partes de um objeto e o terceiro feature trans-
form (Alto N´ıvel) detecta objeto ou combinac¸˜ao das partes. Os feature maps de Alto N´ıvel
s˜ao mais globais e invariantes. Os Feature maps de Baixo N´ıvel s˜ao compartilhados entre
os diferentes Feature maps das camadas posteriores.
Figura 8. Hierarquias de representac¸ ˜oes incrementam o n´ıvel de abstrac¸ ˜ao
7
Yann LeCun [13], apresenta exemplos de hierarquia de representac¸˜oes de algumas
´areas de pesquisa importantes na comunidade de Machine Learning , s˜ao apresentadas na
Figura 8.
2.3. Tipos de arquiteturas e protocolos de treinamento
Atualmente existem trˆes tipos de arquiteturas de Deep Learning. Como se mostra na
Figura 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 n˜ao supervisionados, podem utilizar alguns dos seguintes proto-
colos de treinamento:
• Puramente supervisionado: A inicializac¸˜ao de parˆametros aleat´oria. Este trei-
namento utiliza tipicamente o m´etodo da gradiente descendente, utilizando Back-
propagation para calcular as gradientes.
• N˜ao supervisionado + classificador supervisionado no topo: O treinamento ´e
realizada em cada camada n˜ao supervisionada, uma depois da outra. Depois as
camadas supervisionada s˜ao treinadas, mantendo as outras camadas fixas.
• N˜ao supervisionado + sintonizac¸˜ao global supervisionada: O treinamento ´e
realizada em cada camada n˜ao supervisionada, uma depois da outra. Se adiciona
uma camada classificadora (opcional) e retreina-se supervisionadamente toda a
arquitetura.
2.4. Complexidade da teoria
Deep learning atualmente tem v´arios t´opico discut´ıveis, como metodologia de vanguarda,
Yann LeCun [13] menciona alguns aspeitos importantes.
• N˜ao convexidade: Muitos dos algoritmos em Machine Learning tem limitac¸˜oes
para resolver problemas em que a func¸˜ao de custo ´e n˜ao convexa (linear regres-
sion/ Ridge regression, SVM, etc.). Frequentemente, o custo por insistir em con-
vexidade ´e um insuport´avel incremento no tamanho do modelo, ou o escalamento
de propriedades do algoritmo de otimizac¸˜ao (O(n2
), O(n3
), ...).
8
Muitos outros algoritmos n˜ao tem limitac¸˜oes com problemas de otimizac¸˜ao n˜ao
convexa, por exemplo os Modelo Oculto de Markov e sistemas baseados em
Graph-Transformer-Network (em reconhecimento de escrita), assim como os Mo-
delos ocultos de Markov discriminativos (em reconhecimento de voz) s˜ao sistemas
n˜ao convexo.
Para lidiar com as mais complexas e interessantes tarefas de aprendizagem (vis˜ao,
voz, escrita), Deep learning implementa sistemas de arquitetura profunda (Deep),
para o aprendizagem de representac¸˜oes hier´arquicas (carater´ısticas baixo n´ıvel,
representac¸˜oes de n´ıvel m´edio, conceitos de alto n´ıvel). Estas arquiteturas lidam
inevitavelmente func¸˜ao de custo n˜ao convexa.
• N˜ao tem limite de Generalizac¸˜ao: Segun Yann Lecun, n˜ao existe uma m´etrica
que quantifique o limite a generalizac¸˜ao dos algoritmos de Deep Learning. O
melhor referencia at´e agora ´e o VC-Bound, o n´umero de VC que da uma referencia
do nivel de generalizac¸˜ao do algoritmo. Se ela for infinita, o algoritmo pode cair
em overfitting. Em Deep learning, a maioria de algoritmos tem um valor de VC-
dimension finita. Atualmente dada o pouco fundamento matem´atico da teoria, ´e
dif´ıcil provar qualquer coisa sobre sistemas Deep Learning.
3. Considerac¸˜oes nos algoritmos apresentados neste trabalho
3.1. Modelos Analisados
Na Figura 10 mostra-se on esquema classificando os algoritmos de arquitetura Deep e n˜ao
Deep. Agrupando tamb´em pelo tipo de modelo (redes neurais ou probabil´ısticos) e tipo
de aprendizagem. Podemos observar que existem algoritmos de Deep Learning do tipo
supervisionado e n˜ao supervisionado, e h´ıbridos entre os modelos probabil´ıstico e redes
neurais.
Figura 10. Contexto hist´orico em Deep Learning
9
Neste trabalho os algoritmos com base em redes neurais puros e misturado com
modelos probabil´ısticos ser˜ao descrita desde a sec¸˜ao 4. Os algoritmos do Deep Learning
podem ser estruturados em base a o modelamento com redes neurais e modelos proba-
bil´ısticos. Os algoritmos apresentados neste trabalho s˜ao 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 m´etodo da gradiente
descendente no processo de aprendizagem. A rede Restricted Boltzmann Machine ´e apre-
sentada mesmo que ela n˜ao pertenc¸a neste grupo de algoritmos, dado que ´e o modulo
principal para descrever os posteriores algoritmos. Antes de apresentar os algoritmos, va-
mos descrever alguns hiperparametros utilizados na configurac¸˜ao do m´etodo da gradiente
descendente e o m´etodo de backpropation para casos gerais.
3.2. M´etodo da gradiente descendente
Em um sistema de aprendizagem supervisionado. Seja o conjunto de pares de entradas
e sa´ıdas (x, y), definimos a func¸˜ao de perda l(ˆy, y) como a medida do custo de inferir ˆy
quando a reposta real ´e y e selecionamos uma fam´ılia F de func¸˜oes fw(x) parametrizado
pelo vetor de pesos w. Se procura a func¸˜ao f ∈ F que minimiza a func¸˜ao l(ˆy, y). A
teoria de aprendizagem estat´ıstico justifica a minimizac¸˜ao do rico emp´ırico (En) que mede
o desempenho dos dados de treinamento en vez da esperanc¸a do rico (E) que mede o
desempenho geral (intrat´avel), ambos func¸˜oes est˜ao 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 minimizac¸˜ao do risco emp´ırico ´e realizado utilizando o m´etodo da gradiente
descendente se baseia na atualizac¸˜ao dos parˆametros de uma camada na direc¸˜ao negativa
da gradiente do risco emp´ırico. A equac¸˜ao de atualizac¸˜ao dos parˆametros ´e mostrada na
Eq. 2.
wt ← wt − nt(t).gt gt = wEn(f) (2)
O m´etodo tem alguns hiperparˆametros que ajudam na performance do m´etodo.
Na tabela 1 s˜ao apresentados os principais. V´arios j´a conhecidos no treinamento de redes
neurais regulares, como a taxa de decaimento do aprendizagem, momentum e a capaci-
dade de controle, o qual diminui o valor dos parˆametros em cada atualizac¸˜ao, evitando o
crescimento e instabilidade.
10
Tabela 1. Hiperparametros do m´etodo da Gradiente Descendente
Taxa de
decaimento
Ajusta a taxa de aprendizagem
no tempo.
n(t) = α
(β+t)γ
Momentum
Ajuda com o m´ınimo local,
lida com oscilac¸˜oes
m ← (1 − λ)mt−1 + λ.gt
w ← wt − nt.gt − ˜nt.mt
Minibatch
Reduze a variˆancia em
gradientes. Melhor vetorizac¸˜ao
em GPU.
Capacidade de
Controle
Prevenir a divergˆencia
dos parˆametros (instabilidade
num´erica - weight decay)
wt ← (1 − λ)wt−1 + nt.gt
Dropout
Evita a sensibilidade
nos parˆametros
Pr(ξti = π−1
) = π
Pr(ξti = 0) = 1 − π
yti = ξti.yti
Alguns novos parˆametros, produto do treinamento com grandes bases de dados
como o ”minibatch”, ele referencia a quantidade de elementos num subconjunto do con-
junto total de dados para o calculo da gradiente e atualizac¸˜ao dos parˆametros. Outro
parˆametro importante ´e ”Dropout”, encarregado desligar um porcentagem das conex˜oes
dos neurˆonios de forma uniforme e aleat´oria, este processo ´e realizado com a intenc¸˜ao de
evitar a sensibilidade de um neurˆonio na resposta total.
3.3. Backpropagation: Casos Gerais
O m´etodo Backpropagation para casos gerais foi formulado para estruturar diferentes
tipo de camadas de redes neurais numa estrutura unificada, com a condic¸˜ao que todas as
camadas utilizem o algoritmo backpropagation na atualizac¸˜ao de seus parˆametros. Estas
camadas devem cumprir 2 condic¸˜oes:
”A func¸˜ao de ativac¸˜ao do neurˆonio deve ser deriv´avel respeito a vari´avel de entrada e
tamb´em respeito os parˆametros do neurˆonio.”
O m´etodo est´a composto por 4 passos, antes de mostrar o procedimento, definire-
mos a nomenclaturas dos vari´aveis utilizadas.
x : Entrada da rede neural.
θ : Conjunto dos parˆametros na func¸˜ao de ativac¸˜ao do neurˆonio.
hθ : Sa´ıda da rede neural utilizando os conjunto de parˆametros θ.
f(l)
: Func¸˜ao de ativac¸˜ao da camada l.
δ : Erro de retro propagac¸˜ao (backpropagation).
g(l)
J : Gradiente do func¸˜ao de custo.
Passo 1: Descompor as operac¸˜oes das camadas da rede neural em func¸˜oes cuja
11
derivada w.r.t. entrada ´e conhecida simbolicamente.
hθ(x) = (flmax
◦ ... ◦ f(l)
◦ ... ◦ f(1)
)(x), onde f1
= x, hθ(x) e ∀l : ∂fl+1
∂fl ´e conhecido
Passo 2: Calcular o erro de retro propagac¸˜ao correspondente `a derivada da func¸˜ao
de 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 propagac¸˜ao para calcular a gradiente w.r.t.
parˆametros.
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 a
gradiente total.
g(l)
J(θ) =
m
i=1
g(l)
J(θ; x(i)
, y(j)
)
4. Redes Neurais Convolutivas (Convnets)
4.1. Introduc¸˜ao
As redes neurais convolutivas s˜ao redes do tipo Feedforward na qual cada camada aprende
representac¸˜oes hier´arquicas em v´arios n´ıveis de abstrac¸˜ao. Esta rede se baseia em alguns
princ´ıpios ou ideias b´asicas em sua arquitetura:
• Conex˜oes Locais.
• Compartilhamento de parˆametros.
• Camadas de amostragem.
Nesta sec¸˜ao se apresentara o contexto hist´orico, a arquitetura da rede e processo
de aprendizagem.
4.2. Contexto Hist´orico
Em 1960, Hubel e Wiesel [14] analisaram a arquitetura funcional no cortex visual de um
gato, encontrando principalmente 2 tipos de c´elulas, c´elulas simples (S-Cell) e complexas
(C-Cell). Estas c´elulas s˜ao ativadas em resposta a certas propriedades de entradas sen-
soriais visuais como a orientac¸˜ao de bordas. As c´elulas simples detectam caracter´ısticas
locais; as c´elulas complexas sintetizam (“pool)” as sa´ıdas das c´elulas simples dentro de
uma vizinhanc¸a retinot´opica.
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
vetor de pesos (filtro) e ´e deslocado passo a passo atrav´es de uma matriz de 2 dimens˜oes
(a vari´avel de entrada) como os pixels de uma imagem. Cabe indicar que a rede de Fu-
kushima era n˜ao supervisionada mais se considerando como o inicio das CNNs.
Em 1990, Yan LeCun [16] cria LeNet e reinventou as redes convolutivas utilizando o
Backpropagation para a atualizac¸˜ao dos pesos, assim como posteriormente o comparti-
mento de peso e camadas de redes neurais convolutivas com conex˜oes adaptativas. Im-
plementaram as primeiras aplicac¸˜oes bem-sucedidas de rede neurais convolutivas, sendo
utilizadas para leitura de c´odigos 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 dimens˜oes
ou matriz de unidade de ativac¸˜oes ´e particionada em matrizes retangulares menores. Cada
partic¸˜ao ao passar pela camada MP ´e substitu´ıdo pela ativac¸˜ao da unidade maximamente
ativa. 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 rede
As Convnets est˜ao 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 v˜ao
sendo intercaladas (convolutiva-amostragem-convolutiva-...), este grupos de camadas ex-
traem as principais carater´ısticas para classificar as imagens, ativando neurˆonios para cada
classe. Finalmente, a ultima camada full connected conecta todos os neurˆonios da camada
anterior e liga `a sa´ıda do classificac¸˜ao. Na Figura 11 ´e apresentado uma rede convolutiva
a 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 dimens˜ao dados foi reduzido a pelo menos num 75% de seu di-
mens˜ao ao entrar na camada. este processo ´e potencialmente beneficioso para a rede dado
que reduze em 75% a probabilidade de ativac¸˜ao dos neurˆonios, evitando o overfitting.
Figura 11. Estrutura da camadas da rede convnets
O funcionamento de cada camada ´e descrita a continuac¸˜ao:
13
4.3.1. Camada Convolutiva
Uma carater´ıstica b´asica numa camada convolutiva ´e que cada neurˆonio n˜ao est´a ligado a
todas as entrada da rede, s´o com um subconjunto local. O fato de ligar cada neurˆonio a
todas as entradas incrementaria drasticamente o n´umero de conex˜oes na rede, assim como
sua dificuldade de otimizar cada um desses parˆametros. Uma rede convolutiva dedica
v´arios neurˆonios para conseguir mapear toda a entrada (conetar com todas a dimens˜ao da
entrada). Na Figura 12, se tem uma feature de 3 dimens˜oes (e.g. uma imagem de 3 canais
RGB), cada um mapeando uma regi˜ao local.
Figura 12. Conex˜oes locais numa camada Convolutiva
As redes convnets consideram o seguinte crit´erio: Se o conjunto pesos de um
neurˆonio (kernel) podem descrever bem uma regi˜ao da imagem, provavelmente esses
mesmo pesos possam descrever bem outra regi˜ao. Essa ideia ´e chamada de comparti-
lhamento de parˆametros. Na Figura 13 (a) se mostra um grupo de neurˆonios que compar-
tilham pesos, a sa´ıdas destes neurˆonios s˜ao chamados de ”receptive fields”. A conex˜ao de
todos destes ”receptive fields”numa unidade ´e um ”feature map”.
Figura 13. Compartilhamento de pesos (a) e parˆametros (b) de uma camada Con-
volutiva
A rede convolutiva utiliza o m´etodo de aprendizagem descrito na sec¸˜ao 3. Na
Figura 13 (b) se apresenta todos os parˆametros involucrados no calcula da gradiente. De-
14
finimos: i, j, f os ´ındices do feature de entrada nas 3 dimens˜oes, i , j , f os ´ındices
dos neurˆonios da camada convolutiva (f simboliza o n´umero de feature maps na sa´ıda),
i , j , f , f os ´ındices do kernel do neurˆonio. Pode-se observar que tanto o kernel como
o feature de entrada tem o mesmo ´ındice na profundidade f . o kernel tem mais um ´ındice
f que referencia ao feature map que pertence. A dimens˜ao do kernel de cada neurˆonio ´e
Hf ×Lf ×F e o valor de cada ´ındice do kernel esta representado pela vari´avel θi ,j ,f ,f .
Se a profundidade do feature de entrada ´e F, ent˜ao podemos definir a ativac¸˜ao do neurˆonio
com 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 relac¸˜ao entre os ´ındices das entidades involucradas na ativac¸˜ao
do neurˆonio: i = i + i − 1 ou i = i − i + 1. Utilizando o passo 2 da subsecc¸˜ao 3.3, se
calcula o erro de retro propagac¸˜ao, onde f(l)
representa o feature map referente `a camada
l. Ent˜ao, f(l+1)
= yi ,j ,f e f(l)
= xi,j,f . Se calcula o erro de retro propagac¸˜ao da camada
l na Eq. 4:
δ(l)
= δ(l+1)
.
∂f(l+1)
∂f(l)
=⇒ δl
ijf =
i j f
δl+1
i 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+1
i 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 subsecc¸˜ao 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 realiza
a atualizac¸˜ao dos parˆametros da rede.
4.3.2. Camada de Amostragem (Max Pooling)
Na literatura de Hubel e Wiesel, as c´elulas complexas no cortex visual dos mam´ıferos,
est˜ao encarregadas de sintetizar as sa´ıdas das c´elulas simples; a camada de amostragem
realiza um processo similar com os features de entrada. Reduze uma vizinhanc¸a do
feature em uma unidade (pegando o valor m´aximo), ao realizar este procedimento varias
vezes reduze as varianc¸as da representac¸˜ao do feature.
Na Figura 14, a regi˜ao vermelha (matriz de 2x2) ´e escolhido o m´aximo valor e ele
passa como unidade representativa de toda a regi˜ao. Ao eliminar seus outras 3 alternativas,
reduze a probabilidade de ativar neurˆonios num 75%.
15
Figura 14. Camada de Amostragem ou Max Pooling
A func¸˜ao de ativac¸˜ao da camada de amostragem est´a definida na equac¸˜ao 7. Uma
detalhe importante ´e indicar que o processo de Max Pooling n˜ao contem parˆametros
para otimizar, ent˜ao n˜ao existe equac¸˜oes de correc¸˜ao dos parˆametros. O erro de retro
propagac¸˜ao deve passar para a seguinte camada (Eq. 8). Passando completamente s´o para
o neurˆonio ativado na etapa de inferˆencia (Eq. 7).
yi ,j = max
ij∈Ω(i j )
xij (7)
δl
i j =
i j
δl+1
i j .
∂fi j (x)
∂xij
=⇒ δl
i j = δl
i j .Iij=argi j maxi j ∈Ω(i j ) xi j
(8)
5. Redes Neurais Recorrentes (Deep LSTM)
5.1. Introduc¸˜ao
A memoria n˜ao comec¸a seus pensamentos desde zero cada segundo, existe persistˆencia
nos eventos acontecidos anteriormente. As redes neurais recorrentes abrangem este tipo
de quest˜oes. Eles tem lac¸os de conex˜ao que permitem a persistˆencia da informac¸˜ao. Na
figura 15 (a), A recebe uma entrada xt e emita uma sa´ıda ht. O lac¸o permite `a informac¸˜ao
passar 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 informac¸˜ao a seu
sucessor (Figura 15 (b)).
Figura 15. Redes Neurais Recorrentes desdobrada
Atualmente as redes neurais recorrentes tem sido eficientes numa variedade de
problemas: reconhecimento de voz, modelamento do linguagem, traduc¸˜ao, etc. A estru-
tura de uma rede neural recorrentes tradicional ´e apresentada na Figura 16 (a).
16
Figura 16. Neurˆonio de uma RNN tradicional e uma rede LSTM
A rede LSTMs ´e um tipo especial de rede neural recorrente que trabalha muito
melhor que as vers˜oes tradicionais. As redes recorrentes associam eventos passados (me-
morizam), fornecendo uma sa´ıda para a entrada atual em func¸˜ao dessa memorizac¸˜ao. Na
Figura 17 (a) pode-se observar que os eventos x0 e x1 s˜ao estados ativados que s˜ao me-
morizados em uma posterior ativac¸˜ao na entrada de x3.
Figura 17. Dependˆencia 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 entrada
atual, as redes neurais recorrentes tradicionais tem problemas para conseguir associar
estes eventos (Figura 17 (b)). A rede LSTM resolve este problema, ele ´e um tipo especial
de rede neural recorrente com a capacidade de aprender a memorizar dependˆencias entre
longos per´ıodos.
5.2. Modelo de um neurˆonio de uma rede LSTM
LSTM consegue memorizar entre longos lapsos de eventos utilizando blocos de memoria
e 3 unidades multiplicativas: as entrada it, a sa´ıda ht e ”Constant Error Carousel”(CEC)
Ct. Est´a arquitetura foi criada analisando o problema do fluxo do erro de retro propagado
que explodia ou decaia exponencialmente. Um conjunto de passos s˜ao apresentados
explicando o processo de inferˆencia da LSTM representado na Figura 18.
17
Figura 18. Descric¸ ˜ao do funcionamento de um Neurˆonio de uma rede LSTM
O primeiro passo ´e saber que informac¸˜ao tenho que esquecer em meu CEC, essa
decis˜ao ´e tomada por uma chave de esquecimento representada por ft que observa ht−1 e
xt e retorna um valor entre 0 e 1 definidos pela equac¸˜ao 9. O segundo passo ´e saber qual
informac¸˜ao tem que ser memorizada no CEC. Para este processo temos 2 elementos: it
chamado chave de entrada (Eq. 10), que define os valores que ser˜ao atualizados e o novo
vetor 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 e
somando a informac¸˜ao a memorizar it Ct, este processo est´a definido pela equac¸˜ao 12.
Finalmente processamos a sa´ıda ht esta baseado em CEC ´e filtrado por ot pela Eq. 13 e
Eq. 14. Para fines pr´aticos de notac¸˜ao definimos a inferˆencia no neurˆonio em func¸˜ao de
seus parˆametros de entrada na Eq. 15, considerando Ct uma vari´avel de estado interna do
neurˆonio, atualizando L.
5.3. Modelo de uma Deep LSTM
Definimos N como o n´umero de camadas da rede, e ˆst nossa sa´ıda. Se realiza o seguinte
processo iterativo:
h0
t = xt; (16)
h
(n)
t = L
(n)
t (h
(n−1)
t−1 , h
(n)
t−1) (17)
ˆst = W(N)(N+1)
hN
t + 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 conex˜ao desde a camada n para a seguinte camada
18
(n=0: camada de entrada, n=N:camada de sa´ıda), e W(n),(n)
, n > 0 contem os pesos de
conex˜ao de recurrˆencia na estrutura; b ´e o vetor de bias. Definimos na Eq. 19 e 20 as
equac¸˜oes da chave de sa´ıda e CEC para um neurˆonio 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 conex˜ao
com a camada anterior W(n−1),(n)
e os pesos conex˜ao de recurrˆencia W(n),(n)
. Existem
variantes 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 func¸˜ao de
erro. O algoritmo original de LSTM e Deep LSTM utilizam a gradiente do erro calculado
com a combinac¸˜ao de RTRL (Real Time Recurrent Learning) e BPTT (Backpropagation
Throught Time). O Backpropagation ´e truncado ap´os uma iterac¸˜ao porque noto-se que as
longas dependˆencias seria tratadas pelos blocos de memoria e n˜ao pela gradiente de retro
propagac¸˜ao. Um analise detalhado no calculo da gradiente pode ser encontrado em [20]
e [21].
6. Restricted Boltzmann Machine (RBM)
6.1. Introduc¸˜ao
Uma RBM ´e um caso especial de uma Bolltzmann Machine (BM) sem conex˜oes entre
neurˆonios da mesma camada. O modelo de uma RBM ´e uma rede neural de duas camadas:
oculta e vis´ıvel, com uma sinapses n˜ao direcionada. Utiliza vari´aveis latentes (geralmente
bin´ario) para modelar a distribuic¸˜ao de uma entrada. Smolensky [22], inventou a RBM e
deu um primeiro nome de Harmonium, posteriormente comec¸o ser popular quando Hin-
ton [23] invento o algoritmo de aprendizagem r´apido para Deep Belief Networks. RBM
tem sido usada como modelo gerador de varias tipos de dados como janelas de coeficien-
tes cepstrais de freq¨uˆencia Mel que representam a fala, bolsas de palavras que representam
documentos e avaliac¸˜oes de filmes pelo usu´ario . Seu uso mais importante ´e como modulo
de aprendizagem para construir uma Deep Belief Networks. A rede RBM geralmente s˜ao
treinados utilizando o procedimento de aprendizagem divergˆencia contrastive [24].
6.2. Modelo de uma RBM
RBM est´a composto por 2 camadas: a camada vis´ıvel e camada oculta representada na
Figura 19 por neurˆonios chamados unidades binarias estoc´asticas. Na camada vis´ıvel, se
encontra as entradas binarias as quais s˜ao ligadas com feature detectors bin´arios utilizando
pesos de conex˜ao.
19
Figura 19. Rede Neural RBM
´E chamado camada vis´ıvel porque s˜ao observados pelos feature detector que se
encontram na camada oculta. As duas camadas s˜ao representadas pelas vetores aleat´orios
v (vis´ıvel) e h (oculta), onde a configurac¸˜ao conjunta (v, h) definida pela distribuic¸˜ao de
Gibbs tem uma energia dada por:
E(v,h) = −
i∈vis´ıvel
aivi −
j∈oculto
bjhj −
i,j
vihjwij (22)
Onde vi e hj s˜ao os estados (valores) das unidades binarias estoc´asticas vis´ıvel i
e oculta j respetivamente. A rede atribui a probabilidade definida na Eq. 23 de todo par
vetor vis´ıvel e oculto (v, h) em func¸˜ao de sua energia conjunta, onde Z ´e dado pela so-
mat´oria de todos as poss´ıveis pares dos vetores (v, h). Na pratica o valor de Z ´e intrat´avel.
p(v, h) =
1
Z
e−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 dado
pela somat´oria 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 ser
aumentado ajustando os pesos para baixar a energia da configurac¸˜ao da rede e aumentar
a energia de outros dados, em especial aqueles dados que tˆem baixas energias e, portanto,
fazem uma grande contribuic¸˜ao na p(v). A derivada da probabilidade log do vetor v em
relac¸˜ao a seus pesos pode ser computada como segue na Eq. 25.
∂log(p(v))
∂wij
=< vihj >data − < vihj >model (25)
Onde ”<>”s˜ao usados para denotar a Esperanc¸a (Expectation) sob a distribuic¸˜ao
especificada pelos ´ındices indicados. Para resolver a equac¸˜ao 25 se utiliza a regra de
aprendizagem (m´etodo da gradiente) na equac¸˜ao 26.
∆wij = (< vihj >data − < vihj >model) (26)
20
Para calcular < vihj >data selecionamos aleatoriamente um dado bin´ario de en-
trada v e calculamos o valor de h dada a probabilidade do neurˆonio na equac¸˜ao 27.
p(hj = 1|v) = σ(bj +
i
viwij) (27)
Onde σ(x) ´e a func¸˜ao log´ıstica sigmoide 1/(1+exp(−x)). Assim tendo o valor de
h, como a rede e bidirecional podemos realizar o processo de reconstruc¸˜ao de v passando
pela func¸˜ao de probabilidade do neurˆonio.
p(vi = 1|h) = σ(bi +
i
hjwij) (28)
Porem, calcular o valor de < vihj >data ´e mais complicado. Precisa-se inici-
ando um estado aleat´orio e alternar amostragem de Gibbs por um longo per´ıodo. Uma
iterac¸˜ao de alternar amostragem de Gibbs consiste em atualizar todas as unidades ocultas
em paralelo utilizando a equac¸˜ao 27, logo atualizar todas as unidades vis´ıveis em paralelo
utilizando a equac¸˜ao 28, este m´etodo ´e chamado de Divergˆencia Contrastiva.
6.3. Divergˆencia Contrastiva e Treinamento
Hinton [25] apresento um m´etodo Divergencia Contrastiva (DC), que minimiza uma
func¸˜ao que aproximadamente segue `a gradiente da diferenc¸a entre duas divergˆencias
Kullback-Leibler, mas ignora um termo complicado nesta func¸˜ao objectivo por isso n˜ao
´e exatamente essa gradiente . Com efeito, Sutskever e Tielemen demonstraram que n˜ao
segue a gradiente de nenhuma func¸˜ao [26]. No entanto, tem funcionado com sucesso em
muitas aplicac¸˜oes significativas. Na Figura 20 se representa o m´etodo DC iterando ate
chegar a calcular < vihj >modelo.
Figura 20. Divergˆencia Contrastiva
Uma processo de aprendizagem muito mais r´apido foi proposto por ????. Limi-
tando a equac¸˜ao a um n´umero aceit´avel de iterac¸˜oes mostrado na equac¸˜ao 29. Algumas
literaturas propor um n´umero de iterac¸˜oes (DC-k) onde k=1 ou um n´umero aceit´avel com-
putacionalmente, sendo quando k aumenta a aproximac¸˜ao da gradiente da probabilidade
dos dados de treinamento, mais aumenta seu custo computacional.
21
∆wij = (< vihj >data − < vihj >recon) (29)
Basicamente ´e uma vers˜ao simplificada da regra de aprendizagem em 26. O al-
goritmo trabalha vem mesmo que aproxima vagamente a gradiente da probabilidade log
dos dados de treinamento. O passos do algoritmo de treinamento de uma RBM pode-se
simplificar em:
1. Para cada mostra de treinamento v(t)
na camada vis´ıvel
(a) Gerar < vihj >recon utilizando k iterac¸˜oes de amostras de Gibbs,
comenc¸ando em v(t)
(DC).
(b) Atualizar os parˆametros.
∆wij = (< vihj >data − < vihj >recon) (30)
2. Retornar para (1) at´e o crit´erio de parada.
Existem variac¸˜oes do m´etodo de divergˆencia contrastiva, por exemplo para DC-k
a divergˆencia contrastiva persistente que basicamente mantem o ultimo estado de vi e hi
de < vihj >modelo e armazena o valor para inicializar a DC na seguinte iterac¸˜ao ap´os da
atualizac¸˜ao os parˆametros da rede.
7. Deep Belief Networks (DBN)
7.1. Introduc¸˜ao
Uma RBM est´a limitado nos dados que ele pode representar. Seu verdadeiro poder apa-
rece quando s˜ao estruturados concatenadamente formando uma Deep Belief Network.
DBN ´e um modelo generativo probabil´ıstico formado por varias camadas de vari´aveis la-
tentes estoc´asticas [27]. Seu objetivo ´e aprender n´ıveis mais abstratos representac¸˜ao da
distribuic¸˜ao dos dados de entrada. Neste trabalho S˜ao apresentados 3 m´etodos de apren-
dizagem: Algoritmo wake-sleep’, ’Greedily Training’, e ’Up-Down’ ( um hibrido dos 2
primeiros algoritmos).
7.2. Modelo de uma DBM
Numa DBN, cada camada compreende um conjunto de entradas binarias ou reais. Na
Figura 21 o modelo de DBN est´a composta por 1 camada vis´ıvel e 3 camadas ocultas.
As duas camadas superiores da DBN com distribuic¸˜ao p(h(2)
, h(3)
) formam uma RBM
com conex˜oes n˜ao direcionadas, as camadas inferiores s˜ao chamadas de Sigmoid Belief
Networks (SBN) dado que s˜ao conex˜oes direcionadas. DBN pode ser considera como
uma estrutura de simples m´odulos de aprendizagem RBM, que contem uma camada de
unidades vis´ıvel que representam os dados, e uma camada de unidades oculta que apren-
dem a representac¸˜oes (features) que capturam uma correlac¸˜oes de ordem superior dos
dados. Na Figura ?? as camadas SBN tem pesos direcionados,de reconhecimento (ver-
melho) e generativos (verde).
22
Figura 21. Rede Deeb Belief Networks
As probabilidades condicionais das camadas ocultas na direc¸˜ao h(2)
→ h(1)
e
h(1)
→ dados s˜ao 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 equac¸˜oes das probabilidades das unidades binarias estoc´asticas e da configurac¸˜ao do
sistema de uma RBM se podem generalizar para modelar uma DBM. A Figura 21 mostra
uma estrutura de DBN modelado na equac¸˜ao (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 distribuic¸˜ao de p(v, h(1)
, h(2)
, h(3)
) dada pela energia da configurac¸˜ao, se
mostra na Eq. 34. As probabilidades condicionais p(h(1)
|h(2)
) e p(v|h(1)
) ´e igual ao
produto da probabilidade condicional de cada unidade estoc´astica 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 f´acil melhorar os pesos generativos se a rede j´a tem
um bom conjunto de pesos de reconhecimento. Para cada vetor de dados de treinamento
23
os pesos de reconhecimento (wij)reco s˜ao usados em propagac¸˜ao bottom-up e estocasti-
camente selecionamos os estados bin´arios de cada unidade oculta. Aplicando a regra de
aprendizagem da Eq. 37, seguira a gradiente de uma variacional ligado a qu˜ao bem a rede
gera os dados de treinamento [28]. ´E uma simples regra de aprendizagem aproximada
que funciona bem na pratica.
∆(wij)reco ∝ hj(hi − ˆhi) (37)
Agora, se comec¸amos a gerar valores desde o modelo utilizando os pesos generativos num
pase Top-down, se conhece os valores verdadeiros em cada camada, ent˜ao 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 s˜ao treinados uma camada por vez, tratando os valores das vari´aveis latentes de uma
camada (que foram inferidos pela entrada de dados) como os dados para treinar a camada
seguinte.
Hinton [23] propor um m´etodo eficiente para treinar uma Deep Belief Network,
chamado Greedily Layer-Wise Training, mostrando que se as ativac¸˜oes da camada oculta
produzidas a partir dos dados de treinamento s˜ao tratadas como dados de treinamento para
a pr´oxima RBM (seguinte par conjunto de camadas) melhora a variac¸˜ao do limite inferior
da 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 resultantes
utilizando o m´etodo da gradiente descendente.
Os passos do algoritmo s˜ao 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) e
a primeira camada oculta (h(1)
). Nesta RBM a maximizac¸˜ao da probabilidade da
variave v est´a dada por:
p(v) =
h(1)
p(v|h(1)
) (39)
2. Tratar a ativac¸˜ao de h(1)
como se for a entrada para a RBM entre as camadas
ocultas h(1)
e h(2)
.Dado que os pesos W(1)
treinados na primeira camada ficam
fixos a func¸˜ao 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 s˜ao s´o para inicializar os
pesos. As camadas n˜ao s´o bidirecionais. A camada superior sim ´e uma RBM que
utiliza ativac¸˜ao 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
7.3.3. Up-Down
Algumas carater´ısticas importantes deste algoritmo:
• Utiliza o algoritmo Greedily Training que pode encontrar uns bons conjuntos de
parˆametros rapidamente.
• O aprendizagem ´e n˜ao supervisionado mas pode-se colocar classes a cada lado
do modulo superior de RBM para criar um modelo que gere ambas a classe e os
dados.
• O algoritmo de aprendizagem ´e local: ajuste dos pesos depende s´o dos estados de
entrada e saida.
• A comunicac¸˜ao ´e simples: neurˆonio s´o precisam comunicar seus estados bin´arios
estoc´asticos.
O algoritmo Greedily Training ´e uma forma relativamente r´apida e eficaz de aprender os
pesos da DBN, mas n˜ao garante necessariamente pesos de alta qualidade.Parar obter me-
lhores pesos foi proposto o m´etodo ”up-down”; que ´e uma vers˜ao contrastiva do m´etodo
”wake-sleep”mas sem algumas das desvantagens. A ideia ´e que, depois de pesos foram
aprendidas de tal maneira que as unidades estoc´asticas na sa´ıda de cada camada deve-
se aproximar com uma distribuic¸˜ao fatorial dos valores da camada anterior. Os pesos
ascendentes de reconhecimento (cor vermelho na Figura 22) est˜ao liberados dos pesos
descendentes geradores (cor verde na Figura 22). Em seguida, os pesos de n´ıvel mais alto
podem 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 vari´avel oculta, e depois ajustar os pesos geradores com a
regra de aprendizagem Eq. 37.
O ”down-pass”´e semelhante na medida em que itera atrav´es das camadas e ajuste
de peso, embora a iterac¸˜ao comec¸a nas camadas superiores e se propaga ao longo das
conex˜oes geradoras de cima para baixo, e os pesos de reconhecimento s˜ao modificados
de baixo para cima com a regra de aprendizagem Eq. 38.
Figura 22. Camada h(2)
- h(3)
da DBN
25
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 site
http://www.cs.toronto.edu/ hinton/adi/index.htm.
8. Stacked Autoencoders
8.1. Modelo do Stacked Autoencoders
Os Stacked Autoencoders s˜ao outro tipo de estrutura em base a m´odulos de RBM, os quais
s˜ao muito utilizados em reduc¸˜ao da dimens˜ao n˜ao lineal para dados de alta dimens˜ao [29].
Stacked Autoencoders s˜ao uma rede neural com uma pequena camada na intermediaria
que divide `a rede en 2 partes sim´etricas na estrutura das camadas: Encoder-Decoder. A
parte do Encoder s˜ao blocos de RBM que v˜ao reduzindo o n´umero de neurˆonios em cada
camada at´e chegar `a camada central (de menor dimens˜ao em toda a rede).
Figura 23. Rede Neural Autoencoder
8.2. Treinamento
Cada 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 do
Decoder. Finalmente, o m´etodo da gradiente descendente pode ser utilizado para afinar
os pesos [30]. Na Figura 23 se pode observar um exemplo de compressor de imagem,
onde uma imagem de dimens˜ao 28x28 pixels ´e reduzidos at´e chegar a 30 unidades na ca-
mada centra, posterior mente, a rede tem que reconstruir a imagem com essas 30 unidades
lineais [29].
26
Referˆencias
[1] J¨urgen 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, Bryan
Catanzaro, and Evan Shelhamer. cudnn: Efficient primitives for deep learning. arXiv
preprint 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 of
Control, 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-scale
kernel machines, 34(5), 2007.
[9] Simon J Thorpe and Mich`ele Fabre-Thorpe. Seeking categories in the brain. Science,
291(5502):260–263, 2001.
[10] Yoshua Bengio, Aaron Courville, and Pascal Vincent. Representation learning: A review
and 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 emotion
recognition: Features, classification schemes, and databases. Pattern Recognition,
44(3):572–587, 2011.
[12] Kristen Grauman and Bastian Leibe. Visual object recognition. Synthesis lectures on
artificial 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 recognition
unaffected 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, and
Lawrence D Jackel. Handwritten digit recognition with a back-propagation network.
In Advances in neural information processing systems. Citeseer, 1990.
27
[17] Juyang Weng, Narendra Ahuja, and Thomas S Huang. Cresceptron: a self-organizing
neural 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 neural
networks for document processing. In Tenth International Workshop on Frontiers in
Handwriting Recognition. Suvisoft, 2006.
[19] Alex Graves, Abdel-rahman Mohamed, and Geoffrey Hinton. Speech recognition with
deep recurrent neural networks. In 2013 IEEE international conference on acoustics,
speech and signal processing, pages 6645–6649. IEEE, 2013.
[20] Alex Graves and J¨urgen 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 J¨urgen Schmidhuber. Learning precise timing
with lstm recurrent networks. Journal of machine learning research, 3(Aug):115–
143, 2002.
[22] Paul Smolensky. Information processing in dynamical systems: Foundations of harmony
theory. Technical report, DTIC Document, 1986.
[23] Geoffrey E Hinton, Simon Osindero, and Yee-Whye Teh. A fast learning algorithm for
deep 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 data
with neural networks. Science, 313(5786):504–507, 2006.
28

Introdução a Deep Learning

  • 1.
    Pontif´ıcia Universidade Cat´olicado 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
  • 2.
    Sum´ario 1 Introduc¸˜ao 3 1.1Deep Learning e Redes Neurais . . . . . . . . . . . . . . . . . . . . . . 3 1.2 Porque arquiteturas Deep? . . . . . . . . . . . . . . . . . . . . . . . . . 4 2 Aprendizagem de Representac¸˜oes (features) 4 2.1 Modelos tradicionais de aprendizagem . . . . . . . . . . . . . . . . . . . 5 2.2 Modelos de Aprendizagem de representac¸˜oes (Deep Learning) . . . . . . 6 2.3 Tipos de arquiteturas e protocolos de treinamento . . . . . . . . . . . . . 8 2.4 Complexidade da teoria . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3 Considerac¸˜oes nos algoritmos apresentados neste trabalho 9 3.1 Modelos Analisados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.2 M´etodo da gradiente descendente . . . . . . . . . . . . . . . . . . . . . . 10 3.3 Backpropagation: Casos Gerais . . . . . . . . . . . . . . . . . . . . . . . 11 4 Redes Neurais Convolutivas (Convnets) 12 4.1 Introduc¸˜ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 4.2 Contexto Hist´orico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Introduc¸˜ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 5.2 Modelo de um neurˆonio 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 Introduc¸˜ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 6.2 Modelo de uma RBM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 6.3 Divergˆencia Contrastiva e Treinamento . . . . . . . . . . . . . . . . . . . 21 7 Deep Belief Networks (DBN) 22
  • 3.
    7.1 Introduc¸˜ao .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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
  • 4.
    Deep Learning Cristian Mu˜noz1 ,Ricardo Tanscheit1 , Leonardo Medoza Forero1 1 Departamento de Engenharia El´etrica Pontif´ıcia Universidade Cat´olica do Rio de Janeiro (PUC-RJ) RJ, Brazil {crismunoz,ricardo,mendonza}@ele.puc-rio.br Resumo. Deep Learning ´e um subcampo de Machine Learning que tˆem rece- bido uma atenc¸˜ao significativa nos ´ultimos anos. O interesse aumentou drasti- camente com a aquisic¸˜ao da DeepMind (empresa britˆanica de inteligˆencia arti- ficial) pelo Google em 2014, que faz uso principalmente de algoritmos de Deep Learning. Sua popularidade se deve a sua capacidade de atingir maior acur´acia do que os algoritmos convencionais de Machine Learning e suas aplicac¸˜oes abrangem reconhecimento de voz, processamento de imagem e processamento de linguagem natural, por exemplo. No mundo dos neg´ocios, os algoritmos de Deep Learning ainda est˜ao em uma etapa inicial, mas tˆem o potencial de mudar profundamente a maneira e a velocidade com que dados s˜ao tratados. 1. Introduc¸˜ao 1.1. Deep Learning e Redes Neurais Deep learning comec¸o como uma necessidade em Machine Learning de interpretar n´ıveis de maior complexidade do mundo perceptual e criar sistemas perceptivos que possam aprender essas interpretac¸˜oes olhando seu ambiente . A literatura coloca o Deep Learning como um subcampo de redes neurais artificiais. O treinamento de redes neurais profun- das (Deep Neural Networks) com base em backpropagation apresentou dificuldades ao ser colocado em pr´atica pelo final dos anos 1980. Assim, tal treinamento tornou-se um assunto de pesquisa no in´ıcio da d´ecada de 1990, levando ao desenvolvimento de novas metodologias de treinamento. Finalmente, nos anos 2000, houve um aperfeic¸oamento da aprendizagem supervisionada utilizando puramente Deep Learning [1]. Os algoritmos de Deep Learning dependem de unidades de processamento n˜ao lineares estruturadas em m´ultiplas camadas em cascata (mais camadas do que os algorit- mos convencionais – Shallow Learning) [2]. Estas unidades s˜ao geralmente compostas por redes neurais artificiais, cujos parˆametros s˜ao estimados atrav´es do treinamento, e s˜ao utilizadas para a extrac¸˜ao de caracter´ısticas e transformac¸˜ao dos sinais. Os algoritmos incluem vari´aveis latentes organizadas ”Layer-Wise”(treina-se uma camada de cada vez), tamb´em utilizadas em Deep Belief Networks e em Deep Boltzmann Machines[3]. Finalmente, os algoritmos de Deep Learning requerem uma grande quantidade de poder computacional e uma quantidade significativa de tempo para treinamento. Em compensac¸˜ao, os algoritmos de treinamento e de inferˆencia de arquiteturas de Deep Lear- ning apresentam um maior paralelismo [4].
  • 5.
    1.2. Porque arquiteturasDeep? Com Lippman [5] e Cybenko [6], mostrou-se que 2 camadas escondidas s˜ao suficientes para representar regi˜oes de qualquer tipo. Porem, alguns casos pode ser extremamente dif´ıcil de descrever com modelos simples, nestes casos s˜ao necess´arios sistemas de maior ordem. Em Deep learning podemos dizer que a ”profundidade”e o ”ordem de complexi- dade”s˜ao sinˆonimos. Como tamb´em a largura de uma func¸˜ao ´e definido pelo n´umero de neurˆonios numa transformac¸˜ao [7] . Figura 1. Representac¸ ˜ao de regi˜oes em func¸ ˜ao ao n´umero de camadas Existe evidencia empirica e teorica que MLP n˜ao pode implementar tarefas de reconhecimento visual invariantes eficientemente. [8]. Deep Learning ´e mais eficiente para representar algumas classes de func¸˜oes ”Trocando amplitude por profundidade”, ou utilizar um maior n´umero de camadas. Por exemplo, para modelar um circuito detectores de paridade, precisa-se de N-1 portas XOR num arvore de profundidade log(N), mas precisa-se de um n´umero exponencial de portas para conseguir estruturar em 2 camadas. 2. Aprendizagem de Representac¸˜oes (features) O desempenho dos m´etodos de Machine Learning est´a fortemente ligado a engenharia de atributos (pre-processamento), o que requer boa parte do esforc¸o real ao momento de implementar o algoritmo e conseguir um aprendizagem eficaz. Figura 2. Cortex Visual em mam´ıferos ´e hier´arquica 4
  • 6.
    Um dos melhoresexemplos de aprendizagem de representac¸˜oes ´e nossa memoria. Diferentes ´areas de estudo como neurociˆencia, 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 memoria aprende os conceitos mais abstratos desde os n´ıveis mais baixos?. A via ventral (de re- conhecimento) no c´ortex visual tem m´ultiplas etapas de representac¸˜ao intermediarias: Retina-LGN-V1-V4-PIT-AIT, cada uma detecta desde bordas (nos n´ıveis prim´arios), for- mas geom´etricas, grupos, at´e descrever objetos mais complexos como rostos ou obje- tos [9]. Yoshua Bengio [10] propor alguns fatores gerais que podem definir uma boa representac¸˜ao, s˜ao apresentados os principais: • Suavidade (Smoothness): ´E um conceito b´asico presente na maioria de algoritmos de Machine Learning, mas ´e uma problema com o aumento da dimensionalidade da func¸˜ao a ser aprendida. • Multiples fatores explicativos (featrures) : Os dados de uma distribuic¸˜ao podem ser gerado por um conjunto de fatores explicativos e na maior parte, o que aprende sobre um fator, ´e generalizado na configurac¸˜ao dos outros fatores. • Estrutura Hierarquica de Representac¸˜oes: As representac¸˜oes que percebemos em torno n´os pode ser definida em termo de outras representac¸˜oes (features), estrutu- rando uma hierarquia onde os conceitos mais abstratos ou mais elevados est˜ao em func¸˜ao dos conceitos menos abstratos. • Manifolds: Probabilidade de concentrar a massa de dados em regi˜oes que tem uma dimensionalidade muito menor do que o espac¸o original. Este ´e explorado em algoritmos como por exemplo os Autoencoders. • Simplicidade na dependˆencias de Representac¸˜oes: Uma boa representac¸˜ao de alto n´ıvel est´a relacionados com outras representac¸˜oes atrav´es de dependˆencias sim- ples, normalmente lineares. Finalmente, Deep Learning se baseia no aprendizagem de Representac¸˜oes. Mu- dando a forma do modelagem de Machine Learning que desde finais dos 50s at´e a d´ecada passada n˜ao tinha sido mudada em essˆencia. 2.1. Modelos tradicionais de aprendizagem O modelo tradicional de aprendizagem de Representac¸˜oes era realizado principalmente em 2 processos, representado pelos 2 blocos na Figura 3. O bloco da esquerda representa a engenharia de atributos (Feature Extractor) que at´e a d´ecada passada era realizada por um especialista nos dados. Figura 3. Modelo Tradicional: Engenharia de atributos + Classificador Esta engenharia requer um cuidado significativo e um dom´ınio consider´avel para projetar a extrac¸˜ao de caracter´ısticas transformando os dados brutos em uma representac¸˜ao interna adequada para ser classificados treinando um classificador simples 5
  • 7.
    (bloco direita Figura3). At´e o ano 2011 o estado de arte em reconhecimento de voz mantida essa estrutura tradicional [11]. Por exemplo, na Figura 4 se mostra o modelo tradicional de um sistema de reconhecimento de voz. Figura 4. Modelo Tradicional: Reconhecimento de voz (90’s - 2011) A sinal passa por um m´etodo fixo (n˜ao trein´avel), neste caso MFCC, que estrai os coeficientes para a representac¸˜ao da fala que s˜ao baseados na percepc¸˜ao auditiva humana. As sa´ıdas deste bloco fixo s˜ao tratados por m´etodos n˜ao supervisionado, no caso da Figura 4 Mix of Gaussians o qual representara subpopulac¸˜oes dentro da populac¸˜ao total (todos os dados), realizando uma inferˆencia sobre as propriedades das sub-populac¸˜oes dado s´o observac¸˜oes da populac¸˜ao agrupada. Finalmente esta sa´ıda s˜ao entrada para um classificador quem termina o processo. Em reconhecimento de objetos at´e o ano 2012, o modelamento n˜ao muda muito [12]. Eram estruturado por 4 processos principais para conseguir extrair as principais carater´ı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 s˜ao filtradas por m´etodos fixos (n˜ao trein´aveis) como SIFT ou HoG que extraem carater´ısticas b´asicas da imagem (SIFT: Detector de carater´ısticas locais (keypoint), HoG: Descreve carater´ısticas como histograma de orientac¸˜ao de gradientes). Esta informac¸˜ao passa por um algoritmo n˜ao supervisionado como K-means, Sparse Co- ding, etc., sendo agrupadas carater´ısticas de n´ıvel m´edio e passando por um processo de polling antes de ingressar finalmente ao classificador trein´avel. 2.2. Modelos de Aprendizagem de representac¸˜oes (Deep Learning) Uma proposta que mudo o modelamento cl´assico de aprendizagem em ML foi: Porque n˜ao podemos fazer todos os m´odulos trein´aveis (engenharia de atributos + classificac¸˜ao)?. O aprendizagem de representac¸˜oes aglomera um conjunto de m´etodos que permitem pro- cessar os dados automaticamente e encontrar as representac¸˜oes necess´arias para detecc¸˜ao ou classificac¸˜ao. Especificamente, Deep Learning (um subconjunto de m´etodos de apren- dizagem de representac¸˜oes) aborda esse problema modelando hierarquias de features ou kernels trein´aveis n˜ao lineais (Feature transform), transformando cada representac¸˜ao de 6
  • 8.
    um n´ıvel (comec¸andopelos dados brutos) a uma de maior n´ıvel, atingindo assim n´ıveis de abstrac¸˜ao maiores [1]. Figura 6. Feature (ou kernel) trein´aveis + Classificador Trein´avel A proposta de ter m´odulos trein´aveis tanto na aprendizagem de representac¸˜oes e na classificac¸˜ao (Figura 7) s˜ao os aspectos mais importante de Deep Learning. Um algoritmo ´e considerado Deep se utiliza mais de um n´ıvel de representac¸˜ao. Essas representac¸˜oes s˜ao aprendidas desde os dados utilizando um procedimento de aprendizagem de prop´osito geral. Figura 7. Feature(ou kernel) trein´aveis + Classificador Trein´avel Na Figura 7 se mostra uma estrutura hier´arquica de 3 n´ıveis de representac¸˜ao. A entrada, o primeiro n´ıvel de representac¸˜ao s˜ao os pixeis da imagem (a foto mesma), no primeiro feature transform (Baixo N´ıvel) s˜ao detetados tipicamente a presencia ou ausˆencia de bordas com tamb´em orientac¸˜ao especifica e locac¸˜ao ma imagem. O segundo feature transform (M´edio N´ıvel) extrai as partes de um objeto e o terceiro feature trans- form (Alto N´ıvel) detecta objeto ou combinac¸˜ao das partes. Os feature maps de Alto N´ıvel s˜ao mais globais e invariantes. Os Feature maps de Baixo N´ıvel s˜ao compartilhados entre os diferentes Feature maps das camadas posteriores. Figura 8. Hierarquias de representac¸ ˜oes incrementam o n´ıvel de abstrac¸ ˜ao 7
  • 9.
    Yann LeCun [13],apresenta exemplos de hierarquia de representac¸˜oes de algumas ´areas de pesquisa importantes na comunidade de Machine Learning , s˜ao apresentadas na Figura 8. 2.3. Tipos de arquiteturas e protocolos de treinamento Atualmente existem trˆes tipos de arquiteturas de Deep Learning. Como se mostra na Figura 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 n˜ao supervisionados, podem utilizar alguns dos seguintes proto- colos de treinamento: • Puramente supervisionado: A inicializac¸˜ao de parˆametros aleat´oria. Este trei- namento utiliza tipicamente o m´etodo da gradiente descendente, utilizando Back- propagation para calcular as gradientes. • N˜ao supervisionado + classificador supervisionado no topo: O treinamento ´e realizada em cada camada n˜ao supervisionada, uma depois da outra. Depois as camadas supervisionada s˜ao treinadas, mantendo as outras camadas fixas. • N˜ao supervisionado + sintonizac¸˜ao global supervisionada: O treinamento ´e realizada em cada camada n˜ao supervisionada, uma depois da outra. Se adiciona uma camada classificadora (opcional) e retreina-se supervisionadamente toda a arquitetura. 2.4. Complexidade da teoria Deep learning atualmente tem v´arios t´opico discut´ıveis, como metodologia de vanguarda, Yann LeCun [13] menciona alguns aspeitos importantes. • N˜ao convexidade: Muitos dos algoritmos em Machine Learning tem limitac¸˜oes para resolver problemas em que a func¸˜ao de custo ´e n˜ao convexa (linear regres- sion/ Ridge regression, SVM, etc.). Frequentemente, o custo por insistir em con- vexidade ´e um insuport´avel incremento no tamanho do modelo, ou o escalamento de propriedades do algoritmo de otimizac¸˜ao (O(n2 ), O(n3 ), ...). 8
  • 10.
    Muitos outros algoritmosn˜ao tem limitac¸˜oes com problemas de otimizac¸˜ao n˜ao convexa, por exemplo os Modelo Oculto de Markov e sistemas baseados em Graph-Transformer-Network (em reconhecimento de escrita), assim como os Mo- delos ocultos de Markov discriminativos (em reconhecimento de voz) s˜ao sistemas n˜ao convexo. Para lidiar com as mais complexas e interessantes tarefas de aprendizagem (vis˜ao, voz, escrita), Deep learning implementa sistemas de arquitetura profunda (Deep), para o aprendizagem de representac¸˜oes hier´arquicas (carater´ısticas baixo n´ıvel, representac¸˜oes de n´ıvel m´edio, conceitos de alto n´ıvel). Estas arquiteturas lidam inevitavelmente func¸˜ao de custo n˜ao convexa. • N˜ao tem limite de Generalizac¸˜ao: Segun Yann Lecun, n˜ao existe uma m´etrica que quantifique o limite a generalizac¸˜ao dos algoritmos de Deep Learning. O melhor referencia at´e agora ´e o VC-Bound, o n´umero de VC que da uma referencia do nivel de generalizac¸˜ao do algoritmo. Se ela for infinita, o algoritmo pode cair em overfitting. Em Deep learning, a maioria de algoritmos tem um valor de VC- dimension finita. Atualmente dada o pouco fundamento matem´atico da teoria, ´e dif´ıcil provar qualquer coisa sobre sistemas Deep Learning. 3. Considerac¸˜oes nos algoritmos apresentados neste trabalho 3.1. Modelos Analisados Na Figura 10 mostra-se on esquema classificando os algoritmos de arquitetura Deep e n˜ao Deep. Agrupando tamb´em pelo tipo de modelo (redes neurais ou probabil´ısticos) e tipo de aprendizagem. Podemos observar que existem algoritmos de Deep Learning do tipo supervisionado e n˜ao supervisionado, e h´ıbridos entre os modelos probabil´ıstico e redes neurais. Figura 10. Contexto hist´orico em Deep Learning 9
  • 11.
    Neste trabalho osalgoritmos com base em redes neurais puros e misturado com modelos probabil´ısticos ser˜ao descrita desde a sec¸˜ao 4. Os algoritmos do Deep Learning podem ser estruturados em base a o modelamento com redes neurais e modelos proba- bil´ısticos. Os algoritmos apresentados neste trabalho s˜ao 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 m´etodo da gradiente descendente no processo de aprendizagem. A rede Restricted Boltzmann Machine ´e apre- sentada mesmo que ela n˜ao pertenc¸a neste grupo de algoritmos, dado que ´e o modulo principal para descrever os posteriores algoritmos. Antes de apresentar os algoritmos, va- mos descrever alguns hiperparametros utilizados na configurac¸˜ao do m´etodo da gradiente descendente e o m´etodo de backpropation para casos gerais. 3.2. M´etodo da gradiente descendente Em um sistema de aprendizagem supervisionado. Seja o conjunto de pares de entradas e sa´ıdas (x, y), definimos a func¸˜ao de perda l(ˆy, y) como a medida do custo de inferir ˆy quando a reposta real ´e y e selecionamos uma fam´ılia F de func¸˜oes fw(x) parametrizado pelo vetor de pesos w. Se procura a func¸˜ao f ∈ F que minimiza a func¸˜ao l(ˆy, y). A teoria de aprendizagem estat´ıstico justifica a minimizac¸˜ao do rico emp´ırico (En) que mede o desempenho dos dados de treinamento en vez da esperanc¸a do rico (E) que mede o desempenho geral (intrat´avel), ambos func¸˜oes est˜ao 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 minimizac¸˜ao do risco emp´ırico ´e realizado utilizando o m´etodo da gradiente descendente se baseia na atualizac¸˜ao dos parˆametros de uma camada na direc¸˜ao negativa da gradiente do risco emp´ırico. A equac¸˜ao de atualizac¸˜ao dos parˆametros ´e mostrada na Eq. 2. wt ← wt − nt(t).gt gt = wEn(f) (2) O m´etodo tem alguns hiperparˆametros que ajudam na performance do m´etodo. Na tabela 1 s˜ao apresentados os principais. V´arios j´a conhecidos no treinamento de redes neurais regulares, como a taxa de decaimento do aprendizagem, momentum e a capaci- dade de controle, o qual diminui o valor dos parˆametros em cada atualizac¸˜ao, evitando o crescimento e instabilidade. 10
  • 12.
    Tabela 1. Hiperparametrosdo m´etodo da Gradiente Descendente Taxa de decaimento Ajusta a taxa de aprendizagem no tempo. n(t) = α (β+t)γ Momentum Ajuda com o m´ınimo local, lida com oscilac¸˜oes m ← (1 − λ)mt−1 + λ.gt w ← wt − nt.gt − ˜nt.mt Minibatch Reduze a variˆancia em gradientes. Melhor vetorizac¸˜ao em GPU. Capacidade de Controle Prevenir a divergˆencia dos parˆametros (instabilidade num´erica - weight decay) wt ← (1 − λ)wt−1 + nt.gt Dropout Evita a sensibilidade nos parˆametros Pr(ξti = π−1 ) = π Pr(ξti = 0) = 1 − π yti = ξti.yti Alguns novos parˆametros, produto do treinamento com grandes bases de dados como o ”minibatch”, ele referencia a quantidade de elementos num subconjunto do con- junto total de dados para o calculo da gradiente e atualizac¸˜ao dos parˆametros. Outro parˆametro importante ´e ”Dropout”, encarregado desligar um porcentagem das conex˜oes dos neurˆonios de forma uniforme e aleat´oria, este processo ´e realizado com a intenc¸˜ao de evitar a sensibilidade de um neurˆonio na resposta total. 3.3. Backpropagation: Casos Gerais O m´etodo Backpropagation para casos gerais foi formulado para estruturar diferentes tipo de camadas de redes neurais numa estrutura unificada, com a condic¸˜ao que todas as camadas utilizem o algoritmo backpropagation na atualizac¸˜ao de seus parˆametros. Estas camadas devem cumprir 2 condic¸˜oes: ”A func¸˜ao de ativac¸˜ao do neurˆonio deve ser deriv´avel respeito a vari´avel de entrada e tamb´em respeito os parˆametros do neurˆonio.” O m´etodo est´a composto por 4 passos, antes de mostrar o procedimento, definire- mos a nomenclaturas dos vari´aveis utilizadas. x : Entrada da rede neural. θ : Conjunto dos parˆametros na func¸˜ao de ativac¸˜ao do neurˆonio. hθ : Sa´ıda da rede neural utilizando os conjunto de parˆametros θ. f(l) : Func¸˜ao de ativac¸˜ao da camada l. δ : Erro de retro propagac¸˜ao (backpropagation). g(l) J : Gradiente do func¸˜ao de custo. Passo 1: Descompor as operac¸˜oes das camadas da rede neural em func¸˜oes cuja 11
  • 13.
    derivada w.r.t. entrada´e conhecida simbolicamente. hθ(x) = (flmax ◦ ... ◦ f(l) ◦ ... ◦ f(1) )(x), onde f1 = x, hθ(x) e ∀l : ∂fl+1 ∂fl ´e conhecido Passo 2: Calcular o erro de retro propagac¸˜ao correspondente `a derivada da func¸˜ao de 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 propagac¸˜ao para calcular a gradiente w.r.t. parˆametros. 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 a gradiente total. g(l) J(θ) = m i=1 g(l) J(θ; x(i) , y(j) ) 4. Redes Neurais Convolutivas (Convnets) 4.1. Introduc¸˜ao As redes neurais convolutivas s˜ao redes do tipo Feedforward na qual cada camada aprende representac¸˜oes hier´arquicas em v´arios n´ıveis de abstrac¸˜ao. Esta rede se baseia em alguns princ´ıpios ou ideias b´asicas em sua arquitetura: • Conex˜oes Locais. • Compartilhamento de parˆametros. • Camadas de amostragem. Nesta sec¸˜ao se apresentara o contexto hist´orico, a arquitetura da rede e processo de aprendizagem. 4.2. Contexto Hist´orico Em 1960, Hubel e Wiesel [14] analisaram a arquitetura funcional no cortex visual de um gato, encontrando principalmente 2 tipos de c´elulas, c´elulas simples (S-Cell) e complexas (C-Cell). Estas c´elulas s˜ao ativadas em resposta a certas propriedades de entradas sen- soriais visuais como a orientac¸˜ao de bordas. As c´elulas simples detectam caracter´ısticas locais; as c´elulas complexas sintetizam (“pool)” as sa´ıdas das c´elulas simples dentro de uma vizinhanc¸a retinot´opica. 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
  • 14.
    vetor de pesos(filtro) e ´e deslocado passo a passo atrav´es de uma matriz de 2 dimens˜oes (a vari´avel de entrada) como os pixels de uma imagem. Cabe indicar que a rede de Fu- kushima era n˜ao supervisionada mais se considerando como o inicio das CNNs. Em 1990, Yan LeCun [16] cria LeNet e reinventou as redes convolutivas utilizando o Backpropagation para a atualizac¸˜ao dos pesos, assim como posteriormente o comparti- mento de peso e camadas de redes neurais convolutivas com conex˜oes adaptativas. Im- plementaram as primeiras aplicac¸˜oes bem-sucedidas de rede neurais convolutivas, sendo utilizadas para leitura de c´odigos 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 dimens˜oes ou matriz de unidade de ativac¸˜oes ´e particionada em matrizes retangulares menores. Cada partic¸˜ao ao passar pela camada MP ´e substitu´ıdo pela ativac¸˜ao da unidade maximamente ativa. 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 rede As Convnets est˜ao 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 v˜ao sendo intercaladas (convolutiva-amostragem-convolutiva-...), este grupos de camadas ex- traem as principais carater´ısticas para classificar as imagens, ativando neurˆonios para cada classe. Finalmente, a ultima camada full connected conecta todos os neurˆonios da camada anterior e liga `a sa´ıda do classificac¸˜ao. Na Figura 11 ´e apresentado uma rede convolutiva a 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 dimens˜ao dados foi reduzido a pelo menos num 75% de seu di- mens˜ao ao entrar na camada. este processo ´e potencialmente beneficioso para a rede dado que reduze em 75% a probabilidade de ativac¸˜ao dos neurˆonios, evitando o overfitting. Figura 11. Estrutura da camadas da rede convnets O funcionamento de cada camada ´e descrita a continuac¸˜ao: 13
  • 15.
    4.3.1. Camada Convolutiva Umacarater´ıstica b´asica numa camada convolutiva ´e que cada neurˆonio n˜ao est´a ligado a todas as entrada da rede, s´o com um subconjunto local. O fato de ligar cada neurˆonio a todas as entradas incrementaria drasticamente o n´umero de conex˜oes na rede, assim como sua dificuldade de otimizar cada um desses parˆametros. Uma rede convolutiva dedica v´arios neurˆonios para conseguir mapear toda a entrada (conetar com todas a dimens˜ao da entrada). Na Figura 12, se tem uma feature de 3 dimens˜oes (e.g. uma imagem de 3 canais RGB), cada um mapeando uma regi˜ao local. Figura 12. Conex˜oes locais numa camada Convolutiva As redes convnets consideram o seguinte crit´erio: Se o conjunto pesos de um neurˆonio (kernel) podem descrever bem uma regi˜ao da imagem, provavelmente esses mesmo pesos possam descrever bem outra regi˜ao. Essa ideia ´e chamada de comparti- lhamento de parˆametros. Na Figura 13 (a) se mostra um grupo de neurˆonios que compar- tilham pesos, a sa´ıdas destes neurˆonios s˜ao chamados de ”receptive fields”. A conex˜ao de todos destes ”receptive fields”numa unidade ´e um ”feature map”. Figura 13. Compartilhamento de pesos (a) e parˆametros (b) de uma camada Con- volutiva A rede convolutiva utiliza o m´etodo de aprendizagem descrito na sec¸˜ao 3. Na Figura 13 (b) se apresenta todos os parˆametros involucrados no calcula da gradiente. De- 14
  • 16.
    finimos: i, j,f os ´ındices do feature de entrada nas 3 dimens˜oes, i , j , f os ´ındices dos neurˆonios da camada convolutiva (f simboliza o n´umero de feature maps na sa´ıda), i , j , f , f os ´ındices do kernel do neurˆonio. Pode-se observar que tanto o kernel como o feature de entrada tem o mesmo ´ındice na profundidade f . o kernel tem mais um ´ındice f que referencia ao feature map que pertence. A dimens˜ao do kernel de cada neurˆonio ´e Hf ×Lf ×F e o valor de cada ´ındice do kernel esta representado pela vari´avel θi ,j ,f ,f . Se a profundidade do feature de entrada ´e F, ent˜ao podemos definir a ativac¸˜ao do neurˆonio com 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 relac¸˜ao entre os ´ındices das entidades involucradas na ativac¸˜ao do neurˆonio: i = i + i − 1 ou i = i − i + 1. Utilizando o passo 2 da subsecc¸˜ao 3.3, se calcula o erro de retro propagac¸˜ao, onde f(l) representa o feature map referente `a camada l. Ent˜ao, f(l+1) = yi ,j ,f e f(l) = xi,j,f . Se calcula o erro de retro propagac¸˜ao da camada l na Eq. 4: δ(l) = δ(l+1) . ∂f(l+1) ∂f(l) =⇒ δl ijf = i j f δl+1 i 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+1 i 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 subsecc¸˜ao 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 realiza a atualizac¸˜ao dos parˆametros da rede. 4.3.2. Camada de Amostragem (Max Pooling) Na literatura de Hubel e Wiesel, as c´elulas complexas no cortex visual dos mam´ıferos, est˜ao encarregadas de sintetizar as sa´ıdas das c´elulas simples; a camada de amostragem realiza um processo similar com os features de entrada. Reduze uma vizinhanc¸a do feature em uma unidade (pegando o valor m´aximo), ao realizar este procedimento varias vezes reduze as varianc¸as da representac¸˜ao do feature. Na Figura 14, a regi˜ao vermelha (matriz de 2x2) ´e escolhido o m´aximo valor e ele passa como unidade representativa de toda a regi˜ao. Ao eliminar seus outras 3 alternativas, reduze a probabilidade de ativar neurˆonios num 75%. 15
  • 17.
    Figura 14. Camadade Amostragem ou Max Pooling A func¸˜ao de ativac¸˜ao da camada de amostragem est´a definida na equac¸˜ao 7. Uma detalhe importante ´e indicar que o processo de Max Pooling n˜ao contem parˆametros para otimizar, ent˜ao n˜ao existe equac¸˜oes de correc¸˜ao dos parˆametros. O erro de retro propagac¸˜ao deve passar para a seguinte camada (Eq. 8). Passando completamente s´o para o neurˆonio ativado na etapa de inferˆencia (Eq. 7). yi ,j = max ij∈Ω(i j ) xij (7) δl i j = i j δl+1 i j . ∂fi j (x) ∂xij =⇒ δl i j = δl i j .Iij=argi j maxi j ∈Ω(i j ) xi j (8) 5. Redes Neurais Recorrentes (Deep LSTM) 5.1. Introduc¸˜ao A memoria n˜ao comec¸a seus pensamentos desde zero cada segundo, existe persistˆencia nos eventos acontecidos anteriormente. As redes neurais recorrentes abrangem este tipo de quest˜oes. Eles tem lac¸os de conex˜ao que permitem a persistˆencia da informac¸˜ao. Na figura 15 (a), A recebe uma entrada xt e emita uma sa´ıda ht. O lac¸o permite `a informac¸˜ao passar 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 informac¸˜ao a seu sucessor (Figura 15 (b)). Figura 15. Redes Neurais Recorrentes desdobrada Atualmente as redes neurais recorrentes tem sido eficientes numa variedade de problemas: reconhecimento de voz, modelamento do linguagem, traduc¸˜ao, etc. A estru- tura de uma rede neural recorrentes tradicional ´e apresentada na Figura 16 (a). 16
  • 18.
    Figura 16. Neurˆoniode uma RNN tradicional e uma rede LSTM A rede LSTMs ´e um tipo especial de rede neural recorrente que trabalha muito melhor que as vers˜oes tradicionais. As redes recorrentes associam eventos passados (me- morizam), fornecendo uma sa´ıda para a entrada atual em func¸˜ao dessa memorizac¸˜ao. Na Figura 17 (a) pode-se observar que os eventos x0 e x1 s˜ao estados ativados que s˜ao me- morizados em uma posterior ativac¸˜ao na entrada de x3. Figura 17. Dependˆencia 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 entrada atual, as redes neurais recorrentes tradicionais tem problemas para conseguir associar estes eventos (Figura 17 (b)). A rede LSTM resolve este problema, ele ´e um tipo especial de rede neural recorrente com a capacidade de aprender a memorizar dependˆencias entre longos per´ıodos. 5.2. Modelo de um neurˆonio de uma rede LSTM LSTM consegue memorizar entre longos lapsos de eventos utilizando blocos de memoria e 3 unidades multiplicativas: as entrada it, a sa´ıda ht e ”Constant Error Carousel”(CEC) Ct. Est´a arquitetura foi criada analisando o problema do fluxo do erro de retro propagado que explodia ou decaia exponencialmente. Um conjunto de passos s˜ao apresentados explicando o processo de inferˆencia da LSTM representado na Figura 18. 17
  • 19.
    Figura 18. Descric¸˜ao do funcionamento de um Neurˆonio de uma rede LSTM O primeiro passo ´e saber que informac¸˜ao tenho que esquecer em meu CEC, essa decis˜ao ´e tomada por uma chave de esquecimento representada por ft que observa ht−1 e xt e retorna um valor entre 0 e 1 definidos pela equac¸˜ao 9. O segundo passo ´e saber qual informac¸˜ao tem que ser memorizada no CEC. Para este processo temos 2 elementos: it chamado chave de entrada (Eq. 10), que define os valores que ser˜ao atualizados e o novo vetor 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 e somando a informac¸˜ao a memorizar it Ct, este processo est´a definido pela equac¸˜ao 12. Finalmente processamos a sa´ıda ht esta baseado em CEC ´e filtrado por ot pela Eq. 13 e Eq. 14. Para fines pr´aticos de notac¸˜ao definimos a inferˆencia no neurˆonio em func¸˜ao de seus parˆametros de entrada na Eq. 15, considerando Ct uma vari´avel de estado interna do neurˆonio, atualizando L. 5.3. Modelo de uma Deep LSTM Definimos N como o n´umero de camadas da rede, e ˆst nossa sa´ıda. Se realiza o seguinte processo iterativo: h0 t = xt; (16) h (n) t = L (n) t (h (n−1) t−1 , h (n) t−1) (17) ˆst = W(N)(N+1) hN t + 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 conex˜ao desde a camada n para a seguinte camada 18
  • 20.
    (n=0: camada deentrada, n=N:camada de sa´ıda), e W(n),(n) , n > 0 contem os pesos de conex˜ao de recurrˆencia na estrutura; b ´e o vetor de bias. Definimos na Eq. 19 e 20 as equac¸˜oes da chave de sa´ıda e CEC para um neurˆonio 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 conex˜ao com a camada anterior W(n−1),(n) e os pesos conex˜ao de recurrˆencia W(n),(n) . Existem variantes 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 func¸˜ao de erro. O algoritmo original de LSTM e Deep LSTM utilizam a gradiente do erro calculado com a combinac¸˜ao de RTRL (Real Time Recurrent Learning) e BPTT (Backpropagation Throught Time). O Backpropagation ´e truncado ap´os uma iterac¸˜ao porque noto-se que as longas dependˆencias seria tratadas pelos blocos de memoria e n˜ao pela gradiente de retro propagac¸˜ao. Um analise detalhado no calculo da gradiente pode ser encontrado em [20] e [21]. 6. Restricted Boltzmann Machine (RBM) 6.1. Introduc¸˜ao Uma RBM ´e um caso especial de uma Bolltzmann Machine (BM) sem conex˜oes entre neurˆonios da mesma camada. O modelo de uma RBM ´e uma rede neural de duas camadas: oculta e vis´ıvel, com uma sinapses n˜ao direcionada. Utiliza vari´aveis latentes (geralmente bin´ario) para modelar a distribuic¸˜ao de uma entrada. Smolensky [22], inventou a RBM e deu um primeiro nome de Harmonium, posteriormente comec¸o ser popular quando Hin- ton [23] invento o algoritmo de aprendizagem r´apido para Deep Belief Networks. RBM tem sido usada como modelo gerador de varias tipos de dados como janelas de coeficien- tes cepstrais de freq¨uˆencia Mel que representam a fala, bolsas de palavras que representam documentos e avaliac¸˜oes de filmes pelo usu´ario . Seu uso mais importante ´e como modulo de aprendizagem para construir uma Deep Belief Networks. A rede RBM geralmente s˜ao treinados utilizando o procedimento de aprendizagem divergˆencia contrastive [24]. 6.2. Modelo de uma RBM RBM est´a composto por 2 camadas: a camada vis´ıvel e camada oculta representada na Figura 19 por neurˆonios chamados unidades binarias estoc´asticas. Na camada vis´ıvel, se encontra as entradas binarias as quais s˜ao ligadas com feature detectors bin´arios utilizando pesos de conex˜ao. 19
  • 21.
    Figura 19. RedeNeural RBM ´E chamado camada vis´ıvel porque s˜ao observados pelos feature detector que se encontram na camada oculta. As duas camadas s˜ao representadas pelas vetores aleat´orios v (vis´ıvel) e h (oculta), onde a configurac¸˜ao conjunta (v, h) definida pela distribuic¸˜ao de Gibbs tem uma energia dada por: E(v,h) = − i∈vis´ıvel aivi − j∈oculto bjhj − i,j vihjwij (22) Onde vi e hj s˜ao os estados (valores) das unidades binarias estoc´asticas vis´ıvel i e oculta j respetivamente. A rede atribui a probabilidade definida na Eq. 23 de todo par vetor vis´ıvel e oculto (v, h) em func¸˜ao de sua energia conjunta, onde Z ´e dado pela so- mat´oria de todos as poss´ıveis pares dos vetores (v, h). Na pratica o valor de Z ´e intrat´avel. p(v, h) = 1 Z e−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 dado pela somat´oria 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 ser aumentado ajustando os pesos para baixar a energia da configurac¸˜ao da rede e aumentar a energia de outros dados, em especial aqueles dados que tˆem baixas energias e, portanto, fazem uma grande contribuic¸˜ao na p(v). A derivada da probabilidade log do vetor v em relac¸˜ao a seus pesos pode ser computada como segue na Eq. 25. ∂log(p(v)) ∂wij =< vihj >data − < vihj >model (25) Onde ”<>”s˜ao usados para denotar a Esperanc¸a (Expectation) sob a distribuic¸˜ao especificada pelos ´ındices indicados. Para resolver a equac¸˜ao 25 se utiliza a regra de aprendizagem (m´etodo da gradiente) na equac¸˜ao 26. ∆wij = (< vihj >data − < vihj >model) (26) 20
  • 22.
    Para calcular <vihj >data selecionamos aleatoriamente um dado bin´ario de en- trada v e calculamos o valor de h dada a probabilidade do neurˆonio na equac¸˜ao 27. p(hj = 1|v) = σ(bj + i viwij) (27) Onde σ(x) ´e a func¸˜ao log´ıstica sigmoide 1/(1+exp(−x)). Assim tendo o valor de h, como a rede e bidirecional podemos realizar o processo de reconstruc¸˜ao de v passando pela func¸˜ao de probabilidade do neurˆonio. p(vi = 1|h) = σ(bi + i hjwij) (28) Porem, calcular o valor de < vihj >data ´e mais complicado. Precisa-se inici- ando um estado aleat´orio e alternar amostragem de Gibbs por um longo per´ıodo. Uma iterac¸˜ao de alternar amostragem de Gibbs consiste em atualizar todas as unidades ocultas em paralelo utilizando a equac¸˜ao 27, logo atualizar todas as unidades vis´ıveis em paralelo utilizando a equac¸˜ao 28, este m´etodo ´e chamado de Divergˆencia Contrastiva. 6.3. Divergˆencia Contrastiva e Treinamento Hinton [25] apresento um m´etodo Divergencia Contrastiva (DC), que minimiza uma func¸˜ao que aproximadamente segue `a gradiente da diferenc¸a entre duas divergˆencias Kullback-Leibler, mas ignora um termo complicado nesta func¸˜ao objectivo por isso n˜ao ´e exatamente essa gradiente . Com efeito, Sutskever e Tielemen demonstraram que n˜ao segue a gradiente de nenhuma func¸˜ao [26]. No entanto, tem funcionado com sucesso em muitas aplicac¸˜oes significativas. Na Figura 20 se representa o m´etodo DC iterando ate chegar a calcular < vihj >modelo. Figura 20. Divergˆencia Contrastiva Uma processo de aprendizagem muito mais r´apido foi proposto por ????. Limi- tando a equac¸˜ao a um n´umero aceit´avel de iterac¸˜oes mostrado na equac¸˜ao 29. Algumas literaturas propor um n´umero de iterac¸˜oes (DC-k) onde k=1 ou um n´umero aceit´avel com- putacionalmente, sendo quando k aumenta a aproximac¸˜ao da gradiente da probabilidade dos dados de treinamento, mais aumenta seu custo computacional. 21
  • 23.
    ∆wij = (<vihj >data − < vihj >recon) (29) Basicamente ´e uma vers˜ao simplificada da regra de aprendizagem em 26. O al- goritmo trabalha vem mesmo que aproxima vagamente a gradiente da probabilidade log dos dados de treinamento. O passos do algoritmo de treinamento de uma RBM pode-se simplificar em: 1. Para cada mostra de treinamento v(t) na camada vis´ıvel (a) Gerar < vihj >recon utilizando k iterac¸˜oes de amostras de Gibbs, comenc¸ando em v(t) (DC). (b) Atualizar os parˆametros. ∆wij = (< vihj >data − < vihj >recon) (30) 2. Retornar para (1) at´e o crit´erio de parada. Existem variac¸˜oes do m´etodo de divergˆencia contrastiva, por exemplo para DC-k a divergˆencia contrastiva persistente que basicamente mantem o ultimo estado de vi e hi de < vihj >modelo e armazena o valor para inicializar a DC na seguinte iterac¸˜ao ap´os da atualizac¸˜ao os parˆametros da rede. 7. Deep Belief Networks (DBN) 7.1. Introduc¸˜ao Uma RBM est´a limitado nos dados que ele pode representar. Seu verdadeiro poder apa- rece quando s˜ao estruturados concatenadamente formando uma Deep Belief Network. DBN ´e um modelo generativo probabil´ıstico formado por varias camadas de vari´aveis la- tentes estoc´asticas [27]. Seu objetivo ´e aprender n´ıveis mais abstratos representac¸˜ao da distribuic¸˜ao dos dados de entrada. Neste trabalho S˜ao apresentados 3 m´etodos de apren- dizagem: Algoritmo wake-sleep’, ’Greedily Training’, e ’Up-Down’ ( um hibrido dos 2 primeiros algoritmos). 7.2. Modelo de uma DBM Numa DBN, cada camada compreende um conjunto de entradas binarias ou reais. Na Figura 21 o modelo de DBN est´a composta por 1 camada vis´ıvel e 3 camadas ocultas. As duas camadas superiores da DBN com distribuic¸˜ao p(h(2) , h(3) ) formam uma RBM com conex˜oes n˜ao direcionadas, as camadas inferiores s˜ao chamadas de Sigmoid Belief Networks (SBN) dado que s˜ao conex˜oes direcionadas. DBN pode ser considera como uma estrutura de simples m´odulos de aprendizagem RBM, que contem uma camada de unidades vis´ıvel que representam os dados, e uma camada de unidades oculta que apren- dem a representac¸˜oes (features) que capturam uma correlac¸˜oes de ordem superior dos dados. Na Figura ?? as camadas SBN tem pesos direcionados,de reconhecimento (ver- melho) e generativos (verde). 22
  • 24.
    Figura 21. RedeDeeb Belief Networks As probabilidades condicionais das camadas ocultas na direc¸˜ao h(2) → h(1) e h(1) → dados s˜ao 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 equac¸˜oes das probabilidades das unidades binarias estoc´asticas e da configurac¸˜ao do sistema de uma RBM se podem generalizar para modelar uma DBM. A Figura 21 mostra uma estrutura de DBN modelado na equac¸˜ao (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 distribuic¸˜ao de p(v, h(1) , h(2) , h(3) ) dada pela energia da configurac¸˜ao, se mostra na Eq. 34. As probabilidades condicionais p(h(1) |h(2) ) e p(v|h(1) ) ´e igual ao produto da probabilidade condicional de cada unidade estoc´astica 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 f´acil melhorar os pesos generativos se a rede j´a tem um bom conjunto de pesos de reconhecimento. Para cada vetor de dados de treinamento 23
  • 25.
    os pesos dereconhecimento (wij)reco s˜ao usados em propagac¸˜ao bottom-up e estocasti- camente selecionamos os estados bin´arios de cada unidade oculta. Aplicando a regra de aprendizagem da Eq. 37, seguira a gradiente de uma variacional ligado a qu˜ao bem a rede gera os dados de treinamento [28]. ´E uma simples regra de aprendizagem aproximada que funciona bem na pratica. ∆(wij)reco ∝ hj(hi − ˆhi) (37) Agora, se comec¸amos a gerar valores desde o modelo utilizando os pesos generativos num pase Top-down, se conhece os valores verdadeiros em cada camada, ent˜ao 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 s˜ao treinados uma camada por vez, tratando os valores das vari´aveis latentes de uma camada (que foram inferidos pela entrada de dados) como os dados para treinar a camada seguinte. Hinton [23] propor um m´etodo eficiente para treinar uma Deep Belief Network, chamado Greedily Layer-Wise Training, mostrando que se as ativac¸˜oes da camada oculta produzidas a partir dos dados de treinamento s˜ao tratadas como dados de treinamento para a pr´oxima RBM (seguinte par conjunto de camadas) melhora a variac¸˜ao do limite inferior da 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 resultantes utilizando o m´etodo da gradiente descendente. Os passos do algoritmo s˜ao 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) e a primeira camada oculta (h(1) ). Nesta RBM a maximizac¸˜ao da probabilidade da variave v est´a dada por: p(v) = h(1) p(v|h(1) ) (39) 2. Tratar a ativac¸˜ao de h(1) como se for a entrada para a RBM entre as camadas ocultas h(1) e h(2) .Dado que os pesos W(1) treinados na primeira camada ficam fixos a func¸˜ao 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 s˜ao s´o para inicializar os pesos. As camadas n˜ao s´o bidirecionais. A camada superior sim ´e uma RBM que utiliza ativac¸˜ao 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
  • 26.
    7.3.3. Up-Down Algumas carater´ısticasimportantes deste algoritmo: • Utiliza o algoritmo Greedily Training que pode encontrar uns bons conjuntos de parˆametros rapidamente. • O aprendizagem ´e n˜ao supervisionado mas pode-se colocar classes a cada lado do modulo superior de RBM para criar um modelo que gere ambas a classe e os dados. • O algoritmo de aprendizagem ´e local: ajuste dos pesos depende s´o dos estados de entrada e saida. • A comunicac¸˜ao ´e simples: neurˆonio s´o precisam comunicar seus estados bin´arios estoc´asticos. O algoritmo Greedily Training ´e uma forma relativamente r´apida e eficaz de aprender os pesos da DBN, mas n˜ao garante necessariamente pesos de alta qualidade.Parar obter me- lhores pesos foi proposto o m´etodo ”up-down”; que ´e uma vers˜ao contrastiva do m´etodo ”wake-sleep”mas sem algumas das desvantagens. A ideia ´e que, depois de pesos foram aprendidas de tal maneira que as unidades estoc´asticas na sa´ıda de cada camada deve- se aproximar com uma distribuic¸˜ao fatorial dos valores da camada anterior. Os pesos ascendentes de reconhecimento (cor vermelho na Figura 22) est˜ao liberados dos pesos descendentes geradores (cor verde na Figura 22). Em seguida, os pesos de n´ıvel mais alto podem 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 vari´avel oculta, e depois ajustar os pesos geradores com a regra de aprendizagem Eq. 37. O ”down-pass”´e semelhante na medida em que itera atrav´es das camadas e ajuste de peso, embora a iterac¸˜ao comec¸a nas camadas superiores e se propaga ao longo das conex˜oes geradoras de cima para baixo, e os pesos de reconhecimento s˜ao modificados de baixo para cima com a regra de aprendizagem Eq. 38. Figura 22. Camada h(2) - h(3) da DBN 25
  • 27.
    Na Figura 22se mostra o modelo de um classificador utilizado para reconhe- cimento de d´ıgitos realizado por Hinton, o modelo treinado pode-ser testado no site http://www.cs.toronto.edu/ hinton/adi/index.htm. 8. Stacked Autoencoders 8.1. Modelo do Stacked Autoencoders Os Stacked Autoencoders s˜ao outro tipo de estrutura em base a m´odulos de RBM, os quais s˜ao muito utilizados em reduc¸˜ao da dimens˜ao n˜ao lineal para dados de alta dimens˜ao [29]. Stacked Autoencoders s˜ao uma rede neural com uma pequena camada na intermediaria que divide `a rede en 2 partes sim´etricas na estrutura das camadas: Encoder-Decoder. A parte do Encoder s˜ao blocos de RBM que v˜ao reduzindo o n´umero de neurˆonios em cada camada at´e chegar `a camada central (de menor dimens˜ao em toda a rede). Figura 23. Rede Neural Autoencoder 8.2. Treinamento Cada 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 do Decoder. Finalmente, o m´etodo da gradiente descendente pode ser utilizado para afinar os pesos [30]. Na Figura 23 se pode observar um exemplo de compressor de imagem, onde uma imagem de dimens˜ao 28x28 pixels ´e reduzidos at´e chegar a 30 unidades na ca- mada centra, posterior mente, a rede tem que reconstruir a imagem com essas 30 unidades lineais [29]. 26
  • 28.
    Referˆencias [1] J¨urgen 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, Bryan Catanzaro, and Evan Shelhamer. cudnn: Efficient primitives for deep learning. arXiv preprint 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 of Control, 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-scale kernel machines, 34(5), 2007. [9] Simon J Thorpe and Mich`ele Fabre-Thorpe. Seeking categories in the brain. Science, 291(5502):260–263, 2001. [10] Yoshua Bengio, Aaron Courville, and Pascal Vincent. Representation learning: A review and 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 emotion recognition: Features, classification schemes, and databases. Pattern Recognition, 44(3):572–587, 2011. [12] Kristen Grauman and Bastian Leibe. Visual object recognition. Synthesis lectures on artificial 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 recognition unaffected 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, and Lawrence D Jackel. Handwritten digit recognition with a back-propagation network. In Advances in neural information processing systems. Citeseer, 1990. 27
  • 29.
    [17] Juyang Weng,Narendra Ahuja, and Thomas S Huang. Cresceptron: a self-organizing neural 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 neural networks for document processing. In Tenth International Workshop on Frontiers in Handwriting Recognition. Suvisoft, 2006. [19] Alex Graves, Abdel-rahman Mohamed, and Geoffrey Hinton. Speech recognition with deep recurrent neural networks. In 2013 IEEE international conference on acoustics, speech and signal processing, pages 6645–6649. IEEE, 2013. [20] Alex Graves and J¨urgen 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 J¨urgen Schmidhuber. Learning precise timing with lstm recurrent networks. Journal of machine learning research, 3(Aug):115– 143, 2002. [22] Paul Smolensky. Information processing in dynamical systems: Foundations of harmony theory. Technical report, DTIC Document, 1986. [23] Geoffrey E Hinton, Simon Osindero, and Yee-Whye Teh. A fast learning algorithm for deep 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 data with neural networks. Science, 313(5786):504–507, 2006. 28