Pular para conteúdo
26.8.10

A ciência da inspiração, parte 1

Inspiração: 1. Ato ou efeito de inspirar; 2. Pensamento ou idéia que nos vem de repente; 3. Produto da imaginação ou entusiasmo criativo.

A arte dos algoritmos

A ciência da computação nasceu com o conceito de algoritmo, criado conjuntamente em 1936 pelo experimento mental de Alan Turing, conhecido como Máquina de Turing, enquanto quase ao mesmo tempo Alonzo Church criava o cálculo lambda. Um algoritmo é uma seqüência finita de instruções bem definidas e não ambíguas, cada uma das quais pode ser executada mecanicamente num período de tempo finito e com uma quantidade de esforço finita.

O conceito de algoritmo é freqüentemente ilustrado pelo exemplo de uma receita, embora muitos algoritmos sejam mais complexos. Eles podem repetir passos (fazer iterações) ou necessitar de decisões (tais como comparações ou lógica) até que a tarefa seja completada. Um algoritmo corretamente executado não irá resolver um problema se estiver implementado incorretamente ou se não for apropriado ao problema.

Roger Alsin é um programador sueco bem menos conhecido, mas que aborda a arte dos algoritmos de uma forma impensável na época de seus criadores... No final de 2008, ele resolveu brincar um pouco com alguns algoritmos, mais precisamente algoritmos genéticos. Ele criou um pequeno programa que evolui cadeias de “DNA digital” para renderização de polígonos, eis as instruções aplicadas:

(0) Cria uma cadeia de DNA aleatoriamente (início do programa); (1) Copia a seqüência de DNA atual e aplica uma pequena mutação; (2) Usa o novo DNA para renderizar polígonos em uma tela; (3) Compara a tela com a imagem original (a ser copiada); (4) Se a imagem se parece mais com a imagem original do que a imagem gerada pelo DNA pai, substituir o DNA antigo pelo DNA atual; (5) Repetir a partir do passo 1.

Então, Alsin colocou como meta aos seus algoritmos tentar recriar (ou copiar da melhor forma possível) a Mona Lisa de Da Vinci usando apenas 50 polígonos semi-transparentes... Após 904.314 gerações, o algoritmo genético de Alsin chegou a uma imagem bastante próxima da original, se considerarmos que algoritmos não são exatamente mestres da pintura (ou pelo menos, ainda não são). Você pode ver a imagem final no início do artigo, ou ver as diversas gerações no weblog de Alsin.

Em 1992, John Koza – cientista da computação – usou algoritmos genéticos para desenvolver programas para realizar certas tarefas. Ele chamou seu método de programação genética. Koza foi pioneiro neste método de programação, que hoje é cada vez mais utilizado no mundo.

O aspecto mais bizarro e intrigante da programação genética é que seus algoritmos – verdadeiras “entidades de software” – não sofrem as restrições dos hábitos de pensamento e das inclinações intelectuais sutis dos programadores humanos. Como exploram irrefletidamente todo o espectro de soluções possíveis para um determinado problema, os algoritmos genéticos podem trazer soluções puramente alienígenas. Por exemplo, a NASA utilizou a programação genética para produzir o projeto ideal de um suporte a ser usado na Estação Espacial Internacional. Como relatou o U.S. News and World Report, o resultado parecia ter saído de um romance de ficção científica:

“Surgiu, de 15 gerações e 4.500 projetos diferentes, um suporte que nenhum engenheiro humano projetaria. O conjunto grumoso e com a extremidade arredondada lembrava o osso de uma perna, irregular e um tanto orgânico. Testes em modelos confirmam sua superioridade sobre os projetos humanos com suporte estável. Nenhuma inteligência fez os projetos. Eles apenas se desenvolveram.”

Outro exemplo espantoso da total estranheza da programação genética bem-sucedida é o código e computador que foi desenvolvido para ajudar um paciente a controlar uma mão protética com base em sinais nervosos erráticos captados por eletrodos presos ao pulso do paciente. O software desenvolvido analisava misteriosamente os sinais nervosos e os traduzia com precisão perfeita nos movimentos que o paciente queria fazer.

Mas aqui está a parte realmente estranha – o método pelo qual o software realizou esse feito incrível está totalmente além da compreensão dos pesquisadores humanos. Como relatou a Scientific American:

“O código desenvolvido era tão confuso e indecifrável quanto um inseto esmagado. O programa que prevê os gestos consiste numa única linha de código tão longa que enche uma página inteira e contém centenas de expressões parentéticas embutidas. Ele nada revela sobre por que o polegar se move de uma certa maneira – só revela que se move.”

