Sei sulla pagina 1di 31

UFES - Prof.

Ailson Rosetti de Almeida


Nota: Material preliminar, em edio
Universidade Federal do Esprito Santo
Programa de Ps-Graduao em Engenharia Eltrica
Redes Neurais
Um breve histrico
[4]
As redes neurais foram desenvolvidas na dcada de 40, pelo neurofisiologista
McCulloch e pelo matemtico Walter Pitts da Universidade de Illinois, os quais dentro do
esprito ciberntico, fizeram uma analogia entre clulas nervosas vivas e processo eletrnico
num trabalho publicado sobre os neurnios formais. O trabalho consistia num modelo de
resistores variveis e amplificadores representando conexes sinpticas de um neurnio.
Na mesma poca, o psiclogo Donald Hebb descobriu a base de aprendizado nas redes
neurais quando explicou o que ocorre, a nvel celular, durante o processo de aprendizagem no
crebro (lei a ser descrita mais adiante neste trabalho).
Em 1956 foi realizada a 1
a
Conferncia Internacional de Inteligncia Artificial quando,
tambm, foi aprensentado um modelo de rede neural artificial pelo pesquisador Nathaniel
Rochester, da IBM. Este trabalho consistia da simulao de uma rede com centenas de
neurnios cujo objetivo era a resposta a estmulos ambientais. Nessa mesma dcada, em 1959,
foi demonstrada a rede Adaline e, em 60, a rede Perceptron, por Frank Rosenblatt.
A rede Adaline, abreviao de Adaptative Linear Network, pela primeira vez, imitava
o crebro humano com processadores paralelos ao invs de um nica CPU.
Em 69, Marvin Minsky e Seymour Papert, publicaram um livro chamado
Perceptron, no qual, resumiram e criticaram seriamente a pesquisa neste ramo da
inteligncia artificial (redes neurais), apresentando o problema OU-EXCLUSIVO como um
exemplo de limitao do uso das redes, uma vez que no podia ser solucionado por uma rede
perceptron de camada nica.
Com isto, houve ento uma retrao na evoluo de pesquisas sobre redes neurais
(pelo menos no que tangia as publicaes e na liberao de verbas pelos rgos de fomento), e
s ento em 1982 com uma proposta de rede Perceptron multicamada, por Rumelhart e
McClelland, as pesquisas voltam a se aquecer e novos resultados surgem num processo
evolutivo que alcana os dias atuais.


A
i
l
s
o
n

R
o
s
e
t
t
i

d
e

A
l
m
e
i
d
a
Redes Neurais Prof. Ailson Rosetti de Almeida, UFES
Nota: Material em edio
_________________________________________________________________________________________
2
1. Introduo
Neurnio biolgico:
Crebro humano:
! ordem de 10
14
neurnios;
! ordem de 10
4
conexes partindo de cada um para outros neurnios.
Compare estes dados com o crebro de uma abelha, cujo nmero estimado de neurnios de
apenas 10
6
! No entanto, as abelhas so capazes de realizar tarefas de elevadssimo grau de
complexidade tais como identificao de padres atravs da viso, orientao e navegao, e
comportamento social.
Para uma rpida e interessante reflexo sobre estrutura neural e computabilidade, visite
http://www.csug.rochester.edu/users/ugrads/jtomson/paper2.html
Para uma apresentao em slides sobre a fisiologia do neurnio, visite
http://psychology.newcastle.edu.au/~brownr/PSYC103/LEC02B/sld001.htm
SOMA
SINPSE
AXNIO
DENTRITO
Impulsos
Eltricos
Detalhe
Receptores
Fenda
Sinptica
Neuro -
Transmissores
Axnio
Dentrito
Redes Neurais Prof. Ailson Rosetti de Almeida, UFES
Nota: Material em edio
_________________________________________________________________________________________
3
2. O modelo do neurnio de McCulloch-Pitts
Onde:
- Limiar de disparo do neurnio, ou polarizao (BIAS).
Sendo
Matematicamente, torna-se conveniente a representao do neurnio considerando a
polarizao como um peso sinptico extra, associado uma entrada fictcia de valor
unitrio:
Uma estrutura simples utilizando este modelo de neurnio foi batizada de PERCEPTRON
por Frank Rosenblatt (1962).

n
i
i i
x w
1
.

y
x
1
x
2
x
n
w
1
w
2
w
n

1
0

n
i
i i
x w
1
.
y
1
]
1

n
i
i i
h
x w y
f
1
.
HEAVISIDE de Funo
f
h
( ) ( ) ( ) ( ) 0 0 0 1 > se e se
f f
h h
1
]
1


1
]
1




n
i
i i
h
n
i
i i
h
x w x w y
f f
0 1
1
w
0
x
0
y
x
1
x
2
x
n
w
1
w
2
w
n
w
0
= -
x
0
= 1
Redes Neurais Prof. Ailson Rosetti de Almeida, UFES
Nota: Material em edio
_________________________________________________________________________________________
4
3. Lei de aprendizado de Hebb
A quase totalidade dos algortmos de aprendizagem de redes de neurnios baseia-se na
Lei de Hebb (1949):
Se a unidade (neurnio) A e a unidade B so simultaneamente excitadas, o grau
de ligao (peso) entre elas aumentado.
Experimento de comprovao:
1. Tocar um sino para chamar e alimentar um co;
2. Repetir a ao (1) vrias vezes;
3. Tocar o sino sem alimentar o co na sua chegada, e observar sua salivao.
Justificando o experimento:
Ao se realizar as aes (1) e (2) do experimento, esto sendo simultaneamente
excitadas unidades correlatas a audio e paladar. O que consequentemente induz no co a
expectativa de que ser alimentado sempre que ouvir o som do sino, ou seja, a interligao
entre a unidades excitadas se fortifica (aumento do peso). A ao (3) permite a comprovao
do aumento no peso uma vez que o toque do sino traz o co com um volume de salivao
equivalente quele presente nos momentos de sua alimentao e por conseguinte digesto.
Uma varieo da lei de Hebb adotada, tal que possibilite cobrir valores tanto positivos
quanto negativos, :
Ajustar o peso entre a unidade A e B em proporo ao produto de suas
atividades simultneas.
4. Mtodos de Aprendizado
Ajuste dos pesos de um neurnio tal que este fornea a sada desejada (correta)
para os padres (estmulos) apresentados em suas entradas.
! Este mtodo de aprendizado conhecido como Aprendizado Supervisionado, no qual
so apresentados rede pares entrada-sada, de tal forma que seja possvel uma
verificao da evoluo do aprendizado atravs da comparao entre a sada desejada e
sada real. Esta verificao realizada para todo o conjunto de dados de entrada, e a
correo dos pesos se processa enquanto o percentual de acerto (sada desejada = sada
real) estiver abaixo de um limite mnimo pr-estabelecido.
! Tambm existe o Aprendizado No-Supervisionado, no qual o algoritmo de
aprendizado estabelecido de forma a proporcionar a evoluo da inteligncia da rede.
Segundo as referncias este mtodo bastante empregado em problemas de classificao,
para dados dos quais no se conhece plenamente a especificao de sua origem. Exemplo;
Entrada: Sensoriamento ultrasnico de superfcies em um ambiente;
Redes Neurais Prof. Ailson Rosetti de Almeida, UFES
Nota: Material em edio
_________________________________________________________________________________________
5
Caracterstica da entrada: No relao entre valores obtidos e superfcie em anlise;
Sada: Classificao das superfcies.
Uma vez escolhido adequadamente o mtodo de aprendizado, de muita relevncia
anteceder ao incio do treinamento um processo de tratamento dos dados. Este processo
visa fundamentalmente atender duas condies:
a) Adequao quantitativa dos dados, com eliminao de informaes redundantes e/ou no
relevantes, sendo mantida apenas as informaes necessrias a abrangncia das situaes
a serem aprendidas;
b) Melhoria qualitativa da informao fornecida rede, de forma a aumentar a eficincia do
processo de aprendizado.
Vale ressaltar que uma base de dados mal tratada pode resultar em um aprendizado de
custo demasiadamente alto (tempo de processamento), podendo ainda no atender aos
requisitos visados.
4.1 Algortmo de aprendizagem do perceptron
1) Inicializar os pesos no tempo t = 0, w
i
(0), com valores aleatrios pequenos, inclusive a
polarizao w
0
(0) = - ;
2) Apresentar o vetor de entrada X = (x
0
, x
1
, x
2
, ..., x
n
), para o qual se conhece a sada
desejada d(t);
3) Calcular a sada real
4) Ajustar os pesos, como segue:
Se correto y(t) = d(t)

