Universidade Federal do Espírito Santo - uff.br · PDF fileRochester, da IBM. ... Notar...

31
UFES - Prof. Ailson Rosetti de Almeida Nota: Material preliminar, em edição Universidade Federal do Espírito Santo Programa de Pós-Graduação em Engenharia Elétrica Redes Neurais Um breve histórico [4] As redes neurais foram desenvolvidas na década de 40, pelo neurofisiologista McCulloch e pelo matemático Walter Pitts da Universidade de Illinois, os quais dentro do espírito cibernético, fizeram uma analogia entre células nervosas vivas e processo eletrônico num trabalho publicado sobre os neurônios formais. O trabalho consistia num modelo de resistores variáveis e amplificadores representando conexões sinápticas de um neurônio. Na mesma época, o psicólogo Donald Hebb descobriu a base de aprendizado nas redes neurais quando explicou o que ocorre, a nível celular, durante o processo de aprendizagem no cérebro (lei a ser descrita mais adiante neste trabalho). Em 1956 foi realizada a 1 a Conferência Internacional de Inteligência Artificial quando, também, foi aprensentado um modelo de rede neural artificial pelo pesquisador Nathaniel Rochester, da IBM. Este trabalho consistia da simulação de uma rede com centenas de neurônios cujo objetivo era a resposta a estímulos ambientais. Nessa mesma década, em 1959, foi demonstrada a rede Adaline e, em 60, a rede Perceptron, por Frank Rosenblatt. A rede Adaline, abreviação de Adaptative Linear Network, pela primeira vez, imitava o cérebro humano com processadores paralelos ao invés 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 inteligência artificial (redes neurais), apresentando o problema “OU-EXCLUSIVO” como um exemplo de limitação do uso das redes, uma vez que não podia ser solucionado por uma rede perceptron de camada única. Com isto, houve então uma retração na evolução de pesquisas sobre redes neurais (pelo menos no que tangia as publicações e na liberação de verbas pelos órgãos de fomento), e só então 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 alcança os dias atuais. Ailson Rosetti de Almeida

Transcript of Universidade Federal do Espírito Santo - uff.br · PDF fileRochester, da IBM. ... Notar...

Page 1: Universidade Federal do Espírito Santo - uff.br · PDF fileRochester, da IBM. ... Notar também que o sinal de ∆ automaticamente fará um aumento (soma) ou diminuição (subtração)

UFES - Prof. Ailson Rosetti de AlmeidaNota: Material preliminar, em edição

Universidade Federal do Espírito SantoPrograma de Pós-Graduação em Engenharia Elétrica

Redes Neurais

Um breve histórico [4]

As redes neurais foram desenvolvidas na década de 40, pelo neurofisiologistaMcCulloch e pelo matemático Walter Pitts da Universidade de Illinois, os quais dentro doespírito cibernético, fizeram uma analogia entre células nervosas vivas e processo eletrôniconum trabalho publicado sobre os neurônios formais. O trabalho consistia num modelo deresistores variáveis e amplificadores representando conexões sinápticas de um neurônio.

Na mesma época, o psicólogo Donald Hebb descobriu a base de aprendizado nas redesneurais quando explicou o que ocorre, a nível celular, durante o processo de aprendizagem nocérebro (lei a ser descrita mais adiante neste trabalho).

Em 1956 foi realizada a 1a Conferência Internacional de Inteligência Artificial quando,também, foi aprensentado um modelo de rede neural artificial pelo pesquisador NathanielRochester, da IBM. Este trabalho consistia da simulação de uma rede com centenas deneurônios cujo objetivo era a resposta a estímulos ambientais. Nessa mesma década, em 1959,foi demonstrada a rede Adaline e, em 60, a rede Perceptron, por Frank Rosenblatt.

A rede Adaline, abreviação de Adaptative Linear Network, pela primeira vez, imitavao cérebro humano com processadores paralelos ao invés 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 dainteligência artificial (redes neurais), apresentando o problema “OU-EXCLUSIVO” como umexemplo de limitação do uso das redes, uma vez que não podia ser solucionado por uma redeperceptron de camada única.

Com isto, houve então uma retração na evolução de pesquisas sobre redes neurais(pelo menos no que tangia as publicações e na liberação de verbas pelos órgãos de fomento), esó então em 1982 com uma proposta de rede Perceptron multicamada, por Rumelhart eMcClelland, as pesquisas voltam a se aquecer e novos resultados surgem num processoevolutivo que alcança os dias atuais.

A

ilson Rosetti de A

lmeida

Page 2: Universidade Federal do Espírito Santo - uff.br · PDF fileRochester, da IBM. ... Notar também que o sinal de ∆ automaticamente fará um aumento (soma) ou diminuição (subtração)

Redes Neurais – Prof. Ailson Rosetti de Almeida, UFESNota: Material em edição

_______________________________________

2

1. Introdução

Neurônio biológico:

Cérebro humano:

! ordem de 1014 neurônios;! ordem de 104 conexões partindo d

Compare estes dados com o cérebro de apenas 106 ! No entanto, as abelhas sãocomplexidade tais como identificação decomportamento social.

Para uma rápida e interessante reflexão shttp://www.csug.rochester.edu/users/ugrPara uma apresentação em slides sobre ahttp://psychology.newcastle.edu.au/~bro

A

O

FendaSinápti

Neuro Transm

SOM

ImpulsosElétricos

SINÁPSE

____________

e cada um p

uma abelha, capazes de padrões atr

obre estrutuads/jtomson/ fisiologia downr/PSYC10

ca

-issores

AXÔNIO

DENTRIT

Detalhe

______________________________________

ara outros neurônios.

cujo número estimado de neurônios é derealizar tarefas de elevadíssimo grau deavés da visão, orientação e navegação, e

ra neural e computabilidade, visitepaper2.html neurônio, visite3/LEC02B/sld001.htm

Receptores

Axônio

Dentrito

Page 3: Universidade Federal do Espírito Santo - uff.br · PDF fileRochester, da IBM. ... Notar também que o sinal de ∆ automaticamente fará um aumento (soma) ou diminuição (subtração)

Redes Neurais – Prof. Ailson Rosetti de Almeida, UFESNota: Material em edição

_________________________________________________________________________________________

3

2. O modelo do neurônio de McCulloch-Pitts

Onde:

θ - Limiar de disparo do neurônio, ou polarização (BIAS).

Sendo

Matematicamente, torna-se conveniente a representação do neurônio considerando apolarização θ como um peso sináptico extra, associado à uma entrada fictícia de valorunitário:

Uma estrutura simples utilizando este modelo de neurônio foi batizada de “PERCEPTRON”por Frank Rosenblatt (1962).

