Вы находитесь на странице: 1из 26

Introduo s Redes Neurais Articiais

Treinamento via Algoritmos Genticos


Prof. Joo Marcos Meirelles da Silva
http://www.professores.uff.br/jmarcos

Departamento de Engenharia de Telecomunicaes Escola de Engenharia Universidade Federal Fluminense


Prof. Joo Marcos Meirelles da Silva p. 1/26

Crditos autorais

Este curso e estes slides so parcialmente adaptados da bibliograa citada e das aulas do professor Luiz Pereira Calba - COPPE/UFRJ

www.lps.ufrj.br/caloba

Prof. Joo Marcos Meirelles da Silva p. 2/26

Introduo

Charles Robert Darwin (1809-1882) Evoluo das espcies John Holland Adaptation in Natural and Articial Systems (dcada de 70) It is not the strongest of the species that survives, nor the most intelligent that survives. It is the one that is the most adaptable to change. - Charles Darwin

Prof. Joo Marcos Meirelles da Silva p. 3/26

Introduo
Algoritmos Genticos so algoritmos de busca baseados em regras (heursticas), onde essas regras so inspiradas nos mesmos mecanismos envolvidos na evoluo das espcies.

Evolution Strategies Evolutionary Algorithms Evolutionary Computing Swarm Intelligence Evolutionary Programming Genetic Programming Genetic Algorithms Ant Colony Optimization Particle Swarm Optimization Intelligent Water Drops

Prof. Joo Marcos Meirelles da Silva p. 4/26

Aplicaes
Geralmente aplicados em problema conhecidos como NP-Hard, quando necessrio otimizar vrias variveis conitantes com requisitos, onde geralmente outros algoritmos de otimizao falham. Sntese de circuitos analgicos e digitais Projetos em mecnica Indstria farmacutica Telecomunicaes Medicina

Prof. Joo Marcos Meirelles da Silva p. 5/26

Algoritmos Genticos
Consiste em uma populao de solues candidatas (tambm chamadas de indivduo ou fentipo); Cada indivduo formado por uma string binria dividida em partes chamadas de cromossomos ou gentipos; Cada cromossomo codica (em binrio) uma varivel a ser otimizada. Logo, um problema com n variveis a serem otimizadas requer um indivduo com n cromossomos; O AG requer uma funo de medida de desempenho (tness function) que permita atribuir uma nota de desempenho a cada um dos indivduos.

Prof. Joo Marcos Meirelles da Silva p. 6/26

Algoritmos Genticos
Cada indivduo recebe um nota atravs da avaliao realizada pela tness function sobre os valores de suas variveis codicadas; Cada iterao completa do algoritmo sobre a populao chamada de gerao; Indivduos com as melhores notas so selecionados, pareados e sofrem troca de cromossomos, seguida ou no de mutao em um dos cromossomos, formando assim uma nova populao; A nova populao avaliada e o algoritmo segue at que um determinado critrio de parada seja satisfeito.

Prof. Joo Marcos Meirelles da Silva p. 7/26

Algoritmos Genticos
Vantagens No necessita de um modelo matemtico do problema, apenas uma funo de avaliao das solues; Robustez razovel em relao a mnimos e mximos locais; Existem diferentes implementaes disponveis Facilmente paralelizvel, o que o torna interessante para aplicaes que rodam em computadores de arquiteturas paralelas e multincleos.

Prof. Joo Marcos Meirelles da Silva p. 8/26

Algoritmos Genticos
Desvantagens A criao de uma funo de desempenho nem sempre fcil; Tempo de convergncia proibitivo em algumas aplicaes; Dicilmente atinge o mnimo global de forma exata; No conseguem resolver problemas onde a nica medida de desempenho seja certo ou errado.

Prof. Joo Marcos Meirelles da Silva p. 9/26

Algoritmos Genticos
Fases do Algoritmo 1. Inicializao da Populao 2. Aptido dos indivduos 3. Seleo 4. Gerao da nova populao Operador Crossover 5. Modicaes na populao Operador Mutao 6. Mecanismo de Elitismo (opcional)

Prof. Joo Marcos Meirelles da Silva p. 10/26

Algoritmos Genticos
Indivduo ou fentipo A Figura abaixo apresenta duas variveis x1 e x2 codicadas em dois cromossomos de quatro bits cada.

Figura 1: Codicao de variveis em cromossomos.

Prof. Joo Marcos Meirelles da Silva p. 11/26

Algoritmos Genticos
Populao Uma coleo de indivduos forma uma populao, que pode ser iniciada de forma aleatria ou a partir de algum conhecimento prvio do problema.

Figura 2: Populao de indivduos.


Prof. Joo Marcos Meirelles da Silva p. 12/26

Algoritmos Genticos
Seleo Na fase de seleo, os melhores indivduos so selecionados, aleatoriamente, para a fase de cruzamento e, assim, gerar descendentes que sero novas solues.

Figura 3: Os melhores indivduos so selecionados para cruzamento.


