Como sabemos que a próxima geração será melhor?


32

Fui apresentado a algoritmos genéticos recentemente por este artigo do MSDN , no qual ele os chama de evolução combinatória, mas parece ser a mesma coisa, e estou lutando para entender como a combinação de duas soluções em potencial sempre produzirá uma nova solução que seja pelo menos tão bom como seus pais.

Porque isto é assim? Certamente combinar pode produzir algo pior.

Pelo que entendi, o algoritmo baseia-se no conceito de que quando um macho e uma fêmea de uma espécie produzem filhotes, esses filhotes terão características de ambos os pais. Algumas combinações serão melhores, outras piores e outras igualmente boas. Os que são melhores (para qualquer definição de "melhor" é apropriado) têm mais chances de sobreviver e produzir frutos que tenham as características aprimoradas. No entanto, haverá combinações mais fracas. Por que isso não é um problema do GA?


12
However, there will be combinations that are weaker. Why isn't this an issue with GA?- Porque as combinações mais fracas são descartadas.
Robert Harvey

6
Sabemos que a próxima geração não será pior porque não jogamos fora as boas, mas jogamos fora as ruins. E há uma chance razoável de que a combinação de alguns dos melhores seja uma ainda melhor, mas não é garantida.
user253751

7
Why isn't this an issue with GA?Bem, é, ou mais exatamente, pode ser. Um dos muitos (muitos) parâmetros para otimizar o uso de AGs é o tamanho da população: se for muito baixo, você poderá produzir apenas indivíduos mais fracos, mas se for muito alto, o tempo de computação associado à função de fitness poderá ser muito alto.
Loufylouf

3
É uma diferença entre criação e remoção de ervas daninhas : o estágio de criação pode (irá) produzir filhos piores, mas o estágio de remoção (deve) deve eliminar o pior desempenho antes do próximo estágio de criação.
TripeHound

Obrigado a todos. Se bem entendi, foi a maneira como ele expressou no artigo que me jogou para fora da trilha. Ele disse: " O novo organismo infantil, presumivelmente muito bom, substitui um organismo pobre ", o que levou minha pergunta. Parece que estava errado :)
Avrohom Yisroel

Respostas:


43

Um algoritmo genético tenta melhorar a cada geração, selecionando a população. Cada membro é avaliado de acordo com uma função de condicionamento físico, e apenas uma parte com alta pontuação é permitida a reprodução.

Você está certo, porém: não há garantia de que a próxima geração melhore a pontuação de seu antecessor.

Considere o programa da doninha de Dawkins : "evoluindo" a corda "Methinks it is like a weasel". Partindo de uma população de seqüências aleatórias, a função fitness avalia a correspondência textual mais próxima, que é perturbada para produzir a próxima geração. Com uma reprodução cruzada simples, duas seqüências de alta pontuação combinadas podem produzir muito facilmente descendentes com menor pontuação. Mesmo a mutação aleatória "assexual" de uma única corda de alta aptidão pode diminuir a aptidão da criança.

Vale a pena notar, eu acho, que isso não é necessariamente uma falha. Com esse tipo de pesquisa, há a ideia de máximos locais . Um membro da população pode representar uma solução que não é o resultado ideal, mas é o melhor que pode ser alcançado sem piorar o caminho.

Imagine que a função de adequação para o programa doninha não apenas encontre a distância de edição, mas tenha alguma noção de "palavra" e teste se a última palavra da string é o nome de um animal. Qualquer nome de animal tem boa pontuação, mas "weasel"recebe um grande bônus.

Agora, o que acontece se "Methinks it is like a walrus"for evoluído? A pontuação é boa. Não tão bem quanto a cadeia alvo final, mas melhor do que "Methinks it is like a walrut"ou outras variações aproximadas que poderiam ser alcançadas por um único passo de mutação.

A corda da morsa é o máximo local e a pesquisa pode ficar parada lá, a menos que o programa permita que a pontuação da próxima geração seja pior.


1
Relevante: youtube.com/watch?v=YT1vXXMsYak - a demonstração do programa de computador de Dawkin dura cerca de 12 minutos, embora valha a pena assistir toda a palestra, pois descreve a base teórica básica sobre a qual a evolução (biológica ou simulada) é de castigo.
Periata Breatta

24
De fato, às vezes você permite que uma certa porcentagem de membros com pontuação mais baixa sobreviva para aumentar a "diversidade genética", além de introduzir mutações completamente aleatórias que não são baseadas em nenhum membro existente.
Jörg W Mittag

@ JososhCaswell Obrigado por isso. Embora todas as respostas tenham sido excelentes, vou marcar isso como o aceito, pois abrange tudo o que pedi e algumas coisas que ainda não havia solicitado!
Avrohom Yisroel

Ainda bem que pude ajudar, @AvrohomYisroel #
Josh Caswell /

6

