20.5 C
Sorocaba
terça-feira, novembro 19, 2024

Redes Neurais (2)

Autoria: Wanderley Gava

1- Introdução
Modelos de redes neurais artificiais ou simplesmente “Redes Neurais” tem vários nomes como modelos conectistas, modelo de processamento distribuído paralelamente e sistemas neuromórficos. Seja qualquer o nome, todos esses modelos procuram alcançar boas performances via interconecção de elementos computacionais simples. A estrutura da rede neural artificial é baseada no nosso sistema nervoso biológico. Os modelos de redes neurais tem grande potencial em áreas tais como reconhecimento de imagens onde muitas hipóteses são perseguidas em paralelo, onde grandes médias são necessárias e os sistemas correntes estão longe de igualar a performance humana. Apesar de desenvolver um programa de instruções sequências como no computador de Von Neumann, os modelos de redes neurais exploram muitas hipóteses simultaneamente usando massivamente redes paralelas compostas de muitos elementos conectados por ligações de variaveis pesos.
Elementos computacionais ou nós usados em modelo de redes neurais são não lineares, são tipicamente análogos e pode ser comparado aos modelos modernos de circuitos digitais. Os nós simples soma N pesos e passa o resultado por uma não linearidade.
Os modelos de redes neurais são especificados pela topologia de redes, nós característicos e regras de treinamento ou aprendizado. Essas regras especificam um peso inicial e indicam como esses pesos tem que se adaptar durante o uso para melhorar a performance. Ambos os procedimentos e regra de treinamento são temas de muitas pesquisas.

Uma Rede Neural Capaz de Reconhecer Impressões Digitais

O sentido da visão é frequentemente utilizado como instrumento de controle de acesso em situações onde, por exemplo, é verificado se a imagem de uma pessoa, vista por alguém que controla o acesso a algum lugar, confere com a imagem registrada em uma foto.
Uma situação menos frequente de uso do sentido da visão é aquela em que se verifica se uma impressão digital, colhida em algum lugar, confere com outra depositada anteriormente em um arquivo. A automação deste processo, com o uso do computador, pode tornar o reconhecimento de uma impressão digital um eficiente mecanismo de controle de acesso. Tal automação pode ser conseguida com o uso de Redes Neurais Artificiais.
Dada esta motivação , o objetivo deste projeto é avaliar os diversos tipos de neurônio, topologia de RNA e formas de treinamento , com vistas a porjetar e implementar uma RNA que seja capaz de verificar se uma dada impressão digital pertence a um grupo de impressões digitais previamente registrado através de aprendizado nesta RNA.

Neurônio Biológico Neurônio Artificial

2 – Perceptron

Perceptron uma definição simples:
Primeiro modelo de redes neurais. Modelo de duas camadas que utiliza elementos processadores cuja a função de transferência é uma threshold.
Perceptron é um programa que aprende conceitos, ele pode aprender a responder com verdadeiro (1) ou falso (0) pelas entradas que nós apresentamos a ele, “estudando” repetidamente os exemplos que lhe são apresentados.
O perceptron é uma rede neural simples cujos os pesos e inclinações podem ser treinados para produzir um vetor alvo que quando apresentamos tem que corresponder ao vetor de entrada. A técnica de treinamento usada é chamada de regra de aprendizado perceptron. O perceptron é gerado para interesses relacionados a habilidade de generalizar a partir de seus vetores de treinamento e trabalhar com conecções distribuidas randômicamente. Perceptrons são especialmente adequados para problemas simples de classificação de padrões.
A rede perceptron consiste num neurõnio único conectado por duas entradas através de dois tipos de pesos com uma inclinação adicional. O perceptron calcula a saída através da seguinte equação:
P * W + b > 0
onde P é o vetor de entrada apresentado a rede, W é o vetor de peso e b a inclinação.