Prof. Joo Marcos Meirelles da Silva p. 13/26

Algoritmos Genticos
Crossover Na fase de crossover um ponto de corte sorteado, e uma das partes de um indivduo trocada com a parte correspondente do outro.

Figura 4: As partes trocadas entre dois indivduos geram dois outros indivduos.
Prof. Joo Marcos Meirelles da Silva p. 14/26

Algoritmos Genticos
Seleo Na fase de mutao, cada indivduo submetido a um sorteio para vericar se ele sofrer mutao ou no. Em caso armativo, sorteia-se qual dos bits do indivduo ser invertido.

Figura 5: Escolha de um bit aleatoriamente para negao lgica.

Prof. Joo Marcos Meirelles da Silva p. 15/26

Exemplo
Vamos encontrar os valores das variveis x1 e x2 que minimizam a funo de duas variveis abaixo:
2 + x f (x1 , x2 ) = x2 1 2

Sabemos de antemo que os valores timos so f (0, 0) = 0. 1. Denir o range das variveis: 10 x1 +10 10 x2 +10 2. Denir o nmero de bits necessrios para codicar cada varivel: x1 = 4 bits x2 = 4 bits
Prof. Joo Marcos Meirelles da Silva p. 16/26

Exemplo
3. Denir o nmero de indivduos: Popsize = 30 NumGeracoes = 50 4. Os demais parmetros como taxa de mutao, sero deixados com seus valores default do Matlab. Usaremos o toolbox de algoritmos genticos do Matlab para esse exemplo.

Prof. Joo Marcos Meirelles da Silva p. 17/26

Exemplo
% ExemploAG.m % % Este script encontra os valores das variveis x1 e x2 que minimizam % a funo: % % f(x1,x2) = x1^2 + x2^2 % clear all close all clc % Definio de parmetros nvars = 2; % Nmero de variveis lb = [-10 -10]; % Lower Bounds para x1 e x2. ub = [+10 +10]; % Upper Bounds para x1 e x2. SizePop = 30; % Nmero de indivduos. NumGeracoes = 50; % Nmero mximo de geraes.
Prof. Joo 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. Joo Marcos Meirelles da Silva p. 19/26

Exemplo
Os algoritmos genticos necessitam de uma funo de desempenho. No caso, a funo foi chamada de ExemploAGFitness:
% ExemploAGFitness.m % % Fitness function para o script ExemploAG.m % % Autor: Joo Marcos Meirelles da Silva % % Data de criao: 11/05/2013 function [J] = ExemploAGFitness(x) J = x(1)^2 + x(2)^2; end

Prof. Joo Marcos Meirelles da Silva p. 20/26

Exemplo
A Figura abaixo mostra a evoluo do algoritmo gentico em sua busca pelos valores timos.
Best: 3.62638e06 Mean: 0.000328894 1.4
Best fitness Mean fitness

1.2

1 Fitness value

0.8

0.6

0.4

0.2

10

20 Generation

30

40

50

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

Prof. Joo Marcos Meirelles da Silva p. 21/26

RNAs e AGs
Algoritmos genticos tambm podem ser utilizados para treinar uma rede neural feedfoward em vez de usarmos o algoritmo de aprendizado backpropagation. Vamos tomar como exemplo a rede neural do Exemplo 1 da aula anterior:

Figura 7: Rede MLP.

Prof. Joo Marcos Meirelles da Silva p. 22/26

RNAs e AGs
W(1) Matriz de pesos da camada escondida (1) (1) (1) (1) w10 w11 w12 w13 (1) , W = (1) (1) (1) (1) w20 w21 w22 w23 W(2) Matriz de pesos da camada de sada
(2) w10 (2) w20 (2) w30 (2) w11 (2) w21 (2) w31 (2) w12 (2) w22 (2) w32

W(1) R24

(2)

W(2) R33

Prof. Joo Marcos Meirelles da Silva p. 23/26

RNAs e AGs
O Algoritmo Gentico deve codicar todos os elementos das matrizes de pesos W(1) e W(2) da rede neural. Dado um padro, o Algoritmo Gentico ir buscar o conjunto de elementos dessas matrizes que minimizam o erro mdio quadrtico da rede neural.

Figura 8: Uso de um AG para treinamento autoassociativo.

Veja o ExemploMLP03.m
Prof. Joo Marcos Meirelles da Silva p. 24/26

Referncias
1. Goldberg, D. E., Genetic Algorithms in Search, Optimization and Machine Learning, Addison-Wesley, 1989. 2. Bandyopadhyay, S., Pal, S. K., Classication and Learning Using Genetic Algorithms - Applications in Bioinformatics and Web Intelligence, Springer, 2007. 3. Alba, H., Dorronsoro, E., Cellular Genetic Algorithms, Springer, 2008.

Prof. Joo Marcos Meirelles da Silva p. 25/26

FIM

Prof. Joo Marcos Meirelles da Silva p. 26/26

Вам также может понравиться