SlideShare uma empresa Scribd logo
1 de 29
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

Jornada de Iniciação Científica 2008 - SumoCheckers & Dystopia Framework
Jornada de Iniciação Científica 2008 - SumoCheckers & Dystopia FrameworkJornada de Iniciação Científica 2008 - SumoCheckers & Dystopia Framework
Jornada de Iniciação Científica 2008 - SumoCheckers & Dystopia Framework
yankooliveira
 
Hierarquia de memória
Hierarquia de memóriaHierarquia de memória
Hierarquia de memória
PAULO Moreira
 

Mais procurados (20)

Introdução a redes neurais artificiais com a biblioteca encog
Introdução a redes neurais artificiais com a biblioteca encogIntrodução a redes neurais artificiais com a biblioteca encog
Introdução a redes neurais artificiais com a biblioteca encog
 
Apresentacao
ApresentacaoApresentacao
Apresentacao
 
160277 redes neurais artificiais
160277 redes neurais artificiais160277 redes neurais artificiais
160277 redes neurais artificiais
 
II EPI - Estudo e Avaliação do Problema de Otimização da Multiplicação de Cad...
II EPI - Estudo e Avaliação do Problema de Otimização da Multiplicação de Cad...II EPI - Estudo e Avaliação do Problema de Otimização da Multiplicação de Cad...
II EPI - Estudo e Avaliação do Problema de Otimização da Multiplicação de Cad...
 
Processamento digital de imagens com gnu octave jotacisio araujo oliveira fli...
Processamento digital de imagens com gnu octave jotacisio araujo oliveira fli...Processamento digital de imagens com gnu octave jotacisio araujo oliveira fli...
Processamento digital de imagens com gnu octave jotacisio araujo oliveira fli...
 
Redes neurais
Redes neuraisRedes neurais
Redes neurais
 
Estudo e Avaliação do Problema de Otimização da Multiplicação de Cadeias de M...
Estudo e Avaliação do Problema de Otimização da Multiplicação de Cadeias de M...Estudo e Avaliação do Problema de Otimização da Multiplicação de Cadeias de M...
Estudo e Avaliação do Problema de Otimização da Multiplicação de Cadeias de M...
 
Fórum respostas
Fórum  respostasFórum  respostas
Fórum respostas
 
Jornada de Iniciação Científica 2008 - SumoCheckers & Dystopia Framework
Jornada de Iniciação Científica 2008 - SumoCheckers & Dystopia FrameworkJornada de Iniciação Científica 2008 - SumoCheckers & Dystopia Framework
Jornada de Iniciação Científica 2008 - SumoCheckers & Dystopia Framework
 
Linguagem de Programação Java
Linguagem de Programação JavaLinguagem de Programação Java
Linguagem de Programação Java
 
Tchelinux 2014 visão computacional
Tchelinux 2014 visão computacionalTchelinux 2014 visão computacional
Tchelinux 2014 visão computacional
 
Programação Concorrente - Aula 03
Programação Concorrente - Aula 03Programação Concorrente - Aula 03
Programação Concorrente - Aula 03
 
Planeamento de uma prova no concurso - Robô Bombeiro
Planeamento de uma prova no concurso - Robô BombeiroPlaneamento de uma prova no concurso - Robô Bombeiro
Planeamento de uma prova no concurso - Robô Bombeiro
 
Modelos de previsão de Ocorrências
Modelos de previsão de OcorrênciasModelos de previsão de Ocorrências
Modelos de previsão de Ocorrências
 
Defesa de Mestrado
Defesa de MestradoDefesa de Mestrado
Defesa de Mestrado
 
Uma Rede Neural para o Reconhecimento de Números Binários
Uma Rede Neural para o Reconhecimento de Números BináriosUma Rede Neural para o Reconhecimento de Números Binários
Uma Rede Neural para o Reconhecimento de Números Binários
 
Programação de Kits Lego NXT usando Linguagem Gráfica Nativa (ou NXT-G)
Programação de Kits Lego NXT usando Linguagem Gráfica Nativa (ou NXT-G)Programação de Kits Lego NXT usando Linguagem Gráfica Nativa (ou NXT-G)
Programação de Kits Lego NXT usando Linguagem Gráfica Nativa (ou NXT-G)
 
Introdução à Computação de Alto Desempenho - Parte I
Introdução à Computação de Alto Desempenho - Parte IIntrodução à Computação de Alto Desempenho - Parte I
Introdução à Computação de Alto Desempenho - Parte I
 
Hierarquia de memória
Hierarquia de memóriaHierarquia de memória
Hierarquia de memória
 
Introdução à Computação de Alto Desempenho - Parte II
Introdução à Computação de Alto Desempenho - Parte IIIntrodução à Computação de Alto Desempenho - Parte II
Introdução à Computação de Alto Desempenho - Parte II
 

Semelhante a Introdução a Deep Learning

