Você está na página 1de 22

R Re ed de es s N Ne eu ur ra ai is s A Ar rt ti if fi ic ci ia ai is s M Mu ul lt ti ic ca am ma ad da as s e e o o

A Al lg go or ri it tm mo o B Ba ac ck kp pr ro op pa ag ga at ti io on n
Srgio Luiz Tonsig
1
2 semestre de 2000

1
Analista de Sistemas, Especialista em Sistemas de Informao pela UFSCar e Mestrando em Gerncia
de Sistemas de Informao pela PUC Camp
2
Sumrio
1. INTRODUO................................................................................................................................ 3
2. UMA BREVE REVISO................................................................................................................. 4
2.1. O MODELO DO NEURNIO ARTIFICIAL ......................................................................................... 4
2.2. O PERCEPTRON - CONCEITO......................................................................................................... 5
2.3. O PERCEPTRON NA PRTICA ..................................................................................................... 6
2.3.1. Regra de Aprendizado Perceptron ....................................................................................... 7
2.3.2. Treinamento ........................................................................................................................ 7
3. MODELO MATEMTICO PERCEPTRON............................................................................... 8
4. PERCEPTRON MULTICAMADA................................................................................................ 12
5. ALGORITMO BACKPROPAGATI ON.......................................................................................... 14
5.1. O FUNCIONAMENTO DO BACKPROPAGATION................................................................................ 14
5.2. LIMITAES DO BACKPROPAGATION............................................................................................ 15
6.1. SISTEMA DE IDENTIFICAO AUTOMTICA DE VECULOS............................................................ 17
6.1.1. Descrio do Sistema......................................................................................................... 18
6.1.2. Algoritmo de localizao da placa ..................................................................................... 18
6.1.3. Segmentao e redimensionamento dos caracteres............................................................. 19
6.1.4. Reconhecimento dos caracteres atravs de uma rede neural............................................... 19
6.1.5. Resultados Preliminares .................................................................................................... 19
6. CONCLUSO................................................................................................................................ 21
REFERNCIAS BIBLIOGRFICAS............................................................................................... 22
3
1. Introduo
Durante as ltimas dcadas o homem pesquisou formas que possibilitasse a uma
mquina aprender. Aprender como as pessoas aprendem. Com o advento das redes
neurais, consegue-se uma vertente na Inteligncia Artificial sobre a qual este objetivo
poder estar sendo alcanado.
Como se ensina uma criana a reconhecer o que uma cadeira ? Voc mostra a
ela exemplos e diz: Isto uma cadeira; aquele outro no uma cadeira. At que a
criana aprende o conceito do que uma cadeira. Nesta fase, importante que a criana
possa olhar aos exemplos mostrados para que seja possvel a ela responder corretamente
pergunta: Isto aqui uma cadeira ?.
Alm disso, se mostrado a criana novos objetos anteriormente no vistos,
pode-se esperar que estes sejam reconhecidos corretamente quanto a tratar-se ou no de
um cadeira, considerando que se tenha submetido esta criana a muitos exemplos de
casos positivos e negativos de reconhecimento de cadeiras.
Este mesmo procedimento natural, pode ser espelhado para o ensino de uma rede
neural. sobre este aspecto a abordagem do presente trabalho.
Este trabalho considera que o leitor j possua um prvio conhecimento sobre
redes neurais (bsico que seja), pois o mesmo um aprofundamento de um aspecto
dentro do tema, decorrente de nosso trabalho anterior mais genrico (Simulando o
Crebro: Redes Neurais).
Na sua primeira parte o presente trabalho se preocupa em resgatar alguns
conceitos bsicos de redes neurais, fazendo-se acompanhar pela conceituao
matemtica envolvida. Mostra o significado do neurnio artificial, sua funcionalidade, e
faz um detalhamento do perceptron.
Em seguida, coloca todas as questes que envolvem o aspecto de multicamada
das redes neurais artificiais, bem como demonstra o algoritmo de aprendizagem
backpropagation.
O trabalho encerra apresentando alguns casos de aplicao prtica de redes
neurais artificiais, multicamadas e que utilizam o algoritmo de aprendizagem
backpropagation.
4
2. Uma Breve Reviso
2.1. O Modelo do Neurnio Artificial
Fazendo uma analogia entre clulas nervosas vivas e o processo eletrnico num
trabalho publicado em 1943, sobre "neurnios formais", onde simulado o
comportamento do neurnio natural, o neurofisiologista Warren McCulloch, do MIT, e
o matemtico Walter Pitts da Universidade de Illinois, fizeram a primeira proposta para
um modelo de neurnio artificial
2
(figura 01). Este modelo apresentava apenas uma
sada, que era uma funo da soma (threshold) do valor de suas diversas entradas.
[Vellasco, 2000]
Fig. 01 - Neurnio artificial projetado por McCulloch e Pitts
O modelo de McCulloch-Pitts inspirado no funcionamento de um neurnio
biolgico consiste de muitas entradas, correspondente aos dentritos conectados atravs
das junes sinpticas. O modelo, matematicamente, descrito por:

W
ik
.X
ik
+ BIAS
i

k
x
i
= entradas, i = 0, 1, 2, ..., N,
bias = para controlar o neurnio (Threshold),
w
i
= pesos variveis.

2
O neurnio artificial uma estrutura lgico-matemtica que procura simular a forma, o comportamento e as funes
de um neurnio biolgico. Assim sendo, os dendritos foram substitudos por entradas, cujas ligaes com o corpo
celular artificial so realizadas atravs de elementos chamados de peso (simulando as sinapses). Os estmulos
captados pelas entradas so processados pela funo de soma, e o limiar de disparo do neurnio biolgico foi
substitudo pela funo de transferncia. [DENIZ, 1998]
Todo o conhecimento de uma rede neural est armazenado nas sinapses, ou seja, nos pesos atribudos s conexes
entre os neurnios. De 50 a 90% do total de dados deve ser separado para o treinamento da rede neural, dados estes
escolhidos aleatoriamente, a fim de que a rede "aprenda" as regras e no "decore" exemplos. O restante dos dados s
apresentado rede neural na fase de testes a fim de que ela possa "deduzir" corretamente o inter-relacionamento
entre os dados. [VELLASCO, 2000]
5
McCulloch e Pitts no desenvolveram nenhum mtodo atravs do qual o
neurnio pudesse adaptar seus pesos em um processo de "aprendizagem".
Em 1949, Donald Hebb foi o primeiro a propor uma lei de aprendizagem
especifica para as sinpses dos neurnios. Demonstrou que a capacidade da
aprendizagem em redes neurais vem da alterao da eficincia sinptica, isto , a
conexo somente reforada se tanto as clulas pr-sinpticas quanto as ps-sinpticas
estiverem excitadas. Hebb postulou uma frmula matemtica simples para mudar os
pesos dos neurnios em proporo para as ativaes do neurnio. [RUSSELL &
NORVIG, 1995]
i = 0, 1, 2, ..., N
x = vetor de (N+1) entradas
= parmetro de aprendizado
2.2. O Perceptron - Conceito
Em 1958, Rosenblatt, demonstrou algumas aplicaes prticas usando o
perceptron. O perceptron, conceitualmente, um neurnio de McCulloch-Pitts de um
simples nvel de conexo (Figura 02). O perceptron capaz de separar linearmente
vetores de entrada em classes de padres atravs de hiperplanos. [RUSSELL &
NORVIG, 1995]
Fig. 02 - Rede de perceptrons proposta por Rosenblatt
Rosemblatt derivou a regra de aprendizado baseado no ajuste do peso na
proporo do entre os neuronios de saida e as saidas desejadas. O ajustamento dos pesos
so dados por:
6
i = 1, 2, ..., M,
y
d
= vetor sada desejada.
x = vetor de (N+1) entradas
= parmetro de aprendizado
2.3. O Perceptron Na prtica
Na prtica, o perceptron um software que aprende conceitos. Ele pode
aprender a responder com Verdadeiro (1) ou Falso (0) s entradas que forem fornecidas
a ele, atravs do estudo de exemplos apresentados repetidamente. O perceptron, gera
um grande interesse dado a sua capacidade de generalizao. Geralmente so aplicados
para problemas simples que envolvem classificao de padres. A tcnica de
aprendizado utilizada chamada de regra de aprendizado perceptron.
O perceptron uma rede neural de uma camada s, na qual se pode treinar pesos
vinculados a padres de entradas que so fornecidos a rede, alm do uso de um conceito
de controle do neurnio (bias), para se obter uma sada correta. O conceito bias uma
forma de controlar o threshold do neurnio. Threshold (ou limiar) o valor a partir do
qual a somatria dos pesos convencionais determinar se o neurnio estar ativo ou
inativo. [RUSSELL & NORVIG, 1995]
Considerando uma rede perceptron constituda de apenas um neurnio (figura
03), conectado a duas entradas e seus respectivos pesos, com um bias, o clculo do
valor de sada para este modelo, pode ser expresso na equao que segue: [RUSSELL
& NORVIG, 1995]
Ei * Wi + b > 0
onde E o vetor de entrada, W o vetor dos pesos e b o bias. Em nosso
exemplo, o i = 1, 2.
Fig. 03 - Rede de perceptrons 2 entradas, um bias e uma sada
7
2.3.1. Regra de Aprendizado Perceptron
O perceptron treinado para responder a cada vetor de entrada com uma
correspondente sada que pode ser 0 ou 1. Foi provado que a regra de aprendizagem
converge em uma soluo em tempo finito se uma soluo existe. [RUSSELL &
NORVIG, 1995]
A regra de aprendizagem pode ser resumida na seguinte duas equaes:
Para todo i:
W(i) = W(i) + [ T - A ] * E(i)
b = b + [ T - A ]
onde, W o vetor dos pesos, E so as entradas apresentadas para a rede, T o resultado
correto que a rede deve mostrar, A a atual sada mostrada pela rede e b o bias.
2.3.2. Treinamento
Conjunto de vetores de entrada para treinamento so apresentados a rede. Se a
sada apresentada pela rede estiver correta, nenhuma alterao feita. Caso, contrrio os
valores dos pesos e do bias so alterados, utilizando-se a regra de aprendizagem
perceptron. No treinamento, uma passagem inteira por todo circuito da rede, chamado
de ciclo.
Quando Redes Neurais Artificiais de uma s camada so utilizadas, os padres
de treinamento apresentados entrada so mapeados diretamente em um conjunto de
padres de sada da rede, ou seja, no possvel a formao de uma representao
interna. Neste caso, a codificao proveniente do mundo exterior deve ser suficiente
para implementar esse mapeamento.
Tal restrio implica que padres de entrada similares resultem em padres de
sada similares, o que leva o sistema incapacidade de aprender importantes
mapeamentos.
Como resultado, padres de entrada com estruturas similares, fornecidos do
mundo externo, que levem a sadas diferentes no so possveis de serem mapeados por
redes sem representaes internas, isto , sem camadas intermedirias. Um exemplo
clssico deste caso a funo ou-exclusivo (XOR).
Um nico perceptron ou uma combinao das sadas de alguns perceptrons
poderia realizar uma operao XOR, porm, seria incapaz de aprend-la. Para isto so
necessrias mais conexes, os quais s existem em uma rede de perceptrons dispostos
em camadas. [MENDES FILHO, 2000]
8
3. Modelo Matemtico Perceptron
Para apresentao completa do modelo matemtico
3
que envolve o perceptron,
algumas convenes foram estabelecidas para maior clareza do contedo:
As multiplicaes so indicadas pelo '.', ou seja, A vezes B A.B
Variveis so escritas em maisculas, ndices em minsculas
EXP(X) = Funo que representa o logaritmo Neperiano - "e" elevado a potncia
"x", ou simplesmente como costuma-se dizer "e na x" (logaritmo natural -> base 'e')
Lembrando que o perceptron uma rede neural de uma camada s, na qual se
pode-se treinar pesos vinculados a padres de entradas que so fornecidos a rede, pode-
se seguir os passos abaixo, para ter-se um modelo adequado para tal fim.
a) Ativao da rede . Neste passo, ativa-se os neurnios, para calcular o valor obtido na
sada da rede.
OUT
i
= Valor obtido na sada no neurnio 'i'
OUT
i
= F ( SomaPond
i
)
onde SomaPond
i
=