Regra de Apredizado
O perceptron é treinado para responder a cada vetor de entrada com um alvo correspondente de saída com 0 ou 1. A regra de aprendizado tem sido provar que existe uma solução em tempo finito se a solução existir.

A regra de aprendizado pode ser resumida nas duas seguintes equações:
Para todo i:

W(i) = W(i) + [ T – A ] + P(i)
b = b + [ T – A ]
onde W é o vetor de peso, P é o vetor de entrada apresentado a rede, T é o resultado correto que o neurônio tem que apresentar, A é a saída atual do neurônio, e b a inclinação.

Treinamento
Vetores de um grupo de treinamento são apresentados para a rede um após o outro. Se a saída da rede está correta, nenhuma mudança é feita. Por outro lado, os pesos e as inclinações são atualizados usando as regras de aprendizado do perceptron. Uma passagem inteira de treinamento de entrada de um vetor é chamado época. Quando uma passagem completa é feita sem erro, o treinamento está completo. Nesse momento qualquer vetor de entrada pode ser apresentado para rede e a rede vai responder com o vetor de saída correto. Se um vetor P que não estava no treinamento é apresentado para rede, a rede vai tender a exibir uma generalização que vai responder por uma saída similar ao vetor alvo, para o vetor de entrada mais próximo ao vetor P.

Limitações
As redes perceptron tem inúmeras limitações. Primeiro, os valores de saída do perceptron podem assumir somente dois valores (Verdadeiro ou Falso). Segundo, perceptrons somente podem classificar grupos de vetores linearmente separados. Se uma linha reta ou plano são usados para separar os vetores de entrada em suas corretas classes, o vetor de entrada é linearmente separável e o perceptron achará a solução. Se os vetores não são linearmente separados o perceptron nunca chegará a um ponto aonde todos os vetores são classificados propriamente.
O exemplo mais famoso da inabilidade do perceptron para resolver problemas de vetores lineares não separáveis é o problema do OR exclusivo.
Implementação
Implementa-se um neurônio perceptron simples com duas entradas. A entrada para o neurônio pode ser tirada de uma interface gráfica, através de clicks sucessivos em pontos da sua borda. Um click com o botão esquerdo do mouse gera ´+´ que significa o ponto onde o perceptron deve responder se verdadeiro. Um click no botão direito do mouse gera ´-´ que significa o ponto onde o perceptron deve responder se falso. Quando um número suficiente de pontos for introduzido, o usuário clica no “start”, que irá introduzir esses pontos como entradas para o perceptron, tendo ele aprendido as entradas ele vai mostrar uma linha de divisão do plano que corresponde as classes.

2.1 – Perceptron de Camada Simples

O perceptron de camada simples e uma de três redes que pode ser usada com entradas binárias e valores contínuos. Esta rede simples gerou muito interesse quando foi desenvolvida porque tinha capacidade de reconhecer simples padrões. Um perceptron que decide quando uma entrada pertence a uma das classes ( A ou B ) . O nó simples computa uma amostra pesada da entrada , subtrai a thershold e passa o resultado através de limite não-linear como uma entrada Y que pode ser -1 ou +1. A regra de decisão é para corresponder a classe A se o resultado for +1 e classe B se o resulatdo for -1. Uma técnica usual para analisar o comportamento de redes como perceptron é plotar um mapa com as regiões de decisão criadas num espaço multidimensional abrangido pela variaveis de entrada. Essas regiões de decisão especificam quais valores de resultados estão na classe A e quais estão na classe B . O perceptron forma duas regiões de decisão separadas por um hyperplano.Quando as duas regiões são separadas por uma linha reta as entradas que estão acima do limite pertencem a classe A e as entradas abaixo pertencem a classe B. Como podemos ver o limite depende dos pesos e do thershold.
Pesos e thershold no perceptron podem ser corrigidos e atualizados usando um nº diferente de algoritmos. O procedimento original de conversão dos pesos foi desenvolvido por Rosenbaltt . Primeiro passo inicializar pesos e thershold randômicamente com zero. Segundo passo apresentar nova entrada que vai se somar a saída desejada . Terceiro passo calcular saída atual . Quarto passo atualizar peso. Essa atualização é feita através da formula :