Eis que, como num passe de mágica, essas receitas de bolo que ajustam a si mesmas acabam por trazer resultados imprevisíveis, bolos de sabores que nós humanos jamais poderíamos imaginar.

Para alguns ateus entusiastas de inteligência artificial, esta é a prova cabal de que o argumento do Design Inteligente está descartado, e de que os problemas podem ser solucionados através de gerações aleatórias de algoritmos – assim como a vida pode ser explicada como uma evolução aleatória da matéria inorgânica que, de alguma forma, tornou-se orgânica.

Estão mal-informados, pois conforme o próprio Alsin – ele mesmo um ateu – explica em seu weblog, a programação genética não prova absolutamente nada além de que pode ser utilizada para resolver problemas além da atual capacidade humana:

(1) Não existe um objetivo claro nos algoritmos, pois o problema que estão tentando solucionar é o seu próprio meio-ambiente de desenvolvimento. Eles não possuem um sentido, são mero mecanismo de solução de um problema específico; (2) A réplica da Mona Lisa não é a imagem do DNA digital e muito menos do “corpo” dos algoritmos genéticos, ela apenas demonstra o seu nível de adaptação ao meio-ambiente, ou o quanto foram bem sucedidos na solução do problema; e finalmente: (3) A programação genética nada diz sobre o problema da Criação, pois toda ela foi desenvolvida por seres humanos, e nós fomos criados por um evento químico extremamente fortuito nos primórdios do planeta, ou por um ser (ou seres) além de nossa compreensão atual, mas certamente não por uma máquina humana!

Da mesma forma, a magnífica capacidade computacional de nossa tecnologia nada nos diz sobre o que diabos são a inspiração e a criatividade humanas. Nossas máquinas são produto de nossa criatividade, mas não podem (ao menos por enquanto) criar elas mesmas. Tudo o que podem fazer é computar informação, seguirem receitas de bolo e, quando muito, modificar tais receitas para trazer resultados inesperados. Mas quem dita à receita somos nós. Mesmo que um dia máquinas possam nos imitar quase que a perfeição, ainda assim serão imitadores, computadores, e não seres que interpretam e reavaliam a informação de forma subjetiva, única.

Ainda assim, o mistério, a magia das soluções trazidas pelos algoritmos genéticos permanece insondável. Isso irá requerer uma análise mais profunda sobre como exatamente à mente humana cria novos conceitos e idéias a partir de outros já existentes – ou algumas vezes, aparentemente a partir do nada...

Na continuação, como a relação dos módulos da mente primitiva nos tornou humanos, demasiadamente humanos.

***

Pequeno glossário de alguns termos técnicos utilizados no artigo:

Máquina de Turing – Modelo abstrato de um computador, que se restringe apenas aos aspectos lógicos do seu funcionamento (memória, estados e transições) e não à sua implementação física. Numa máquina de Turing pode-se modelar qualquer computador digital.

Cálculo lambda – O cálculo lambda pode ser considerado como uma linguagem de programação abstrata, isto é, as maneiras como funções podem ser combinadas para formar outras funções, é uma linguagem pura, sem efeitos colaterais, e sem complicações sintáticas.

Algoritmo – é explicado nos primeiros parágrafos do artigo :)

Polígono – Um polígono é uma figura geométrica plana limitada por uma linha poligonal fechada : p.e. o hexágono é um polígono de seis lados. A palavra “polígono” advém do grego e quer dizer muitos (poly) e ângulos (gon).

Mutação – Em Biologia, mutações são mudanças na sequência dos nucleotídeos do material genético de um organismo. No caso da programação dos algoritmos genéticos, as mutações são induzidas propositadamente (e não aleatoriamente) a cada nova geração.

Linha de código – Em Programação, são as linhas de código que contém as informações (código fonte) que determinam como um programa deve proceder. No caso do software que analisa sinais nervosos, todo o código está agrupado (desde a origem) em uma única linha, sendo incompreensível para a cognição dos próprios programadores (é o resultado dos algortitmos genéticos).

***

Crédito das imagens: [topo] Roger Alsin (sim, pois foi ele quem criou o programa que copiou a Mona Lisa de Leonardo Da Vinci); [ao longo] Andrea Ruester/Corbis

Marcadores: , , , , , , , , , ,

1.6.09

Homem-máquina

