1
Exame de Qualificação
Doutorando: Rafael Coimbra Pinto
Orientador: Paulo Martins Engel
2
Exame de Qualificação
● Área: Inteligência Artificial
● Abrangência: Inteligência Computacional
● Profundidade: Redes Neurais
3
Roteiro
● IA x IC
● Redes Neurais
– Perceptron, Adaline, Multi-Layer Perceptron
● Autoencoders e Deep Autoencoders
– Sparse Autoencoders, Denoising Autoencoders,
Contractive Autoencoders, Convolutive Autoencoders
– Treinamento
– Técnicas de Aceleração
– Aplicações
4
IA x IC
● Divisão mais comum: IC como sub-área da IA
– Ex.: divisão neste exame de qualificação
● Também: IC como alternativa à IA
– Ex.: ENIAC, Encontro Nacional de IA E IC
5
IA x IC
Inteligência Artificial Inteligência Computacional
Mais simbólica Mais sub-simbólica
Menos bioinspirada Mais bioinspirada
Mais algoritmos de busca Mais algoritmos numéricos
Mais conhecimento prévio Mais aprendizagem
Mais soluções exatas Mais soluções aproximadas
Mais top-down Mais bottom-up
Mais discreta Mais contínua
6
Inteligência Computacional
● Computação Evolutiva
– Algoritmos genéticos, programação genética,
estratégias evolucionárias
● Inteligência Coletiva (Swarm)
– Ant Colony Optimization (ACO), Particle Swarm
Optimization (PSO)
● Redes Neurais
7
Redes Neurais
● Algoritmos inspirados no funcionamento do sistema
nervoso
● Uma rede neural é uma composição de neurônios
interligados de diferentes maneiras
● Cada neurônio é uma unidade de processamento
simples
● As ligações entre neurônios (sinapses) podem ter suas
forças modificadas (aprendizado)
8
Redes Neurais
● O que faz cada neurônio?
● Como eles são interligados?
● Como ocorre o aprendizado?
● Cada combinação de respostas para estas perguntas
resulta em um diferente algoritmo de redes neurais
9
Redes Neurais
● Supervisionadas: regressão e classificação
– Perceptron
– Adaline
– Multi-Layer Perceptron (MLP)
● Não Supervisionadas: clustering, redução de
dimensionalidade, filtros
– Self-Organizing Map (SOM)
– Rede de Hopfield
– Máquina de Boltzmann
– (Deep / Stacked) Autoencoder
10
Redes Supervisionadas
● Uma série de pares entrada-saída de exemplos deve ser
apresentada à rede
● Sempre que a estimativa da saída da rede para
determinada entrada não confere com a saída
informada, ocorre aprendizado
● Os pesos da rede devem ser corrigidos de forma que o
exemplo seja calculado corretamente nas próximas
tentativas
11
Redes Supervisionadas
● Ex.: suponha que os seguintes pares entrada-saída foram
apresentados a uma rede neural
1 1, 2 4, 3 9, 4 16, 5 25, 6 36, 7 49, 8 64, 9 81, 10 100
● Ao receber o par '5 25', a rede neural deve computar uma saída
para a entrada 5
● Se a saída computada for diferente de 25, deve ocorrer uma
alteração nos pesos das conexões da rede neural (aprendizado),
para que futuramente a resposta para 5 seja 25
● Também podemos apresentar todos os exemplos e calcular um erro
global para fazer os ajustes de pesos (aprendizado em lote)
12
Perceptron
● Recebe como entrada um
vetor de valores reais
● Calcula uma combinação
linear deles
● Retorna 1 caso o resultado
da combinação ultrapasse
um determinado limiar e -1
caso contrário
● Portanto, o Perceptron é
utilizado em tarefas de
classificação
13
Perceptron
● O Perceptron pode ser treinado
basicamente de 2 formas:
– Regra do Perceptron: os erros
são calculados em relação à
saída da rede após a aplicação
do limiar
● Convergência garantida
apenas se o problema for
linearmente separável
– Regra Delta: os erros são
calculados antes da aplicação
do limiar
● Convergência garantida
14
Adaline
● Similar ao Perceptron,
porém sem aplicação do
limiar
● Portanto, pode ser usada
para regressão linear
● Usa-se a regra delta para
a aprendizagem
● Convergência garantida
15
Limitações
● Tanto o Perceptron como
a rede Adaline são
limitados a problemas
linearmente separáveis
– Não resolvem o XOR,
por exemplo
16
Multi-Layer Perceptron
● Podemos ligar vários
perceptrons/adalines para
obter um Perceptron
Multi-Camadas, capaz de
resolver problemas
não-linearmente
separáveis
● As camadas
intermediárias (ocultas)
aprendem representações
das entradas
17
Backpropagation
● O problema é que só temos os
valores de saída para a camada de
saída em nossos exemplos, e
portanto não temos como treinar as
camadas ocultas com os mesmos
algoritmos usados no perceptron ou
na rede adaline
● A solução está em propagar o erro
das saídas para as outras camadas
através do algoritmo
Backpropagation
18
Backpropagation
● 2 problemas:
– O gradiente do erro se
dilui ao longo das
camadas, portanto
redes de muitas
camadas acabam
sendo inviáveis
– Este algoritmo pode
ficar preso em mínimos
locais
19
Autoencoder
● Rede não-supervisionada (ou
auto-supervisionada) que tenta
aprender um mapeamento de suas
entradas para elas próprias (função
identidade)
● Para que??
● Ao colocar uma camada oculta
menor que a entrada, a rede é
forçada a criar uma representação
compacta do espaço de entrada
– Filtragem e redução de
dimensionalidade
20
Autoencoder
● Em um exemplo clássico, construímos um autoencoder
com 8 entradas e 3 neurônios na camada oculta
● Os exemplos de treinamento consistem em 8 bits onde
apenas um deles é 1 e o restante é 0 (8 exemplos
portanto)
● O autoencoder aprende a representar os 8 exemplos
com codificação binária de 3 bits, sem nenhuma
supervisão
21
Autoencoder
● O número de neurônios na camada oculta deve ser
menor que a dimensão de entrada para evitar que a rede
aprenda a solução trivial, ou seja, simplesmente copiar a
entrada
● Com menos neurônios para codificar a entrada, a rede é
forçada a aprender uma representação compacta do
espaço de entrada
22
Denoising Autoencoder
● Uma alternativa a criar um gargalo nas camadas ocultas
está em aplicar ruído nas entradas e fazer a rede
reconstruir a entrada original
23
Sparse Autoencoder
● Outra possibilidade está em restringir as ativações da
camada oculta
● Podemos modificar a função de custo da rede para
incluir um termo que penaliza muitas ativações nos
neurônios
● Como resultado, uma codificação esparsa é aprendida
(poucos neurônios ativados por vez), mesmo que a
camada oculta seja maior que a dimensionalidade de
entrada, evitando a solução trivial
24
Contractive Autoencoder
● Ainda outra alternativa está em modificar a função de
custo da rede para minimizar a matriz jacobiana das
ativações da camada oculta em relação às entradas
● Equivale a dizer que pequenas perturbações na entrada
devem produzir pequenas perturbações na codificação
● É um equivalente determinístico ao Denoising
Autoencoder
● O resultado também é muito similar ao Sparse
Autoencoder
25
Convolutional Autoencoder
● Podemos utilizar compartilhamento de pesos para reduzir o
número de parâmetros no autoencoder e ao mesmo tempo
explorar conhecimento prévio dos problemas
● Por exemplo, podemos trabalhar com imagens de tamanho 32x32
utilizando pequenas regiões 3x3 onde todas utilizam os mesmos
pesos, efetivamente reduzindo a dimensão de entrada de 1024
para 9
26
Convolutional Autoencoder
27
Pooling
● Redes convolutivas também possuem camadas de
pooling que reduzem a dimensionalidade das entradas e
também deixam a rede mais robusta a transformações
espaciais (mais invariante)
● A camada possui pesos fixos e realiza processamento
mais 'hard-wired' como reduzir as saídas de um
conjunto de neurônios a um único valor que pode ser o
máximo do conjunto, a média, a norma, entre outros
28
Deep Autoencoder
● Um Deep Autoencoder ou
Stacked Autoencoder é a
ligação de vários
autoencoders em série
● O código gerado por um é
repassado como entrada
para o seguinte
● Qualquer variante do
autoencoder pode ser
utilizada
29
Deep Autoencoder
● Cada camada abstrai um
pouco a camada anterior,
criando representações de
alto nível
● Isso facilita o trabalho de
camadas superiores, pois
elas passam a trabalhar
sobre conceitos de mais
alto nível
● Ex.: pixels → linhas →
formas → objetos
30
Treinamento
● Podemos treinar o deep autoencoder normalmente com
backpropagation...
– ...mas caímos no problema dos gradientes diluídos
– O treinamento fica demorado ou mesmo inviável
● A solução desenvolvida recentemente está em treinar
cada camada como um autoencoder isolado, o que
reduz o caminho do gradiente para uma única camada
● Com isso, os deep autoencoders se tornaram o
estado-da-arte em rede neurais, batendo inúmeros
recordes em diversos problemas
31
Treinamento
32
Camada Supervisionada
● Um deep autoencoder também pode ser usado de forma
supervisionada ao adicionar uma camada de saída após a
última camada de codificação
● O treinamento pode ser feito em 2 etapas: primeiro de
forma não-supervisionada, ignorando a camada de saída, e
após de forma supervisionada
– Esta técnica tem a vantagem de configurar os pesos da
rede já em regiões promissoras antes de iniciar o
backpropagation, reduzindo as chances de mínimos
locais
– Outra vantagem está no uso reduzido de exemplos
rotulados, que só são necessários na etapa
supervisionada final
33
Implementação em GPU
● Deep Autoencoders, assim como a maioria dos tipos de
redes neurais, dependem fortemente de operações
matriciais
● Placas de vídeo (GPUs) são propícias para executar
estes tipos de operações com altíssima velocidade
● Deep Autoencoders foram implementados em GPUs,
obtendo um aumento de velocidade de, no mínimo, 2x
34
Dropout
● A cada exemplo apresentado para
a rede, podemos ignorar neurônios
da camada oculta aleatoriamente
● Isto faz com que, em uma rede
com H neurônios, tenhamos 2H
modelos diferentes, onde cada
exemplo tem seu próprio modelo
(bagging)
● Todos modelos compartilham
pesos, o que resulta em
regularização melhor que as vistas
anteriormente
● O treinamento também fica mais
rápido
35
Aplicações
● Recentemente uma aplicação desenvolvida por Andrew Ng e sua equipe no Google
virou notícia: a rede neural aprendeu a identificar gatos em vídeos do YouTube (entre
outras categorias)
– A rede era um deep sparse autoencoder massivo (1bi de pesos) que recebia
quadros aleatórios de vídeos aleatórios do YouTube (total de 10M imagens) e
aprendia conceitos de forma não-supervisionada
– Ao inspecionar o que cada neurônio havia aprendido, percebeu-se que um deles era
sensível a imagens de gatos
– Usada como inicialização dos pesos para um classificador com backpropagation,
resultou em 15% de acurácia no dataset Imagenet (recorde atual)
36
Aplicações
● Hashing semântico de documentos
● Cada documento recebe um endereço de acordo com o
seu conteúdo, e documentos similares recebem códigos
similares
● Ao utilizar uma camada oculta com apenas 2 neurônios
para codificação, podemos visualizar os documentos em
um gráfico 2D
37
Aplicações
● Reconhecimento de
placas de trânsito
● Acurácia de 98.52% com
uma única rede e 99.46%
com 5 redes
38
Aplicações
● Reconhecimento de fala
“We apply the recently proposed Context-Dependent
Deep-Neural-Network HMMs, or CD-DNN-HMMs, to
speech-to-text transcription. For single-pass
speaker-independent recognition on the RT03S Fisher
portion of phone-call transcription bench-mark
(Switchboard), the word-error rate is reduced from
27.4%, obtained by discriminatively trained
Gaussian-mixture HMMs, to 18.5%—a 33% relative
improvement.”
39
Aplicações
● Reconhecimento de
gestos
● Um deep autoencoder
convolutivo com camadas
de max-pooling bateu o
recorde anterior de 9.52%
de erro com 3.23% de
erro
40
Aplicações
● Controle baseado em visão
● Tarefa clássica em controle:
pêndulo invertido
● Normalmente temos o
ângulo do pêndulo medido
por sensores
● Neste trabalho, imagens de
uma câmera foram
utilizadas no lugar do
sensor direto
41
Aplicações
● Aprendizado por reforço
utilizando visão
● Foi possível ensinar um
agente a achar a saída de
um labirinto utilizando
imagens do mapa em vez
de informação direta
42
Conclusões
● Utilizando formas adequadas de regularização dos
pesos, deep autoencoders têm produzido os melhores
resultados em diversos benchmarks de classificação de
padrões
● O processamento pode ser acelerado com diversas
técnicas como convolução, implementação em GPU e
dropout
● É possível e viável integrar deep autoencoders com
aprendizado por reforço
43
Referências
● Mitchell, Tom. “Machine Learning” (1997)
● Haykin, Simon. “Redes Neurais – Princípios e Prática” (2002)
● Rifai, Salah, et al. "Contractive auto-encoders: Explicit invariance during feature extraction."
Proceedings of the 28th International Conference on Machine Learning (ICML-11). 2011.
● Ng, Andrew. "Cs294a lecture notes: Sparse autoencoder." (2010).
● Vincent, Pascal, et al. "Extracting and composing robust features with denoising autoencoders."
Proceedings of the 25th international conference on Machine learning. ACM, 2008.
● Vincent, Pascal, et al. "Stacked denoising autoencoders: Learning useful representations in a deep
network with a local denoising criterion." The Journal of Machine Learning Research 11 (2010):
3371-3408.
● Hinton, Geoffrey E., and Ruslan R. Salakhutdinov. "Reducing the dimensionality of data with neural
networks." Science 313.5786 (2006): 504-507.
● Le, Quoc V., et al. "Building high-level features using large scale unsupervised learning." arXiv
preprint arXiv:1112.6209 (2011).
● Ngiam, Jiquan, et al. "On optimization methods for deep learning." Proceedings of the 28th
International Conference on Machine Learning (ICML-11). 2011.
● Lange, Sascha, and Martin Riedmiller. "Deep learning of visual control policies." European
Symposium on Artificial Neural Networks, Computational Intelligence and Machine Learning (ESANN
2010), Brugge, Belgium. 2010.
● Mattner, Jan, Sascha Lange, and Martin Riedmiller. "Learn to swing up and balance a real pole based
on raw visual input data." Neural Information Processing. Springer Berlin Heidelberg, 2012.

