Professional Documents
Culture Documents
INPE
So Jos dos Campos
2004
Identificao do Bolsista:
Nome: Jos Demisio Simes da Silva
No. do Processo: 260.048/95-0
Instituio:
Instituto Nacional de Pesquisas Espaciais - INPE
Departamento:
Laboratrio de Computao e Matemtica Aplicada - LAC
Endereos:
Nvel de Treinamento:
SPE - Estgio de Especializao no Exterior
Ttulo do Projeto de Tese/Pesquisa:
Uso de Redes Neurais em Viso Computacional e Processamento de Imagens.
Nome do Orientador: Dr. Robert E. Uhrig
Local: Nuclear Engineering Department
The University of Tennessee, Knoxville, USA
Processo : 260.048/95-0
RELATRIO
n l
vqn.
A aprendizagem tem dois ciclos iterativos (k). A sada de um neurnio por ciclo
al t , al t
. al (k) o nvel de ativao e um limiar. A ativao inicial
c. c.
0
[a ( k 1)]
t
l
t
1 + vq n ( k 1)
nl
k = 1,2,.....
l(1-ql),
l+1 =
l,
caso contrrio
e 2
[( ( x x ) + ( y y ) ]
2
que aumenta a contribuio de pixels na regio central de raio , em relao aos pixels na
periferia do campo receptivo, assim a informao de borda no vetor de sada localizada.
O detector uma rede feed-forward de duas camadas, como na figura 2.1. A camada
escondida tem M neurnios e a entrada o vetor qxy, sada do codificador. Cada camada de
sada tem dois neurnios, que so os componentes de um vetor sxy de bordas, sxy=s0i+s1j, na
posio (x,y) na imagem. s0 e s1 so intensidades nas direes i e j, sendo mutuamente
perpendiculares. A intensidade resultante e a orientao da borda podem ser conseguidas por:
sxy = (s0 + s1)1/2 e xy = tan-1 (s1/s0).
Para cada pixel a rede mapeia um vetor qxy num vetor de borda bidimensional sxy.
O treinamento da rede detectora executado por um algoritmo de back-propagation,
com o objetivo de fazer a rede gerar um vetor de borda ideal para cada locao dada, mesmo
na presena de rudo. Gera-se qxy para cada ponto (x,y) na imagem de treinamento. Calcula-se
um vetor sxy ideal. Estes pares de vetores formam o conjunto de treinamento da rede. No
experimento Srinivasan et al. (1994) usaram uma imagem de crculos concntricos com
bordas em todas as orientaes.
FIGURA 2.2 - a) Imagens de crculos com rudo Gaussiano e SNR = 6. b) bordas detectadas
pelo detector neural e c) bordas detectadas pelo operador de Canny.
FONTE: Sirinivasan et al. (1994, p. 1660).
Se o deslocamento espacial do pixel (x,y) para a borda mais perto r0i+r1j e a
orientao
( r02 +r12 )
2 2
da
borda
mais
perto
xy,
ento
vetor
de
borda
sxy=
proposto por Canny (Canny, 1986). Na ativao, a rede detectora recebe entradas da rede
codificadora.
A figura 2.2 ilustra resultados obtidos com a aplicao do detector. As imagens
utilizadas so de 256 x 256 e o campo receptivo de 15 x 15. A camada codificadora tem
L=16 neurnios e a decodificadora tem M=32 neurnios. Segundo o trabalho, L e M foram
escolhidos empiricamente em funo da carga computacional exigida, =0.9999 e =0.001.
Na ativao a rede foi testada na imagem com crculos concntricos, deslocando-se sobre a
imagem a um passo de 1 pixel por vez.
Nas consideraes dos autores, a rede neural proposta comparvel com a abordagem
proposta por Canny para detectar bordas abruptas em imagens ruidosas. A tabela 2.1 mostra
resultados da comparao do detector de bordas neural com outros detectores.
TABELA 2.1 - Comparao de figuras de mrito do detector de bordas por rede neural e
outros
SNR
Operador
Sobel
Operador
Prewitt
LoG
Operador
de Canny
Rede
Neural
Sem rudo
1
1
12
0.60
0.61
6
0.27
0.27
3
0.21
0.21
FONTE: Srinivasan et al. (1994, p. 1661).
1
0.42
0.32
-
1
0.89
0.82
0.67
1
0.88
0.82
0.69
ND
1
1
F
=
por
2
max( N I , N D ) i = 1 1 + d i
Paik et al. (1992) descrevem um algoritmo usando ADALINES para detectar bordas,
que mantm o desempenho computacional e reduz os efeitos de rudo. Os neurnios so
lineares adaptativos, com estados +1, 0 e -1. Isso torna o algoritmo um supressor de rudos,
sem aumentar a dimenso do operador.
As entradas da ADALINE so pixels que tm seus valores mapeados para estados
discretos, resultantes da classificao de cada ponto da janela em: 1) ponto de borda do lado
alto, 2) ponto de borda do lado baixo, ou 3) no um ponto de borda. Uma entrada j-sima da
ADALINE
1,
z j < mi
vj= 0, m j z j mi +
1,
z j > mi
1
onde controla a resoluo das bordas e o nvel de rudo. Na equao mi =
r
z
j =1
ro
( j 1) 1
1
k = i +
n2 + ( j 1) mod l
l 2
2
as
hipteses so:
a) H1: zj=mi+E+ni ; b) H0: zj=mi+ni ; c) H-1: zj=mi-E+ni
onde ni uma componente de um rudo Guassiano com mdia zero e varincia 2. Devido
simetria do problema, Paik et al. (1992) consideram o critrio de deciso da mxima
verossimilhana, entre H1 e H0, como:
1
2
L(zj) = 2
1
e 2
2 2
( z j ( mi + E ))2
e 2
( z j mi )2
> T ( H1 )
< T ( H 0 )
11
> ( H1 )
2
zj
mi +
E
< ( H0 )
E
onde = ln(T). pode ser estimado a partir de =
2
E
.
2
Para rudo com alta intensidade, alto, o que suprime erros de classificao devido
ao rudo. Com rudos pequenos, suprime erros devido a erros de textura na imagem, erros
de quantizao e bordas contnuas (em rampa).
No experimento usou-se 12 padres de bordas bidirecionais (Tabela 2.2) com l=3,
somado 9 pixels e assumindo os estados +1, -1 e X (que significa qualquer). Aumentando-se l,
possvel aumentar o nmero de padres.
No trabalho Paik et al. (1992) usaram a separabilidade linear para classificar os dados
da entrada do detector. A definio de separabilidade linear considera um conjunto P de
vetores de dimenso L, cujos componentes assumem um dos M=j+k+1 valores do conjunto
{-j,,-1,0,1,,k }, ou seja, P={x|xi {-j,,-1,0,1,,k}, i=1,,L }. Os valores extremos no
intervalo so -j e k.
TABELA 2.2 - Padres de bordas em direes diferentes.
1
1
1
X
X
X
-1
-1
-1
-1
-1
-1
-1 -1 X
-1 X 1
X 1 1
1
1
X
90o
45o
X
X
X
1
1
1
-1
X
1
-1
X
1
-1
X
1
1
X
-1
1
X
-1
X
-1
-1
-1 -1
-1 X
-1 X
X
1
1
1
1
1
270o
225o
0o
45o/
90o
1
X
-1
1
X
-1
X
1
1
1
X
X
X
-1
-1
-1
-1
-1
180o
225o/
270o
-1
X
1
-1
-1
X
1
-1
-1
-1
X
-1
X
1
X
1
1
1
135o
45o
/
315o
X
X
-1
1
1
X
1
X
1
X
-1
X
315o
225o/
135o
1, w T x
onde um valor
um vetor peso w pode-se definir uma funo lgica F(x)=
T
0, w x
limiar. Se F separvel linearmente ento wTx > wTy, x P1 e y Po.
No caso de multi-estados, Paik et al. (1992) apresentaram um teorema propondo uma
funo linearmente separvel, que separa o vetor de entrada x, de dimenso L, dos vetores em
Po. Cada componente de x assume um valor extremo, formando os conjuntos P1={x} e o
conjunto Po=P-P1. Para a prova toma-se a definio de separabilidade linear e um vetor w,
12
1, xi = k
,i = 1,..., L tal que wixiwiyi, I. A desigualdade implica
com componentes wi=
1, xi = j
wTx>wTy. Tomando-se um conjunto P-1={-x}, x com valores extremos, vale wT(-x) < wTy <
wTx, y Po. O teorema permite duas formas de determinar os wi, i=1,,L:
a) os estados X assumem valores extremos, logo na borda os valores X e seus complementares
seriam os mesmos com sinais trocados. Com a funo discriminante, um mesmo vetor pode
detectar bordas em cada par bidirecional de bordas, pois tm valores extremos com sinais
trocados. No clculo dos wi usa-se a definio anterior. Como exemplo, para detectar bordas
direita ou esquerda em uma janela de tamanho l = 3 :w- = [ 1 w2 -1 1 w5 -1 1 w8 -1 ]T onde
w2, w5 e w8 podem ser +1 ou -1, dependendo de X no padro de bordas correspondente. b) os
valores X assumem apenas valores extremos sem alterao de sinal. Os componentes
correspondentes aos estados X so zero. No exemplo anterior w2=w5=w8=0.
O limiar na determinao de F, depende das entradas do vetor de peso. Nos casos foi
usado igual ao nmero de elementos da janela de anlise (r=lxl), no primeiro e igual ao
nmero de elementos da janela menos os estados X, no segundo. A anlise desenvolvida
permite que os vetores pesos sejam determinados de forma direta, pois se usa valores
extremos, do contrrio deve-se usar o algoritmo do LMS.O algoritmo para deteco de bordas
proposto baseia-se na definio de bordas e na determinao de pesos discutidas. Na
1,
2.3 usou-se os 4 primeiros padres de bordas. A sada g(.) g ( u ) = 0 ,
1,
onde
figura
u
< u <
u
13
Paik et al. (1992) encontraram degradao na qualidade das bordas detectadas pelo operador
Canny.
v0
wT v
g(. )
v1
w|T v
g(. )
z1
OR
xi
.
.
.
.
.
.
w/T v
g(. )
zr
vr
w\T v
g(. )
14
FIGURA 2.4 - Imagens com nveis de rudo diferentes para teste do detector neural e
resultados obtidos com os operadores neural, LoG e Canny.
FONTE: Paik et al. (1992, p. 1501).
Bhuiyan et al. (1994) argumentam que a deteco de bordas tem problemas com a no
uniformidade de iluminao. Assim, os mtodos existentes podem falhar na deteco para
objetos similares em regies com sombreamento diferentes na cena, necessitando de
readaptao s novas condies de iluminao. Eles propem um detector baseado na rede de
Hopfield usando resultados de Koch (1986), que mostrou que redes de Hopfield podem ser
generalizadas para resolver as funes de energias no quadrticas de viso primria, pelo
mapeamento dos processos de linhas binrias em variveis contnuas limitadas por 0 e 1,
vislumbrando tambm uma funo de custo associada. A rede Hopfield trata apenas de
problemas quadrticos. O trabalho usa a minimizao de energia, e prope um esquema para
mudar os parmetros da funo de energia, em uma imagem com iluminao varivel. A
implementao proposta foi comparada qualitativamente e quantitativamente com os
operadores de Sobel 3 x 3 e LoG, sobre uma imagem sinttica. A figura 2.5 mostra a
arquitetura proposta.
15
1
1+ e
2 mi , j
, se
[(f
i, j
ED = CD
2
2
i,j+1-fi,j) (1-hi,j)+(fi+1,j-fi,j) (1-vi,j)]
(f -d )
i, j
i,j
i,j
Ev = Cv
EP = CP
[h h
EC = Cc
[h +v ]
i, j
i, j
i, j
i,j
i,j
i,j
i,j
i,j i,j+1+vi,jvi+1,j]
i,j
i,j
16
EL = CL
{h [1-h
2
2
i+1,j-vi,j-vi,j+1) +(1-hi-1,j-vi-1,j-vi-1,j+1) ]+
i,j
i, j
vi,j[(1-vi,j+1-hi,j-hi+1,j)2+(1-vi,j-1-hi,j-1-hi+1,j-1)2]}
hi , j
EG = CG
[
i, j
vi , j
g i,1j (hi,j)dhi,j+
g i,1j (vi,j)dvi,j]
df i , j
dt
variaes
em
fi,j,
mi,j
ni,j
no
tempo
so
dadas
por:
dn i , j
E
E
E dm i , j
=
=
;
;
. Portanto, a taxa de variao no
dt
v i, j
f i, j
hi , j
dt
dE
=
dt
=
i, j
=-
i, j
E
f i, j
i, j
E d f i, j
+
f i, j d t
i, j
E d m i, j
+
m i, j d t
i, j
E d n i, j
n i, j d t
E
E E
E E
+
+
f i , j i , j m i , j hi , j i , j n i , j v i , j
E
f i , j
E
+
hi, j
hi, j
E v i, j
+
m i, j
v i, j n i, j
hi , j
m i , j
= 2 h i , j (1 h i , j ) 0 . De forma semelhante
vi, j
dE
0 . Como nenhum termo negativo,
0 , ou seja, a energia ser sempre
n i, j
dt
17
f i,
j+1
f i,
iniciais dos parmetros foram determinados heuristicamente como CI=1, CD=2, CV=0.2,
CP=2, CC=0.4, CL=1.6, CG=0.2, = 2 5 e f t h = 0 .
O controle sobre a atualizao mantido, expressando-se as varveis em funo de C,
(CV=C, CP=10C, CC=2C, CL=8C, CG=C). CI e CD mantm-se nos valores iniciais. Na
atualizao o algoritmo considera 7 valores de intensidades com centro no pixel (i,j) e toma a
mdia das intensidades na horizontal e na vertical:
C ( h i , j ) = [ C ( h i , j ) + C ( h i 1 , j ) + C ( h i +1, j ) + C ( v i , j ) + C ( v i , j + 1 ) + C ( v i 1, j ) + C ( v i 1, j + 1 )] / 7
C ( v i , j ) = [ C ( v i , j ) + C ( v i 1 , j ) + C ( v i +1 , j ) + C ( h i , j ) + C ( h i , j + 1 ) + C ( h i 1 , j ) + C ( h i 1 , j + 1 )] / 7
18
idnticos e dois tabuleiros de xadrez idnticos, sob faixas diferentes de contraste (de mdio
para alto contraste, ou seja, nas razes de 6:1, 10:1, 15:1 e 20:1, respectivamente).
a)
b)
FIGURA 2.6 - a) Relao da energia E e suas componentes. b) Diagrama de energia proposto
por Bhuiyan et al. (1994).
FONTE: Bhuiyan et al. (1994, p. 623).
FIGURA 2.7 - Relao de segunda ordem dos parmetros C* com a diferena de intensidades.
FONTE: Bhuiyan et al. (1994, p. 623).
Inicialmente no processo de deteco, hi,j=vi,j=0.5 e fi,jdi,j. A rede computa a
superfcie mais suave tomando os processos de linha como zero. O processo de intensidade
atualizado 100 vezes para cada atualizao da rede de processo de linha, ou seja, a rede do
processo de linha estacionria. Para isso Bhuiyan et al. (1994) usaram unidades de tempos
distintas:
t1 = 00001
.
. para o processo de linha.
para o processo de intensidade e t2 = 001
19
FIGURA 2.8 - Imagem usada para deteco de bordas em Bhuiyan et al. (1994).
FONTE: Bhuiyan et al. (1994, p. 625).
TABELA 2.3 - Variao de Cmin em funo do nmero de iteraes.
Nmero de iteraes
1- 4
5 - 19
20 - 49
50 - 99
100 - 199
FONTE: Bhuiyan et al. (1994, p. 624).
Cmin
0.20
0.10
0.05
0.02
0.01
Na tabela 2.3 Cmin cai com o aumento do nmero de iteraes para a minimizao da
energia. O valor de 0.2 corresponde a deteco de bordas com grandes diferenas entre pixels.
O decrscimo gradativo significa que bordas cada vez menos abruptas esto sendo detectadas.
O processo continua at se atingir um estgio de energia mnima. No experimento observouse um limite mximo de 200 interaes.
O processo detecta muitas bordas pequenas, mas a restrio EL permite a conexo das
vrias bordas pequenas, formando bordas alongadas e contnuas.
20
P(IE/AE)
1.000
0.501
0.500
0.438
Erro de distncia
0.000
0.750
0.508
0.706
22
A seguir feita uma introduo s redes neurais ressaltando alguns algoritmos mais
utilizados em aplicaes prticas. Existem vrias publicaes com material didtico
criterioso, que introduzem as Redes Neurais como ferramentas computacionais. Nas
referncias bibliogrficas so citados alguns livros e artigos que trazem textos bsicos sobre o
assunto.
Redes Neurais Artificiais
As Redes Neurais Artificiais (RNA) so modelos matemticos que representam os
princpios de atividades do crebro com base na neurobiologia e na teoria do comportamento.
Estes modelos so adequados para resolver problemas que envolvem classificao ou
predio, usando informaes conflitantes ou incompletas, tais como em aplicaes de
reconhecimento de padres, otimizao, controle, compresso de dados, diagnstico e
aproximao de funes, entre outras.
As redes neurais artificiais diferem de outros modelos computacionais, por possuir
uma arquitetura composta de vrias unidades de processamento simples interconectadas
(neurnios), formando uma estrutura semelhante a uma rede de tecido nervoso cerebral.
Apesar da semelhana na descrio no so modelos completos do crebro humano. Para
aproximaes mais realistas necessrio pesquisas em cincias cognitivas e neurobiolgicas e
na tecnologia de processamento analgico-digital em larga escala.
O princpio de funcionamento das redes neurais est diretamente ligado ao
funcionamento de cada unidade de processamento individual. Cada unidade quando excitada
processa as informaes apresentadas nas sua entradas (dendritos) at sua sada (axnio),
segundo uma funo de transferncia, inspirando-se no comportamento de neurnios
biolgicos. Como no crebro, as entradas da rede neural correspondem aos sensores e, a sada
aos neurnios motores (atuadores) que respondem aos estmulos.
O funcionamento bsico de cada n (elemento de processamento ou neurnio),
consiste no somatrio da multiplicao de cada elemento de entrada pelo peso (reforador ou
inibidor) associado a ele. O resultado passa por uma funo de transferncia produzindo a
sada do n, que submetida aos dendritos dos ns da camada seguinte.
A figura 3.1 ilustra esquematicamente um modelo de neurnio utilizado em redes
neurais artificiais.
23
w1
w2
X2
......
f(.)
s = f(x1w1+x2w2+...+xnwn)
wn
Xn
24
Uma regra utilizada para a aprendizagem a regra de Hebb (Khanna, 1990) definida
como: wi(t+1)=wi(t)+Cxi(t)y(t), onde xi(t) a entrada i do n, com sada y(t); C - taxa de
aprendizagem (ou constante de aprendizagem - autores diferentes usam nomenclaturas
diferentes para representar esta constante); e wi(t) - matriz de pesos, que corresponde
memria. Com esta regra uma rede funciona como um associador de padres. Na ativao,
apresentando-se parcialmente um padro, espera-se que a rede gere a verso completa do
padro associado. Para generalizar esta regra faz-se os pesos mudarem em funo de um sinal
de reforo R, wi(t+1)=wi(t)+CRi(t), onde Ri(t)=xi(t)y(t) o reforo para a sinapse i no instante
t, e C a taxa de aprendizagem.
Em geral aplicaes que envolvem correlao simultnea ou espacial, podem ser
apresentadas em uma forma que a regra de Hebb pode implementar. A regra de Hebb no
produz os aspectos temporais do condicionamento estmulo-resposta clssico, mesmo com
atrasos e modificaes. Portanto, no h memria de longo termo.
Outra regra de aprendizagem a de Widrow-Hoff onde o sinal de reforo definido
por:
R i ( t ) = [ z ( t ) y ( t )]x i ( t ) ,
y(t ) =
j =1
resposta seja um nmero real desejado para cada estmulo. A regra implementa um algoritmo
iterativo que computa uma soluo para um conjunto de equaes lineares, cuja soluo
existe se os padres de estmulo x1,...,xk so linearmente independentes.
Na regra de Hebb, uma resposta perfeita para uma entrada possvel apenas para
padres de estmulos ortogonais. Pela regra de Widrow-Hoff, a recuperao ocorre para
conjuntos de padres de estmulo linearmente independentes.
A aprendizagem competitiva um esquema no associativo que ocorre quando as
unidades de processamento competem e apenas a unidade de resposta mais forte a um padro
modificada. A ativao de uma unidade em particular induz ou inibe a ativao de outras
unidades ligadas a ela, de acordo com o tipo de conexo.
A atividade das unidades da rede dada por uma funo de ativao monotnica no
decrescente, como por exemplo funes linear, rampa, degrau e sigmide como na figura 3.2.
O arranjo das unidades de processamento forma a rede neural, dando origem aos
modelos de redes neurais artificiais. Os modelos disponveis na literatura fazem uso de tipos
de conexes diferentes. As conexes podem ser inibitrias ou excitatrias em feed forward,
25
f(x)
x
linear
f(x)
f(x)
rampa
degrau
x
sigmoide
1,
b j = f w ij a i j , j=1,...,m, onde f ( x ) =
i=1
1,
26
x > 0
.
c. c.
Tendo-se os bj, calcula-se o erro em relao ao valor desejado, ou seja, ej=d kj - bj, para
j=1,...,m. Os erros so usados para atualizar os pesos, para cada elemento, por: wij= ai ej ,
para i=1,...,n e j=1,...,m. O processo continua at se atingir um erro suficientemente baixo ou
zero.
Na ativao apresenta-se um padro e observa-se a resposta. Para uma boa
aprendizagem a sada ser o padro que foi associado entrada durante o treinamento, ou uma
n
b1k
b1
w11
bjk
wn1
wi1 w1j wij
bpk
bj
wnj
wip wnp
bp
w1p
FB
W
a1
a1k
ai
aik
an
FA
ank
Adaline
27
A rede Adaline (Adaptive Linear), proposta por Widrow e Hoff, um elemento lgico
de limiar adaptativo (Paik et al., 1992 ) com um nmero arbitrrio de entradas, que podem
assumir -1 ou +1, e um elemento de polarizao igual +1. As entradas e a polarizao ("bias")
so modificados pelos pesos correspondentes antes da soma. Na sada um quantificador
atribui +1 se a soma maior que zero ou -1 se a soma menor que zero.
Considerando um vetor de entrada com L elementos, x(t)= [ x 0 ( t ), x1 ( t ),... x L ( t )]T onde
cada elemento xi, pode assumir qualquer valor em {-j,...,0,...,k}, sendo k e j inteiros positivos.
Se o conjunto de coeficientes denotado pelo vetor peso w(t)= [w0(t),w1(t),...,wL(t)]T, a fase
de ativao segue o modelo da figura 3.4.
w1
X0
w2
X1
......
G(.)
wn
Xn
y(t) o produto interno de x(t) e w(t), y(t)=x(t)Tw(t). Uma entrada x0(t) constante associada
ao peso w0(t) para controle do nvel de limiar (polarizao). q(t) assume valores binrios
produzidos por G(.) segundo a equao: q(t)= G(y(t)), onde G(.) pode ser a funo sinal,
degrau ou sigmide. Para a funo sinal ou o degrau, tem-se o perceptron.
Widrow e Hoff propuseram um algoritmo que tornam a aprendizagem mais rpida e
precisa. Os pesos so ajustados em funo do erro na sada, minimizando o erro quadrtico
mdio sobre todos os padres do conjunto de treinamento.
O mtodo dos mnimos quadrticos mdios calculado pela diferena entre o padro
esperado e a sada da rede. A minimizao da soma do erro quadrtico envolve uma
minimizao "gradiente descendente". O clculo dado por: E{(t)2}=E{[d(t)-y(t)]2=E{[d(t)wTx(t)]2, onde E{.} o valor esperado. Este mtodo permite a aprendizagem mesmo para
sadas corretas.
Perceptron de Multicamadas
28
c j = f bi v ij + j , para j=1,..,q.
i =1
c 1k
c1
w11
cjk
wp1
wi1
b1
vn1
v11
a1
v1i
cj
wpj
w1q
w1j wij
vh1
c qk
bi
vhi
wiq
v1p
ah
wpq
vni
FC
cq
FB
bp
vhp
vnp
V
an
FA
a1k
ahk
ank
FIGURA 3.5 - Perceptron Multicamadas de trs camadas.
FONTE: Simpson (1990, p. 114).
As redes perceptron multicamadas podem ser treinadas atravs de vrios algoritmos de
29
30
permitem que se comece: a) com uma rede grande que podada durante o treinamento (ou
seja, tcnica de prunning - poda); b) uma rede pequena que monitorada para a soluo do
problema e gradualmente incrementada para o tamanho final apropriado (tcnica de
growing - crescimento)(Haykin, 1994). Tambm possvel combinar as duas tcnicas,
"prunning" (poda) e "growing" (crescimento) (Lin e Lee, 1996 pgina 427). Para o
crescimento de redes, pode-se utilizar duas abordagens diferentes: 1) particionamento do
espao de entradas; ou 2) seleo de prottipos (Lin e Lee, 1996 pgina 427).
A abordagem 1) est relacionada com o particionamento do espao usando-se o menor
nmero de hiperplanos possvel, o que equivalente a projetar uma rede com o menor nmero
de neurnios possvel. Lin e Lee (1996) pginas 427-433, descrevem alguns algoritmos que
constroem redes neurais gradualmente.
A abordagem por seleo de prottipos, 2), envolve o uso de uma rede classificadora
de padres que consiste de uma cascata de duas subredes: a rede de casamento de pontos
(matching score - MS) e a rede de mximos (MAXNET) ou uma rede do tipo "winner-takeall" (o vencedor leva tudo), que uma rede recorrente (Lin e Lee, 1996, pgina 309). No
treinamento de uma rede classificadora de padres, dado um conjunto grande de entrada
com diferentes categorias e a rede cria um conjunto menor de prottipos que estatisticamente
representa padres de categorias diferentes. A subrede MS armazena estes prottipos para
casar com os padres no conjunto de teste, quando atribui um "score" para o grau de
casamento. A seleo de prottipos reduz a complexidade e aumenta a habilidade de
generalizao do classificador (Lin e Lee, 1996). Dado que o nmero de categorias em um
problema de classificao no conhecido e/ou as entradas para treinamento so produzidas
em execuo ou em tempo real, a rede de classificao deveria selecionar ou criar um novo
prottipo incrementalmente durante o processo de treinamento, o que equivalente ao
processo de criao de novos neurnios, uma vez que cada prottipo representado por um
neurnio na rede MS (Lee e Lin, 1996).
O algoritmo de correlao em cascata foi proposto por Fahlman (1990) como uma
arquitetura e um algoritmo de aprendizagem supervisionada para redes neurais. Esta
arquitetura treina e automaticamente adiciona novos neurnios rede neural, um a um,
enquanto a aprendizagem no for satisfatria. O resultado final uma rede com mltiplas
camadas.
31
S =
( v p v )( E
E o)
p ,o
onde: o - a
(E
p ,o
)a
,
p
I i,p
S
w
obtido como:
i
p ,o
32
Camada de Entrada
Camada de Sada
Neurnios
ascendente para maximizar S. Novamente se est treinando uma camada nica de pesos,
podendo-se usar a regra delta. Quando S pra de crescer, o novo neurnio candidato
instalado como um n ativo na rede e seus pesos de entrada so mantidos constantes. Os
neurnios da sada so treinados pela regra delta novamente e o ciclo se repete at o erro
convergir para um valor aceitvel.
Em Silva (1997) trs experimentos so descritos utilizando a rede "cascadecorrelation": o problema do OU-exclusivo, uma aplicao de aproximao de funo e uma
aplicao de modelagem.
Kohonen
A rede de Kohonen auto-organizvel e consiste de uma camada bidimensional de
neurnios arranjados espacialmente. Todas as entradas so conectadas a cada n na rede. A
realimentao est restrita a interconexes laterais entre ns vizinhos. No h camada de
33
sada separada, cada neurnio na rede tambm um neurnio de sada. A figura 3.7 ilustra um
mapa de caractersticas, de Kohonen.
O algoritmo de aprendizagem organiza os ns na grade em vizinhanas locais, que
funcionam como classificadores de caractersticas sobre os dados de entrada. O mapa
topogrfico organizado autonomamente por um processo cclico de comparao dos padres
de entrada com os vetores armazenados em cada n. A aprendizagem no supervisionada.
Nos locais onde as entradas casam com os vetores ns, a rea do mapa otimizada
seletivamente para representar uma mdia dos dados de treinamento para aquela classe. A
partir de um conjunto de ns aleatoriamente organizado, a grade ajusta-se em um mapa que
tem representao local e auto-organizado.
Ns de entrada
FIGURA 3.7 - Mapa de Kohonen.
FONTE: Beale e Jackson (1992, p. 110).
O algoritmo da rede de Kohonen funciona da seguinte forma:
a) Inicializao.
Define-se wij(t) (0 i n-1) como o peso entre a entrada i e o n j no tempo t. Os pesos so
inicializados para valores aleatrios pequenos. Toma-se o raio da vizinhana em torno do n
n 1
(x (t ) w
i
i= 0
ij
(t )
34
(t) um ganho, (0<(t)<1) que decresce no tempo, diminuindo a adaptao dos pesos. A
vizinhana Nj*(t) decresce com o tempo, convergindo para rea de atividade mais alta.
f) Repete-se todos os passos a partir de b).
O esquema de aprendizagem empregado o "winner-take- all" (vencedor leva tudo),
apropriado para agrupamentos e classificaes. Entretanto, as redes com este esquema s
podem ser treinadas se as classes ou grupos so linearmente separveis por hiperplanos que
passam pela origem.
A rede de Kohonen foi usada em reconhecimento de objetos (Bebis e Papadourakis,
1992) e em segmentao de imagens em multiescala (Haring et al, 1994).
Neocognitron
O neocognitron foi proposto por Fukushima (1982) como modelo do mecanismo de
reconhecimento de padres visuais, com plausibilidade biolgica. Modelar redes neurais
ajuda a descobrir o mecanismo do crebro (Fukushima, 1988). A rede original autoorganizvel com aprendizagem no-supervisionada, e pode reconhecer padres mesmo com
variaes em posio e forma. Outras verses do modelo utilizam aprendizado
supervisionado.
Para emular o sistema visual, comeando pela retina, Fukushima (1988) tomou como
base consideraes fisiolgicas de que as reas visuais do crebro apresentam neurnios que
respondem de forma seletiva a caractersticas locais em um padro, tais como bordas e linhas
em certas orientaes. Clulas em reas superiores do crtex visual respondem a certas
figuras como crculos, tringulos, quadrados ou mesmo faces humanas. Assim, o crebro
possui uma estrutura hierrquica para extrao das primeiras caractersticas de um padro
visual. As caractersticas em seguida so integradas em outras mais complexas. Dentro desta
hierarquia, uma clula em estgios superiores geralmente recebe sinais de uma grande rea da
retina, sendo mais sensvel posio do estmulo, e os sinais fluem em sentido para frente e
para trs.
A rede neocognitron tenta modelar tal mecanismo. A rede analgica, ou seja, as
entradas e sadas tm valores analgicos no negativos. Uma camada de entrada seguida por
um nmero de mdulos conectados em srie. Cada mdulo consiste de duas camadas, a
primeira com clulas "S" (clulas simples do crtex visual) e a segunda com clulas "C
(clulas mais complexas). Cada clula S tem vrias entradas, excitatrias ou inibitrias.
35
Para sinais de entradas excitatrios a sada da clula cresce e para sinais inibitrios ela
decresce. Cada componente do vetor que forma a entrada tem seu prprio peso com valor
positivo, que pondera as entradas.
A sada da clula pode ser conectada a vrias entradas de outras clulas. Para uma
i =1
a ( i ) u ( i ) / (1 + b v ) ) 1 , onde a(i) e b so
Fazendo
e = a (i )u(i )
h=b.v
reescreve-se
i =1
e h
1+ e
w =
1 =
. A figura 3.9 ilustra uma clula usada no neocognitron.
1 + h
1 + h
saturao da sada.
Os pesos das ligaes entre as clulas "C" em uma camada e clulas "S" na prxima
camada so modificveis, assim como os pesos entre a entrada e a outra camada na clula
"C". Os pesos intracamadas so fixos. Pode existir vrios "planos" (nveis) dentro de cada
camada. Cada clula recebe uma entrada de uma camada relativamente pequena e fixa que a
antecede. Quando a camada de sada alcanada, uma clula de sada v a entrada inteira
como um resultado deste efeito telescpico de decrescer o nmero de clulas em cada plano
com a profundidade na rede, como est ilustrado na figura 3.8.
36
37
no
N 1
t.
tempo
As
iteraes
continuam
at
atingir
convergncia
i=0
1
w x x + xi Ti
2 i j i ij i j
i
38
39
na modelagem dos
problemas.
Possivelmente a forma mais eficiente para determinar se uma aplicao de redes
neurais satisfatria, comparar os resultados obtidos com aqueles conseguidos atravs de
tcnicas j existentes, que em certas aplicaes podem apresentar disparidades por falta de
suficincia de modelo.
Tsoukalas e Uhrig (1997) e Haykin (1996) enumeram alguns itens que devem ser
observados na deciso de se utilizar redes neurais para resolver um problema. Entre eles
esto: aplicaes onde a tecnologia de computao existente no seja adequada; problemas
que requerem raciocnio qualitativo ou quantitativo complexo; problemas cujas solues
provm de parmetros extremamente interdependentes e que no tm quantificao precisa;
aplicaes que envolvem parmetros mltiplos interagindo; aplicaes envolvendo dados
ruidosos; aplicaes com dados incompletos; etc. Todos esses tpicos refletem aspectos de
engenharia, que so importantes quando se considera aplicaes de situaes no simuladas.
Haykin (1996) discute critrios prticos para aceitao de uma rede neural, para a resolver um
problema em processamento de sinais, dado que os seguintes atributos so observados:
preservao tima de informao disponvel e performance tima, dentro de uma viso
estatstica; robustez na performance com respeito a pequenas variaes nas condies
ambientais. Se estes atributos so observados, as redes neurais podem ganhar aceitao como
ferramentas para resolver problemas prticos.
40
Um dos problemas de uso das redes neurais est relacionado com o tempo usado no
treinamento, que um problema mal-condicionado ("ill-posed") (Haykin, 1996), e que pode
ser influenciado por fatores como: 1) escolha do tipo de rede; 2) quantidade de dados no
conjunto de treinamento disponvel; 3) arquitetura da rede utilizada; 4) natureza dos dados
nos conjuntos de treinamento; e 5) limitaes de mquina, por exemplo. Como forma de
superar estes problemas de incio, Tsoukalas e Uhrig (1997) comentam vrios aspectos
prticos do uso de redes neurais, que englobam: a) seleo da rede neural adequada para a
soluo de um problema; b) projeto da rede neural; c) fontes e Processamento de dados; d)
Representao dos dados; e) escalonamento e normalizao; e f) seleo de dados para
treinamento e testes.
A seleo da rede neural, a), depende dos dados disponveis para a aplicao. Se os
dados consistirem de pares de entrada e sada, ou seja, se alm dos dados de entrada, existir os
dados que se deseja, ento possvel se escolher uma rede neural com treinamento
supervisionado. Em geral estas situaes so difceis do ponto de vista prtico, pois nem
sempre fcil se obter tais pares de dados de entrada e sada, ou seja, nem sempre se tem
conhecimento a priori do que se espera que a rede neural classifique, aproxime ou modele.
Para aplicaes que no favorecem a superviso, o treinamento no supervisionado classifica
os dados de entrada segundo propriedades dos padres dos agrupamentos possveis,
traduzidas por medidas de similaridades associadas aos padres.
Como mencionado anteriormente, um aspecto importante relativo ao modelo de rede a
ser utilizado o tempo necessrio para treinamento e para ativao. Em geral as redes neurais
demandam bastante tempo para treinamento, mas na ativao uma nica passagem
suficiente. O tempo de ativao pode ser ainda menor, quase instantneo, se a rede for
implementada em "hardware" (circuitos digitais).
No projeto de uma rede neural artificial, b), os pontos seguintes devem ser
observados: o tamanho da rede neural; a escolha da sada; o tipo de funo de ativao para as
unidades; o nmero de camadas; e o nmero de neurnios em cada camada. O tamanho da
rede dependente da natureza do problema e da experincia do usurio. Os novatos no uso de
redes neurais preferem redes pequenas, enquanto tentam reduzir o problema. Para os usurios
experientes, prefervel que o problema decida o tamanho da rede a ser usada. A escolha da
sada est relacionada com a natureza da aplicao, que pode requerer ativao binria ou
multivalorada. Nmeros reais na sada podem ser traduzidos em unidades (monetria, tempo,
distncia) podendo ser codificadas em forma binria ou em multivalores. As sadas nas redes
41
42
43
escalonadas e
44
0.8/(xmax-xmin) e b = 0.9-0.8xmax/(xmax-xmin)
Portanto,
y=
0.8 x max
0.8
x + 0.9
x max x min
x max x min
O escalonamento linear com valores entre 0.1 e 0.9 prefervel quando se usa a
funo de transferncia sigmide, o que evita a paralisia na aprendizagem, que significa a
repetio de um mesmo valor do erro a partir de um ciclo de aprendizagem, causada pela
saturao da funo de transferncia. No caso da funo de ativao tangente hiperblica,
prefervel usar a tcnica de "Z scores" (o nmero de desvios padro acima e abaixo da mdia)
(Tsoukalas e Uhrig, 1997). Para esta transformao primeiro se calcula a mdia e o desvio
padro para a varivel em todo o conjunto de treinamento. Depois converte-se cada valor para
um "Z score", subtraindo-se a mdia e dividindo a diferena pelo desvio padro, ou seja,
45
correlaes mais difceis. O tempo de treinamento pode crescer muito se no houver tipos de
dados suficientes para as associaes, o que ocorre freqentemente com redes do tipo
"backpropagation" com um nmero excessivo de neurnios escondidos, pois a rede memoriza
valores individuais, sendo bem treinada mas com baixo desempenho em testes com dados
novos.
46
47
Etapa 7. Pr-processamento das imagens para a normalizao dos dados para os algoritmos
de redes neurais.
No
estgio
foram
realizados
experimentos,
implementando-se
algoritmos
problema especfico.
Esta fase esta relacionada com a aquisio das amostras para formao do conjunto de
treinamento para a rede neural a ser utilizada.
O problema a ser resolvido classificar dados de satlite multiespectrais. No trabalho
trs bandas (faixas espectrais) so dadas correspondendo cada uma a um sensor sensvel a um
48
49
nXn
n
n
( n = 3,5,7,9 )
243
81
50
81
81
n = (3, 5, 7, 9)
a)
81
81
81
243
b)
FIGURA 8.3 - Exemplo de aquisio de amostras e imagens.
51
A aquisio das amostras foi efetuada por uma rotina (adrdsamp.m), que permite a
escolha entre tamanhos de janela fixos, variveis com iterao ou variveis em funo de uma
medida de homogeneidade. O algoritmo tambm permite a escolha sobre os tipos de dados
que podem ser fornecidos durante o treinamento: os prprios pixels ou medidas estatsticas.
No trabalho utilizou-se apenas a abordagem por tamanho fixo, com tamanho de janela
3 x 3, resultando ento em uma camada de entrada para rede de 9 pixels. Outro teste tambm
foi realizado utilizando medidas estatsticas das amostras para representar as propriedades da
classe. Foram utilizadas ento a varincia e a mdia. A varincia usada como medida de
homogeneidade e a mdia da amostra garantindo a identidade da classe.
Para o exemplo relatado foram extradas 50 amostras por classe, totalizando 200
amostras ao todo. Estas amostras compunham os dados de entrada. Como o algoritmo de rede
neural utiliza aprendizado supervisionado, foi necessrio tambm criar o conjunto de padres
desejados que seria apresentado na sada com a apresentao do conjunto de entrada. Tal
conjunto foi formado por vetores binrios representando as classes desejadas. Como apenas 4
classes foram escolhidas, os vetores de sada desejadas tinham dimenso 4. Portanto, a
camada de sada da rede tem 4 neurnios.
As classes escolhidas para classificao so: gua, vegetao, rea residencial e solo
exposto.
52
O nmero de neurnios nas camadas internas foram conseguidos atravs de tentativa erro. Os
neurnios nas camadas internas tm como funo de ativao a funo sigmide (figura 3.2).
Na camada de sada usou-se a funo linear. Assim, os neurnios na sada, durante a ativao
da rede, apresentam valores no binrios. Para recuperar os vetores binrios utiliza-se uma
rede do tipo MAXNET, que iterativamente busca o neurnio que apresenta maior ativao.
Este processo feito se a soma das ativaes superar 0.4, ou seja, se os neurnios
apresentarem pelo menos um dcimo da ativao correspondente ao nvel 1, escolhido para
representar o neurnio correspondente a cada classe.
O algoritmo de rede neural utilizando o treinamento por "backpropagation" foi
implementado em ambiente MATLAB como a seguir. Entretanto, durante o experimento de
classificao de imagens de satlite, utilizou-se as implementaes existentes no prprio
ambiente MATLAB, como est no apndice A, onde se encontra todos os arquivos em
formato "scripts" utilizados no experimento.
- Algoritmo de Perceptron em Multicamadas Utilizando o Treinamento por Backpropagation:
% Algoritmo da Rede Perceptron em Multicamadas utilizando Treinamento por
Backpropagation
% Recebe Parametros de Entrada e Devolve Parametros Treinados.
%
04.22.96
%
Jose Demisio Simoes da Silva
%
% Descrio dos parmetros:
%
Parmetros de Sadas:
%
wih_initial
- Pesos iniciais entre a camada de entrada e a camada escondida
1
%
biasih_initial
- Limiares iniciais dos neurnios da camada escondida 1
%
whh_initial
- Pesos iniciais entre camadas escondidas 1 e 2.
%
biashh
- Limiares iniciais dos neurnios da camada escondida 2
%
who_initial
- Pesos iniciais entre camada escondida 2 e camada de sada
%
biasho_initial
- Limiares iniciais dos neurnios da camada de sada
%
wih
- Pesos finais entre a camada de entrada e a camada escondida 1
%
whh
- Pesos finais entre as camadas escondidas 1 e 2
%
who
- Pesos finais entre a camada escondida 2 e a camada de sada
%
thresholdih
- Limiares finais dos neurnios da camada escondida 1
%
thresholdhh
- Limiares finais dos neurnios da camada escondida 2
%
thresholdho
- Limiares finais dos neurnios da camada de sada
%
epoch
- Nmero final de iteraes
%
erroacumulado
- Evoluo do erro de treinamento
%
% Parmetros de Entrada:
%
n_de_no
s_input
- Nmero de entradas
53
%
%
%
%
%
%
%
%
%
%
%
%
%
functypeih
n_de_nos_hidden1
unctypehh
n_de_nos_hidden2
functypeho
n_de_nos_output
i
t
alfa
eta
n_max_de_epochs
err_desejado
function
[wih_initial,biasih_initial,whh_initial,biashh,who_initial,biasho_initial,wih,whh,who,threshol
dih,
thresholdhh, thresholdho,epoch,erroacumulado] =
bp_all(n_de_nos_input,functypeih,n_de_nos_hidden1,
functypehh,n_de_nos_hidden2,functypeho,
n_de_nos_output,i,t,alfa,eta,n_max_de_epochs,err_desejado)
% Computa Tamanho dos Vetores de Entrada:
[n_de_padroes_entrada n_input]=size(i);
[n_de_padroes_saida n_output]=size(t);
% Inicializa Valores de Biases (polarizaes):
thresholdih=ones(1,n_de_nos_hidden1)*rand(1,1);
% Normaliza Biases:
thresholdih=thresholdih-max(max(thresholdih))/2;
biasih_initial=thresholdih;
thresholdhh=ones(1,n_de_nos_hidden2)*rand(1,1);
thresholdhh=thresholdhh-max(max(thresholdhh))/2;
biashh_initial=thresholdhh;
thresholdho=ones(1,n_de_nos_output)*rand(1,1);
thresholdho=thresholdho-max(max(thresholdho))/2;
biasho_initial=thresholdho;
% Inicializa Pesos da Camada de Entrada e das Camadas Escondidas:
% Camada de Entrada para a Camada Escondida 1
wih = rand(n_de_nos_input,n_de_nos_hidden1);
wih=wih-max(max(wih))/2;
wih_initial=wih;
wihant=zeros(n_de_nos_input,n_de_nos_hidden1);
wihant=wih;
% Camada Escondida 1 para Camada Escondida 2
54
whh = rand(n_de_nos_hidden1,n_de_nos_hidden2);
whh=whh-max(max(wih))/2;
whh_initial=whh;
whhant=zeros(n_de_nos_hidden1,n_de_nos_hidden2);
% Inicializa Pesos da Camada Escondida para a Camada de Saida:
who = rand(n_de_nos_hidden2, n_de_nos_output);
who=who-max(max(who))/2;
who_initial=who;
whoant = zeros(n_de_nos_hidden2, n_de_nos_output);
whoant=who;
% Seta Variaveis de Controle de Treinamento:
% Para o aprendizado:
para_learning=0;
% Conta o Numero de Tentativas (Iteracoes):
epoch=0;
% Conta Periodo para Apresentacao de Resultados Parciais:
period_epoch=1;
% Inicia Treinamento:
while( ~para_learning )
% Conta as Iteracoes:
epoch=epoch+1;
% Apresenta Padrao por Padrao:
for padrao=1:n_de_padroes_entrada
in = [-1 i(padrao,:)];
toih= in *[thresholdih; wih];
% Chama Funcao de Ativacao :
oih = actvfunc(toih,functypeih);
tohh = [-1 oih]*[thresholdhh; whh];
ohh = actvfunc(tohh,functypehh);
toho= [-1 ohh]*[thresholdho; who];
oho = actvfunc(toho,functypeho);
% Calcula o Erro entre o Padrao Desejado e o Obtido pela Rede:
e(padrao,:)=t(padrao,:)-oho;
% Faz a Soma dos Erros Quadrativos Instantanea:
errodisc(padrao)=sum(sum(e(padrao,:).*e(padrao,:)))/2;
% Calcula Gradiente:
55
derivsigho=deriv(oho,toho,functypeho);
gradho = e(padrao,:).*derivsigho;
derivsighh=deriv(ohh,tohh,functypehh);
gradhh = derivsighh*sum(gradho*who');
derivsigih=deriv(oih,toih,functypeih);
gradih = derivsigih*sum(gradho*who');
% Acha o Acrescimo para os Pesos:
deltaih = eta*i(padrao,:)'*gradih;
deltahh = eta*oih'*gradhh;
deltaho = eta*ohh'*gradho;
% Atualiza Pesos:
wih=wih+alfa*(wih-wihant)+ deltaih;
whh=whh+alfa*(whh-whhant)+ deltahh;
who=who+alfa*(who-whoant)+ deltaho;
if epoch > 1
wihant=wih;
whhant=whh;
whoant=who;
end
% Atualiza Biases:
thresholdih=thresholdih-eta*gradih;
thresholdhh=thresholdhh-eta*gradhh;
thresholdho=thresholdho-eta*gradho;
end
% Acumula o Erro Medio por Iteracao (epoch)
erroepoch=sum(errodisc)/n_de_padroes_entrada;
errodisc=0;
% Apresenta Resultados Parciais
if period_epoch == 5
fprintf('epochs %d , erro %f\n',epoch,erroepoch)
period_epoch=0;
end
% Verifica a Condicao de Parada do Treinamento
if erroepoch < err_desejado | epoch > n_max_de_epochs
para_learning = 1;
end
% Acumula Erro Final
erroacumulado(epoch)=erroepoch;
period_epoch=period_epoch+1;
end
% Imprime a Evolucao do Erro.
plot (erroacumulado)
56
Etapa 10. Testes dos algoritmos de redes neurais em tarefas bem conhecidas de anlise de
imagens.
Como mencionado na seo anterior os experimentos com classificao de imagens
foram desenvolvidos utilizando as implementaes do perceptron em multicamadas
disponveis no "toolbox" do ambiente MATLAB. No apndice A tem-se a descrio das
vrias rotinas implementadas como arquivos "scripts", que durante a execuo invocam as
funes que implementam a rede neural utilizada.
Dois arquivos "scripts" bsicos so utilizados: um para treinamento da rede
(treiclas.m) e outro para ativao da rede (classify.m). O arquivo treiclas.m executa a fase de
treinamento da rede neural. O "script" foi projetado para permitir que o usurio construa o
conjunto de treinamento ou utilize conjuntos definidos anteriormente.
Para teste de aprendizagem foi feito um outro conjunto teste contendo o mesmo
nmero de amostras por classe. Este conjunto foi utilizado para medir a generalizao da rede
aps treinamento, o que ser comentado na seo referente medidas de desempenho.
Quatro conjuntos (samples2, samples3, samples4 e samples5) de dados foram
extrados das imagens. Sendo dois (samples2 e samples3) com janelas de tamanho fixo e dois
(samples4 e samples5) com janelas de tamanhos variveis em funo da varincia dentro da
57
janela. Neste caso a janela escolhida aquela que apresenta a menor varincia, interpretada
no contexto como sendo a mais suave, do ponto de vista de distribuio de radiometrias. As
amostras do arquivo samples2 foram utilizadas para treinar a rede com abordagens estatsticas
e no estatsticas. A abordagem no estatstica utiliza os prprios nveis de cinza das amostras
como dados de entrada para rede, enquanto que a abordagem estatstica utiliza as medidas de
mdia e varincia das amostras.
Os dados obtidos com janelas de tamanho varivel foram treinados apenas na
abordagem no estatstica.
A seguir so exibidos os resultados do treinamento obtido atravs das curvas de
evoluo do erro de treinamento.
A tabela 10.1 exibe um resumo da arquitetura da rede e do tipo de abordagem utilizada
no treinamento.
TABELA 10.1 - Resumo da arquitetura da rede neural utilizada com a abordagem utilizada no
treinamento.
Experimento
exp1
exp2
exp3
Abordagem
No estatstica
Estatstica
No estatstica
Conjunto de
SSE
SSE alcanado
Nmero de
resultados de
treinamento
estabelecido
em
iteraes no
treinamento
utilizado
como alvo
treinamento
treinamento
exp1
samples2
40
39.9840
475
exp2
samples2
40
39.9792
435
exp3
samples4
40
39.82
135
As figuras 10.1, 10.2 e 10.3 mostram a curvas de erro obtidas durante o treinamento.
58
3500
1600
1400
3000
1200
2500
1000
SSE
SSE
4000
1800
2000
800
1500
600
1000
400
500
200
0
100
200
300
Number of epochs
400
500
100
200
300
Number of epochs
400
500
800
700
600
SSE
500
400
300
200
100
0
20
40
60
80
100
Number of epochs
120
140
FIGURA 10.3 - Curva de treinamento do experimento 3. A linha azul mostra como o erro de
treinamento. A linha vermelha o erro alvo (SSE=40).
Aps o treinamento foi realizado o teste de generalizao da rede treinada. Este teste
consiste em apresentar dados no utilizados no treinamento e analisar o comportamento da
rede. A tabela 10.3 mostra um resumo dos testes de generalizao realizados.
TABELA 10.3 - Resultados da generalizao das redes treinadas.
Experimento
exp1
exp2
exp3
59
Os dados na tabela 10.3 esto organizados segundo a utilizao dos arquivos de dados
usados no treinamento. A coluna referente ao arquivo samples3, significa que o treinamento
foi realizado com as amostras do arquivo samples2 e a coluna referente ao arquivo samples5,
significa que o treinamento foi realizado com as amostras do arquivo samples4.
FIGURA 10.4 - Resultado da classificao obtida com a rede neural treinada no experimento
1 (abordagem no estatstica, com janela de 3x3).
As figuras 10.4, 10.5 e 10.6 exibem o resultado da classificao realizada pelas redes
neurais, como resultado da apresentao das imagens originais filtradas por filtro passa baixas
para a eliminao de rudos. A figura 10.4 corresponde a classificao com os dados do
experimento 1 (exp1). A figura 10.5 exibe a classificao com os dados do experimento 2
(exp2). A figura 10.6 mostra o resultado da classificao, usando-se os dados do experimento
3 (exp3).
60
Na figura 10.4 as classes de interesse esto atribudas da seguinte forma: gua - cor
azul; Vegetao - cor verde; rea Construda - cor laranja; e Solo Exposto - Vermelho.
Na figura 10.5 as classes so assim distribudas: gua - cor azul; Vegetao - cor
verde; rea Construda - cor ciano; e Solo Exposto - Vermelho.
FIGURA 10.5 - Resultado da classificao obtida com a rede neural treinada no experimento
2 (abordagem estatstica, com janela de 3x3).
Na figura 10.6 as classes tm as seguintes cores associadas: gua - cor azul;
Vegetao - cor verde; rea Construda - cor laranja; e Solo Exposto - Vermelho.
61
FIGURA 10.6 - Resultado da classificao obtida com a rede neural treinada no experimento
3 (abordagem no estatstica, com janela de 9x9; Amostras obtidas com
janela adaptativa).
As figuras 10.4 e 10.5 exibem uma grande confuso entre as classes rea Construda e
Solo Exposto, como foi constatado no teste de generalizao e atravs da matriz de confuso
(ver tabelas 11.1, 11.2 e 11.3). Este problema pode ser solucionado se as amostras forem
melhor selecionadas durante o processo de aquisio de amostras e definio de classes.
A figura 10.6 exibe um melhor resultado, devido ao fato da janela (campo de visada)
do algoritmo classificador ser de grande dimenso (9x9), o que implica em um maior nmero
de pixels vizinhos interagindo na classificao de um pixel.
62
Vegetao
92
10
8
86
0
0
0
4
rea Construda
66
34
Solo Exposto
10
38
52
gua
Vegetao
63
rea Construda
Solo Exposto
gua
Vegetao
90
8
10
84
0
0
0
10
rea Construda
66
34
Solo Exposto
12
36
50
gua
Vegetao
rea Construda
Solo Exposto
Vegetao
100
14
0
76
0
0
0
10
rea Construda
96
Solo Exposto
34
62
gua
Vegetao
rea Construda
Solo Exposto
Concluso
Este trabalho teve como objetivo a familiarizao com as redes neurais artificiais,
principalmente voltadas para aplicaes em Viso Computacional e Processamento de
Imagens. Apesar dos algoritmos de redes neurais serem cada vez mais utilizados em diversas
reas de aplicao, ainda h muito trabalho a ser realizado nas duas reas mencionadas
anteriormente, devido necessidade de adaptao dos algoritmos aos problemas destas reas.
A adaptabilidade dos modelos de redes neurais envolve estudos e pesquisas do
paradigma de redes neurais e das reas de aplicao. Os modelos de redes neurais disponveis
na literatura precisam ser construdos de forma a modelar os aspectos envolvidos nas tarefas,
o que implica na necessidade de pesquisas. Alm disso, existem muitos aspectos inerentes s
redes neurais que necessitam de pesquisas, para tornar os algoritmos de redes neurais
artificiais existentes e os que surgirem, mais eficientes no tocante a arquitetura utilizada e a
aprendizagem conseguida.
Durante o estgio foram feitos estudos e implementaes de algoritmos de redes
neurais, bem como o acompanhamento da sistemtica do uso de redes neurais em tarefas de
Processamento de Sinais e Imagens desenvolvidos no mbito do Departamento onde o estgio
foi desenvolvido.
Os experimentos propostos realizados consistiram em classificar imagens de satlite.
O objetivo principal foi aplicar a metodologia de trabalho de aplicao de redes neurais em
64
tarefas desta natureza, ou seja, como adaptar uma rede neural para executar a tarefa de
classificao supervisionada de imagens de satlite.
Portanto, os resultados encontrados, como visto nas figuras 10.4, 10.5 e 10.6, no so
resultados ditos precisos devido a dois fatores: primeiro, a imagem utilizada uma imagem
predominantemente de zona urbana, com uma alta densidade construda. Isso introduz um
grau de complexidade na obteno das amostras para as classes estabelecidas como alvo, por
a rea apresentar um uso de solo muito diversificado. Em segundo, como o problema de
sensoriamento remoto abordado no era o objetivo principal do trabalho, a seleo das
amostras no envolveu passos criteriosos para melhorar o desempenho do classificador.
Por outro lado o trabalho mostrou o poder das ferramentas de redes neurais, apesar da
complexidade existente quanto necessidade de treinamento. Em geral, a maioria do tempo
utilizado nos experimentos foi dedicada ao treinamento das redes neurais.
A especificao da rede neural uma tarefa iterativa que envolve a especificao de
vrias tentativas para se atingir uma topologia que resolva o problema. A resoluo do
problema inferida se h o treinamento da rede, ou seja, se a rede convergir para o erro alvo.
Entretanto, na literatura existem muitos trabalhos que sugerem o uso de um determinado
nmero de neurnios na camada interna, em funo do nmero de padres no conjunto de
treinamento. Essa abordagem pode no funcionar sempre em funo da natureza dos dados no
conjunto de treinamento.
Observou-se que muitos problemas podem ser resolvidos utilizando-se as redes
neurais. Entretanto, a maioria dos problemas resolvidos por redes neurais relatados na
literatura, j foram resolvidos por outras abordagens tambm. Em geral, a abordagem com
redes neurais tentam simplificar os problemas no sentido de que as restries inerentes a
maioria dos problemas, substituda pela tarefa menos difcil de treinar a rede neural, apesar
de se tomar bastante tempo de treinamento dependendo do algoritmo de aprendizagem usado.
H a necessidade entretanto, de se pesquisar novos modelos ou procedimentos de prprocessamento, que sejam mais adequados para determinadas reas de aplicao.
O estgio permitiu a familiarizao com ferramentas de simulao de redes neurais
adequadas e voltadas para a modelagem do problema em mos.
65
Referncias Bibliogrficas
Accoto, P.; Arena, F.; Storti-Gajani, G. Image Texture analysis with neural networks. World
Congress on Neural Networks, vol III, pp. III-776 - III-779, July 11-15, 1993.
Aloimonos, Y. Visual Shape Computation. Proceedings of the IEEE, 76(8):899-916, August
1988.
Aloimonos, Y. Active Perception. Editor Yiannis Aloimonos, Lawrence Erlbaum Associates,
New Jersey, 1993.
Bajcsy, R. Active Perception. Proceedings of the IEEE, 76(8):996-1005, August 1988.
Bajcsy, R.; Campos, M. Active and Exploratory Perception. CVGIP: Image Understanding,
56(1):31-40, July 1992.
Bebis, G.N.; Papadourakis, G.M. Object Recognition using Invariant Object Boundary
Representations and Neural Network Models. Pattern Recognition, 25(1):25-44, 1992.
Ballard, D.H.; Brown, C.M. Principles of Animate Vision. CVGIP: Image Understanding,
56(1):3-21, July 1992.
Beale, R.; Jackson, T. Neural Computing: An Introduction. IOP Publishing Ltd. 1990.
Bertero, M.; Poggio, T.; Torre, V. III-Posed Problems in Early Vision. Proceedings of the
IEEE, 76(8): 869-889, August 1988.
Bhuiyan, S.; Matsuo, H.; Iwata, A.; Fujimoto, H.; Sato, M. An improved Neural Network
based Edge Detection Method. Proceedings of the International Conference on Neural
Information Processing, Seoul, Korea, 1:620-625, October 17-20, 1994.
Boden, M.A. Computer models of mind: Computational approaches in theoretical
psychology. Cambridge University Press, 1991, p. 1 - 87.
Canny, J. A Computational approach to edge detection. IEEE Transactions on Pattern
Analysis and Machine Intelligence PAMI-8(6):679-698, 1986.
Choi, J.J.; Araabshashi, P.; Marks, R.J.; Caudell, T.P. Fuzzy Parameter Adaptation in Neural
Systems. International Joint Conference on Neural Networks, Vol.1, pp. 232-238,
Baltimore, MD, 1992.
Cruz, Jess M.; Pajares, G.; Aranda, J. A Neural Network Model in Stereovision Matching.
Neural Networks, 8(5):805-813, 1995.
Duda, R.O.; Hart, P.E. Pattern Classification and Scene Analysis. Stanford Research
Institute, Menlo Park, California, John Wiley & Sons, 1973.
Eberhart, R.C.; Dobbins, R.W. Neural Networks PC Tools: A Practical Guide. The John
Hopkins University Applied Physics Laboratory, Laurel, Maryland, 1990.
66
Fahlman, S.E. and Lebiere, C. The Cascade-Correlation Learning Architecture. Report CMUCS-90-100, Carnegie Mellon University, Pittsburgh, February 1990
Feldman, J.A. Connectionist Models and Parallelism in High Level Vision. Computer Vision,
Graphics, and Image Processing, 31:178-200, 1985.
Finkel. L.H.; Sajda, P. Constructing Visual Perception. American Scientist, 82:224-237, May
- June 1994.
Fukushima, K. A Neural Network for Visual Pattern Recognition. Computer, 65-75, March
1988.
Fukushima, K.; Miyake, S. Neocognitron: A New Algorithm for Pattern Recognition Tolerant
of Deformations and Shifts in Position. Pattern Recognition, 15(6):455-469, 1982.
Haykin, Simon. Neural Networks: A Comprehensive Foundation. Macmillan, New York,
1994
Haykin, Simon. Neural Networks Expand SP's Horizons. IEEE Signal Processing Magazine,
24-49, March 1996.
Haring, S; Viergever, M.A.; Kok, J.N. Kohonen networks for multiscale image segmentation.
Image and Vision Computing, 12(6):339-344, July/August 1994.
Hines, W. Matlab Supplement of Fuzzy and Neural Approaches in Engineering. (Under
preparation) John Wiley & Sons, 1997.
Hecht-Nielsen B. Neurocomputing. Addison-Wesly, 1990.
Hertz, J.; Krogh, A.; Palmer, R.G. Introduction to the Theory of Neural Computing. Santa Fe
Institute. Addison-Wesly, 1991.
Horn, B.K.P. Robot Vision. New York, NY, McGraw-Hill, 1986.
Jolion, J.M. Computer Vision Methodologies. CVGIP: Image Understanding, 59(1):53-71,
January 1994.
Joshi, A.; Lee, Chia-Hoang, Stereo Correspondence and Missing Points. World Congress on
Neural Networks, vol II, pp. III-731 - III-734, July 11-15, 1993.
Khanna, T. Foundations of Neural Networks. Addison-Wesley Publishing Company, Inc.,
1990.
Khotanzad, A.; Lu, J.H. Object Recognition Using a Neural Network and Invariant Zernike
Features. Proceedings of IEEE Computer Society Conference on Computer Vision and
Pattern Recognition, 200-205, San Diego, CA, June 4-8, 1989.
Koch, C.; Segev, I. Methods in neuronal Modeling: From Synapses to Networks. Mit Press,
Cambridge, 1989.
67
68
Poggio, T.; Torre, V.; Koch, C. Computational vision and regularization theory. Nature
317:314-319, 1985.
Rao, Rajesh P.N.; Ballard, Dana H. A Class of Stochastic Models for Invariant Recognition,
Motion, and Stereo. Submitted to NIPS 96.
Rattarangsi, A.; Chin, R.T. Scale-Based Detection of Corners of Planar Curves. IEEE
Transactions on Pattern Analysis and Machine Intelligence, 14(4):430-449, April 1992.
Rosenfeld, A. Computer Vision: Basic Principles. Proceedings of the IEEE, 76(8):863-868,
August 1988.
Santos, N.M; Oliveira, E.C. A neurophysiological neural network model for vehicle
identification. Anais do II Congresso Brasileiro de Redes Neurais, Curitiba, 29/1001/11/1995, p. 133-137.
Sarkar, S.; Boyer, K.L. Perceptual Organization in Computer Vision: A Review and a
Proposal for a Classificatory Structure. IEEE Transactions on Systems, Man, and
Cybernetics, 23(2):382-398, March/April 1993.
Schalkoff, R.J. Digital Image Processing and Computer Vision, John Wiley & Sons, New
York, 1989.
Schalkoff, R.J. Pattern Recognition: Statistical, Structural and Neural Approaches, John
Wiley & Sons, New York, 1992.
Silva, J. D. S. The Cascade-Correlation using
http://www.lac.inpe.br/~demisio/casc.html. 1997.
the
Matlab
environment.
69
Uhrig, R.E. Tutotial: Artificial Neural Networks and Potential Applications to Nuclear Power
Plants. DOE-EPRI Workshop on Cost-Effective Instrumentation and Control
Technologies Upgrades, Nashivlle, Tennessee, March 22-24, 1995.
Wechsler, H. Computational Vision. Academic Press, Boston, 1990, p. 183 - 192.
Wenzel, B.C.; Gimblett, R.H. An Approach to Image Compression and Reconstruction Using
Neural Networks. World Congress on Neural Networks, vol IV, pp. IV-71 - IV-74, July
11-15, 1993.
Wehmeier, U.; Dong, D.; Koch, C.; Van Essen, D. Modeling the Mammalian Visual System.
Em Methods in neuronal Modeling: From Synapses to Networks. Editores: Christof Koch
e Idan Segev. MIT Press, Cambridge, 1989, p. 335-359.
You, S. D.; Ford, G. E. Network Model for Invariant Object Recognition. World Congress on
Neural Networks, vol II, pp. III-718 - III-721, July 11-15, 1993.
70