∑=

n

iii xw

1

.

θ

y

x1

x2

xn

w1

w2

wn

θ

1

0∑

=

n

iii xw

1

.

y

−= ∑

=

n

iiih

xwy f1

. θ

HEAVISIDE de Função−fh

( ) ( ) ( ) ( ) 0001 ≤=>= se e se ffhh

⋅=

⋅−⋅= ∑∑

==

n

iiih

n

iiih

xwxwy ff01

1 θ

w0

x0

y

x1

x2

xn

w1

w2

wn

w0 = - θx0 = 1

Page 4: Universidade Federal do Espírito Santo - uff.br · PDF fileRochester, da IBM. ... Notar também que o sinal de ∆ automaticamente fará um aumento (soma) ou diminuição (subtração)

Redes Neurais – Prof. Ailson Rosetti de Almeida, UFESNota: Material em edição

_________________________________________________________________________________________

4

3. Lei de aprendizado de Hebb

A quase totalidade dos algorítmos de aprendizagem de redes de neurônios baseia-se naLei de Hebb (1949):

“Se a unidade (neurônio) A e a unidade B são simultaneamente excitadas, o graude ligação (peso) entre elas é aumentado.”

Experimento de comprovação:

1. Tocar um sino para chamar e alimentar um cão;2. Repetir a ação (1) várias vezes;3. Tocar o sino sem alimentar o cão na sua chegada, e observar sua salivação.

Justificando o experimento:

Ao se realizar as ações (1) e (2) do experimento, estão sendo simultaneamenteexcitadas unidades correlatas a audição e paladar. O que consequentemente induz no cão aexpectativa de que será alimentado sempre que ouvir o som do sino, ou seja, a interligaçãoentre a unidades excitadas se fortifica (aumento do peso). A ação (3) permite a comprovaçãodo aumento no peso uma vez que o toque do sino traz o cão com um volume de salivaçãoequivalente àquele presente nos momentos de sua alimentação e por conseguinte digestão.

Uma varieção da lei de Hebb adotada, tal que possibilite cobrir valores tanto positivosquanto negativos, é:

“Ajustar o peso entre a unidade A e B em proporção ao produto de suasatividades simultâneas.”

4. Métodos de Aprendizado

Ajuste dos pesos de um neurônio tal que este forneça a saída desejada (correta)para os padrões (estímulos) apresentados em suas entradas.

! Este método de aprendizado é conhecido como “Aprendizado Supervisionado”, no qualsão apresentados à rede pares entrada-saída, de tal forma que seja possível umaverificação da evolução do aprendizado através da comparação entre a saída desejada esaída real. Esta verificação é realizada para todo o conjunto de dados de entrada, e acorreção dos pesos se processa enquanto o percentual de acerto (saída desejada = saídareal) estiver abaixo de um limite mínimo pré-estabelecido.

! Também existe o “Aprendizado Não-Supervisionado”, no qual o algoritmo deaprendizado é estabelecido de forma a proporcionar a evolução da inteligência da rede.Segundo as referências este método é bastante empregado em problemas de classificação,para dados dos quais não se conhece plenamente a especificação de sua origem. Exemplo;

• Entrada: Sensoriamento ultrasônico de superfícies em um ambiente;

Page 5: Universidade Federal do Espírito Santo - uff.br · PDF fileRochester, da IBM. ... Notar também que o sinal de ∆ automaticamente fará um aumento (soma) ou diminuição (subtração)

Redes Neurais – Prof. Ailson Rosetti de Almeida, UFESNota: Material em edição

_________________________________________________________________________________________

5

• Característica da entrada: Não relação entre valores obtidos e superfície em análise;• Saída: Classificação das superfícies.

Uma vez escolhido adequadamente o método de aprendizado, é de muita relevânciaanteceder ao início do treinamento um processo de tratamento dos dados. Este processovisa fundamentalmente atender à duas condições:

a) Adequação quantitativa dos dados, com eliminação de informações redundantes e/ou nãorelevantes, sendo mantida apenas as informações necessárias a abrangência das situaçõesa serem aprendidas;

b) Melhoria qualitativa da informação fornecida à rede, de forma a aumentar a eficiência doprocesso de aprendizado.

Vale ressaltar que uma base de dados mal tratada pode resultar em um aprendizado decusto demasiadamente alto (tempo de processamento), podendo ainda não atender aosrequisitos visados.

4.1 Algorítmo de aprendizagem do perceptron

1) Inicializar os pesos no tempo t = 0, wi(0), com valores aleatórios pequenos, inclusive apolarização w0(0) = - θ;

2) Apresentar o vetor de entrada X = (x0, x1, x2, ..., xn), para o qual se conhece a saídadesejada d(t);

3) Calcular a saída real

4) Ajustar os pesos, como segue:

Se correto y(t) = d(t) → wi(t+1) = wi(t)Se y(t) = 0 e d(t) = 1 → wi(t+1) = wi(t) + xi(t)Se y(t) = 1 e d(t) = 0 → wi(t+1) = wi(t) – xi(t)

5) Voltar ao item (2) e repetir para t = 1, 2, 3, ... até que não ocorram mais ajustes de pesos.

Exemplo:

Distinguir o símbolo gráfico A (classe a, d = 0) do símbolo B (classe b, d = 1):

= ∑

=

n

iiih