Deep Learning

  • 1.
    1 Exame de Qualificação Doutorando:Rafael Coimbra Pinto Orientador: Paulo Martins Engel
  • 2.
    2 Exame de Qualificação ●Área: Inteligência Artificial ● Abrangência: Inteligência Computacional ● Profundidade: Redes Neurais
  • 3.
    3 Roteiro ● IA xIC ● Redes Neurais – Perceptron, Adaline, Multi-Layer Perceptron ● Autoencoders e Deep Autoencoders – Sparse Autoencoders, Denoising Autoencoders, Contractive Autoencoders, Convolutive Autoencoders – Treinamento – Técnicas de Aceleração – Aplicações
  • 4.
    4 IA x IC ●Divisão mais comum: IC como sub-área da IA – Ex.: divisão neste exame de qualificação ● Também: IC como alternativa à IA – Ex.: ENIAC, Encontro Nacional de IA E IC
  • 5.
    5 IA x IC InteligênciaArtificial Inteligência Computacional Mais simbólica Mais sub-simbólica Menos bioinspirada Mais bioinspirada Mais algoritmos de busca Mais algoritmos numéricos Mais conhecimento prévio Mais aprendizagem Mais soluções exatas Mais soluções aproximadas Mais top-down Mais bottom-up Mais discreta Mais contínua
  • 6.
    6 Inteligência Computacional ● ComputaçãoEvolutiva – Algoritmos genéticos, programação genética, estratégias evolucionárias ● Inteligência Coletiva (Swarm) – Ant Colony Optimization (ACO), Particle Swarm Optimization (PSO) ● Redes Neurais
  • 7.
    7 Redes Neurais ● Algoritmosinspirados no funcionamento do sistema nervoso ● Uma rede neural é uma composição de neurônios interligados de diferentes maneiras ● Cada neurônio é uma unidade de processamento simples ● As ligações entre neurônios (sinapses) podem ter suas forças modificadas (aprendizado)
  • 8.
    8 Redes Neurais ● Oque faz cada neurônio? ● Como eles são interligados? ● Como ocorre o aprendizado? ● Cada combinação de respostas para estas perguntas resulta em um diferente algoritmo de redes neurais
  • 9.
    9 Redes Neurais ● Supervisionadas:regressão e classificação – Perceptron – Adaline – Multi-Layer Perceptron (MLP) ● Não Supervisionadas: clustering, redução de dimensionalidade, filtros – Self-Organizing Map (SOM) – Rede de Hopfield – Máquina de Boltzmann – (Deep / Stacked) Autoencoder
  • 10.
    10 Redes Supervisionadas ● Umasérie de pares entrada-saída de exemplos deve ser apresentada à rede ● Sempre que a estimativa da saída da rede para determinada entrada não confere com a saída informada, ocorre aprendizado ● Os pesos da rede devem ser corrigidos de forma que o exemplo seja calculado corretamente nas próximas tentativas
  • 11.
    11 Redes Supervisionadas ● Ex.:suponha que os seguintes pares entrada-saída foram apresentados a uma rede neural 1 1, 2 4, 3 9, 4 16, 5 25, 6 36, 7 49, 8 64, 9 81, 10 100 ● Ao receber o par '5 25', a rede neural deve computar uma saída para a entrada 5 ● Se a saída computada for diferente de 25, deve ocorrer uma alteração nos pesos das conexões da rede neural (aprendizado), para que futuramente a resposta para 5 seja 25 ● Também podemos apresentar todos os exemplos e calcular um erro global para fazer os ajustes de pesos (aprendizado em lote)
  • 12.
    12 Perceptron ● Recebe comoentrada um vetor de valores reais ● Calcula uma combinação linear deles ● Retorna 1 caso o resultado da combinação ultrapasse um determinado limiar e -1 caso contrário ● Portanto, o Perceptron é utilizado em tarefas de classificação
  • 13.
    13 Perceptron ● O Perceptronpode ser treinado basicamente de 2 formas: – Regra do Perceptron: os erros são calculados em relação à saída da rede após a aplicação do limiar ● Convergência garantida apenas se o problema for linearmente separável – Regra Delta: os erros são calculados antes da aplicação do limiar ● Convergência garantida
  • 14.
    14 Adaline ● Similar aoPerceptron, porém sem aplicação do limiar ● Portanto, pode ser usada para regressão linear ● Usa-se a regra delta para a aprendizagem ● Convergência garantida
  • 15.
    15 Limitações ● Tanto oPerceptron como a rede Adaline são limitados a problemas linearmente separáveis – Não resolvem o XOR, por exemplo
  • 16.
    16 Multi-Layer Perceptron ● Podemosligar vários perceptrons/adalines para obter um Perceptron Multi-Camadas, capaz de resolver problemas não-linearmente separáveis ● As camadas intermediárias (ocultas) aprendem representações das entradas
  • 17.
    17 Backpropagation ● O problemaé que só temos os valores de saída para a camada de saída em nossos exemplos, e portanto não temos como treinar as camadas ocultas com os mesmos algoritmos usados no perceptron ou na rede adaline ● A solução está em propagar o erro das saídas para as outras camadas através do algoritmo Backpropagation
  • 18.
    18 Backpropagation ● 2 problemas: –O gradiente do erro se dilui ao longo das camadas, portanto redes de muitas camadas acabam sendo inviáveis – Este algoritmo pode ficar preso em mínimos locais
  • 19.
    19 Autoencoder ● Rede não-supervisionada(ou auto-supervisionada) que tenta aprender um mapeamento de suas entradas para elas próprias (função identidade) ● Para que?? ● Ao colocar uma camada oculta menor que a entrada, a rede é forçada a criar uma representação compacta do espaço de entrada – Filtragem e redução de dimensionalidade
  • 20.
    20 Autoencoder ● Em umexemplo clássico, construímos um autoencoder com 8 entradas e 3 neurônios na camada oculta ● Os exemplos de treinamento consistem em 8 bits onde apenas um deles é 1 e o restante é 0 (8 exemplos portanto) ● O autoencoder aprende a representar os 8 exemplos com codificação binária de 3 bits, sem nenhuma supervisão
  • 21.
    21 Autoencoder ● O númerode neurônios na camada oculta deve ser menor que a dimensão de entrada para evitar que a rede aprenda a solução trivial, ou seja, simplesmente copiar a entrada ● Com menos neurônios para codificar a entrada, a rede é forçada a aprender uma representação compacta do espaço de entrada
  • 22.
    22 Denoising Autoencoder ● Umaalternativa a criar um gargalo nas camadas ocultas está em aplicar ruído nas entradas e fazer a rede reconstruir a entrada original
  • 23.
    23 Sparse Autoencoder ● Outrapossibilidade está em restringir as ativações da camada oculta ● Podemos modificar a função de custo da rede para incluir um termo que penaliza muitas ativações nos neurônios ● Como resultado, uma codificação esparsa é aprendida (poucos neurônios ativados por vez), mesmo que a camada oculta seja maior que a dimensionalidade de entrada, evitando a solução trivial
  • 24.
    24 Contractive Autoencoder ● Aindaoutra alternativa está em modificar a função de custo da rede para minimizar a matriz jacobiana das ativações da camada oculta em relação às entradas ● Equivale a dizer que pequenas perturbações na entrada devem produzir pequenas perturbações na codificação ● É um equivalente determinístico ao Denoising Autoencoder ● O resultado também é muito similar ao Sparse Autoencoder
  • 25.
    25 Convolutional Autoencoder ● Podemosutilizar compartilhamento de pesos para reduzir o número de parâmetros no autoencoder e ao mesmo tempo explorar conhecimento prévio dos problemas ● Por exemplo, podemos trabalhar com imagens de tamanho 32x32 utilizando pequenas regiões 3x3 onde todas utilizam os mesmos pesos, efetivamente reduzindo a dimensão de entrada de 1024 para 9
  • 26.
  • 27.
    27 Pooling ● Redes convolutivastambém possuem camadas de pooling que reduzem a dimensionalidade das entradas e também deixam a rede mais robusta a transformações espaciais (mais invariante) ● A camada possui pesos fixos e realiza processamento mais 'hard-wired' como reduzir as saídas de um conjunto de neurônios a um único valor que pode ser o máximo do conjunto, a média, a norma, entre outros
  • 28.
    28 Deep Autoencoder ● UmDeep Autoencoder ou Stacked Autoencoder é a ligação de vários autoencoders em série ● O código gerado por um é repassado como entrada para o seguinte ● Qualquer variante do autoencoder pode ser utilizada
  • 29.
    29 Deep Autoencoder ● Cadacamada abstrai um pouco a camada anterior, criando representações de alto nível ● Isso facilita o trabalho de camadas superiores, pois elas passam a trabalhar sobre conceitos de mais alto nível ● Ex.: pixels → linhas → formas → objetos
  • 30.
    30 Treinamento ● Podemos treinaro deep autoencoder normalmente com backpropagation... – ...mas caímos no problema dos gradientes diluídos – O treinamento fica demorado ou mesmo inviável ● A solução desenvolvida recentemente está em treinar cada camada como um autoencoder isolado, o que reduz o caminho do gradiente para uma única camada ● Com isso, os deep autoencoders se tornaram o estado-da-arte em rede neurais, batendo inúmeros recordes em diversos problemas
  • 31.
  • 32.
    32 Camada Supervisionada ● Umdeep autoencoder também pode ser usado de forma supervisionada ao adicionar uma camada de saída após a última camada de codificação ● O treinamento pode ser feito em 2 etapas: primeiro de forma não-supervisionada, ignorando a camada de saída, e após de forma supervisionada – Esta técnica tem a vantagem de configurar os pesos da rede já em regiões promissoras antes de iniciar o backpropagation, reduzindo as chances de mínimos locais – Outra vantagem está no uso reduzido de exemplos rotulados, que só são necessários na etapa supervisionada final
  • 33.
    33 Implementação em GPU ●Deep Autoencoders, assim como a maioria dos tipos de redes neurais, dependem fortemente de operações matriciais ● Placas de vídeo (GPUs) são propícias para executar estes tipos de operações com altíssima velocidade ● Deep Autoencoders foram implementados em GPUs, obtendo um aumento de velocidade de, no mínimo, 2x
  • 34.
    34 Dropout ● A cadaexemplo apresentado para a rede, podemos ignorar neurônios da camada oculta aleatoriamente ● Isto faz com que, em uma rede com H neurônios, tenhamos 2H modelos diferentes, onde cada exemplo tem seu próprio modelo (bagging) ● Todos modelos compartilham pesos, o que resulta em regularização melhor que as vistas anteriormente ● O treinamento também fica mais rápido
  • 35.
    35 Aplicações ● Recentemente umaaplicação desenvolvida por Andrew Ng e sua equipe no Google virou notícia: a rede neural aprendeu a identificar gatos em vídeos do YouTube (entre outras categorias) – A rede era um deep sparse autoencoder massivo (1bi de pesos) que recebia quadros aleatórios de vídeos aleatórios do YouTube (total de 10M imagens) e aprendia conceitos de forma não-supervisionada – Ao inspecionar o que cada neurônio havia aprendido, percebeu-se que um deles era sensível a imagens de gatos – Usada como inicialização dos pesos para um classificador com backpropagation, resultou em 15% de acurácia no dataset Imagenet (recorde atual)
  • 36.
    36 Aplicações ● Hashing semânticode documentos ● Cada documento recebe um endereço de acordo com o seu conteúdo, e documentos similares recebem códigos similares ● Ao utilizar uma camada oculta com apenas 2 neurônios para codificação, podemos visualizar os documentos em um gráfico 2D
  • 37.
    37 Aplicações ● Reconhecimento de placasde trânsito ● Acurácia de 98.52% com uma única rede e 99.46% com 5 redes
  • 38.
    38 Aplicações ● Reconhecimento defala “We apply the recently proposed Context-Dependent Deep-Neural-Network HMMs, or CD-DNN-HMMs, to speech-to-text transcription. For single-pass speaker-independent recognition on the RT03S Fisher portion of phone-call transcription bench-mark (Switchboard), the word-error rate is reduced from 27.4%, obtained by discriminatively trained Gaussian-mixture HMMs, to 18.5%—a 33% relative improvement.”
  • 39.
    39 Aplicações ● Reconhecimento de gestos ●Um deep autoencoder convolutivo com camadas de max-pooling bateu o recorde anterior de 9.52% de erro com 3.23% de erro
  • 40.
    40 Aplicações ● Controle baseadoem visão ● Tarefa clássica em controle: pêndulo invertido ● Normalmente temos o ângulo do pêndulo medido por sensores ● Neste trabalho, imagens de uma câmera foram utilizadas no lugar do sensor direto
  • 41.
    41 Aplicações ● Aprendizado porreforço utilizando visão ● Foi possível ensinar um agente a achar a saída de um labirinto utilizando imagens do mapa em vez de informação direta
  • 42.
    42 Conclusões ● Utilizando formasadequadas de regularização dos pesos, deep autoencoders têm produzido os melhores resultados em diversos benchmarks de classificação de padrões ● O processamento pode ser acelerado com diversas técnicas como convolução, implementação em GPU e dropout ● É possível e viável integrar deep autoencoders com aprendizado por reforço
  • 43.
    43 Referências ● Mitchell, Tom.“Machine Learning” (1997) ● Haykin, Simon. “Redes Neurais – Princípios e Prática” (2002) ● Rifai, Salah, et al. "Contractive auto-encoders: Explicit invariance during feature extraction." Proceedings of the 28th International Conference on Machine Learning (ICML-11). 2011. ● Ng, Andrew. "Cs294a lecture notes: Sparse autoencoder." (2010). ● Vincent, Pascal, et al. "Extracting and composing robust features with denoising autoencoders." Proceedings of the 25th international conference on Machine learning. ACM, 2008. ● Vincent, Pascal, et al. "Stacked denoising autoencoders: Learning useful representations in a deep network with a local denoising criterion." The Journal of Machine Learning Research 11 (2010): 3371-3408. ● Hinton, Geoffrey E., and Ruslan R. Salakhutdinov. "Reducing the dimensionality of data with neural networks." Science 313.5786 (2006): 504-507. ● Le, Quoc V., et al. "Building high-level features using large scale unsupervised learning." arXiv preprint arXiv:1112.6209 (2011). ● Ngiam, Jiquan, et al. "On optimization methods for deep learning." Proceedings of the 28th International Conference on Machine Learning (ICML-11). 2011. ● Lange, Sascha, and Martin Riedmiller. "Deep learning of visual control policies." European Symposium on Artificial Neural Networks, Computational Intelligence and Machine Learning (ESANN 2010), Brugge, Belgium. 2010. ● Mattner, Jan, Sascha Lange, and Martin Riedmiller. "Learn to swing up and balance a real pole based on raw visual input data." Neural Information Processing. Springer Berlin Heidelberg, 2012.