Sei sulla pagina 1di 59

REDES NEURAIS

ARTIFICIAIS

MARIA INS VASCONCELLOS FURTADO

INTRODUO A REDES NEURAIS

1.1 - HISTRICO DE REDES NEURAIS


1.2 APLICAES
1.3 - INSPIRAO BIOLGICA
1.4 O MODELO DE UM NEURNIO ARTIFICIAL
1.5 TIPOS DE FUNO DE ATIVAO

3
4
5
6
8

ARQUITETURAS E APRENDIZADOS

11

2.1 INTRODUO
2.2 - PRINCIPAIS ARQUITETURAS DE REDES NEURAIS
2.3 TIPOS DE APRENDIZADO

11
11
13

REGRA DE HEBB

16

3.1 INTRODUO
3.2 ALGORITMO DE HEBB
3.3 EXERCCIOS PROPOSTOS

16
16
21

REDES PERCEPTRON

22

4.1 SEPARABILIDADE LINEAR


4.2 REDES PERCEPTRONS
4.3 ALGORITMO DE TREINAMENTO DO PERCEPTRON
4.4 EXERCCIOS RESOLVIDOS
4.5 EXERCCIOS PROPOSTOS

22
23
24
30
34

REDES ADALINE

35

5.1 INTRODUO
5.2 ALGORITMO DE TREINAMENTO
5.3 APLICAO
5.4 EXERCCIOS RESOLVIDOS
5.5 EXERCCIOS PROPOSTOS

35
36
37
41
42

BACKPROPAGATION

43

6.1 - CORREO DE PESOS


6.2 - ALGORITMO BACKPROPAGATION
6.3 - PROBLEMAS DE TREINAMENTO

43
45
45

ANEXO 1

49

ANEXO 2

49

ANEXO 3

53

ANEXO 4

57

ANEXO 5

58

ANEXO 6

59

INTRODUO A REDES NEURAIS


1.1 - Histrico de Redes Neurais

As primeiras informaes mencionadas sobre a neuro computao datam de 1943, em artigos de


McCulloch e Pitts, em que sugeriam a construo de uma mquina baseada ou inspirada no
crebro humano.

Muitos outros artigos e livros surgiram desde ento, porm, por um longo perodo de tempo,
pouco resultado foi obtido.

Em 1949 Donald Hebb escreveu um livro intitulado A Organizao do Comportamento. Suas


idias no eram completamente novas, mas Hebb foi o primeiro a propor uma lei de
aprendizagem especifica para as sinapses dos neurnios.

Em 1951 foi construdo primeiro neuro computador, denominado Snark, por Mavin Minsky. O
Snark operava com sucesso, ajustando seus pesos automaticamente, entretanto, nunca executou
qualquer funo de processamento de informao interessante, mas serviu de inspirao para as
idias de estruturas que o sucederam.

Em 1956 nasceram os dois paradigmas da Inteligncia Artificial, a simblica e o conexionista.

A Inteligncia Artificial Simblica tenta simular o comportamento inteligente humano


desconsiderando os mecanismos responsveis por tal, ou seja, no possui uma inspirao
biolgica.

A Inteligncia Artificial Conexionista acredita que construindo um sistema que simule a


estrutura do crebro, este sistema apresentar inteligncia, ser capaz de aprender, assimilar,
errar e aprender com seus erros.

Em 1957 e 1958, surgiu o primeiro neuro computador a obter sucesso (Mark I Perceptron)
criado por Frank Rosenblatt, Charles Wightman e outros. Seu interesse inicial para a criao do
Perceptron era o reconhecimento de padres.

Aps Rosenblatt, Bernard Widrow, com a ajuda de alguns estudantes, desenvolveram um novo
tipo de elemento de processamento de redes neurais chamado de Adaline, equipado com uma
poderosa lei de aprendizado, que diferente do Perceptron ainda permanece em uso.

Widrow fundou a primeira companhia de hardware de neurocomputadores e componentes.

Os anos seguintes foram marcados por um entusiasmo exagerado de muitos pesquisadores, que
prometiam mquinas to poderosas quanto o crebro humano e que surgiriam em um curto

espao de tempo. Isto tirou quase toda a credibilidade dos estudos desta rea e causou grandes
aborrecimentos aos tcnicos de outras reas.

Um perodo de pesquisa silenciosa seguiu-se durante 1967 a 1982, quando poucas pesquisas
foram publicadas devido aos fatos ocorridos anteriormente. Entretanto, aqueles que
pesquisavam nesta poca, e todos os que se seguiram no decorrer de treze anos conseguiram
novamente estabelecer um campo concreto para o renascimento da rea.

Skurnick, um administrador de programas da DARPA (Defense Advanced Research Projects


Agency), fundou em 1983 um centro de pesquisas em neuro computao. Este ato no s abriu
as portas para a neuro computao, como tambm deu DARPA o status de uma das lderes
mundiais em se tratando de "moda" tecnolgica.

John Hopfield, renomado fsico de reputao mundial, se interessou pela neuro computao, e
incentivou e difundiu os princpios da neuro computao entre importantes

cientistas,

matemticos e tecnlogos altamente qualificados.

Em 1986 o campo de pesquisa "explodiu" com a publicao do livro "Processamento


Distribudo Paralelo editado por David Rumelhart e James McClelland.

Em 1987 ocorreu em So Francisco a primeira conferncia de redes neurais em a IEEE


International Conference on Neural Networks, e tambm foi formada a International Neural
Networks Society (INNS).

Desde 1987, muitas universidades anunciaram a formao de institutos de pesquisa e programas


de educao em neuro computao.

As redes neurais artificiais so aplicadas resoluo de vrios problemas, a seguir mostramos suas
principais aplicaes.

1.2 Aplicaes

Reconhecimento de padres

Extrao de caractersticas

Classificao

Categorizao (Clusterizaes)

Estimativa e previso

Otimizao

Aproximao de funes.

1.3 - Inspirao biolgica


O crebro humano considerado o mais fascinante processador baseado em carbono existente,
sendo composto por aproximadamente 10 bilhes neurnios.
Todas as funes e movimentos do organismo esto relacionados ao funcionamento destas
pequenas clulas. Os neurnios esto conectados uns aos outros atravs de sinapses, e juntos formam
uma grande rede, chamada REDE NEURAL.
As sinapses transmitem estmulos atravs de diferentes concentraes de Na+ (Sdio) e K+
(Potssio), e o resultado disto pode ser estendido por todo o corpo humano. Esta grande rede
proporciona uma fabulosa capacidade de processamento e armazenamento.
O sistema nervoso formado por um conjunto extremamente complexo de neurnios. Nos
neurnios a comunicao realizada atravs de impulsos.
Rede neural artificial (RNA) uma tentativa de simular o funcionamento das redes neurais
biolgicas. um modelo formado por componentes interligados que trabalham de maneira paralela e
distribuda, cada um destes componentes conhecido como neurnio artificial e est fortemente
baseado no processamento de um neurnio biolgico. A rede robusta, ou seja, se um dos
componentes parar de funcionar no compromete o funcionamento total. A rede capaz de aprender,
generalizar e armazenar informaes tal como o crebro humano.

Figura: Neurnio Biolgico - esquemtico

Figura: Neurnio Biolgico


Os principais componentes dos neurnios so:

Os dendritos tm por funo, receber os estmulos transmitidos pelos outros neurnios;

O corpo de neurnio tambm chamado de soma responsvel por coletar e combinar


informaes vindas de outros neurnios;

O axnio constitudo de uma fibra tubular que pode alcanar at alguns metros, e
responsvel por transmitir os estmulos para outras clulas.

1.4 O modelo de um neurnio artificial

X1
X2
XN

w1i
w2i

Yi

wNi
Figura: Modelo inicial do Neurnio Artificial
6

O neurnio artificial formado pelos seguintes componentes:

Conjunto de entradas X1, X2,..., XN.

Pesos associados a cada entrada W1, W2,..., WN. Chamamos cada peso de sinapse.

Um somador para ponderar as respectivas entrada com os pesos associados.

Uma sada produzida Yi.

Precisamos, no entanto, modificar a figura anterior, pois apenas o somatrio causaria um estouro no
valor de sada do neurnio. Para resolver este problema adicionamos uma funo de ativao para
restringir a amplitude da sada. Acrescentamos ainda um parmetro chamado bias que tem o efeito de
aumentar ou diminuir a entrada liquida da funo de ativao dependendo se ele positivo ou negativo.
O esquema modificado est representado na figura a seguir.

