Evolving Inventions
John R. Koza,
Martin A. Keane
Matthew J. Streeter
EVOLUÇÃO DE MÁQUINAS
A evolução é um poderoso processo
criativo
. Desde a
complicada química de uma célula até a estrutura
elaborada do cérebro, a evolução tem produzido
maravilhas de complexidade inimaginável. A evolução
faz isto com uns poucos processos simples: mutação,
recombinação sexual e seleção natural
Agora os programadores estão implementando versões
em software dos mesmos processos para atingir o santo
gral a inteligência artificial.
EVOLUÇÃO DE MÁQUINAS
• Uma técnica chamada de
programação
genética
, já tem conseguido projetar programas
de computador e circuitos eletrônicos que realizem
determinadas tarefas. Alguns destes circuitos
foram patenteados com sucesso nos EEUU. Em
outros casos duplicaram circuitos já patenteados.
Outros representam novas invenções e foram
obtidas combinando as funcionalidade de
invenções prévias
Design Genético
A primeira aplicação prática (comercial) da programação
genética será o design. Design é especialmente adequado
para a programação genética já que se procuram soluções
que são muito boas mais não são matematicamente
perfeitas. Existem grandes e complexos compromisso
entre diferentes aspectos do desenho e o melhor equilíbrio
entre estes fatores é difícil de antever.
O design implica na descoberta de arranjos topológicos de
coisas (em oposição a simplesmente otimizar um conjunto
de números), e esta tarefa é muito adequada a
O processo evolucionário
Três processos propagam os organismos de uma geração
para a seguinte na programação genética. Alguns bons
indivíduos são copiados inalterados (reprodução
asexuada). Outros formam casais para reprodução sexuada
ou cruzamento, na qual partes são intercambiadas entre os
organismos para produzir a cria. Um pequeno número
muda aleatóriamente mutação. Os organismos que não são
escolhidos serão extintos.
Cruzamento e mutação
A evolução atua como uma busca no
espaço de todos os possíveis organismos (representados pelo plano ( o eixo X e o Y representam uma dada propriedade e o eixo Z a adaptação do individuo). O cruzamento procura no espaço de uma forma criativa, ocasionalmente combinando duas
características boas, pulando para uma nova região do espaço onde indivíduos mais adaptados se encontram (setas em vermelho). A mutação tende a encontrar indivíduos melhores nas
“proximidades”(setas em verde) .
Exemplo com funções
• O cruzamento das funções (a + 1) – 2 e 1 + (a
⋅
a) pode ser oresultado de usar a parte (a + 1) para substituir um a da segunda função dando como resultado a função1 + ((a + 1)
⋅
a).• Recombinando (cruzando) pode se chegar a melhores indivíduos • Além da reprodução sexual o algoritmo copia (intocados) alguns
indivíduos, para garantir que a próxima geração (como um todo) seja ao menos tão boa como a anterior
• Finalmente parte das funções sobrem mutação: por exemplo, a + 1 pode mutar para (3
⋅
a) + 2 . Dando como resultadoFiltro Passa-baixos
• Um filtro passa baixos é usado geralmente em sistemas de som para mandar aos “woofers” (alto-falantes que reproduzem melhor os sons baixos) os sinais a serem reproduzidos.
• Para criar o filtro usando a programação genética, o usuário humano define os componentes disponíveis para criar o circuito (resistores, capacitores e indutâncias) e define a adaptação (fitness) de cada circuito candidato. Por exemplo a função transferência para o circuito o a potência que passa até 1kHz.
• Os circuitos começam com um “embrião” elementar que consiste num único fio ligando a entrada e a saída, o embrião elementar cresce pela progressiva aplicação de funções que constroem o
circuitos, inserindo componentes. Outros mecanismos modificam o padrão de conexões entre componentes, inserção em serie ou
Filtro passa-baixos:
Processo Genético
Resistores Capacitores IndutânciasFiltro passa-baixos
• Este processo de desenvolvimento fornece a topologia do circuito assim como o dimensionamento (valor) dos componentes.
• O sistema sintetiza o circuito sem o conhecimento da engenharia elétrica.
• A maior parte da população inicial de circuitos rudimentares
gerados aleatoriamente, não se comportam como filtros, mais alguns poucos tem uma indutância ente a entrada e a saída, outros tem um capacitor entre a entrada e a terra, ambos criando um efeito passa baixo. Estes serão escolhidos com mais freqüência no processo evolutivo
• O resultado é muito parecido com o filtro patenteado em 1917 por George A. Campbell da AT&T.
Como fazé-lo?
• Definir uma linguagem de criação de
circuitos.
– Regras:
• Incluir valores máximos/mínimos de componentes • De mutação e de combinação para obter circuitos
válidos
• Definir uma função adaptabilidade
• O resto vira um GA normal
Outros exemplos
• Controladores de processos
• Sistemas classificadores
• Receitas de cozinha??!!!
Ver que o problema está na função de adaptabilidade!!!!
Humanos Vs Programação genética
• Humano
• Programação
genética
Tempo de processamento
• A evolução natural teve bilhões de anos de “tempo de
processamento” para elaborar seus “produtos”. A programação genética não seria útil se tomasse tanto tempo. A programação
genética roda com populações de 10.000 a 100.000 indivíduos que vão a evoluir por dezenas ou centenas de gerações.
• Para melhorar a performance do processo geralmente se utilizam clusters de computadores. A evolução na natureza acontece quando os organismos estão distribuídos em populações semi-isoladas. O mesmo acontece com a programação genética eles rodam em um computador ou numa rede de computadores. Cada computador realiza a pesada tarefa de avaliar o “fitness” de um individuo. Depois se comparam of “fitness” calculados e se realiza am as “operações genéticas”
Tempo de processamento
• Se avaliar a “fitness” de um individuo levar 1
minuto de tempo de computação. Rodar uma
população de 100.000 indivíduos por 100 gerações
pode levar 19 anos.
• Com o aumento da potência dos computadores e
melhores linguagens de descrição de produtos, a
programação genética ocupará uma posição de
destaque nos próximos anos.
Medidas de inteligência. Teste de Turing?
A programação genética pode rotineiramente reproduzir
invenções humanas, apenas 50 anos após que Alan M. Turing predice que a inteligência humana e das máquinas seriam
competitivas.
Nestes 50 anos tivemos duas vertentes principais, para tentar atingir esta metas:
1. Deduções lógicas: construir programas projetados para analisar situações e problemas logicamente
2. Bancos de dados contendo conhecimento e experiências
humanas acumuladas (Sistemas especialistas). Turing chamou este procedimento de “busca cultural”.
Teste de Turing (Cont.)
A programação genética produz inteligência que
concegue competir com a humana com um mínimo
de intervenção humana para cada problema e sem a
utilização de deduções lógicas ou bancos de dados de
conhecimento humano.
IA imita a inteligência humana
Teste de Turing (Cont.)
No teste de Turing para inteligência de máquinas um juiz recebe mensagens e tenta decidir se a mensagem veio de um humano ou de uma máquina.
No caso apresentado, o juiz é o escritório de patentes e no caso não consigue distinguir entre uma invenção humana e uma gerada por programação genética.
A programação genética não atingui os níveis de cognição associado ao teste de Turing test. Mais passou no teste de criatividade e inventividade que poucos humanos
Teste de Turing (Cont.)
Não se pode esperar uma boa máquina filha na
primeira tentativa. Deve-se experimentar: testar
variações ver se as variações são melhores ou piores
e continuar o processo de forma indefinida
Estrutura da máquina filha = Material Hereditário Mudanças na máquina filha = Mutações
Seleção Natural = Julgamento do experimentador
Programação Genética cumpriu de várias maneiras a