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

Post on 21-Jul-2020

1 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

FIM

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

top related