MLP (Multi Layer Perceptron)



Documentos relacionados
Projeto de Redes Neurais e MATLAB

Reconhecimento de Padrões/Objetos

Inteligência Artificial. Redes Neurais Artificiais

Matlab - Neural Networw Toolbox. Ana Lívia Soares Silva de Almeida

Aula 2 RNA Arquiteturas e Treinamento

Aprendizagem de Máquina

Redes Neurais. Profa. Flavia Cristina Bernardini

3. REDES DE CAMADA ÚNICA

Modelos Pioneiros de Aprendizado

3 Metodologia de Previsão de Padrões de Falha

Redes Neurais no MATLAB 6.1

Aprendizado de Máquinas. Multi-Layer Perceptron (MLP)

Relatório da Aula Prática sobre Redes Neurais Artificiais

Complemento II Noções Introdutória em Redes Neurais

Do neurônio biológico ao neurônio das redes neurais artificiais

Aprendizagem de Máquina

Multiple Layer Perceptron

Inteligência Artificial. Prof. Tiago A. E. Ferreira Aula 20 - Backpropagation

Redes Neurais Construtivas. Germano Crispim Vasconcelos Centro de Informática - UFPE

Redes Neurais. A IA clássica segue o paradigma da computação simbólica

UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS

O Processo de KDD. Data Mining SUMÁRIO - AULA1. O processo de KDD. Interpretação e Avaliação. Seleção e Pré-processamento. Consolidação de dados

TÓPICOS AVANÇADOS EM ENGENHARIA DE SOFTWARE

Figura 5.1.Modelo não linear de um neurônio j da camada k+1. Fonte: HAYKIN, 2001

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu

Algoritmos Construtivos. Prof. Júlio Cesar Nievola PPGIA PUCPR Especialização em Inteligência Computacional

PALAVRAS-CHAVE: Massas Nodulares, Classificação de Padrões, Redes Multi- Layer Perceptron.

Previsão do Índice da Bolsa de Valores do Estado de São Paulo utilizandoredes Neurais Artificiais

Lista de Exercícios Tratamento de Incerteza baseado em Probabilidade

Redes Neurais. Mapas Auto-Organizáveis. 1. O Mapa Auto-Organizável (SOM) Prof. Paulo Martins Engel. Formação auto-organizada de mapas sensoriais

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2

Arquitetura de Rede de Computadores

Clip-art Retrieval using Sketches PTDC/EIA-EIA/108077/2008

Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Controle de Congestionamento

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande

ArcGIS 1: Introdução ao GIS (10.2)

Utilizando o EXCEL Solver

Prof. Rafael Gross.

Dicas de uso - Render Up

Redes Neurais Artificiais: Funções de Base Radial

Aplicações Práticas com Redes Neurais Artificiais em Java

Relatório de uma Aplicação de Redes Neurais

O ESPAÇO NULO DE A: RESOLVENDO AX = 0 3.2

As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem:

Automatização do processo de determinação do número de ciclos de treinamento de uma Rede Neural Artificial

3 Estratégia para o enriquecimento de informações

UMA ABORDAGEM DE PODA PARA MÁQUINAS DE APRENDIZADO EXTREMO VIA ALGORITMOS GENÉTICOS

computador-cálculo numérico perfeita. As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem:

Redes neurais aplicadas na identificação de variedades de soja

Sua indústria. Seu show. Seu Futuro

Para entender como funciona um perceptron, vamos continuar considerando um perceptron com somente duas entradas, x 1 e x 2, e uma saída s.

PROTÓTIPO DE SOFTWARE PARA APRENDIZAGEM DE REDES NEURAIS ARTIFICIAIS

TÍTULO: PROPOSTA DE METODOLOGIA BASEADA EM REDES NEURAIS ARTIFICIAIS MLP PARA A PROTEÇÃO DIFERENCIAL DE TRANSFORMADORES DE POTÊNCIA

Cálculo Numérico Faculdade de Engenharia, Arquiteturas e Urbanismo FEAU

Regressão Linear Multivariada

Por que o quadrado de terminados em 5 e ta o fa cil? Ex.: 15²=225, 75²=5625,...

