A repercussão da nossa pesquisa de longevidade

Algumas semanas depois de nosso estudo sobre restrição calórica finalmente sair na Rejuvenation (sim, o processo de publicação acadêmica, mesmo quando é online, é longo e doloroso, com meses entre a aceitação e a publicação de um artigo :), o mesmo começa a ser descoberto pela fração da blogosfera especializada em pesquisa de longevidade. O Ouroboros, um dos mais famosos blogs de longevidade da Internet, nos mencionou! O mesmo artigo é re-citado ainda pela Methuselah Foundation, a instuição famosa por patrocionar o M Prize para quem conseguir produzir camundongos superlongevos.

E o que achei mais interessante: o artigo do Ourobouros é impressionantemente didático. O autor foi muito perspicaz em identificar perfeitamente como funciona a nossa metodologia e os pontos-chave que tornam nossa pesquisa bem diferente de muita coisa já feita; na verdade o artigo até acrescenta alguns pontos (e talvez de forma mais sucinta :) ao que eu e o Maurício escrevemos na época da aceitação. Considerando que temos uma imensa dificuldade de explicar nossas técnicas para a grande maioria dos biólogos e bioinformatas justamente porque elas são pouco usuais, achar alguém que leu e nitidamente entendeu o que fizemos, e consegue explicar de forma simples e objetiva, é extremamente gratificante, acreditem! :)

Finalmente, enquanto o nosso estudo cruzava dados de estudos bem diferentes envolvendo expressão genética de restrição calórica em uma mesma espécie (camundongos) o autor vai mais além e sugere fazermos um cruzamento inter-espécie. Ótima (e audaciosa!) idéia, e quem sabe um futuro alvo de pesquisa do Labs+Biomind

Uncategorized 1 Comentário

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)

Screencasts

Só uma explicação rápida. Algumas pessoas me perguntaram sobre os vídeos de demonstração dos cachorros virtuais, disponibilizados semana passada. Os vídeos foram gerados com o Dream Screen, um produto para criação de screencasts da Dream Broker, uma startup finlandesa. Não sou de fazer propaganda, mas o Labs foi beta tester do Dream Screen, e eu gostei bastante do produto, tanto pela qualidade do vídeo resultante quanto pela falta de dor de cabeça com conversão de formato, uploading e armazenamento online.

Web 2.0 0 Comentários

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)

Software livre no seu carro: “Veneno” open source

Não preciso nem dizer que o Brasil tem tradição em automobilismo – nem que for pra lembrar das incontáveis manhãs de domingo com Fórmula 1. O que acho mais interessante é que nosso tesão por motorsports independe de suporte formal: apesar de alguns esforços heróicos não temos grandes equipes em categorias de ponta.

Mas isso nunca é problema quando se tem alguma criatividade. O extremo mais precário é um dos meus exemplos preferidos: são comuns em cidadezinhas do interior os “jericos” – carros inteiros construídos a partir de sucata, usando motores estacionários (feitos para serrarias, máquinas agrícolas pequenas, etc.). Daí para competições rústicas envolvendo esses carros, jipes e fuscas é um passo.

(Foto: Marco Antonio Teixeira)

(Foto: Marco Antônio Teixeira)

Algumas soluções técnicas pouco convencionais (gambiarras mesmo) fizeram história no automobilismo brasileiro. Em 1969, os jovens Emerson e Wilson Fittipaldi disputaram os Mil Quilômetros da Guanabara ao lado de lendas como Ford GT40 e Alfa P33, a bordo de um Fusca de 400 cavalos, vindos de dois motores acoplados por uma junta elástica de borracha!

(Foto: obvio.ind.br)

Nos anos 1970 e 1980, qualquer um que pensasse em esportivo no Brasil tinha que falar do Opala, e necessariamente do “veneno” – modificações no motor como troca de carburador, bicos injetores e comando de válvulas para deixar o motor seis cilindros do que hoje é um dos maiores clássicos brasileiros ainda mais bravo e, obviamente, divertido.

Opalão SS 9 Silver Star

(Foto: Opala Club de Bragança Paulista)