Wi( t + 1 ) = Wi ( t ) + n[( d ( t ) – Y ( t ) ] x1 ( t ) ,

0<= i <= N-1
d ( t ) = +1 se entrada for da classe A e -1 se entrada for da classe B.

Nesta equação n é uma fração menor que 1 e d (t ) é a saída desejada para a correta entrada. Note que os pesos são inalterados se a rede tomar a decisão correta.

2.2 – Perceptron de Várias Camadas

Perceptrons de várias camadas são redes feed-foward com uma ou mais camadas entre os nós de entrada e saída . Essas camadas adicionais contém unidades escondidas ou nós estão diretamente conectados aos nós de entrada e saída. Perceptrons de várias camadas
sobrepujam muitas limitações do perceptron de camada simples , mas não foram usados no passado porque algoritmos efetivos de treinamento não eram disponíveis. Isto foi recentemente mudado com o desenvolvimento de novos algoritmos de treinamento. Entretanto não se pode provar que estes algoritmos convergem como perceptron de camada simples , eles tem sido provado serem bem sucedidos para muitos problemas.

Rosenblatt provou que se as entradas de duas classes forem separadas ( então elas ocuparam partes separadas num plano ) , então a procedure de convergência do perceptron converge e posiciona a decisão entre essas duas classes. Esta decisão separa todas as amostras das classes A e B . Um problema com a procedure de convergência do perceptron é que a decisão dos limites pode oscilar continuamente quando as entradas não são separáveis e as distribuições se sobrepõe. Uma modificação na convergência do perceptron
pode formar a solução Mínima Média Correta ( LMS ) nesse caso. Essa solução minimiza média correta de erro entre a saída desejada de uma rede neural perceptron e saída atual. O algoritmo que forma a solução é chamado de Widrow-Hoff ou algoritmo LMS.
O algoritmo LMS é identico a procedure de convergência do perceptron exceto que a limitação não linear é feita linear ou substituída por uma thershold-logica não linear. Pesos são tambem corrigidos em cada etapa por uma quantiadade que depende da diferença entre a entrada desejada e a entrada atual.

3 – Backpropagation

Backpropagation uma definição simples:
Modelo de redes neurais mais utilizado atualmente. Similar ao Perceptron, porém, sem o limite de duas camadas. Também como o sinônimo do algoritmo Back-Error Propagation.
O algoritmo de Backpropagation é uma generalização do algoritmo de LMS. O treinamento do algoritmo de backpropagation é um algoritmo de integração gradativa desenvolvido para minimizar o erro do LMS entre a saída atual de um perceptron de multi camadas feed-forward e a saída desejada. Isto requer não linearidades diferenciadas e contínuas. O algoritmo de treinamento do backpropagation pode ser descrito em cinco passos:
Primeiro passo: a rede é treinada por uma inicialização dos pesos e entradas através de um processo randômico.
Segundo passo: apresentação das entradas e da saída desejada. Se a rede for usada como um classificador então todas as saídas desejadas são tipicamentes matidas iguais a zero, exceto as correspondentes a classe pela qual a entrada foi formada. A saída desejada é igual a 1. A entrada pode variar conforme as vezes que treinamos a rede até que os pesos se estabilizem.
Terceiro passo: calculo das saídas atuais.
Quarto passo: adaptação dos pesos. Usando um algoritmo recursivo começando dos nós de saída e voltando para a primeira camada escondida. O ajuste é feito por:
wij (t+1) = wij (t) + njxi

onde Wij é o peso do nó escondido i ou de uma entrada de nó i num tempo t.
Xi é também uma saída de nó i ou uma saída.
n é o termo de lucro.
j é o termo de erro para o nó j.

Se o nó j for um nó de saída, então:
j = yj (1-yj)(dj -yj)

onde dj é a saída desejada do nó j.
yj é a saída atual.

Se j for um nó interno escondido, então:
j = xi (1-xi) kkwjk

onde k é qualquer nó acima da camada de nó j. Os nós internos thersholbs são adaptados de maneira similar assumindo-se que eles são pesos conectivos em links de valores de entradas constantes. Convergência as vezes é mais rápida se um termo momentaneo é adicionado e os pesos são alterados da seguinte forma:
wij (t+1) = wij (t) + njxi +  (wij (t)- wij(t-1))

onde 0<  <1. Quinto passo: repetir começando do segundo passo. Sobre Propagator Propagator é um programa desenvolvido para facilitar a implementação de redes neurais. Propagator implementa o algoritmo de backpropagation, o mais usado algoritmo de redes neurais, numa elegante, maneira strainghforward.
A despeito da aplicação da tecnologia de redes neurais, a maiorio dos programas de redes neurais ainda são difíceis de se aprender e se usar. Propagator usa uma interface gráfica intuitiva que simplifica o tempo e o esforço para se aprender o programa, implementar e treinar a rede neural.
Você não precisa ser um programador nem um especialista em redes neurais para usar o Propagator eficientemente.

Algumas Aplicações Backpropagation

TEKTRAN (Agricultural Research Service)

Classificação de trigo duro vermelho por FeedFoward BackPropagation de Redes Neurais.

Sumário Interpretativo
Existe uma necessidade rápida nos Estados Unidos de Desenvolver, técnicas objetivos para classificar classes de trigo. Entre todas as classes de trigo, o vermelho duro da primavera e vermelho duro de inverno são os mais comuns na fabricação de pão e de colheita nos Estados Unidos. Essas duas classes são morfologicamente similares e difíceis de separar por inspeção visual. Nós temos feito pesquisas para desenvolver técnicas para diferenciar essas duas classes por uma difusão de infra-vermelho refletida espectroscópicamente. Usando uma Análise de um Componente Principal com um classificador de distância mahalanobis, nós atingimos uma exatidão de 95%; Entretanto, quando classificação uma colheita nova não inclusiva na calibração este modelo indicou uma exatidão de 92%. Uma análise avançada dos dados mostra que com um modelo de redes neurais, a exatidão da classificação, calibração e validação foram muito melhores (mais ou menos 97%). Também, o modelo preve as classes das novas amostras de colheitas com uma exatidão superior a 95%.
Também foi encontrado que a informação espectral do trigo da terra numa determinada região (2142 – 2472 mm) fornece informação adequada para a classificação da ocorrência do trigo duro de primavera e para o trigo duro de inverno. Essas descobertas são importantes o serviço federal de inspeção de grãos, químicas de cereais, e plantadores de trigo que estão interessados em desenvolver um método de classificação de ocorrência para o trigo duro de primavera e o trigo duro de inverno.

Outros trabalhos relacionados

Vírus – Informações Importantes

Autoria: Ana Paula Ferraz Nascimento O que é um vírus? Um vírus nada mais é do que um programa que tem um único objetivo: causar algum...

O que é Sistema Operacional?

Autoria: Marlon 1. O QUE É UM SISTEMA OPERACIONAL? Um sistema operacional é uma coleção de programas para gerenciar as funções do processador, o input, o...

SEGURANÇA WIMAX

Segurança WIMAX Newton Paiva 2009 RESUMO Este trabalho apresenta uma análise das principais técnicas de segurança na rede banda larga sem fio WIMAX, evidenciando seus pontos fortes e...

VOIP EM REDES SEM FIO, FUNCIONA?

Mobilidade, acesso sem fio e convergência são as palavras de ordem no atual mercado das redes de comunicação. Trata-se de uma tendência irreversível, que...