txtwty f0

)().()(

1

- θ

Page 6: Universidade Federal do Espírito Santo - uff.br · PDF fileRochester, da IBM. ... Notar também que o sinal de ∆ automaticamente fará um aumento (soma) ou diminuição (subtração)

Redes Neurais – Prof. Ailson Rosetti de Almeida, UFESNota: Material em edição

_________________________________________________________________________________________

6

Um melhoramento no algoritmo simples acima é a introdução do fator multiplicativoη no ajuste dos pesos, tal a proporcionar um controle na estabilidade do aprendizado, porémtornando-o mais lento. Assim sendo o ajuste dos pesos passa a ser o seguinte:

Se correto y(t) = d(t) → wi(t+1) = wi(t)Se y(t) = 0 e d(t) = 1 → wi(t+1) = wi(t) + ηxi(t)Se y(t) = 1 e d(t) = 0 → wi(t+1) = wi(t) - ηxi(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 diferença do item(4), que passaria a ser definido como:

4) wi(t+1) = wi(t) + η.∆.xi(t)

onde ∆ = d(t) – s(t) , sendo

“s” também chamada de “net”.

! Notar que os pesos variam mais rapidamente quando ∆ é grande, e à medida que oneurônio vai “aprendendo” os pesos variam progressivamente mais lentamente.

! Notar também que o sinal de ∆ automaticamente fará um aumento (soma) ou diminuição(subtração) do peso, e quando ∆ = 0 (d = s), o peso não é alterado.

Neurônios que usam esta regra de aprendizado são chamados de ADALINE´s (AdaptativeLinear Neurons), e uma rede neural usando esta regra é chamada Madaline (ManyAdaline´s).

4.3 Prova de convergência do Perceptron[5]

Considere duas classes F+ e F- no espaço de padrões de entrada X = (x1, x2, x3, ..., xn). Asclasses F+ e F- são linearmente separáveis e o perceptron deve responder com +1 se x ∈ F+

e –1 se x ∈ F-. Considere também, por simplicidade, que os vetores de entrada X temmódulo unitário. (isto, porém, não afeta a generalização).

Defina F = F+ ∪ (-F-) onde –F- são os negativos de F-.

∑=

=n

iii xwts

0

;.)(

real) (saída )]([)( tsfty h=

Page 7: Universidade Federal do Espírito Santo - uff.br · PDF fileRochester, da IBM. ... Notar também que o sinal de ∆ automaticamente fará um aumento (soma) ou diminuição (subtração)

Redes Neurais – Prof. Ailson Rosetti de Almeida, UFESNota: Material em edição

_________________________________________________________________________________________

7

O algoritmo de aprendizagem do perceptron visto anteriormente pode ser traduzido peloprograma:

Início:

Escolha um vetor de pesos arbitrário W ∈ F.

Teste:

Escolha um X ∈ F.Se (W.X > 0) então vá para testesenão vá para soma.

Soma:

Substitua W por W+XVá para teste.

Teorema da convergência do Perceptron

! Se as classes F+ e F- puderem ser classificadas, então o perceptron encontrará umasolução, passando por soma um número finito de vezes.

Prova:

Suponha que existe um vetor unitário W* que particiona o espaço, e um número fixopositivo 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:

Wt+1 = Wt + X e então

W*.Wt+1 = W*.(Wt + X) = W*.Wt + W*.X ≥ W*.Wt + δ

WWW

WWWG .W onde

.)(

*

==

Page 8: Universidade Federal do Espírito Santo - uff.br · PDF fileRochester, da IBM. ... Notar também que o sinal de ∆ automaticamente fará um aumento (soma) ou diminuição (subtração)

Redes Neurais – Prof. Ailson Rosetti de Almeida, UFESNota: Material em edição

_________________________________________________________________________________________

8

∴ W*.Wt+1 ≥ W*.Wt + δ

W*.W1 ≥ W*.W0 + δW*.W2 ≥ W*.W1 + δW*.W3 ≥ W*.W2 + δ

+ W*.Wn ≥ W*.Wn-1 + δ

W*.Wn ≥ W*.W0 + n.δ

Como W0 ∈ F ⇒ W*.W0 > δ

∴ W*.Wn ≥ (n + 1).δ

Por outro lado, |Wt+1| 2 = Wt+1.Wt+1

= (Wt + X).(Wt + X) = |Wt|

2 + 2.Wt.X + |X|2

|X| = 1 portanto,

|Wt+1| 2 ≤ |Wt|

2 + 1 Já que Wt.X é negativo ou nulo quando se passa por Soma.

Após n passagens por Soma, teremos: |Wn| 2 ≤ |W0|

2 + n

E como W0 ∈ F ⇒ |Wn| 2 ≤ 1 + n

Ou

como

ou

Assim, o programa passa um número finito de vezes por Soma, ou seja, converge.

nWn +≤ 1

1

).1(.)(

*

++≥n

n

W

WWWG

n

n δ

21).(n1 quadrado ao 1

).1(11)( δδ +≥

++≥⇒≤n

nWG

δδ 21−≤n

Page 9: Universidade Federal do Espírito Santo - uff.br · PDF fileRochester, da IBM. ... Notar também que o sinal de ∆ automaticamente fará um aumento (soma) ou diminuição (subtração)

Redes Neurais – Prof. Ailson Rosetti de Almeida, UFESNota: Material em edição

_________________________________________________________________________________________

9

! Porém, como o Perceptron simples faz uma única combinação linear das entradas, ele sóconsegue classificar espaços linearmente separáveis (classes separadas por hiperplanos).

Exemplo de comprovação

Supor um problema de classificação com uma configuração de apenas duas entras.

Logo s(t) = w0 + x1.w1 + x2.w2,

sendo:

x1 e x2 assumem 0 ou 1;e a saída y(t) = 0 se s(t) ≤ 0, e y(t) = 1 se s(t) > 0.

Assim é possível definir uma região de fronteira entre as duas classes y = 0 e y = 1, eesta região é obtida fazendo-se s(t) = 0, o que resulta em uma reta uma vez que só existemduas entradas. Esta reta é também conhecida como superfície de decisão, assim chamada poispara o caso de mais de duas entradas esta reta transforma-se em um plano (e ou hiperplano).

Para o nosso exemplo, temos;

w0 + w1.x1 + w2.x2 = 0

ou seja,

Uma representação gráfica para esta classificação pode ser ilustrada da seguinte forma:

∑ fh

1 w0

w1

w2

x1

x2

y

2

01

2

12 w

wx

w

wx −−=

x2

x1

s > 0

s ≤ 0

(0,0) (1,0)

(0,1)

(1,1)

Page 10: Universidade Federal do Espírito Santo - uff.br · PDF fileRochester, da IBM. ... Notar também que o sinal de ∆ automaticamente fará um aumento (soma) ou diminuição (subtração)

Redes Neurais – Prof. Ailson Rosetti de Almeida, UFESNota: Material em edição

_________________________________________________________________________________________

10

Fica assim melhor caracterizada a restrição quanto a capacidade de classificação deuma rede Perceptron monocamada, limitada a espaços linearmente separáveis.

4.4 O exemplo do OU-EXCLUSIVO

O exemplo mais marcante desta limitação é o problema do ou-exclusivo, citado porMinsky e Papert no livro Perceptrons (1969), causando uma “esfriada” nas pesquisas sobreredes neurais por quase duas décadas. Neste caso não se consegue por uma única superfícielinearmente definida classificar os espaços envolvidos, uma vez que tem-se a seguintedistribuição:

x1 x2 y0 0 00 1 11 0 11 1 0

Para este problema só surgiu solução na década de 80, quando Rumelhart eMcClelland apresentam a configuração perceptrons multicamadas.

Se pensarmos que um espaço não-linearmente separável pode ser subdividida empartes linearmente separáveis, cada uma resolvida por um neurônio, e combinarmos as saídasdestes neurônios por um outro que produzirá a classificação final, teremos o princípio doperceptron multi-camadas. Assim sendo uma configuração da rede solução para o problemaou-exclusivo, pode ser ilustrada da seguinte forma:

Podendo ser feita uma associação entre os subespaços criados e os neurônios da redeconforme ilustrado a seguir.

(0,0)

(1,1)

(1,0)

(0,1)

x2

x1

-1

1

-1

1

- 0,5

- 0,5

x

x

x

x

1

1

10,0 y

1

2

3

1

1

Page 11: Universidade Federal do Espírito Santo - uff.br · PDF fileRochester, da IBM. ... Notar também que o sinal de ∆ automaticamente fará um aumento (soma) ou diminuição (subtração)

Redes Neurais – Prof. Ailson Rosetti de Almeida, UFESNota: Material em edição

_________________________________________________________________________________________

11

! O problema passa a ser “Como treinar uma rede com mais de uma camada ?”

! A função não-linear de heaviside deve ser substituída por outra função (não-linear) maissuave para não mascarar a informação da distância do ponto no espaço da fronteira declassificação;

! As funções mais apropriadas e usadas para tal fim pertencem à classe dos sigmoides:

Além do mencionado acima, tais funções realizam uma espécie de controle automáticode ganho: ganho alto para pequenos sinais e ganho baixo para sinais fortes.

Sinais muito altos → Saturação → Ganho nulo.

(0,0)

(1,1)

(1,0)

(0,1)

x2

- 0,5

0,5

1

2

knetenetfy −+

==1

1)(

y

net

1

0,5

0

y

net

+1

0

k menor

- 1

knet

knet

e

eknetnetfy

2

2

1

1)tanh()( −

+−===

net

yGanho

∂∂=

Page 12: Universidade Federal do Espírito Santo - uff.br · PDF fileRochester, da IBM. ... Notar também que o sinal de ∆ automaticamente fará um aumento (soma) ou diminuição (subtração)

Redes Neurais – Prof. Ailson Rosetti de Almeida, UFESNota: Material em edição

_________________________________________________________________________________________

12

4.5 A regra de Delta Generalizada (Backpropagation)

Definições:

P – Número de padrões de aprendizagem (vetores x);

tPj – Saída-alvo (desejada) do nó (neurônio) j, para o padrão p de entrada;

OPj – Saída atual do nó j, para o padrão p na entrada;

wij – Peso (sinapse) do nó i para o nó j.

Definida esta configuração e nomenclatura, o que se deseja é caracterizar (descrever) ocomportamento do erro entre saída desejada e saída real, em relação ao comportamento dospesos. Caracterizada esta relação torna-se possível corrigir (ajustar) os pesos de forma aminimizar o erro a medida em que os pesos se aproximem do valor “ideal”.

Para deduzir esta relação considera-se a função erro quadrático médio, de forma aimpedir a influência do sinal do erro sobre o comportamento que se quer caracterizar, e simapenas o módulo do erro.

Vale lembrar que pela definição de net descrita tendo apenas a variação do índice “i”,a análise está sendo feita em relação a saída de um único neurônio da camada de saída,sendo porém válida para todas as outras saídas. Assim, temos:

x

x1

xn

OP1

O

wijO

OP2

O

Camada escondida

Camada de saída

( )∑ −=J

jPjPjp P padrão o para erro-Função OtE 2

2

1

)(. PjjPj

I

iPiijPj netfO ; Ownet == ∑

Page 13: Universidade Federal do Espírito Santo - uff.br · PDF fileRochester, da IBM. ... Notar também que o sinal de ∆ automaticamente fará um aumento (soma) ou diminuição (subtração)

Redes Neurais – Prof. Ailson Rosetti de Almeida, UFESNota: Material em edição

_________________________________________________________________________________________

13

sendo,

Para

onde,

4.6 Método do Grandiente Descendente

Por este método pode-se concluir que com o decréscimo do erro, o peso tende aaumentar (∂EP/∂wij → negativo) o que fortelece a ligação entre os nerônios. E o contrárioacontece quando o erro aumenta (∂EP/∂wij → positivo), ou seja, o peso da ligação diminuienfraquecendo a mesma.

De uma outra forma, o ajuste dos pesos pode ser assim representado:

! δPj depende da derivada da função não-linear de saída do neurônio. Portanto, estafunção não-linear deve ser diferenciável. E deve ser monotônica para que sua derivada

ij

PjPj

ij

Pj

Pj

P

ij

P

w

net

w

net

net

E

w

E

∂∂

−∂=∂

∂∂∂

=∂∂

..

=≠

=∂∂

→∂

∂=∂

k ij

kjPkkj

ijij

Pj

i k para 1

ik para

w

w Ow

ww

net 0.

PjPjij

PPi

ij

Pj Ow

E- O

w

net.∂=

∂∂

∴=∂

Pj

Pj

Pj

P

Pj

PPj net

O

O

E

net

E

∂∂

∂∂−=

∂∂−=∂ .

[ ] ).()(')(' PjPjPjjPjPjPjPj

Pj

Pj

Pj Otnetf OtO

E ; f

net

O−=∂∴−−=

∂∂

=∂∂

ij

Pijij w

Etwtw

∂∂

−=+ .)()1( η

PiPjijij Otwtw ..)()1( δη+=+

Page 14: Universidade Federal do Espírito Santo - uff.br · PDF fileRochester, da IBM. ... Notar também que o sinal de ∆ automaticamente fará um aumento (soma) ou diminuição (subtração)

Redes Neurais – Prof. Ailson Rosetti de Almeida, UFESNota: Material em edição

_____________________

14

não alterne de sinal, atrapalhando o método do Gradiente Descendente. As funções dotipo sigmoide atendem à estas exigências. Assim sendo, pode-se usar:

! Para a camada de saída nós conhecemos tPj. Mas, e para atualizar os pesos dos neurôniosda(s) camada(s) escondida(s) ? Nelas não se tem conhecimento das saídas desejadas !

! Temos que retrabalhar o valor de δPj para as camadas escondidas.

Utilizando ain

knetPj enetfO −+

==1

1)(

)1.(.)1(

)('2 PjPjknet

knetPj OOk

e

kenetf

net

O−=

+==

∂∂

PiPjPjPjPjijij OOtOOktwtw ).).(1.(..)()1( −−+=+∴ η

∑=K

PkP tE (.2

1

∑ ∂∂

=∂∂

k P

P

Pj

P

O

E

O

E

OPj

__________

da a função

− PkO 2)

∂∂

Pj

Pk

k O

O.

∑=∂∂

kPj

P

O

E

=∂∂

∴Pj

P

O

E

wjk

______

erro quadrático médio, temos:

OPj

= ∑

jPjjkPk OwfO .

Pj

Pk

Pk

Pk

Pj

Pk

O

net

net

O

O

O

∂∂

∂∂

=∂∂

.

∂∂

∂∂

jkPk

Pk

Pk

P wnet

O

O

E..

∑∂−k

-δPk

____________________________________________________

jkPk w.

Page 15: Universidade Federal do Espírito Santo - uff.br · PDF fileRochester, da IBM. ... Notar também que o sinal de ∆ automaticamente fará um aumento (soma) ou diminuição (subtração)

Redes Neurais – Prof. Ailson Rosetti de Almeida, UFESNota: Material em edição

_________________________________________________________________________________________

15

! Portanto, os δP necessários para a atualização dos pesos são propagados para trás, ouseja, o δ de um neurônio de uma camada depende dos δ à frente, daí o nomeBackpropagation.

Algorítmo Backpropagation

1. Inicializar os pesos e polarizações para números aleatórios pequenos;

2. Apresentar vetor de entrada xp e correspondente saída desejada Tp, para um padrão P a seraprendido.

XP = (x0, x1, ..., xn-1) TP = (t0, t1, ..., tm-1)

3. Calcular a saída atual, passando pelo cálculo de todos os neurônios da 1a à ultima camada.Na camada de saída, teremos os valores de OPj.

4. Atualizar os pesos

wij(t+1) = wij(t) + η.δPj.OPi

δPj = k.OPj.(1 – OPj).(tPj – OPj) Para a camada de saída.

Neste último caso para as camadas escondidas onde k são os nós da camada a frente de j.

η - Velocidade de aprendizagem.

! Note que, no caso dos neurônios logo a frente das entradas, OPi é o próprio xPi.

Algumas outras funções de treinamento também são usadas, com o objetivo deaperfeiçoamento do processo de aprendizado sob certas circunstâncias. Podemos citar:

! Gradiente descendente com momento;! Rprop – Resilient backpropagation.

∑∂=∂∂

∂∂

−=∴k

jkPkPjjPj

Pj

Pj

PPj wnetf

net

O

O

E.).('.δ

∑∂−=k

jkPkPjPjPj wOOk .).1.(.δ

Page 16: Universidade Federal do Espírito Santo - uff.br · PDF fileRochester, da IBM. ... Notar também que o sinal de ∆ automaticamente fará um aumento (soma) ou diminuição (subtração)

Redes Neurais – Prof. Ailson Rosetti de Almeida, UFESNota: Material em edição

_________________________________________________________________________________________

16

4.7 Gradiente Descendente com Momento

O método Gradiente Descendente impõe duas dificuldades em seu uso, são estas:

a) A escolha apropriada da taxa de aprendizado (η). Esta escolha pode resultar em umlongo período para convergência, caso a taxa seja demasiadamente pequena, ou por outrolado, causar uma instabilidade (oscilações) no caso de uma taxa demasiadamente grande.Assim sendo a escolha ótima da taxa de aprendizado se traduz em um complexo trabalhode sintonia;

b) Influência da derivada parcial sobre o passo do peso. Para uma função-erro decomportamento suave, a influência da derivada parcial é minimizada, permitindo umaestabilidade no ajuste do pesos. Entretanto, se a função-erro atinge alguma região debrusca depressão ou crescimento acentuado, situações em que o ajuste dos pesos deve sercuidadoso, ocorre na verdade uma brusca variação dos mesmos.

