redes neurais mlp: exemplos e características - dca.ufrn.br · engenharia e ciências aplicadas...
TRANSCRIPT
Universidade Federal do Rio Grande do NorteDepartamento de Engenharia de Computação e
Automação
Redes Neurais MLP: Exemplos e Características
DCA0121 – Inteligência Artificial Aplicada
Heitor Medeiros
1
Tópicos
• Redes Neurais MLP – Exemplos:– Mapeamento da função XOR.– Mapeamento de uma função f(x).
Implementação em Octave.
• Características das Redes MLP:– Apresentação dos dados de treinamento.– Conjunto de treinamento e validação.– Especificação da arquitetura da rede.
• Aperfeiçoamento do backpropagation:– Método de inserção do termo de momentum.– Método Resilient-propagation.– Método de Levenberg-Marquardt.
• Exemplos de outras implementações. – MLP no Matlab: Toolbox NNTOOL.– MLP no Java: Encog.
2
Revisando: Algoritmo Backpropagation
3
Algoritmo Backpropagation
4
1. Obter o conjunto de amostras de treinamento {𝑥𝑘}.2. Associar a saída desejada {𝑑𝑘} para cada amostra obtida.3. Iniciar o vetor de pesos {𝑤} com valores aleatórios pequenos.4. Especificar a taxa de aprendizagem {𝜼}, precisão requerida {ε} e o
número máximo de épocas.5. Iniciar o contador do número de épocas {𝑒𝑝𝑜𝑐𝑎 ← 0}6. Repetir as instruções:
1. 𝐸𝑚𝑎𝑛𝑡𝑒𝑟𝑖𝑜𝑟 ← 𝐸𝑚;
2. Para todas as amostras de treinamento {𝑥𝑘 , 𝑑𝑘}, faça:1. Passos de propagação e retropropagação.
3. 𝐸𝑚𝑎𝑡𝑢𝑎𝑙 ← 𝐸𝑚;
4. 𝑒𝑝𝑜𝑐𝑎 ← 𝑒𝑝𝑜𝑐𝑎 + 1;
Até que: (( 𝑬𝒎𝒂𝒕𝒖𝒂𝒍 − 𝑬𝒎
𝒂𝒏𝒕𝒆𝒓𝒊𝒐𝒓 ≤ 𝝐) ou (epoca >= epocaMaxima)).
7. Final do treinamento.
Algoritmo Backpropagation
5
Repetir as instruções:1. 𝐸𝑚
𝑎𝑛𝑡𝑒𝑟𝑖𝑜𝑟 ← 𝐸𝑚;2. Para todas as amostras de treinamento {𝑥𝑘 , 𝑑𝑘}, faça:
1. Passos de propagação:Obter sinais de saídas dos neurônios das camadas ocultas até a camadade saída.
2. Passos da retropropagação:Determinar o gradiente local e o ajuste dos pesos partindo da camadade saída até a primeira camada oculta.
3. 𝐸𝑚𝑎𝑡𝑢𝑎𝑙 ← 𝐸𝑚;
4. 𝑒𝑝𝑜𝑐𝑎 ← 𝑒𝑝𝑜𝑐𝑎 + 1;
Até que: (( 𝑬𝒎𝒂𝒕𝒖𝒂𝒍 − 𝑬𝒎
𝒂𝒏𝒕𝒆𝒓𝒊𝒐𝒓 ≤ 𝝐 ) ou (epoca >=
epocaMaxima)).
𝑤𝑗𝑖 𝑘 = 𝑤𝑗𝑖 𝑘 + ∆𝑤𝑗𝑖(𝑘)
6
∆𝒘𝒋𝒊(𝒌) 𝜼 𝜹𝒋(𝒌) 𝒚𝒊(𝒌)= * *
Taxa de aprendizagem
Gradiente local
Estímulos do
neurônio j
𝜹𝒋 𝒌 = 𝒇′ 𝒖𝒋 𝒌 ∗
𝒔
𝜹𝒔(𝒌) ∗ 𝒘𝒔𝒋 𝒌𝜹𝒋 𝒌 = 𝒆𝒋 𝒌 ∗ 𝒇𝒋
′ 𝒖𝒋 𝒌
Neurônio da camada de saída
Neurônio da camada oculta
Algoritmo Backpropagation: Ajuste dos Pesos
Errata:Cada neurônio tem um gradiente local.
7
Exemplo 01: Implementação de uma MLP para mapeamento da função XOR
Rede MLP para solucionar o problema XOR
• Implementação de uma rede neural MLP parasolucionar o problema da porta XOR.
Implementação na linguagem Octave.
8
GNU Octave
Arquitetura da Rede MLP
9
X1
X2
𝑁1
𝑁2
𝑁3
Y
𝑤111
𝑤121
𝑤131
𝑤211𝑤221
𝑤231
𝑤112
𝑤212
𝑤312
Função sigmoide (modificada):
𝒇 𝒙 =𝟐
𝟏 + 𝒆−𝟐𝒙− 𝟏
Função linear:𝒇 𝒙 = 𝒙
𝒘𝟏 =
𝑤011 𝑤11
1 𝑤211
𝑤021 𝑤12
1 𝑤221
𝑤031 𝑤13
1 𝑤231
𝒘𝟐 = 𝑤012 𝑤11
2 𝑤212 𝑤31
2
Implementação em Octave
10
exemploXOR_MLP.m
exemploXOR_Backpropagation.m
exemploXOR_execMLP.m
• Definição do conjunto de treinamento;• Inicialização aleatória dos vetores de pesos;• Definição de parâmetros de treinamento:
Taxa de aprendizagem; Erro máximo; Quantidade de épocas máxima.
• Etapa de propagação: Cálculo dos potenciais de
ativação e dos sinais de saída.• Etapa de retropropagação:
Cálculo do gradiente local. Cálculo do fator de ajuste. Ajuste do peso.
• Verificação do erro e da época.
Teste da rede treinada.
1. Montar conjunto de treinamento
11
2. Inicialização os pesos
12
3. Definição de parâmetros de treinamento
13
4. Backpropagation:Repetição do treinamento
14
4. Backpropagation: Etapa de Propagação – Camada Oculta
15
4. Backpropagation: Etapa de Propagação – Camada de Saída
16
4. Backpropagation: Etapa de Retropropagação – Camada de Saída
17
𝜹𝒋 𝒌 = 𝒆𝒋 𝒌 ∗ 𝒇𝒋′ 𝒖𝒋 𝒌
𝑤𝑗𝑖 𝑘 = 𝑤𝑗𝑖 𝑘 + ∆𝑤𝑗𝑖(𝑘)
4. Backpropagation: Etapa de Retropropagação – Camada Oculta
18
𝜹𝒋 𝒌 = 𝒇′ 𝒖𝒋 𝒌 ∗
𝒔
𝜹𝒔(𝒌) ∗ 𝒘𝒔𝒋 𝒌
4. Backpropagation: Etapa de Retropropagação – Camada Oculta
19
4. Backpropagation: Verificação do Erro médio quadrático
20
Gráfico do Erro Médio Quadrático e Testes
21
22
Exemplo 02: Implementação de uma MLP para mapeamento de uma função f(x)=y
Exemplo 02: Arquitetura da Rede MLP
23
𝑁1
𝑁2
𝑁3
Y
𝑤111
𝑤121
𝑤131
𝑤112
𝑤212
𝑤312
Função sigmoide (modificada):
𝒇 𝒙 =𝟐
𝟏 + 𝒆−𝟐𝒙− 𝟏
Função linear:𝒇 𝒙 = 𝒙
𝒘𝟏 =
𝑤011 𝑤11
1
𝑤021 𝑤12
1
𝑤031 𝑤13
1
𝒘𝟐 = 𝑤012 𝑤11
2 𝑤212 𝑤31
2
X
Exemplo 02: Função f(x)
24
Exemplo 02: Gráfico do Erro Médio Quadrático
25
Exemplo 02: Resultados
• Gráfico com os pontos reais e os pontos estimadospela rede neural.
26
Características das Redes MLP
27
Apresentação dos dados de treinamento.
Conjunto de treinamento e validação.
Especificação da arquitetura da rede.
Conjunto de exemplos
• Aspectos sobre a apresentação do conjunto detreinamento:
1. Em relação a sequencia de apresentação doconjunto de treinamento... a sequência deapresentação dos exemplos influencia notreinamento?
2. Em relação a quantidade de exemplos que serãoapresentados... é vantajoso a apresentação detodo o conjunto de treinamento?
28
A sequência de apresentação dos exemplos influencia notreinamento?
A sequência de apresentação dos exemplos pode siminfluenciar no treinamento, ou melhor, na atualizaçãodos pesos.
Solução:– Treinamento sequencial:
• Atualização dos pesos após a apresentação de cada exemplo.
– Treinamento por ciclo (batch):• Atualização dos pesos após a apresentação de todos os
exemplos.• Atualização a cada época.
29
Sequência de apresentação dos exemplos
Treinamento:
sequencial x por ciclo
• Treinamento sequencial:– Algoritmo mais simples.
– Menor consumo de memória.
– Vantajoso quando os padrões possuem redundâncias.
• Treinamento batch (por ciclo):– O erro de atualização torna-se um somatório do erro
médio quadrático de cada padrão de treinamento.
– Treinamento mais estável.
– Torna-se lento quando o conjunto é grande.
– Maior custo computacional.
30
É vantajoso a apresentação de todo o conjunto de treinamento?
Sim, se for considerar o aumento da capacidade degeneralização da rede.
Não, se for considerar a verificação da capacidade degeneralização da rede.
Treinamento e Validação da rede:– Treinamento da rede:
• Apresentar exemplos de treinamento para que a rede aprenda.
– Validação da rede:• Apresentar exemplos de validação para testar o aprendizado da
rede, ou melhor, verificar a sua generalização.
31
Quantidade de exemplos apresentados
Treinamento e Validação
• Normalmente, o conjunto de exemplos é dividido emdois subconjuntos:
Conjunto de treinamento:
Necessário no processo de aprendizagem.
Conjunto de validação:
Necessário no processo de medição do grau deefetividade de aprendizagem do conhecimento.
Diferenciar o aprender e o decorar!
32
Treinamento e Validação
• Erro aparente:Erro medido sobre oconjunto de treinamento.
• Erro real:Erro medido sobre oconjunto de validação.
33
Treinamento e Validação:Erro aparente e real
34
Ponto de parada
Épocas
Erro
Erro real (Validação)
Erro aparente (treinamento)
Técnica: Validação cruzada!
Conjunto de exemplos
• Outras características em relação ao conjunto deexemplos:
Pontos fora da curva (outliers):
Influencia na convergência da rede.
Soluções: Eliminar ou ajustar.
Normalizar os dados:
Objetivo: Adaptar os valores dos exemplos para faixadinâmica das funções de ativação ( [-1, +1]; [0 , +1]).
35
Especificação da Arquitetura da Rede
36
Quantas camadas ocultas?
Quantos neurônios???
Especificação da Arquitetura
• Não existe regra para definir a quantidade de camadasocultas e a quantidade de neurônios nessas camadas.
Uma camada oculta é suficiente para classificar osdados.
Porém, se seus dados contém alguma inconstância, duascamadas ocultas podem lhe ajudar.
Mais de 3 camadas ocultas? Em alguns casos, aumenta avelocidade de convergência, mas Não indico!
Teorema de Kolmogorov:Dada uma função contínua arbitrária: f(x) = y, existe sempre para f, umaimplementação exata com uma rede neural de três camadas, sendo acamada de entrada, a camada oculta e a camada de saída.
37
Especificação da Arquitetura
• Normalmente, o número de camadas ocultas eneurônios em cada camada são definidos emfunção de uma inspeção prévia nos dados e dacomplexidade do problema.
• Problemas:Redes superdimensionadas podem provocar erros
de overfitting.
Redes subdimensionadas podem provocarunderfitting.
38
Overfitting e Underfitting
• Overfitting:Rede memoriza os padrões de treinamento e, assim, perde acapacidade de generalizar.Possível causa 1: Número excessivo de neurônios e/ou
camadas ocultas.Possível causa 2: Número excessivo de épocas no
treinamento.
• Underfitting:Rede não é treinada suficientemente para tornar-se capaz deaprender.Possível causa 1: Número baixo de neurônios e/ou
camadas ocultas.Possível causa 2: Número baixo de épocas no treinamento.
39
Especificação da Arquitetura
• Método da “tentativa e erro”.
Iniciando a rede com 1 neurônio e 1 camadaoculta.
Aumentar a quantidade de neurônios.
Treinar e testar a rede mais de uma vez.
• Não existe regra definida para o método.
40
Aperfeiçoamento do Backpropagation
41
Método de inserção do termo de momentum.
Método Resilient-propagation.
Método de Levenberg-Marquardt.
Aperfeiçoamento do Backpropagation
• O algoritmo do backpropagation apresentaalgumas deficiências em relação a velocidade deconvergência e convergência para mínimoslocais.
• Algumas soluções criadas:
Método de inserção do termo de momentum.
Método Resilient-propagation.
Método de Levenberg-Marquardt.
42
Método de inserção do termo Momentum
• Problema: Lentidão na convergência quando o pontode mínimo está distante do ponto atual.
• Solução: Inclusão do termo momentum para aceleraro processo de convergência para o ponto de mínimo.
𝑤𝑗𝑖 𝑘 + 1 = 𝑤𝑗𝑖 𝑘 + 𝜶 ∗ 𝒘𝒋𝒊 𝒌 − 𝒘𝒋𝒊 𝒌 − 𝟏 + 𝜂 ∗ 𝛿𝑗 𝑘 ∗ 𝑦𝑖 𝑘
Se o termo momentum for zero, a atualização dos pesos obedece aobackpropagation convencional.
43
Método de inserção do termo Momentum
• Casos: Quando o ponto atual estiver
distante do ponto de mínimo, avariação entre as duas iteraçõessucessivas anteriores serágrande.
Quando o ponto atual estiverpróximo do ponto de mínimo, avariação entre as duas iteraçõessucessivas anteriores serápequena.
44
Erro
w
Método Resilient-propagation
• Problema: Devido ao uso das funções do tiposigmoide ou tangente hiperbólica, pode ocorrer asaturação do sinal de saída dos neurônios e asderivadas podem gerar valores próximos de zero,influenciando na velocidade de convergência.
45
Método Resilient-propagation
• Solução: A atualização dos pesos considera a variação dosinal do gradiente do erro ao invés das magnitudes dogradiente.
Se os sinais do gradiente em duas iterações sucessivasforem iguais, pode-se incrementar a taxa de aprendizadoem virtude de estar distante de um mínimo da função deerro.
Se os sinais do gradiente em duas iterações sucessivasforem diferentes, como o ponto de mínimo foiultrapassado, deve-se reduzir a taxa de aprendizagem afim de convergir suavemente.
46
Método Resilient-propagation
• Gráfico ilustrando o mecanismo de convergência doResilient propagation.
47
Erro
w
Método de Levenberg-Marquardt
• Problema: Lentidão na convergência do algoritmobackpropagation convencional.
• Solução: Utilizar um método gradiente de segundaordem, baseado no método dos mínimo quadradospara modelos não-lineares.
O método de Levenberg-Marquardt é uma aproximação dométodo de Newton.
48
49
Exemplos de Implementações em Matlab (Toolbox) e Java (Biblioteca)
Matlab: NNTOOL
Java: Encog.
Implementação em Matlab
• Matlab: Neural Network Toolbox:
toolbox NNTOOL.
50
Utilizando o toolbox NNTool do Matlab
• Implementando uma rede neural para mapear afunção f(x)=y do exemplo 02.
51
Utilizando o toolbox NNTool do Matlab
• Abrindo o toolbox “NNTOOL”:
>> nntool;
52
Utilizando o toolbox NNTool do Matlab
• Definindo o conjunto de treinamento.
53
Utilizando o toolbox NNTool do Matlab
• Definindo a arquitetura da rede.
54
Utilizando o toolbox NNTool do Matlab
• Algoritmos de treinamento disponíveis:
55
Utilizando o toolbox NNTool do Matlab
• Rede criada:
• Treinamento:
56
Utilizando o toolbox NNTool do Matlab
• Treinamento
57
Framework Java: Encog
• Encog:É um framework de Inteligência Artificial para Java quesuporta não só redes neurais como outras áreas da IA.
Suporta:Redes neurais.
Algoritmos de aprendizagem de máquinas.
Máquinas de vetores de suporte.
Redes Bayesianas.
Algoritmos genéticos.
Além de: algoritmos de apoio, como algoritmo denormalização de dados..
58
Exemplo com Encog
59
Exemplo com Encog
60
Referências
61
1. Haykin, Simon S. Redes neuraisartificiais: princípio e prática. 2ª ed.São Paulo: Bookman, 2000.
2. Lima, Isaías; Pinheiro, Carlos; OliveiraSantos, Flávia. Inteligência artificial. Riode Janeiro: Elsevier, 2014.
Referências
62
3. Da Silva, Ivan Nunes; Spatti, DaniloHernane; Flauzino, Rogério Andrade.Redes Neurais Artificiais paraengenharia e ciências aplicadas cursoprático. São Paulo: Artliber, 2010.
4. Kovács, Zsolt L. Redes neuraisartificiais. Editora Livraria da Física,2002.
Referências
5. Thomé, Antônio Carlos Gay; Marques, Airam Carlos P.Barreto. Inteligência Computacional. Notas de Aula.Disponível em: http://equipe.nce.ufrj.br/thome/.
6. Baranauskas, J. Augusto. Aprendizado de Máquina I. Notasde Aula. Disponível em: http://dcm.ffclrp.usp.br/~augusto.
7. Andrade, Lívia Naiara. Redes neurais artificiais aplicadas naidentificação automática de áreas cafeeiras em imagens desatélite. Belo Horizonte: Universidade Federal de MinasGerais. Dissertação de Mestrado, 2011.
63