segunda-feira, 11 de abril de 2011

Robôs aprendem sozinhos e observando humanos

Não se iluda: robôs não nascem com o background dos bebês humanos, nem dos bebês-cachorros, ou dos bebês-gatinhos, e nem sequer dos bebês-lesmas. [Imagem: PACO Project]

Educação robótica
 
      Os robôs atraem a atenção do público, são geralmente simpáticos e, sobretudo, parecem ser capazes de ajudar em muitas tarefas que os humanos gostariam de se ver livres.
      Mas não se iluda: robôs não nascem com o background dos bebês humanos, nem dos bebês-cachorros, ou dos bebês-gatinhos, e nem sequer dos bebês-lesmas.
Isto torna muito difícil ensinar qualquer coisa a um robô. Atire uma bola e seu cãozinho irá instintivamente correr atrás dela. Atire a bola para um robô e ele ficará tão imóvel quanto uma pedra.
      Então você terá que começar do início: faça um programa para ensiná-lo o que é uma bola, dote-o de câmeras para que ele seja capaz de acompanhar o movimento, associe o movimento da bola com a ordem para ir pegá-la, faça o rastreamento da bola etc. etc. A grande vantagem é que, uma vez aprendido, ele nunca mais esquecerá.

Cognição robótica

      Mas um grupo de cientistas europeus teve uma ideia melhor: eles estão trabalhando em um campo emergente chamado de cognição robótica, adotando enfoques inovadores para tornar menos entediante a tarefa de ensinar os robôs a fazerem qualquer coisa.
      A equipe do projeto PACO-PLUS está usando um conceito chamado de "complexos ação-objeto" (CAO).
      Esses complexos representam uma combinação de percepção e ação sobre um determinado objeto. Eles são registrados pelo robô cada vez que ele executa uma ação.
      As ações registradas podem ser salvas e trocadas com outros robôs e, ao longo do tempo, a equipe espera construir bibliotecas inteiras de CAOs, que possam ser trocadas entre os pesquisadores.
      De início, parece tão complicado quanto ensinar a um robô o que é uma bola em movimento.
      Mas só no início. Os pesquisadores descobriram que a abordagem permite que os robôs aprendam ações simples sozinhos. Essas ações simples permitem o aprendizado de ações um pouco mais complexas, e assim por diante.
      O resultado é que os robôs parecem se tornar capazes de aprenderem sozinhos.
      Os resultados são tão entusiasmadores que os cientistas já falam na possibilidade de que os robôs se tornem capazes de "pensamentos abstratos, no futuro".
Os resultados são tão entusiasmadores que os cientistas já falam na possibilidade de que os robôs se tornem capazes de "pensamento abstratos, no futuro". [Imagem: PACO Project]
Exploração autônoma

      Com a exploração autônoma, um robô pode pacientemente explorar milhares de formas possíveis de interagir com um objeto sobre o qual ele não tem nenhum conhecimento prévio.
      Ao longo do tempo, ele vai aprender que uma forma se encaixa em outra, que um objeto se equilibra em uma posição, mas não em outra, e assim por diante.
"A primeira coisa que o robô vai fazer quando encontrar um objeto pela primeira vez será levantá-lo ante seus olhos e, em seguida, girar o objeto para vê-lo de todos os ângulos. Depois disso, [o robô] será capaz de identificar o objeto a partir de qualquer ângulo," explica Tamim Asfour, do Instituto de Tecnologia de Karlsruhe, na Alemanha e coordenador do projeto PACO-PLUS.
      As ações complexas poderão surgir ao longo do tempo, com um robô progressivamente aprendendo como lidar com um copo, com uma garrafa, com portas etc.
      Da mesma forma, conforme a experiência do robô com objetos diferentes se expandir, as opções também se expandirão, e ele poderá aprender a enfiar uma chave no buraco da fechadura para ver se essa ação levará a algum resultado.

Ajudando a evolução

      Os cientistas acreditam que a interação com o meio ambiente conduzirá a estratégias cada vez mais sofisticadas ao longo do tempo e, finalmente, dará origem à "inteligência".
      É possível. Mas se os animais levaram milhões de anos para desenvolver a inteligência, talvez seja necessário esperar o mesmo dos robôs.
      Os pesquisadores logo perceberam isso, e decidiram dar uma mãozinha à evolução: eles criaram uma técnica para que o robô possa aprender observando um humano.
      Os resultados também foram encorajadores. Em uma de suas demonstrações, os cientistas ensinaram um robô a limpar uma mesa simplesmente limpando a mesa e deixando que o robô os observasse.
      As ações podem ser conectadas a comandos vocais, para que o robô aprenda quando executar novamente a tarefa: lavar os pratos e varrer o chão parece uma questão de tempo.
      Por enquanto, os cientistas estão mais interessados em aplicar as novidades ao treinamento de robôs industriais, reconhecidamente muito difíceis de programar. Mas os resultados já estão disponíveis para parceiros na indústria que queiram licenciar os programas e utilizá-los em produtos comerciais.
      Um outro projeto europeu recentemente divulgou os primeiros resultados de uma abordagem similar, na qual os robôs tornam-se capazes de aprender com a experiência.

crédito: Redação do Site Inovação Tecnológica - 16/11/2010

sexta-feira, 1 de abril de 2011

Robôs ganham capacidade de aprender com a experiência

Aprendizado de máquina

      Deixe uma criança de um ano de idade brincar por algum tempo e ela facilmente descobrirá que é capaz de colocar uma bola sobre uma caixa, mas jamais conseguirá manter a caixa em cima da bola.
      Proponha-se ensinar a mesma lição a um robô e prepare-se para um trabalho muito árduo.
