introdução às redes neurais artificiais · introdução •charles robert darwin...

26
Introdução às Redes Neurais Artificiais Treinamento via Algoritmos Genéticos Prof. João Marcos Meirelles da Silva http://www.professores.uff.br/jmarcos Departamento de Engenharia de Telecomunicações Escola de Engenharia Universidade Federal Fluminense Prof. João Marcos Meirelles da Silva – p. 1/26

Upload: others

Post on 21-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introdução às Redes Neurais Artificiais · Introdução •Charles Robert Darwin (1809-1882)→Evolução das espécies •John Holland →Adaptation in Natural and Artificial

Introdução àsRedes Neurais Artificiais

Treinamento via Algoritmos Genéticos

Prof. João Marcos Meirelles da Silva

http://www.professores.uff.br/jmarcos

Departamento de Engenharia de Telecomunicações

Escola de Engenharia

Universidade Federal Fluminense

Prof. João Marcos Meirelles da Silva – p. 1/26

Page 2: Introdução às Redes Neurais Artificiais · Introdução •Charles Robert Darwin (1809-1882)→Evolução das espécies •John Holland →Adaptation in Natural and Artificial

Créditos autorais

Este curso e estes slides são parcialmente adaptados da bibliografiacitada e das aulas do professor Luiz Pereira Calôba - COPPE/UFRJ

www.lps.ufrj.br/∼caloba

Prof. João Marcos Meirelles da Silva – p. 2/26

Page 3: Introdução às Redes Neurais Artificiais · Introdução •Charles Robert Darwin (1809-1882)→Evolução das espécies •John Holland →Adaptation in Natural and Artificial

Introdução

• Charles Robert Darwin (1809-1882)→ Evolução das espécies

• John Holland→ Adaptation in Natural and Artificial Systems(década de 70)

“It is not the strongest of the species that survives, nor the mostintelligent that survives. It is the one that is the most adaptable to

change.” - Charles Darwin

Prof. João Marcos Meirelles da Silva – p. 3/26

Page 4: Introdução às Redes Neurais Artificiais · Introdução •Charles Robert Darwin (1809-1882)→Evolução das espécies •John Holland →Adaptation in Natural and Artificial

Introdução

Algoritmos Genéticos são algoritmos de busca baseados em regras(heurísticas), onde essas regras são inspiradas nos mesmos

mecanismos envolvidos na evolução das espécies.

Evolutionary Computing

Evolutionary Algorithms

Evolution Strategies

Evolutionary Programming

Genetic Programming

Genetic Algorithms

Swarm Intelligence

Ant Colony Optimization

Particle Swarm Optimization

Intelligent Water Drops

Prof. João Marcos Meirelles da Silva – p. 4/26

Page 5: Introdução às Redes Neurais Artificiais · Introdução •Charles Robert Darwin (1809-1882)→Evolução das espécies •John Holland →Adaptation in Natural and Artificial

Aplicações

Geralmente aplicados em problema conhecidos como NP-Hard,quando é necessário otimizar várias variáveis conflitantes comrequisitos, onde geralmente outros algoritmos de otimização falham.

• Síntese de circuitos analógicos e digitais

• Projetos em mecânica

• Indústria farmacêutica

• Telecomunicações

• Medicina

Prof. João Marcos Meirelles da Silva – p. 5/26

Page 6: Introdução às Redes Neurais Artificiais · Introdução •Charles Robert Darwin (1809-1882)→Evolução das espécies •John Holland →Adaptation in Natural and Artificial

Algoritmos Genéticos

• Consiste em uma população de soluções candidatas (tambémchamadas de indivíduo ou fenótipo);

• Cada indivíduo é formado por uma string binária dividida empartes chamadas de cromossomos ou genótipos;

• Cada cromossomo codifica (em binário) uma variável a serotimizada. Logo, um problema com n variáveis a seremotimizadas requer um indivíduo com n cromossomos;

• O AG requer uma função de medida de desempenho (fitnessfunction) que permita atribuir uma nota de desempenho a cadaum dos indivíduos.