bi

w1i
w2i

X1
X2

vi

(v)

Yi

wNi

XN

Figura Neurnio com funo de ativao (bias)


Conjunto de formulas necessrias para definir um neurnio.
N

vi = wi xi

Yi = (vi)

i =0

Podemos considerar o bias como um peso de uma entrada X0 que vale +1. Sendo assim
podemos simplificar as formulas do neurnio.
N

vi = wi xi + bi

Yi = (vi)

i =1

De acordo com essa modificao o modelo do neurnio se transforma no esquema da figura a


seguir.
7

b
vi

W1i

X1

(v)

Yi

wNj

XN

Figura Neurnio sem bias explicito

1.5 Tipos de funo de ativao


Precisamos de uma funo de ativao que limite o valor de sada do neurnio, portanto, esta
funo no pode tender ao infinito quando os valores de vi crescem. A seguir apresentamos algumas
das funes que podem ser usadas como funo de ativao de um neurnio.

Funo de Limiar
(v) =

1 se v >= 0
0 se v < 0

Funo Rampa

(v) =

1 se v >=
v se - <v <
0 se v <= -

Funo sigmoide

(v) = tanh(v)

Existem duas condies necessarias para que uma funo matemtica possa ser usada como
funo de ativao em uma rede neural artificial:

A funo deve ser continua.

Os limites da funo quando x tende a infinito devem ser diferentes de infinitos.

Exemplo 1: Seja a seguinte funo matematica f(x) = 2x, est funo pode ser usada como funo de
ativao ?
(x)

Resoluo:

A funo f(x) = 2x satisfaz a primeira condio pois continua, porm no satisfaz a segunda:
lim f(x) = +

lim f(x) = -
x -

x+

Sendo assim, no pode ser usada como funo de ativao.

Exemplo 2: Seja a seguinte funo matemtica representada pelo grfico a seguir, est funo pode ser
usada como funo de ativao ?
Resoluo:

f(x
2

x
-2
9

Sim, a funo pode ser usada como funo de ativao de uma rede neural, pois:
1) A funo continua.
2)
lim f(x) = 2
lim f(x) = -2
x+
x -

Exerccios Propostos
1.6.1) Dadas as funes matemticas abaixo, diga qual ou quais podem ser usadas como funo de
ativao e justifique.
f(v

a) f(x) = 1/x

b) f(x) = ex

f(x)

c) f(x) = x2

f(x)

10

ARQUITETURAS E APRENDIZADOS
2.1 Introduo
A rede neural artificial um sistema de neurnios ligado por conexes sinpticas e dividido em
camadas, geralmente redes neurais com trs camadas resolvem quase todos os tipos de problemas
existentes, as camadas esto dispostas em:

Camada de entrada neurnios de entrada recebem os estmulos do meio externo.

Primeira Camada neurnios internos ou ocultos.

Segunda Camada neurnios de sada, que se comunicam com o exterior, produzindo o


resultado esperado.

2.2 - Principais arquiteturas de redes neurais


A definio da arquitetura de uma RNA um parametro muito importante na sua consepo,
extremamente importante escolher bem a arquitetura para resolver determinado problema, visto que, os
problemas se adaptam as forma das arquiteturas. Para definir uma arquitetura necessrio considerar
os seguintes parametros:

Nmero de camadas da rede.

Quanto ao nmero de camadas da rede podemos ter:


11

Redes de camada nica s existe um neuronio entre qualquer entrada e qualquer sada.
Redes de multiplas camadas Existe mais de um neuronio entre alguma entrada e alguma sada.

Figura: Rede Neural Artificial de 2 camadas com 4 entradas e 2 sadas

Nmero de neurnios em cada camada.


O nmero de neurnios em cada camada varia de problema para problema e deve ser
devidamente analisado em cada caso.

Tipo de conexo entre os neuronios.

Os neuronios podem ter conexes de dois tipos:


Redes feedforward ou aciclica a sada na i-sima camada da rede no pode ser usada como
entrada de neuronios de camadas inferiores ou igual a i.
Exemplo: Figuras A, B e C
Redes feedback ou ciclica a sada na i-sima camada da rede usada como entrada de neuronios
de camadas inferiores ou igual a i. Exemplo figura D

Topologia da rede.

Redes Fracamente conectadas Existem entradas que no esto conectadas a todos os neuronios,
assim como existem neuronios cuja sada no alimenta todos os neuronios da camada posterior.
Exemplo figura C
Redes Fortemente conectadas Todas as entradas esto conectadas a todos os neuronios, assim
como a sada de todos os neuronios alimenta todos os neuronios da camada posterior. Exemplo
figura A e B
12

Figura A

Figura C

Figura B

Figura D

Figura E

2.3 Tipos de Aprendizado


Redes Neurais Artificiais possuem a capacidade de aprender atraves de exemplos e fazer
interpolaes e extrapolaes do que aprenderam, ou seja, so capazes de generalizar. No processo de
aprendizado, as conexes so ajustadas para encontrar resultados especficos de acordo com o que se
pretende ensinar a rede. Atravs de um processo, que chamamos treinamento ou aprendizado, o sistema
se adapta, ajustando as conexes entre os elementos de processamento.
Um conjunto de procedimentos bem definidos para adaptar os parmetros de uma rede neural
para que a mesma possa aprender uma determinada funo, chamado de algoritmo de aprendizado.
13

Como era de se esperar no existe apenas um algoritmo de aprendizado, ao contrario existem vrios
cada qual abordando uma tcnica diferente. Esses algoritmos diferem basicamente pela maneira pela
qual o ajuste dos pesos realizado.
A utilizao de uma RNA na soluo de um determinado problema passa inicialmente por uma
fase de aprendizado, quando a rede extrai informaes relevantes dos padres apresentados a ela e cria
uma representao prpria para o problema. A etapa de aprendizado consiste de um processo iterativo
de ajuste dos pesos sinapticos, que ao final do processo guardam o conhecimento que a rede adquiriu.
Aps a etapa de aprendizado ou treinamento a rede capaz de operar resolvendo o problema
que lhe foi proposto.
A arquitetura da rede define, dentre outros parmetros, a que tipo de treinamento a rede ser
submetida, capacitando-a a resolver o problema. Os algoritmos podem ser divididos em trs classes:
aprendizado supervisionado, aprendizado no-supervisionado e aprendizado por reforo.
O aprendizado supervisionado utiliza um agente externo supervisor para indicar rede a
resposta desejada para o padro de entrada. Atravs do erro, que a diferena entre os valores
esperados e os valores obtidos, o agente externo ajusta os parmetros da rede. Este ajuste feito at que
o erro seja minimizado, passando a no existir mais ou atingindo um valor considerado satisfatrio. A
partir deste momento, diz-se que a rede adquiriu conhecimento e apresenta-se treinada.
Meio

Supervisor
Resposta
Desejada

Sistema de
Aprendizado

Resposta
Atual

Sinal de Erro
Figura Diagrama de Blocos do Treinamento Supervisionado

O aprendizado no-supervisionado no tem uma sada-alvo, sendo a prpria rede dever ser
capaz de extrair as caractersticas relevantes dos impulsos, classificando-os em grupos pr-existentes.

14

Dado um impulso externo, a rede dever ser capaz de, extradas as caractersticas relevantes, agrup-las
de acordo com as semelhanas em uma classe j criada. Caso nenhuma classe semelhante seja
encontrada, o sistema dever ento criar uma nova classe para o padro de entrada apresentado.
Vetor descrevendo o
estado do meio

Sistema de
Aprendizado

Meio

Figura Diagrama de Blocos do Treinamento No-Supervisionado

O Aprendizado por Reforo pode ser considerado uma variante do aprendizado supervisionado,
no qual no se dispe de respostas corretas, mas pode-se saber se as respostas que a rede produziu so
corretas ou no.
Neste algoritmo, um crtico ir observar o funcionamento do sistema. Caso as respostas a
determinados impulsos sejam satisfatrias, deve-se reforar as conexes que levam a estas respostas e,
caso contrrio, estas conexes devem ter um menor peso.
um mtodo baseado em tentativa e erro, pois os ajustes dos pesos a serem tomados iro
depender unicamente das respostas produzidas pelo sistema durante o treinamento. O que o diferencia
do treinamento supervisionado que o supervisor sabe exatamente como ajustar os pesos no caso de
erro. Este tipo de treinamento representado em um diagrama de blocos a seguir.