A chegada da injeção eletrônica ao Brasil com o Gol GTI, em 1989, foi o início de uma grande mudança: agora um programa de computador, sensores e atuadores eletrônicos passariam a ditar o comportamento (e o consumo) do motor, e a era do veneno clássico, dos carburadores Quadrijet e de tantos outros truques começava a terminar.

Só que a história não acaba aqui! No início dos 1990 tomava força também, no mundo todo, uma outra revolução: a do software livre e aberto. Programadores de computador, cientistas da computação, hobbyistas e entusiastas chegavam à conclusão de que o código-fonte dos programas não devia ser trancafiado a sete chaves numa catedral, mas sim compartilhado e melhorado de forma cooperativa e distribuída.

Essa cooperação e o livre fluxo de informação levava ao desenvolvimento de programas e sistemas mais robustos, seguros e eficientes. E o que isso tem a ver com carros esportivos ? A resposta é simples: já que o software domina o seu carro, domine o software e você vai conseguir um “veneno” que de virtual não tem nada!

Provavelmente o exemplo mais famoso disso é a MegaSquirt, um sistema completo de injeção eletrônica, com todos os sensores e um microprocessador de 8 ou 16 bits que controla os bicos injetores e ignição das velas, baseado em software livre. A Mega Squirt é comprada pelo correio, aos pouquinhos, montada nos mais diferentes tipos de carros, e configurada de diversas formas conforme os objetivos da preparação, na melhor tradição DIY (Do It Yourself, “faça você mesmo”):

Componentes da MegaSquirt

(Foto: Marcelo Garcia)

Para “conversar” com a MegaSquirt e fornecer uma interface para o piloto / mecânico / programador / usuário, usa-se um outro software livre, o MegaTunix, originalmente desenvolvido para o Linux e hoje disponível em diversos sistemas operacionais, incluindo o Windows.

Uma das funções mais divertidas do MegaTunix é emular os caríssimos “relógios autometer” (mostradores incluindo conta-giros, termômetros, razão ar/combustível, etc.): tudo é mostrado no monitor de um notebook ou palmtop, e o usuário pode definir exatamente qual o visual ele quer.

MegaTunix / MegaSquirt

MegaTunix rodando em notebook conectado à MegaSquirt

(Foto: Marcelo Garcia)

E é a flexibilidade do código aberto que permite que sistemas assim sejam tão interessantes. O Marcelo Garcia, que forneceu fotos e consultoria para esse artigo, dá um exemplo da liberdade a que se tem acesso: ele conta que é possível, usando bastante engenhosidade, um fogão, multímetro e outros truques, atualizar o firmware da MegaSquirt para que ela usasse sensores de temperatura de qualquer carro em qualquer motor. Uma mão na roda para quem tem carros antigos (dos quais não se encontram mais peças originais) ou exóticos (cujas peças custam uma fortuna).

Calibrando sensores de temperatura no fogão

Calibrando sensores de temperatura no fogão

(Foto: Marcelo Garcia)

É claro que há limites para o que é possível fazer com software; nem o hacker mais brilhante do mundo vai fazer seu Uninho 1.0 rodar 25 km/l ou andar junto com o Opalão seis cilindros do seu tio. Mas saber que o “veneno” feito-em-casa ainda existe apesar de todas as inovações tecnológicas das últimas décadas é muito, muito bacana – e dá um outro sentido à expressão computador de bordo!

Automação, Desenvolvimento, Inovação, Processamento de Sinais 8 Comentários

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)

Editores de jornal artificiais?

O Yahoo está utilizando inteligência artificial para selecionar notícias para sua página principal. Um grupo de notícias é selecionado manualmente à moda antiga: por editores de carne e osso. A partir daí, um sistema desenvolvido internamente decide quais notícias serão realmente exibidas, por quanto tempo, e com que grau de destaque. O sistema monitora, em tempo real, a “click through rate”, ou a fração de usuários que clicam na notícia para ler o texto completo.

Como cada texto completo vem com ads, aumentar a fração de cliques tem um impacto direto no faturamento. Os cientistas dizem que o novos sistema aumentou a “click through rate” em 30%.