W
ik
.X
ik
+ BIAS
i
k
logo podemos re-escrever assim,
OUT
i
= F (

W
ik
.X
ik
+ BIAS
i
]
k
1
onde F ( X ) = ----------------------
1 + EXP
(-x)
ento, teremos que
1
OUT
i
= -----------------------------------------
1 + EXP(
-

W
ik
.X
ik
+ BIAS
i
)

3
Toda conceituao matemtica exposta neste captulo, pode ser encontrada nas referncias bibliogrficas
que seguem: [RUSSELL & NORVIG, 1995] ; [VELLASCO, 1995]
9
Sendo que no somatrio (), 'k' varia de 0 at N, onde N o nmero de
conexes de entrada que possui o neurnio em questo (neurnio 'i').
Xik representa o sinal da entrada 'k' do neurnio em questo (neurnio 'i').
Wik representa o peso do neurnio 'i' associado a entrada 'k' (este mesmo neurnio
possui N entradas, e obviamente N pesos).
Exemplo: O neurnio 3 tem quatro entradas e portanto sua ativao seria igual a:
OUT
3
= F ( W
31
.X
31
+ W
32
.X
32
+ W
33
.X
33
+ W
34
.X
34
+ BIAS
3
)
| |
| -- Nro. da entrada ('k')
|
+--- Nro. do neurnio ('i')
b) Aprendizado - Clculo do erro e correo dos pesos
No caso de uma rede de uma s camada, o erro aplicado diretamente sobre os
neurnios da ltima e nica camada sem precisar retro-propagar para as camadas
superiores.
ERRO
i
= F'( SomaPond
i
) . ERRO_ESTIMADO
i
onde, ERRO_ESTIMADO
i
= SAIDA_DESEJADA
i
- SAIDA_OBTIDA
i
podemos tambm escrever:
ERRO_ESTIMADO
i
= SAIDA_DESEJADA
i
- OUT
i
pois...
SAIDA_OBTIDA
i
na realidade o valor OUT
i
logo podemos re-escrever assim,
ERRO
i
= F'( SomaPond
i
) . ( SAIDA_DESEJADA
i
- SAIDA_OBTIDA
i
)
nde F'(X) = Derivada da funo F(X), ou seja, derivada da funo sigmode:
1
F(X) = ------------- (funo sigmode)
1 + EXP
(-X)
para a funo acima (sigmode), ao derivar-se ela, obtem-se:
F'(X) = F(X) . ( 1 F(X) ) (derivada da sigmode)
10
que pode ser re-escrita da seguinte maneira,
1 1
F'(X) = ------------- . ( 1 - ------------- )
1 + EXP
(-X)
1 + EXP
(-X)
X o valor que fornecido para a funo. Neste caso, X ser a soma ponderada:
SomaPond
i
=