Vetor de
Entrada

Meio

Reforo
Primrio
Crtico
Heurstica de
Reforo

Aes

Sistema de
Aprendizado

Figura Diagrama de Blocos do Treinamento por Reforo

15

REGRA DE HEBB
3.1 Introduo
Os resultados obtidos por Hebb motivaram os primeiros mtodos de aprendizagem em RNA. A
idia bsica consiste no fato de que, se um neurnio biolgico recebe uma entrada de outro neurnio e
ambos se encontram altamente ativados, ento, a ligao entre eles reforada. Aplicando-se esta
observao ao esquema de RNA poderamos dizer que se uma unidade i recebe uma entrada de outra
unidade j altamente ativada, ento, a importncia desta conexo deve ser aumentada, isto , o valor do
peso entre as unidades deve ser acrescido. A maneira mais simples de se representar matematicamente
esta relao representada pela equao abaixo:
Wij(novo) = Wij(antigo) + YiYj (equao 3.1)
Yi

Yj

j
Wij

3.2 Algoritmo de Hebb


Vamos aplicar o algoritmo de aprendizado de Hebb para treinar uma rede neural que simule o
comportamento da funo lgica and ou (e).
Utilizaremos a seguinte funo de ativao:

(v)
1

(v) =

1 se v >= 0
-1 se v < 0

v
-1
Entrada 1 Entrada 2

Sada

-1

-1

-1
16

X1

b1

W11

Y1

1
W21
X2
Passo 1: Inicializar os pesos das sinapses com zero
0

X1

1
0
X2

Para cada par entrada sada, ajuste os pesos das sinapses.

Primeiro par entrada sada.

v1 = X1* w11 + X2* w21 + 1*b1


v1 = 1*0 + 1*0 + 1*0 = 0

X1

X2

v = xi wi
i=0

Y1 = 1
W11(novo) = W11(antigo) + X1Y1
W11(novo) = 0 + 1*1 = 1
W21(novo) = W21(antigo) + X2Y1
W21(novo) = 0 + 1*1 = 1
b1(novo) = b1(antigo) + 1*Y1
b1(novo) = 0 + 1*1 = 1

17

X1

1
1
X2

Segundo par entrada sada.


X1

X2

-1

v1 = X1* w11 + X2* w21 + 1*b1


v1 = 1*1 + 0*1 + 1*1 = 2
Y1 = 1
W11(novo) = W11(antigo) + X1Y1
W1(novo) = 1 + 1*1 = 2
W21(novo) = W21(antigo) + X2Y1
W2(novo) = 1 + (0)*(1) = 1
b1(novo) = b1 (antigo) + 1*Y1
b1(novo) = 1 + 1*(1) = 2
X1

1
X2

Terceiro par entrada sada.


X1

X2

-1

v1 = X1* w11 + X2* w21 + 1*b1


v1 = 0*2 + 1*1 + 1*2 = 3
Y1 = 1

18

W11(novo) = W11(antigo) + X1Y1


W11(novo) = 2 + 0*(1) = 2
W21(novo) = W21(antigo) + X2Y1
W21(novo) = 1 + (1)*( 1) = 2
b1 (novo) = b1(antigo) + 1*Y1
b1 (novo) = 2 + 1*1 =3
3

X1

1
2
X2

Quarto par entrada sada.


X1

X2

-1

v1 = X1* w11 + X2* w21 + 1*b1


v1 = 0*2 + 0*2 + 1*3= 3
Y1 = 1
W11(novo) = W11(antigo) + X1Y1
W11(novo) = 2 + (0)*(1) = 2
W21(novo) = W21(antigo) + X2Y1
W21(novo) = 2 + (0)*(1) = 2
b1 (novo) = b1 (antigo) + 1Y1
b1 (novo) = 3 + 1*( 1) = 4
X1

2
X2
19

Aps varias apresentaes do conjunto de treinamento os pesos no se alteram mais a rede


atinge estabilidade. Cada apresentao do conjunto de treinamento chamada de poca.
A figura abaixo mostra os pesos finais
X1

-3

1
2
X2

Agora podemos testar a rede e verificar se ela aprendeu corretamente.


Conjunto de padres da rede
Entrada 1 Entrada 2

Sada

-1

-1

-1

Quando apresentamos o par X1 = 1 e X2 = 1 a rede deve apresentar na sada o valor de sada 1.

v1 = X1* w11 + X2* w21 + 1*b1


v1 = 1* 2 + 1* 2 + 1*(-3) = 1
Y1= 1
A rede acertou, produziu o valor de sada 1 como esperado.

Quando apresentamos o par X1 = 1 e X2 = 0 a rede deve apresentar na sada o valor de sada -1.

v1 = X1* w11 + X2* w21 + 1*b1


v1 = 1* 2 + 0* 2 + 1*(-3) = -1
Y1= -1
A rede acertou, produziu o valor de sada -1 como esperado.

Quando apresentamos o par X1 = 0 e X2 = 1 a rede deve apresentar na sada o valor de sada -1.

v1 = X1* w11 + X2* w21 + 1*b1


v1 = 0* 2 + 1* 2 + 1*(-3) = -1
Y1= -1
A rede acertou, produziu o valor de sada -1 como esperado.

Quando apresentamos o par X1 = 0 e X2 = 0 a rede deve apresentar na sada o valor de sada -1.

20

v1 = X1* w11 + X2* w21 + 1*b1


v1 = 0* 2 + 0* 2 + 1*(-3) = -3
Y1= -1
A rede acertou, produziu o valor de sada -1 como esperado.

3.3 Exerccios Propostos


3.3.1) Considere o seguinte conjunto de treinamento, construa a rede neural com bias, inicialize os
pesos e o bias com zero, utilize funo de ativao limiar com igual a zero e treine a utilizando regra
de Hebb, faa uma poca.
X1
1
1
-1
-1

X2
1
-1
1
-1

Sada
1
-1
1
1

3.3.2) Repita o exerccio anterior com os mesmos dados utilizando a seguinte funo de ativao:
f(v)

f(v) = 1 se v >=1
v se 1 < v <1
-1 se v<=-1

-1

-1

3.3.3) Considere uma rede neural com um neurnio treine esta rede para simular o comportamento da
funo OR ou OU utilizando a regra de Hebb, funo de ativao limiar com =1 , utilize duas
pocas, inicialize os pesos e o bias com 0.1.
X1 X2
D
1
1
1
1
-1
1
-1
1
1
-1
-1
-1
3.3.3) Considere os seguintes parmetros de uma rede neural. Construa a topologia da rede e
calcule as sadas:

0.2

0.3

0.7 - 0.1

0.4

Matriz de pesos W= 0.6

Vetor de bias b=[-0.5, 0.1, -0.4]

Vetor de entradas X=[1, 0.5]

f(v) =

1 se v >=0
-1 se v < 0

21

REDES PERCEPTRON
4.1 Separabilidade Linear
Um problema pode ser dito linearmente separvel se possvel representar o problema num
plano bi-dimensional e traar uma reta separando as classes do problema.
Exemplo: Voltamos ao exemplo da porta lgica and, cujos padres so descritos a seguir:
X1

X2

Conseguimos separar atravs de uma reta as duas classes do problema. Toda vez que um
problema for considerado linearmente separvel pode ser resolvido por redes neurais de uma nica
camada e especialmente por perceptrons.
Vejamos agora um exemplo de um tipo de problema que no linearmente separvel. Vamos
considerar uma porta lgica XOR ou exclusivo, cujos padres so descritos a seguir:

X1

X2

Neste caso no conseguimos traar uma reta e separar as classes diferentes do problema

22

4.2 Redes Perceptrons


Redes do tipo perceptron um tipo de rede simples de uma camada, consiste em um ou mais
neurnios de sada j conectados s entradas i atravs de pesos Wij. No caso mais simples a rede possui
um s neurnio k, como indicado na figura abaixo.
X1

W11

b1

Y1

W21
X2
O conjunto de equaes da rede dado por:
N

vi = i=0
xi wij

Yi = (vi)

A funo de ativao proposta originalmente por McCullock e Pitts, uma funo limiar:
(v) =

1 se v >= 0
0 se v < 0

