Minha Rede Neural

Há um tempo atrás comecei fazer mestrado, era em uma área um pouco diferente da  minha formação que é Ciências da Computação, mas como gosto de ficar estudando área de I.A passei um tempo estudando redes neurais. Em meus estudos encontrei um neurônio chamado Perceptron, foi um dos primeiros a ser criado, o Percepetron consegue separar dados de maneira linear, ou seja ele faz divisão de dois componentes frio e quente, azul e vermelho ele traça uma linha matemática e divide os valores. Algo como na imagem abaixo.

Resultado de imagem para perceptron linear

Ele não consegue separar valores não lineares digo, fazer algo como na imagem abaixo.

Daí eu achei uma implementação do Perceptron em java, e fique imaginando se alguma alteração nele, eu não conseguiria fazer ele de linear para não - linear, foi aí que encontrei uma forma, e fiz um novo neurônio baseado no Percepetron, este neurônio consegue aprender qualquer coisa, qualquer padrão, ficou bem mais legal do que eu imaginei, dai fiz algumas aplicações por agora vou postar um sistema que treina um grupo de imagens e aprende a diferenciar uma imagem da outra, por exemplo uma imagem que contém X de uma que contém O abaixo uma imagem do programa.


O funcionamento é simples, primeiro precisa digitar um nome para as duas sessões de treinamento, por exemplo se eu quero separar imagens X de O, eu digito X  na parte com o nome das imagens para treino sessão 1 e O na sessão 2.
Dai seleciona duas pastas uma para cada sessão de treinamento onde devera conter as imagens que serão treinadas,  feito isso, digitar um nome para rede neural e clicar em ADICIONAR/TREINAR. 

Esperar um pouco, após o treino estar completo, já pode usar a rede ara analisar imagens, para isso, ali em Carregar uma Imagem, carrega -se uma imagem para passar pela rede, dai a saída, que contém o resultado da detecção da rede. Este projeto utiliza 25 neurônios que eu mesmo "inventei", basicamente ela pode aprender todas as variações de até 25 bits, porque cada entrada, e separada em bit, nos cálculos que fiz os valores de entrada com base nos valores de treino podem variar um pouco, porém é garantido que o treino funcione na relação (Entrada == Numero de Neurônios).

Como tem 25 neurônios eu diria que ele trabalha bem até com 25 imagens, claro que dá pra aumentar isso, porém como é um projeto digamos caseiro que estou disponibilizando acho que 25 é o suficiente, se alguém precisar de mais que isso, ou algum projeto profissional pode entrar em contato comigo no email: juniorsudrv@gmail.com.

Abaixo o link pra download, Obs: Tem que ter o Java no pc.



Comentários

Postagens mais visitadas