Reconhecimento de Padrões Multi-Layer Perceptron (MLP)

  • View
    32

  • Download
    0

Embed Size (px)

DESCRIPTION

Universidade Federal de Ouro Preto (UFOP) Programa de Pós-Graduação em Ciência da Computação (PPGCC). Reconhecimento de Padrões Multi-Layer Perceptron (MLP). David Menotti, Ph.D. www.decom.ufop.br/menotti. Redes Neuronais. Cérebro humano. Mais fascinante processador existente. - PowerPoint PPT Presentation

Text of Reconhecimento de Padrões Multi-Layer Perceptron (MLP)

  • Reconhecimento de Padres

    Multi-Layer Perceptron(MLP)David Menotti, Ph.D.www.decom.ufop.br/menottiUniversidade Federal de Ouro Preto (UFOP)Programa de Ps-Graduao em Cincia da Computao (PPGCC)

  • Redes NeuronaisCrebro humano.Mais fascinante processador existente.Aprox. 10 bilhes de neurnios conectados atravs de sinapses.Sinapses transmitem estmulos e o resultado pode ser estendido por todo o corpo humano.

  • Redes Neuroniais Artificiais: Um breve histrico1943 McCulloch e Pitts.Sugeriam a construo de uma mquina baseada ou inspirada no crebro humano.1949 Donald Hebb.Prope uma lei de aprendizagem especfica para as sinpses dos neurnios.1957/1958 - Frank Rosenblatt.Estudos aprofundados pai da neuro-computao.Perceptron.Criador do primeiro neuro-computador a obter sucesso (Mark I).

  • Mark I - Perceptron

  • Um breve histrico (cont)1958-1967.Vrias pesquisas mal sucedidas.1967-1982.Pesquisas silenciosas.1986 David Rumelhart.Livro parallel distributed processing.Algoritmo eficaz de aprendizagem.1987.Primeira conferncia IEEE Int. Conf. On Neural Nets.

  • NeurnioDendritos:Receber os estmulos transmitidos por outros neurnios.Corpo (somma).Coletar e combinar informaes vindas de outros neurnios.Axnio.Transmite estmulos para outras clulas.

  • Redes Neuronais ArtificiaisTcnica computacional que apresenta um modelo inspirado na estrutura neural.Simula o crebro humano:Aprendendo, errando e fazendo descobertas.Estrutura de processamento de informao distribuda paralelamente na forma de um grafo direcionado.

  • Crebro X Computador

    ParmetroCrebroComputadorMaterialOrgnicoMetal e PlsticoVelocidadeMilisegundosNanosegundosTipo de ProcessamentoParaleloSequncialArmazenamentoAdaptativoEstticoControle de ProcessosDistribudoCentralizadoNmero de Elementos Processados1011 a 1014105 a 106Ligaes entre Elementos Processados10.000< 10

  • Neurnio artificialSinais so apresentados entrada.Cada sinal multiplicado por um peso.Soma ponderada produz um nvel de ativao.Se esse nvel excede um limite (threshold) a unidade produz uma sada.[PERCEPTRON]

  • PerceptronResolve problemas linearmente separveis somente.Problemas reais, entretanto, na maioria das vezes so mais complexos.

  • ExemploConsidere por exemplo, o problema XORx1x2w1w2Como visto anteriormente com SVMs, podemos afirmar que em altas dimenses os problemas so linearmente separveis.

    Sendo assim, vamos mudar o problema de R2 para R3 adicionandouma terceira caracterstica.

  • ExemploNesse caso, a caracterstica adicionada (X3) a operao AND entre X1 e X2O fato de adicionarmos essa caracterstica faz com que o problema torne-se linearmente separvel.

    X1X2X3Output111010 0101010000

  • Adicionando uma camadaOutra maneira de resolver esse problema consiste em adicionar uma camada extra (escondida) entre as camadas de entrada e sada.Dado uma quantidade suficiente de neurnios na camada escondida, possvel resolver qualquer tipo de problemasClaro que isso depende das caractersticas de entrada.

  • Camada EscondidaEssa camada pode ser vista como um extrator de caractersticas, ou seja, a grosso modo, o neurnio escondido seria uma caracterstica a maisO que torna o problema do XOR linearmente separvel.

  • Camadas X FronteirasGeralmente uma camada escondida resolve a grande maioriados problemas.

  • O problema de atribuio de crditosQuando temos uma camada escondida, surge o problema de atribuio de crditos aos neurnios desta camadaNo existem targets como na camada de sada.Perodo entre 58 e 82 foi dedicado a resolver esse problemaSoluo foi o algoritmo conhecido como Backpropagation.David E. Rumelhart et al (1986)

  • MLP para o problema XORConsidere o problema XOR e a seguinte rede j treinada.A sada calculada de maneirasimilar ao perceptron, mas a MLP geralmente usa sigmoidcomo funo de ativao.Para grandes quantidades de dadoso resultado da sigmoid pode serinterpretado como estimao de probabilidade.

  • MLP para o problema XORPara calcular a sada da rede, primeiramente devemos encontrar o valor do neurnio escondido.1 * 7.1 + 1 * -2.76 +0 * 7.1 = 4.34Passando o valor 4.34 na funo de ativao, temos 0.987.O valor de sada ento calculado1 * -4.95 + 0 * -4.95 + 0.987 * 10.9 + 1 X -3.29 = 2.52Passando 2.52 na funo de ativao temos a sada igual a 0.91

  • MLP para o problema XORAps classificarmos todos os padres de entrada teramosPodemos usar como regra de deciso um limiar igual a 0.9, por exemplo.

    100.91000.08011.00110.10

  • BackPropSeja oj o valor de ativao para o neurnio j.Seja f uma funo de ativao.Seja wij o peso entre os neurnios i e j.Seja netj a entrada para o neurnio j, a qual calculada por

    onde n o nmero de unidades ligadas ao neurnio j e

  • BackPropO treinamento acontece da seguinte maneira:Inicializar os valores dos pesos e neurnios aleatoriamente.Apresentar um padro a camada de entrada da redeEncontrar os valores para as camadas escondidas e a camada de sada.Encontrar o erro da camada de sada.Ajustar os pesos atravs da retropropagao dos erros (Backpropagation)Diminuir o erro a cada iteraoEncontrar o erro na camada escondidaAjustar os pesos.

    Critrio de parada o erro desejado

  • BackPropO valor corrente de ativao de um neurnio k ok e o target tkAps realizar os passos 1, 2, e 3, o prximo passo consiste em calcular o erro, o qual pode ser realizado atravs da seguinte equao

  • BackProp: ExemploConsidere uma rede inicializada da seguinte formaNesse caso

  • BackProp: ExemploA frmula para atualizar os pesos W entre o neurnio i e j

    onde eta uma constante pequena e positiva camada de taxa de aprendizagem (learning rate)Usando uma taxa de 0.1, temos

  • BackProp: ExemploA frmula para calcular o erro dos neurnios da camada escondida Como temos somente um neurnio no nosso exemplo

  • BackProp:ExemploNesse caso teramosPara atualizar os pesos, usamos a mesma frmulaComo os novos pesos calculados, a sada da rede seria 0.507031

  • BackProp:ExemploAps aplicarmos todos os padres, teramos o seguinteUsando uma taxa de aprendizagem = 0.1, o algoritmo levar 20.000 iteraes para convergir. Uma soluo para melhorar isso seria aumentara taxa de aprendizagem. Se usarmos 2, o algoritmo converge em 480 iteraes.

    100.4998000.4998010.4998110.4997

  • Aspectos PrticosAlguns aspectos prticos devem ser considerados na utilizao de redes neurais MLP.Taxa de aprendizagemMomentum Online vs batch ShuffleNormalizaoInicializao dos pesosGeneralizaoReferncia Interessante:Efficient Backprop, Y. LeCun et al, 1998

  • Taxa de AprendizagemTaxas muito pequenas tornam o processo bastante lento. Taxas muito grandes tornam o processo rpido.Podem no trazer os resultados ideais.Erro mnimoSuperfcie doerroTaxa pequenaTaxa grande

  • Taxa de AprendizagemO ideal comear com uma taxa grande e reduzir durante as iteraes.Permite a explorao global no incio (exploration) a local (exploitation) quando o algoritmo estiver prximo do timo global. Geralmente valores entre 0.05 e 0.75 fornecem bons resultados.

  • Momentum uma estratgia usada para evitar mnimos locais. Considere a seguinte superfcie

    Existem trs mnimos locais antes do mnimo global.

  • MomentumConsidere, por exemplo, que uma bola seja solta no incio da superfcie.Se ela tiver momentum suficiente, ela vai conseguir passar os trs mnimos locais e alcanar o mnimo global.

    Normalmente 0

  • On-line vs BatchA diferena est no momento em que os pesos so atualizados.Na verso on-line, os pesos so atualizados a cada padro apresentado a rede.Na verso batch, todos os pesos so somados durante uma iterao (todos os padres) e s ento os pesos so atualizados.Verso batchInteressante para aplicaes que possam ser paralelizadas.Verso onlineGeralmente converge mais rapidamente.

  • Misturando Exemplos (Shuffle)Redes neuronais aprendem melhor quando diferentes exemplos de diferentes classes so apresentados a rede.Uma prtica muito comum consiste em apresentar um exemplo de cada classe a redeIsso garante que os pesos sero atualizados levando-se em considerao todas as classes.

  • Misturando Exemplos (Shuffle)Se apresentarmos rede todos os exemplos de uma classe, e assim por diante, os pesos finais tendero para a ltima classeA rede vai esquecer o que ela aprendeu antes.

  • NormalizaoA normalizao interessante quando existem caractersticas em diversas unidades dentro do vetor de caractersticas. Nesses casos, valores muito altos podem saturar a funo de ativao.Uma maneira bastante simples de normalizar os dados consiste em somar todas as caractersticas e dividir pela soma Outra normalizao bastante usada a normalizao Z-score.

  • NormalizaoPara redes neurais MLP, geralmente interessante ter as caractersticas com mdia prxima de zero

    Melhora o tempo de convergncia durante a aprendizagem.

  • NormalizaoAs caractersticas devem ser no correlacionadas se possvelQuando temos poucas caractersticas podemos verificar isso facilmente.Com vrias caractersticas, o problema se torna muito mais complexo.Mtodos de seleo de caractersticas.

  • Inicializao dos PesosAssumindo que os dados foram normalizados e uma sigmoid est sendo usada como funo de ativao.Os pesos devem ser inicializados aleatoriamente mas de modo que fiquem na regio linear da sigmoid

    Pesos muito altos ou muito baixo a sigmoid deve saturar - Gradientes pequenos - Aprendizagem muito lenta.

  • GeneralizaoUm aspecto bastante importante quando treinamos um classificador garantir que o mesmo tenha um bom poder de generalizao.Evitar overfitting.A maneira clssica de se garantir uma boa generalizao consiste em reservar uma parte da base para validar a gene