Prof. João Marcos Meirelles da Silva – p. 6/26

Page 7: Introdução às Redes Neurais Artificiais · Introdução •Charles Robert Darwin (1809-1882)→Evolução das espécies •John Holland →Adaptation in Natural and Artificial

Algoritmos Genéticos

• Cada indivíduo recebe um nota através da avaliação realizadapela fitness function sobre os valores de suas variáveiscodificadas;

• Cada iteração completa do algoritmo sobre a população échamada de geração;

• Indivíduos com as melhores notas são selecionados, pareados esofrem troca de cromossomos, seguida ou não de mutação emum dos cromossomos, formando assim uma nova população;

• A nova população é avaliada e o algoritmo segue até que umdeterminado critério de parada seja satisfeito.

Prof. João Marcos Meirelles da Silva – p. 7/26

Page 8: Introdução às Redes Neurais Artificiais · Introdução •Charles Robert Darwin (1809-1882)→Evolução das espécies •John Holland →Adaptation in Natural and Artificial

Algoritmos Genéticos

• Vantagens

• Não necessita de um modelo matemático do problema, apenasuma função de avaliação das soluções;

• Robustez razoável em relação a mínimos e máximos locais;

• Existem diferentes implementações disponíveis

• Facilmente paralelizável, o que o torna interessante paraaplicações que rodam em computadores de arquiteturasparalelas e multinúcleos.

Prof. João Marcos Meirelles da Silva – p. 8/26

Page 9: Introdução às Redes Neurais Artificiais · Introdução •Charles Robert Darwin (1809-1882)→Evolução das espécies •John Holland →Adaptation in Natural and Artificial

Algoritmos Genéticos

• Desvantagens

• A criação de uma função de desempenho nem sempre é fácil;

• Tempo de convergência proibitivo em algumas aplicações;

• Dificilmente atinge o mínimo global de forma exata;

• Não conseguem resolver problemas onde a única medida dedesempenho seja “certo ou errado”.

Prof. João Marcos Meirelles da Silva – p. 9/26

Page 10: Introdução às Redes Neurais Artificiais · Introdução •Charles Robert Darwin (1809-1882)→Evolução das espécies •John Holland →Adaptation in Natural and Artificial

Algoritmos Genéticos

• Fases do Algoritmo

1. Inicialização da População

2. Aptidão dos indivíduos

3. Seleção

4. Geração da nova população← Operador Crossover

5. Modificações na população← Operador Mutação

6. Mecanismo de Elitismo (opcional)

Prof. João Marcos Meirelles da Silva – p. 10/26

Page 11: Introdução às Redes Neurais Artificiais · Introdução •Charles Robert Darwin (1809-1882)→Evolução das espécies •John Holland →Adaptation in Natural and Artificial

Algoritmos Genéticos

• Indivíduo ou fenótipoA Figura abaixo apresenta duas variáveis x1 e x2 codificadas em doiscromossomos de quatro bits cada.

Figura 1: Codificação de variáveis em cromossomos.

Prof. João Marcos Meirelles da Silva – p. 11/26

Page 12: Introdução às Redes Neurais Artificiais · Introdução •Charles Robert Darwin (1809-1882)→Evolução das espécies •John Holland →Adaptation in Natural and Artificial

Algoritmos Genéticos

• PopulaçãoUma coleção de indivíduos forma uma população, que pode seriniciada de forma aleatória ou a partir de algum conhecimento préviodo problema.

Figura 2: População de indivíduos.

Prof. João Marcos Meirelles da Silva – p. 12/26

Page 13: Introdução às Redes Neurais Artificiais · Introdução •Charles Robert Darwin (1809-1882)→Evolução das espécies •John Holland →Adaptation in Natural and Artificial

Algoritmos Genéticos

• SeleçãoNa fase de seleção, os melhores indivíduos são selecionados,aleatoriamente, para a fase de cruzamento e, assim, gerardescendentes que serão novas soluções.

Figura 3: Os melhores indivíduos são selecionados para cruzamento.

Prof. João Marcos Meirelles da Silva – p. 13/26