Para este caso, o limiar de ativao do neurnio (acima do qual dizemos que o neurnio dispara)
zero, mas o modelo permite estabelecer um limiar de ativao diferente de zero. A funo limiar se
modifica.
(v) =

1 se v >= 0
0 se v < 0

23

Os neurnios da rede perceptron podem ser empregados para separar em classes distintas os
padres de entradas. Se a entrada lquida for maior que o limiar, o padro dessa entrada pertence
classe 1, caso contrrio, pertence classe 0.
Como exemplo, uma rede neural que simula o comportamento de uma porta lgica and.
X1

X2

X1

Classe 1
Classe 0

-0.5

1
X2
A separao entre as duas classes dada pela equao:
X1w11 + X2w21 + b1 = 0
Que a equao de uma famlia de retas que podem separar as classes.

4.3 Algoritmo de treinamento do perceptron


Esta regra foi proposta por Rosemblatt (1959) e apresenta algumas mudanas em relao regra
de Hebb. A funo de ativao passou a permitir um limiar diferente de zero. Foi introduzido um
fator de aprendizado (0 < <= 1), que regula a velocidade de modificao dos pesos. O algoritmo de
treinamento foi modificado, de forma que no feita correo nos pesos quando a rede responde
corretamente ao padro. O algoritmo completo o seguinte:
X = o conjunto de entrada
D = o conjunto de sada

24

1 Inicie aleatoriamente os pesos e bias (= 0, por simplicidade)


2 Repita
Para cada padro (entrada e sada desejada) faa
Calcule as sadas.
se Y <> D ento
Para cada conexo faa
Wij(novo)= Wij(antigo)+ * Xi * Dj
at que os pesos no sofram mais alteraes.

Exemplo:
Vamos aplicar o algoritmo de aprendizado do Perceptron para treinar uma rede neural que
simule o comportamento da funo lgica and ou (e).
Utilizaremos a seguinte funo de ativao,

e = 0.2:

(v)

(v) =

0.2

1 se v >= 0.2
-1 se v < 0.2

-1
Entrada 1 Entrada 2

Sada

-1

-1

-1

Passo 1: Inicializar os pesos das sinapses com zero


0

X1

0
X2
Para cada par entrada sada, ajuste os pesos das sinapses.
25

Primeiro par entrada sada.


X1

X2

v1 = X1* w11 + X2* w21 + 1*b1


v1 = 0*1 + 0*1 + 0*1 = 0
Y1 = -1
D1 = 1
W11(novo) = W11 (antigo) + * X1* D1
W11 (novo) = 0 + 1*1*(1) = 1
W21 (novo) = W21(antigo) + * X2* D1
W21 (novo) = 0 + 1*1*(1) = 1
b1(novo) = b1 (antigo) + * 1* D1
b1(novo) = 0 + 1*1*(1) = 1
X1

1
X2

Segundo par entrada sada.


X1

X2

-1

v1 = X1* w11 + X2* w21 + 1*b1


v1 = 1*1 + 1*0 + 1*1 = 2
Y1 = 1
D1 = -1
W11 (novo) = W11 (antigo) + * X1* D1
W11 (novo) = 1 + 1*1*(-1) = 0

26

W21 (novo) = W21 (antigo) + * X2* D1


W21 (novo) = 1 + 1*0*(-1) = 0
b1 (novo) = b1 (antigo) + * 1* D1
b1 (novo) = 1 + 1*1*(-1) = 0
0

X1

0
X2

Terceiro par entrada sada.


X1

X2

-1

X1

X2

-1

v1 = X1* w11 + X2* w21 + 1*b1


v1 = 0*0 + 1*0 + 1*0 = 0
Y1 = -1
D1 = -1
Y = D No h alterao.

Quarto par entrada sada.

v1 = X1* w11 + X2* w21 + 1*b1


v1 = 0*0 + 0*0 + 0*-1 = 0
Y1 = -1
D1 = -1
Y igual a D neste caso na h alterao seguimos para o prximo passo. Cada passada do conjunto de
treinamento chamada de poca. Acabamos de mostrar a primeira poca.

27

Segunda poca.
X1

X2

W1

W2

-1

-1

-1

-1

-1

-1

-2

-2

-1

-1

-2

Terceira poca.
X1

X2

W1

W2

-2

-1

-1

-1

-2

-1

-1

-1

-2

-2

-1

-1

-2

Quarta poca.
X1

X2

W1

W2

-1

-1

-1

-1

-2

-1

-3

-3

-1

-1

-3

Quinta poca.
X1

X2

W1

W2

-2

-1

-2

-1

-1

-1

-2

-1

-3

-3

-1

-1

-3

Sexta poca.
X1

X2

W1

W2

-1

-1

-2

-1

-2

-1

-1

-1

-3

-3

-1

-1

-3

28

Stima poca.
X1

X2

W1

W2

-2

-1

-3

-1

-4

-4

-1

-1

-4

Oitava poca.
X1

X2

W1

W2

-1

-1

-3

-1

-1

-1

-3

-1

-4

-4

-1

-1

-4

Nona poca.
X1

X2

W1

W2

-3

-1

-4

-1

-1

-1

-4

-4

-1

-1

-4

Dcima poca.
X1

X2

W1

W2

-4

-2

-1

-1

-4

-1

-1

-1

-4

-4

-1

-1

-4

Aps 10 pocas a rede neural se estabilizou, ou seja, seus pesos no sofrem mais alteraes.
Podemos testar e verificar se a rede aprendeu de fato a reconhecer os padres ensinados.

Conjunto de padres da rede

29

Entrada 1 Entrada 2

Sada

-1

-1

-1

Quando apresentamos o par X1 = 1 e X2 = 1 a rede deve apresentar na sada o valor de sada 1.

v1 = X1* w11 + X2* w21 + 1*b1


v1 = 1* 2 + 1* 3 + 1*(-4) = 1
Y1= 1
A rede acertou, produziu o valor de sada 1 como esperado.

Quando apresentamos o par X1 = 1 e X2 = 0 a rede deve apresentar na sada o valor de sada -1.

v1= X1* w11 + X2* w21 + 1*b1


v1 = 1* 2 + 0* 3 + 1*(-4) = -2
Y1= -1
A rede acertou, produziu o valor de sada -1 como esperado.

Quando apresentamos o par X1 = 0 e X2 = 1 a rede deve apresentar na sada o valor de sada -1.

v1 = X1* w11 + X2* w21 + 1*b1


v1 = 0* 2 + 1* 3 + 1*(-4) = -1
Y1= -1
A rede acertou, produziu o valor de sada -1 como esperado.

Quando apresentamos o par X1 = 0 e X2 = 0 a rede deve apresentar na sada o valor de sada -1.

v1 = X1* w11 + X2* w21 + 1*b1


v1 = 0* 2 + 0* 3 + 1*(-4) = -4
Y1= -1
A rede acertou, produziu o valor de sada -1 como esperado.

4.4 Exerccios Resolvidos


4.4.1) Considere o seguinte conjunto de treinamento.
a) Esboce o grfico de X1 por X2 e diga se o problema linearmente separvel.
X1
1
1
-1
-1

X2
1
-1
1
-1

Sada
1
-1
1
1
30

Resoluo:

X2
1

(-1,1)

(1,1)

-1

(-1,-

X1

-1

Sim, o problema linearmente separvel pois podemos separar as classes atravs de uma famlia de
retas.
b) Quantas camadas e quantos neurnios deve ter a rede neural utilizada para reconhecer os dados
acima?
Resoluo:
Uma camada e um neurnio pois o problema linearmente separvel e possui sada binria.

4.4.2) Considere o conjunto de treinamento abaixo. Treine a rede utilizando o algoritmo do perceptron
durante uma poca, considere = 0.5, inicialize os pesos e o bias com 0.1, utilize funo de ativao
limiar com igual a zero.
X1
1
1
-1
-1
Resoluo:

X2
1
-1
1
-1

Sada
1
-1
-1
1
X1

0.1

0.1

0.1
X2

Para cada par entrada sada, ajuste os pesos das sinapses.

Primeiro par entrada sada.


X1
1

X2
1

D
1
31

v1 = X1* w11 + X2* w21 + 1*b1


v1 = 0.1*1 + 0.1*1 + 0.1*1 = 0.3
Y1 = 1
D1 = 1
Y1 igual a D1 no h alteraes.
X1

