Sie sind auf Seite 1von 10

Desenvolvimento de Redes Neurais Artificiais usando

Adaline de camada única para reconhecimento de


padrões alfanuméricos

Bruno Queiroz Pinto1, Keiji Yamanaka2


bruno.queiroz@iftm.edu.br, keiji@ufu.br
1
Instituto Federal do Triângulo Mineiro
2
Universidade Federal de Uberlândia

Resumo – A identificação de padrões é later Adaptive Linear Element) with the Delta
utilizada para resolver problemas diversos, rule as a method of supervised training.
deste o reconhecimento da face de uma pessoa
até a digitalização de textos manuscritos. Redes Keywords – Artificial Neural Networks,
neurais artificiais (RNA) é um método utilizado Adaline, Delta Rule, Recognition of Patterns.
para solucionar tais problemas. Tal método
simula o funcionamento do cérebro humano,
baseando-se em suas estruturas para criar 1. Introdução
modelos computacionais capazes de aprender
O cérebro humano apresenta uma
através da repetição de sua execução,
adequando repetidamente o seu estado e grande capacidade de reconhecer padrões,
comportamento. Este trabalho propõe uma permitindo ao ser humano resolver problemas
aplicação para o reconhecimento de caracteres complexos naturalmente. Deste o nascimento, o
alfanuméricos, a sua implementação é baseada
cérebro humano está em constante evolução,
na utilização da técnica de redes neurais
armazenando uma quantidade exorbitante de
Adaline usando como método de treinamento
supervisionado a regra Delta. informações. Tais informações são comparadas
e combinadas para a identificação de padrões.
Palavras-Chave – Redes Neurais Artificiais, Tal característica permite ao ser humano ser
Adaline, Regra Delta, reconhecimento de
fortemente adaptativo, capacitando-o a resolver
padrões.
problemas novos de um modo bem eficiente.

Abstract - Recognition of patterns is used to É muito comum que uma pessoa