Um aspecto interessante é que eles tentaram metodos mais sofisticados, como analisar informação semântica sobre o conteúdo de um artigo e personalizar a pagina para cada usuário, mas esses métodos nao apresentaram o mesmo impacto na “click through rate”. A técnica em uso atualmente, aparentemente baseada em um filtro de Kalman, é simples e tem a vantagem de ser facilmente ajustada em tempo real. Esse tipo de ajuste permite que notícias surpreendentemente populares sejam mantidas em evidência por mais tempo, e tambem que o sistema se recupere rapidamente quando faz uma sugestão ruim.

Nao é um computador que pensa, mas é uma aplicaçãoo muito prática (e, ao que tudo indica, lucrativa) de métodos simples. É sempre bom ver pesquisa com esse tipo de foco pé no chão.

Inovação, Inteligência Artificial, Internet 0 Comentários

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)

Robôs Criam Pânico em Wall Street

Nessa segunda-feira, dia 8/9, o preço das ações da United Airlinas despencou de US$12,50 para US$3,00 nas bolsas de valores americanas, em apenas 15 minutos. A negociação das ações foi suspensa temporariamente. Tudo isso por causa de um rumor infundado de que a empresa estaria entrando em processo de concordata. O preço das ações voltou ao normal depois que ficou claro que o rumor era falso.

O que aconteceu? Uma combinação de problemas de “burrice artificial” e, claro, a boa e velha burrice natural. A United Airlines realmente entrou em concordata uma vez, mas isso foi em 2002, e isso foi amplamente noticiado pelos jornais.

Pois bem, essa notícia, de dezembro de 2002, de alguma forma apareceu na lista de notícias mais visitadas do site do Chicago Tribune na noite do dia 6/9. Aparentemente, de acordo com o Wall St. Journal, só uma pessoa visitou a notícia, mas o fez durante um período de tráfego muito baixo (afinal era sábado à noite), durante o qual uma visita era o suficiente para colocar a notícia velha entre as cinco mais populares. Burrice artificial número um.

Alguns minutos depois, o robô do Google News fez sua visita periódica ao site do Chicago Tribune, e viu um link que não estava lá antes. A notícia foi baixada mas, como não tinha data, o Google News assumiu a data do dia, que estava no cabeçalho da página que linkava para a notícia antiga. Já era madrugada do dia 7. A notícia foi parar no Google News, sem nenhuma indicação de sua data original de publicação. Burrice artificial número dois.

Aqui entra a burrice natural. A Bloomberg, além daquele canal de TV a cabo com a pior aparência de todos os tempos, também oferece um serviço de notícias em tempo real (com aparência um pouco melhor que a do canal de TV), que é acompanhado por todo mundo no mercado financeiro americano. Algum analista financeiro imbecil viu a notícia e a passou para a Bloomberg. Burrice natural.

Na manhã de segunda feira, mais ou menos uma hora depois que o mercado tinha aberto, a famigerada notícia foi divulgada pela Bloomberg. Hoje em dia há uma grande quantidade de sistemas que “interpretam” o conteúdo das manchetes da Bloomberg e negociam ações com base nessa interpretação. Tudo automatizado. E tem que ser automatizado, porque o tempo de reação é que permite que esse tipo de operação dê lucro: o sistema tem que processar as manchetes, decidir o que fazer e operar antes que os analistas humanos tenham terminado de ler a notícia e tomado suas decisões. Bom, esses sistemas todos concluíram a mesma coisa, venderam tudo que tinham de ações da United Airlines e mais um pouco, e o preço foi pro brejo.

E aí? Esse último foi burrice artificial? A decisão dos sistemas foi correta, dada a informação disponível. Como os sistemas poderiam saber que a notícia era de 2002? Será que não foi burrice natural a falta de alguma salvaguarda?

Eu não sei responder essas perguntas acima, mas sei que essa história mostra o risco que investidores correm hoje em dia porque computadores movimentam um enorme volume de dinheiro nas bolsas sem supervisão cuidadosa de humanos. E esses computadores não estão preparados para lidar com entradas ruins desse tipo. Claro, a velha máxima ainda vale: inteligência artificial não é páreo para burrice natural…

Inteligência Artificial, Internet 3 Comentários

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)