0.1

0.1

1
0.1
X2

Segundo par entrada sada.


X1
1

X2
-1

D
-1

v1 = X1* w11 + X2* w21 + 1*b1


v1 = 1*0.1+ (-1)*0.1 + 1*0.1 = 0.1
Y1 = 1
D1 = -1
W11(novo) = W11(antigo) + * X1* D1
W11(novo) = 0.1 + 0.5*1*(-1) = -0.4
W21(novo) = W21 (antigo) + * X2* D1
W21 (novo) = 0.1 + 0.5*(-1)*(-1) = 0.6
b1(novo) = b1(antigo) + * 1* d
b1(novo) = 0.1 + 0.5*1*(-1) = - 0.4
X1

-0.4

-0.4

0.6
X2

Terceiro par entrada sada.


X1
-1

X2
1

D
-1

v1 = X1* w11 + X2* w21 + 1*b1


v1 = (-1)*(-0.4) + 1*0.6 + 1*(-0.4) = 0.6
32

Y1 = 1
D1 = -1
W11(novo) = W11(antigo) + * X1* D1
W11(novo) = -0.4 + 0.5*(-1)*(-1) = 0.1
W21(novo) = W21(antigo) + * X2* D1
W21(novo) = 0.6 + 0.5*(1)*(-1 ) = 0.1
b1(novo) = b1(antigo) + * 1* D1
b1(novo) = (-0.4) + 0.5*1*(-1)= - 0.9
X1

-0.9

0.1

1
0.1
X2

Quarto par entrada sada.


X1
-1

X2
-1

D
1

v1 = X1* w11 + X2* w21 + 1*b1


v1 = (-1)*( 0.1) + (-1)*0.1 + 1*(-0..9) = -1.1
Y1 = -1
D1 = 1
W11(novo) = W11(antigo) + * X1* D1
W11(novo) = 0.1 + 0.5*(-1)*(1) = -0.4
W21(novo) = W21(antigo) + * X2* D1
W21(novo) = 0.1 + 0.5*(-1)*(1) = -0.4
b1(novo) = b1(antigo) + * 1* d1
b1(novo) = (-0.9) + 0.5*1*(1)= - 0.4
X1

-0.4

-0.4

-0.4
X2

33

4.5 Exerccios Propostos


4.5.1) Considere uma rede neural com um neurnio treine esta rede para simular o comportamento da
funo OR ou OU algoritmo do perceptron, funo de ativao limiar com =1 , utilize duas pocas,
inicialize os pesos com 0.2. Utilize =0.5
X1
1
1
-1
-1

X2
1
-1
1
-1

D
1
1
1
-1

4.5.2) Considere a seguinte rede neural de uma camada, com duas entradas, trs neurnios na camada
de sada, funo de ativao limiar com = 0.2 e seja os seguintes parmetros:

Matriz de pesos W= 0.4 0.4


0.7

0.2

0.5
0.7

Vetor de bias b=[-0.3, -0.5, 0.8]


Vetor de entradas X=[1, 0.4]
Vetor de sadas D=[1, 1 , -1]

a) Construa a topologia da rede e calcule as sadas Y1, Y2 e Y3.


b) Treine a rede durante uma poca com o algoritmo do perceptron. Use = 0.5
4.5.3) Sabese que os vetores (1, 1, 1, 1) e (1, 1, 1, 1) so membros de uma classe, enquanto os
vetores (1, 1, 1, 1) e (1, 1, 1, 1) no so. Apresente o treinamento de uma rede de Perceptron para
classificar os vetores e apresente os resultados obtidos. Utilize funo de ativao limiar com = 1,
Use = 0.5, treine por duas pocas. Diga se necessrio continuar o treinamento.
4.5.4) seja o conjunto de treinamento abaixo. Treine uma rede neural com o algoritmo do perceptron,
funo de ativao limiar com =1 , utilize duas pocas, inicialize os pesos com 0.5. Utilize =0.7.
Diga se o problema linearmente separvel.
X1
1
1
-1
-1

X2
1
-1
1
-1

D
-1
-1
-1
1

34

REDES ADALINE
5.1 Introduo
O modelo de RNA Adaline, Widrow e Hoff em 1960, inicialmente foi chamado de
(ADAptative LINear Element) e posteriormente de (ADAptative LInear NEuron). So RNA bem
simples possuem a arquitetura do neurnio idntica a do Perceptron, tendo como diferencial a regra de
aprendizado, neste caso chamada de regra delta.
Na sua forma mais simples formada por apenas um neurnio, com varias entradas uma sada e
um bias.
X1

W1
:
:

b1
Y1

1
Wn

Xn
Porm da mesma forma que no Perceptron, a rede pode ter vrios neurnios recebendo as
mesmas entradas em uma nica camada de sada.
b1
W11

X1

Y1

W1n
:
:

:
:
bn

Wm1
Xm

Wmn

Yn
n

A funo de ativao utilizada pelas redes Adaline a mesma utilizada pelo perceptron, ou seja,
uma funo bipolar (1, -1). Podendo ser a funo limiar que conhecemos com ajustvel.
(v) =

se v >=
-1 se v <

35

Podemos utilizar ainda a seguinte funo de ativao:


f(v) = 1 se v >=
v se < v <
-1 se v<=-

5.2 Algoritmo de Treinamento


A regra de aprendizado das redes adaline, conhecida por regra delta, o principio bsico
ajustar os pesos a partir do erro na sada da rede. O erro (tambm chamado custo) para um neurnio
dado pela seguinte equao:

ek = Dk - Yk

(equao 5.1)

Onde Dk a sada desejada (fornecida no padro p de entrada/sada) e Yk a sada realmente


obtida (fornecida pela rede quando apresentado o padro p). Padro p qualquer membro do conjunto
de treinamento.
A regra capaz de atualizar corretamente os pesos a cada iterao, com entradas binrias ou
contnuas.
A tendncia do erro a cada apresentao do conjunto de treinamento diminuir at chegar bem
prximo de zero. Quando trabalhamos com uma rede com mais de um neurnio na primeira camada,
precisamos calcular o erro na sada da rede e minimiza-lo. Portanto se apenas somarmos os erros de
cada neurnio i os erro negativos poderiam anular os erro positivos e dar uma falsa estabilizao da
rede. Para evitar este problema utilizaremos o erro quadrtico, a funo de erro dada a seguir:

1
E=
2N

[d

yi ]

i =1

Onde N o nmero total de neurnios na camada de sada. O fator unicamente para ajuste
do algoritmo de treinamento. Como o erro E funo da sada da rede Yk, e esta funo dos pesos wi,
podemos dizer que o erro E funo dos pesos da rede. Ou seja: E = f(w1, w2, ... ,wN).
Assim, a idia minimizar o erro ajustando os pesos, ou seja, encontrar o mnimo da funo de
erro. Este mnimo dado pela derivada parcial da funo de erro em relao a cada peso:

36

O gradiente da funo de erro o vetor composto pelas derivadas parciais da funo de erro em relao
a cada peso e aponta para a direo de crescimento da funo, da mesma forma que a derivada em uma
funo monovalorada f(x). Assim, a idia variar os pesos de forma a caminhar na direo contrria ao
gradiente, que a direo de maior diminuio do valor da funo de erro. Ou seja, queremos:
Wi = - E
Wi
Onde uma constante de proporcionalidade, tambm chamada de taxa de treinamento.
Realizando as devidas manipulaes matemticas:
N

vi = xi wi = Yi

Wi = - Xi(di yi)

i=0

Wij (novo) = Wij(antigo) + * Xi * (Dj - Yj)


O algoritmo de treinamento pode ser assim resumido:

1 - Inicie os pesos e bias com valores aleatrios pequenos


2 - Repita
Para cada padro (entrada e sada desejada) faa
Calcule as sadas Y
Para cada conexo faa
Wij(novo) = Wij(antigo) + * Xi * (Dj - Yj)
b(novo) = b(antigo) + * 1* (Dj - Yj)
at que um erro pequeno tenha sido atingido

5.3 Aplicao
Vamos construir uma rede neural que simule o comportamento de uma porta lgica OR ou OU.
X1

X2

-1

(v)

-1

1
-1

v
37

Vamos usar a seguinte funo de ativao.


(v) =

1 se v >= 1
v se -1<v < 1
-1 se v<=-1