Alan Turing era uma criança brilhante e solitária. Seu intelecto independente não se encaixava nas expectativas dos professores; ele estava nos últimos lugares de sua classe em várias disciplinas. Entretanto em 1935, quando tinha 23 anos, impressionou os colegas na Universidade de Cambridge (ele era inglês) inventando a caracterização matemática de uma máquina que iria se tornar uma das contribuições mais importantes da história da computação. A teórica máquina de Turing pode computar respostas para um problema matemático baseado num programa. Ela consiste em um dispositivo de entrada de dados, um conjunto de estados internos que correspondem a um programa e a um dispositivo de saída. Qualquer computador moderno, em essência, é uma máquina de Turing.

Em 1950, quando os microchips de silício ainda não existiam, Turing percebeu que, conforme os computadores ficassem mais espertos, a questão da inteligência artificial iria acabar surgindo. No artigo Máquinas computacionais e inteligência, Turing substituiu a pergunta “As máquinas podem pensar?” por “Pode uma máquina – um computador – passar no jogo da imitação?”. Isto é, pode dialogar de forma tão natural a ponto de fazer com que uma pessoa pense que seu interlocutor é humano?

Turing tirou essa ideia de um jogo no qual um dos participantes, chamado de entrevistador, precisa determinar, fazendo uma série de perguntas, se uma pessoa em outra sala é homem ou mulher. Turing substitui a pessoa na outra sala por um computador. Para passar no teste de Turing, a máquina precisaria responder qualquer pergunta do entrevistador com a competência linguística e a sofisticação de um ser humano. Ao final de seu artigo, Turing previu que em 50 anos – ou seja, mais ou menos até o ano 2000 – seríamos capazes de construir computadores tão bons na imitação que um entrevistador médio teria apenas 70% de chances de identificar se estava falando com uma pessoa ou uma máquina.

Até agora a previsão não se realizou. Nenhum computador conseguiu, na verdade, passar no teste de Turing. Um ser humano com excelente raciocínio matemático leva em torno de 10 segundos para calcular a soma 3.456.732 + 2.245.678; um computador médio da primeira década do século 21 pode realizar o cálculo em 0,000000018 segundo. Não é de admirar que na aurora da ciência da computação o homem se maravilhava a tal ponto com a tecnologia que predizia coisas miraculosas para um futuro próximo. Como dizia Arthur C. Clarke, “qualquer tecnologia suficientemente avançada é indistinguível da magia.”; mas talvez faltasse aos homens em êxtase com sua tecnologia a percepção de que a maior máquina que já colocamos as mãos, que já operamos, é exatamente a máquina da mente.

Não é tão difícil imaginar a causa da falha miserável na previsão de Turing: computadores processam informações de forma digital, convertidas em bits. A mente interpreta informações de forma analógica, sem qualquer tipo de conversão. Enquanto um bit de informação pode ser “0” ou “1”, “verdadeiro” ou “falso”, e assim por diante, a mente pode interpretar um mesmo input de informação de maneiras praticamente infinitas, se for necessário.

Somente na questão da linguagem humana um computador já é invariavelmente limitado na imitação da mente: é crucial levar em conta o contexto em que as frases são ditas, mas o computador não consegue reconhecê-las com facilidade. A palavra “banco”, por exemplo, pode significar um “assento” ou uma “instituição financeira” dependendo da situação em que é usada. Este é um exemplo simples, imaginem então como um computador poderá um dia interpretar uma frase como “eu estava apaixonado, seu beijo era tão doce quanto as maçãs do Paraíso e seu perfume me lembrava um jardim perdido no tempo”... Certamente a poesia não pode ser computada.

Apesar disso, há quem confunda a mente humana com o cérebro, e dessa maneira acredite piamente que nós funcionamos exatamente como uma máquina, e que é questão de tempo até que a inteligência artificial não apenas imite a cognição humana, mas a suplante!

Vejamos como o materialismo soube ocultar o absurdo que salta aos olhos daqueles que sabem enxergar além dele: se o cérebro é o único responsável pela geração do processo de consciência, então concluímos que tudo o que ele faz é interpretar e processar as informações sensoriais que lhe chegam a todo segundo. Dessa forma, o cérebro reage ao ambiente e vai lentamente formando uma base de memória, na teoria a única responsável por sua personalidade, sentimento e moral. Mal comparando a um computador moderno, teríamos que o hard disk (HD) corresponderia as memórias armazenadas no hipocampo. O processador corresponderia a capacidade de interconexão das sinapses entre as células neurais, o que possibilitaria o raciocínio e a cognição em maior ou menor grau. O processo de consciência corresponderia ao computador ativo, computando com o auxílio de sua memória temporária (RAM); e ao final, quando desligado (sono), eliminaria todas as informações sem grande importância, armazenando o que restasse no hipocampo (HD). Analisando superficialmente essa analogia é instigante: será que não seríamos, no final, apenas máquinas avançadas?