Page 14: Introdução às Redes Neurais Artificiais · Introdução •Charles Robert Darwin (1809-1882)→Evolução das espécies •John Holland →Adaptation in Natural and Artificial

Algoritmos Genéticos

• CrossoverNa fase de crossover um ponto de corte é sorteado, e uma das partesde um indivíduo é trocada com a parte correspondente do outro.

Figura 4: As partes trocadas entre dois indivíduos geram dois outros indivíduos.

Prof. João Marcos Meirelles da Silva – p. 14/26

Page 15: Introdução às Redes Neurais Artificiais · Introdução •Charles Robert Darwin (1809-1882)→Evolução das espécies •John Holland →Adaptation in Natural and Artificial

Algoritmos Genéticos

• SeleçãoNa fase de mutação, cada indivíduo é submetido a um sorteio paraverificar se ele sofrerá mutação ou não. Em caso afirmativo, sorteia-sequal dos bits do indivíduo será invertido.

Figura 5: Escolha de um bit aleatoriamente para negação lógica.

Prof. João Marcos Meirelles da Silva – p. 15/26

Page 16: Introdução às Redes Neurais Artificiais · Introdução •Charles Robert Darwin (1809-1882)→Evolução das espécies •John Holland →Adaptation in Natural and Artificial

Exemplo

Vamos encontrar os valores das variáveis x1 e x2 que minimizam afunção de duas variáveis abaixo:

f(x1, x2) = x21 + x2

2

Sabemos de antemão que os valores ótimos são f(0, 0) = 0.

1. Definir o range das variáveis:• −10 ≤ x1 ≤ +10

• −10 ≤ x2 ≤ +10

2. Definir o número de bits necessários para codificar cada variável:• x1 = 4 bits• x2 = 4 bits

Prof. João Marcos Meirelles da Silva – p. 16/26

Page 17: Introdução às Redes Neurais Artificiais · Introdução •Charles Robert Darwin (1809-1882)→Evolução das espécies •John Holland →Adaptation in Natural and Artificial

Exemplo

3. Definir o número de indivíduos:• Popsize = 30• NumGeracoes = 50

4. Os demais parâmetros como taxa de mutação, serão deixadoscom seus valores default do Matlab.

⇒ Usaremos o toolbox de algoritmos genéticos do Matlab para esseexemplo.

Prof. João Marcos Meirelles da Silva – p. 17/26

Page 18: Introdução às Redes Neurais Artificiais · Introdução •Charles Robert Darwin (1809-1882)→Evolução das espécies •John Holland →Adaptation in Natural and Artificial

Exemplo

% ExemploAG.m

%

% Este script encontra os valores das variáveis x1 e x2 que minimizam

% a função:

%

% f(x1,x2) = x1^2 + x2^2

%

clear all

close all

clc

% Definição de parâmetros

nvars = 2; % Número de variáveis

lb = [-10 -10]; % Lower Bounds para x1 e x2.

ub = [+10 +10]; % Upper Bounds para x1 e x2.

SizePop = 30; % Número de indivíduos.

NumGeracoes = 50; % Número máximo de gerações.

Prof. João Marcos Meirelles da Silva – p. 18/26

Page 19: Introdução às Redes Neurais Artificiais · Introdução •Charles Robert Darwin (1809-1882)→Evolução das espécies •John Holland →Adaptation in Natural and Artificial

Exemplo

options =

gaoptimset(’PopulationType’,’DoubleVector’,’PopulationSize’, SizePop,

’Generations’, NumGeracoes,’StallGenLimit’, 10,

’PlotFcns’, @gaplotbestf);

[variaveis fval] = ga(@ExemploAGFitness, nvars, [ ], [ ], [ ], [ ], lb,

ub, [ ], options);

variaveis

fval

Prof. João Marcos Meirelles da Silva – p. 19/26

Page 20: Introdução às Redes Neurais Artificiais · Introdução •Charles Robert Darwin (1809-1882)→Evolução das espécies •John Holland →Adaptation in Natural and Artificial

Exemplo