Passo 1 Iniciar os pesos e o bias com valores aleatrios pequenos


Vamos inicializar os pesos com 0.1 inclusive o bias vamos usar =0.25
X1

0.1

0.1

1
0.1
X2

Primeiro par entrada sada.

X1

X2

v1 = X1* w11 + X2* w21 + 1*b1


v1 = 1*0.1 + 1*0.1 + 1*0.1 = 0.3
Y1 = 0.3
D1 = 1
e1 = D1-Y1 = 1 0.3 = 0.7

W11(novo) = W11(antigo) +  X11* e1


W11(novo) = 0.1 + 0.25*1*0.7 = 0.28

W21(novo) = W21(antigo) +  X2* e1


W21(novo) = 0.1 + 0.25*1*0.7 = 0.28
b1(novo) = b1(antigo) + * 1* e1
b1(novo) = 0.1 + 0.25*1*0.7 = 0.28
38

0.28

0.28

X1

1
0.28
X2

Segundo par entrada sada.


X1

X2

v1 = X1* w11 + X2* w21 + 1*b1


v1 = 1*0.28 + 0*0.28 + 1*0.28 = 0.46
Y1 = 0.46
D1 = 1
e1 = D1-Y1 = 1 0.46= 0.54
W11(novo) = W11(antigo) +  X1* e1
W11(novo) = 0.28 + 0.25*1*0.54 = 0.41

W21(novo) = W21(antigo) +  X2* e1


W21(novo) =0.28 + 0.25*0*0.54 = 0.28
b1(novo) = b1(antigo) + * 1* e1
b1(novo) =0.28 + 0.25*1*0.54 = 0.41
X1

0.41

0.41
Y

1
0.28
X2

Terceiro par entrada sada.


X1

X2

39

v1 = X1* w11 + X2* w21 + 1*b1


v1 = 0*0.41 + 1*0.28 + 1*0.41 = 0.69
Y1 = 0.69
D1 = 1
e1 = D1-Y1 = 1 0.69= 0.31
W11(novo) = W11(antigo) +  X1* e1
W11(novo) = 0.41 + 0.25*0*0.31 = 0.41

W21(novo) = W21(antigo) +  X2* e1


W21(novo) =0.28 + 0.25*1*0.31 = 0.36
b1(novo) = b1(antigo) + * 1* e1
b1 (novo) =0.41 + 0.25*1*0.31 = 0.49
X1

0.49

0.41

1
0.36
X2

Quarto par entrada sada.


X1

X2

-1

v1 = X1* w11 + X2* w21 + 1*b1


v1 = 0*0.41 + 0*0.36 + 1*0.49 = 0.49
Y1 = 0.49
D1 = 1
e1 = D1-Y1 = - 1 0.49= -1.49

W11 (novo) = W11(antigo) +  X1* e1


W11 (novo) = 0.41 + 0.25*0*(-1.49) = 0.04

40

W21(novo) = W21(antigo) +  X2* e1


W21 novo) =0.36 + 0.25*1*(-1.49) =- 0.09
b1 (novo) = b1 (antigo) + * 1* e
b1 (novo) =0.49 + 0.25*1*(-1.49)= 0.12
X1

0.12

0.04

-0.09
X2

5.4 Exerccios Resolvidos


5.4.1) Considere a seguinte rede neural de uma camada, com duas entradas, trs neurnios na camada
de sada, funo de ativao limiar com = 0.2 e seja os seguintes parmetros:

Matriz de pesos W=

0.3 0.4

0.5

0.6 0.2

0.7

Vetor de bias b=[-0.3, -0.5, 0.8]

Vetor de entradas X=[1, 0.4]

Vetor de sadas D=[1, 1 , -1]

c) Treine a rede durante uma poca utilizando regra delta com a seguinte funo de ativao e = 0.6
f(v) =

1 se v >=0.2
v se 0.2 < v <0.2
-1 se v<=-0.2

Resoluo:
e2 = D2 -Y2 = 1-(-1)=2
e1 = D1 - Y1= 1-1=0 No h alterao
W11(novo) = 0.3

e1 = Y1 D1 = 1-1=0 No h alterao
W21(novo) = 0.6

e3 = D3 -Y3 = -1-(1)=-2

W12(novo) = W12(antigo) + X1* e2

W13 (novo) = W13 (antigo) + X1* e3

W12(novo) = 0.4 + (0.6)*(1)*(2) = 1.6

W13(novo) = 0.5 + (0.6)*(1)*(-2) = -0.7

e2 = Y2 D2 = 1-(-1)=2

e3 = D3 - Y3 = -1-(1)=-2

W22 (novo) = W22 (antigo) + X2* e2

W23 (novo) = W23 (antigo) + X2* e3

W22(novo) = 0.2 + (0.6)*(0.4)*(2) = 0.68

W23(novo) = 0.7 + (0.6)*(0.4)*(-2) = 0.22

41

5.5 Exerccios Propostos


5.5.1) Considere uma rede do tipo Adaline treine-a para verificar se uma pessoa est doente ou no,
para isso considere as seguintes entradas:
Nome
Joo
Maria
Pedro
Carlos
Joana

Febre
S
N
N
S
N

Enjo
S
S
S
N
N

Dor
N
N
S
S
N

Doente?
S
N
S
S
N

=1;
Pesos iniciais 0.2
pocas = 2
Aps as duas pocas verifique se necessrio parar o treinamento.
Faa um grfico da evoluo do erro durante o treinamento.
5.5.2) Considere os seguintes parmetros da RNA, treine duas pocas, utilizando a regra delta.

Matriz de pesos W=

0.1 0.4 0.5


0.2 -0.3 0.6

Vetor de bias b=[0.5, 0.1, 0.4]

Vetor de entradas X=[1, 0.5]

Vetor de sadas D = [1, 1, 1]

=0.3

Funo de ativao

f(v) = 1 se v >=0.4
-1 se v< 0.4

5.5.3) Considere a seguinte rede neural de uma camada, com trs entradas, dois neurnios na camada
de sada, funo de ativao limiar com = 0.5 e seja os seguintes parmetros:
0.3 0.2
Matriz de pesos W= 0.4 0.1
0.5 0.5

Vetor de bias b=[-0.2, 0.1]

Vetor de entradas X=[1, 0.5, 0.3]

Vetor de sadas D=[1, -1]

=0.7

Treine duas pocas, utilizando a regra delta.


42

BACKPROPAGATION
Este um algoritmo de treinamento supervisionado para redes do tipo feedforward que tenham
neurnios com qualquer funo de ativao que seja derivvel. Este algoritmo permite modificar aos
poucos os valores das sinapses de modo a otimizar a sada da rede.
Seja uma entrada xk em uma rede, como a representada na figura a seguir - na qual a sinapse wij se
apresenta em destaque que produz sinais internos vjk e vik e uma sada
~y
ganho para pequenos sinais da sada da sinapse wij sada l .

~y k

. O caminho glik o

~y k
1

x1

.
.
.

vj

g1ik

wij
ui

gMik

.
.
.
~y k
M

x kN
Figura Sinal Feedforward

Se o erro encontrado for retropropagado (derivado do nome backpropagation), isto , propagado


a partir da camada de sada at a camada de entrada, ela tentar estabelecer o quanto cada sinapse
contribuiu para o erro, e este ser usado para ajust-las.

6.1 - Correo de Pesos


A correo dos pesos em uma rede feedforward feita atravs de um ciclo onde os pares
entrada-sada do conjunto de treinamento so apresentados no processo de aprendizagem. Podem ser
executados das seguintes maneiras principais:
a)

Batelada: Neste processo, todas as P entradas (ou um nmero delas estatisticamente

representativos) so apresentadas rede; o seu erro mdio calculado e somente aps esse clculo
dado o passo para a correo dos pesos (equao (1)), o que torna este processo muito lento e, por
isso, pouco utilizado.
w ijnovo = w ijanterior + w ij

(1)

43

b)

Regra Delta Modificada: Para acelerar o processo anterior, reduz-se o nmero de pares

entrada-sada usados para tomar uma mdia. No caso extremo, a mdia aproximada pelo valor
instantneo, e a cada par (xk, yk) a sinapse wij atualizada pela equao (2):
k

w ij = 2 v j i

(2)

