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