O objectivo deste trabalho é implementar uma técnica de aprendizagem por reforço denominada por QLearning, que consiste num tipo de aprendizagem não supervisionada, onde o "robô" anda a explorar o cenário, evitando os obstáculos até conseguir chegar à saída.
De cada vez que consegue sair, atribui uma recompensa à casa anterior à saída, e assim sucessivamente, até obter um caminho com várias recompensas.
Inicialmente o cenário é composto por células pretas(obstáculos) e brancas (caminho livre).
Posteriormente as casas que possuem uma recompensa, são marcadas com a cor azul, onde a tonalidade da cor é relevante, quanto mais escura, maior é a recompensa, logo está mais próximo da saída.
Neste exemplo já foi encontrado o caminho, ou seja a solução já convergiu.
A casa representada a vermelho consiste na posição actual do robô.
Q-Learning
Finalmente um pequeno vídeo para demonstrar, espero que gostem.
O intuito deste Blog é mostrar algum do trabalho que tem vindo a ser desenvolvido por mim ao longo destes anos de vida de estudante.
sábado, 29 de novembro de 2008
sexta-feira, 28 de novembro de 2008
Aprendizagem Competitiva Java
Text Processor Java
Esta aplicação permite a leitura de conjuntos de dados, onde a leitura é efectuada por parametrização adequada e posteriormente divide os dados em classes.
Todos os dados são gravados num formato único, preferencialmente com espaços entre atributos e fim-de-linha no fim de cada exemplo.
Pré-processa os dados gerando ficheiros que contenham apenas escalares.
Isto foi utilizado na cadeira de Machine Learning, para efectuar pré-processamento de dados para serem manipulados pelos algorítmos de aprendizagem.
Super Mario Shotgun C# XNA
Pong Move - Processing
Bubbles Processing - Java
OpenFaceMote Java
As principais funcionalidades desta aplicação são o reconhecimento do discurso do utilizador, que pode ser usado, por exemplo, para efectuar cliques;
o controlo do cursor do rato no sistema operativo, que pode ser efectuado de duas formas diferentes (Incremental e Precision), e ainda a obtenção de oito direcções básicas, relativas ao movimento do utilizador.
Isto é conseguido através da captura de som pelo microfone e pela detecção de faces na imagem, que é capturada pela câmara.
Temos o "Loading Screen"...
Então temos os seguintes modos :
Modo Learning, é o estado inicial da aplicação, neste estado o objectivo como o próprio nome indica, é de aprendizagem da localização do utilizador e da sua capacidade de movimento.
Estado Incremental
O movimento do rato e as direcções são obtidas quando o utilizador move a cabeça numa determinada direcção, ultrapassando a barreira definida pelas linhas de cor verde. Se o utilizador se mantiver no centro, então está parado.
Estado Precision
Neste estado a área definida anteriormente na fase de aprendizagem, que aqui é representada pelo rectângulo vermelho, consiste na área de movimento do utilizador. Ou seja, o centro da face é representado pelo ponto amarelo, e esse vai ser o nosso cursor.
Como qualquer aplicação, a OpenFaceMote não está isente de limitações, no entanto com algumas afinações e com mais tempo para trabalhar no projecto, seria possível obter algo pronto para o "mercado".
o controlo do cursor do rato no sistema operativo, que pode ser efectuado de duas formas diferentes (Incremental e Precision), e ainda a obtenção de oito direcções básicas, relativas ao movimento do utilizador.
Isto é conseguido através da captura de som pelo microfone e pela detecção de faces na imagem, que é capturada pela câmara.
Temos o "Loading Screen"...
Então temos os seguintes modos :
Modo Learning, é o estado inicial da aplicação, neste estado o objectivo como o próprio nome indica, é de aprendizagem da localização do utilizador e da sua capacidade de movimento.
Estado Incremental
O movimento do rato e as direcções são obtidas quando o utilizador move a cabeça numa determinada direcção, ultrapassando a barreira definida pelas linhas de cor verde. Se o utilizador se mantiver no centro, então está parado.
Estado Precision
Neste estado a área definida anteriormente na fase de aprendizagem, que aqui é representada pelo rectângulo vermelho, consiste na área de movimento do utilizador. Ou seja, o centro da face é representado pelo ponto amarelo, e esse vai ser o nosso cursor.
Como qualquer aplicação, a OpenFaceMote não está isente de limitações, no entanto com algumas afinações e com mais tempo para trabalhar no projecto, seria possível obter algo pronto para o "mercado".
movieSpot em ASP.NET e AJAX
No trabalho proposto temos um site que onde o tema será Filmes e poderemos:
• Efectuar pesquisas, por vários tópicos.
• Administração da página, da base de dados e de utilizadores.
• Visualização de vários dados sobre os filmes.
• Aplicação de comentários aos filmes.
O ecrã inicial, onde é possível obter informações se clicarmos na imagem, isto foi conseguido com a implementação de WebServices que efectuam um CallBack ao Servidor para obter os dados pretendidos pelo utilizador.
Foram implementadas várias animações e opções dinâmicas utilizando o Ajax, que concedeu um aspecto muito simpático ao site.
• Efectuar pesquisas, por vários tópicos.
• Administração da página, da base de dados e de utilizadores.
• Visualização de vários dados sobre os filmes.
• Aplicação de comentários aos filmes.
O ecrã inicial, onde é possível obter informações se clicarmos na imagem, isto foi conseguido com a implementação de WebServices que efectuam um CallBack ao Servidor para obter os dados pretendidos pelo utilizador.
Foram implementadas várias animações e opções dinâmicas utilizando o Ajax, que concedeu um aspecto muito simpático ao site.
Curriculum Vitae XML
O objectivo deste projecto foi desenvolver um hiper documento WEB que permita a visualização de currículos, onde os dados estão armazenados num ficheiro XML (eXtensible Markup Language).
O XML permite a visualização dos dados de diferentes formas, nomeadamente neste caso concreto, estamos a utilizar o XSL (Extensible Stylesheet Language Family) e o XML DOM (Document Object Model).
O XML permite a visualização dos dados de diferentes formas, nomeadamente neste caso concreto, estamos a utilizar o XSL (Extensible Stylesheet Language Family) e o XML DOM (Document Object Model).
Messenger em Java, Arquitectura CORBA
Esta aplicação possui várias funcionalidades tais como:
Conversa entre 2 Clientes Peer – to Peer.
Broadcast da Msg para todos os Clientes.
Implementação de sons e cores personalizadas.
Envio de Imagens entre 2 Clientes.
Implementação da tecla ENTER e do double-click.
Servidor envia lista de User´s para todos os Clientes.
Neste projecto foi interessante adquirir conhecimentos sobre a Arquitectura CORBA, e a forma como os objectos remotos comunicam entre si de forma transparente.
Podemos ver a informação obtida pelo servidor:
E na conversação, a parte da imagem deu um bocado de trabalho, mas acho que ficou com um aspecto interessante, quem sabe com mais algum tempo, faria concorrência ao MSN Live...
Conversa entre 2 Clientes Peer – to Peer.
Broadcast da Msg para todos os Clientes.
Implementação de sons e cores personalizadas.
Envio de Imagens entre 2 Clientes.
Implementação da tecla ENTER e do double-click.
Servidor envia lista de User´s para todos os Clientes.
Neste projecto foi interessante adquirir conhecimentos sobre a Arquitectura CORBA, e a forma como os objectos remotos comunicam entre si de forma transparente.
Podemos ver a informação obtida pelo servidor:
E na conversação, a parte da imagem deu um bocado de trabalho, mas acho que ficou com um aspecto interessante, quem sabe com mais algum tempo, faria concorrência ao MSN Live...
T9 Smart Writing
BiblioSoft
Site em HTML sobre a PSP
O Site resultante deste projecto tem como tema a consola portátil da Sony que foi lançada cá em Portugal em Setembro de 2005. Chama-se Playstation Portable ou PSP, no site é possível conheçer a história da consola, as suas especificações técnicas, capacidades multimédia, visualizar uma galeria com fotos da consola e dos seus acessórios. Também foi efectuado um pequeno apanhado de alguns dos seus melhores jogos.
Apenas vou por uma imagem a exemplificar.
Apenas vou por uma imagem a exemplificar.
Chrome e Menus Dinâmicos
O primeiro consiste num analisador cromático onde o utilizador pode escolher uma cor através dum interface com botões para posteriormente visualizar a cor e a sua respectiva complementar.
O segundo projecto é uma aplicação HTML que a partir de menus dinâmicos oferece interacção com o utilizador a vários níveis utilizando vários eventos do JavaScript.
Fractal Explorer
Subscrever:
Mensagens (Atom)