Nossos cãezinhos virtuais na Virtual Worlds Expo 2008

Já que estamos falando de conferências, semana passada rolou a Virtual Worlds Expo em Los Angeles. Mais de 1300 visitantes e expositores, e a Novamente estava lá, com um stand, mostrando os cãezinhos virtuais que estamos desenvolvendo por aqui.

Nós gravamos alguns vídeos de demonstração dos cachorros. Quatro vídeos estão disponíveis para quem quiser ver:

Desculpem as animações e arte ainda meio toscas, mas até agora o foco do trabalho tem sido mesmo na inteligência dos bichinhos. Nos próximos meses vamos trabalhar também na robustez do sistema e da interface, e vamos postando mais vídeos quando tivermos novidades interessantes!

Inovação, Inteligência Artificial, Mundos Virtuais 5 Comentários

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5,00 out of 5)

Lidando com datasets minúsculos

Há um tempo atrás, escrevi aqui no Tecnologia Inteligente um artigo onde eu criticava algumas esperanças meio irreais sobre o que se pode fazer com bases de dados (ou datasets, o anglicismo que efetivamente usamos o tempo todo no nosso trabalho :) imensamente grandes. Já neste artigo, pretendo analisar um problema que de certa forma é oposto – o das bases de dados pequenas demais.

Sim! Por incrível que pareça, em uma era onde se fala em “dilúvio de dados” em quase todos os campos da Ciência e terabytes rapidamente caminham para a trivialidade, ainda assim às vezes, em certos casos específicos, a quantidade de dados disponível é muito menor do que poderia ser considerado satisfatório. 

De fato, tive inspiração para escrever este artigo porque nas últimas semanas estava lidando com um dataset biológico muito pequeno, com dados caracterizando apenas seis amostras. Ah, sim, aqui é importante frisar que era um dataset pequeno em número de amostras, mas cada amostra era caracterizada pelos valores de expressão de dezenas de milhares de genes, totalizando um tamanho de uns dois megas.

O que, a propósito, há muito parece um tamanho ridículo em nossa era onde facilmente temos arquivos de vários gigas, mas de qualquer modo já é um tamanho humanamente intratável e que exige análises computadorizadas.

Outro comentário pertinente é relacionado com o fato de que muitos podem achar estranho um dataset biológico ser pequeno, já que a fama é de serem enormes. Bom, o caso é que muitas vezes, para certos problemas, coletar dados de um grande número de amostras pode ser difícil, ou caro, ou ambos. Pense em indivíduos com condições médicas raras, ou então em exames médicos que são caríssimos, e vai ser fácil juntar os pontos para ver como aparecem com razoável freqüencia datasets biológicos minúsculos.

Bom, qualquer que seja o motivo da escassez de amostras, como lidar com esses números reduzidos em um estudo de aprendizagem supervisionada? Eu tenho a seguinte receita de bolo de três passos:

Validação leave-one-out

Depois que são treinados com (duh! :) dados de treino, classificadores são validados com dados de teste que eles nunca “viram”, os famosos out-of-sample.  Dado um conjunto inicial de amostras, existem diversas formas de “produzir” conjuntos de teste e treinamento.

A mais simples delas é simplesmente escolher aleatoriamente uma fração (digamos, 2/3) das amostras para treinamento, e usar o restante para teste.

Uma segunda forma mais sofisticada e confiável, que torna mais improvável a seleção de conjuntos de treino e teste irrealmente favoráveis, é a chamada cross-validation.

Nesta política de validação, o dataset inicial é dividido em n subconjuntos com mais ou menos o mesmo número de amostras, e correspondentemente são feitos n pares de treino e teste: no primeiro par o subconjunto 1 é usado para teste e o restante para treinamento; no segundo par o subconjunto 2 é usado para teste e o restante para treinamento; e assim por diante.

Pois bem, no caso de datasets com pouquíssimas amostras, o ideal é usar o leave-one-out (“deixe um de fora“, numa tradução literal que funciona), que é o caso especial de cross-validation onde n é igual ao número de amostras da base – isto é, a cada par só uma amostra é usada como teste e todas as outras para treinamento.