solve various problems, for example: face associe eventos, coisas, outras pessoas e objetos
identification, object recognition and character diversos quando se defronta com uma nova
recognition. Artificial neural networks are a situação. Neste momento, o seu cérebro
method for solutions of such problems. This
estabelece diversos padrões, sobre aquela
method simulates the human brain, based on
their structures to create computer models situação, vinculando com acontecimentos já
capable of learning by repetition of its vivenciados.
execution, repeatedly adjusting their status and Seres humanos realizam estes
behavior. This paper proposes an application of processos com muita facilidade. Entretanto,
neural networks, capable of identifying
programar computadores para realizar tais
alphanumeric characters, this project uses the
technique Adaline (Adaptive Linear Neuron or atividades não é uma tarefa trivial. Apesar de
todo avanço na área da computação, ainda não seu funcionamento permite processar
existe nenhuma tecnologia de inteligência informações de um modo muito mais eficiente e
artificial capaz de igualar a capacidade de ágil, tal tarefa é realizada pelos neurônios que
reconhecimento do cérebro humano [2,4]. são os elementos principais de sua estrutura.
A identificação automática de padrões Uma rede neural artificial é uma
(objetos, voz, assinaturas, imagens, números, maquina projetada a partir da modelagem
etc) sempre foi considerada uma tarefa difícil matemática do funcionamento do cérebro na
para ser solucionada computacionalmente. solução de um problema especifico. A rede é
Entretanto, diversos avanços na área da normalmente implementada utilizando-se
computação permitiram facilitar este trabalho. componentes eletrônicos ou é simulada por
Tecnologias baseadas em abordagem estatística, programação em um computador digital [1, 4].
abordagem sintática, abordagem neuronal e A rede neural artificial é uma estrutura
abordagem difusa são capazes de resolver este distribuída paralelamente na forma de um grafo
problema [3, 7]. direcionado, no qual os nós são unidades
A abordagem neuronal, mais conhecida básicas de processamento, similares aos
como Redes Neurais Artificiais, tem sido muito neurônios de um cérebro humano. As arestas
utilizada, sendo um dos métodos de Inteligência são as conexões que ligam e transmitem
Artificial que mais evoluíram recentemente. informações entre esses nós [4, 7].
Neste trabalho, a rede neural desenvolvida será Tais neurônios artificiais podem ser
baseada na técnica Adaline de camada única representados pelo modelo não linear
com a treinamento supervisionado baseado na apresentado na figura 1, os seus componentes
regra Delta. Esta aplicação terá como finalidade são os seguintes:
Bias
o reconhecimento de caracteres alfanuméricos B Função
k
X1 W Ativaçã
baseado na entrada vetorizada do mesmo. 1
oF(.
Sinais V Y
k
X2 W k
)
de :
2

Junçã
2. Rede Neural Artificial Entrada : o
aditiv
X a
W
É uma tecnologia multidisciplinar, m km

fundamentada em áreas diversas, tais como: Fig. 1: Modelo não linear de um neurônio
neurociência, matemática, estatística, física, Artificial (fonte = [4])

ciência da computação e engenharia. Suas


• Os dendritos são representados por
aplicações são encontradas em diversas áreas:
entradas (xn), que fornece os valores
reconhecimento de padrões, percepção do
iniciais ou recebem os estímulos
ambiente, análise de séries temporais,
transmitidos de outros neurônios;
processamento de sinais e controle, entre outras
[4].
• O elemento principal do neurônio é o
somador, que tem a função de somar
O desenvolvimento desta área se baseia
todos os sinais de entrada, produzindo
no reconhecimento que o cérebro humano
o resultado (vk).
processa informações de uma forma totalmente
diferente de um computador convencional. O
m foi desenvolvida pelo professor Bernard
vk =∑wkj xj +bk Widrow e por Ted Hoff na universidade de
j=1
Stanford em 1960. Ela introduziu a
• A função de ativação (f(.)) é
possibilidade de ajustar os pesos de acordo com
responsável em restringir a amplitude
o resultado produzido pelo neurônio.
de saída de um neurônio. A saída (yk)
Anteriormente as técnicas, como Perceptron,
similar ao axônio, que possui como
ajustavam os pesos sem considerar o valor
característica fornecer a resposta ao
produzido pela saída do neurônio, esta saída
sistema ou transmitir os estímulos para
apenas indicava a necessidade ou não deste
outros neurônios.
ajuste. A simplicidade deste modelo acabou
Neste modelo é possível identificar
restringindo-o a comunidade acadêmica,
outro elemento, o Bias Bk, que tem o efeito de entretanto se mostrou fundamental, pois definiu
ajustar a entrada líquida da função de ativação. um dos princípios de treinamentos mais
As principais funções de ativações propostas poderosos, conhecido como Regra Delta, que
são: Função limiar, função limiar por partes e posteriormente foi utilizada para elaboração de
função sigmóide [4]. Este modelo de neurônio é redes neurais mais avançadas [5, 7].
conhecido como McCulloch-Pitts. A grande inovação desta técnica foi à
Quando a função selecionada é a adoção da regra delta para realizar o
função limiar é produzido saídas com valores 1 treinamento supervisionado. Ela permite a
ou 0, dependendo do resultado da função de generalização do modelo perceptron para
ativação: entradas e saídas continuas. O seu principal é

 ajustar os pesos de modo a minimizar a

 1 s e v ≥ 0 diferença entre a saída desejada e a saída obtida


f (v ) =  pela rede, considerando todos os padrões de
0 s e v< 0 entrada. Esta diferença entre as saídas é
 nomeada como Erro Quadratico, representada
A técnica Perceptron introduziu o
1 p
pela regra: ε = (t − y p ) 2 .
p
conceito de aprendizado supervisionado, onde
2
o treinamento da rede é feito diversas vezes,
Onde:
permitindo que a rede aprender a identificar o
• Ep: Erro Quadrático para o
padrão. Para isto utiliza-se uma taxa de
padrão de entrada P.
aprendizagem (h) para ajustar os pesos
• tp: Saída esperada.
existentes nas conexões dos neurônios. O valor
de h deve estar entre 0 e 1 e define a capacidade • yp: Saída gerada pela rede

de abstração da rede [3]. neural.


A regra delta propõe ajustar os pesos

3. Adaline Wki(P) proporcional ao negativo da Derivada do


erro em relação a cada padrão de entrada P para
Adaline (Adaptive Linear Neuron) é o neurônio K. De acordo com a regra delta, o
uma rede neural de camada única. Esta técnica
ajuste Δwi(P) é definido por, tecnologia de redes neurais artificiais Adaline
que tem por objetivo reconhecer padrões
∆ wki ( P) = h * δ k ( P) * xi ( P) , onde: alfanuméricos (números, caracteres alfabéticos
maiúsculos e minúsculos).
• ∆ w(P): - valor de ajuste a ser
Foi utilizado o ambiente de
acrescido ao peso wki baseado nas
desenvolvimento NetBeans 6.9 para o
entradas do padrão P;
desenvolvimento da solução em Java.
• h - taxa de aprendizado;
Nesta nova versão foram desenvolvidos
• δk (P ) - valor do erro identificado dois módulos:
para o neurônio K baseado nas entradas • ModRN: que contém as classes
do padrão P, dado pela formula: projetadas para programar a rede

P neural;
t P k − yk , onde t e y são,
• ModGUI: contém as interfaces
respectivamente, a saída esperada e a gráficas necessárias para propiciar a
saída encontrada do neurônio P; interação com o usuário do sistema.
• xi (n) - valor do estímulo i presente no Este módulo utiliza-se do módulo
padrão P. ModRN para resolver os problemas.

Esta técnica continua o treinamento até 4.1 Módulo ModRN


a rede ter uma taxa de erro adequada ou uma
quantidade de ciclos de aprendizado definido. Este módulo foi proposto com o intuito

Esta taxa de erros é conhecida como Erro de facilitar o reaproveitamento de código, em

quadrático total que é dado pela formula: futuros desenvolvimentos. A figura 3 apresenta
a sua estrutura, que é composto por 8 classes,
Etotal = ∑ E , onde :
E = 12 (t − y )
P P P 2
P
. neste trabalho são utilizado:
P
• Entrada: responsável em representar as
diversas entradas de um neurônio.
• Sinapse: que representa as conexões
4. Desenvolvimento da Aplicação
entre uma entrada e um neurônio, bem
como o peso da mesma. Contém os
O desenvolvimento desta aplicação utiliza de
algoritmos responsáveis em atualizar
técnicas de desenvolvimento interativo, no qual
os pesos.
a cada nova versão da aplicação novas
• Regra Delta: Implementa a função
funcionalidades são inseridas. Esta nova versão
delta.
entende as funcionalidades desenvolvidas
• Neuronio: Esta classe se relaciona com
anteriormente, que implementavam uma solução
n objetos da classe Sinapse e com um
do problema de reconhecimento de padrões
objeto da classe FunçãoLimiar.
numéricos, utilizando a técnica Perceptron[6].
Através desta relação, ela gerencia o
Esta nova versão foi feita utilizando a
linguagem de programação Java e utilizou a
processo de Ativação e Treinamento de Este módulo propicia a interface
um neurônio da rede. gráfica necessária para a utilização da aplicação.

RedeNeural: É
a classe
principal,
contém
toda a
lista de
neurônios
existentes,
bem como
o conjunto
de
entradas e
saídas
Fig. 4.: Interface Principal da aplicação.
fornecidas. Implementa
Ele é composto por uma classe principal que
os algoritmos responsáveis em gerir
propicia um ambiente de desktop. Neste
todo o treinamento e execução da rede.
ambiente é possível executar duas
Estes algoritmos utilizam de objetos da
funcionalidades:
classe Neuronio para realizar tal
• Atividade 3: reconhecimento de
função.
padrões numéricos utilizando a técnica
• RedeNeuralAdaline: Esta classe
Perceptron.
especializa a classe RedeNeural,
• Atividade 4: reconhecimento de
capacitando à resolver problemas
padrões alfanuméricos, nesta
utilizando a regra delta com estratégia
funcionalidade foi disponibilizado a
de aprendizado.
oportunidade de selecionar a técnica de
resolução de problema: Perceptron ou
Adaline.

O objetivo deste trabalho foi


desenvolver a identificação de caracteres
alfanuméricos utilizando a técnica Adaline, foi
definido dois padrões de entradas diferentes. O
primeiro propicia a identificação de caracteres
alfanuméricos com vetorização máxima de
Figura 3: Diagrama de Classes do ModRN. 10x10. E a versão mais completa propicia uma
vetorização máxima de 35x35, gerando uma
4.3 Módulo ModGUI matriz contendo 1225 elementos.
A versão permite uma melhor • Aba Gráficos: Apresenta gráficos que
interatividade, capacitando ao usuário à representam o comportamento da rede
manipulação dos números fornecidos pelo durante o seu treinamento. Mostram O
simples movimento do mouse. erro total identificado ou os erros de
A figura 4 apresenta a interface da cada neurônio existente.
aplicação, é possível destacar os seguintes • Aba Config: Neste painel o usuário
elementos nesta interface: poderá entrar com informações sobre a
taxa de aprendizado, sobre a
• Painel de Entrada: Permite ao usuário quantidade ciclos e taxa máxima de
selecionar em uma lista os caracteres
rede. Também é disponibilizada uma
alfanuméricos com formato padrão.
funcionalidade reinicialização dos
Quando um número é selecionado a
dados.
sua representação em um vetor é
Os dados de entrada padrões se
apresentada no quadro ao lado.
encontram em arquivos de texto e são
• Resultado da Execução: permite ao carregados quando preciso.
usuário visualizar o resultado da São disponibilizado 6 botões ao
execução da rede e também outras usuário, dentre eles é possível destacar os
informações de configuração que botões (treinar, aprender e executar).
acontecem durante o treinamento. O botão treinar é responsável em
• Formato da vetorização: Neste fazer o treinamento inicial da rede, utilizando
painel, o usuário pode selecionar o dados armazenados em uma classe como
formato desejado para a sua entrada e executando enquanto a rede não
vetorização. Caso seja selecionado o aprender ou até alcançar a quantidade de
formato 10x10, será gerado uma tentativas definidas pelo usuário. O treinamento
matriz de 10 linhas e 10 colunas, seleciona uma entrada diferente dependendo da
totalizando 100 entradas para a rede. configuração selecionada (4x5, 10x10 ou
Já o formato 35x35, gera uma entrada 35x35).
de 1225 elementos, permitindo a Já o botão aprender é responsável em
representação de números parecidos capturar no painel do número a matriz
com aqueles redigidos manualmente. correspondente ao número fornecido pelo
• Número: O painel no qual o número usuário, com este novo padrão, a entrada é
que está sendo tratado é representado, atualizada e a rede novamente treinada. Quando
ele é configurado dinamicamente esta função é ativada, a aplicação pergunta ao
segundo a configuração fornecida. O usuário o número correspondente (0 a 9).
usuário pode interagir no mesmo Por fim, o botão executar permite
através do movimento do mouse. testar a rede, verificando se a mesma é capaz de
Assim o usuário tem uma opção identificar o número presente no painel Número.
eficiente para criar novos padrões dos
números para testar a rede.
5.3 Verificações dos padrões Após este treinamento, foi realizado
testes, que geraram os seguintes resultados:
Numéricos.
Nos dois primeiros experimentos serão • O padrão 2, A e z foram reconhecidos e

mostrados os seguintes pontos: geraram os seguintes resultados na

Fig. 5: Quantidade de Erros por ciclo.


• erros identificados durante o execução da rede:
treinamento da rede; o 2 : 1.001697300186168

• quantidade de ciclos o A : 0.9982935438124816


necessários para o treinamento. o z : 1.0012707027417116
• o resultado do reconhecimento • O padrão A com mudança de 19
da rede; entradas, apresentados na figura 6,
também reconheceu o caractere A e
Nos dois experimentos serão utilizados apresentou resultado da rede igual a
configuração 10x10, que permite vetorizar o 0.047998781599246546. Ou seja, a
número em 10 linhas por 10 colunas. rede conseguiu generalizar bastante a
Em todos os experimentos foram resposta.
modificados os padrões de entrada.

Experimento 01:
Neste experimento a taxa de
aprendizagem foi de 0.01, a taxa de erros
máximo foi de 1 e a quantidade máxima de
ciclos foi de 1000. O treinamento gastou 78
Fig. 6: Caractere A modificado para teste.
ciclos para conseguir ensinar a rede,
consumindo 0.73 segundos. A última taxa de • Ao modificar as entradas para

erros identificada foi de 0.9820. O gráfico aproximar do número F, gerando a

apresentado na figura 5 demonstra a evolução imagem apresentada na figura 7, a rede

da rede quando a quantidade de erros ainda reconheceu como padrão o

apresentada. caractere A;
novamente treinada inserindo este novo padrão.
Este novo treinamento produz os dados: 80
ciclos, 0.92 segundos e último erro igual à
0.9718051125482026.
O padrão apresentado pela figura 9 foi
Fig. 7: Caractere A modificado, aproximando-se novamente apresentado e a rede identificou,
do caractere F. retornando o resultado 0.9996902827201839.
• Estas modificações geraram as saídas: Foram alterado 9 entradas, gerando a
o A : 0.07501626406083356 imagem apresentada na figura 10. A rede
o F : 0.044344784303051915 identificou o caractere m, com resultado igual a

• Observa-se uma aproximação dos 0.07272775352050626.

resultados dos dois caracteres.


Alterando mais duas entradas, como
mostrado na figura 8, a rede identifica
o caractere F, através dos resultados:
o F : 0.2336049572164998
o A : -0.03458435293062081

Fig. 10: Caractere m modificado.


Experimento 3:
Neste experimento, foi fornecido 6
novos padrões para analise e treinamento, os
dois primeiros necessitaram de novos
treinamentos, entretanto os últimos foram
Fig. 8: Caractere A modificado, no qual a rede
reconhecidos pela rede, esta capacidade foi
identificou o caractere F.
possível pela inserção dos dois novos padrões
para a letra. Resultado da execução de cada
Experimento 02:
novo padrão:
Neste experimento será fornecida uma
Primeira Entrada:
nova entrada que corresponde ao padrão de
• Treinamento
entrada m, apresentado pela figura 9.
• m: 80 ciclos com erro de
0.9715086163712909
Segunda Entrada:
• Treinamento
• m: 82 ciclos com erro de
0.9928586677416005
Fig. 9: Nova entrada para o caractere m. Terceira Entrada:
A rede não consegue identificar o novo • Identificou
padrão para o caractere m. Então a rede é • Resultado = 0.09433473184579745
Quarta Entrada: avançadas, como Kononen, e também
• Identificou paralelizar o processamento para cada neurônio

• Resultado = 0.23633046177014916 e também otimizar a entrada dos dados,

Quinta Entrada: movendo-a para um local padrão.

• Identificou
• Resultado = 0.3630745227473232
Sexta Entrada:
• Identificou
• Resultado = 0.08310224556675395

5. Considerações finais 6. Referências


O aplicativo desenvolvido facilitou a
identificação de um padrão de caracteres [1] CASTRO, A. A. M; Prado P. P. L.;
alfanuméricos, algo que é difícil na computação Algoritmos para reconhecimento de padrões,
tradicional. A rede neural Adaline desenvolvida Revista de Ciência Exatas, 5ed, volume: 8
apresentou uma grande capacidade de abstração, p.p:129-145; 2002
permitindo identificar caracteres com padrões
[2] CORREA, Wilson R., PORTUGAL,
de entrada parecidos. Nos casos no qual a rede
Marcelo S. Previsão de Séries de Tempo na
não identificou uma entrada, foi realizado um
presença de mudança estrutural: redes neurais
novo treinamento para capacitar a rede. Após
artificiais e modelos estruturais. In XVIII
este novo ciclo de treinamento a aplicação
International Symposium on Forecasting.
conseguiu identificar os números fornecidos.
Edinburgh – Escócia, 1997.
Nos experimentos apresentados, considerando
caracteres alfanuméricos vetorizados em grades [3] FAUSETT, Laurence. Fundamentals of
de 10x10, há um grande conjunto de entradas Neural Network – Architecturals, algorithms
possíveis para cada caractere, quando mais anda Applications. Prentice-Hall, Englewood
entradas forem inseridas para o treinamento, Cliffs, New Jersey, 461 p, 1994.
mais eficiente a rede será, entretanto o
treinamento será computacionalmente mais [4] HAYKIN, Simon. Redes neurais: princípios
custoso. e prática. Tradução de Paulo Martins Engel. 2ª
Nesta aplicação foi desenvolvido o ed. Porto Alegre: Bookman, 2001.
procedimento de re-treinamento da rede,
[5] KOVACS, Z. Redes Neurais Artificiais:
permitindo ao usuário, treinar a rede quando
Fundamentos e aplicações. 4 ª ed. São Paulo:
perceber que ela identificou um número errado
Livraria da Física, 2002.
ou não identificou o mesmo. Entretanto, mesmo
sem a aplicação deste re-treinamento, a rede
[6] PINTO, Bruno. Q.; YAMANAKA, Keiji.
apresentou boa capacidade para identificar
Desenvolvimento de Redes Neurais Artificiais
padrões. Como trabalho futuro é proposto
usando Perceptron de camada única para
adequação da rede para técnicas mais
reconhecimento de padrões numéricos.
Apresentado na disciplina de Redes Neurais,
Departamento de Engenharia Elétrica, UFU,
Uberlândia, 2011.

[7] RAITTZ, Roberto Tadeu. Free associative


neurons – fan uma abordagem para
reconhecimento de padrões. Dissertação de
Mestrado, Universidade Federal de Santa
Catarina, Departamento de Engenharia de
Produção, 1997.

Das könnte Ihnen auch gefallen