W
ik
.X
ik
+ BIAS
i
Nas equaes da pgina anterior, temos portanto os seguintes elementos:
ERRO
i
= O erro obtido para a sada do neurnio 'i'
ERRO_ESTIMADO
i
= O erro estimado, ou seja, a diferena da resposta que
queramos obter na sada e a resposta que realmente foi obtida na sada do neurnio 'i'
(uma rede pode ter vrios neurnios na camada de sada).
SAIDA_DESEJADA
i
= A sada que queramos obter no neurnio 'i' (esta
informao est presente no arquivo de aprendizado, onde damos o exemplo e a
resposta que deve ser fornecida quando aquele exemplo for apresentado na entrada da
rede)
SAIDA_OBTIDA
i
= A sada que o neurnio 'i' deu... ou seja o valor da ativao
deste que ns calculamos no passo 1 de propagao forward ( o valor de OUT
i
).
c) De posse do erro ERRO
i
do neurnio 'i' podemos ajustar seus pesos usando a seguinte
frmula:
W
ik
(t+1) = W
ik
(t) + ERRO
i
. X
ik
sendo que:
W
ik
(t) o valor do peso W do neurnio 'i' conectado a entrada 'k' em um dado
instante de tempo (t)
W
ik
(t+1) o valor do peso W do neurnio 'i' conectado a entrada 'k' em um dado
instante de tempo (t+1), ou seja, logo aps a correo deste peso que calculada pela
expresso acima.
A frmula de ajuste de pesos acima bem simplificada, pois sempre usamos um
fator chamado de velocidade de aprendizado(tambm denominado de alfa ou epsilon),
que permite avanar mais lentamente e evitar de mudar os pesos muito rapidamente
"passando" de seu valor ideal.
A nova frmula ficar assim:
W
ik
(t+1) = W
ik
(t) + ERRO
i
. X
ik
. VELOC_APRENDIZADO
11
Sendo que VELOC_APRENDIZADO (alfa) um valor real maior que 0 e
menor que 1. Um valor igual a 0.5 reduz a "velocidade" da correo dos pesos pela
metade.
Outra pequena alterao da frmula acima a introduo da inrcia, tambm
conhecida como momentum ou momento.
Para garantir o sucesso do aprendizado devemos usar uma velocidade de
aprendizado muito baixa, algo do tipo 0.1 ou 0.01 o que faz com que o algoritmo se
torne lento demais... para compensar este problema tentamos acelerar a velocidade,
usando a inrcia, que no entanto no ir causar grandes estragos como seria o caso do
uso de uma velocidade grande. Porque pode-se usar a inrcia e no se pode usar sempre
apenas a velocidade ? simples, a inrcia se baseia na alterao anterior dos pesos, se a
alterao foi grande, ento na prxima alterao no precisamos ir to devagar, mas se
estamos indo devagar no devemos de um instante para o outro sair correndo! O
momentum garante uma acelerao gradual e uma desacelerao tambm gradual da
velocidade de alterao dos pesos.
Velocidade de alterao significa para ns o tamanho da mudana feita no valor
dos pesos. E aqui est a frmula com a inrcia includa:
W
ik
(t+1) = W
ik
(t) + ERRO
i
. X
ik
. VA + MOMENTUM . W
ik
(t-1)
Onde:
VA aparece aqui como uma abreviatura para Veloc_aprendizado.
W
ik
(t-1) e' igual ao ltimo ajuste feito nos pesos.
Ou seja, podemos re-escrever a frmula acima em duas etapas:
W
ik
(t) = ERRO
i
. X
ik
. VA + MOMENTUM . W
ik
(t-1)
W
ik
(t+1) = W
ik
(t) + W
ik
(t)
Assim ns guardamos o valor da ltima alterao dos pesos para usar junto a
prxima alterao destes. O valor do momentum tambm um valor real entre 0 e 1,
mas normalmente usamos uma inrcia alta, de digamos 0.9, pois a inrcia ajuda a
chegar mais rpido num valor dos pesos que nos satisfaa (reduzindo o erro na sada do
neurnio mais rapidamente) sem no entanto provocar perturbaes exageradas no
processo de convergncia em direo ao ponto de mnimo na curva de erro.
12
4. Perceptron Multicamada
As capacidades do perceptron de uma simples camada limitada a fronteiras de
deciso linear e funes lgicas simples.
Minsky e Papert (Perceptrons, 1969) analisaram matematicamente o Perceptron
e demonstraram que redes de uma s camada, no so capazes de solucionar problemas
que no sejam linearmente separveis. Como no acreditavam na possibilidade de se
construir um mtodo de treinamento para redes com mais de uma camada, eles
concluram que as redes neurais seriam sempre suscetveis a essa limitao. [RUSSELL
& NORVIG, 1995]
Identificado as limitaes relativas ao perceptron de camada simples, foi
desenvolvido o multilayer perceptron (MLP), que em geral, consiste de uma camada de
entradas, uma ou mais camadas intermedirias (escondidas) e uma camada de sada .
Trata-se de um caso em particular de topologia de rede, conforme mostra a taxionomia
da rede na figura 03. [VELLASCO, 2000]
Fig. 03 Taxionomia das Arquiteturas de Redes Neurais
Artificiais
Nas redes multilayer perceptron, cada camada tem uma funo especfica. A
camada de sada recebe os estmulos da camada intermediria e constri o padro que
ser a resposta. As camadas intermedirias funcionam como extratoras de
caractersticas, seus pesos so uma codificao de caractersticas apresentadas nos
padres de entrada e permitem que a rede crie sua prpria representao, mais rica e
complexa, do problema.
13
Arquiteturas neurais so tipicamente organizadas em camadas (figura 04), com
unidades que podem estar conectadas s unidades da camada posterior. Por conveno a
camada que inicialmente recebe os dados chamada de input (entrada), a camada
intermediria chamada de hidden (oculta) e por ltimo, a camada de sada. Cada
camada pode ter de 1 a n neurnios artificiais com as caractersticas apresentadas na
figura 09. [DHAR & STEIN, 1997]
Fig. 04 Exemplo de Rede Neural Artificial Multicamada
O comportamento inteligente de uma Rede Neural Artificial vem das interaes
entre as unidades de processamento da rede. A maioria dos modelos de redes neurais
possui alguma regra de treinamento, onde os pesos de suas conexes so ajustados de
acordo com os padres apresentados; ou seja, elas aprendem atravs de exemplos.
[YAMAMOTO & NIKIFORUK, 2000]
14
5. Algoritmo Backpropagation
O mais popular mtodo para aprendizado em redes de multicamadas chamado
de backpropagation (retro-propagao). Ele foi inicialmente criado em 1969 por Bryson
e Ho, mas foi ignorado at o inicio dos anos 80.
5.1. O Funcionamento do Backpropagation
Durante o treinamento
4
com o algoritmo backpropagation, a rede opera em uma
seqncia de dois passos (figura 05). Primeiro, um padro apresentado camada de
entrada da rede. A atividade resultante flui atravs da rede, camada por camada, at que
a resposta seja produzida pela camada de sada. No segundo passo, a sada obtida
comparada sada desejada para esse padro particular. Se esta no estiver correta, o
erro calculado. O erro propagado a partir da camada de sada at a camada de
entrada, e os pesos das conexes das unidades das camadas internas vo sendo
modificados conforme o erro retropropagado. [CARVALHO, 2000]
Fig. 05 Operao do Algoritmo Backpropagation
As redes que utilizam backpropagation trabalham com uma variao da regra
delta, apropriada para redes multicamadas: a regra delta generalizada.