Não sabemos que vai melhorar, sabemos que não vai piorar.

Em cada geração, não consiste apenas na ospring dos melhores elementos, mas também inclui os melhores elementos em si - clones, se você preferir. Como eles ainda estão presentes, eles terão a mesma pontuação de antes. Significando que se nenhum dos filhos for melhor, os vencedores das gerações anteriores vencerão novamente - e serão re-mutados / reproduzidos.

Considere o seguinte: Com um indivíduo progenitor sendo uma carta, por exemplo, A um mutante criança sendo uma definida pela adição de um número por exemplo A1, soluções de cross-pão sendo escrito com suportes em torno do ex pai (A1B2) E o núcleo da aptidão de qualquer writen indivisual depois - maior sendo melhor[12]

Para demonstração, considere um pool de 5, onde mantemos o melhor 2. e preencha com 1 mutação de cada um, além de uma raça cruzada

Geração 1

  • A [10]
  • B [5]
  • C [4]
  • D [3]
  • E [1]

Manter A, Bcomo eles são os melhores dois, e recarga de outros 3 slots com lá descendentes

Geração 2

  • A [10]
  • B [5]
  • (AB) [7]
  • A1 [12]
  • B1 [4]

Mantenha Ae (AB), como são os melhores 2 - Isso significa que o vovô Aainda estará na piscina, pois a maioria das crianças trabalha menos

Geração 3

  • A [10]
  • (AB) [12]
  • (A(AB)) [14]
  • A2 [8]
  • (AB)1 [13]

Mantenha (AB)1e (A(AB))- desta vez, nenhum avô foi mantido, pois dois de seus filhos os espancaram. Mas, se o (AB1)desempenho foi um pouco pior, teríamos continuado (AB).

Isso continua até que a pontuação estabilize. O que indica que você atingiu algum tipo de máximo local (potencialmente um máximo global). Um dos motivos para detectar isso seria se os mesmos indivíduos continuassem sendo "clonados" na próxima geração. (embora para problemas de alta dimensão que possam levar muito tempo, talvez seja melhor apenas verificar a melhoria <uma tolerância específica)


1
"Em cada geração, não consiste apenas na ospring dos melhores elementos, mas também inclui os melhores elementos em si" Isso depende da implementação. Algumas implementações não fazem isso. Fazer isso às vezes é chamado de "elitismo".
jpmc26

4

Em geral, os algoritmos genéticos funcionam criando várias variações (aleatórias) nos pais em cada geração. Em seguida, é aplicada alguma função de seleção e a prole mais adequada de acordo com essa função sobrevive. Portanto, a prole não é necessariamente melhor, pois a variação é aleatória, mas, combinada com a seleção, você obtém melhorias ao longo do tempo.


4
Ah, parece que o artigo foi um pouco enganador. Ele disse: " O novo organismo infantil, presumivelmente muito bom, substitui um organismo pobre ", e foi isso que me confundiu. Eu acho que se ele está combinando cargas de organismos, em seguida, em geral seria de esperar um aumento, mesmo que novos organismos individuais pode ser mais fraco do que os anteriores. Isso esta certo? Obrigado
Avrohom Yisroel

@AvrohomYisroel: Exatamente.
precisa saber é o seguinte

1
@AvrohomYisroel: Cuidado com o entendimento aproximado de não especialistas. (Além disso, tenha cuidado com o "muro do jargão" precisão de especialistas.)
Eric Torres

@ EricTowers Sim, eu vejo o problema! Eu pensei que ele era um especialista, a julgar pelos artigos anteriores que ele escreveu, mas ele claramente parece ter cometido alguns grandes erros neste artigo.
Avrohom Yisroel

4

Quando estudei algoritmos genéticos na faculdade, foi explicado assim:

Imagine que uma solução é uma combinação de "genes", onde cada gene afeta o quão boa é a solução como um todo. Quando duas soluções são acasaladas, os genes são escolhidos aleatoriamente de cada pai.

Agora, se o gene leva, geralmente, a uma boa solução, sua frequência no pool de genes aumenta. Em casos extremos, o gene dominará a população.

Portanto, quando você pensa em algoritmos genéticos (e na evolução em geral), não deve pensar em indivíduos. Você deve pensar em genes e populações como um todo. Mesmo se uma "melhor" solução for perdida, isso não significa que seus genes sejam perdidos.

Há também a idéia de elitismo em algoritmos genéticos. Isso significa que as melhores soluções são sempre mantidas por gerações. Isso pode acelerar a convergência do algoritmo, mas é mais fácil para o algoritmo ficar preso no ótimo local.


2

Os algoritmos do GA não são determinísticos, eles não garantem uma melhoria em cada geração e também não garantem um ótimo total. No entanto, a fase de seleção de um AG, usando uma função de condicionamento físico, torna mais provável que "boas soluções" sobrevivam.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.