PRODUÇÃO INDUSTRIAL DE SUÍNOS E O USO DE REDES NEURAIS ARTIFICIAIS PARA PREDIÇÃO DE ÍNDICES ZOOTÉCNICOS NA FASE DE GESTAÇÃO E MATERNIDADE RESUMO

Redes Neurais Artificiais

Agrupamento de dados

Equipamentos de Redes. Professor Leonardo Larback

Algoritmos Indutores de Árvores de

Volte ao Menu Principal e escolha a opção Acesso Manual

[1] Na terceira sessão, analisamos o Perceptron de Múltiplas Camadas inclusive um problema típico como o XOR.

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto

INF 1771 Inteligência Artificial

Previsão do Mercado de Ações Brasileiro utilizando Redes Neurais Artificiais

Aula 20. Roteamento em Redes de Dados. Eytan Modiano MIT

Método dos mínimos quadrados - ajuste linear

Roteamento em Redes de Computadores

ESTUDO DOS DADOS DA LIXIVIAÇÃO DOS MATERIAIS DE ELETRODOS DE PILHAS EM HCl POR REDE NEURAL

Protocolo em Rampa Manual de Referência Rápida

MINERAÇÃO DE DADOS APLICADA. Pedro Henrique Bragioni Las Casas

Status. Barra de Título. Barra de Menu. Barra de. Ferramentas Padrão. Caixa de nomes. Barra de. Ferramentas de Formatação. Indicadores de Coluna

ESTUDO DE VIABILIDADE. Santander, Victor - Unioeste Aula de Luiz Eduardo Guarino de Vasconcelos

Introdução às Redes Neurais Artificiais

Interconexão de redes locais. Repetidores. Pontes (Bridges) Hubs. Pontes (Bridges) Pontes (Bridges) Existência de diferentes padrões de rede

Informações para alunos, pais e responsáveis Avaliação de Aptitudes Básicas (FSA Foundation Skills Assessment): Perguntas e Respostas

Correlação e Regressão Linear

Sumário. Tutorial: Editor de Exercícios Online para o professor

Contagem I. Figura 1: Abrindo uma Porta.

Otimização por Descida de Gradiente

Máscaras de sub-rede. Fórmula

Resolução de sistemas lineares

Material Teórico - Módulo de Divisibilidade. MDC e MMC - Parte 1. Sexto Ano. Prof. Angelo Papa Neto

Avaliando o que foi Aprendido

Sistemas Lineares. Módulo 3 Unidade 10. Para início de conversa... Matemática e suas Tecnologias Matemática

Juros Simples, Compostos, e Contínuos

Aprendizagem de Máquina

Análise e visualização de dados utilizando redes neurais artificiais auto-organizáveis

Redes Neurais Artificiais

Classificação - avaliação de resultados - 1. Mineração de Dados 2013

OTIMIZAÇÃO DE REDES NEURAIS PARA PREVISÃO DE SÉRIES TEMPORAIS

Display de 7. PdP. Autor: Tiago Lone Nível: Básico Criação: 16/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

Jogos. Redes Sociais e Econômicas. Prof. André Vignatti

Tecnologia de Redes de Computadores - aula 5

INTERNATIONAL VIRTUAL AVIATION ORGANISATION. DIVISÃO BRASILEIRA Departamento de Treinamento

Dificuldades de Modelos de PNL. Onde está a solução ótima? Outro exemplo: Condição ótima Local vs. Global Quinta-feira, 25 de abril

APRENDA MÚSICA Vol I 1. As notas musicais no endecagrama

INF INTELIGÊNCIA ARTIFICIAL TRABALHO 2 LÓGICA

Transcrição:

MLP (Multi Layer Perceptron) André Tavares da Silva andre.silva@udesc.br

Roteiro Rede neural com mais de uma camada Codificação de entradas e saídas Decorar x generalizar Perceptron Multi-Camada (MLP - Multi Layer Perceptron) MLP para o problema do XOR (exemplo) Algoritmo Backpropagation (BackProp) Aspectos práticos