Isto corresponde a tomar o gradiente do erro quadrtico instantneo, para a entrada k, como uma
estimativa do gradiente do erro mdio quadrtico. Se for suficientemente pequeno o valor de wij
permanece razoavelmente constante durante vrios passos de treinamento. A figura a seguir representa
esquematicamente a maneira de se calcular a Regra Delta.

Figura Regra Delta

Este processo equivalente ao de Batelada, pois a soma dos diversos wij equivalente ao
obtido pela mdia dos gradientes do erro quadrtico instantneo. A vantagem deste processo no
necessitar de memria para extrair a mdia dos dados e o valor de no precisa ser to pequeno. A
desvantagem que a convergncia pode ser mais oscilatria do que o processo Batelada.
c)

Momento: A atualizao feita passo a passo como na Regra Delta, mas o valor de wij

uma ponderao entre o calculado no passo atual e os calculados anteriormente, como no


Batelada - equao (3).
anterior

w ij = w ij

calculado

+ (1 ) w ij

(3)

44

Tipicamente = 0,9. Este um processo intermedirio entre a Regra Delta Modificada e a


Batelada, que tenta reunir a rapidez e simplicidade do primeiro, com a maior estabilidade na
convergncia do segundo.

6.2 - Algoritmo Backpropagation


Dado um conjunto de treinamento com L pares E/S, uma rede de M camadas treinada pelo
seguinte algoritmo:
1. As variveis de E/S so normalizadas, fazendo-se uma transformao algbrica para que variem no
intervalo 1 e 1;
2. Escolhe-se para inicializar um conjunto de parmetros Wm e bm, para m = 1, ...M Este valor
geralmente varia entre 0,1 e 0,1;
3. Escolhe-se uma taxa de aprendizado . Se este valor for grande, a rede pode divergir e, se for
pequeno, pode tornar o processo muito lento. Um valor tpico fica entre 0,05 e 0,1. Uma
possibilidade iniciar com uma valor maior no comeo, para acelerar a convergncia, e menor ao
final, para garantir um ajuste fino;
4. O nmero de camadas inicialmente definido como 1. Se o problema no chegar a uma soluo,
opta-se por duas camadas;
5. Para a camada de sada, considera-se uma regra: se a sada for contnua, usa-se a funo linear, e, se
a sada for lgica, a funo tangente hiperblica;
6. Estabelece-se algum critrio de parada, seja este um nmero mximo de iteraes ou que o valor
esperado atinja um limite mximo;
7. Calculam-se os erros de sada, da camada de sada e das camadas subseqentes;
8. Atualizam-se as sinapses mediante o ganho obtido;
9. Recalcula-se o vetor sinapse e retorna passo 7 at satisfazer o critrio de parada.

6.3 - Problemas de Treinamento


1 - Mnimos Locais

O treinamento um processo de otimizao por gradiente em uma superfcie, como a da figura


3, apresenta problemas inerentes a este processo. Um dos problemas que, como a funo custo no
quadrtica, podem ocorrer mnimos locais.

45

Figura Exemplo de Superfcie de Erro

Nesta superfcie existem vales com menor profundidade que outros; estes so os mnimos
locais, e no representam a melhor soluo. Porm o algoritmo backpropagation pode permitir a
entrada em um mnimo local, no permitindo que se encontre a melhor soluo do problema mapeado
pela rede. Para resolver este problema, pode-se usar um tipo de treinamento chamado simulated
annealing, que muito mais complexo e lento que o mtodo convencional do gradiente descendente.

Mnimos locais

Mnimo global
Figura a - Mnimos Locais de uma Funo

Figura b - Mnimos Locais de uma Funo

2 - Paralisia

46

A forma da funo F0(w) depende da funo a minimizar. As superfcies de erros sigmoidais


podem apresentar regies com pequenos declives, isto , um gradiente de F0 muito pequeno. Na figura,
se w for deslocado para uma regio de gradiente pequeno, o treinamento fica praticamente paralisado,
pois como wij proporcional ao gradiente ficar muito pequeno.

F0 (w)

Wij
Figura Funo Erro

3 - Passo de Treinamento

dado pelo tamanho do passo () que o algoritmo utiliza para caminhar na superfcie.
Valores muito pequenos de tornam o treinamento longo e os grandes podem provocar divergncia.
Para a maioria dos casos, se xk tem suas componentes normalizadas (|xik| 1, i, k) e o maior nmero
de sinapses que alimenta um neurnio Nmax o, treinamento converge se a equao (4) for verdadeira.

1
2
N max

(4)

Isto considerado um limite muito conservador; tipicamente escolhido no entorno de 0,1.


Outro problema que, se o erro mnimo no fim do treinamento ainda for elevado os acrscimos
s sinapses sero grandes e ele oscilar em torno de um valor timo. Isto pode ser contornado iniciando
o treinamento com um valor de maior e diminu-lo progressivamente.
4 - Pesos Iniciais

Os valores iniciais das sinapses devem ser pequenos, para evitar a paralisia j nos primeiros
passos de treinamento, devido a valores elevados de ui. Portanto, se um neurnio i alimentado por N
sinapses, o valor inicial de ui pode ser limitado a |ui| 1 se cada sinapse do neurnio i for limitada a
|wij| 1/N.
47

5 - Testes realizados pela rede

Uma RNA realiza o tanto treinamento como o teste com os pares entrada-sada (xk, yk)
disponveis. Estes so divididos em dois conjuntos: o de treinamento e o de teste. A rede treinada com
o conjunto de pares de treinamento, e a performance obtida medida com o conjunto de pares de teste.
Isto necessrio porque um treinamento prolongado demais (overtraining) leva a rede a uma superespecializao sobretudo se houver poucos pares entrada-sada disponveis para o.
A figura apresenta a evoluo tpica do erro medido no conjunto de treinamento (linha
tracejada) e no conjunto de teste (linha cheia) em funo do nmero de passos de treinamento. claro
que o treinamento deve ser parado em n = nc.

F0
TESTE

TREINAMENTO

nc

Figura Erro no Treinamento

48

ANEXO 1
Viso Geral da Computao Natural

49

ANEXO 2
RNAs - Desenvolvimento de Aplicaes

Coleta de dados e separao em conjuntos


Os dois primeiros passos do processo de desenvolvimento de RNAs so a coleta de dados
relativos ao problema e a sua separao em um conjunto de treinamento e outro de testes. Esta tarefa
requer uma anlise cuidadosa sobre o problema para minimizar ambigidades e erros nos dados. Alm
disso, os dados coletados devem ser significativos e cobrir amplamente o domnio do problema; no
devem cobrir apenas as operaes normais ou rotineiras, mas tambm as excees e as condies
limites do domnio do problema.
Normalmente, os dados coletados so separados em duas categorias: dados de treinamento, que
sero utilizados para o treinamento da rede e dados de teste, que sero utilizados para verificar sua
performance sob condies reais de utilizao. Alm dessa diviso, pode-se usar tambm uma
subdiviso do conjunto de treinamento, criando um conjunto de validao, utilizado para verificar a
eficincia da rede quanto a sua capacidade de generalizao durante o treinamento.
Depois de determinados estes conjuntos, eles so, geralmente, colocados em ordem aleatria
para preveno de tendncias associadas ordem de apresentao dos dados. Alm disso, pode ser
necessrio pr-processar estes dados, atravs de normalizaes, escalonamentos e converses de
formato para torn-los mais apropriados sua utilizao na rede.

Configurao da rede
O terceiro passo a definio da configurao da rede, que pode ser dividido em trs etapas:
1) Seleo do paradigma neural apropriado aplicao.
2) Determinao da topologia da rede a ser utilizada - o nmero de camadas, o nmero de unidades em
cada camada, etc.
3) Determinao de parmetros do algoritmo de treinamento e funes de ativao. Este passo tem um
grande impacto na performance do sistema resultante.
Existem metodologias, "dicas" e "truques" na conduo destas tarefas - normalmente de forma
emprica. A definio da configurao de redes neurais ainda considerada uma arte, que requer
grande experincia dos projetistas.
50