w
i
(t+1) = w
i
(t)
Se y(t) = 0 e d(t) = 1

w
i
(t+1) = w
i
(t) + x
i
(t)
Se y(t) = 1 e d(t) = 0

w
i
(t+1) = w
i
(t) x
i
(t)
5) Voltar ao item (2) e repetir para t = 1, 2, 3, ... at que no ocorram mais ajustes de pesos.
Exemplo:
Distinguir o smbolo grfico A (classe a, d = 0) do smbolo B (classe b, d = 1):
1
]
1

n
i
i i
h
t x t w t y
f
0
) ( ). ( ) (
1
-
Redes Neurais Prof. Ailson Rosetti de Almeida, UFES
Nota: Material em edio
_________________________________________________________________________________________
6
Um melhoramento no algoritmo simples acima a introduo do fator multiplicativo
no ajuste dos pesos, tal a proporcionar um controle na estabilidade do aprendizado, porm
tornando-o mais lento. Assim sendo o ajuste dos pesos passa a ser o seguinte:
Se correto y(t) = d(t)

w
i
(t+1) = w
i
(t)
Se y(t) = 0 e d(t) = 1
w
i
(t+1) = w
i
(t) + x
i
(t)
Se y(t) = 1 e d(t) = 0
w
i
(t+1) = w
i
(t) - x
i
(t)
sendo um valor previamente escolhido na faixa:
0 < 1
4.2 A regra delta de Widrow-Hoff
Widrow e Hoff propuseram esta regra, similar do perceptron, com a diferena do item
(4), que passaria a ser definido como:
4) w
i
(t+1) = w
i
(t) + ..x
i
(t)
onde = d(t) s(t) , sendo
s tambm chamada de net.
! Notar que os pesos variam mais rapidamente quando grande, e medida que o
neurnio vai aprendendo os pesos variam progressivamente mais lentamente.
! Notar tambm que o sinal de automaticamente far um aumento (soma) ou diminuio
(subtrao) do peso, e quando = 0 (d = s), o peso no alterado.
Neurnios que usam esta regra de aprendizado so chamados de ADALINEs (Adaptative
Linear Neurons), e uma rede neural usando esta regra chamada Madaline (Many
Adalines).
4.3 Prova de convergncia do Perceptron
[5]
Considere duas classes F
+
e F
-
no espao de padres de entrada X = (x
1
, x
2
, x
3
, ..., x
n
). As
classes F
+
e F
-
so linearmente separveis e o perceptron deve responder com +1 se x F
+
e 1 se x F
-
. Considere tambm, por simplicidade, que os vetores de entrada X tem
mdulo unitrio. (isto, porm, no afeta a generalizao).
Defina F = F
+
(-F
-
) onde F
-
so os negativos de F
-
.

