Deep Learning

download Deep Learning

of 43

  • date post

    06-Dec-2014
  • Category

    Science

  • view

    175
  • download

    0

Embed Size (px)

description

Apresentação para o exame de qualificação do doutorado. Tema: Deep Learning.

Transcript of Deep Learning

  • 1. 1Exame de QualificaoDoutorando: Rafael Coimbra PintoOrientador: Paulo Martins Engel

2. 2Exame de Qualificao rea: Inteligncia Artificial Abrangncia: Inteligncia Computacional Profundidade: Redes Neurais 3. 3Roteiro IA x IC Redes Neurais Perceptron, Adaline, Multi-Layer Perceptron Autoencoders e Deep Autoencoders Sparse Autoencoders, Denoising Autoencoders,Contractive Autoencoders, Convolutive Autoencoders Treinamento Tcnicas de Acelerao Aplicaes 4. 4IA x IC Diviso mais comum: IC como sub-rea da IA Ex.: diviso neste exame de qualificao Tambm: IC como alternativa IA Ex.: ENIAC, Encontro Nacional de IA E IC 5. 5IA x ICInteligncia Artificial Inteligncia ComputacionalMais simblica Mais sub-simblicaMenos bioinspirada Mais bioinspiradaMais algoritmos de busca Mais algoritmos numricosMais conhecimento prvio Mais aprendizagemMais solues exatas Mais solues aproximadasMais top-down Mais bottom-upMais discreta Mais contnua 6. 6Inteligncia Computacional Computao Evolutiva Algoritmos genticos, programao gentica,estratgias evolucionrias Inteligncia Coletiva (Swarm) Ant Colony Optimization (ACO), Particle SwarmOptimization (PSO) Redes Neurais 7. 7Redes Neurais Algoritmos inspirados no funcionamento do sistemanervoso Uma rede neural uma composio de neurniosinterligados de diferentes maneiras Cada neurnio uma unidade de processamentosimples As ligaes entre neurnios (sinapses) podem ter suasforas modificadas (aprendizado) 8. 8Redes Neurais O que faz cada neurnio? Como eles so interligados? Como ocorre o aprendizado? Cada combinao de respostas para estas perguntasresulta em um diferente algoritmo de redes neurais 9. 9Redes Neurais Supervisionadas: regresso e classificao Perceptron Adaline Multi-Layer Perceptron (MLP) No Supervisionadas: clustering, reduo dedimensionalidade, filtros Self-Organizing Map (SOM) Rede de Hopfield Mquina de Boltzmann (Deep / Stacked) Autoencoder 10. 10Redes Supervisionadas Uma srie de pares entrada-sada de exemplos deve serapresentada rede Sempre que a estimativa da sada da rede paradeterminada entrada no confere com a sadainformada, ocorre aprendizado Os pesos da rede devem ser corrigidos de forma que oexemplo seja calculado corretamente nas prximastentativas 11. 11Redes Supervisionadas Ex.: suponha que os seguintes pares entrada-sada foramapresentados a uma rede neural1 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 sadapara a entrada 5 Se a sada computada for diferente de 25, deve ocorrer umaalterao nos pesos das conexes da rede neural (aprendizado),para que futuramente a resposta para 5 seja 25 Tambm podemos apresentar todos os exemplos e calcular um erroglobal para fazer os ajustes de pesos (aprendizado em lote) 12. 12Perceptron Recebe como entrada umvetor de valores reais Calcula uma combinaolinear deles Retorna 1 caso o resultadoda combinao ultrapasseum determinado limiar e -1caso contrrio Portanto, o Perceptron utilizado em tarefas declassificao 13. 13Perceptron O Perceptron pode ser treinadobasicamente de 2 formas: Regra do Perceptron: os errosso calculados em relao sada da rede aps a aplicaodo limiar Convergncia garantidaapenas se o problema forlinearmente separvel Regra Delta: os erros socalculados antes da aplicaodo limiar Convergncia garantida 14. 14Adaline Similar ao Perceptron,porm sem aplicao dolimiar Portanto, pode ser usadapara regresso linear Usa-se a regra delta paraa aprendizagem Convergncia garantida 15. 15Limitaes Tanto o Perceptron comoa rede Adaline solimitados a problemaslinearmente separveis No resolvem o XOR,por exemplo 16. 16Multi-Layer Perceptron Podemos ligar vriosperceptrons/adalines paraobter um PerceptronMulti-Camadas, capaz deresolver problemasno-linearmenteseparveis As camadasintermedirias (ocultas)aprendem representaesdas entradas 17. 17Backpropagation O problema que s temos osvalores de sada para a camada desada em nossos exemplos, eportanto no temos como treinar ascamadas ocultas com os mesmosalgoritmos usados no perceptron ouna rede adaline A soluo est em propagar o errodas sadas para as outras camadasatravs do algoritmoBackpropagation 18. 18Backpropagation 2 problemas: O gradiente do erro sedilui ao longo dascamadas, portantoredes de muitascamadas acabamsendo inviveis Este algoritmo podeficar preso em mnimoslocais 19. 19Autoencoder Rede no-supervisionada (ouauto-supervisionada) que tentaaprender um mapeamento de suasentradas para elas prprias (funoidentidade) Para que?? Ao colocar uma camada ocultamenor que a entrada, a rede forada a criar uma representaocompacta do espao de entrada Filtragem e reduo dedimensionalidade 20. 20Autoencoder Em um exemplo clssico, construmos um autoencodercom 8 entradas e 3 neurnios na camada oculta Os exemplos de treinamento consistem em 8 bits ondeapenas um deles 1 e o restante 0 (8 exemplosportanto) O autoencoder aprende a representar os 8 exemploscom codificao binria de 3 bits, sem nenhumasuperviso 21. 21Autoencoder O nmero de neurnios na camada oculta deve sermenor que a dimenso de entrada para evitar que a redeaprenda a soluo trivial, ou seja, simplesmente copiar aentrada Com menos neurnios para codificar a entrada, a rede forada a aprender uma representao compacta doespao de entrada 22. 22Denoising Autoencoder Uma alternativa a criar um gargalo nas camadas ocultasest em aplicar rudo nas entradas e fazer a redereconstruir a entrada original 23. 23Sparse Autoencoder Outra possibilidade est em restringir as ativaes dacamada oculta Podemos modificar a funo de custo da rede paraincluir um termo que penaliza muitas ativaes nosneurnios Como resultado, uma codificao esparsa aprendida(poucos neurnios ativados por vez), mesmo que acamada oculta seja maior que a dimensionalidade deentrada, evitando a soluo trivial 24. 24Contractive Autoencoder Ainda outra alternativa est em modificar a funo decusto da rede para minimizar a matriz jacobiana dasativaes da camada oculta em relao s entradas Equivale a dizer que pequenas perturbaes na entradadevem produzir pequenas perturbaes na codificao um equivalente determinstico ao DenoisingAutoencoder O resultado tambm muito similar ao SparseAutoencoder 25. 25Convolutional Autoencoder Podemos utilizar compartilhamento de pesos para reduzir onmero de parmetros no autoencoder e ao mesmo tempoexplorar conhecimento prvio dos problemas Por exemplo, podemos trabalhar com imagens de tamanho 32x32utilizando pequenas regies 3x3 onde todas utilizam os mesmospesos, efetivamente reduzindo a dimenso de entrada de 1024para 9 26. 26Convolutional Autoencoder 27. 27Pooling Redes convolutivas tambm possuem camadas depooling que reduzem a dimensionalidade das entradas etambm deixam a rede mais robusta a transformaesespaciais (mais invariante) A camada possui pesos fixos e realiza processamentomais 'hard-wired' como reduzir as sadas de umconjunto de neurnios a um nico valor que pode ser omximo do conjunto, a mdia, a norma, entre outros 28. 28Deep Autoencoder Um Deep Autoencoder ouStacked Autoencoder aligao de vriosautoencoders em srie O cdigo gerado por um repassado como entradapara o seguinte Qualquer variante doautoencoder pode serutilizada 29. 29Deep Autoencoder Cada camada abstrai umpouco a camada anterior,criando representaes dealto nvel Isso facilita o trabalho decamadas superiores, poiselas passam a trabalharsobre conceitos de maisalto nvel Ex.: pixels linhas formas objetos 30. 30Treinamento Podemos treinar o deep autoencoder normalmente combackpropagation... ...mas camos no problema dos gradientes diludos O treinamento fica demorado ou mesmo invivel A soluo desenvolvida recentemente est em treinarcada camada como um autoencoder isolado, o quereduz o caminho do gradiente para uma nica camada Com isso, os deep autoencoders se tornaram oestado-da-arte em rede neurais, batendo inmerosrecordes em diversos problemas 31. 31Treinamento 32. 32Camada Supervisionada Um deep autoencoder tambm pode ser usado de formasupervisionada ao adicionar uma camada de sada aps altima camada de codificao O treinamento pode ser feito em 2 etapas: primeiro deforma no-supervisionada, ignorando a camada de sada, eaps de forma supervisionada Esta tcnica tem a vantagem de configurar os pesos darede j em regies promissoras antes de iniciar obackpropagation, reduzindo as chances de mnimoslocais Outra vantagem est no uso reduzido de exemplosrotulados, que s so necessrios na etapasupervisionada final 33. 33Implementao em GPU Deep Autoencoders, assim como a maioria dos tipos deredes neurais, dependem fortemente de operaesmatriciais Placas de vdeo (GPUs) so propcias para executarestes tipos de operaes com altssima velocidade Deep Autoencoders foram implementados em GPUs,obtendo um aumento de velocidade de, no mnimo, 2x 34. 34Dropout A cada exemplo apresentado paraa rede, podemos ignorar neurniosda camada oculta aleatoriamente Isto faz com que, em uma redecom H neurnios, tenhamos 2Hmodelos diferentes, onde cadaexemplo tem seu prprio modelo(bagging) Todos modelos compartilhampesos, o que resulta emregularizao melhor que as vistasanteriormente O treinamento tambm fica maisrpido 35. 35Aplicaes Recentemente uma aplicao desenvolvida por Andrew Ng e sua equipe no Googlevirou notcia: a rede neural aprendeu a identificar gatos em vdeos do YouTube (entreoutras categorias) A rede era um deep sparse autoencoder massivo (1bi de pesos) que recebiaquadros aleatrios de vdeos aleatrios do YouTube (total de 10M imagens) eaprendia conceitos de forma no-supervisionada Ao inspecionar o que cada neurnio havia aprendido, percebeu-se que um deles erasensvel a imagens de gatos Usada como inicializao dos pesos para um classificador com backpropagation,resultou em 15% de acurcia no dataset Imagenet (recorde atual) 36. 36Aplicaes Hashing semntico de documentos Cada documento recebe um endereo de acordo com oseu contedo, e documentos similares recebem cdigossimilares Ao utilizar uma camada oculta com apenas 2