O robô Nao, controlado pelo sistema Xpero, tenta aprender pela experiência o que funciona e o que não funciona. [Imagem: Xpero]
     Os cientistas sabem que, se querem fazer avançar a inteligência artificial, eles devem desenvolver uma espécie de "aprendizado artificial", ou aprendizado de máquina - como programas que permitam que um robô adquira conhecimento sobre seu ambiente simplesmente manipulando-o, como faz uma criança.
"Ensinar conceitos como mobilidade e estabilidade a um robô é um desafio descomunal," resume Björn Kahl, roboticista da Universidade Bonn-Rhein-Sieg, na Alemanha.
      Mas a dificuldade não desanimou os cientistas. Por isso, Kahl e seus colegas se reuniram no projeto Xpero, que acaba de apresentar seus resultados.

Sistema cognitivo para robôs

      O objetivo do projeto Xpero foi desenvolver um sistema cognitivo para um robô que lhe permita explorar o mundo à sua volta e aprender através da experimentação física, testando hipóteses logicamente.
      O primeiro passo foi criar um algoritmo que permite que um robô explore e reconheça o ambiente a partir dos dados recebidos dos seus sensores.
      Para que isto fosse possível, os pesquisadores tiveram que instalar um "conhecimento" predefinido no robô, na forma de noções básicas de lógica - ou seja, para ser capaz de aprender, o robô precisa "nascer" com um background que alimente seu processo cognitivo.
      Mas robôs são máquinas controladas por computadores, e computadores são binários.  Assim, no estágio atual, o robô apenas consegue entender as coisas como verdadeiras ou falsas - não há talvez. Mas, mesmo com essa limitação, o programa representou um avanço impressionante para os robôs.
      Conforme se movimenta, o robô utiliza os dados dos seus sensores para testar seu conhecimento. Quando ele descobre como sendo falso algo que ele esperava que fosse verdadeiro, ele começa a fazer experiências para descobrir por que sua expectativa é falsa, e assim corrigir suas hipóteses.

Conceito de tempo para robôs

      O maior problema que os pesquisadores enfrentaram foi selecionar os fatores importantes no fluxo maciço e contínuo de dados captados pelos sensores do robô - um problema que seria muito maior se eles tentassem escapar da "personalidade binária" do robô, inserindo noções como "talvez" ou "pode ser".
      O segundo desafio foi encontrar uma forma para fazer com que um sistema baseado em lógica lidasse com o conceito de tempo - nada filosófico, apenas algo que pudesse permitir que o robô antevisse que uma caixa iria cair se ele tentasse colocá-la sobre uma bola - uma espécie de aula básica de causa e efeito para robôs.
Inicialmente o robô não tinha nenhuma visão de futuro. Mas, com cada observação, ele começou a aprender hipóteses melhores, que poderiam ser usadas para prever os efeitos de suas ações.
      O problema é que, ao descobrir uma hipótese errada, o programa ficava frente a um número literalmente infinito de possibilidades do que poderia ser a solução correta.
      A equipe teve que encontrar uma forma de curto-circuitar o processo, impedindo que o robô gastasse uma quantidade infinita de tempo testando cada possibilidade. A solução foi transformar o fluxo contínuo de informações que chegavam dos sensores do robô em situações estáticas definidas a cada poucos segundos - é como se os cientistas tivessem transformado um filme em fotografias.
      Além disso, quando uma hipótese se mostrava falsa, os pesquisadores reduziram o número de possíveis soluções fazendo com que o robô construísse uma nova hipótese que mantivesse os conectores lógicos da sua hipótese falsa, alterando apenas as variáveis. Isso reduziu drasticamente o número de soluções possíveis.

Repositório de conhecimentos

      Um desenvolvimento marcante obtido pelo projeto Xpero foi dar ao robô a capacidade para construir uma base de conhecimento. "Ele não faz distinção entre os conhecimentos prévios e os conhecimentos adquiridos," explica Kahl. "Esta possibilidade de reutilização do conhecimento é muito importante. Sem isso não haveria aprendizagem incremental."
      Nas demonstrações, os robôs controlados com o sistema cognitivo Xpero moveram-se com desenvoltura pelo ambiente, mexeram e reposicionaram os objetos e acumularam um conhecimento crescente sobre ambiente.
      Mostrando um desenvolvimento que entusiasmou os cientistas, um dos robôs começou a usar objetos como ferramentas, usando um objeto para mover ou manipular outro objeto que não estava ao seu alcance.
      Embora esses robôs exploradores encenem um show digno de se ver, os cientistas afirmam que os desenvolvimentos mais excitantes do projeto Xpero estão no aprendizado que a equipe obteve sobre o processo de aprendizagem de máquina em si.
      "Nós ganhamos um bocado de insights sobre os desafios da aprendizagem e de como a aprendizagem de máquina realmente funciona. Meramente fazer o robô perceber que algo não está certo exigiu percepções fundamentais do ponto de vista da pesquisa." disse Kahl.
      Os pesquisadores agora estão planejando um novo projeto, no qual dois robôs ficarão rodando o sistema durante um tempo muito maior - talvez meses - para ver como seu conhecimento avança.
      "Mas embora o Xpero represente um grande avanço na aprendizagem de máquina, ele ainda está muito aquém das capacidades de um bebê," diz Kahl. "É claro que o robô agora pode aprender o conceito de mobilidade. Mas ele não entende o que significa mobilidade no sentido que um humano entende."

crédito: Redação do Site Inovação Tecnológica - 10/09/2010