Esse tipo de validação minimiza ao extremo a probabilidade de formação de pares “privilegiados” de treino e teste, a qual já não é tão pequena assim em datasets minúsculos.

Análise de Permutação:

Vamos supor que você foi cuidadoso na fase anterior de validação, usando leave-one-out, e descobriu que seus classificadores têm um desempenho maravilhoso nos dados, com altas acurácias tanto nos conjuntos de treino quanto de teste.

Mas, se você for realmente rigoroso (alguns diriam paranóico, mas a paranóia quase chega a ser uma virtude na Ciência :), deverá considerar a possibilidade de que talvez seus resultados sejam tão bons porque o número de amostras é pequeno e é fácil para o seu algoritmo decorar algumas propriedades numéricas dos dados que *por coincidência* podem ser usadas para distinguir corretamente as categorias (digamos que casos de controles), mas não necessariamente são relacionados com o problema real que está sendo estudado.

A solução para verificar essa terrível possibilidade é fazer a assim-chamada análise de permutação. Esta é um “embaralhamento”: consiste em trocar aleatoriamente os rótulos de categoria entre as amostras. Gerando muitas permutações diferentes e vendo que as acurácias dos testes feitos com dados “embaralhados” são menores que o resultado obtido com os dados reais, pode-se inferir que as acurácias excelentes devem ser também “reais”, correspondendo a padrões relevantes para o problema investigado.

Nota: aqui estou falando em acurácia – que talvez seja a métrica de qualidade de classificação mais comum, óbvia e intuitiva – mas existem outras métricas, e o que estou dizendo aqui usando acurácia também vale para elas.

Comportamento com métodos não-determinísticos:

Às vezes, nem a análise de permutação pode ser suficiente. Se o dataset for muito pequeno mesmo, o número total de permutações pode ser tão modesto que não permite calcular um alto valor de significância estatística.

No dataset de apenas seis amostras que mencionei, o número de embaralhamentos utilizáveis era de apenas 18. Quando se nota que tradicionalmente o limiar de significância interessantemente para os biólogos é de 0.05, ou uma chance em 20 dos seus resultados serem “falsos”, 18 permutações parecem problemáticas para decidir se seus resultados passam nesse limiar. :) Como então contornar essa forma extrema do problema dos datasets pequenos?

Uma opção interessante pode ser usar um método de classificação não-determinístico (por exemplo GA, GP, vários modelos de redes neuronais, etc) e realizar vários testes de classificação sobre os seus dados reais e sobre os dados permutados.

Um método não-determinístico não necessariamente produz o mesmo classificador com os mesmos dados de entrada, e assim no final essa etapa de validação terá gerado um monte de classificadores diferentes – uns melhores, uns piores que os outros. Interessantemente, agora é possível se falar em comparação de distribuições de acurácias, e não de um dado pontual de acurácia nos dados reais versus um pequeno conjunto de acurácias “embaralhadas”.

Essas distribuições podem ser tão grandes quanto se queira – basta gerar mais classificadores de forma não-determinística – e quanto maior o número de pontos amostrais envolvidos, mais estatisticamente significativa será qualquer discrepância entre as distribuições com e sem embaralhamento.

Moral da história

Enfim, o ideal mesmo em vários processos científicos é trabalhar com números grandes de amostras, mas se as vicissitudes da vida um dia obrigarem você a lidar com datasets minúsculos, não se desespere! Com os macetes descritos há uma boa chance de você espremer (admitidamente de forma um tanto lenta e dolorosa)  alguns padrões confiáveis apesar de tudo; ou na pior das hipóteses demonstrar confiavelmente que seu dataset não presta mesmo. :)

Biotecnologia, Data Mining 0 Comentários

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)

TechCrunch 50!

Está rolando em San Francisco a TechCrunch 50, uma grande conferência onde startups se apresentam para a imprensa, investidores, empreendedores e outros formadores de opinião do Vale do Silício. É provavelmente o maior evento dedicado ao lançamento de novos produtos, sites e empresas inovadoras do mundo. As empresas selecionadas (52 de um total de mais de 1000 inscrições) têm que manter seus produtos em segredo até a conferência.