Rede neural multi-camada Outra maneira de resolver o problema do XOR (aula anterior), consiste em adicionar uma camada extra (escondida) entre as camadas de entrada e saída. Dado uma quantidade suficiente de neurônios na camada escondida, é possível resolver qualquer tipo de problemas Claro que isso depende das características de entrada.

Camada Escondida A camada escondida (ou oculta) pode ser vista como um extrator de características, ou seja, a grosso modo, o neurônio escondido seria uma característica a mais O que torna o problema do XOR linearmente separável.

Rede para resolver o XOR

Solução para o problema do XOR

Codificação das entradas e saídas Uma rede neural só aceita valores numéricos, assim as entradas precisam ser codificadas Se um parâmetro é contínuo (temperatura em graus), então ele pode ser usado diretamente Se um parâmetro é discreto, então se utiliza uma codificação com valores binários Atributos com dois valores: uma entrada pode ser 0 ou 1 Exemplos: Frio = 0; Quente = 1; Não = 0; Sim = 1;

Codificação das entradas e saídas Atributos com mais de dois valores: número de entradas igual ao número de valores: 1 0 0 = Frio 0 1 0 = Morno 0 0 1 = Quente O mesmo vale para as saídas Uma rede que responde sim ou não tem apenas uma saída com função de ativação Sigmoid Uma rede que responde quente, morno ou frio possui três saídas com função Sigmoid

Decorar x generalizar Uma rede com muitos parâmetros livres (muitos pesos) tende a decorar os exemplos se tiver poucos dados de treinamento; Mas o que se deseja geralmente é generalizar, ou seja, aprender a ideia geral da função; Se treinar uma rede neural além do ponto, ela pode se super especializar nos dados de treinamento e perder a capacidade de generalização;

0 Decorar x generalizar Para evitar esse problema, são utilizadas duas bases de dados: uma de treino e uma de testes; A medida que o aprendizado prossegue, o erro nas duas vai caindo; Mas chega um ponto em que o erro para a base de testes (Z 3 ) começará a subir; Neste ponto devemos parar o treinamento para evitar o overfiting, aumentando a generalização.

Rede MLP Redes Multi Layer Perceptron (MLP) Formadas por diversos neurônios dispostos em camadas Cada neurônio da rede é um Perceptron Três ou mais camadas: Camada de entrada Camada(s) oculta(s) Camada de saída As entradas e saídas são numéricas Se forem discretas (classes), usa-se 0s e 1s

2 Rede MLP

MLP para o problema XOR x y x y -3,29 z 1 0 1 0 0 0 0 1 1 b 1 10,9-4.95 7,1-2,76 h -4,95 7,1 1 1 0 x b 1 y 1 0

MLP para o problema XOR Para calcular a saída da rede, primeiramente devemos encontrar o valor do neurônio escondido (h). 1 * 7.1 + 1 * -2.76 +0 * 7.1 = 4.34 Passando o valor 4.34 na função de ativação, temos 0.987. O valor de saída é então calculado 1 * -4.95 + 0 * -4.95 + 0.987 * 10.9 + 1 * -3.29 = 2.52 Passando 2.52 na função de ativação temos a saída igual a 0.91

MLP para o problema XOR 0,91-3,29 z b 1 10,9-4.95 7,1-2,76 h -4,95 7,1 x b 1 y 1 0

MLP para o problema XOR Após classificarmos todos os padrões de entrada teríamos x y z 1 0 0.91 0 0 0.08 0 1 1.00 1 1 0.10 Podemos usar como regra de decisão um limiar igual a 0.9, por exemplo.

Retropropagação (BackPropagation) Dada uma rede neural do tipo perceptron multicamadas, com uma inicialização aleatória de pesos baixos para as conexões entre neurônios, o treinamento por retropropagação visa atualizar estes pesos de forma a minimizar o erro quadrático E obtido na classificação das amostras rotuladas de Z1. N c E = j j =1 i=1 [ g ( x j ) I (w i,l( z j ))] 2 Onde x j é um vetor de características e I(w i, l(z1 j )) é 1 se o rótulo de w i = l(z1 j ) e 0 (zero) caso contrário.