Visando suprir estas deficiências, surge então o método “Gradiente Descendente comMomento”, cuja função de ajuste dos pesos é acrescida de um termo que permite neste ajusteconsiderar o comportamento prévio dos pesos.

É importante ressaltar que esta ainda não é uma técnica genérica para obtenção deestabilidade e/ou velocidade de convergência, com o uso do momento, recomenda-sedecrescer o valor da taxa de aprendizado, para evitar instabilidade [2].

4.8 Rprop – Resilient Backpropagation

Rprop é classificada como uma técnica de aprendizado adaptativo local, sendo seuprincípio básico a eliminação da influência da derivada parcial sobre a atualização dos pesos.Logo, somente o sinal da derivada parcial é considerado para indicar o sentido (crescente oudecrescente) de atualização. A amplitude da variação do peso é determinada exclusivamentepelo então denominado “peso-específico” ∆ij, onde:

Sendo que o peso específico tem sua amplitude também definida com base nocomportamento (sinal) da derivada parcial da função-erro. A definição desta amplitude éobtida da seguinte forma:

)1()()( −∆+∂∂

−=∆ twtw

Etw ij

ij

Pij µη

<∂∂∆+

>∂∂∆−

=∆

contrário Caso 0,

0 w

E(t) se ),(

0 w

E(t) se ),(

)(ij

ij

ij

t

t

t

ij

ij

Page 17: Universidade Federal do Espírito Santo - uff.br · PDF fileRochester, da IBM. ... Notar também que o sinal de ∆ automaticamente fará um aumento (soma) ou diminuição (subtração)

Redes Neurais – Prof. Ailson Rosetti de Almeida, UFESNota: Material em edição

_________________________________________________________________________________________

17

Onde:

! 0 < η- < 1 < η+

! ∆0 por determinar o primeiro passo de atualização deve ser escolhido de acordocom os valores iniciais de peso;

! ∆máx é definido para limitar o passo de atualização de modo a evitar uminstabilidade no processo de aprendizagem, ou mesmo a tendência de conduçãorápida a um mínimo local não desejável;

! η- = 0,5 e η+ = 1,2 são valores definidos a partir de considerações teóricas eempíricas, permitindo uma redução dos parâmetros livres a apenas ∆0 e ∆máx.

O Rprop em relação ao algoritmos baseados apenas no uso da taxa de aprendizagem,traz a vantagem de atualizar os pesos através da introdução de um conceito denominado“Resilient (resistente) Update-Values”, o qual impede a influência de um distúrbiocomportamental do gradiente sobre o ajuste dos pesos, e consequentemente sobre o processode aprendizado. Tem ainda a vantagem de exigir um baixo custo computacional se comparadocom o original backpropagation [2].

Apesar das vantagens citadas acima, uma análise criteriosa deve ser realizada antes doemprego do Rprop, pois assim como os demais algoritmos adaptativos de aprendizagem, oRprop baseia o ajuste dos pesos sobre uma estimação da topologia da função-erro, ou seja,este ajuste só é realizado após a apresentação de um padrão e o cálculo do gradiente da funçãoerro correspondente. Sabendo-se que o padrão mencionado é uma época, este método introduzuma redução na eficiência de tratamento dos conjuntos de treinamento variáveis.

4.9 Aprendizado Não-Supervisionado

Como mencionado anteriormente um dos processos de aprendizado aplicado às redesneurais é não-supervisionado. E atendendo a esta técnica Teuvo Kohonen desenvolveu umalgoritmo denominado SOFM – Self-Organizing Feature-Mapping, cuja meta principal étranformar um padrão de entrada de dimensão arbitrária em um mapa discreto de uma ou duasdimensões, através de uma ordenação topológica adaptativa.

As características principais deste algoritmo, são:

contrário Caso t

w

tE

w

1)-E(t set

w

tE

w

1)-E(t set

t

ij

ijijij

ijijij

ij

−∆

⟨∂

∂∂

∂−∆

⟩∂

∂∂

∂−∆

=∆ −

+

)1(

0)(

.),1(.

0)(

.),1(.

)( η

η

Page 18: Universidade Federal do Espírito Santo - uff.br · PDF fileRochester, da IBM. ... Notar também que o sinal de ∆ automaticamente fará um aumento (soma) ou diminuição (subtração)

Redes Neurais – Prof. Ailson Rosetti de Almeida, UFESNota: Material em edição

_________________________________________________________________________________________

18

! Utilização de uma topologia mono ou bi-dimensional para a rede;

! Definição de uma função discriminante (distância Euclidiana) para seleção do neurônioque melhor se adaptou (pelo ajuste dos pesos vinculados), “neurônio vencedor”, àrepresentação do vetor de entrada;

! Implementação de um processo adaptativo que habilita os neurônios a acompanharem(pelo ajuste de suas funções discriminantes) o comportamento da entrada.

De modo simplificado, a proposta deste algoritmo é a partir de um vetor de entrada n-dimensional X = [x1, x2, ..., xn]

T, e uma configuração inicial de pesos Wj = [wj1, wj2, ..., wjn]T,

calcular a distância Euclidiana || X – Wj || para todo j, e definir como neurônio vencedoraquele para o qual foi encontrada a menor distância Euclidiana (função discriminante).

A depender da aplicação na qual a rede será utilizada, o resultado de interesse pode sera posição do neurônio vencedor ou os pesos que o levaram a esta condição.

Com o objetivo de garantir a não ocorrência da sub-utilização de neurônios da rede, oalgoritmo SOFM faz uso de uma função de vizinhança “Λi”. Esta função determina para oneurônio vencedor de uma iteração quais outros são seus vizinhos, sobre os quais o algoritmorealiza a atualização dos pesos. Assim, com uma adequada escolha desta função, ao final dafase de convergência do algoritmo o(s) neurônio(s) vencedor(es) e sua vizinhança estãorestritos ao conjunto mínimo necessário para atender a aplicação desejada.

Descrição do Algoritmo SOFM [1]

1. Inicialização

Escolha aleatória dos valores iniciais para o vetor peso Wj, com a restrição de que osvetores Wj(0) sejam distintos para cada j. É interessante que a magnitude destes valoresiniciais seja pequena para evitar uma saturação com o decorrer do treinamento.

2. Apresentação

Apresentar a rede o vetor de entrada X[].

3. Similaridade

Definir para a n-ésima iteração do algoritmo o vetor peso de maior similaridade (menordistância Euclidiana) ao vetor de entrada. Esta etapa traz como consequência a seleção doneurônio vencedor.

4. Atualização

Ajuste dos pesos sinápticos da seguinte forma:

Λ∈−+

=+contrário caso nw

n j nwnxnnwnw

j

ijj

j )(

)()],()()[()()1(

η

Page 19: Universidade Federal do Espírito Santo - uff.br · PDF fileRochester, da IBM. ... Notar também que o sinal de ∆ automaticamente fará um aumento (soma) ou diminuição (subtração)

Redes Neurais – Prof. Ailson Rosetti de Almeida, UFESNota: Material em edição

_________________________________________________________________________________________

19

Sendo;

η(n) - Taxa de aprendizagem; Λi - Função de vizinhança centrada no neurônio vencedor da iteração;

Ambos os parâmetros de ajuste são dinamicamente variados durante o processo deaprendizado.

5. Continuação

Retorno ao passo 2 até que não seja notada uma mudança significativa na configuração darede.

Escolha do parâmetros ηηηη(n) e ΛΛΛΛi(n)

O processo de aprendizado através do algoritmo SOFM é por natureza estocástico, eassim dependente do número de iterações realizadas, sendo que o sucesso de convergênciaestá fortemente vinculado à escolha adequada da taxa de aprendizado η e da função devizinhança Λ.

Ainda não foi formalizada uma teoria para a determinação dos parâmetros deaprendizado, sendo estes definidos pelo processo de tentativa e erro. Entretanto, observaçõesrealizadas a partir das inúmeras aplicações deste algoritmo conduzem esta escolha aosseguintes procedimentos [1]:

! A taxa de aprendizado deve ser uma função variável com o tempo η(n) (linear,exponencial ou inversamente proporcional a (n), assumir inicialmente o valor unitário edecrescer este valor nas primeiras 1000 (mil) iterações a aproximadamente 0,1 (sempreacima deste mínimo). A partir de então o algoritmo entra em uma etapa de fina sintoniapara a obtenção da convergência, fase na qual a taxa de convergência deve assumirvalores bem menores (da ordem de 0,01 ou menos) o que consequentemente dará origem aum grande número de iterações até a obtenção do resultado final.

! A função de vizinhança deve abranger inicialmente todos os neurônios da rede, e reduzir-se nas primeiras 1000 (mil) iterações de forma linear. A partir de então a redução avizinhança deve acelerar (assumir um comportamento exponencial, quadrático ou de maisalta ordem) de forma a limitar a vizinhança ao final da convergência a 1 (um) ou nenhumneurônio. Vale lembrar que esta redução visa impedir a subutilização de neurôniosvizinhos.

A seleção do neurônio vencedor (similaridade), o uso de uma função de vizinhança, ea aplicação de uma regra de competitividade, atribuem ao SOFM a capacidade de umasintonia seletiva, ainda com uma simplicidade de implementação. Entretanto, a prova deconvergência deste algoritmo é de complexo desenvolvimento [1], sendo que ainda não estãobem definidos os critérios que garantam a estabilidade de convergência.

Page 20: Universidade Federal do Espírito Santo - uff.br · PDF fileRochester, da IBM. ... Notar também que o sinal de ∆ automaticamente fará um aumento (soma) ou diminuição (subtração)

Redes Neurais – Prof. Ailson Rosetti de Almeida, UFESNota: Material em edição

_________________________________________________________________________________________

20

Por estas razões o uso do SOFM exige uma postura criteriosa para escolha dosparâmetros de aprendizagem, bem como a necessidade de observação periódica docomportamento da convergência, visando a detecção de uma possível instabilidade.

5. Redes Neurais em Controle de Processos

O emprego das redes neurais em controle de processos já é uma realidade com futuroainda mais promissor, tendo em vista as características trazidas pela arquitetura das redes,bem como seu comportamento dinâmico. Para um melhor entendimento quanto a relevânciado uso das redes no controle de processos, são apresentadas a seguir algumas característicasque permitem explicitar as vantagens obtidas [3].

! Sistemas não-lineares. A comprovada habilidade das redes em aproximar mapeamentosnão-lineares, é um indicativo da eficácia de sua aplicação para o controle deste tipo desistema.

! Processamento paralelo distribuído. A estrutura das redes neurais é essencialmenteparalela, o que atribui a estas um alto grau de tolerância a falhas, bem como favorece avelocidade de processamento.

! Implementação em hadware. Já se encontra disponível no mercado integrados(dedicados) que implementam a rede, permitindo a compactação do hardware, ganho navelocidade de processamento, e maior nível de distribuição no controle.

! Aprendizado e adaptação. O treinamento das redes é realizado com dados que retratamum passado do sistema a ser controlado, a partir dos quais a rede treinada torna-se capazreceber dados atualizados e por sua capacidade de generalização definir o mapeamentopara obtenção da saída desejada.

! Sistemas Multivariáveis. As redes neurais naturalmente processam várias entradas egeram várias saídas, assim sendo são plenamente aplicáveis a sistemas multivariáveis.

Apresentando as características citadas acima, fica evidente a aplicabilidade das redesneurais no controle de processos, e consequentemente um natural incentivo á esta linha depesquisa. De acordo com as referências nesta área, a principal aplicação das redes é notratamento de sistemas não-lineares, uma vez que a diversidade de configurações existentesainda não permitiu a formulação de uma teoria genérica para a solução deste problema decontrole, apesar de existirem métodos tais como uso do plano de fases, técnicas delinearização, aproximação de funções. Entretanto, tais métodos pressupõem simplificações(restrições) às condições em análise, em confronto com procedimentos heurísticos no uso dasredes.

6. Exemplos de Treinamento

A partir dos conceitos estudados foram utilizados dois bancos de dados para otreinamento de redes neurais com o objetivo de implementar processos de classificação. O

Page 21: Universidade Federal do Espírito Santo - uff.br · PDF fileRochester, da IBM. ... Notar também que o sinal de ∆ automaticamente fará um aumento (soma) ou diminuição (subtração)

Redes Neurais – Prof. Ailson Rosetti de Almeida, UFESNota: Material em edição

_________________________________________________________________________________________

21

primeiro banco contém as dimensões de pétalas e sépalas relacionadas com as respectivasflores de origem, e o objetivo é então utilizar a rede para a classificação destas flores. Osegundo banco de dados contém informações relativas ao sensoriamento ultrasônico deobjetos com 5 geometrias distintas, sendo o objetivo a classificação 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 testaras redes e estudo. Os resultados obtidos foram:

! Classificação Iris

Treinamento sem escalonamento da saída

AlgoritmoQuant. Neurôniosna 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 saída

AlgoritmoQuant. Neurôniosna 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 saída

AlgoritmoQuant. Neurôniosna 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%

Page 22: Universidade Federal do Espírito Santo - uff.br · PDF fileRochester, da IBM. ... Notar também que o sinal de ∆ automaticamente fará um aumento (soma) ou diminuição (subtração)

Redes Neurais – Prof. Ailson Rosetti de Almeida, UFESNota: Material em edição

_________________________________________________________________________________________

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 saída

AlgoritmoQuant. Neurôniosna 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 saída

AlgoritmoQuant. Neurôniosna 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 saída

AlgoritmoQuant. Neurôniosna 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 saída

AlgoritmoQuant. Neurôniosna 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%

Page 23: Universidade Federal do Espírito Santo - uff.br · PDF fileRochester, da IBM. ... Notar também que o sinal de ∆ automaticamente fará um aumento (soma) ou diminuição (subtração)

Redes Neurais – Prof. Ailson Rosetti de Almeida, UFESNota: Material em edição

_________________________________________________________________________________________

23

! Classificação de objetos

Treinamento sem escalonamento da saída

AlgoritmoQuant. Neurôniosna 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%

Média percentual de acerto 83,35%

7. Análise Final

Dos resultados obtidos evidenciam-se duas importantes influências sobre otreinamento das redes, são estas:

! O número de neurônios da camada escondida;! O uso de um escalonamento de saídas (Tc_tre).

Nos exemplos trabalhados ficou caracterizada uma redução no número de épocasnecessárias ao treinamento para que a rede atingisse a meta estabelecida, a partir de umaaumento no número de neurônios da camada escondida simultaneamente com o uso de umescalonamento das saídas. Este comportamento indica um incremento na capacidade degeneralização da rede, que é um aspecto positivo uma vez que o treinamento excessivo podedar origem a uma rede viciada nos dados de treino e incapaz (ou pouco eficaz) de classificardados genéricos.

Quanto ao uso das redes neurais é incontestável a comprovação de sua eficácia emclasses de problemas para os quais as técnicas convencionais ainda apresentam limitações.Para o autor deste trabalho um destaque deve ser dispensado à característica ainda empírica nadefinição de alguns parâmetros utilizados no treinamento das redes. Este fator pode receberduas interpretações, a dúvida quanto a confiabilidade da rede pela não comprovação formal desua eficiência (convergência), e por outro lado a motivação quanto ao uso desta técnica emfunção de sua capacidade de adaptação a partir de uma configuração inicial nãonecessariamente definida por uma exímio especialista do problema abordado, o que aumentao leque de habilitados e consequentemente a diversidade de soluções.

Observação:

Conforme relatado anteriormente não obtive êxito no uso de uma rede Radial-Basis,cujo programa utilizado foi passado por e_mail ao Mestre.

Page 24: Universidade Federal do Espírito Santo - uff.br · PDF fileRochester, da IBM. ... Notar também que o sinal de ∆ automaticamente fará um aumento (soma) ou diminuição (subtração)

Redes Neurais – Prof. Ailson Rosetti de Almeida, UFESNota: Material em edição

_________________________________________________________________________________________

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 (características) do vetor de entrada:% - Comprimento da sépala% - Largura da sépala% - Comprimento da pétala% - Largura da sépala% Componentes do vetor de saída:% - 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, [email protected]%

load iris

% Separando os conjuntos de treinamento e teste (validação):C1 = iris1(find(iris1(:,5) == 1),:); % Todos os exemplares da classe 1C2 = iris1(find(iris1(:,5) == 2),:); % Todos os exemplares da classe 2C3 = 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 treinamentoiris_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 não necessita ser

Page 25: Universidade Federal do Espírito Santo - uff.br · PDF fileRochester, da IBM. ... Notar também que o sinal de ∆ automaticamente fará um aumento (soma) ou diminuição (subtração)

Redes Neurais – Prof. Ailson Rosetti de Almeida, UFESNota: Material em edição

_________________________________________________________________________________________

25

% embaralhado, mas vamos faze-lo assim mesmo. A função "shuffle.m" não vem% no Matlab (pelo menos, até v5.2). A criei para embaralhar dados (pares% entrada-saída) em conjuntos de treinamento.n = shuffle(99); % cria vetor de inteiros de 1 a 99, em ordem aleatória, % 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 saída, cada linha é uma dimensão da entrada ou da saída):P_tre = iris_tre(:,1:4)';T_tre = iris_tre(:,5)';

% Idem para o conjunto de teste/validação: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 decodificação de cada indice de classe% ( 1 a 3) em um vetor binario de 3 elementos, onde todos os elementos% são 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 função% 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 função "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 função "minmax" para este fim:

pr = minmax(P_tre);

% Criação da rede feedforward com uma camada interna de 10 neuronios% com função de ativação tangente hiperbolica e uma de saida com 3% neuronios (um para cada classe) com função de ativação logística,% já que os valores desejados variam de 0 (não pertence à classe) a% 1 (pertence à classe). Usaremos inicialmente o treinamento% backpropagation com otimização tipo gradiente descendente (traingd):

irisnet=newff(pr,[10 3],{'tansig' 'logsig'},'traingd');

% A função "newff" acima já inicializa os pesos com os valores% correspondentes à(s) função(ões) de inicialização default. Se quizermos,

Page 26: Universidade Federal do Espírito Santo - uff.br · PDF fileRochester, da IBM. ... Notar também que o sinal de ∆ automaticamente fará um aumento (soma) ou diminuição (subtração)

Redes Neurais – Prof. Ailson Rosetti de Almeida, UFESNota: Material em edição

_________________________________________________________________________________________

26

% contudo, reinicializar os pesos com novos valores podemos chamar esplici-% tamente a função "init" após "newff", como em:% irisnet = init(irisnet);% ou se quizermos fazer outra inicialização com funções distintas que as% default, mudamos as propriedades apropriadas do objeto irisnet e usamos% a função "init". (Aqui, vamos manter a inicialização feita por "newff").

% Ajustando alguns parametros de treinamento:irisnet.trainParam.goal = 0.02; % estava no valor default, 0irisnet.trainParam.epochs = 3000; % estava no valor default, 100irisnet.trainParam.lr = 0.01; % estava no v. default, 0.01 (mesmo valor)

% Treinamento com a função "train":% Vamos criar como saida da função 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 função train reporta. Caso% não 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, não convergiu no número máximo 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;

Page 27: Universidade Federal do Espírito Santo - uff.br · PDF fileRochester, da IBM. ... Notar também que o sinal de ∆ automaticamente fará um aumento (soma) ou diminuição (subtração)

Redes Neurais – Prof. Ailson Rosetti de Almeida, UFESNota: Material em edição

_________________________________________________________________________________________

27

% No treinamento acima, os valores min e max de Tc_tre (saida) são 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 saídas reescalonadas atingimos convergencia em %d épocas.\n',tr.epoch(end)); clear tr; end;end;

% Teste/Validação (Simulação, 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 função% 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 funçãoyic = vec2ind(yi); % contrario de ind2vec() acima.

% Agora comparamos yi com T_tes (e não 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)

Page 28: Universidade Federal do Espírito Santo - uff.br · PDF fileRochester, da IBM. ... Notar também que o sinal de ∆ automaticamente fará um aumento (soma) ou diminuição (subtração)

Redes Neurais – Prof. Ailson Rosetti de Almeida, UFESNota: Material em edição

_________________________________________________________________________________________

28

Programa utilizado para o treinamento das redes no problema Obstáculos.

% CLASSIFICAÇÃO DE OBSTÁCULOS 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 dadosfunction usom(n_amostras)

load -ascii 'dados.txt';

% separa as classesc1 = dados(find(dados(:,12) == 1),:); % Todos os exemplares da classe 1c2 = dados(find(dados(:,12) == 2),:); % Todos os exemplares da classe 2c3 = dados(find(dados(:,12) == 3),:); % Todos os exemplares da classe 3c4 = dados(find(dados(:,12) == 4),:); % Todos os exemplares da classe 4c5 = 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);

Page 29: Universidade Federal do Espírito Santo - uff.br · PDF fileRochester, da IBM. ... Notar também que o sinal de ∆ automaticamente fará um aumento (soma) ou diminuição (subtração)

Redes Neurais – Prof. Ailson Rosetti de Almeida, UFESNota: Material em edição

_________________________________________________________________________________________

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)

Observação: Em ambos os casos para cada algoritmo treinado mudava-se no programa afunção “newff”.

Page 30: Universidade Federal do Espírito Santo - uff.br · PDF fileRochester, da IBM. ... Notar também que o sinal de ∆ automaticamente fará um aumento (soma) ou diminuição (subtração)

Redes Neurais – Prof. Ailson Rosetti de Almeida, UFESNota: Material em edição

_________________________________________________________________________________________

30

8. Bibliografia

1. Haykin, S. (1994). Neural Networks – A Comprehensive Foundation, MacmillanCompany/New York.

2. Riedmiller, M. (1994). Advanced Supervised Learning in Multi-layer Perceptrons – FromBackpropagation to Adaptative Learning Algorithms, Journal of Computer Standards andInterfaces, IEEE.

3. Hunt, K.J., Sbarbaro, D., Zbikowski, R., Gawthrop, P.J. (1992). Neural Networks forControl Sustems – A Survey, IEEE Control System, Vol. 28, pp. 1083-1112.

4. Tafner, M., Xerez, M., Rodrigues, Ilson. (1996). Redes Neurais Artificiais – Introdução ePrincípios de Neurocomputação, Eko e FURB, Blumenau – Santa Catarina.

5. Notas de aula do Prof. Dr. Ailson Rosetti de Almeida

Page 31: Universidade Federal do Espírito Santo - uff.br · PDF fileRochester, da IBM. ... Notar também que o sinal de ∆ automaticamente fará um aumento (soma) ou diminuição (subtração)

Redes Neurais – Prof. Ailson Rosetti de Almeida, UFESNota: Material em edição

_________________________________________________________________________________________

31