A segunda abordagem não convencional de por um computador a desempenhar tarefas complexas sem ser programado é a Computação Evolutiva (CE). A CE é um conjunto de várias técnicas inspiradas nas potencialidades da selecção natural de evoluir e seleccionar seres vivos cada vez mais complexos sem que sejam fornecidas instruções.
A ideia é muito simples. Em vez de desenhar os programas de raiz, geram-se inicialmente listas de números aleatórias, os genes, que codificam programas, também eles aleatórios. Esses programas são de seguida testados na tarefa que é suposto realizarem: desde ordenar números a construir um circuito eléctrico ou uma antena. No final, regista-se o desempenho de cada um desses programas e ordenam-se de acordo com a eficácia. De seguida, os piores programas são eliminados e os melhores são escolhidos e usados para obter uma nova geração através de simples recombinações. O processo continua durante algumas dezenas ou centenas de gerações. É claro que os primeiros programas são muito maus pois são aleatórios. Mas, ao fim de várias gerações, os programas obtidos são já de qualidade assinalável e, no final, alguns podem ser mesmo superiores aos desenhados pelo homem.
É verdade que este método trabalha à base de alguma “força bruta” e é quase desprovido de elegância. Alguém que olhe para a evolução dos programas não será capaz de ver nenhuma lógica saber porque foi dado determinado passo e não outro. Mas, a verdade é que o método lógico-dedutivo, muito usado nas ciências básicas, é um pau de dois bicos. Por um lado permite obter soluções para muitos problemas a partir de princípios e leis universais simples. Por exemplo, na física podemos prever a evolução de um sistema a partir do seu estado inicial seguindo as equações do movimento. Na engenharia electrónica um especialista aprende a desenhar um complexo amplificador usando apenas componentes elementares muito simples que ele dispõe numa sequência lógica.
Mas, a lógica só dá aquilo que se lá põe. Problemas com que nos defrontamos no dia-a-dia, alguns de enorme complexidade, são resolvidos não recorrendo à lógica mas ao que poderemos chamar bom-senso ou o hábito. Por exemplo, a escolha uma profissão, de um parceiro de casamento ou simplesmente escolher um restaurante para almoçar. Não quero dizer que a lógica não ajude a obter a escolha mais acertada, mas estas decisões não podem ser tomadas seguindo unicamente a lógica. Se o tentarmos fazer provavelmente morremos de fome de antes de chegar a um resultado. Ao contrário do que nos ensinam, a verdade é não raras vezes a lógica é mais um obstáculo que uma ferramenta.
Mais alguns exemplos. Um grupo do prof. Fogel da Universidade da Califórnia conseguiu evoluir redes neuronais capazes de aprender a jogar Damas. Devo enfatizar que, ao contrário do Deep Blue, os programadores não incluíram qualquer tipo de regras a não ser as regras do jogo. O resto foi o Algoritmo Genérico que foi evoluindo e escolhendo as redes neuronais com melhor desempenho. Embora ainda não tenha ganho ao campeão de Damas humano, estas redes tiveram um desempenho muito acima de um jogador médio. Um outro grupo do prof. Koza usou um método conhecido por Programação Genética, para evoluir dispositivos mais eficientes do que aqueles desenhados pelos melhores engenheiros, alguns patenteados: circuitos eléctricos, antenas, turbinas de aviões e até de pontes.
Por outro lado, à medida que a engenharia se vai complexificando, as potencialidades do método lógico-dedutivo são cada menos evidentes em comparação com as soluções apresentadas por modelos computacionais do tipo que acabamos de descrever, em se torna difícil perceber o como e o porque. Estes métodos mais “sujos” e certamente menos elegantes vão tomando o seu lugar: a eficiência e a complexidade parecem ter superado não só o nosso querido método como também a nossa capacidade de compreensão. Na realidade, a engenharia, que sempre se tinha como um modelo compreensão, está a criar máquinas tão complexas e incompreensíveis como aquelas que a natureza produziu.
Estas duas abordagens, redes neuronais e computação evolutiva, são os primeiros ventos de mudança que trazem a promessa de máquinas verdadeiramente inteligentes. Mas estamos ainda muito longe. Inteligência requer não só aprendizagem capacidade de abstracção. Não interessa saber só multiplicar números, tem de saber o que eles significam. Ser inteligente é ser capaz de perceber as regras e … saber quebrá-las. Ser inteligente não é só fazer milhões de contas mas no final perceber o que o resultado significa, ou constatar que não significa rigorosamente nada.
O argumento de Witgnestein mantém-se pois, perfeitamente legitimo e temos de pensar numa forma de o contornar. No próximo texto irei especular sobre como se poderá desenvolver uma máquina que seja capaz de fazer mais que aprender a jogar ou construir pontes. Uma máquina capaz de aprender a falar connosco, perceber o mundo não como lhes é dado, e ultrapassar muitas das nossas lacunas.
Posted by asv133 at abril 4, 2004 02:08 AM