Retropropagação (BackPropagation) Sabe-se que o método descendente de gradiente atualiza um parâmetro θ, que influencia em uma função de erro J(θ), por θ θ + η J/ θ, onde η > 0 é a taxa de aprendizagem. Portanto, o peso w j de qualquer conexão de entrada de qualquer neurônio da rede deve ser atualizado por onde o w j w j + ηδo j e j é o valor de ativação w 0 w 0 + ηδo 0. do neurônio j e δ é o erro

Retropropagação (BackPropagation) A questão é como calcular δ e os novos o j? Os valores o j de entrada de todas as conexões de todos os neurônios são calculados por propagação de uma amostra rotulada x R n de objeto em Z 1. Os erros δ de cada neurônio são encontrados por retropropagação (da camada de saída para a de entrada).

Propagação Seja o j o valor de ativação para o neurônio j. Seja f uma função de ativação. Seja w ij o peso entre os neurônios i e j. Seja net j a entrada para o neurônio j, a qual é calculada por n net j onde n é o número de unidades ligadas ao neurônio j e = o = j f i= 1 w ij o ( net j i )

Algoritmo Backpropagation O treinamento acontece da seguinte maneira: 1. Inicializar os valores dos pesos e neurônios aleatoriamente. 2. Apresentar um padrão a camada de entrada da rede 3. Encontrar os valores para as camadas escondidas e a camada de saída. 4. Encontrar o erro da camada de saída. 5. Ajustar os pesos através da retropropagação dos erros (Backpropagation) 1. Diminuir o erro a cada iteração 6. Encontrar o erro na camada escondida 7. Ajustar os pesos e retorna ao passo 2. Critério de parada é o erro desejado

BackProp O valor corrente de ativação de um neurônio k é o k e o target é t k Após realizar os passos 1, 2, e 3, o próximo passo consiste em calcular o erro, o qual pode ser realizado através da seguinte equação δ k = ( tk ok ) ok (1 ok )

BackProp: Exemplo Considere uma rede inicializada da seguinte forma 0 0,5 z b 1 x 0 0 0 0,5 h 0 0 0 1 1 0 b y

Cálculo do erro: BackProp: Exemplo δ z = ( 1 0.5) 0.5 (1 0.5) = 0.125 Em w ij w ij + ηδo ij para atualizar os pesos w entre o neurônio i e j, usando uma taxa de aprendizagem (learning rate) η = 0,1 no exemplo anterior, temos:

Lembrando: w jj w jj + ηδo ij BackProp: Exemplo w xz =0 +0.1 0.125 1=0.0125 w yz =0+0.1 0.125 0=0 w hz =0 +0.1 0.125 0.5=0. 00625 w bz =0 +0.1 0.125 1=0.0125 A fórmula para calcular o erro dos neurônios da camada escondida é δ = o (1 o ) δ w i i i Como temos somente um neurônio no nosso exemplo δ = o ( 1 o ) δ w h h h k z k b ik hz 1 x 0 0,5 z 0 0 0 0,5 h 0 0 0 1 1 y 0 b

BackProp: Exemplo Nesse caso teríamos δ h = 0.5(1 0.5)0.125 0.00625 = 0.000195313 Para atualizar os pesos, usamos a mesma fórmula w xh =0+0.1 0.0001953 1=0. 00001953 w yh =0 +0.1 0. 0001953 0=0 w bh =0+0.1 0.0001953 1=0. 00001953 Com os novos pesos calculados, a saída da rede seria 0.507031

BackProp: Exemplo Após aplicarmos todos os padrões, teríamos o seguinte 1 0 0.4998 0 0 0.4998 0 1 0.4998 1 1 0.4997 Usando uma taxa de aprendizagem = 0.1, o algoritmo levará 20.000 iterações para convergir. Uma solução para melhorar isso seria aumentar a taxa de aprendizagem. Se usarmos 2, o algoritmo converge em 480 iterações.

Aspectos Práticos Alguns aspectos práticos devem ser considerados na utilização de redes neuronais MLP. Taxa de aprendizagem Momentum Online vs batch Shuffle Normalização Inicialização dos pesos Generalização Tamanho da rede