4
O treinamento a atividade que leva a rede ao aprendizado. Denomina-se algoritmo de aprendizado a um conjunto
de regras bem definidas para a soluo de um problema de aprendizado. Existem muitos tipos de algoritmos de
aprendizado especficos para determinados modelos de redes neurais, estes algoritmos diferem entre si
principalmente pelo modo como os pesos so modificados. Aprendizagem, para uma rede neural, envolve o ajuste
destes pesos. [DHAR & STEIN, 1997]
15
A regra delta padro essencialmente implementa um gradiente descendente no
quadrado da soma do erro para funes de ativao lineares. Redes sem camadas
intermedirias, podem resolver problemas onde a superfcie de erro tem a forma de um
parabolide com apenas um mnimo. Entretanto, a superfcie do erro pode no ser to
simples, e suas derivadas mais difceis de serem calculadas. Nestes casos devem ser
utilizadas redes com camadas intermedirias. Ainda assim, as redes ficam sujeitas aos
problemas de procedimentos "hill-climbing", ou seja, ao problema de mnimos locais.
[CARVALHO, 2000]
Depois que a rede estiver treinada e o erro estiver em um nvel satisfatrio, ela
poder ser utilizada como uma ferramenta para classificao de novos dados (figura 06).
Para isto, a rede dever ser utilizada apenas no modo progressivo (feed-forward). Ou
seja, novas entradas so apresentadas camada de entrada, so processadas nas camadas
intermedirias e os resultados so apresentados na camada de sada, como no
treinamento, mas sem a retropropagao do erro. A sada apresentada o modelo dos
dados, na interpretao da rede. [CARVALHO, 2000]
Fig. 06 Backpropagation em modo progressivo (feed-forward)
5.2. Limitaes do Backpropagation
As redes neurais que utilizam backpropagation, assim como muitos outros tipos
de redes neurais artificiais, podem ser vistas como "caixas pretas", na qual quase no se
sabe porque a rede chega a um determinado resultado, uma vez que os modelos no
apresentam justificativas para suas respostas. Neste sentido, muitas pesquisas vm
sendo realizadas visando a extrao de conhecimento de redes neurais artificiais, e na
16
criao de procedimentos explicativos, onde se tenta justificar o comportamento da rede
em determinadas situaes.
Uma outra limitao refere-se ao tempo de treinamento de redes neurais
utilizando backpropagation, que tende a ser muito lento. Algumas vezes so necessrios
milhares de ciclos para se chegar nveis de erros aceitveis, principalmente se estiver
sendo simulado em computadores seriais, pois a CPU deve calcular as funes para
cada unidade e suas conexes separadamente, o que pode ser problemtico em redes
muito grandes, ou com grande quantidade de dados. Muitos estudos esto sendo
realizados para implementao de redes neurais em computadores paralelos, alm de
construo de chips neurais como Intel 80170NX Eletronically Trainable ANN ou
placas aceleradoras como BrainMaker Accelerator Board CNAPS. [CARVALHO,
2000]
muito difcil definir a arquitetura ideal da rede de forma que ela seja to
grande quanto o necessrio para conseguir obter as representaes necessrias, ao
mesmo tempo pequena o suficiente para se ter um treinamento mais rpido. No
existem regras claras para se definir quantas unidades devem existir nas camadas
intermedirias, quantas camadas, ou como devem ser as conexes entre essas unidades.
Para resolver este tipo de problema, Algoritmos Genticos poderiam ser utilizados para
encontrar automaticamente boas arquiteturas de redes neurais, eliminando muitas
armadilhas associadas s abordagens de engenharia humana. [CARVALHO, 2000]
17
6. Exemplo de Aplicao
Para mostrar na prtica uma aplicao que utiliza rede neural artificial
multicamadas com algoritmo backpropagation, ser apresentado a sntese de um
trabalho desenvolvido na Universidade Federal do Rio Grande do Sul [SUSIN, 2000],
atravs dela poder ter-se uma idia da importncia deste algoritmo de aprendizagem
atuando em uma rede multicamada.
6.1. Sistema de Identificao Automtica de Veculos
Quando ao objetivo, este sistema visa dotar uma mquina da capacidade de
localizar e interpretar o contedo da placa de um veculo qualquer atravs da utilizao
de tcnicas de processamento de imagens e inteligncia artificial.
Algumas aplicaes deste tipo de sistema so:
Medio e planejamento do fluxo de trfego
Identificao de veculos para recuperao em caso de furto
Controle automtico de pedgios e estacionamentos pagos
Aplicao das leis de trnsito (identificao automtica de veculos infratores,
estacionamento em reas proibidas, etc. )
Fig. 07 Sistema de Identificao Automtica de Veculos
18
6.1.1. Descrio do Sistema
A plataforma de desenvolvimento do projeto foi um microcomputador PC e o
software foi desenvolvido em C++ para Windows 95. Este computador, equipado com
uma placa digitalizadora de vdeo, permite a aquisio de imagens com resoluo de
320x 240 pixels. A figura 07 mostra o aplicativo desenvolvido.
6.1.2. Algoritmo de localizao da placa
O algoritmo de localizao da placa pode ser dividido em dois procedimentos:
a) No primeiro procedimento temos a localizao da placa atravs dos algoritmos
abaixo:
Procura por variao tonal padronizada atravs da anlise do gradiente positivo na
rea da placa;
Binarizao local adaptativa sobre a regio encontrada ou, se necessrio, sobre a
imagem inteira;
Nesta etapa, temos como resultado as coordenadas do provvel local da placa.
b) No segundo procedimento h a confirmao do local atravs da anlise do nmero de
dgitos encontrados:
Procura por dgitos de tamanhos pr-definidos;
Anlise dos dgitos selecionados verificando a formao de algum grupo vlido;
Como resultado final temos a confirmao do local correto, conforme ilustra a
figura 08.
Fig. 08 Confirmao Local Correto da Placa do Veculo
19
6.1.3. Segmentao e redimensionamento dos caracteres
Uma vez encontrada a placa necessrio segmentar os caracteres (figura 09) a
fim de separ-los do resto da imagem e redimension-los para a rede neural. Foi
utilizada uma tcnica de crescimento controlado, dentro de cada entidade encontrada na
rea da placa, e um conjunto de heursticas para descartar rudos indesejveis e
selecionar corretamente os caracteres.
Fig. 09 - Placa Segmentada - 7 Entidades Encontradas
6.1.4. Reconhecimento dos caracteres atravs de uma rede neural
Uma topologia de rede neural feedforward utilizando o algoritmo
backpropagation para treinamento foi escolhida. Foram desenvolvidas duas redes
distintas, uma para os caracteres e outra para os algarismos, com 255x26 x26 e
255x10x10 neurnios nas camadas de entrada x escondida x sada respectivamente.
6.1.5. Resultados Preliminares
O sistema foi testado com um conjunto de 300 imagens e comparado uma
verso demonstrao de um software comercial israelense - See/Car. As imagens
utilizadas no teste possuem as seguintes caractersticas:
256 tons de cinza e 320x240 pixels
Dimenses da placa entre 70x20 e 120x40 pixels
Imagens da frente e costas dos veculos com distribuio de luz sobre a superfcie da
placa homognea e heterognea
No See/Car:
76,2 % de sucesso na localizao das placas
64,6 % de sucesso na segmentao correta dos caracteres
20
No SIAV
5
:
98,7 % de sucesso na localizao das placas
87,1 % de sucesso na segmentao correta dos caracteres
82,4 % de sucesso na localizao das placas com a rotina preliminar (variao tonal)
87 % de sucesso no reconhecimento dos caracteres segmentados
28 % de sucesso no reconhecimento correto das placas (7 dgitos)
O sistema desenvolvido possui um bom desempenho em ambientes com
diferentes tipos de iluminao. O tempo de processamento de cada imagem
dependente da complexidade da imagem analisada e pode variar entre 1.4 e 130s
(processador K6-2 400 MHz com 64 MB de RAM).
A baixa taxa de acertos no reconhecimento dos caracteres, deve-se, entre outras
coisas, ao deficiente banco de amostras utilizadas no seu treinamento. Esto sendo feitos
esforos para a formulao de um banco de dados apropriados e uma descrio mais
eficiente dos caracteres para a rede.