Como a conferência já começou, podemos anunciar que um dos produtos lançados foi desenvolvido todinho aqui no Labs, e está em beta atualmente. O StockMood.com é uma ferramenta para auxílio a pequenos investidores na bolsa dos EUA. O sistema usa processamento de linguagem natural e inteligência artificial para determinar o “tom” (positivo ou negativo) de artigos que saem na imprensa sobre uma empresa.

Correlacionando o tom dos artigos com o movimento do preço da ação ao longo do tempo, ele tenta quantificar o “humor” da ação, e gera alertas quando o humor e o tom dos artigos do dia chegam a valores muito altos ou muito baixos. Esses alertas indicam uma possível reversão dos preços. O sistema de classificação do tom de artigos está longe de ser perfeito, mas os usuários podem corrigir os erros do sistema pelo site, gerando alertas melhores e permitindo que o próprio classificador aprenda com os erros.

Brett Markinson presenting StockMood.com

A foto acima (by Andrew Mager) é do Brett, CEO da nova startup, durante a apresentação. A recepção ao StockMood.com foi geralmente bem positiva, como nesse artigo da Fortune. embora o modelo de negócios da empresa ainda esteja sendo refinado. O beta será limitado, por enquanto, a 1000 usuários cadastrados, então se você achou a idéia interessante e não tem medo do inglês, cadastre-se!

E, finalmente, parabéns a toda a equipe do StockMood.com, especialmente ao Fabrício Aguiar e ao Gustavo Gama, que vocês conhecem um pouco de posts aqui no blog.

Data Mining, Inovação, Inteligência Artificial, Internet, Linguagem Natural, Negócios, Web 2.0 10 Comentários

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)

Biocuradores – quem são esses caras?

Saiu na Nature de 4 de setembro de 2008 e na PLoS Computational Biology de 27 de agosto , alguns artigos e comentários sobre o papel dos biocuradores (“biocurators”) na ciência atual.

Mas por que surgiram, quem são e o que fazem esses biocuradores?

Pra começar, eles nasceram com essa grande avalanche de dados, muito falada atualmente, iniciada na última década e com o acesso rápido a todos esses dados por meios eletrônicos.

Um exemplo legal do artigo da Nature: mais de 18 milhões de artigos científicos estão indexados no PubMed, mais de de 260.000 espécies de organismos têm sequências de nucleotídeos depositadas em bases de dados online e foi anunciado recentemente que irão sequenciar 1.000 genomas humanos em três anos para o estudo de SNPs! É realmente um monte de informação pra analisar!

Biocuradores geralmente são biólogos que possuem uma mescla de habilidades que variam desde realizar pesquisas científicas anvançadas, passando por uso e administração de bancos de dados, conhecimento de múltiplos sistemas operacionais e linguagens de script.

Essas habilidades são necessárias exatamente para lidar com essa grande quantidade de dados. Biocuradores lidam com o “raw data”, extraem informações de publicações científicas, marcam, formatam e categorizam os dados e disponibilizam a informação online no final.

Na Plos são citados dois exemplos de biocuradores. Um atua no PDB curando e validando os modelos tri-dimensionais de proteínas lá depositados. Outro no IEDB, um banco de dados sobre imunologia, onde ele extrai informações sobre as sequências desse banco.

Aqui na Vetta, acho que posso dizer que eu o Lúcio e o Kenji compomos o time de biocuradores da Biomind (apesar de eu ser o único biólogo). ;-)

Nas atividades que participo, nós analisamos informações de sets de dados de microarrays, lidando e formatando tabelas com milhares de genes, muitas vezes tentando encontrar notações não redundantes para cada gene e colocando tudo em um formato adequado para rodar as análises de classificação por machine learning. Como diria o Lúcio, é preciso ‘crunchar’ os dados antes de analisar. ;-)

Depois é necessário verificar os resultados, checando as funções de diversos genes em diversas bases de dados, analisando a literatura científica e cruzando as informações pra ver se os resultados obtidos fazem algum sentido biológico.

Dá muito trabalho mas é bastante gratificante, principalmente quando dá certo! ;-)

Biologia, Biotecnologia 0 Comentários

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)