Os algoritmos genéticos necessitam de uma função de desempenho.No caso, a função foi chamada de ExemploAGFitness:

% ExemploAGFitness.m

%

% Fitness function para o script ExemploAG.m

%

% Autor: João Marcos Meirelles da Silva

%

% Data de criação: 11/05/2013

function [J] = ExemploAGFitness(x)

J = x(1)^2 + x(2)^2;

end

Prof. João Marcos Meirelles da Silva – p. 20/26

Page 21: Introdução às Redes Neurais Artificiais · Introdução •Charles Robert Darwin (1809-1882)→Evolução das espécies •John Holland →Adaptation in Natural and Artificial

Exemplo

A Figura abaixo mostra a evolução do algoritmo genético em suabusca pelos valores ótimos.

0 10 20 30 40 500

0.2

0.4

0.6

0.8

1

1.2

1.4

Generation

Fitn

ess

valu

eBest: 3.62638e−06 Mean: 0.000328894

Best fitnessMean fitness

Figura 6: x1 = 0, 0010 e x2 = −0, 0004.

Prof. João Marcos Meirelles da Silva – p. 21/26

Page 22: Introdução às Redes Neurais Artificiais · Introdução •Charles Robert Darwin (1809-1882)→Evolução das espécies •John Holland →Adaptation in Natural and Artificial

RNAs e AGs

Algoritmos genéticos também podem ser utilizados para treinar umarede neural feedfoward em vez de usarmos o algoritmo deaprendizado backpropagation. Vamos tomar como exemplo a redeneural do Exemplo 1 da aula anterior:

Figura 7: Rede MLP.

Prof. João Marcos Meirelles da Silva – p. 22/26

Page 23: Introdução às Redes Neurais Artificiais · Introdução •Charles Robert Darwin (1809-1882)→Evolução das espécies •John Holland →Adaptation in Natural and Artificial

RNAs e AGs

W(1) Matriz de pesos da camada escondida

W(1) =

w(1)10 w

(1)11 w

(1)12 w

(1)13

w(1)20 w

(1)21 w

(1)22 w

(1)23

, W(1)∈ R

2×4

W(2) Matriz de pesos da camada de saída

W(2) =

w(2)10 w

(2)11 w

(2)12

w(2)20 w

(2)21 w

(2)22

w(2)30 w

(2)31 w

(2)32

, W(2)∈ R

3×3

Prof. João Marcos Meirelles da Silva – p. 23/26

Page 24: Introdução às Redes Neurais Artificiais · Introdução •Charles Robert Darwin (1809-1882)→Evolução das espécies •John Holland →Adaptation in Natural and Artificial

RNAs e AGs

O Algoritmo Genético deve codificar todos os elementos das matrizesde pesos W

(1) e W(2) da rede neural. Dado um padrão, o Algoritmo

Genético irá buscar o conjunto de elementos dessas matrizes queminimizam o erro médio quadrático da rede neural.

Figura 8: Uso de um AG para treinamento autoassociativo.

⇒ Veja o ExemploMLP03.mProf. João Marcos Meirelles da Silva – p. 24/26

Page 25: Introdução às Redes Neurais Artificiais · Introdução •Charles Robert Darwin (1809-1882)→Evolução das espécies •John Holland →Adaptation in Natural and Artificial

Referências

1. Goldberg, D. E., “Genetic Algorithms in Search, Optimization andMachine Learning,” Addison-Wesley, 1989.

2. Bandyopadhyay, S., Pal, S. K., “Classification and LearningUsing Genetic Algorithms - Applications in Bioinformatics andWeb Intelligence,” Springer, 2007.

3. Alba, H., Dorronsoro, E., “Cellular Genetic Algorithms,” Springer,2008.

Prof. João Marcos Meirelles da Silva – p. 25/26

Page 26: Introdução às Redes Neurais Artificiais · Introdução •Charles Robert Darwin (1809-1882)→Evolução das espécies •John Holland →Adaptation in Natural and Artificial

FIM

Prof. João Marcos Meirelles da Silva – p. 26/26