5
Uma cpia de demonstrao deste software pode ser obtida no endereo:
http://www.iee.ufrgs.br/iee/siav.zip
21
6. Concluso
A maior parte do tempo necessrio para construir um modelo de redes neurais
gasto no processo identificao da melhor topologia e no de treinamento. Determinar
uma boa estrutura de rede, ou topologia, um dos caminhos para se diminuir esse
tempo, mas s isto no basta para se ter uma rede que oferea resultados aceitveis.
O binmio topologia x treinamento fator que hoje apresenta-se como barreira a
ser transposta para o sucesso de uma soluo utilizando-se rede neural artificial.
H um peso muito grande no aspecto de treinamento, para se atingir resultados
satisfatrios. Assim, necessrio que se tenha uma idia, ainda que genrica, sobre os
algoritmos disponveis para treinamento das diversas topologias de redes existentes. O
algoritmo backpropagation para uma rede de multicamanadas, exposto neste trabalho,
apenas um deles.
22
Referncias Bibliogrficas
[CARVALHO, 2000] CARVALHO, Andr Ponce de Leon F., Home Page
Perceptron Multicamadas. Departamento de Cincia da Computao. USP - SP
http://www.icmc.sc.usp.br/~andre/neural2.html, consulta em 10/05/2000.
[DENIZ, 1998] DENIZ, Juan C., Home Page Neural Network Theory.
MIT Massachusetts Institute of Technology,
http://web.mit.edu/denis/www/FuncAppx/Theory.html, consulta em 04/05/2000.
[DHAR & STEIN, 1997] DHAR, Vasant E STEIN, Roger. Seven Methods for
Transforming Corporate Data Into Business Intelligence. Prentice-Hall, New
Jersey, 1997, p.77-106.
[MENDES FILHO, 2000] MENDES FILHO, Elson Felix, Home Page Redes
Neurais Artificiais. Universidade de So Paulo, SP,
http://www.icmsc.sc.usp.br/~prico/neural1.html, consulta em 28/04/2000.
[RUSSELL & NORVIG, 1995] RUSSELL, Stuart E NORVIG, Peter. Artificial
Intelligence - A Modern Approach. Prentice-Hall, New Jersey, 1995, p.563-597.
[SUSIN, 2000] , SUSIN, Dr. Altamiro Amadeu at alii. Home Page do Laboratrio
e Processamento de Sinais e Imagens da Universidade Federal do Rio Grande do Sul
Projeto SIAV Sistema de Identificao Automtica de Veiculos. UFRGS - RS,
http://www.iee.ufrgs.br/iee/siav.html, consulta em 13/05/2000.
[VELLASCO, 2000] VELLASCO, Marley Maria B.R, Home Page Redes Neurais.
ICA: Ncleo de Pesquisa em Inteligncia Computacional Aplicada PUC - Rio,
http://www.ele.puc-rio.br/labs/ica/icahome.html, consulta em 05/05/2000.
[YAMAMOTO& NIKIFORUK, 2000] YAMAMOTO, Yoshihiro e Nikiforuk Peter.
A New Supervised Learning Algorithm for Multilayered and Interconnected Neural
Networks. IEEE Transactins on Neural Networks, vol. 11, no. 1, 2000.