Taxa de Aprendizagem Taxas muito pequenas tornam o processo bastante lento. Taxas muito grandes tornam o processo mais rápido mas podem não trazer bons resultados. Superfície do erro Erro mínimo Taxa pequena Taxa grande

Taxa de Aprendizagem O ideal é começar com uma taxa grande e reduzir durante as iterações. Permite a exploração global no início (exploration) a local (exploitation) quando o algoritmo estiver próximo do ótimo global. Geralmente valores entre 0.05 e 0.75 fornecem bons resultados.

1 O problema dos mínimos locais

Momentum É uma estratégia usada para evitar mínimos locais. Considere a seguinte superfície Existem três mínimos locais antes do mínimo global.

Momentum Considere, por exemplo, que uma bola seja solta no início da superfície. Se ela tiver momentum suficiente, ela vai conseguir passar os três mínimos locais e alcançar o mínimo global. w Normalmente 0 <= α <= 0.9 ij `= α w + ηδ ij j o k

On-line vs Batch A diferença está no momento em que os pesos são atualizados. Na versão on-line, os pesos são atualizados a cada padrão apresentado a rede. Na versão batch, todos os pesos são somados durante uma iteração (todos os padrões) e só então os pesos são atualizados. Versão batch Interessante para aplicações que possam ser paralelizadas. Versão on-line Geralmente converge mais rapidamente.

Embaralhar exemplos (Shuffle) Redes neurais aprendem melhor quando diferentes exemplos de diferentes classes são apresentados a rede. Uma prática muito comum consiste em apresentar um exemplo de cada classe a rede Isso garante que os pesos serão atualizados levando-se em consideração todas as classes.

Embaralhar exemplos (Shuffle) Se apresentarmos à rede todos os exemplos de uma classe, e assim por diante, os pesos finais tenderão para a última classe; Ou seja, a rede vai esquecendo o que ela aprendeu antes (classes anteriores).

Normalização A normalização é interessante quando existem características em diversas unidades dentro do vetor de características. Nesses casos, valores muito altos podem saturar a função de ativação. Uma maneira bastante simples de normalizar os dados consiste em somar todas as características e dividir pela soma Outra normalização bastante usada é a normalização Z-score.

Normalização Para redes neurais MLP, geralmente é interessante ter as características com média próxima de zero Z = X µ σ Melhora o tempo de convergência durante a aprendizagem.

Normalização As características devem ser não correlacionadas se possível Quando temos poucas características podemos verificar isso facilmente. Com várias características, o problema se torna muito mais complexo. Métodos de seleção de características.

Inicialização dos Pesos Assumindo que os dados foram normalizados e uma sigmoid está sendo usada como função de ativação. Os pesos devem ser inicializados aleatoriamente mas de modo que fiquem na região linear da sigmoid Pesos muito altos ou muito baixo a sigmoid deve saturar - Gradientes pequenos - Aprendizagem muito lenta.

Generalização Um aspecto bastante importante quando treinamos um classificador é garantir que o mesmo tenha um bom poder de generalização. Evitar overfitting. A maneira clássica de se garantir uma boa generalização consiste em reservar uma parte da base de treinamento para validar a generalização (Z 1 = treinamento e Z 2 = validação).

Generalização A cada iteração, devemos monitorar o desempenho na base de validação. Não é raro observar o seguinte desempenho

Generalização

Generalização

Generalização Uma outra estratégia é a validação cruzada. Interessante quando a base não é muito grande Separar alguns exemplos para validação pode prejudicar o treinamento. Divide-se a base de treinamento (Z 1 U Z 2 ) em n partições iguais e usar n-1 partições para aprendizagem e uma partição para validação.

Generalização A cada iteração de aprendizado a partição usada para validação é trocada. 1ª. iteração 2ª. iteração 3ª. iteração

Regiões de classificação Exemplos de regiões de classificação para algumas configurações com 1, 2 e 3 camadas escondidas.

Tamanho da rede Geralmente uma camada escondida é suficiente. Em poucos casos é preciso adicionar mais camadas escondidas. Não existe uma fórmula matemática para se encontrar o número de neurônios. Empírico Dica prática Comece com uma rede menor, pois a aprendizagem vai ser mais rápida.