Treinamento
O quarto passo o treinamento da rede, seguindo o algoritmo escolhido,ajustando os pesos das
conexes. importante considerar, nesta fase, alguns aspectos tais como a inicializao da rede, o
modo de treinamento e o tempo de treinamento.
Uma boa escolha dos valores iniciais dos pesos da rede pode diminuir o tempo necessrio para o
treinamento. Normalmente, os valores iniciais dos pesos da rede so nmeros aleatrios uniformemente
distribudos, em um intervalo definido.
Quanto ao tempo de treinamento, vrios fatores podem influenciar a sua durao, porm sempre
ser necessrio utilizar algum critrio de parada. O critrio de parada do algoritmo backpropagation
no bem definido, sendo geralmente utilizado um nmero mximo de ciclos. Mas, devem ser
consideradas a taxa de erro mdio por ciclo e sua capacidade de generalizao. Pode ocorrer que em
um determinado instante do treinamento a generalizao comece a degenerar, causando o problema de
overtraining, ou seja, a rede se especializa no conjunto de dados do treinamento e perde a capacidade

de generalizao.
O treinamento deve ser interrompido quando a rede apresentar uma boa capacidade de
generalizao e quando a taxa de erro for menor que o erro admissvel. Assim, deve-se encontrar um
ponto timo de parada com erro mnimo e capacidade de generalizao mxima.

Teste
51

O quinto passo o teste da rede. Durante esta fase o conjunto de teste utilizado para
determinar a performance da rede com dados que no foram previamente utilizados. Esta performance
medida uma boa indicao de sua performance real.
Devem ser considerados ainda outros testes como anlise do comportamento da rede utilizando
entradas especiais e anlise dos pesos atuais da rede, pois se existirem valores muito pequenos, as
conexes associadas podem ser consideradas insignificantes e assim serem eliminadas (prunning). De
modo inverso, valores substantivamente maiores que os outros poderiam indicar que houve overtraining da rede.

Integrao
Finalmente, com a rede treinada e avaliada, ela pode ser integrada em um sistema do ambiente
operacional da aplicao. Para maior eficincia da soluo, este sistema dever conter facilidades de
utilizao como interface conveniente e facilidades de aquisio de dados atravs de planilhas
eletrnicas, interfaces com unidades de processamento de sinais, ou arquivos padronizados. Uma boa
documentao do sistema e o treinamento de usurios so necessrios para o sucesso do mesmo. Alm
disso, o sistema deve periodicamente monitorar sua performance e fazer a manuteno da rede quando
for necessrio ou indicar aos projetistas a necessidade de retreinamento. Outras melhorias podero
ainda ser sugeridas quando os usurios forem se tornando mais familiarizados com o sistema, estas
sugestes podero ser muito teis em novas verses ou em novos produtos.

52

ANEXO 3
Passos do Algoritmo Backpropagation
1 PASSO:

Calcular, no sentido feedforward, o valor que entra em cada neurnio, utilizando a

frmula:

u ic

= w ijc x j + b j
j=1

onde:
uic a entrada que chega no neurnio i da camada c;
wij peso sinptico que liga o neurnio i (camada anterior) ao neurnio j (camada
posterior);
xj neurnio i (camada anterior);
bj bias que est interligado ao neurnio j.

2 PASSO:

Calcular o que sai de cada neurnio. A sada depende da funo de ativao:


Linear vj = uj;
Tangente hiperblica vj = tgh uj uj;
Degrau vj = 1, se uj > 0 e vj = 0, se uj <= 0.

3 PASSO:

Os passos 1 e 2 devem ser repetidos para todas as camadas ocultas (caso existam) e para
a camada de sada.

4 PASSO:

Aps calcular os valores da camada de sada, calcula-se o erro associado a todos os

neurnios desta camada, utilizando a frmula:

i = y obtido y real
onde i erro associado diferena entre a sada obtida pela rede e a sada real.

5 PASSO:

Calcular o ganho para pequenos sinais de sada gi dos neurnios, da seguinte maneira:
53

Para neurnio tipo linear e degrau gi = 1


Para neurnio tipo tgh gi = 1 vi2.

6 PASSO:

Calcular o erro que ser retropropagado, considerando o ganho dos neurnios, usando a

frmula:

i = gi * i
7 PASSO:

Retropropagar o erro, utilizando o passo de treinamento , a fim de calcular a variao

das sinapses:

wij = 2 vi i
8 PASSO:

Atualizar as sinapses:

winovo = wianterior + wij

EXEMPLO:
Na rede, os neurnios 1, 2, 3 e 5 so do tipo tangente hiperblica e o neurnio 4 do tipo linear.
O treinamento do tipo Regra Delta com passo = 0,1. apresentado o par X = {0.1, 0.7} e Y = {
0.2, 1}.
Quais os novos valores das sinapses aps o primeiro passo de treinamento?

-.1
.1

.3
1

X1

.1

.2

.5
-.1

Y1

-.1

.1
2
.2
X2

-.1

.3
.9

.2

Y2

1.1

3
54

u = wijc x j + b j
c
i

j =1

1A CAMADA

u1 = w11 x1 + w12 x2 + b1 = .2 * .1 + .2 * .7 + 1 * (-.1) = .06


u2 = .1 * (-.1) + .7 * .3 + 1 * .3 = .5
u3 = .1 * .1 + .7 * .9 + .1 * 1 = .74
vj = tgh uj uj
v1 = .06

v2 = .5

v3 = .74

2A CAMADA

u4 = v1 w14 + v2 + w24 + v3 + w34

= .06 * .1 + .5 * (-.1) + .74 * (-.1) = -.078

u5 = .06 * .5 + .5 * .2 + .74 * 1.1 = .944


vj = tgh uj uj v4 = -.078 = y1
vj = uj v5 = .944 = y2
CLCULO DO ERRO

i = yobtido y real

1 = -0.078 0.2 = - 0.278


2 = .93 - 1.0 = - .07
CLCULO DO GANHO

g1 = 1 (.06)2 = .9964
g2 = 1-(.5)2 = .75

Neurnio linear gi = 1

g3 = 1-(.74) = .4524

Neurnio tgh gi = 1 vi2

g4 = 1 (linear)
g5 = 1 - (-.93)2 = .1351
CALCULO DO

i = gi * i

4 = g4 * 4 = 1 * (-.278) = - .278
5 = g5 * 2 = .1351 * .07 = .009

55

1 = g1 * (w14 * 4 + w15 * 5) = .9964 * (.1 *(-.278) + .5 * .009) = -.02322


2 = g2 * (w24 * 4 + w25 * 5) = .75 * (-.1 * (-.278) + .2 * .009) = .0222
3 = g3 * (w34 * 4 + w35 * 5) = .4524 * (-.1 * (-.278) + 1.1 * .009) = .01706
CALCULO DA VARIAO DO PESO

wij = 2 * * vi * i

Obs: Foram escolhidos 3 pesos, aleatoriamente. O clculo deve ser feito para todos os pesos da RNA.
w14 = 2 * * v1 * 4 = 2 * .1 * (.06) * (-.278) = - .0033
w15 = 2 * * v1 * 5 = 2 * .1 * (.06) * .009 = .00011
wx1,3 = 2 * * x1 * 3 = 2 * .1 * 0,1 * (.01706) = .00034
ATUALIZAO DOS PESOS

winovo = wianterior + wij

w41 = .1 + (-.0033) = .0967


w51 = .5 + (.00011) = .50011
w3 x1 = .1 + .00034 = .10034

56

ANEXO 4
Evoluo das Principais RNAs

57

ANEXO 5
reas de Aplicao de RNAs
TABELA: REAS DE APLICAO POR TIPOS DE REDES

APLICAO

DIRETA,
MULTICAMADA
(RETROPROPAGAO)

Classificao
Processamento de Imagem
Tomada de deciso

*
*
*

Otimizao

SOM

HOPFIELD

BOLTZMANN

*
*

*
*

(KOHONEN)

TABELA: REAS DE APLICAO DE ALGUNS TIPOS DE RNAS, PELA SUA ESTRUTURA

ESTRUTURA

UMA CAMADA
CONEXES
LATERAIS

Tipo de rede

Hopfield

Auto
associao
rea de
aplicao

MAPA DE VETOR
TOPOLGICO

SOM
(Kohonen)

DUAS CAMADAS
DIRETAS E
REVERSAS

MLTIPLAS
CAMADAS, DIRETAS

ART

MLPs
Rede de Boltzmann

Auto-associao
Reconhecimento de
padres
Otimizao

Otimizao
Compresso de dados

Otimizao
Hetero-associao

Reconhecimento
de padres

Reconhecimento de
padres
Compresso de dados
Filtros

58

(v) =
1 se v
>=

ANEXO 6

59

Potrebbero piacerti anche