Kurama's Secret Lab

Blog destinado à discussão científica.

Terça-feira, Abril 08, 2008

Aprendizado por Reforço

http://www.cns.atr.jp/cnb/papers/pdf/Doya2002nn.pdf
Demorei mas voltei! Achei um artigo muito bom (link no título) do Kenji Doya, meu atual ídolo, unificando teorias de aprendizado por reforço (do inglês reinforcement learning) e neuromoduladores. Calma, vou explicar o que é isso. Seria tudo em 1 post, mas após escrever a primeira parte, percebi que é melhor dividir em 2 (assim também me forço a continuar postando, hehe).
Aprendizado por reforço consiste em reforçar as tendências de um indivíduo a repetir ações que lhe trazem benefícios e evitar ações prejudiciais. Para isto é necessário haver um sistema de recompensa e castigo pré-determinado e mínimo. Por exemplo, o indivíduo precisa ao menos saber que dor é ruim. Através do aprendizado por reforço ele aprenderá a evitar ações que resultem em dor. Um problema que surge nesta abordagem é o da atribuição de crédito. Qual ação exatamente resultou na dor? Acender o fogão ou botar a mão no fogo? Para resolver este problema, existe o método das diferenças temporais. Ele consiste em aproximar os valores de ações passadas ao valor da situação atual, conforme a proximidade no tempo. No exemplo dado, o indivíduo atribuiria um valor altamente negativo à ação de botar a mão no fogo, pois foi a última que ocorreu antes da dor. Logo após, não tão negativa, viria a ação de acender o fogão. "Mas então, por menor que seja, ele vai ter medo de acender o fogão!". Correto. Mas quando ele tentar novamente e não botar a mão no fogo (talvez com ajuda da mãe), os valores vão se reajustar e ele vai perceber que o verdadeiro problema está em botar a mão no fogo e não em acender o fogão (embora ele ainda vá saber que um fogão aceso é mais perigoso que um fogão apagado). Esse mecanismo é simples porém muito poderoso, capaz de resolver diversos problemas em inteligência artificial para agentes autônomos, tendo um mínimo de conhecimento prévio e mão humana.
Aqui tem um exemplo de implementação de aprendizado pro reforço que eu fiz em Java Script, utilizando diferenças temporais: http://netfighters.org/experimentos/rl.html
O mapa, no topo, representa os estados possíveis do agente (a bolinha). Nas pontas existem um estado ruim (esquerda) e um bom (direita). Note que eles são os únicos estados que já iniciam com valores pré-definidos. Imagine isso como se fossem nossos instintos e afins, o mínimo que nascemos "sabendo". Ao clicar em "Next Move", o agente vai se mover, com uma certa probabilidade, para a melhor posição possível a partir de onde ele está. A probabilidade complementar (representada pelo "Exploration Rate (epsilon)") consiste em um movimento aleatório. No exemplo do Random Walk isto não tem muita utilidade, mas a intenção é que o agente aprenda métodos de agir melhores dos que ele já vivenciou, através de exploração (seria como arriscar e descobrir atalhos melhores para chegar no trabalho). Note que os valores de cada posição vão continuar em zero até que o agente visite um estado com valor conhecido. Nesse momento os estados visitados recentemente serão reajustados na direção da recompensa (ou castigo) recebida. Em vez de ficar clicando em "Next Move", clique apenas uma vez e deixe o ENTER pressionado, assim o agente fará vários movimentos e ajustará os valores rapidamente. Perceba que eles sempre ficarão em ordem crescente, e isso significa que o algoritmo funciona, pois, quanto mais para a direita, mais próximo está de uma boa recompensa, e mais distante de um castigo. Experimente diminuir o Exploaration Rate para zero e verá que o agente vai sempre se mover para a direita (após ter aprendido os valores intermediários).
Mas e o "Learning Rate"? E o "Discount Rate"? Vamos por partes. O learning rate é a taxa de aprendizado, ela regula a velocidade na qual os valores são ajustados. Um learning rate maior vai fazer com que os valores se ajustem muito mais rápido, mas cuidado: a teoria matemática por trás de tudo diz que esta taxa precisa ser muito pequena para que o algoritmo funcione. Se aumentar demais, os valores podem "enlouquecer". Ou seja, o truque está em achar um valor intermediário que caia bem para o problema (no próximo post veremos como isso acontece no cérebro). O discount rate é a taxa de desconto nos valores através do tempo. Uma taxa de desconto 1 dignifica que não há desconto através do tempo (sim, parece o contrário do nome, mas enfim...), ou seja, resultados de muito longo prazo têm valor similar aos de curto prazo. Alterando essa taxa obtemos equilíbrios diferentes entre curto (0) e longo (1) prazo. No próximo post veremos como o nosso cérebro ajusta isso.
Por hoje é só! "E o tal de Trace Decay Rate??". Bom, ele não influencia em onde eu quero chegar, então ficará de lado. Só digo que ele regula o tempo de alcance da atribuição de crédito. No próximo post falarei sobre neuromoduladores e como misturar tudo isso!
-->