n
i
i i
x w t s
0
; . ) (
real) (sada )] ( [ ) ( t s f t y
h

Redes Neurais Prof. Ailson Rosetti de Almeida, UFES


Nota: Material em edio
_________________________________________________________________________________________
7
O algoritmo de aprendizagem do perceptron visto anteriormente pode ser traduzido pelo
programa:
Incio:
Escolha um vetor de pesos arbitrrio W F.
Teste:
Escolha um X F.
Se (W.X > 0) ento v para teste
seno v para soma.
Soma:
Substitua W por W+X
V para teste.
Teorema da convergncia do Perceptron
! Se as classes F
+
e F
-
puderem ser classificadas, ento o perceptron encontrar uma
soluo, passando por soma um nmero finito de vezes.
Prova:
Suponha que existe um vetor unitrio W
*
que particiona o espao, e um nmero fixo
positivo e pequeno tal que:
W
*
.X > X F
Defina
(G(W) o coseno do ngulo entre W e W
*
)
G(W) 1 j que |W
*
| = 1
cada passagem por Soma teremos:
W
t+1
= W
t
+ X e ento
W
*
.W
t+1
= W
*
.(W
t
+ X)
= W
*
.W
t
+ W
*
.X
W
*
.W
t
+
W W
W
W W
W G . W onde
.
) (
*

Redes Neurais Prof. Ailson Rosetti de Almeida, UFES
Nota: Material em edio
_________________________________________________________________________________________
8
W
*
.W
t+1
W
*
.W
t
+
W
*
.W
1
W
*
.W
0
+
W
*
.W
2
W
*
.W
1
+
W
*
.W
3
W
*
.W
2
+
+ W
*
.W
n
W
*
.W
n-1
+
W
*
.W
n
W
*
.W
0
+ n.
Como W
0
F W
*
.W
0
>
W
*
.W
n
(n + 1).
Por outro lado, |W
t+1
|
2
= W
t+1
.W
t+1

= (W
t
+ X).(W
t
+ X)
= |W
t
|
2
+ 2.W
t
.X + |X|
2
|X| = 1 portanto,
|W
t+1
|
2
|W
t
|
2
+ 1 J que W
t
.X negativo ou nulo quando se passa por Soma.
Aps n passagens por Soma, teremos: |W
n
|
2
|W
0
|
2
+ n
E como W
0
F |W
n
|
2
1 + n
Ou

como
ou
Assim, o programa passa um nmero finito de vezes por Soma, ou seja, converge.
n W
n
+ 1
1
). 1 ( .
) (
*
+
+

n
n
W
W W
W G
n
n

2
1). (n 1 quadrado ao
1
). 1 (
1 1 ) (

+
+
+

n
n
W G

2
1
n
Redes Neurais Prof. Ailson Rosetti de Almeida, UFES
Nota: Material em edio
_________________________________________________________________________________________
9
! Porm, como o Perceptron simples faz uma nica combinao linear das entradas, ele s
consegue classificar espaos linearmente separveis (classes separadas por hiperplanos).
Exemplo de comprovao
Supor um problema de classificao com uma configurao de apenas duas entras.
Logo s(t) = w
0
+ x
1
.w
1
+ x
2
.w
2
,
sendo:
x
1
e x
2
assumem 0 ou 1;
e a sada y(t) = 0 se s(t) 0, e y(t) = 1 se s(t) > 0.
Assim possvel definir uma regio de fronteira entre as duas classes y = 0 e y = 1, e
esta regio obtida fazendo-se s(t) = 0, o que resulta em uma reta uma vez que s existem
duas entradas. Esta reta tambm conhecida como superfcie de deciso, assim chamada pois
para o caso de mais de duas entradas esta reta transforma-se em um plano (e ou hiperplano).
Para o nosso exemplo, temos;
w
0
+ w
1
.x
1
+ w
2
.x
2
= 0
ou seja,
Uma representao grfica para esta classificao pode ser ilustrada da seguinte forma:
f
h

1 w
0
w
1
w
2
x
1
x
2
y
2
0
1
2
1
2
w
w
x
w
w
x
x
2
x
1
s > 0
s 0
(0,0)
(1,0)
(0,1)
(1,1)
Redes Neurais Prof. Ailson Rosetti de Almeida, UFES
Nota: Material em edio
_________________________________________________________________________________________
10
Fica assim melhor caracterizada a restrio quanto a capacidade de classificao de
uma rede Perceptron monocamada, limitada a espaos linearmente separveis.
4.4 O exemplo do OU-EXCLUSIVO
O exemplo mais marcante desta limitao o problema do ou-exclusivo, citado por
Minsky e Papert no livro Perceptrons (1969), causando uma esfriada nas pesquisas sobre
redes neurais por quase duas dcadas. Neste caso no se consegue por uma nica superfcie
linearmente definida classificar os espaos envolvidos, uma vez que tem-se a seguinte
distribuio:
x
1
x
2
y
0 0 0
0 1 1
1 0 1
1 1 0
Para este problema s surgiu soluo na dcada de 80, quando Rumelhart e
McClelland apresentam a configurao perceptrons multicamadas.
Se pensarmos que um espao no-linearmente separvel pode ser subdividida em
partes linearmente separveis, cada uma resolvida por um neurnio, e combinarmos as sadas
destes neurnios por um outro que produzir a classificao final, teremos o princpio do
perceptron multi-camadas. Assim sendo uma configurao da rede soluo para o problema
ou-exclusivo, pode ser ilustrada da seguinte forma:
Podendo ser feita uma associao entre os subespaos criados e os neurnios da rede
conforme ilustrado a seguir.
(0,0)
(1,1)
(1,0)
(0,1)
x
2
x
1
-1
1
-1
1
- 0,5
- 0,5
x
x
x
x
1
1
1
0,0
y
1
2
3
1
1
Redes Neurais Prof. Ailson Rosetti de Almeida, UFES
Nota: Material em edio
_________________________________________________________________________________________
11
! O problema passa a ser Como treinar uma rede com mais de uma camada ?
! A funo no-linear de heaviside deve ser substituda por outra funo (no-linear) mais
suave para no mascarar a informao da distncia do ponto no espao da fronteira de
classificao;
! As funes mais apropriadas e usadas para tal fim pertencem classe dos sigmoides:
Alm do mencionado acima, tais funes realizam uma espcie de controle automtico
de ganho: ganho alto para pequenos sinais e ganho baixo para sinais fortes.
Sinais muito altos Saturao Ganho nulo.
(0,0)
(1,1)
(1,0)
(0,1)
x
2
- 0,5
0,5
1
2
knet
e
net f y

+

1
1
) (
y
net
1
0,5
0
y
net
+1
0
k menor
- 1
knet
knet
e
e
knet net f y
2
2
1
1
) tanh( ) (


net
y
Ganho

Redes Neurais Prof. Ailson Rosetti de Almeida, UFES


Nota: Material em edio
_________________________________________________________________________________________
12
4.5 A regra de Delta Generalizada (Backpropagation)
Definies:
P Nmero de padres de aprendizagem (vetores x);
t
Pj
Sada-alvo (desejada) do n (neurnio) j, para o padro p de entrada;
O
Pj
Sada atual do n j, para o padro p na entrada;
w
ij
Peso (sinapse) do n i para o n j.
Definida esta configurao e nomenclatura, o que se deseja caracterizar (descrever) o
comportamento do erro entre sada desejada e sada real, em relao ao comportamento dos
pesos. Caracterizada esta relao torna-se possvel corrigir (ajustar) os pesos de forma a
minimizar o erro a medida em que os pesos se aproximem do valor ideal.
Para deduzir esta relao considera-se a funo erro quadrtico mdio, de forma a
impedir a influncia do sinal do erro sobre o comportamento que se quer caracterizar, e sim
apenas o mdulo do erro.
Vale lembrar que pela definio de net descrita tendo apenas a variao do ndice i,
a anlise est sendo feita em relao a sada de um nico neurnio da camada de sada,
sendo porm vlida para todas as outras sadas. Assim, temos:
x
x
1
x
n
O
P1
O
w
ij
O
O
P2
O
Camada escondida
Camada de sada
( )


J
j
Pj Pj p
P padro o para erro - Funo O t E
2
2
1
) ( .
Pj j Pj
I
i
Pi ij Pj
net f O ; O w net

Redes Neurais Prof. Ailson Rosetti de Almeida, UFES


Nota: Material em edio
_________________________________________________________________________________________
13
sendo,
Para
onde,
4.6 Mtodo do Grandiente Descendente
Por este mtodo pode-se concluir que com o decrscimo do erro, o peso tende a
aumentar (E
P
/w
ij
negativo) o que fortelece a ligao entre os nernios. E o contrrio
acontece quando o erro aumenta (E
P
/w
ij
positivo), ou seja, o peso da ligao diminui
enfraquecendo a mesma.
De uma outra forma, o ajuste dos pesos pode ser assim representado:
!
Pj
depende da derivada da funo no-linear de sada do neurnio. Portanto, esta
funo no-linear deve ser diferencivel. E deve ser monotnica para que sua derivada
ij
Pj
Pj
ij
Pj
Pj
P
ij
P
w
net
w
net
net
E
w
E

. .

'

k ij
kj
Pk kj
ij ij
Pj
i k para 1
i k para
w
w
O w
w w
net 0
.
Pj Pj
ij
P
Pi
ij
Pj
O
w
E
- O
w
net
.

Pj
Pj
Pj
P
Pj
P
Pj
net
O
O
E
net
E

.
[ ] ) .( ) ( ' ) ( '
Pj Pj Pj j Pj Pj Pj
Pj
P
j
Pj
Pj
O t net f O t
O
E
; f
net
O

ij
P
ij ij
w
E
t w t w

+ . ) ( ) 1 (
Pi Pj ij ij
O t w t w . . ) ( ) 1 ( + +
Redes Neurais Prof. Ailson Rosetti de Almeida, UFES
Nota: Material em edio
_________________________________________________________________________________________
14
no alterne de sinal, atrapalhando o mtodo do Gradiente Descendente. As funes do
tipo sigmoide atendem estas exigncias. Assim sendo, pode-se usar:
! Para a camada de sada ns conhecemos t
Pj
. Mas, e para atualizar os pesos dos neurnios
da(s) camada(s) escondida(s) ? Nelas no se tem conhecimento das sadas desejadas !
! Temos que retrabalhar o valor de
Pj
para as camadas escondidas.
Utilizando ainda a funo erro quadrtico mdio, temos:
knet
Pj
e
net f O

+

1
1
) (
) 1 .( .
) 1 (
) ( '
2
Pj Pj
knet
knet
Pj
O O k
e
ke
net f
net
O

+

Pi Pj Pj Pj Pj ij ij
O O t O O k t w t w ). ).( 1 .( . . ) ( ) 1 ( + +
O
Pj
w
jk
O
Pj


K
Pk Pk P
O t E
2
) ( .
2
1
1
]
1


j
Pj jk Pk
O w f O .

k Pj
Pk
Pk
P
Pj
P
O
O
O
E
O
E
.
Pj
Pk
Pk
Pk
Pj
Pk
O
net
net
O
O
O

k
jk
Pk
Pk
Pk
P
Pj
P
w
net
O
O
E
O
E
. .
-
Pk

k
jk Pk
Pj
P
w
O
E
.
Redes Neurais Prof. Ailson Rosetti de Almeida, UFES
Nota: Material em edio
_________________________________________________________________________________________
15
! Portanto, os
P
necessrios para a atualizao dos pesos so propagados para trs, ou
seja, o de um neurnio de uma camada depende dos frente, da o nome
Backpropagation.
Algortmo Backpropagation
1. Inicializar os pesos e polarizaes para nmeros aleatrios pequenos;
2. Apresentar vetor de entrada x
p
e correspondente sada desejada T
p
, para um padro P a ser
aprendido.
X
P
= (x
0
, x
1
, ..., x
n-1
) T
P
= (t
0
, t
1
, ..., t
m-1
)
3. Calcular a sada atual, passando pelo clculo de todos os neurnios da 1
a
ultima camada.
Na camada de sada, teremos os valores de O
Pj
.
4. Atualizar os pesos
w
ij
(t+1) = w
ij
(t) + .
Pj
.O
Pi

Pj
= k.O
Pj
.(1 O
Pj
).(t
Pj
O
Pj
) Para a camada de sada.
Neste ltimo caso para as camadas escondidas onde k so os ns da camada a frente de j.
- Velocidade de aprendizagem.
! Note que, no caso dos neurnios logo a frente das entradas, O
Pi
o prprio x
Pi
.
Algumas outras funes de treinamento tambm so usadas, com o objetivo de
aperfeioamento do processo de aprendizado sob certas circunstncias. Podemos citar:
! Gradiente descendente com momento;
! Rprop Resilient backpropagation.


k
jk Pk Pj j
Pj
Pj
Pj
P
Pj
w net f
net
O
O
E
. ). ( ' .


k
jk Pk Pj Pj Pj
w O O k . ). 1 .( .
Redes Neurais Prof. Ailson Rosetti de Almeida, UFES
Nota: Material em edio
_________________________________________________________________________________________
16
4.7 Gradiente Descendente com Momento
O mtodo Gradiente Descendente impe duas dificuldades em seu uso, so estas:
a) A escolha apropriada da taxa de aprendizado (). Esta escolha pode resultar em um
longo perodo para convergncia, caso a taxa seja demasiadamente pequena, ou por outro
lado, causar uma instabilidade (oscilaes) no caso de uma taxa demasiadamente grande.
Assim sendo a escolha tima da taxa de aprendizado se traduz em um complexo trabalho
de sintonia;
b) Influncia da derivada parcial sobre o passo do peso. Para uma funo-erro de
comportamento suave, a influncia da derivada parcial minimizada, permitindo uma
estabilidade no ajuste do pesos. Entretanto, se a funo-erro atinge alguma regio de
brusca depresso ou crescimento acentuado, situaes em que o ajuste dos pesos deve ser
cuidadoso, ocorre na verdade uma brusca variao dos mesmos.
Visando suprir estas deficincias, surge ento o mtodo Gradiente Descendente com
Momento, cuja funo de ajuste dos pesos acrescida de um termo que permite neste ajuste
considerar o comportamento prvio dos pesos.
importante ressaltar que esta ainda no uma tcnica genrica para obteno de
estabilidade e/ou velocidade de convergncia, com o uso do momento, recomenda-se
decrescer o valor da taxa de aprendizado, para evitar instabilidade
[2]
.
4.8 Rprop Resilient Backpropagation
Rprop classificada como uma tcnica de aprendizado adaptativo local, sendo seu
princpio bsico a eliminao da influncia da derivada parcial sobre a atualizao dos pesos.
Logo, somente o sinal da derivada parcial considerado para indicar o sentido (crescente ou
decrescente) de atualizao. A amplitude da variao do peso determinada exclusivamente
pelo ento denominado peso-especfico
ij
, onde:
Sendo que o peso especfico tem sua amplitude tambm definida com base no
comportamento (sinal) da derivada parcial da funo-erro. A definio desta amplitude
obtida da seguinte forma:
) 1 ( ) ( ) ( +

t w t
w
E
t w
ij
ij
P
ij

'

<

+
>



contrrio Caso 0,
0
w
E(t)
se ), (
0
w
E(t)
se ), (
) (
ij
ij
ij
t
t
t
ij
ij
Redes Neurais Prof. Ailson Rosetti de Almeida, UFES
Nota: Material em edio
_________________________________________________________________________________________
17
Onde:
! 0 <
-
< 1 <
+
!
0
por determinar o primeiro passo de atualizao deve ser escolhido de acordo
com os valores iniciais de peso;
!
mx
definido para limitar o passo de atualizao de modo a evitar um
instabilidade no processo de aprendizagem, ou mesmo a tendncia de conduo
rpida a um mnimo local no desejvel;
!
-
= 0,5 e
+
= 1,2 so valores definidos a partir de consideraes tericas e
empricas, permitindo uma reduo dos parmetros livres a apenas
0
e
mx
.
O Rprop em relao ao algoritmos baseados apenas no uso da taxa de aprendizagem,
traz a vantagem de atualizar os pesos atravs da introduo de um conceito denominado
Resilient (resistente) Update-Values, o qual impede a influncia de um distrbio
comportamental do gradiente sobre o ajuste dos pesos, e consequentemente sobre o processo
de aprendizado. Tem ainda a vantagem de exigir um baixo custo computacional se comparado
com o original backpropagation
[2]
.
Apesar das vantagens citadas acima, uma anlise criteriosa deve ser realizada antes do
emprego do Rprop, pois assim como os demais algoritmos adaptativos de aprendizagem, o
Rprop baseia o ajuste dos pesos sobre uma estimao da topologia da funo-erro, ou seja,
este ajuste s realizado aps a apresentao de um padro e o clculo do gradiente da funo
erro correspondente. Sabendo-se que o padro mencionado uma poca, este mtodo introduz
uma reduo na eficincia de tratamento dos conjuntos de treinamento variveis.
4.9 Aprendizado No-Supervisionado
Como mencionado anteriormente um dos processos de aprendizado aplicado s redes
neurais no-supervisionado. E atendendo a esta tcnica Teuvo Kohonen desenvolveu um
algoritmo denominado SOFM Self-Organizing Feature-Mapping, cuja meta principal
tranformar um padro de entrada de dimenso arbitrria em um mapa discreto de uma ou duas
dimenses, atravs de uma ordenao topolgica adaptativa.
As caractersticas principais deste algoritmo, so:

contrrio Caso t

w
t E
w
1) - E(t
se t

w
t E
w
1) - E(t
se t
t
ij
ij ij
ij
ij ij
ij
ij

'




+
) 1 (
0
) (
. ), 1 ( .
0
) (
. ), 1 ( .
) (

Redes Neurais Prof. Ailson Rosetti de Almeida, UFES


Nota: Material em edio
_________________________________________________________________________________________
18
! Utilizao de uma topologia mono ou bi-dimensional para a rede;
! Definio de uma funo discriminante (distncia Euclidiana) para seleo do neurnio
que melhor se adaptou (pelo ajuste dos pesos vinculados), neurnio vencedor,
representao do vetor de entrada;
! Implementao de um processo adaptativo que habilita os neurnios a acompanharem
(pelo ajuste de suas funes discriminantes) o comportamento da entrada.
De modo simplificado, a proposta deste algoritmo a partir de um vetor de entrada n-
dimensional X = [x
1
, x
2
, ..., x
n
]
T
, e uma configurao inicial de pesos W
j
= [w
j1
, w
j2
, ..., w
jn
]
T
,
calcular a distncia Euclidiana || X W
j
|| para todo j, e definir como neurnio vencedor
aquele para o qual foi encontrada a menor distncia Euclidiana (funo discriminante).
A depender da aplicao na qual a rede ser utilizada, o resultado de interesse pode ser
a posio do neurnio vencedor ou os pesos que o levaram a esta condio.
Com o objetivo de garantir a no ocorrncia da sub-utilizao de neurnios da rede, o
algoritmo SOFM faz uso de uma funo de vizinhana
i
. Esta funo determina para o
neurnio vencedor de uma iterao quais outros so seus vizinhos, sobre os quais o algoritmo
realiza a atualizao dos pesos. Assim, com uma adequada escolha desta funo, ao final da
fase de convergncia do algoritmo o(s) neurnio(s) vencedor(es) e sua vizinhana esto
restritos ao conjunto mnimo necessrio para atender a aplicao desejada.
Descrio do Algoritmo SOFM
[1]
1. Inicializao
Escolha aleatria dos valores iniciais para o vetor peso W
j
, com a restrio de que os
vetores W
j
(0) sejam distintos para cada j. interessante que a magnitude destes valores
iniciais seja pequena para evitar uma saturao com o decorrer do treinamento.
2. Apresentao
Apresentar a rede o vetor de entrada X[].
3. Similaridade
Definir para a n-sima iterao do algoritmo o vetor peso de maior similaridade (menor
distncia Euclidiana) ao vetor de entrada. Esta etapa traz como consequncia a seleo do
neurnio vencedor.
4. Atualizao
Ajuste dos pesos sinpticos da seguinte forma:

'
+
+
contrrio caso n w
n j n w n x n n w
n w
j
i j j
j
) (
) ( )], ( ) ( )[ ( ) (
) 1 (

Redes Neurais Prof. Ailson Rosetti de Almeida, UFES
Nota: Material em edio
_________________________________________________________________________________________
19
Sendo;
(n) - Taxa de aprendizagem;

i
- Funo de vizinhana centrada no neurnio vencedor da iterao;
Ambos os parmetros de ajuste so dinamicamente variados durante o processo de
aprendizado.
5. Continuao
Retorno ao passo 2 at que no seja notada uma mudana significativa na configurao da
rede.
Escolha do parmetros (n) e
i
(n)
O processo de aprendizado atravs do algoritmo SOFM por natureza estocstico, e
assim dependente do nmero de iteraes realizadas, sendo que o sucesso de convergncia
est fortemente vinculado escolha adequada da taxa de aprendizado e da funo de
vizinhana .
Ainda no foi formalizada uma teoria para a determinao dos parmetros de
aprendizado, sendo estes definidos pelo processo de tentativa e erro. Entretanto, observaes
realizadas a partir das inmeras aplicaes deste algoritmo conduzem esta escolha aos
seguintes procedimentos
[1]
:
! A taxa de aprendizado deve ser uma funo varivel com o tempo (n) (linear,
exponencial ou inversamente proporcional a (n), assumir inicialmente o valor unitrio e
decrescer este valor nas primeiras 1000 (mil) iteraes a aproximadamente 0,1 (sempre
acima deste mnimo). A partir de ento o algoritmo entra em uma etapa de fina sintonia
para a obteno da convergncia, fase na qual a taxa de convergncia deve assumir
valores bem menores (da ordem de 0,01 ou menos) o que consequentemente dar origem a
um grande nmero de iteraes at a obteno do resultado final.
! A funo de vizinhana deve abranger inicialmente todos os neurnios da rede, e reduzir-
se nas primeiras 1000 (mil) iteraes de forma linear. A partir de ento a reduo a
vizinhana deve acelerar (assumir um comportamento exponencial, quadrtico ou de mais
alta ordem) de forma a limitar a vizinhana ao final da convergncia a 1 (um) ou nenhum
neurnio. Vale lembrar que esta reduo visa impedir a subutilizao de neurnios
vizinhos.
A seleo do neurnio vencedor (similaridade), o uso de uma funo de vizinhana, e
a aplicao de uma regra de competitividade, atribuem ao SOFM a capacidade de uma
sintonia seletiva, ainda com uma simplicidade de implementao. Entretanto, a prova de
convergncia deste algoritmo de complexo desenvolvimento
[1]
, sendo que ainda no esto
bem definidos os critrios que garantam a estabilidade de convergncia.
Redes Neurais Prof. Ailson Rosetti de Almeida, UFES
Nota: Material em edio
_________________________________________________________________________________________
20
Por estas razes o uso do SOFM exige uma postura criteriosa para escolha dos
parmetros de aprendizagem, bem como a necessidade de observao peridica do
comportamento da convergncia, visando a deteco de uma possvel instabilidade.
5. Redes Neurais em Controle de Processos
O emprego das redes neurais em controle de processos j uma realidade com futuro
ainda mais promissor, tendo em vista as caractersticas trazidas pela arquitetura das redes,
bem como seu comportamento dinmico. Para um melhor entendimento quanto a relevncia
do uso das redes no controle de processos, so apresentadas a seguir algumas caractersticas
que permitem explicitar as vantagens obtidas
[3]
.
! Sistemas no-lineares. A comprovada habilidade das redes em aproximar mapeamentos
no-lineares, um indicativo da eficcia de sua aplicao para o controle deste tipo de
sistema.
! Processamento paralelo distribudo. A estrutura das redes neurais essencialmente
paralela, o que atribui a estas um alto grau de tolerncia a falhas, bem como favorece a
velocidade de processamento.
! Implementao em hadware. J se encontra disponvel no mercado integrados
(dedicados) que implementam a rede, permitindo a compactao do hardware, ganho na
velocidade de processamento, e maior nvel de distribuio no controle.
! Aprendizado e adaptao. O treinamento das redes realizado com dados que retratam
um passado do sistema a ser controlado, a partir dos quais a rede treinada torna-se capaz
receber dados atualizados e por sua capacidade de generalizao definir o mapeamento
para obteno da sada desejada.
! Sistemas Multivariveis. As redes neurais naturalmente processam vrias entradas e
geram vrias sadas, assim sendo so plenamente aplicveis a sistemas multivariveis.
Apresentando as caractersticas citadas acima, fica evidente a aplicabilidade das redes
neurais no controle de processos, e consequentemente um natural incentivo esta linha de
pesquisa. De acordo com as referncias nesta rea, a principal aplicao das redes no
tratamento de sistemas no-lineares, uma vez que a diversidade de configuraes existentes
ainda no permitiu a formulao de uma teoria genrica para a soluo deste problema de
controle, apesar de existirem mtodos tais como uso do plano de fases, tcnicas de
linearizao, aproximao de funes. Entretanto, tais mtodos pressupem simplificaes
(restries) s condies em anlise, em confronto com procedimentos heursticos no uso das
redes.
6. Exemplos de Treinamento
A partir dos conceitos estudados foram utilizados dois bancos de dados para o
treinamento de redes neurais com o objetivo de implementar processos de classificao. O
Redes Neurais Prof. Ailson Rosetti de Almeida, UFES
Nota: Material em edio
_________________________________________________________________________________________
21
primeiro banco contm as dimenses de ptalas e spalas relacionadas com as respectivas
flores de origem, e o objetivo ento utilizar a rede para a classificao destas flores. O
segundo banco de dados contm informaes relativas ao sensoriamento ultrasnico de
objetos com 5 geometrias distintas, sendo o objetivo a classificao destes objetos.
Para estes treinamentos foram utilizados os seguintes algoritmos:
! Gradiente descendente (GD);
! Gradiente descendente com momento (GDM);
! Gradiente descendente com taxa de aprendizado adaptativo (GDA);
! Grad. descendente com momento e taxa de aprendizado adaptativo (GDX);
! Resilient Propagation (RPROP);
! Levenberg-Maquardt (LM).
Segue em anexo os programas implementados com o Matlab 5.2 para treinar e testar
as redes e estudo. Os resultados obtidos foram:
! Classificao Iris
Treinamento sem escalonamento da sada
Algoritmo
Quant. Neurnios
na camada escond. Quant. pocas Meta Performance Acerto
GD 10 2.289 0,02 0,0199 97,00%
GDM 10 7.139 0,02 0,0199 96,07%
GDA 10 2.232 0,02 0,0199 98,03%
GDX 10 555 0,02 0,0199 96,08%
RPROP 10 48 0,02 0,0199 96,08%
LM 10 10 0,02 0,0199 94,12%
Treinamento com escalonamento da sada
Algoritmo
Quant. Neurnios
na camada escond. Quant. pocas Meta Performance Acerto
GD 10 1.078 0.02 0,0199 96,08%
GDM 10 1.828 0.02 0,0199 96,08%
GDA 10 1.003 0.02 0,0198 96,08%
GDX 10 288 0.02 0,0198 98,04%
RPROP 10 36 0.02 0,0191 96,08%
LM 10 5 0.02 0,018 92,16%
Treinamento sem escalonamento da sada
Algoritmo
Quant. Neurnios
na camada escond. Quant. pocas Meta Performance Acerto
GD 5 2.796 0,02 0,0199 96,08%
GDM 5 60.689 0,02 0,0199 96,08%
Redes Neurais Prof. Ailson Rosetti de Almeida, UFES
Nota: Material em edio
_________________________________________________________________________________________
22
GDA 5 3.006 0,02 0,0199 96,08%
GDX 5 25.543 0,02 0,0199 98,04%
RPROP 5 77 0,02 0,0198 92,16%
LM 5 20 0,02 0,0174 90,19%
Treinamento com escalonamento da sada
Algoritmo
Quant. Neurnios
na camada escond. Quant. pocas Meta Performance Acerto
GD 5 857 0.02 0,0198 98,08%
GDM 5 3.622 0.02 0,0199 96,08%
GDA 5 551 0.02 0,0199 98,04%
GDX 5 271 0.02 0,0199 98,04%
RPROP 5 175 0.02 0,0198 96,08%
LM 5 5 0.02 0,0156 96,08%
Treinamento sem escalonamento da sada
Algoritmo
Quant. Neurnios
na camada escond. Quant. pocas Meta Performance Acerto
GD 3 6.885 0.02 0,0199 97,00%
GDM 3 95.111 0.02 0,0199 96,08%
GDA 3 10.771 0.02 0,0199 96,08%
GDX 3 30.817 0.02 0.0199 96.08%
RPROP 3 82 0.02 0,0199 96,08%
LM 3 14 0.02 0,0065 96,08%
Treinamento sem escalonamento da sada
Algoritmo
Quant. Neurnios
na camada escond. Quant. pocas Meta Performance Acerto
GD 20 960 0.02 0,0199 95,00%
GDM 20 1.209 0.02 0,0199 98,04%
GDA 20 938 0.02 0,0198 98,04%
GDX 20 335 0.02 0,0199 98,04%
RPROP 20 45 0.02 0,0197 92,16%
Treinamento com escalonamento da sada
Algoritmo
Quant. Neurnios
na camada escond. Quant. pocas Meta Performance Acerto
GD 20 208 0.02 0,0199 96,08%
GDM 20 464 0.02 0,0199 96,08%
GDA 20 237 0.02 0,0199 94,12%
GDX 20 167 0.02 0,0198 98,04%
RPROP 20 17 0.02 0,0197 94,12%
LM 20 3 0.02 0,0163 96,08%
Redes Neurais Prof. Ailson Rosetti de Almeida, UFES
Nota: Material em edio
_________________________________________________________________________________________
23
! Classificao de objetos
Treinamento sem escalonamento da sada
Algoritmo
Quant. Neurnios
na camada escond. Quant. pocas Meta Performance Acerto
GD 20 113.012 0.02 0,0199 76,77%
GDM 20 129.949 0.02 0,02 90,54%
LM 20 22 0.02 0,004 82,75%
Mdia percentual de acerto 83,35%
7. Anlise Final
Dos resultados obtidos evidenciam-se duas importantes influncias sobre o
treinamento das redes, so estas:
! O nmero de neurnios da camada escondida;
! O uso de um escalonamento de sadas (Tc_tre).
Nos exemplos trabalhados ficou caracterizada uma reduo no nmero de pocas
necessrias ao treinamento para que a rede atingisse a meta estabelecida, a partir de uma
aumento no nmero de neurnios da camada escondida simultaneamente com o uso de um
escalonamento das sadas. Este comportamento indica um incremento na capacidade de
generalizao da rede, que um aspecto positivo uma vez que o treinamento excessivo pode
dar origem a uma rede viciada nos dados de treino e incapaz (ou pouco eficaz) de classificar
dados genricos.
Quanto ao uso das redes neurais incontestvel a comprovao de sua eficcia em
classes de problemas para os quais as tcnicas convencionais ainda apresentam limitaes.
Para o autor deste trabalho um destaque deve ser dispensado caracterstica ainda emprica na
definio de alguns parmetros utilizados no treinamento das redes. Este fator pode receber
duas interpretaes, a dvida quanto a confiabilidade da rede pela no comprovao formal de
sua eficincia (convergncia), e por outro lado a motivao quanto ao uso desta tcnica em
funo de sua capacidade de adaptao a partir de uma configurao inicial no
necessariamente definida por uma exmio especialista do problema abordado, o que aumenta
o leque de habilitados e consequentemente a diversidade de solues.
Observao:
Conforme relatado anteriormente no obtive xito no uso de uma rede Radial-Basis,
cujo programa utilizado foi passado por e_mail ao Mestre.
Redes Neurais Prof. Ailson Rosetti de Almeida, UFES
Nota: Material em edio
_________________________________________________________________________________________
24
Anexo
Programa utilizado no Matlab 5.2 para o treinamento das redes no problema IRIS.
% Classificador Neural para o problema das 3 classes da flor IRIS:
% Componentes (caractersticas) do vetor de entrada:
% - Comprimento da spala
% - Largura da spala
% - Comprimento da ptala
% - Largura da spala
% Componentes do vetor de sada:
% - Classe da variante da flor, com os seguintes valores:
% - classe: Iris Setosa: classe 1
% Iris Versicolour: classe 2
% Iris Virginica: classe 3
%
% Prof. Ailson Rosetti de Almeida, ailson@ele.ufes.br
%
load iris
% Separando os conjuntos de treinamento e teste (validao):
C1 = iris1(find(iris1(:,5) == 1),:); % Todos os exemplares da classe 1
C2 = iris1(find(iris1(:,5) == 2),:); % Todos os exemplares da classe 2
C3 = iris1(find(iris1(:,5) == 3),:); % Todos os exemplares da classe 3
iris_tre = [C1(1:33,:) ; C2(1:33,:) ; C3(1:33,:) ]; % 2/3 para treinamento
iris_tes = [C1(34:50,:) ; C2(34:50,:) ; C3(34:50,:)]; % 1/3 para teste
% Agora vamos embaralhar as classes em cada conjunto. O de treinamento tem
% 99 exemplos e o de teste tem 51. O conjunto de teste no necessita ser
Redes Neurais Prof. Ailson Rosetti de Almeida, UFES
Nota: Material em edio
_________________________________________________________________________________________
25
% embaralhado, mas vamos faze-lo assim mesmo. A funo "shuffle.m" no vem
% no Matlab (pelo menos, at v5.2). A criei para embaralhar dados (pares
% entrada-sada) em conjuntos de treinamento.
n = shuffle(99); % cria vetor de inteiros de 1 a 99, em ordem aleatria,
% cada inteiro ocorrendo uma e uma nica vez.
iris_tre = iris_tre(n,:); % Poderiamos fazer de uma tacada s, assim:
% iris_tre = iris_tre(shuffle(size(iris_tre,1),:));
n = shuffle(51);
iris_tes = iris_tes(n,:);
% Separa os exemplares de entrada e de saida do conjunto de treinamento,
% no formato compativel com o toolbox nnet (cada coluna um vetor de entrada
% ou sada, cada linha uma dimenso da entrada ou da sada):
P_tre = iris_tre(:,1:4)';
T_tre = iris_tre(:,5)';
% Idem para o conjunto de teste/validao:
P_tes = iris_tes(:,1:4)';
T_tes = iris_tes(:,5)';
% T acima composto pela classe codificada como um numero (1, 2 e 3).
% Usaremos Tc abaixo, que a decodificao de cada indice de classe
% ( 1 a 3) em um vetor binario de 3 elementos, onde todos os elementos
% so zero exceto aquele cujo indice coincide com o valor da classe,
% que ajustado para 1. Por exemplo, se a classe 2 o vetor de 3 bits
% [0 1 0]. o que se denomina "um de N". Isto feito pela funo
% ind2vec (indice para vetor). Use "help ind2vec" para mais info:
Tc_tre = ind2vec(T_tre);
Tc_tes = ind2vec(T_tes);
% Antes de treinar com a funo "train", necessitamos extrair a matrix (Rx2)
% dos valores min e max de P_tre (para dar subsidios no escalonamento dos
% pesos iniciais), o que antes poderiamos fazer com:
% pr=[min(P_tre')' max(P_tre')'];
% O novo toolbox de redes neurais j traz a funo "minmax" para este fim:
pr = minmax(P_tre);
% Criao da rede feedforward com uma camada interna de 10 neuronios
% com funo de ativao tangente hiperbolica e uma de saida com 3
% neuronios (um para cada classe) com funo de ativao logstica,
% j que os valores desejados variam de 0 (no pertence classe) a
% 1 (pertence classe). Usaremos inicialmente o treinamento
% backpropagation com otimizao tipo gradiente descendente (traingd):
irisnet=newff(pr,[10 3],{'tansig' 'logsig'},'traingd');
% A funo "newff" acima j inicializa os pesos com os valores
% correspondentes (s) funo(es) de inicializao default. Se quizermos,
Redes Neurais Prof. Ailson Rosetti de Almeida, UFES
Nota: Material em edio
_________________________________________________________________________________________
26
% contudo, reinicializar os pesos com novos valores podemos chamar esplici-
% tamente a funo "init" aps "newff", como em:
% irisnet = init(irisnet);
% ou se quizermos fazer outra inicializao com funes distintas que as
% default, mudamos as propriedades apropriadas do objeto irisnet e usamos
% a funo "init". (Aqui, vamos manter a inicializao feita por "newff").
% Ajustando alguns parametros de treinamento:
irisnet.trainParam.goal = 0.02; % estava no valor default, 0
irisnet.trainParam.epochs = 3000; % estava no valor default, 100
irisnet.trainParam.lr = 0.01; % estava no v. default, 0.01 (mesmo valor)
% Treinamento com a funo "train":
% Vamos criar como saida da funo train um novo objeto da classe "network"
% chamado irisnet_t (t final de "treinado"), para manter irisnet intacto,
% caso necessitemos:
[irisnet_t, tr] = train(irisnet, P_tre, Tc_tre);
% Terminado o treinamento, verifique o que a funo train reporta. Caso
% no tenha atingido a meta de convergencia (goal) no numero de pocas
% especificado, voce pode continuar de onde parou com o comando abaixo,
% que o mesmo comando train s que indicando irisnet_t como argumento
% de entrada:
cont=0;
if ((tr.perf(end)) <= irisnet3.trainParam.goal),
fprintf('Convergiu em %d pocas.\n', tr.epoch(end));
else
while (tr.perf(end)>irisnet3.trainParam.goal),
[irisnet_t3, tr] = train(irisnet_t3, P_tre, Tc_tre);
if (tr.perf(end)>irisnet3.trainParam.goal),
cont=cont+1;
end
end
nepoch=(cont*3000)+tr.epoch(end);
sprintf('Agora convergiu em %d pocas.\n', nepoch);
end
disp('Tudo bem, no convergiu no nmero mximo de pocas, n?');
R = input('Quer continuar o treinamento de onde parou (s ou n)? ','s');
if (lower(R(1)) == 's'),
[irisnet_t, tr] = train(irisnet_t, P_tre, Tc_tre);
if ((tr.perf(end)) < irisnet.trainParam.goal),
sprintf('Agora convergiu em %d pocas.\n', tr.epoch(end));
end;
end;
end;
clear tr;
Redes Neurais Prof. Ailson Rosetti de Almeida, UFES
Nota: Material em edio
_________________________________________________________________________________________
27
% No treinamento acima, os valores min e max de Tc_tre (saida) so 0 e 1,
% iguais aos limites da logsig, o que pode ter causado saturacao e con-
% sequente derivada do erro muito baixa, necessitando mais pocas para
% atingir a meta (goal).
% Para evit-lo, uma possivel maneira transladar e reescalonar Tc para
% que seus limites fiquem ligeiramente afastados de 0 e 1.
% Retreine com o comando abaixo e veja se o numero de pocas para convergir
% diminue:
R = input('Quer retreinar com saidas reescalonadas (s ou n)? ','s');
if (lower(R(1)) == 's'),
[irisnet_t, tr] = train(irisnet, P_tre, (Tc_tre*0.8 + 0.1));
if ((tr.perf(end)) <= irisnet.trainParam.goal),
sprintf('Com sadas reescalonadas atingimos convergencia em %d pocas.\n',
tr.epoch(end));
clear tr;
end;
end;
% Teste/Validao (Simulao, na terminologia Matlab):
y = sim(irisnet_t, P_tes); % y resultado do processamento da rede sobre
% arquivo de entradas P_tes).
% Para saber que classe ganhou em cada exemplo de teste, usamos a funo
% compet (conpetitive). Para cada coluna, compet transforma o elemento de
% maior valor (max) em 1 e os demais em 0. o que se denomina "winner
% takes all". Veja "help compet":
yi = compet(y);
% Podemos transformar yi em um vetor de numeros de classe com a funo
yic = vec2ind(yi); % contrario de ind2vec() acima.
% Agora comparamos yi com T_tes (e no Tc_tes), para ver onde houve acerto
% e onde houve erro:
acerto = find(T_tes == yic); % til para analisar QUE classe foi confundida com QUAL.
% Para sabermos apenas o percentual de acerto sem importar quais acertaram ou erraram:
Pacerto = (100 * sum(yic == T_tes))/length(T_tes);
sprintf('O percentual de acerto foi %f %%.\n', Pacerto)
Redes Neurais Prof. Ailson Rosetti de Almeida, UFES
Nota: Material em edio
_________________________________________________________________________________________
28
Programa utilizado para o treinamento das redes no problema Obstculos.
% CLASSIFICAO DE OBSTCULOS UTILIZANDO REDES NEURAIS E ULTRA-
SOM
%
% CLASSES A SEREM IDENTIFICADAS:
%
% 1) Canto
% 2) P de Cadeira
% 3) P de Mesa Quadrado
% 4) P de Mesa Redondo
% 5) Plano
% L o arquivo de dados
function usom(n_amostras)
load -ascii 'dados.txt';
% separa as classes
c1 = dados(find(dados(:,12) == 1),:); % Todos os exemplares da classe 1
c2 = dados(find(dados(:,12) == 2),:); % Todos os exemplares da classe 2
c3 = dados(find(dados(:,12) == 3),:); % Todos os exemplares da classe 3
c4 = dados(find(dados(:,12) == 4),:); % Todos os exemplares da classe 4
c5 = dados(find(dados(:,12) == 5),:); % Todos os exemplares da classe 5
vet_tre = [c1(1:333,:);c2(1:333,:);c3(1:333,:);c4(1:333,:);c5(1:333,:)];
vet_tes = [c1(334:500,:);c2(334:500,:);c3(334:500,:);c4(334:500,:);c5(334:500,:)];
n = shuffle(1665);
vet_tre = vet_tre(n,:);
n = shuffle(835);
vet_tes = vet_tes(n,:);
v_tre = vet_tre(:,1:11);
t_tre = vet_tre(:,12);
v_tes = vet_tes(:,1:11);
Redes Neurais Prof. Ailson Rosetti de Almeida, UFES
Nota: Material em edio
_________________________________________________________________________________________
29
t_tes = vet_tes(:,12);
v_tre = v_tre';
t_tre = t_tre';
v_tes = v_tes';
t_tes = t_tes';
tc_tre = ind2vec(t_tre);
tc_tes = ind2vec(t_tes);
pr = minmax(v_tre);
usomnet=newff(pr,[20 5],{'tansig' 'logsig'},'trainlm');
usomnet.trainParam.goal = 0.02;
usomnet.trainParam.epochs = 3000;
usomnet.trainParam.lr = 0.01;
[usomnet_t, tr] = train(usomnet, v_tre, (tc_tre*0.8 + 0.1));
cont=0;
while (tr.perf(end)>usomnet.trainParam.goal),
cont=cont+1;
[usomnet_t, tr] = train(usomnet_t, v_tre, (tc_tre*0.8 + 0.1));
%[irisnet_t, tr] = train(irisnet_t, P_tre, Tc_tre);
end
nepoch=(cont*3000)+tr.epoch(end);
sprintf('Agora convergiu em %d pocas.\n', nepoch);
y = sim(usomnet_t, v_tes);
yi = compet(y);
yic = vec2ind(yi);
acerto = find(t_tes == yic);
Pacerto = (100 * sum(yic == t_tes))/length(t_tes);
sprintf('O percentual de acerto foi %f %%.\n', Pacerto)
Observao: Em ambos os casos para cada algoritmo treinado mudava-se no programa a
funo newff.
Redes Neurais Prof. Ailson Rosetti de Almeida, UFES
Nota: Material em edio
_________________________________________________________________________________________
30
8. Bibliografia
1. Haykin, S. (1994). Neural Networks A Comprehensive Foundation, Macmillan
Company/New York.
2. Riedmiller, M. (1994). Advanced Supervised Learning in Multi-layer Perceptrons From
Backpropagation to Adaptative Learning Algorithms, Journal of Computer Standards and
Interfaces, IEEE.
3. Hunt, K.J., Sbarbaro, D., Zbikowski, R., Gawthrop, P.J. (1992). Neural Networks for
Control Sustems A Survey, IEEE Control System, Vol. 28, pp. 1083-1112.
4. Tafner, M., Xerez, M., Rodrigues, Ilson. (1996). Redes Neurais Artificiais Introduo e
Princpios de Neurocomputao, Eko e FURB, Blumenau Santa Catarina.
5. Notas de aula do Prof. Dr. Ailson Rosetti de Almeida
Redes Neurais Prof. Ailson Rosetti de Almeida, UFES
Nota: Material em edio
_________________________________________________________________________________________
31

Potrebbero piacerti anche