Mas isso é facilmente posto abaixo por uma simples constatação: a de que o computador computa informações, e nunca as interpreta. Se o computador pode parecer humano, é somente pelo processo de imitação, pois ele nada decide, nada escolhe, nada interpreta. Somos nós quem fazemos as escolhas, somos nós quem teclamos o teclado, quem clicamos com o mouse, quem escolhemos entre “ok” e “cancelar” em um formulário, quem comentamos nos blogs, quem criamos todo o conteúdo online e offline, etc. Exatamente por isso que não é pela analogia da mente humana com as máquinas que conseguiremos um dia compreender a existência, a capacidade de fazer escolhas, o processo de consciência, o pensamento...

Até hoje não se sabe onde está a consciência, nem do que é formada. Como falei com maiores detalhes noutros artigos, percebemos a atividade elétrica no cérebro, o baile eletromagnético do pensamento, como quem observa a eletricidade passando pelos fios dos postes nas ruas (os “fios que falam”, segundo o Chefe Seattle), mas não fazemos a menor ideia, dentro da ciência, da origem do pensamento, da “usina elétrica” dos fios do cérebro... Enquanto não soubermos onde está a consciência, ou o que exatamente a inicia, não teremos condições de afirmar o quê, em nós, que faz as escolhas, que tecla as teclas do cérebro, que opera a máquina.

O sistema homem-máquina torna possível que o cérebro envie “sinais neurais” que podem ser decodificados para comandar ferramentas e máquinas. No ano 2000, uma equipe coordenada pelo brasileiro Miguel Nicolelis, então na Universidade de Duke, implantou eletrodos no córtex cerebral de uma fêmea de macaco-da-noite, chamada Belle: um computador decodificou a atividade neural da macaquinha e usou os sinais para mover o braço de um robô. Esse tipo de experiência é um grande feito científico, pois tais pesquisas podem resultar em melhorias extraordinárias na qualidade de vida de pessoas paralisadas ou amputadas... Mas não significa que devemos nos deixar cegar pelo brilho reluzente do avanço científico. Nenhum braço robótico jamais se moverá porque quer, mas sim porque decodificou e computou informação neural, porque foi comandado a se mover. Da mesma forma, resta saber se é o cérebro quem nos comanda, se tudo o que somos se resume a reações de partículas no cérebro, ou se ele mesmo é ainda mera ferramenta, uma grandiosa máquina que nossa mente comanda todos os dias de nossa vida.

Quem poderá dizer? Talvez a computação quântica rompa a barreira do “0” e “1”, e permita que os computadores computem informações de modo tão avassalador que sua imitação do ser humano vença finalmente o teste de Turing. Mas ainda assim, será mera imitação. Nem mesmo Turing se iludiu ao ponto de imaginar que um dia uma máquina de computar seria o mesmo que uma máquina de interpretar, ou, noutras palavras, que uma máquina fosse capaz de tomar decisões morais.

E foram talvez por questões de “falsa moralidade” que um dos maiores matemáticos do século passado tenha se suicidado. Como homossexual declarado, no início dos anos 1950 foi humilhado em público, impedido de acompanhar estudos sobre computadores, julgado por “vícios impróprios” e condenado a terapias à base de estrogênio, um hormônio feminino o que, de fato, equivalia à castração química e que teve o humilhante efeito secundário de lhe fazer crescer seios.

Deprimido, em 7 de Junho de 1954, com apenas 41 anos, faleceu após ter comido uma maçã envenenada. Uma máquina não se sentiria humilhada, não se preocuparia com questões subjetivas de sexualidade, mas igualmente não seria capaz de alcançar a genialidade de Alan Turing, o homem ao qual devemos a invenção teórica que mais auxilia a evolução tecnológica da humanidade – o computador nasceu da mente de Turing. É pena que sua genialidade não tenha sido capaz de vencer a ignorância e o preconceito do ser humano.

***

Os três primeiros parágrafos deste artigo são quase que transcrições diretas de trechos do artigo Pensamento eletrônico, de Yvonne Ralley, professora-assistente do departamento de filosofia da Faculdade Felican, em Lodi, Nova Jersey, e publicado na edição especial Desevendando o cérebro, da Scientific American Brasil (editora Duetto, #19, Maio 2009).

***

Crédito da foto: Kraftwerk (banda alemã)

Marcadores: , , , , , , , , ,