Modelagem de Ambientes de Computação Ubíqua Utilizando Simulação
Modelagem de Ambientes de Computação Ubíqua Utilizando SimulaçãoModelagem de Ambientes de Computação Ubíqua Utilizando Simulação
Modelagem de Ambientes de Computação Ubíqua Utilizando Simulação
Jurmir Canal Neto
 
Programação Orientada a Objetos com Java
Programação Orientada a Objetos com JavaProgramação Orientada a Objetos com Java
Programação Orientada a Objetos com Java
JooMarcos614503
 
Monografia fabiano rates
Monografia fabiano ratesMonografia fabiano rates
Monografia fabiano rates
Fabiano Rates
 
REDES NEURAIS ARTIFICIAIS NA AVALIAÇÃO ESTRUTURAL DE PAVIMENTOS FLEXÍVEIS
REDES NEURAIS ARTIFICIAIS NA AVALIAÇÃO ESTRUTURAL DE PAVIMENTOS FLEXÍVEISREDES NEURAIS ARTIFICIAIS NA AVALIAÇÃO ESTRUTURAL DE PAVIMENTOS FLEXÍVEIS
REDES NEURAIS ARTIFICIAIS NA AVALIAÇÃO ESTRUTURAL DE PAVIMENTOS FLEXÍVEIS
Raphael Melo Gomes
 
Modelagem de Base de Conhecimentos Baseada em Ontologia Estudo de Caso em Rec...
Modelagem de Base de Conhecimentos Baseada em Ontologia Estudo de Caso em Rec...Modelagem de Base de Conhecimentos Baseada em Ontologia Estudo de Caso em Rec...
Modelagem de Base de Conhecimentos Baseada em Ontologia Estudo de Caso em Rec...
Vagner Nogueira
 

Semelhante a Introdução a Deep Learning (20)

sistemas_operacionais-livro.pdf
sistemas_operacionais-livro.pdfsistemas_operacionais-livro.pdf
sistemas_operacionais-livro.pdf
 
MODELAGEM E IMPLEMENTAÇÃO DE UM VISUALIZADOR PARA SIMULAÇÕES COMPUTACIONAIS D...
MODELAGEM E IMPLEMENTAÇÃO DE UM VISUALIZADOR PARA SIMULAÇÕES COMPUTACIONAIS D...MODELAGEM E IMPLEMENTAÇÃO DE UM VISUALIZADOR PARA SIMULAÇÕES COMPUTACIONAIS D...
MODELAGEM E IMPLEMENTAÇÃO DE UM VISUALIZADOR PARA SIMULAÇÕES COMPUTACIONAIS D...
 
[Jose Ahirton Lopes] Deep Learning - Uma Abordagem Visual
[Jose Ahirton Lopes] Deep Learning - Uma Abordagem Visual[Jose Ahirton Lopes] Deep Learning - Uma Abordagem Visual
[Jose Ahirton Lopes] Deep Learning - Uma Abordagem Visual
 
Modelagem de Ambientes de Computação Ubíqua Utilizando Simulação
Modelagem de Ambientes de Computação Ubíqua Utilizando SimulaçãoModelagem de Ambientes de Computação Ubíqua Utilizando Simulação
Modelagem de Ambientes de Computação Ubíqua Utilizando Simulação
 
[Ahirton Lopes e Rafael Arevalo] Deep Learning - Uma Abordagem Visual
[Ahirton Lopes e Rafael Arevalo] Deep Learning - Uma Abordagem Visual[Ahirton Lopes e Rafael Arevalo] Deep Learning - Uma Abordagem Visual
[Ahirton Lopes e Rafael Arevalo] Deep Learning - Uma Abordagem Visual
 
[Jose Ahirton Lopes] Deep Learning - Uma Abordagem Visual
[Jose Ahirton Lopes] Deep Learning - Uma Abordagem Visual[Jose Ahirton Lopes] Deep Learning - Uma Abordagem Visual
[Jose Ahirton Lopes] Deep Learning - Uma Abordagem Visual
 
Arquitetura de-computadores-apostila-avançada completa
Arquitetura de-computadores-apostila-avançada completaArquitetura de-computadores-apostila-avançada completa
Arquitetura de-computadores-apostila-avançada completa
 
Programação Orientada a Objetos com Java
Programação Orientada a Objetos com JavaProgramação Orientada a Objetos com Java
Programação Orientada a Objetos com Java
 
Poojava
PoojavaPoojava
Poojava
 
[Jose Ahirton Lopes] Inteligencia Artificial - Uma Abordagem Visual
[Jose Ahirton Lopes] Inteligencia Artificial - Uma Abordagem Visual[Jose Ahirton Lopes] Inteligencia Artificial - Uma Abordagem Visual
[Jose Ahirton Lopes] Inteligencia Artificial - Uma Abordagem Visual
 
[Jose Ahirton Lopes] Inteligencia Artificial - Uma Abordagem Visual
[Jose Ahirton Lopes] Inteligencia Artificial -  Uma Abordagem Visual[Jose Ahirton Lopes] Inteligencia Artificial -  Uma Abordagem Visual
[Jose Ahirton Lopes] Inteligencia Artificial - Uma Abordagem Visual
 