Terça-feira, Outubro 02, 2007

Ano 20XX

Neste post tratarei dos progressos científicos mais recentes e o rumo ao qual eles nos levarão ainda neste século.

Começando pelas tecnologias recentes e áreas científicas de progresso:
- WiFi
- VoIP
- Engenharia Genética
- Carro elétrico
- Nanotecnologia
- Celular VoIP WiFi
- Membros e órgãos biônicos
- Processadores Multicore
- Neurociência
- Teclado holográfico
- Bluetooth
- Reconhecimento de voz
- Biometria
- Células-Tronco
- Robôs voadores

E as que estão por vir em breve (já anunciadas de alguma forma):
- Carro voador
- Energia sem fio com ressonância
- Chips 3D
- Computação quântica
- Bateria betavoltaica
- Interface Neural

Com base nisso e aplicando a Lei de Moore, pode-se arriscar alguns chutes sobre o futuro do nosso século (não necessariamente nessa ordem):

- Desktops, Laptops e telefones fixos serão substituídos por celulares. Entradas e saídas de áudio e vídeo permitirão o uso de aparelhagem mais sofisticada quando necessário, como televisores de alta definição e aparelhos de som potentes. Teclado holográfico facilitando e controle por voz facilitando o input. Mini-mouse bluetooth também ajuda. Interface neural encerra as facilidades de input com chave de ouro. As tecnologias WiFi e VoIP combinadas, como já implementadas pela Nokia, eliminam o telefone fixo. Além de tudo isso, com infra-vermelho, bluetooth, wifi, seu celular se torna um controle remoto universal.

- É notável que quanto melhores os meios de comunicação, maior conhecimento é alcançável, e conseqüentemente maiores avanços científicos. A fala e a escrita revolucionaram as capacidades humanas, elevando-as a níveis não alcançados por nenhum outro animal. O telefone e a televisão ampliaram este poder ainda mais. A internet gerou um verdadeiro BOOM neste sentido. O que mais falta? Tudo isso no próprio bolso! Aí entra o nosso amado celular overpower novamente.

- Todos aparelhos eletrônicos (incluindo o celular) usarão baterias betavoltaicas embutidas, que vão durar até o aparelho ficar obsoleto. Além disso, uma bateria geral da casa supre os aparelhos de tomada. Adeus companhias de energia!

- Domótica! Casas inteligentes cada vez mais viáveis. Controle por Bluetooth via celular e central de controle.

- Energia sem fio. Caso as baterias betavoltaicas não vinguem, ainda existe essa opção. A energia elétrica chega à sua casa e é distribuída por um transmissor central para todas as suas parafernálias. Adeus fios, ao menos ^^;

- Carros elétricos voadores. Inclusive modelos para 1 pessoa serão muito populares (tipo uma das navezinhas do Dr. Wily).

- Robôs voadores diminuindo as distâncias! Hyper Sedex!

- Robôs trabalhadores de todos os tipos. Desemprego atinge níveis catastróficos. 99% da riqueza mundial estará com 1% da população. Difícil prever a partir daí, mas o mais viável seria a adoção da Tecnocracia.

- Partes biônicas serão comuns, incluindo órgãos dos sentidos. Certas partes do cérebro também poderão ser substituídas. Todos os tipos de provas físicas e mentais serão questionadas.

- Com o avanço das técnicas de células-tronco, a regeneração total de qualquer parte do corpo será possível.

- Aperfeiçoamento genético desde o embrião, evolução artificial. Mais questionamentos!

- Clonagem humana? Haja questionamento...

- Longevidade e posteriormente imortalidade. Previdência obsoleta! Somando com Tecnocracia = vida eterna fazendo só o que der na telha.

- Singularidade: os robôs se tornam capazes de construir robôs mais inteligentes que eles próprios, e assim sucessivamente, até surgir um "Robô Deus". Sabe-se lá o que ele vai decidir fazer conosco...

Algumas coisas eu acho que vão aparecer em menos de 10 anos, outras 20, outras 30... Mas enfim, aguarde até o fim do século e verão!
-->