• Nenhum resultado encontrado

MLP (Multi Layer Perceptron)

N/A
N/A
Protected

Academic year: 2021

Share "MLP (Multi Layer Perceptron)"

Copied!
48
0
0

Texto

(1)

MLP

(Multi Layer Perceptron)

André Tavares da Silva

(2)

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

(3)

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

(4)

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.

(5)

Rede para resolver o XOR

(6)

Solução para o problema do XOR

(7)

• 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

(8)

• 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

Codificação das entradas e saídas

(9)

• 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;

Decorar x generalizar

(10)

• 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 (Z3) começará a subir;

• Neste ponto devemos parar o treinamento para evitar o overfiting, aumentando a generalização.

Decorar x generalizar

(11)

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

(12)

12

(13)

MLP para o problema XOR

y 1 x -4.95 -4,95 1 1 -3,29 10,9 -2,76 z h 7,1 7,1 b b 0 x y x⊕y 1 0 1 0 0 0 0 1 1 1 1 0

(14)

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

(15)

MLP para o problema XOR

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

(16)

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

(17)

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.

Onde xj é um vetor de características e I(wi, l(Z1j)) é 1 se o rótulo de wi = l(Z1j) e 0 (zero) caso contrário.

E j=

j =1 N

i=1 c [ g ( x j)−I (wi , l( z j))]2

(18)

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 wj de qualquer conexão de

entrada de qualquer neurônio da rede deve ser atualizado por

wj ← wj + ηδoj e

w0 ← w0 + ηδo0.

onde oj é o valor de ativação do neurônio j e δ é o erro

(19)

Retropropagação (BackPropagation)

• A questão é como calcular δ e os novos oj?

• Os valores oj de entrada de todas as conexões de todos os neurônios são calculados por propagação de uma amostra rotulada x ∈ ℜn de

objeto em Z1.

• Os erros δ de cada neurônio são encontrados por retropropagação (da camada de saída para a de entrada).

(20)

Propagação

• Seja oj o valor de ativação para o neurônio j. • Seja f uma função de ativação.

• Seja wij o peso entre os neurônios i e j.

• Seja netj a entrada para o neurônio j, a qual é calculada por

• onde n é o número de unidades ligadas ao neurônio j e

= = n i i ij j w o net 1 ) ( j j f net o =

(21)

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.

(22)

BackProp

• O valor corrente de ativação de um neurônio k é ok e o target é tk

• 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

) 1 ( ) ( k k k k k = to oo

δ

(23)

BackProp: Exemplo

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

(24)

BackProp: Exemplo

Cálculo do erro:

Em wij ← wij + ηδoij 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:

125

.

0

)

5

.

0

1

(

5

.

0

)

5

.

0

1

(

×

×

=

=

z

δ

(25)

BackProp: Exemplo

w xz=0+0.1×0.125×1=0.0125 w yz=0+0.1×0.125×0=0 whz=0+0.1×0.125×0.5=0.00625 wbz=0+0.1×0.125×1=0.0125 ik k k i i i = oo

δ w δ (1 )

A fórmula para calcular o erro dos neurônios da camada escondida é

Como temos somente um neurônio no nosso exemplo

hz z h h h o o

δ

w

δ

= (1− ) 1 0 0,5 0 0 0,5 1 1 0 0 0 z h 0 0 b x b y Lembrando: wjj ← wjj + ηδoij

(26)

BackProp: Exemplo

000195313 . 0 00625 . 0 125 . 0 ) 5 . 0 1 ( 5 . 0 − × = = h

δ

Nesse caso teríamos

w xh=0+0.1×0.0001953×1=0.00001953

w yh=0+0.1×0.0001953×0=0

wbh=0+0.1×0.0001953×1=0.00001953

Para atualizar os pesos, usamos a mesma fórmula

(27)

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.

(28)

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

(29)

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.

Erro mínimo Superfície do

erro

(30)

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.

(31)

O problema dos mínimos locais

(32)

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.

(33)

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.

• Normalmente 0 <= α <= 0.9 k j ij ij

w

o

w

`

=

α

+

ηδ

(34)

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

(35)

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.

(36)

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).

(37)

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.

(38)

Normalização

• Para redes neurais MLP, geralmente é interessante ter as características com média próxima de zero

• Melhora o tempo de convergência durante a aprendizagem.

σ

µ

− = X Z

(39)

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.

(40)

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

(41)

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 (Z1 = treinamento e Z2 = validação).

(42)

Generalização

• A cada iteração, devemos monitorar o desempenho na base de validação.

(43)
(44)
(45)

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 (Z1 U Z2) em

n partições iguais e usar n-1 partições para

(46)

Generalização

• A cada iteração de aprendizado a partição usada para validação é trocada.

(47)

Regiões de classificação

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

(48)

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.

Referências

Documentos relacionados

No presente estudo, a região de Morro de São Paulo apresentou menor ocorrência de serviços que Garapuá e Boipeba, sendo essa a região apontada pelos agentes locais como tendo

Para facilitar o estudo dividimos a análise em dois períodos: 1940 a 1949 e 1950 a 1960, sendo que em cada período foram analisadas quatro obras que trazem, os elementos

(60h) 10ª Fase Noturno Engenharia de Produção Luzia de Miranda Meurer Psicologia Escolar e Educacional I (60h) 4ª Fase Noturno Psicologia Luzia de Miranda Meurer

5) “Estado da arte” do desenvolvimento local sertaginense. “A Sertã continua a ser pequenina e com pouca população. O setor turístico tem vindo a melhorar e temos

pelo professor Gabriel Sanches Teixeira, que solicitava sua retirada da Comissão. O

Os Residentes cujas bolsas serão financiadas pela Secretaria da Saúde do Estado da Bahia – SESAB deverão realizar a assinatura do Contrato nos dias 27 e 28/02/2012, na Escola Estadual

A Diretiva Europeia 97/69/CE, substituída pelo Regulamento (CE) n° 1272/2008 relativo à classificação, rotulagem e embalagem de substâncias e misturas, não classifica as

Assim, ao lado da formação moral religiosa, o Instituto visava profissionalizar o sexo feminino, especialmente as mulheres que necessitassem trabalhar, pois a sua fundadora entendia