OWL QL e Regras Não Monótonas
OWL QL e Regras Não MonótonasOWL QL e Regras Não Monótonas
OWL QL e Regras Não Monótonas
 
monografia_andre_paro
monografia_andre_paromonografia_andre_paro
monografia_andre_paro
 
Monografia sobre Inteligência artificial para comparar algoritmos de treiname...
Monografia sobre Inteligência artificial para comparar algoritmos de treiname...Monografia sobre Inteligência artificial para comparar algoritmos de treiname...
Monografia sobre Inteligência artificial para comparar algoritmos de treiname...
 
Monografia fabiano rates
Monografia fabiano ratesMonografia fabiano rates
Monografia fabiano rates
 
Investigação de Predição de Fluxos em Redes de Computadores
Investigação de Predição de Fluxos em Redes de ComputadoresInvestigação de Predição de Fluxos em Redes de Computadores
Investigação de Predição de Fluxos em Redes de Computadores
 
Introdução a estrutura de dados
Introdução a estrutura de dadosIntrodução a estrutura de dados
Introdução a estrutura de dados
 
Estrutura de dados 3
Estrutura de dados 3Estrutura de dados 3
Estrutura de dados 3
 
REDES NEURAIS ARTIFICIAIS NA AVALIAÇÃO ESTRUTURAL DE PAVIMENTOS FLEXÍVEIS
REDES NEURAIS ARTIFICIAIS NA AVALIAÇÃO ESTRUTURAL DE PAVIMENTOS FLEXÍVEISREDES NEURAIS ARTIFICIAIS NA AVALIAÇÃO ESTRUTURAL DE PAVIMENTOS FLEXÍVEIS
REDES NEURAIS ARTIFICIAIS NA AVALIAÇÃO ESTRUTURAL DE PAVIMENTOS FLEXÍVEIS
 
Modelagem de Base de Conhecimentos Baseada em Ontologia Estudo de Caso em Rec...
Modelagem de Base de Conhecimentos Baseada em Ontologia Estudo de Caso em Rec...Modelagem de Base de Conhecimentos Baseada em Ontologia Estudo de Caso em Rec...
Modelagem de Base de Conhecimentos Baseada em Ontologia Estudo de Caso em Rec...
 

Último (6)

treinamento de moldagem por injeção plástica
treinamento de moldagem por injeção plásticatreinamento de moldagem por injeção plástica
treinamento de moldagem por injeção plástica
 
ST 2024 Apresentação Comercial - VF.ppsx
ST 2024 Apresentação Comercial - VF.ppsxST 2024 Apresentação Comercial - VF.ppsx
ST 2024 Apresentação Comercial - VF.ppsx
 
Proposta de dimensionamento. PROJETO DO CURSO 2023.pptx
Proposta de dimensionamento. PROJETO DO CURSO 2023.pptxProposta de dimensionamento. PROJETO DO CURSO 2023.pptx
Proposta de dimensionamento. PROJETO DO CURSO 2023.pptx
 
CONCEITOS BÁSICOS DE CONFIABILIDADE COM EMBASAMENTO DE QUALIDADE
CONCEITOS BÁSICOS DE CONFIABILIDADE COM EMBASAMENTO DE QUALIDADECONCEITOS BÁSICOS DE CONFIABILIDADE COM EMBASAMENTO DE QUALIDADE
CONCEITOS BÁSICOS DE CONFIABILIDADE COM EMBASAMENTO DE QUALIDADE
 
SEG NR 18 - SEGURANÇA E SAÚDE O TRABALHO NA INDUSTRIA DA COSTRUÇÃO CIVIL.pptx
SEG NR 18 - SEGURANÇA E SAÚDE O TRABALHO NA INDUSTRIA DA COSTRUÇÃO CIVIL.pptxSEG NR 18 - SEGURANÇA E SAÚDE O TRABALHO NA INDUSTRIA DA COSTRUÇÃO CIVIL.pptx
SEG NR 18 - SEGURANÇA E SAÚDE O TRABALHO NA INDUSTRIA DA COSTRUÇÃO CIVIL.pptx
 
ATIVIDADE 1 - FSCE - FORMAÇÃO SOCIOCULTURAL E ÉTICA II - 52_2024.pdf
ATIVIDADE 1 - FSCE - FORMAÇÃO SOCIOCULTURAL E ÉTICA II - 52_2024.pdfATIVIDADE 1 - FSCE - FORMAÇÃO SOCIOCULTURAL E ÉTICA II - 52_2024.pdf
ATIVIDADE 1 - FSCE - FORMAÇÃO SOCIOCULTURAL E ÉTICA II - 52_2024.pdf
 

Introdução a Deep Learning

  • 1. 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
  • 2. 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
  • 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 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
  • 6. 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
  • 7. (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
  • 8. 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
  • 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 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
  • 11. 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
  • 12. 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
  • 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 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
  • 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. 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
  • 18. 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
  • 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 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
  • 21. 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
  • 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. 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
  • 25. 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
  • 26. 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
  • 27. 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
  • 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