Anda di halaman 1dari 75

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE

CENTRO DE TECNOLOGIA
DEPARTAMENTO DE ENG. DE COMPUTAO E
AUTOMAO

CONTROLE INTELIGENTE

Professor: Fbio Meneghetti Ugulino de Arajo


Natal-RN, Novembro de 2004

NDICE
1

INTRODUO .................................................................................................................................. 4
1.1
CONCEITUAO DE INTELIGNCIA ARTIFICIAL............................................................................ 4
1.2
APRENDIZADO ............................................................................................................................. 5
1.3
FERRAMENTAS UTILIZADAS EM IA. ............................................................................................. 5
1.3.1
Sistemas de Produo ....................................................................................................... 5
1.3.2
Lgica Nebulosa................................................................................................................ 6
1.3.3
Redes Neurais.................................................................................................................... 6
1.4
ALGUMAS APLICAES TPICAS DE IA......................................................................................... 6

LGICA E DEDUO..................................................................................................................... 7
2.1
CLCULO SENTENCIAL ................................................................................................................ 7
2.1.1
Deduo ............................................................................................................................ 8
2.2
CLCULO DE PREDICADOS........................................................................................................... 9
2.2.1
Resoluo ........................................................................................................................ 10

REPRESENTAO DE CONHECIMENTOS ............................................................................ 12


3.1
PRINCIPAIS FORMAS DE REPRESENTAO DO CONHECIMENTO EM IA....................................... 12
3.1.1
Representao Utilizando Lgica Matemtica ............................................................... 12
3.1.2
Representao Utilizando Regras de Produo ............................................................. 12
3.1.3
Representao Utilizando Redes Semnticas.................................................................. 13
3.1.4
Representao Utilizando Frames e Scripts ................................................................... 13
3.2
MTODOS DE BUSCA.................................................................................................................. 14
3.2.1
Algoritmo A* ................................................................................................................... 16

CONTROLADORES BASEADOS EM CONHECIMENTOS.................................................... 17


4.1
4.2
4.3

INTRODUO LGICA NEBULOSA .................................................................................... 22


5.1
5.2

EXEMPLO DE CONTROLADOR USANDO REGRAS DE PRODUO. ................................................ 18


EXEMPLO DE UM SUPERVISOR INTELIGENTE .............................................................................. 19
EXEMPLO DE UM ASSISTENTE INTELIGENTE .............................................................................. 20
CONJUNTOS NEBULOSOS ........................................................................................................... 22
LGICA NEBULOSA ................................................................................................................... 26

CONTROLADORES EMPREGANDO LGICA NEBULOSA................................................. 28


6.1
ESTRUTURA DE CONTROLADORES EMPREGANDO LGICA NEBULOSA ....................................... 29
6.1.1
Conversor para Variveis Nebulosas (Nebulisador).................................................. 29
6.1.2
Mquina de Inferncia Nebulosa .................................................................................... 30
6.1.3
Conversor para Varivel Numrica (Desnebulizador)............................................... 32
6.2
CONTROLADORES COM E(T) E U(T) QUANTIZADOS ..................................................................... 32
6.3
ESTABILIDADE NO CONTROLE NEBULOSO EM MALHA FECHADA .............................................. 34
6.4
CARACTERSTICAS DE CONTROLADORES NEBULOSOS ............................................................... 36

MTODOS DE OTIMIZAO NUMRICA.............................................................................. 37


7.1
CONCEITUAO E UTILIDADE EM SISTEMAS INTELIGENTES ...................................................... 37
7.2
MTODOS DE OTIMIZAO UNIDIMENSIONAL ........................................................................... 39
7.2.1
Mtodo da Busca Uniforme ............................................................................................ 39
7.2.2
Mtodo da Seco urea ................................................................................................ 40
7.3
MTODOS DE BUSCA EMPREGANDO GRADIENTE ....................................................................... 41
7.3.1
Mtodo da Mxima Declividade ..................................................................................... 42
7.3.2
Mtodo de Newton........................................................................................................... 43
7.4
MTODOS DE BUSCA SEM EMPREGAR GRADIENTE..................................................................... 44
7.4.1
Mtodo da Busca Direta ................................................................................................. 44
7.4.2
Mtodo dos Poliedros Flexveis ...................................................................................... 45
7.4.3
Algoritmos Genticos ...................................................................................................... 47
7.5
MTODOS ESTENDIDOS ............................................................................................................. 49
7.5.1
Zona Tabu ....................................................................................................................... 49
7.5.2
Recozimento Simulado .................................................................................................... 50
7.6
SELEO DO MTODO DE OTIMIZAO ..................................................................................... 51

REDES NEURAIS ARTIFICIAIS.................................................................................................. 52


8.1
MODELOS E ARQUITETURAS ...................................................................................................... 52
8.1.1
O neurnio biolgico (natural) ....................................................................................... 53
8.1.2
Definio de Rede Neural Artificial................................................................................ 54
8.1.3
Uma Estrutura Geral para Modelos de Redes Neurais Artificiais ................................. 54
8.1.4
Topologia de Redes Neurais Artificiais........................................................................... 56
8.1.5
Aprendizado em Redes Neurais Artificiais...................................................................... 56
8.1.6
Capacidade de Aproximao Universal ......................................................................... 57
8.2
APRENDIZADO COM SUPERVISO FORTE ................................................................................... 58
8.2.1
Programao Direta dos Pesos ...................................................................................... 58
8.2.2
Ajuste de Pesos Mediante Amostras de Pares Entrada-Sada ........................................ 63
8.2.3
O Algoritmo Back-Propagation ...................................................................................... 70
8.3
APLICAES DE REDES NEURAIS ARTIFICIAIS EM CONTROLE ................................................... 73

1 INTRODUO
A Inteligncia Artificial (IA) busca prover mquinas com a capacidade de realizar
algumas atividades mentais do ser humano. Em geral so mquinas com algum recurso
computacional, de variadas arquiteturas, que permitem a implementao de rotinas no
necessariamente algortmicas. As atividades realizadas por estas mquinas podem envolver a
senso-percepo (tato, audio e viso), as capacidades intelectuais (aprendizado de conceitos
e de juzos, racioccio dedutivo e memria), a linguagem (verbais e grficas) e ateno
(deciso no sentido de concentrar as atividades sobre um determinado estmulo).
Em termos de tecnologia, IA permite que mquinas possam realizar tarefas complexas
no lugar do operador humano, liberando-o de atividades enfadonhas, insalubres ou inseguras.
Tambm pode aumentar a eficincia do humano na sua interao com equipamentos
sofisticados. Permite, ainda, que conhecimentos possam ser compartilhados por muitas
pessoas, sem que haja necessidade de consultas a especialistas.
Esta apostila baseia-se na obra de Nascimento Jr. e Yoneyama (2002) e no substitui
em nenhum sentido tal livro, visando to somente propiciar aos alunos um material de estudo
resumido que apresente os principais conceitos explorados na supracitada obra.

1.1 Conceituao de Inteligncia Artificial


Em 1948, N. Wiener talhou o termo ciberntica, compreendendo uma cincia que
abrangeria, entre outros temas, o estudo da inteligncia de mquinas. Em 1950, Alan Turing
props um mtodo para determinar se uma mquina poderia apresentar inteligncia (Turing
Test). O primeiro passo , portanto, tentar estabelecer o que deve ser entendido como
Inteligncia Artificial. Contudo, conceituar Inteligncia Artificial (IA) uma tarefa difcil,
seguem algumas das definies fornecidas por autores de renome na literatura especializada:
a) IA o estudo das faculdades mentais atravs do uso de modelos computacionais
(Charniak e McDermott, 1985);
b) IA o estudo de como fazer os computadores realizarem tarefas que, no momento,
so feitas melhor por pessoas (Rich, 1983);
c) IA o estudo das idias que permitem habilitar os computadores a fazerem coisas
que tornam as pessoas inteligentes (Winston, 1977);
d) IA o campo de conhecimentos onde se estudam sistemas capazes de reproduzir
algumas das atividades mentais humanas (Nilsson, 1986).
Uma vez que as definies de IA envolvem termos como faculdades mentais, tarefas
melhor feitas por pessoas, coisas que tornam as pessoas inteligentes e atividades mentais
humanas, interessante que se considere, inicialmente, os aspectos psicolgicos da
inteligncia humana, ainda que o objetivo final no seja reproduz-los.
Segundo livros do campo da psicologia (Paim, 1986) e da psiquiatria (Ey, Bernard e
Brisset, 1985), as atividades psquicas (do grego psykhe = alma) fundamentais so:
Sensao; Percepo; Representao; Conceituao;
Juzo; Raciocnio; Memria; Ateno; Conscincia;
Orientao; Afetividade; Volio; e Linguagem.
Um sistema empregando IA tenta imitar e integrar diversas atividades psquicas
forma simultnea. Por exemplo, um veculo auto-guiado pode estar dotado de sistemas
senso-percepo, mecanismo para representao do ambiente, bem como bancos
conhecimentos e de dados, de forma a realizar inferncias de forma autnoma e navegar
um ponto a outro, sem colidir com obstculos na sala.
4

de
de
de
de

1.2 Aprendizado
Uma rea fundamental em IA o estudo do aprendizado. Para Kodratoff, 1986,
aprendizado a aquisio de conceitos e de conhecimentos estruturados. Esta aquisio
certamente envolve o juzo, o raciocnio e a memria. Na prtica, para que a aquisio de
conhecimentos ocorra, h ainda a necessidade de sensao, percepo, representao,
linguagem e, possvelmente, ateno. Portanto, aprendizado um processo complexo e
integrado que envolve mltiplas funes psquicas no ser humano. Em consequncia, o estudo
do aprendizado pela mquina no pode prescindir da conceituao adequada destas funes
psquicas.
O aprendizado pode ocorrer com ou sem a presena de um tutor (professor). Quando o
tutor orienta a aquisio dos conceitos e de conhecimentos estruturados tem-se o aprendizado
supervisionado. Quando o aprendizado ocorre em funo apenas dos estmulos primitivos
tem-se o aprendizado no-supervisionado. Dependendo da intensidade de envolvimento do
tutor, o aprendizado pode ser por descoberta, por exemplos ou por programao. Os
mecanismos empregados no processo de aprendizado podem ser:
a) Numrico ou conceptual: O aprendizado numrico aquele onde valores de certos
parmetros so ajustados no processo de armazenamento das informaes. o caso de redes
neurais, onde os valores dos ganhos das sinapses alteram o conhecimento representado pela
rede. O aprendizado conceptual se as relaes entre as diversas entidades so apreendidos
pelo sistema, usualmente na forma simblica.
b) Punio e Recompensa: um mecanismo de aprendizado onde as tentativas e erros
so disciplinadas por um supervisor que fornece ao aprendiz um sinal de realimentao na
forma de punio ou recompensa para aes favorveis ou desfavorveis.
c) Emprico ou Racional: O aprendizado emprico se ocorre com base em
experimentao ou amostragem do mundo real. O aprendizado racional se direcionado por
um mecanismo de inferncia solidamente fundamentado.
d) Dedutivo/Indutivo/Inventivo: O aprendizado dedutivo se o objetivo pode ser
alcanado a partir de mecanismos de inferncia sobre o conjunto de premissas fornecidas a
priori. O aprendizado indutivo se h necessidade de generalizaes dos conceitos
apreendidos a partir de exemplos e do conjunto de premissas fornecidas a priori, para se
alcanar o objetivo. O aprendizado inventivo se h necessidade de aquisicionar novas
premissas, no obtenveis atravs de generalizaes das j disponveis.

1.3 Ferramentas utilizadas em IA.


Dentre as muitas ferramentas de IA existentes hoje em dia, trs constituem objeto de
estudo neste texto, so elas:
1.3.1 Sistemas de Produo
Os sistemas de produo so aqueles que utilizam conjuntos de regras, usualmente do
tipo Se (condio) Ento (ao ou concluso), aliado a uma base de dados (de conhecimentos)
e mecanismos de controle (que indicam a seqncia de regras a serem usadas conjuntamente
com a base de dados e, na existncia de conflitos, providenciam a sua resoluo).
Como exemplo, pode-se mencionar a expresso:
Se {(temperatura > 300oC) e (presso > 2 atm)}; Ento {vlvula_1 = OFF}
So intimamente ligados ao clculo de predicados, que por sua vez, uma sub-rea da
Lgica Matemtica. A aplicao direta da lgica se manifesta nos sistemas especialistas,
freqentemente baseados em regras de produo.
5

1.3.2 Lgica Nebulosa


J na dcada de 30, J. Lukasiewicz havia formalizado um sistema lgico de 3 valores
{0, 1/2, 1}, posteriormente estendido para os racionais e reais compreendidos entre 0 e 1.
Tambm nesta poca, M. Black havia introduzido o termo vagueness para expressar
incertezas no campo da mecnica quntica. Em 1965, L.A. Zadeh introduziu os conjuntos
nebulosos, reativando o interesse em estruturas matemticas multivariadas. Em 1973, o
prprio Zadeh propunha a lgica nebulosa como um novo enfoque para anlise de sistemas
complexos e processos de deciso.
Aplicaes especficas sobre o uso da lgica nebulosa em controle surgem em trabalhos
de E.H. Mamdani, em 1974.
A partir de meados dos anos 80, o emprego de controladores nebulosos adquiriu
aceitao industrial, particularmente no Japo, com aplicaes abrangendo desde mquinas
fotogrficas at processos industriais.
Em 1986, M. Togai e W. Watanabe apresentavam um chip VLSI implementando uma
mquina de inferncia nebulosa. Hoje em dia, a produo em massa deste tipo de chip tornou
corriqueiro o uso de lgica nebulosa at em eletrodomsticos.
1.3.3 Redes Neurais
O conceito de neurnio, como constituinte estrutural primordial do crebro pode ser
atribudo a S. Ramn y Cajl, 1911. Circuitos que buscavam simular neurnios biolgicos
foram introduzidos por W.S. McCulloch e W. Pitts em 1943 e objetivavam realizar clculos
lgicos. McCulloch era psiquiatra e neuroanatomista, enquanto Pitts era matemtico.
O livro The Organization of Behavior de D.O. Hebb, surgiu em 1949, onde o
aprendizado era caracterizado como modificao das sinapses. Em 1956 A.M. Uttley
demonstrou que redes neuronais com sinapses modificveis poderiam classificar padres
binrios. Em 1958, F. Rosenblatt introduziu o conceito de perceptron enquanto em 1960 B.
Widrow e M.E. Hoff Jr. utilizaram o conceito de mnimos quadrados para formular o Adaline
(Adaptive Linear Element) Em 1969, M. Minsky e S. Papert publicaram o seu livro sobre
perceptrons em que se demonstravam as limitaes de perceptrons de uma camada. Este fato,
aliado a dificuldades de implementao de hardware, levou muitos pesquisadores a
diminurem as suas atividades neste campo.
Em 1982, J.J. Hopfield utilizou a idia de funes energia e estabeleceu conexes com
a fsica estatstica, levando s redes de Hopfield. Tambm nesta data, 1982, T. Kohonen
publicou seus resultados sobre mapas auto-organizveis. Em 1983, A.R. Barto, R.S. Sutton e
C.W. Anderson introduziram o conceito de Reinforcement Learning. Em 1986, o algoritmo de
Back-Propagation foi desenvolvido por D.E. Rumelhart, G.E. Hinton e R.J. Williams. Em
1988, D.S. Broomhead e D. Lowe descreveram redes empregando funes de base radial
(Radial Basis Functions).

1.4 Algumas aplicaes tpicas de IA


As ferramentas de IA tm se mostrado poderosas e teis em diversas reas do
conhecimento humano, tais como:
a)
b)
c)
d)
e)
f)

Jogos;
Prova Automtica de Teoremas;
Sistemas Especialistas;
Compreenso de Linguagem Natural;
Percepo;
Robtica.

2 LGICA E DEDUO
2.1 Clculo Sentencial
O objetivo bsico do Clculo Sentencial a verificao da veracidade de sentenas a partir da
veracidade ou falsidade dos tomos. As sentenas mais complexas so formadas a partir da
combinao de sentenas mais simples atravs do uso de conectivos sentenciais. As sentenas
elementares so chamados de tomos.
No Clculo Sentencial, a veracidade que se deseja estabelecer quanto a legitimidade dos
argumentos e no dos tomos em si.
importante observar que o uso de smbolos iguais para objetos diferentes pode resultar em
concluses surpreendentes. Assim, usando-se o smbolo guia para designar um s da aviao, como
o famoso piloto de avies de caa, Manfred Von Richtoffen, ter se ia
(guia ave)
(Manfred_Von_Richtoffen guia)
(Manfred_Von _Richtoffen ave)
Os conectivos sentenciais usualmente empregados so , , , , correspondentes a "e",
"ou", "implica", "equivale" e "no". Porm, pode-se demonstrar que todas as sentenas podem ser
reescritas apenas com o uso de 2 conectivos: { , } ou { , } ou { , }.
Um exemplo de sentena : "Se (a funo f(.) diferencivel) Ento (a funo f(.) ontnua)",
ou simbolicamente, a b, onde a = (a funo f(.) diferencivel) e b = (a funo f(.) contnua).
Em princpio, a veracidade ou no de uma sentena pode ser aferida com o uso de Tabelas
Verdade, onde so apresentados os valores da expresso, na forma V = Verdade e F = Falso, para
cada combinao de valores para os tomos. Para o caso dos conectivos principais:
a

ab

ab

ab

ab

Para a verificao da veracidade de a (b c) em funo de valores dos tomos a, b e c, podese construir a seguinte Tabela de Verdade:
a

bc

a (b c)

Neste exemplo, nota-se que a expresso a (b c) no assume o valor V para quaisquer


valores de a, b, e c. Entretanto, existem expresses para o qual o valor sempre V, independente do
valor de seus tomos. Tais expresses so denominados de tautologias. Algumas tautologias
importantes esto listadas a seguir:

1. a a
2. a a
3. (a a) a
4. (a a) a
5. (a) a
6. (a (a))
7. (a (a))
8. a (a b)
9. (a b) (b a)
10. (a b) ((a) (b))
11. (a b) ((a) (b))
12. (a b) ((a) (b))
13. (a b) ((a) (b))
14. (a b) (a (b))
15. (a b) ((a) b)

Identidade
Equivalncia
Idempotncia
Idempotncia
Dupla Negao
Terceiro Excludo
No Contradio
Negao do Antecedente
Contraposio
De Morgan
De Morgan

( 2.1)
( 2.2)
( 2.3)
( 2.4)
( 2.5)
( 2.6)
( 2.7)
( 2.8)
( 2.9)
( 2.10)
( 2.11)
( 2.12)
( 2.13)
( 2.14)
( 2.15)

2.1.1 Deduo
Um tpico importante dentro do Clculo Sentencial o da Deduo.
Deduo a obteno de uma concluso verdadeira, a partir de premissas consideradas
verdadeiras e de axiomas vlidos. Em princpio pode tambm ser verificada atravs do uso de tabelas
de verdade.
Para denotar que Os axiomas a1 am permitem deduzir b, a partir das premissas p1 pn
usada a grafia:
p1,...,pn,a1,...,am b

( 2.16)

Como exemplo, considere-se a verificao da legitimidade da deduo:


a b, b a

( 2.17)
a

ab

Observa-se nesta tabela de verdade que, quando a b, b so, simultaneamente, V tem-se que
o valor de a V.
Uma forma de reduzir o emprego de tabelas de verdade de grandes dimenses utilizar algumas
formas j conhecidas de deduo:
1. a, a b b
2. a b, b a
3. a b, b c a c
4. a, a b b
5. a c, ( a b ) ( c d ) b d
6. ((b) (d)), ( a b ) ( c d ) (a) (c)
7. a b a
8. a, b a b
9. a a b
10. a, a b

Modus Ponens
Modus Tollens
Silogismo Hipottico
Silogismo Disjuntivo
Dilema Construtivo
Dilema Dedutivo
Simplificao
Conjuno
Adio
Deduo por Absurdo

( 2.18)
( 2.19)
( 2.20)
( 2.21)
( 2.22)
( 2.23)
( 2.24)
( 2.25)
( 2.26)
( 2.27)

2.2 Clculo de Predicados


O clculo de predicados tambm estuda a legitimidade ou no de sentenas, mas agora incluindo
os efeitos dos quantificadores ( e ), bem como os predicados (verbos e objetos).
Considere a seguinte deduo, com o quantificador universal :
(TODAS as crianas estudam)
(Alice uma criana)
(Alice estuda)
que pode ser representada simbolicamente por:
{(x [Criana(x) Estuda(x)])

(Criana(Alice) = V)} Estuda (Alice) = V.

( 2.28)

A importncia do quantificador pode ser facilmente ser percebida examinando-se a mesma


estrutura anterior, com o quantificador existencial no lugar de :
(EXISTEM crianas que estudam)
(Alice uma criana)
(Alice estuda)
que pode ser representada simbolicamente por:
{(x [Criana(x) Estuda(x)]) (Criana(Alice) = V)} Estuda (Alice) = V

( 2.29)

Obviamente, esta segunda deduo incorreta.


A importncia do predicado evidenciada pelo seguinte exemplo, onde Filho(x,z) significa que
x e filho de z e Irmo(x,y) significa que x irmo de y:
xy (z [Filho(x,z) Filho(y,z)] Irmo(x,y))
Filho(Charles, Elizabeth) = V
Filho(Andrew, Elizabeth) = V
A partir destas expresses devemos concluir que:
Irmo(Andrew, Charles) = V.
At agora foram utilizadas nas representaes as combinaes ( com ) e ( com

):

x [Criana(x) Estuda(x)] e x [Criana(x) Estuda(x)]


Ser avaliada, ento, a convenincia ou no das combinaes ( com ) e ( com ):
x [Criana(x) Estuda(x)] e x [Criana(x) Estuda(x)].
Lembrando que (a b) ((a) b), o primeiro termo permite escrever
x [Criana(x) Estuda(x)] x [(Criana(x)) Estuda(x)]
ou seja, existe algum que no seja criana ou que estude. uma sentena de pouco interesse. Por
outro lado, aplicando a propriedade que a b a, tem-se a partir do segundo termo que Criana(x)
Estuda(x) Criana(x), de onde se conclui que:
x Criana(x)
que tambm de pouco interesse.
Algumas expresses teis envolvendo quantizadores esto listadas a seguir:

1. x A(x) x A(x)
2. x A(x) (x (A(x)))
3. (x A(x)) x (A(x))
4. x A(x) (x (A(x)))
5. (x A(x)) x (A(x))
6. x (A(x) B(x)) (x A(x) x B(x))
7. x (A(x) B(x)) (x A(x) x B(x))
8. ((x A(x)) (x B(x))) x (A(x) B(x))
9. ((x A(x)) (x B(x))) x (A(x) B(x))
10. x (A(x) B(x)) (x A(x) x B(x))

( 2.30)
( 2.31)
( 2.32)
( 2.33)
( 2.34)
( 2.35)
( 2.36)
( 2.37)
( 2.38)
( 2.39)

O processo de deduo, no clculo de predicados, similar ao clculo sentencial, exceto por


passos adicionais para eliminao ou introduo de quantificadores.
A eliminao de recebe o nome de IU (Instanciao Universal) e a introduo de de GE
(Generalizao Existencial).
A regra IU no apresenta dificuldades, uma vez que a validade de x (A(x) B(x)) permite
efetuar uma substituio x' de x de modo que a instncia A(x') B(x') seja vlida.
Tambm GE no apresenta dificuldades, pois se (A(x) B(x)) vlida para x genrico, ento
x (A(x) B(x)).
Por outro lado deve-se tomar cuidado com a introduo de que recebe o nome de GU
(Generalizao Universal) e a eliminao de , ou IE (Instanciao Existencial).
Para ilustrar o efeito de no se ter cautela em deduo, considere o contra exemplo, onde
Filho(x,z) significa que x filho de z, ou alternativamente z me de x:
i. x (z Filho(x,z))
ii. z Filho(x',z)
iii. Filho(x',z')
iv. x Filho(x,z')
v. z (x Filho(x,z))

; premissa.
; IU em i.
; IE em ii.
; GU incorreto em iii, pois anteriormente, em iii, ligou-se a
varivel z' a x', afirmando no caso, que x' filho de z'.
; GE em iv.

( 2.40)
( 2.41)
( 2.42)
( 2.43)
( 2.44)

Enquanto a interpretao de (i) "todos tem uma me", a de (v) "existe uma me de todos".

2.2.1 Resoluo
Uma forma de verificar a legitimidade ou no de uma sentena a utilizar o processo de
resoluo. Para ilustrar o conceito fundamental envolvido na resoluo, sejam as premissas:
(Musculoso(x)) Forte(x)
Musculoso(Tyson)
das quais pode-se concluir que Forte(Tyson), pois no admissvel ter Musculoso(Tyson) e
Musculoso(Tyson). A resoluo envolve, portanto, a utilizao de premissas envolvendo conectivos
e critrios do tipo A e A.
As sentenas constitudas de disjunes so ditas estarem na forma de clusulas. As sentenas
bem formadas podem sempre ser colocadas na forma de clusula (as sentenas malformadas
usualmente no fazem sentido, como x[A(x) x]).
O processo de reduo de uma sentena forma de clusula pode ser ilustrada com o exemplo:
x[A(x) ((y A(y)) (y (B(x,y))))]

( 2.45)

Passo 1: Eliminar usando (a b) ((a) b)


x[A(x) ((y A(y)) (y (B(x,y))))]

( 2.46)

Passo 2: Trazer junto aos tomos:


10

x[A(x) ((y A(y)) (y B(x,y)))]

( 2.47)

Passo 3: Eliminar a repetio de smbolos iguais empregados para variveis no relacionadas:


x[A(x) ((y A(y)) (z B(x,z)))]

( 2.48)

Passo 4: Eliminar os quantificadores existenciais. Em uma expresso do tipo x[z B(x,z)],


para cada x, existe um z, possivelmente dependente de x, que afirma B(x,z). Portanto, pode-se definir
um mapa que associa a cada x, o seu z correspondente, h:x z, ou seja, z = h(x). Este tipo de mapa
chamado de funo de Skolem. No presente caso,
x[A(x) ((y A(y)) B(x,h(x)))]

( 2.49)

Passo 5: Converter forma prenex. A forma prenex aquela em que os quantificadores esto
no incio da expresso. J que cada quantificador universal possui a sua prpria dummy variable, no
h possibilidade de embaralhamento das variveis ao se mover o smbolo para o incio da sentena.
A expresso entre os colchetes, recebe o nome de matriz
xy [A(x) (A(y) B(x,h(x)))]

( 2.50)

Passo 6: Colocar a matriz na forma conjuntiva normal, ou seja,


(( a11 a12 ... a1n ) ... ( am1 am2 ... amp ))
que, no caso em questo se reduz eliminao de parnteses:

( 2.51)

xy [A(x) A(y) B(x,h(x))]

( 2.52)

Estando na forma conjuntiva normal, pode-se escrever, aps IU:


a11 a12 ... a1n
...
m:
am1 am2 ... amp
onde se aplica, facilmente, o processo de resoluo.

1:

( 2.53)

Considere o seguinte exemplo de deduo, a ser avaliada quanto sua legitimidade:


x[Musculoso(x) Forte(x)]
x[Jquei(x) (Forte(x))]
x[Jquei(x) Alto(x)]

x[Alto(x) (Musculoso(x))]
A avaliao da legitimidade pode ser feita por refutao, negando-se a tese e verificando que
isso leva a contradio. Este mtodo (prova por absurdo) muito usado em cursos de matemtica.
i. x[Musculoso(x) Forte(x)]
ii. y[Jquei(y) (Forte(y))]
iii. z[Jquei(z) Alto(z)]
iv. w[Alto(w) Musculoso(w)]
v. (Musculoso(x)) Forte(x)
vi. (Jquei(y)) (Forte(y))
vii. Jquei(z) Alto(z)
viii. Jquei(z)
ix. Alto(z)
x. Alto(w) Musculoso(w)
xi. Musculoso(z)
xii. Forte(z)
xiii. Jquei(z')
xiv. x[Alto(x) (Musculoso(x))]

; premissa.
; premissa.
; premissa.
; premissa obtida por negao da tese.
; clusula derivada de i .
; clusula derivada de ii.
; clusula derivada de iii.
; simplificao de vii.
; simplificao de vii.
; clusula derivada de iv.
; resoluo ix, x.
; resoluo v,xi.
; resoluo vi, xii.
; por absurdo, viii, xiii

11

( 2.54)
( 2.55)
( 2.56)
( 2.57)
( 2.58)
( 2.59)
( 2.60)
( 2.61)
( 2.62)
( 2.63)
( 2.64)
( 2.65)
( 2.66)
( 2.67)

3 REPRESENTAO DE CONHECIMENTOS
Conhecimento pode ser definido como sendo um conjunto de informaes que permitem
articular os conceitos, os juzos e o raciocnio, usualmente disponveis em um domnio particular de
atuao. Empregando-se um sistema de smbolos, este conhecimento pode ser representado de modo a
permitir atividades como inferncia ou memorizao.

3.1 Principais Formas de Representao do Conhecimento em IA


Representao por lgica matemtica;
Representao por regras de produo;
Representao por redes semnticas;
Representao por quadros e roteiros (frames e scripts).
3.1.1 Representao Utilizando Lgica Matemtica
A lgica muito antiga, remontando ao tempo dos filsofos gregos. Este tipo de representao
bastante formal apresentando grande dificuldade de legibilidade e expresso do conhecimento por
parte dos leigos.

3.1.2 Representao Utilizando Regras de Produo


Uma forma muito comum de representar conhecimentos heursticos usar regras de produo,
tipicamente na forma Se (condies) Ento (concluses). Embora regras de produo sejam apenas
casos particulares de sentenas tratveis pela Lgica de Predicados, muitos sistemas prticos
empregam esta estrutura de representao. Muitos sistemas especialistas utilizam regras de produo
aliadas a uma mquina de inferncia para realizar a sua tarefa. Como exemplo de regras de produo
considere a clssica representao de conhecimentos sobre alguns animais.
i.
ii.
iii.
iv.
v.
vi.
vii.
viii.

Se (produz_leite tem_pelos)
Se (mamfero come_carne)
Se (mamfero possui_presas possui_garras)
Se (mamfero possui_casco)
Se (carnvoro pardo pintado)
Se (carnvoro pardo listrado)
Se (ungulado pardo pintado)
Se (ungulado branco listrado)

Ento (mamfero)
Ento (carnvoro)
Ento (carnvoro)
Ento (ungulado)
Ento (ona)
Ento (tigre)
Ento (girafa)
Ento (zebra)

onde, a regra Se (produz_leite tem_pelos) Ento (mamfero) pode ser entendida como uma
instanciao de x [(produz_leite(x) tem_pelos(x)) mamfero(x)], como visto no captulo 2.
A partir de fatos conhecidos sobre um dado animal A, do tipo {tem_pelos(A), produz_leite(A),
come_carne(A), pardo(A), pintado(A)}, pode-se concluir que A uma (ona). Quando se busca, a
partir dos dados, verificar qual a concluso a ser obtida, diz-se que o encadeamento progressivo
(acompanha a direo apontada pela ).
Uma outra forma de usar os conhecimentos na forma de regras de produo partir das
concluses que podero ser provadas ou no. Conjecturando que A (girafa), verifica-se, a partir de
vii, que se necessitam das condies {ungulado, pardo, pintado}. As condies {pardo, pintado} j
esto fornecidas. Entretanto, h necessidade de verificar se a condio {ungulado} satisfeita. Para
tal, deve-se examinar a regra iv que agora requer as condies {mamfero, possui_casco}. Como no
h nenhuma regra que permita verificar se {possui_casco) verdadeira e como esse fato tambm no
fornecido como dado, a tentativa de provar que A (girafa) resulta em falha. Por outro lado, o mesmo
procedimento aplicado a (ona) fornece condies que podem ser deduzidas dos dados fornecidos.
Quando se busca, a partir dos objetivos (goals), as condies necessrias para a sua deduo, at que
se casem com os dados fornecidos, diz-se que o encadeamento retroativo (a busca ocorre no sentido
oposto ao indicado pela ).

12

3.1.3 Representao Utilizando Redes Semnticas


A rede semntica uma coleo de ns conectados por arcos. Os ns representam objetos,
conceitos ou eventos e os arcos representam as relaes. Usualmente os ns e os arcos so etiquetados
para indicar o que representam:
Som
Rdio

produz

usa

Antena

_um

Relgio Digital

Equipamento_Eletrnico
Computador

_um

mostra
Horas

_um
_um

Micro

Chips
usa

usa
CPU

usa

_uma

RAM

Memria

usa

_uma

Cdigo_Binrio

PROM

Figura 3-1. Uma rede semntica representando conhecimentos sobre equipamentos eletrnicos.
Uma forma de organizar redes semnticas simples utilizando triplas (atributo, objeto, valor):
Se

Ento

Atributo
Corrente
Luminosidade
Resposta
Carga

objeto
cabo_29
lmpada_piloto
tecla_TESTE
bateria

valor
<10mA
baixa
negativa
esgotada

3.1.4 Representao Utilizando Frames e Scripts


Os frames ou quadros so estruturas de dados com lacunas que podem ser preenchidas com
informaes declarativas ou procedimentais. No exemplo da figura 5.2, tanto XYZ quanto ABC so
manipuladores mecnicos. No caso do manipulador XYZ, o efetor do tipo garra, tipo bidigital, com
sensor ttil, capacidade de 10kg e acionado por tendo. No caso do manipulador ABC, o efetor uma
pistola de pintura.

Figura 3-2. Representao de conhecimentos sobre manipuladores atravs de frames.


13

3.2 Mtodos de busca.


Muitos problemas de IA necessitam de mtodos de casamento (matching) e busca (search),
durante o processo de soluo.
Considere-se o problema de obter exatamente 1 litro de gua em uma das jarras, a partir de uma
jarra com 5 litros de capacidade, inicialmente cheia, e uma de 2 litros, inicialmente vazia.
Representando as duas jarras por um par ordenado (x,y), onde x o nmero de litros de gua na
primeira jarra e y na segunda, os passos para a soluo do problema podem ser apresentados na
seguinte forma grfica:
(5,0)

(0,0)

(0,2)

(0,0)

(3,2)

(3,0)

(5,0)

(2,0)

(1,2)

(0,0)

OBJETIVO

Figura 3-3. rvore correspondente ao problema de jarras dgua.


O problema das jarras pode, ser resolvido mediante o uso de um algoritmo de busca em rvores.
Aqui, a partir do n (5,0), feita uma busca que terminaria ao se encontrar o n objetivo (1,2).
Como mencionado anteriormente, a busca pode ser realizada nos sentidos de encadeamento
progressivo ou retroativo. A vantagem de um ou outro depende da particular estrutura de rvore a ser
pesquisada. Em termos intuitivos, a verificao de se uma dada pessoa av de uma outra mais
facilmente feita no sentido neto pais av do que no sentido av pais neto. Tal caracterstica
se deve ao fato que cada um (neto) tem apenas 2 avs (materno e paterno), portanto, apenas 2
candidatos a serem pesquisados. Por outro lado, se um av gerou 5 filhos, e cada filho gerou 5 netos,
tem-se que para verificar se uma dada pessoa neto deste av, h necessidade de pesquisa entre 25
candidatos.
O desenrolar de jogos, como xadrez, damas, e jogo da velha, tambm pode ser caracterizado
por rvores. Para que se possam selecionar as opes mais promissoras para o jogo, h necessidade de
uma heurstica que permita fornecer, a cada jogada, um ndice que reflita a vantagem posicional
alcanada pelo movimento escolhido. Uma heurstica possvel contar, em cada situao de jogo, a
diferena entre o nmero de alinhamentos possveis para cada jogador. Para simplificar a explicao,
considere-se uma notao anloga utilizada em teoria de matrizes, ou seja, a posio na i-sima linha
e j-sima coluna denotada (i,j). Nestas condies, a situao ilustrada na Figura 3-4 possui um
smbolo (O) na posio (1,2) e um smbolo () na posio (2,2). A partir desta situao, o jogador que
utiliza o smbolo (O) pode obter 4 alinhamentos enquanto o que utiliza () consegue 6. Portanto, o
jogador () atribui um valor +2 = +6 - 4 para esta situao.
-4
-4+6=+2
+6

Figura 3-4. A primeira linha apresenta os alinhamentos possveis (4) para o jogador (O) e a segunda
os possveis (6) para o jogador (). A diferena -4+6=+2 o ndice para a configurao no canto
superior esquerdo.
A rvore mostrada na Figura 3-5 ilustra o mecanismo que o jogador () utiliza para posicionar a
sua ficha. Caso o jogador () posicione a ficha na posio (1,1), o jogador (O) poder obter valor -1

14

atravs da ocupao de (2,2), que a situao mais favorvel para (O), dada a jogada do (). Se o
jogador (O) ocupar a posio (2,1), por exemplo, obtm apenas valor +1, ou seja pior para (O). Notese que o melhor caso para (O) ser tambm o pior caso para (). Assim, considerando-se as
possibilidades para a primeira jogada de (), os valores associados so:
() em (1,1) -> valor -1,
() em (2,2) -> valor +1,
() em (2,1) -> valor -2.
Portanto, considerando o melhor dos piores casos, o jogador () deve optar por colocar a sua
ficha em (2,2), que corresponde ao mximo entre -1, +1 e -2. Por outro lado, o valor -1 corresponde
ao mnimo entre 1, 0, 1, 0 e -1 da sub-rvore esquerda da Figura 3-5. Analogamente, o valor -2
corresponde ao mnimo entre -1, -2, 0, 0, e -1, da sub-rvore direita da Figura 3-5. Esta estratgia de
deciso chamada de max-min, ou seja, maximizar o ganho considerando os piores casos.
Situao Inicial
1

1
0

1
2

Figura 3-5. Construo da rvore correspondente ao jogo da velha, utilizando a heurstica de


diferenas entre o nmero de alinhamentos possveis para cada jogador, a partir do tabuleiro vazio
(situao inicial). Note que as alternativas simtricas no esto aqui ilustradas.
De um modo geral, os processos de busca podem ser, conforme mencionado anteriormente, do
tipo encadeamento progressivo (data driven) ou retroativo (goal driven). Ainda, dependendo de como
se executa o controle sobre a busca, pode ser do tipo busca em profundidade ou busca em largura.
Encadeamento Retroativo
Profundidade Primeiro

Encadeamento Progressivo
Profundidade Primeiro

Incio

Incio

Goals

Premissas

Premissas

Goals

Figura 3-6. Ilustrao das formas de encadeamento retroativo e progressivo para o caso de busca em
profundidade.

15

Encadeamento Progressivo
Largura Primeiro

Encadeamento Retroativo
Largura Primeiro

Incio

Incio

Goals

Premissas

Goals

Premissas

Figura 3-7. Ilustrao das formas de encadeamento retroativo e progressivo / busca em largura.
3.2.1 Algoritmo A*
Um exemplo de mtodo de busca muito usado o algoritmo A*. Este algoritmo aplicvel
quando se dispe de uma funo de avaliao heurstica do custo, denotada f(). Em muitas
aplicaes, o custo incorrido ao percorrer, a partir de S, um certo caminho at o n N, pode ser
calculado atravs de uma funo g(). Se for disponvel uma funo heurstica h() que permite
estimar o custo para percorrer a rvore de N at o n objetivo G (goal), ento, f(N) = g(N) + h(N).
No caso de navegao de um rob mvel, a distncia direta (sem considerar obstculos como morros e
lagos) poderia ser considerada uma funo heurstica para avaliar a convenincia ou no de se tomar
uma deciso sobre a direo a ser seguida.
Passo 0. Criar um grafo de busca G, inicialmente contendo somente o n de partida S.
Passo 1. Inicializar uma lista chamada OPEN com o n de partida S e uma lista chamada
CLOSED com . (OPEN a lista dos ns ainda no selecionados para expanso, enquanto CLOSED
a lista dos ns j expandidos)
Passo 2. LOOP: Se OPEN =
Ento FIM e reportar Falha.
Passo 3. Tomar um n de OPEN com o menor f'.
Chamar este n de N.
Retir-lo de OPEN e coloc-lo em CLOSED.
Passo 4. Se N o n buscado (goal)
Ento FIM e fornecer a soluo percorrendo os ponteiros de N a S.
Passo 5. Expandir N, gerando o conjunto de ns SUCESSORES e ento adicion-los no grafo.
Passo 6. Para cada membro M de SUCESSORES:
Se M {OPEN, CLOSED}
Ento adicionar M em OPEN;
Se M OPEN
Ento chamar a cpia de M em OPEN de Mold; verificar se g(M) < g(Mold):
em caso afirmativo, tem-se que melhor chegar a M atravs do caminho atual
do que a indicada pelo ponteiro de Mold. Portanto, descarta-se Mold e faz-se o M apontar para N.
em caso negativo, basta que se remova M.
Se M CLOSED
Ento chamar a cpia de M em CLOSED de Mold; de modo similar ao caso (M
OPEN), verificar qual o melhor caminho para M e atualizar os valores de g e f.
Passo 7. Reordenar OPEN com base no f.
Passo 8. Return LOOP;

16

4 CONTROLADORES BASEADOS EM CONHECIMENTOS


Regras de produo do tipo Se (condies) Ento
(aes) podem ser utilizadas para incorporar mquina a
experincia heurstica do operador humano. Entre as
tarefas que podem ser realizadas por sistemas baseados em
conhecimento esto: Interpretao de dados, predio,
diagnose, sntese, planejamento, monitorao, correo de
falhas, treinamento e controle ativo.
A arquitetura mais simples de um sistema baseado
em conhecimentos envolve um banco de conhecimentos,
onde as regras esto armazenadas, um banco de dados,
onde as informaes sobre as condies da planta a ser
controlada e as medidas esto armazenadas e uma mquina
de inferncia que dever deduzir as aes a serem tomadas,
em funo das informaes dos bancos de dados e de
conhecimentos.
A mquina de inferncia executa, usualmente, os
seguintes passos:

Figura 4-1. Arquitetura tpica de um


sistema baseado em conhecimentos.

Passo 1: Busca de regras no banco de conhecimentos que tenham as condies satisfeitas, em termos
do contedo do banco de dados (casamento do antecedente).

Passo 2: Se houver uma ou mais regras com as condies satisfeitas


Ento selecionar uma (resoluo de conflito)
Seno, retornar ao Passo 1.

Passo 3: Executar a ao descrita na regra selecionada e retornar ao Passo 1.


As regras de produo podem ser utilizadas em sistemas de controle em trs nveis hierrquicos:

Consulta
off-line

Assistente
usando
Regras de Produo

off-line

Registro de Dados
Correo
Operador
Monitorao

Data Logging
Supervisor
usando
Regras de Produo
SP

Controlador
usando
Regras de Produo

Alarmes

on-line

PV MV

Planta
DDC

Figura 4-2. Esquema de um sistema de controle empregando representao de conhecimentos na


forma de regras de produo. As siglas utilizadas so: SP = Set Point, PV = Process Variable,
MV = Manipulated Variable e DDC = Direct Digital Control.
O nvel hierrquico inferior corresponde ao Controle Direto Digital, empregando controladores
baseados em conhecimentos, no caso, representados por regras de produo.
O nvel hierrquico intermedirio compreende a utilizao de bases de conhecimentos para
supervisionar a operao geral da planta controlada, em tempo real, aquisicionando sinais de alarmes e

17

de controle, podendo interagir com o operador humano em termos de correo e monitorao do


sistema. O supervisor pode ter funes de deciso como reconfigurao de controladores aps testes
de desempenho do sistema, partida e desligamento inteligentes, deteco e acomodao de falhas,
entre outras.
O nvel hierrquico superior corresponde a operao off-line para dar assistncia ao operador,
quer na forma de consulta sobre procedimentos operacionais de rotina, quer no treinamento de novos
recursos humanos. Pode, por exemplo, auxiliar equipes de manuteno, em funo de diagnsticos
aprofundados a partir dos dados armazenados durante a operao da planta.

4.1 Exemplo de Controlador usando Regras de Produo.


Como exemplo de um controlador usando regras de produo, ser apresentada uma verso
desenvolvida no trabalho de Cardozo e Yoneyama, 1987 e Yoneyama, 1988, onde se considera uma
planta no linear descrita por uma equao diferencial ordinria no linear e invariante no tempo:

dx1 (t )
= x2 (t )
dt
( 4.1)
dx2 (t )
3
= [ x2 (t )] + u (t )
dt
onde, = 1 uma constante e, no instante inicial t=0, o sistema est em repouso (x1(t) = 0 e x2(t) = 0).
Um controlador que pode ser utilizado para esta planta da forma:

u (t ) = k sat[ K , ( y (t ) y r (t )]

( 4.2)

onde a funo sat[.,.] dada por:

z,
se z M
sat[ M , z ] =
Msign( z ), se z > M

( 4.3)

De modo heurstico, foram propostas as seguintes regras para ajuste on-line de k e K, admitindo
que o nvel de saturao do controle K = 5.0 e velocidades adequadas esto na faixa de V = 0.18:
REGRA 1:

Se
(x2(t) V) (|y(t) - yr (t)| < 0.2) (x1(t) < 1.0)
Ento (k -50.0)

REGRA 2:

Se
(x2(t) > V) (|y(t) - yr (t)| < 0.2) (x1(t) > 1.0)
Ento (k 50.0)

REGRA 3:

Se
(x2(t) -V) (|y(t) - yr (t)| < 0.2) (x1(t) > 1.0)
Ento (k -50.0)

REGRA 4:

Se
(|x2(t)| -V) (|y(t) - yr (t)| < 0.2)
Ento (k 1.0)

REGRA 5:

Se
(|x2(t)| -V) (x1(t) < 1.0)
Ento (k 1.0)

Uma vez que as regras 1 a 5 promovem um controle com sada levemente oscilatria, foi
introduzida uma regra adicional:
REGRA 6:

Se
(t > 2.0)
Ento (tc tc + 0.05) (V V/tc)

18

4.2 Exemplo de um Supervisor Inteligente


Como exemplos de supervisores inteligentes podem ser citados os sistemas desenvolvidos em
Pereira, Yoneyama e Cardozo, 1990, Pereira, Cardozo e Yoneyama, 1991 e Fujito e Yoneyama, 1992.
A grande virtude de se utilizar supervisores inteligentes a possibilidade de realizar processamentos
simblico e numrico de forma simultnea, valendo-se das vantagens de ambos.
Um destes exemplos consiste de um supervisor inteligente para sintonizao fina automtica de
controladores PID.

Figura 4-3. Sintonizao fina automtica de Controladores PID usando base de conhecimentos.
Considera-se aqui que o controlador j foi sintonizado inicialmente utilizando mtodos como os
de Ziegler-Nichols. Nestas condies, pretende-se, obter uma sintonizao fina atravs do emprego de
regras heursticas:
i) Aplica-se um sinal v(t) = degrau e a partir de e(t), calcula-se y(t)
Resposta de Segundo Grau
1.8
1.6
1.4

Sobrepasso: pico1

1.2

pico3

1
0.8

Subpasso: pico2

0.6
0.4
0.2
0

tpico1

tpico2

10

15
Tempo (s)

20

25

30

Figura 4-4. Parmetros para o refinamento da heurstica na sintonizao de controladores PID.


ii) Detectam-se os trs primeiros picos na sada y(t) e calculam-se os parmetros:

Sobrepasso Mximo da Varivel de Sada;


Subpasso Mximo da Varivel de Sada;
Perodo de Oscilao Amortecida: T0 = 2 (t pico 2 t pico1 ) ;

Razo entre os dois primeiros picos: r12 =

pico2
pico1

19

ndice de Convergncia: cnv =

pico2 + pico3
pico1 + pico2

iii) Verifica-se a adequao da atual resposta do sistema. Em caso afirmativo, o supervisor entra
em modo de espera. Seno, calcula-se a contribuio de fase, na frequncia 2/T0

2K D T0 K I

T0 K P 2K I

PID = tan 1

( 4.4)

e reajustam-se KD e KI de modo que PID seja minimizado.


iv) KP multiplicado pela razo entre o sobrepasso desejado e o sobrepasso medido.
v) Recalcula-se KI e KD e retorna-se ao passo i.
Aplicando-se estas regras ao sistema:

G ( s) =

10 exp(0.5s )
s+3

( 4.5)

onde se especificou sobrepasso mximo de 15% e subpasso mximo de 7.5%, resultou


Iterao
1o
2o
3o

KP
0.268
0.268
0.147

KI
0.417
0.625
0.342

KD
0.051
0.052
0.029

Sobrepasso
23.5%
55.3
6.25

Subpasso
17.6%
30.7
0.84

Uma dificuldade com este tipo de enfoque a necessidade de regras heursticas de qualidade
para que a planta seja operada com segurana, o que no sempre disponvel. Ainda, importante
observar que regras podem ser omissas na ocorrncia de imprevistos ou pode at mesmo existir regras
conflitantes, uma vez que a base de dados pode, eventualmente crescer de forma significativa.

4.3

Exemplo de um Assistente Inteligente

Como exemplo de um assistente inteligente apresentado o TOAST, que possui capacidades


para simulao de eventos e diagnsticos de falhas em sistemas eltricos de potncia (Assistentes
poderiam, tambm, serem operados em tempo real, caso em que so chamados de Fase 2. Os
Assistentes de Fase 1 so aqueles operando off-line e utilizados para pesquisa, treinamento e
demonstrao de conceitos, podendo evoluir, mais tarde, para Fase 2). O TOAST um assistente de
Fase 1, desenvolvido em 1985 na Universidade de Carnegie-Mellon.
Diagnosticador

Banco de Dados
sobre a Planta

Quadro Negro

Interface para
o Usurio
Simulador
de Eventos

Figura 4-5. Arquitetura de um assistente inteligente.


O Diagnosticador um SE que permite identificar a falha que ocasionou a alterao acidental na
configurao da rede de distribuio de energia eltrica. Ele escrito em OPS 5, com cerca de 150
regras. O Simulador de Eventos utilizado para fornecer a assinatura de eventos que seriam

20

decorrentes de uma dada falha tomada como hiptese diagnstica. escrito em OPS 5 e LISP, com
cerca de 150 regras e 25 funes LISP. A Interface com o usurio, tambm inteligente, proporciona
ao usurio ou trainee, facilidades de interao com a mquina. Escrito em OPS 5, possui
aproximadamente 175 regras.

21

5 INTRODUO LGICA NEBULOSA


A lgica nebulosa (fuzzy logic) permite o tratamento de expresses que envolvem grandezas
descritas de forma no exata e que envolvam variveis lingsticas. A lgica nebulosa baseia-se no
conceito de conjuntos nebulosos.

5.1 Conjuntos Nebulosos


Um conjunto uma coleo de objetos. Na teoria clssica, um objeto possui apenas duas
possibilidades quanto sua relao com um conjunto, ou seja, um dado objeto ou no um elemento
do conjunto. Na teoria de conjuntos nebulosos, um objeto possui variados graus de pertinncia. Podese ilustrar a utilidade de tal tipo de teoria examinando exemplos do dia a dia. Na teoria clssica, um
paciente dito estar com febre se a sua temperatura axilar ultrapassa 37.8o C. Assim, algum que tenha
37.7o no pertence ao conjunto de pacientes febris. Tambm, homens com alturas entre 1.65 e 1.75m
so considerados de estatura mediana e, acima de 1.75m, estatura alta. Nestas condies, 1.76m a
estatura de homem alto, mas 1.74 a de um homem mediano:

Figura 5-1. Representao de condies (afebril/febril, baixo/mediano/alto) por faixas precisamente


definidas.
Por outro lado, usando o conceito de conjuntos nebulosos, as incertezas quanto ao que seria
estado febril (ou ao que seria alto) ficariam representados por um grau de pertinncia:

Figura 5-2. Representao de condies afebril e estatura alta utilizando graus de pertinncia.
A formalizao do conceito de conjuntos nebulosos pode ser obtida estendendo-se a teoria
clssica de conjuntos. Assim, na teoria clssica, um conjunto pode ser caracterizado pela sua funo
indicadora, ou seja, dado um conjunto A no universo X, define-se IA(x): X [0,1] por:

22

1 se x A
I A ( x) =
0 se x A

( 5.1)

Se X for o conjunto R+ e A um intervalo fechado,

Figura 5-3. Funo indicadora do conjunto A.


Portanto, um conjunto clssico pode ser representado por A = { xX | IA(x) = 1 }, ou
abreviadamente, A {x, IA}. De forma anloga, os conjuntos nebulosos so definidos por A = { xX |
A(x) = 1 }, onde A(x): X [0,1] a funo de pertinncia que expressa o quanto um dado elemento
x pertence a A.
(x)
A
1

Alto grau de pertinncia


X

Baixo grau de pertinncia

Figura 5-4. Funo de pertinncia para um conjunto nebuloso A.


A teoria de conjuntos nebulosos busca, portanto, traduzir em termos formais a informao
imprecisa que ocorre de maneira espontnea na representao dos fenmenos da natureza, como
descrito por humanos utilizando uma linguagem corriqueira.
Na teoria clssica, quando um elemento x pertence a um conjunto A ou a um conjunto B, diz-se
que x A B. Quando um elemento x pertence simultaneamente aos conjuntos A e B, diz-se que x
A B. Tambm no caso de conjuntos nebulosos deseja-se fazer associaes semnticas anlogas e
que resultariam em interpretaes teis para expresses do tipo ( ), ( ), (). Portanto,
necessrio que sejam definidas, para conjuntos nebulosos, as operaes com conjuntos: A B, A B
e Ac.
Dados conjuntos nebulosos A e B sobre um universo X e caracterizados pelas funes de
pertinncia A e B , podem ser definidas as seguintes operaes:

a) Unio: o conjunto nebuloso C = A B caracterizado pela funo de pertinncia:


x X, C (x) = max{ A(x), B(x) }

( 5.2)

A expresso ( 5.2) representa apenas uma forma particular de definir C, com C = A B, a


partir de A e B, como ser detalhado mais adiante.

23

Figura 5-5. Unio de conjuntos nebulosos C = A B.

b) Interseco: o conjunto D = A B caracterizado pela funo de pertinncia:


x X, D (x) = min { A(x), B(x) }

( 5.3)

Figura 5-6. Interseco de conjuntos nebulosos D = A B.

c) Complementao: o conjunto E = Ac caracterizado pela funo de pertinncia:


x X, E (x) = 1 - A(x)

( 5.4)

Figura 5-7. Complementao de um conjunto nebuloso E = Ac.

24

d) Produto: o conjunto F = A B caracterizado pela funo de pertinncia:


x X, F (x) =A(x) . B(x)

( 5.5)

Figura 5-8. Produto de dois conjuntos nebulosos F = A B.


No caso particular de A(x) e B(x) serem idnticos a IA (x) e IB(x), respectivamente, as
operaes com conjuntos nebulosos reproduzem as operaes clssicas com conjuntos.
Pode-se verificar que as operaes com conjuntos nebulosos satisfazem as seguintes
propriedades:
a) (Ac)c = A
b) (A B)c = Ac Bc
c) (A B)c = Ac Bc
d) A (B C) = (A B) (A C)
e) A (B C) = (A B) (A C)
f) (A B) A = A
g) (A B) A = A
h) A A = A
i) A A = A

; Involuo
; De Morgan
; De Morgan
; Distributividade da
; Distributividade da
; Absoro
; Absoro
; Idempotncia
; Idempotncia

( 5.6)
( 5.7)
( 5.8)
( 5.9)
( 5.10)
( 5.11)
( 5.12)
( 5.13)
( 5.14)

Definindo-se X(x) = 1 para x X e (x) = 0 para x X, tem-se ainda as propriedades:


j) A =
k) A X = A
l) A = A
m) A X = X

( 5.15)
( 5.16)
( 5.17)
( 5.18)

Atentar, porm, que para conjuntos nebulosos algumas operaes legtimas com conjuntos
clssicos no so necessariamente vlidas:
n) A Ac X
o) A Ac

; No vale o princpio da excluso

( 5.19)
( 5.20)

Os conceitos de Unio, Interseco e Complementao associados a ( 5.2), ( 5.3) e ( 5.4)


podem ser tratados de forma mais geral atravs do emprego de operaes conhecidas como normas e
conormas triangulares.
Uma operao t:[0,1][0,1] [0,1] dita ser uma t-norma se:

25

a) t(0,0) = 0
b) t(a,b) = t(b,a)
c) t(a,t(b,c)) = t(t(a,b),c)
d) (a c) (b d) t(a,b) t(c,d)
e) t(a,1) = a

; comutatividade
; associatividade
; monotonicidade

( 5.21)
( 5.22)
( 5.23)
( 5.24)
( 5.25)

Se uma operao s possui as propriedades {a,b,c,e} e ainda satisfaz


a) s(1,1) = 1
( 5.26)
b) s(b,0) = b
( 5.27)
ento chamada de t-conorma.
Pode-se verificar que min(a,b) uma t-norma e max(a,b) uma t-conorma, de forma tal que a
interseco e a unio expressas em ( 5.3) e ( 5.2) so instncias particulares de uma famlia de
operaes. Algumas das outras operaes que satisfazem as propriedades de t-norma e t-conorma esto
apresentas na Tabela 5-1.

Tabela 5-1
Nome
Zadeh
Probabilstico
Lukasiewicz
Yager

t-norma

t-conorma

min(a,b)
a.b
max(a+b-1,0)
1-min(1,(1,((1-a)w + (1-b)w)1/w)

max(a,b)
a+b-ab
min(a+b,1)
min(1,(aw + bw)1/w

Dubois e Prade

ab
max(a, b, )

a + b ab min(a, b,1 )
max(1 a,1 b, )

Um operador n:[0,1] [0,1] dito ser de negao se

( 5.28)
( 5.29)
( 5.30)
( 5.31)

a) n(0) = 1
b) n(1) = 0
c) a > b n(a) n(b)
d) n(n(a)) = a, a [0,1]
So exemplos de negaes:
a) n(a) = 1 - a
1 a
b) n(a ) =
, ( 1, )
1 + a
1

c) n(a ) = (1 a w ) w , w (0, )

( 5.32)
; negao de Sugeno

( 5.33)

; negao de Yager

( 5.34)

Assim, na equao ( 5.4), tem-se um caso particular de complementao, caracterizada por:

A c ( x) = n( A ( x)) = 1 A ( x)

( 5.35)

5.2 Lgica Nebulosa


Conceitos nebulosos expressos em universos distintos podem apresentar relaes entre si.
Eventualmente podem estar envolvidos mais de dois universos.
Sejam X1, X2, ... , Xn universos de discurso. Uma relao nebulosa R em X1X2...Xn
definida pelo mapeamento:
R: X1X2...Xn [0,1]

( 5.36)
26

Quando se tem duas relaes que devem ser encadeadas, por exemplo A B e B C, seria
interessante que fosse disponvel um mecanismo de composio. Suponha que X, Y e Z so trs
universos de discurso distintos, R1 uma relao sobre X Y e R2 uma outra relao sobre Y Z. Para
se obter a composio R1 R2 que relaciona X e Z, estende-se, inicialmente, R1 e R2 para X Y Z.
Agora, uma vez que R1 e R2 passaram a ter o mesmo domnio, a relao entre X e Z obtida
mediante restrio,

[ {

}]

ext
R1 oR 2 (x, z) = sup min ext
R1 (x, y, z), R 2 (x, y, z)
y Y

( 5.37)

onde

ext
R1 (x, y, z) = R1 (x, y)z Z

( 5.38)

ext
R 2 (x, y, z) = R 2 (y, z)x X

Esta operao conhecida como extenso cilndrica e a composio expressa em (7.36)


denominada de sup-min.
Uma relao muito importante a expressa por Se A Ento B. Por exemplo, se A W
temperatura_baixa e B Y tenso_grande, onde W poderia ser um conjunto de temperaturas
medidas por um termistor, enquanto Y poderia ser um conjunto de tenses a serem aplicadas na
resistncia de aquecimento de uma estufa. Assim, uma forma de expressar a relao R: A B seria:
R = Ac B
; R(w,y) = max{ 1 - A(w) , B(y) }
( 5.39)
em vista de A B ser equivalente a B (A) que associado a Ac B.
Existem, entretanto, outras associaes teis. Para se utilizar conjuntos nebulosos em deduo,
conveniente que se disponha de uma forma de realizar modus ponens em verso nebulosa.
Originalmente, modus ponens consiste em obter B a partir de A (A B). Como se sabe que A (A
B) (A B), e por sua vez faz-se a associao (A B) com A B, uma verso nebulosa
interessante para R seria:

( 5.40)
R(w,y) = min{ A(w) , B(y) }
que conhecido como a regra de Mamdani.
Uma vez que a relao R: A B esteja caracterizada, a inferncia nebulosa (ou modus ponens
generalizado):
Se (a A) Ento (b B)
Tem-se A
Portanto, B
pode ser obtida fazendo-se a composio de R com A, usando, por exemplo, sup-min.
Quando se dispe de vrias regras envolvendo a mesma varivel, por exemplo denotada a,
necessita-se de uma forma de amalgamar as concluses implicadas por cada regra:
R1: Se (a A1) Ento (b B1)
.
.
.
R2: Se (a Am) Ento (b Bm)
Uma heurstica para combinar as regras seria tomar como concluso B = B1 ... Bm.

27

6 CONTROLADORES EMPREGANDO LGICA NEBULOSA


A lgica nebulosa, na forma como utilizada aqui, uma extenso do conceito de sistemas de
produo, no sentido de incluir imprecises na descrio dos processos controlados. Portanto, regras
nebulosas podem ser empregadas para controle direto, superviso ou assistncia ao operador. Aqui,
ser dedicado maior ateno ao controle direto, uma vez que a modalidade que apresenta maiores
diferenas em relao a sistemas tratados anteriormente.
O problema tpico de controle direto consiste em obter, a partir do modelo da planta, uma lei de
controle que atenda as especificaes fornecidas a priori:

Figura 6-1. Esquema clssico onde o controlador calcula o valor da varivel manipulada (MV) a partir
do sinal de erro e = SP - PV, onde SP o set-point e PV o process variable.
Para efeito de comparao, sejam trs tipos possveis de controladores que poderiam ser
empregados como ilustrado na figura 8.1:
a) Controlador baseado em equao:
u(t) =

e(t)

( 6.1)

Figura 6-2. Caracterstica entrada-sada de um controlador no-linear contnuo e sem dinmica.


b) Controlador baseado em regras de produo no nebulosas:
Se ( |e(t)| < k1 )

Ento ( u(t) = 0 )

Se ( |e(t)| [k1 , k2] )

Ento (u(t) =

k1 )

Se ( |e(t)| [k2 , k3] )

Ento (u(t) =

k2 )

Se ( |e(t)| > k3 )

Ento (u(t) =

k3 )

Figura 6-3. Caracterstica I/O de um controlador baseado em regras de produo e sem incertezas.

28

c) Controlador baseado em regra de produo nebulosa:


Se (e(t) ~ EQZ)
Se (e(t) ~ EMP)
Se (e(t) ~ EMN)
Se (e(t) ~ EGP)
Se (e(t) ~ EGN)

Ento (u(t) ~ UQZ)


Ento (u(t) ~ UMP)
Ento (u(t) ~ UMN)
Ento (u(t) ~ UGP)
Ento (u(t) ~ UGN)

onde QZ significa Quase_Zero, MP=Mdio_Positivo, MN=Mdio_Negativo, GP=Grande_Positivo e


BN=Grande_Negativo.

Figura 6-4. Tentativa de ilustrar a caracterstica entrada-sada de um controlador nebuloso.

6.1 Estrutura de Controladores empregando Lgica Nebulosa


Os controladores empregando lgica nebulosa possuem, de modo geral, trs blocos:

Figura 6-5. Estrutura tpica de um controlador nebuloso.

6.1.1 Conversor para Variveis Nebulosas (Nebulisador)


O sinal e(t) , usualmente, do tipo numrico. Por outro lado, as regras so expressas em termos
da pertinncia ou no destas grandezas a conjuntos nebulosos. Assim, h a necessidade de se converter
e(t) para uma entidade apropriada para inferncia nebulosa. Tipicamente, so calculados os valores das
funes de pertinncia A i (e(t)) para cada um dos Ai associado grandeza e(t).
Considere-se que os conjuntos associados a e(t) so A1 = EP (erro pequeno), A2 = EM (erro
moderado) e A3 = EG (erro grande). Da figura 8.6, para os instantes t1, t2 e t3 tem-se:

29

Figura 6-6. Valores da funo de pertinncia parao sinal de erro em diferentes instantes de tempo.
Para e(t1), tem-se, no caso, a partir da Figura 6-6:

EP com EP = 0.24
e( t 1 )
EM com EM = 0.72

( 6.2)

6.1.2 Mquina de Inferncia Nebulosa


A mquina de inferncia deve receber as informaes sobre e(t), j convertidas em termos
associados a variveis lingusticas, especificamente graus de pertinncia a conjuntos nebulosos e gerar,
a partir de uma base de regras fornecidas pelo usurio, uma sada tambm do tipo lingustico, na forma
de funes de pertinncia (U(.)) que deve ser, posteriormente, convertido para uma varivel numrica
u(t).
Ressalte-se que no h restries quanto a e(t) ser do tipo vetorial e nem em se realizar
operaes auxiliares. Um exemplo de operao auxiliar o clculo de e(t) = e(t) - e(t - t), o que
permitiria regras do tipo:
Se {(e(t) ~ EP) (e(t) ~ DEPG))} Ento (u(t) ~UNG)
onde DEPG poderia significar e positivo grande e UNG, u negativo grande.
As regras podem envolver operaes intricadas como:
p

Se {

e( t kt ) exp( kT)

~ SG } Ento (u(t) ~DUN)

k =0

significando que se a soma dos mdulos do erro, com esquecimento exponencial, numa janela de
comprimento p+1, for grande (SG = Somatria Grande), ento o controle deve ser diminudo (Delta u
Negativo).
Uma forma de se representar o conjunto de regras envolvendo apenas uma varivel, por
exemplo o erro e(t), atravs de tabela do tipo:

30

Tabela 6-1. Apresentao compacta, 5 regras, onde NG = Negativo-Grande, NM = Negativo-Mediano,


Z = Quase Zero, PM = Positivo-Moderado e PG = Positivo-Grande
e(t)
u(t)

NG

NM

PM

PG

PG

PM

NM

NG

No caso de se ter 2 variveis, por exemplo e(t) e e(t), pode-se expressar as regras na forma da
tabela:
Tabela 6-2. Apresentao da base de regras para 2 entradas (e, e) e uma sada (u).
e

NG

NM

PM

PG

PG

PM

NM

NG

PM

PM

NM

NM

NM

NG

Para ilustrar um mecanismo de inferncia, considere-se um caso em que h apenas 2 regras:


Regra 1: Se (e ~ EP) Ento (u ~ UP)
Regra 2: Se (e ~EG) Ento (u ~UG)
onde as funes de pertinncia EP(.), UP(.), EG(.), UG(.) associados a Erro-Pequeno, U-Pequeno,
Erro-Grande e U-Grande esto ilustrados na Figura 6-7. Para a relao Se (.) Ento (.) utilizada a
regra min de Mamdani e para a relao (Regra 1) ou (Regra 2) utilizada a forma max.

Figura 6-7. Mecanismo de inferncia utilizando o esquema proposto por Mamdani.

31

6.1.3 Conversor para Varivel Numrica (Desnebulizador)


As regras nebulosas produzem como sada conjuntos nebulosos. Como, na prtica, necessita-se
de um valor bem definido para u(t), defini-se o processo de desnebulizao (s vezes tambm
referido como defuzzificao) . Esse processo consiste em obter um valor para u(t) a partir de U(u).
Os processos mais conhecidos de converso para variveis numricas so:
a) Centro de rea (COA): como imaginar a rea sob a curva U(u) como uma placa e
determinar a coordenada u do seu centro de massa:

Figura 6-8. Converso para varivel numrica empregandocentro de massa.


b) Mdia dos Mximos (MOM): valorizar os picos de U(u), sendo que no caso de ser
nico, o valor defuzificado a prpria abscissa deste pico:

Figura 6-9. Converso para varivel numrica empregando mdia dos mximos.

6.2 Controladores com e(t) e u(t) quantizados


Considerando-se que, muitas vezes, o universo de discurso X discreto, ou seja, assumindo e
{ 1, 2, 3, ... , ne } e u { 1, 2, 3, ... , nu }, aps escalonamento conveniente, ter-se-ia X = { 1, 2, 3, ... ,
ne } { 1, 2, 3, ... , nu }. Observa-se, ento, que uma forma conveniente de representar R(e,u) como
uma matriz [R] onde o elemento rij = R(i,j). Neste caso, E(e) seria representado por uma matriz linha
[E] com elemento ei = E(i), permitindo a obteno rpida de U(u) usando regra de multiplicao de
matrizes, com o produto substitudo pela operao min e a soma pela max: [U] = [E] [R].
Como exemplo, considere as regras:
R1: Se (e ~ EP) Ento (u ~ UG)
R2: Se (e ~ EG) Ento (u ~ UP)

32

onde:
EP significa Erro_Pequeno, caracterizado pela matriz [EP] = [ 0.5 1 1 0 0 ]
EG Erro_Grande, [EG] = [ 0 0 0.5 1 0.5 ]
UG Controle_Grande, [UG] = [ 0 0 0.5 1 1 ]
UP Controle_Pequeno, [UP] = [ 1 1 1 0.5 0 ]
A regra R1, usando min de Mamdani, dada por
R1

u1

u2

u3

u4

u5

e1

0.5

0.5

0.5

e2

0.5

e3

0.5

e4

e5

A regra R2, de forma anloga, dada por


R2

u1

u2

u3

u4

u5

e1

e2

e3

0.5

0.5

0.5

0.5

e4

0.5

e5

0.5

0.5

0.5

0.5

Tomando-se a regra R = R1 R2, o conjunto nebuloso correspondente, tambm denotado R,


com R(e,u) obtido usando max, fica representado pela matriz R:
R

u1

u2

u3

u4

u5

e1

0.5

0.5

0.5

e2

0.5

e3

0.5

0.5

0.5

e4

0.5

e5

0.5

0.5

0.5

0.5

Supondo que, em um dado instante obteve-se a informao de que o sinal de erro descrito por:
[E] = [ 0.2 0.7 0.2 0.1 0 ]
Neste caso, as regras indicam que deve ser gerado um sinal de controle dado por:
[U] = [ 0.2 0.7 0.2 0.1 0 ] [R] = [ 0.2 0.2 0.7 0.7 0.7 ]
ou seja, o sinal de controle a ser aplicado deve ser algo grande.
Na prtica, o valor do sinal de rro calculado a partir de sadas de sensores, assumindo a forma
[E] = [ 0 0 0 1 0 ]
que do tipo no nebuloso, no sentido que e(t) = 4 (valor normalizado). Neste caso, a operao [U] =
[E] [R] resulta, simplesmente, na 4a linha de [R].

33

6.3 Estabilidade no Controle Nebuloso em Malha Fechada


A relao entrada-sada de um controlador nebuloso , de modo geral, no-linear. Assim, a
anlise de estabilidade de sistemas em malha fechada empregando controladores nebulosos requer o
uso de mtodos sofisticados, como o de Lyapunov.
Como ilustrao, considere o caso de um controlador nebuloso de uma entrada e uma sada:
Tabela 6-3. Regras utilizadas no exemplo de estudo de estabilidade.
e(t)

u(t)

NG

NM

PM

PG

NG

NM

PM

PG

As funes de pertinncia empregadas nas regras apresentadas na Tabela 6-3 esto ilustradas na
Figura 6-10:

Figura 6-10. Funes de pertinncia do exemplo de estudo de estailidade, onde N significa negativo, P
positivo, M moderado, G grande e Z quase zero.
A partir das regras apresentadas na Tabela 6-3 possvel calcular a sada u a partir de uma dada
entrada e. O grfico da relao u=(e) apresentado na Figura 6-11.
1.5

Ganho do Controlador Nebuloso

1
0.5
u

0
-0.5
-1
-1.5
-2

-1

0
e

Figura 6-11. Relao entrada-sada (u=(e)) para o exemplo de anlise de estabilidade.

34

Uma vez que a caracterstica entrada-sada do controlador nebuloso conhecida, pode-se buscar
uma metodologia de anlise de estabilidade de sistemas no-lineares que seja aplicvel para o caso em
questo.
Para o exemplo considerado, aplicvel a teoria de estabilidade absoluta de Lure.
Considerando r(.) 0, o diagrama de blocos da Figura 6-1 assume a forma ilustrada na Figura
6-12.
Caso o grfico de (.) esteja contido em um setor limitado por retas de inclinaes a e b,
conforme ilustrado na Figura 6-13, existem condies que garantem a estabilidade de sistemas como o
da Figura 6-12. Um setor limitado por retas de inclinaes a e b denotado setor(a,b).

Figura 6-12. Diagrama de blocos de um sistema para o qual podem ser estabelecidas condies de
estabilidade.

Figura 6-13. No linearidade do tipo setor, onde o grfico de (.) est contido na regio limitada por
retas de inclinaes a e b.
Teorema 6.1: Se G(s) estvel (ou seja, no possui plos no semi-plano direito), G(s)
estritamente prprio (ou seja, o grau do denominador estritamente maior que o do numerador), (.)
est contido no setor (0,k) com k > 0, ento o sistema em malha fechada (Figura 6-12) estvel se

Re[1 + kG(j)] > 0, R.

( 6.3)

No caso particular do exemplo, se o controlador nebuloso caracterizado pelas regras da Tabela


6-3 for utilizado com uma planta G(s) estvel e estritamente prpria, basta que
Re[1 + G(j)] > 0, R.

( 6.4)
35

6.4 Caractersticas de Controladores Nebulosos


a) Aspectos Favorveis:

No necessidade de modelamento do sistema a ser controlado;


Possibilidade de incorporar conhecimentos heursticos do operador humano;
Aplicabilidade a sistemas de dinmica complicada, incluindo no linearidades;
Possibilidade de explorar a no-linearidade dos controladores para obter maior desempenho;
Disponibilidade de componentes dedicados.

b) Aspectos Desfavorveis:

Ausncia de diretrizes precisas para o projeto do controlador, resultando em enfoque


artesanal e pouco sistematizado.
Impossibilidade de demonstrao, nos casos gerais, de propriedades como a estabilidade,
no se podendo garantir, por exemplo, ausncia de ciclos limite.
Preciso de regulagem eventualmente insuficiente
Consistncia das regras no garantidas a priori.

c) Capacidade de Aproximao Universal

Um controlador nebuloso pode assumir a forma de um sistema aditivo nebuloso como ilustrado
na figura 8.14:
B1

Se (x1 A11)...(xn A1n) Ento B1

B2

Se (x1 A21)...(xn A2n) Ento B2

y=F(x)

Desnebulizao

Bm
Se (x1 Am1)...(xn Amn) Ento Bm

Figura 6-14. Sistema aditivo nebuloso


O vetor de entradas x, em funo do grau de pertinncia do componente xj ao conjunto Aij
produz sadas Bi que, combinadas, resultam no conjunto B. Aplicando-se a desnebulizao sobre este
conjunto obtm-se um valor numrico y. Assim, a sada y uma funo de x, ou seja y = F(x), sendo
que as caractersticas de F(.) podem ser modificadas atravs da alterao das funes de pertinncia
dos conjuntos Aij e Bi nas regras Se (x1 Ai1)...(xn Ain) Ento Bi.
No caso de um controlador lgico nebuloso do tipo Mamdani, o mapa y = F(x) da forma:

min
{ A
j

}
min{ ( x )}a

F(x) =

i =1
m

i =1

ij

(x j ) a i c i

A ij

onde ai a rea de Bi e ci a abcissa do centro de massa de Bi. Portanto, uma vez que os conjuntos Aij
e Bi so conhecidos, a sada y pode ser calculada para cada x atravs de y = F(x).
Uma questo interessante sobre a existncia de soluo para o problema inverso: Dada uma
funo F(.), seria possvel construir um controlador lgico nebuloso, de modo que y = F(x)?.
Em vista dos resultados de Wang e Mendel (1992), possvel construir um controlador lgico
nebulosos tal que y = Fa(x), de modo que Fa(.) aproxima F(.) em termos de norma . , no espao de
funes contnuas, desde que o universo de discurso X seja compacto.
Portanto, controladores lgicos nebulosos so aproximadores universais para uma certa classe
de funes, mas persiste a dificuldade em se caracterizar os conjuntos Aij e Bi, bem como o nmero de
regras necessrias. Uma forma de tentar determinar estas caractersticas de forma numrica atravs
do emprego de mtodos de otimizao como o de Poliedros Flexveis e Algoritmos Genticos.

36

7 MTODOS DE OTIMIZAO NUMRICA


So vrias as aplicaes dos mtodos de otimizao numrica na implementao de sistemas
incorporando tcnicas de inteligncia artificial. Podem ser mencionados o treinamento de redes neurais
artificiais, o ajuste adaptativo de controladores nebulosos, a utilizao de otimizao da produo em
sistemas supervisionados por estaes inteligentes e outras.
Em vista de existirem diversos textos especializados em otimizao, no se pretende aqui
aprofundar demasiadamente no tema e o objetivo deste captulo apenas oferecer algumas noes
sobre as principais tcnicas disponveis.

7.1 Conceituao e Utilidade em Sistemas Inteligentes


Otimizao , no presente contexto, a determinao de uma ao que proporciona um mximo
de benefcio, medido por um critrio de desempenho pr-estabelecido. Muitas vezes a ao a seleo
de um vetor de parmetros w = (w1, w2, ... , wn) Rn, onde n um nmero natural fixo, e o critrio de
desempenho uma funo J: Rn R que deve ser minimizada caso represente um custo ou, ento, ser
maximizada caso esteja associada a retorno.
Uma ampla classe de problemas de otimizao pode ser expressa na forma:

minn J ( w)
wR

sujeito a
g i ( w) 0

i = 1,2,..., n g

h j ( w) = 0

j = 1,2,..., n h

( 7.1)

onde gi:Rn R so chamadas de restries (ou vnculos) de desigualdade e hj: Rn R so chamados


de restries (ou vnculos) de igualdade. O problema expresso formalmente em ( 7.1) determinar um
ponto w Rn tal que resulte em um mnimo valor de J(.), enquanto as desigualdades gi(w) 0,
i=1,2,...,ng e as igualdades hj(w) = 0, j=1,2,...,nh so satisfeitas.
Exemplo: Para n = 1, ng = 1, nh = 1, w = (w1,w2) R2 e

J ( w) = 3w1 + 2w2
g ( w) = w12 + w22 4

( 7.2)

h( w) = w1 1
O problema pode ser escrito, assumindo como objetivo a minimizao de J(.), como sendo:

min2 {3w1 + 2w2 }


wR

s.a.

( 7.3)

w12 + w22 4 0
w1 + 1 = 0
cuja soluo pode ser obtida grfica ou analiticamente, fornecendo o ponto de timo w* = (1, -

3 ).

Quando as funes J(.), g(.) e h(.) so no lineares e n um nmero grande, pode ser
impraticvel a obteno de solues por mtodos grficos ou analticos. Nesses casos, interessante
que se disponha de mtodos numricos que possam ser codificados para utilizao em computador
digital.

37

De fato, mtodos numricos de otimizao podem ser empregados no treinamento de redes


neurais, no ajuste de funes de pertinncia de sistemas difusos, no ajuste sistematizado de parmetros
de controladores ou na construo de leis sub-timas de controle.
O problema de otimizao pode apresentar diversas dificuldades, como ilustrado a seguir:
a) Caso clssico irrestrito (sem dificuldades maiores): O ponto de mnimo, neste caso,
corresponde a w* tal que dJ(w* )/dw = 0.

J ( w) = w 2 2w + 2
dJ
=0
dw w=w*

b) Caso clssico restrito: Um problema de minimizao com restries, onde dJ(w)/dw 0 no


ponto w*.

J ( w) = w 2 2 w + 2
g1 ( w) = w 0.5
g 2 ( w) = w
dJ
0
dw w=w*

c) Caso no diferencivel: Um caso de minimizao onde existe o ponto de mnimo, mas este
no caracterizado por dJ(w)/dw = 0.

J ( w) =| w 1 | +1

38

7.2 Mtodos de Otimizao Unidimensional


Considera-se aqui a otimizao (minimizao ou maximizao) de funcionais J: R R, ou seja,
aquele em que w um nmero real. Variantes como o caso onde w restrito a ser um nmero inteiro
fogem do escopo do presente texto.

7.2.1 Mtodo da Busca Uniforme


Uma forma de se resolver numericamente um problema de minimizao unidimensional gerar
uma sequncia w0, w1, ... , wn de modo que J(wn) J(w*) medida que n . Para tal, pode-se
prover um mecanismo para obteno de um novo ponto wk+1 a partir de um ponto wk arbitrrio, de
modo que J(wk+1) J(wk), de preferncia com a desigualdade no sentido estrito.
Passo 0: Arbitrar w0 e h0 R.
Arbitrar um nmero pequeno tol.
Fazer k=0.
Passo 1: Calcular wk+1 = wk + hk
Passo 2: Calcular delta = J(wk) - J(wk+1)
Passo 3: Critrio de Parada:

= wk+1 e fim).
Se (ABS(delta) < tol) Ento ( waprox
Passo 4: Critrio para Reduo do Passo e Mudana de Sentido:
Se (delta < 0) Ento (hk+1 = -hk/2)
Passo 5: Retorna para nova iterao:
Fazer wk+1 = wk e k = k+1
Retornar ao Passo 1.

Figura 7-1. Busca Uniforme

39

7.2.2 Mtodo da Seco urea


Este mtodo consiste em estimar, a cada passo k, um intervalo [ wkmin , wkmax ] onde estaria
localizado w* e seccion-lo, usando a razo urea. Se o comprimento do intervalo inicial L, a seco
urea produz dois intervalos de comprimentos m = (3- 5 )L/2 e M = ( 5 -1)L/2 de modo que M est
para L assim como m est para M. Obtm-se dois intervalos I1 = [ wkmin , wkmin + M ] e I2 =
[ wkmin + m, wkmax ]. A partir de um critrio de menores valores de J(.) nos extremos seleciona-se I1 ou I2
max
que ser o prximo intervalo [ wkmin
+1 , wk +1 ], at que o critrio de parada seja ativado.

Passo 0: Arbitrar w0min ew0max .


Escolher um nmero real tol.
Fazer k=0
Passo 1: Calcular:
L = wkmax wkmin
Passo 2 Critrio de Parada:
*
Se (L < tol) Ento ( waprox
= wkmin +

L
e fim)
2

Passo 3 Calcular:

3 5
L
2
5 1
M=
L
2

m=

( 7.4)

Passo 4 Seleo do Prximo Intervalo


min
max
min
Se (Jm JM) Ento ( wkmin
+M )
+1 = wk e wk +1 = wk

min
max
Se (Jm > JM) Ento ( wkmin
)
+ m ewkmax
+1 = wk
+1 = wk

; onde:

J m = J ( wkmin + m)
J M = J ( wkmin + M )

Passo 5 Fazer k = k + 1 e retornar ao Passo 1.

Figura 7-2. Otimizao unidimensional empregando Seco urea

40

7.3 Mtodos de Busca empregando Gradiente


Em muitos problemas de otimizao possvel a determinao do gradiente de J no ponto w,
denotado por J(w), w Rn e definido por:

J
J ( w) =
( w) L
( w)
wn
w1

( 7.5)

De fato, utilizando-se a frmula para expanso em srie de Taylor, verifica-se que quando se
realiza um deslocamento de h a partir de um certo ponto w, a funo J(.) varia segundo a expresso:
2

J ( w + h) = J ( w) + T J ( w)h + o( h )

( 7.6)

ou seja,
J(w+h) - J(w) J ( w) h

( 7.7)

onde . . denota produto escalar.


Lembrando que o produto escalar calculado atravs de

x y = x . y cos( )

( 7.8)

onde o ngulo entre x e y, da:


J(w+h) - J(w) = 0

se h J (w)

( 7.9)

J(w+h) - J(w) mx

se h // J (w)

( 7.10)

De onde conclui-se, que J(w)=J(w+h)-J(w) mximo quando o deslocamento h est na direo


de J (w) . Ou seja, J (w) aponta na direo de mximo crescimento de J(.) a partir do ponto w.
Por outro lado, J(w) nulo se h perpendicular a J (w) . Ou seja, a funo J(.) no varia
medida que caminhamos (infinitesimalmente) na direo h a partir de w. Como o lugar geomtrico =
{wRn J(w) = constante} uma curva de nvel, verifica-se que J (w) perpendicular s curvas de
nvel de J(.).

Figura 7-3. Curvas de Nvel e Gradientes de uma funo J:R2 R.

41

7.3.1 Mtodo da Mxima Declividade


Uma vez que o gradiente J (w) aponta na direo de mximo crescimento de J(.), uma idia
realizar buscas do ponto de mnimo atravs de deslocamento em sentidos negativos na direo de
J (w) .
Passo 0: Arbitrar w0 e tol.
Fazer k=0.
Passo 1: Calcular hk = J ( wk )
Passo 2: Critrio de Parada:
*
Se ( hk tol ) Ento ( waprox
= wk e fim)

Passo 3: Obter *k , a soluo do problema auxiliar de otimizao unidimensional na varivel

min J ( wk + hk )
R

Passo 4: Fazer wk+1 = wk + *k hk , k=k + 1 e retornar ao Passo 1.

Figura 7-4. Algumas iteraes do mtodo da mxima declividade.


O mtodo de mxima declividade costuma apresenta uma boa estabilidade, pois sempre avana
em direo a pontos com menor valor da funo.
Sua convergncia considerada lenta, principalmente nas regies mais prximas da soluo,
onde pode apresentar um movimento em forma de zig-zag em torno da soluo.

42

7.3.2 Mtodo de Newton


de se esperar que um algoritmo de otimizao que empregue aproximao quadrtica tenda a
possuir uma velocidade de convergncia maior que um utilizando aproximao linear. De fato, para
funes quadrticas o ponto estacionrio pode ser calculado resolvendo-se a equao que se obtm
igualando a sua derivada a zero. Se a matriz H for positivo definida, o ponto estacionrio ser um
ponto de mnimo.
Seja uma funo quadrtica
Q(h) =

1 T
h Hh + b T h + c
2

( 7.11)

Assumindo que H seja positivo definida, o ponto de mnimo de Q(.) dado pela soluo de
Hh + b = 0 h = -H-1b

( 7.12)

No caso de uma funo no necessariamente quadrtica, pode-se utilizar novamente a expanso


em srie de Taylor:

J ( w + h) = J ( w) + T J ( w)h +

1 T
3
h H ( w)h + o( h )
2

( 7.13)

onde a matriz H(w) a Hessiana calculada no ponto w:

2J
2J
L
w
(
)
( w)

wn w1

w1w1
M
O
M
H ( w) =

2
2J

J
w w ( w) L w w ( w)
n
n

1 n

( 7.14)

O valor de h que minimiza Q(h):= J(w+h) , portanto


h = -H-1(w) J (w)

( 7.15)

Utilizando-se estes conceitos, pode-se descrever o mtodo de Newton.


A idia , em torno de cada ponto wk, utilizar uma aproximao quadrtica para calcular hk,
empregando expresses do tipo ( 7.15):
Passo 0: Arbitrar w0 e tol.
Fazer k=0.
Passo 1: Calcular hk = J ( wk ) e H k1 = H ( wk )
Passo 2: Critrio de Parada:
*
Se ( hk tol ) Ento ( waprox
= wk e fim)

Passo 3: Obter *k , a soluo do problema auxiliar de otimizao unidimensional na varivel

min J ( wk + H k hk )
R

Passo 4: Fazer wk+1 = wk + *k hk , k=k + 1 e retornar ao Passo 1.


A dificuldade em se utilizar o mtodo de Newton est na necessidade de derivadas segundas
para caracterizar a Hessiana H(.) e de inverso de matrizes para o clculo de H-1(.).

43

7.4 Mtodos de Busca sem empregar Gradiente


7.4.1 Mtodo da Busca Direta
Uma verso de busca direta a realizao de exploraes, a partir de um dado ponto wk, em
direes paralelas aos eixos de coordenadas. Aps a realizao de exploraes em todas as
coordenadas gerada uma direo hk para busca unidimensional do passo *k , permitindo a
atualizao wk+1 = wk + *k hk.
Passo 0. Arbitrar w0 e x0. Escolher um nmero positivo tol.
Fazer k=0.
Passo 1. Iniciar explorao na direo da coordenada i:
Fazer i=1
Passo 2: Verificar se o sentido indicado por xki adequada:

w1k

w1k

i
i
Se J wk + x k J wki Ento ( hki = xki )

M
M

n
n

wk
wk
i
i
Seno ( x k = x k ).
Passo 3: Caso tenha sido mudado o sinal de xki , verificar se o seu valor adequado:

w1k

w1k

i
i
Se J wk + x k J wki Ento ( hki = xki )

M
M

n
n

wk
wk
i x ki
.
Seno x k =

Passo 4: Se x ki tol

Ento ( hki = 0 , i = i + 1 e retornar ao Passo 2 se i n).


Passo 5: Critrio de Parada:

*
Se hk tol Ento ( waprox
= wk e fim)

Passo 6: Obter *k , a soluo do problema auxiliar de otimizao unidimensional na varivel

min J ( wk + hk )
R

Passo 7: Fazer wk+1 = wk + *k hk , k=k + 1 e retornar ao Passo 2.

44

7.4.2 Mtodo dos Poliedros Flexveis


A idia bsica no mtodo dos poliedros flexveis deformar, a cada iterao, um poliedro, de
modo que este caminhe em uma direo decendente.
Passo 0: Escolher n+1 pontos w10 ,..., w0n +1 .
Fazer k=0.
Escolher nmeros reais positivos tol, , , e .
Passo 1: Determinar os vrtices com pior ( wkH ) e melhor ( wkL ) custo associado J(.):

wkH tal que J ( wkH ) = max {J ( wki )}


i =1,..., n +1

w tal que J ( w ) = min {J ( wki )}


L
k

L
k

i =1,..., n +1

Passo 3: Critrio de Parada:


n +1

Calcular P =

w
i =1

i
k

wkL .

*
=
Se ( P < tol ) Ento waprox

1 n+1 i

wk e fim

n + 1 i =1

Passo 4: Determinar o centride da face oposta ao vrtice wH:

c=

1 n +1 i

wk wkH

n i =1

( 7.16)

Passo 5. Reflexo:

wkR = c + (c wkH )
Passo 6: Expanso, se for o caso:

Se ( J ( wkR ) < J ( wkL ) ) Ento wkE = c + ( wkR c)


e

wkE se i corresponde a wkH

Fazer wki +1 =

i
wk para os demais vertices

Passo 7: Reduo, se for o caso:


Se ( J ( wkR ) J ( wkH ) )

wki +1 = wkL + ( wki wkL )wki wkL

wki +1 = wki para wki = wkL

Ento

Passo 8: Contrao, se for o caso:

Se ( J ( wkR ) > J ( wki )wki wkH ) Ento wkC = c + ( wkH c)


e

wkC se i corresponde a wkH

Fazer wki +1 =

i
wk para os demais vertices

Passo 9: Fazer k = k+1 e Retornar ao Passo 1

45

Figura 7-5. Poliedro Flexvel.

Figura 7-6. Mtodo dos Poliedros Flexveis.

Figura 7-7. Exemplo de Aplicao do Mtodo dos Poliedros Flexveis.

46

7.4.3 Algoritmos Genticos


Os algoritmos genticos utilizam um conceito anlogo ao de seleo natural da teoria da
evoluo de Darwin. A idia bsica, no caso da minimizao de funcionais de custo J(w) em relao a
w, codificar o valor de w em uma cadeia de dados que recebe o nome de cromossomo. Em uma dada
populao de cromossomos existem aqueles, associados a w, que resultam em valores baixos de J(w).
Estes cromossomos so considerados mais aptos para reproduo. A reproduo consiste em
selecionar pares de cromossomos que sofrem os efeitos de crossover e mutao. O crossover consiste
em trocar segmento da cadeia de dados de um cromossomo com o seu par, eventualmente originando
cadeias de dados novas que ainda no existia na populao. A mutao a alterao aleatria de algum
dado codificado no cromossomo.

Figura 7-8. Mecanismo de crossover nos algoritmos genticos.

Figura 7-9. Mecanismo de mutao nos algoritmos genticos.

Figura 7-10. Exemplo de Roleta para Seleo.

47

Passo 0: Selecionar os tamanhos da populao inicial N e populao mxima M.


Fazer k = N.
Escolher um nmero real positivo tol e um nmero inteiro 0 < t < N para teste de
convergncia.
Passo 1: Gerao da populao inicial
P = { (cromo1, J(w1)),...,(cromoN, J(wN))}
onde cromoi = wi1 : wi2 : L : win
Passo 2: Ordenar a lista P de modo que J(wi-1) J(wi)
Passo 3: Seleo do par de cromossomos para reproduo
Gerar dois nmeros aleatrios r1 e r2 distribudos sobre o intervalo (0,1), com elevada
densidade prximo a 0 e baixa prximo a 1.
Calcular os ndices dos cromossomos sorteados
m = IFIX(r1 * N) + 1
f = IFIX(r2 * N) + 1
Passo 4: Mutao:
Alterar, aleatoriamente, 1 bit de cromom e 1 bit de cromof
Passo 5 Crossover:
Quebrar cromom em dois fragmentos frag 1m e frag m2 de comprimento aleatrio.

frag 1f e frag 2f de comprimentos idnticos aos

Quebrar cromof em dois fragmentos

frag 1m e frag m2 .
Montar cromod1 = frag 1f e frag m2 e cromod2 = frag 1m e frag 2f
Passo 6: Fazer k = k + 2 e inserir cromod1 e cromod2 na lista P, na posio correta da ordenao.
Passo 7: Seleo Natural - eliminao dos cromossomos de pior desempenho em termos de J(.)
Se (k M)
Ento (P = P - {(cromoN+1,J(wN+1),...,(cromok,J(wk))} e k = M)
Passo 8: Critrio de Parada:

*
= w1
Se (J(wt) - J(w1) < tol) Ento waprox

Seno (retornar ao Passo 2).

48

7.5 Mtodos Estendidos


7.5.1 Zona Tabu
Muitos algoritmos de otimizao possuem a tendncia de serem capturados por pontos de
mnimo que podem no ser ainda o ponto de mnimo global.
Uma forma de se tentar determinar o ponto de mnimo global repetir o algoritmo que tende a
convergir para um ponto de mnimo local, mas a partir de diferentes pontos iniciais. O mtodo da zona
tabu tenta disciplinar a gerao de novos pontos iniciais para a aplicao dos algoritmos de busca de
mnimo local.
A idia fundamental no mtodo da zona tabu a construo de listas de pontos iniciais que
tendem a resultar em convergncia para pontos de mnimo piores que o melhor j conhecido.
Passo 0: Arbitrar w0.
Selecionar um nmero real p (0.5,1).
Selecionar , tol e o comprimento mximo de listas M
Selecionar um algoritmo de minimizao local min_local:
*
wlocal
= min_ local ( w0 )

Passo 1: Montar a lista ZT = vazio (lista de Zona Tabu)


Montar a lista MP = (w0,J(w0)) (lista de Melhores Pontos)
Passo 2: Se (ZT = vazio) Ento (Selecionar um elemento qualquer de MP)
Seno (Selecionar um elemento qualquer (wS,J(wS)) de MP com
probabilidade p ou de ZT com probabilidade (1-p))
Passo 3: Promover espalhamento em torno de wS:
Gerar vetor aleatrio r de distribuio normal N(0,2I)
Fazer wC = wS + r
Passo 4: Obteno de um mnimo local a partir de wC:

wC* = min_ local ( wC )


Passo 5: Avaliao de wC* :
Se (J( wC* ) < J(wS)) Ento (transferir todos os elementos de MP para TZ e inserir (wC , J ( wC ) )
em MP)
Se J ( wC* ) J ( wS ) < tol Ento (inserir (wC , J ( wC ) ) em MP)

Se (J( w ) > J(wS)) Ento (inserir (wC , J ( wC ) ) em ZT)


*
C

Passo 6: Critrio de Parada


*
= wk ,wk MP )
Se (comprimento(MP) M) Ento ( waprox

Seno (retornar ao Passo 2)

49

7.5.2 Recozimento Simulado


O mecanismo de recozimento simulado (simulated annealing) procura evitar que um algoritmo
de busca descendente seja capturado por um ponto de mnimo local e para tal, promove a gerao de
direes no localmente favorveis, com uma probabilidade no nula. A analogia fsica que se faz
com relao agitao trmica imposta s molculas de um dado material durante um processo de
tmpera (ou recozimento).
Entretanto, medida que o algoritmo de busca se aproxima do ponto de mnimo, possivelmente
global, a temperatura deve ser reduzida, de modo a diminuir a agitao trmica.
O mecanismo de recozimento simulado pode ser incorporado em diversos algoritmos de busca.
Como exemplo, apresentado, a seguir, a adaptao para o caso do mtodo de mxima declividade.
Passo 0: Arbitrar w0 e tol.
Fazer k=0.
Escolher um nmero real T (Temperatura Inicial).
Escolher um nmero real (0,1) (Taxa de Resfriamento)
Passo 1: Calcular hk = - J ( wk )
Passo 2: Critrio de Parada:

*
= wk e fim)
Se hk tol Ento ( waprox

Passo 3: Gerao de uma direo alternativa, por exemplo aleatria, hA


Passo 4: Critrio de Aceitao (ou de Metropolis):
Calcular a diferena de desempenho entre hk e hA:

= J ( wk + h A ) J ( wk + hk )
Calcular a probabilidade de aceitao pa pela frmula:

1 se < 0
pa =
e T se > 0
Passo 5: Escolha da direo de busca:
Gerar um nmero aleatrio uniformemente distribudo entre [0,1]
Se ( pa) Ento (hk = hA)
Passo 6: Obter *k , a soluo do problema auxiliar de otimizao unidimensional na varivel

min J ( wk + hk )
R

Passo 7: Fazer wk+1 = wk + *k hk , k=k + 1, T = T e retornar ao Passo 1.


Existem outras formas de promover o resfriamento diferentes da includa no Passo 7: T = T,
tais como o T = T - 1, T = 1/(1+2*T) e T = 1/log(1+t), onde 1 e 2 so constantes
convenientemente escolhidas.

50

7.6 Seleo do Mtodo de Otimizao


A escolha do mtodo para solucionar um dado problema de otimizao requer uma anlise
cuidadosa das condies exigidas para a aplicabilidade de cada um. Entre os diversos fatores, esto a
disponibilidade ou no, de expresses para as derivadas do funcional de custo (por exemplo, no caso
dos mtodos de mxima declividade e de Newton), quantidade de memria que pode ser alocada para
o armazenamento de dados (zona tabu, algoritmos genticos), utilizao ou no em ambientes de
tempo real, existncia ou no de uma boa estimativa para w* (facilitando a escolha de w0),
convexidade da funo a ser minimizada (caso em que a soluo existe e nica se o problema no
possui restries), simplicidade de programao e outros.

51

8 REDES NEURAIS ARTIFICIAIS


8.1 Modelos e Arquiteturas
O funcionamento da grande maioria dos computadores digitais em uso atualmente baseado no
princpio de centralizar todas as operaes em um processador muito poderoso e complexo. Essa a
idia bsica da arquitetura de Von Neumann, assim chamada, pois foi proposta por John Von
Neumann, um dos pioneiros da computao moderna, em 1947.
A maneira tradicional de usar tais computadores tem sido o chamado enfoque algortmico que
consiste em planejar uma seqncia precisa de passos (um programa de computador) que executada
pelo computador. Algumas vezes estas seqncias envolvem operaes com valores numricos. Nestas
condies tem-se o enfoque numrico. Por outro lado, baseado na hiptese de que o processo de
pensamento do especialista humano pode ser modelado usando um conjunto de smbolos e um
conjunto de regras lgicas, os computadores so tambm utilizados para realizar inferncias lgicas.
Este o chamado enfoque simblico. Nestes enfoques necessria a interveno de uma pessoa que
entenda do processo (o especialista humano) e tambm de algum para programar o computador.
O enfoque algortmico, tanto os de natureza numrica quanto simblica, podem ser muito teis
para a classe de problemas onde possvel encontrar uma seqncia precisa de operaes matemticas
ou regras, por exemplo, inverso de matrizes e o diagnstico mdico de certas doenas que j so bem
compreendidas. Entretanto, tais enfoques podem apresentar limitaes:
a) Processamento predominantemente seqencial: devido centralizao do processamento
em torno de um processador, as instrues tm que ser executadas seqencialmente, mesmo que dois
conjuntos de instrues no sejam inter-relacionadas. Surge ento um "gargalo" em torno do
processador central que impe uma limitao na velocidade mxima de processamento.
b) Representao Local: o conhecimento localizado no sentido de que um conceito ou regra
localizado em uma rea precisa na memria do computador. Tal representao no resistente a
danos. Tambm uma pequena corrupo em uma das instrues que sero executadas pelo processador
(p. ex. erro em apenas 1 bit) pode facilmente arruinar a computao seqencial. Outro problema a
diminuio da confiabilidade de um programa medida que sua complexidade aumenta, visto que
aumenta a probabilidade de erros na programao.
c) Dificuldade de aprendizado: utilizando-se a definio de que aprendizado em computao
a construo ou a modificao de alguma representao ou modelo computacional (Thornton, 1992),
difcil simular "aprendizado" usando os enfoques algortmico ou simblico, uma vez que no trivial
incorporar os dados adquiridos via interao com o ambiente no modelo computacional.

Em geral, pode se dizer que os computadores digitais atuais podem resolver problemas que so
rduos para humanos, mas freqentemente so muito difceis de serem usados para automatizar tarefas
que humanos podem realizar com pouco esforo, tal como dirigir um carro ou reconhecer faces e sons
nas situaes encontradas no mundo real.
O estudo de Redes Neurais Artificiais (RNA, computao neural, conexionismo ou
processamento paralelo distribudo) fornece um enfoque alternativo a ser aplicado em problemas onde
os enfoques algortmico e simblico no so julgados muito adequados.
As RNAs, diferentemente de computadores digitais convencionais, executam sua tarefa usando
um grande nmero de processadores, cada um desses muito simples, mas com uma elevado grau de
interconexo entre eles. Ou seja, esses processadores operam em paralelo. A representao do
conhecimento distribuda pelas conexes (sinapses) e o aprendizado feito alterando-se os valores
associados a estas conexes. Todavia, os mtodos de aprendizado ainda precisam ser programados e
para cada problema especfico, um mtodo de aprendizado apropriado deve ser escolhido.
As redes neurais artificiais so, s vezes, modelos to grosseiros de sistemas nervosos
biolgicos que seria difcil justificar a palavra neural. A palavra neural usada hoje mais por razes
histricas, dado que os primeiros pesquisadores do assunto vieram das reas de Biologia ou
Psicologia, no das reas de Engenharia ou Computao.

52

8.1.1

O neurnio biolgico (natural)

O crebro humano contm aproximadamente 1011 clulas nervosas elementares chamadas de


neurnios. Cada um desses neurnios est conectado a cerca de 103 a 104 outros neurnios. Portanto,
estima-se que o crebro humano teria entre 1014 e 1015 conexes.
Existem vrios tipos de neurnios, cada um com sua funo, forma e localizao especfica,
porm os componentes principais de um neurnio de qualquer tipo so: o corpo de neurnio (chamado
soma), os dendritos e o axnio, como ilustrado na Figura 8-1.

Axnios
de
outros
neurnios

Dendrito Corpo do neurnio


Potencial de ao
Axnio

Ncleo
Sinapse

As setas indicam a direo do fluxo de informao

Figura 8-1. Representao esquemtica de um neurnio biolgico.


O corpo do neurnio mede entre 5 a 10 mm de dimetro e contm o ncleo da clula. A maioria
das atividades bioqumicas necessrias para manter a vida do neurnio, tais como a sntese de enzimas,
so realizadas no seu corpo. Os dendritos atuam como canais de entrada para os sinais externos
provenientes de outros neurnios e o axnio atua como canal de sada e transmisso.
O final de um dos ramos do axnio tem a forma de um boto com dimetro em torno de 1 mm e
conectado ao dendrito de um outro neurnio. Tal conexo chamada de sinapse. Normalmente tal
conexo no fsica (o axnio e o dendrito no se tocam), mas, eletroqumica.
O corpo do neurnio pode gerar atividade eltrica na forma de pulsos de voltagem chamados de
potencial de ao. O axnio transporta o potencial de ao do corpo do neurnio at as sinapses onde
certas molculas, chamadas de neurotransmissores, so liberadas. Estas molculas atravessam a fenda
sinptica e modificam o potencial da membrana do dendrito. Dependendo do tipo do neurotransmissor
predominante na sinapse, o potencial da membrana do dendrito aumentado (sinapse excitatria) ou
diminuindo (sinapse inibidora). Estes sinais recebidos pelos dendritos de vrios neurnios so
propagados at o corpo do neurnio onde so aproximadamente somados. Se esta soma dentro de um
pequeno intervalo de tempo for acima de um determinado limite o corpo do neurnio gera um
potencial de ao que ento transmitido pelo axnio aos outros neurnios.
Depois que o potencial de ao gerado existe um perodo refratrio quando o neurnio no
gera outro potencial de ao, mesmo que receba uma grande excitao. O perodo refratrio que dura
entre 3 e 4 ms determina a mxima frequncia de disparo do neurnio. Por exemplo, considerando que
o mnimo perodo de um potencial de ao de 4 ms (1 ms como a mnima durao do pulso + 3 ms
como a mnima durao do perodo refratrio) a mxima frequncia de trabalho de um neurnio seria
250 Hz.
A velocidade de propagao do potencial de ao ao longo do axnio varia de 0.5 a 130 m/s,
dependendo do dimetro do axnio e da existncia da bainha de mielina (uma substncia isolante).
Dois teros dos axnios do corpo humano tem um pequeno dimetro (entre 0.0003 e 0.0013 mm) e
no so cobertos pela bainha de mielina. Estes axnios transmitem sinais como a temperatura corporal.
O outro tero dos axnios possuem um dimetro largo (0.001 a 0.022 mm), so cobertos pela bainha
de mielina e so usados para transmitir sinais vitais que precisam ser processados rapidamente, por
exemplo, os sinais de viso.
interessante ressaltar que o sinal transmitido pelo neurnio modulado em frequncia (FM).
Usando este tipo de modulao, o sinal gerado no corpo do neurnio pode ser transmitido pelo axnio
at outros neurnios por longas distncias sem distores significativas no contedo da informao.

53

8.1.2 Definio de Rede Neural Artificial


A seguinte definio formal de uma Rede Neural Artificial foi proposta por Hecht-Nielsen,
1990:
Uma Rede Neural Artificial uma estrutura que processa informao de forma paralela e
distribuda e que consiste de unidades computacionais (as quais podem possuir uma memria local e
podem executar operaes locais) interconectadas por canais unidirecionais chamados de conexes.
Cada unidade computacional possui uma nica conexo de sada que pode ser dividida em quantas
conexes laterais se fizer necessrio, sendo que cada uma destas conexes transporta o mesmo sinal,
o sinal de sada da unidade computacional. Este sinal de sada pode ser contnuo ou discreto. O
processamento executado por cada unidade computacional pode ser definido arbitrariamente com a
restrio de que ele deve ser completamente local, isto , ele deve depender somente dos valores
atuais dos sinais de entrada que chegam at a unidade computacional via as conexes e dos valores
armazenados na memria local da unidade computacional.
A definio acima mostra que redes neurais artificiais podem ser vistas como uma subclasse de
uma classe geral de arquitetura computacional para processamento paralelo chamada Mltipla
Instruo Mltiplos Dados (Multiple Instruction Multiple Data - MIMD).

8.1.3 Uma Estrutura Geral para Modelos de Redes Neurais Artificiais


Existem muitos modelos diferentes de Redes Neurais Artificiais, porm cada modelo pode ser
definido formalmente pelas seguintes oito caractersticas principais:

Um conjunto de unidades computacionais,


Um estado de ativao para cada unidade (ai),
Uma funo de sada Fj para cada unidade, out j = F a j ,

Um padro de conectividade entre as unidades, ou seja, a topologia da rede, a qual definida


pela matriz de pesos W,
Uma regra de combinao usada para propagar os estados de ativao das unidades pela rede
(clculo de netj),
Uma regra de ativao usada para atualizar a estado de ativao de cada unidade usando o
valor atual do estado de ativao e as entradas recebidas de outras unidades
a j (k + 1) = g a j (k ), net j (k ) ,

( )

Um ambiente externo que fornece informao para a rede e/ou interage com ela,
Uma regra de aprendizado, usada para modificar o padro de conectividade da rede, usando
informao fornecida pelo ambiente externo, ou seja, para modificar a matriz de pesos W.

Figura 8-2. Estrutura geral de uma unidade computacional.

54

8.1.3.1 Alguns Tipos de Unidades Computacionais:


a) Unidade Tipo Linear:
O tipo de unidade computacional mais simples o tipo linear, onde se tem:
out i = net i =

w ij x j + bias i

( 8.1)

O valor do limiar (bias) pode simplesmente ser interpretado como sendo um outro peso vindo
de uma unidade cuja sada sempre 1.
b) Unidade Tipo TLU:
Em 1943 W. McCulloch e W. Pitts propuseram modelar o neurnio biolgico como uma
"unidade lgica tipo limiar" (Threshold Logic Unit, TLU) com L entradas binrias (0 ou 1) e uma
sada binria. Os pesos associados com cada entrada so 1. A sada de tal unidade alta (1) apenas
quando a combinao linear de todas as entradas maior ou igual a um certo limiar, e baixa (0) no
caso contrrio.

out i = Fi (net i ) = Fi wij x j + bias i


j

( 8.2)

onde Fi(z) = 1 se z 0 e Fi(z) = 0 se z < 0, wij o peso vindo da unidade j para a unidade i (i j).
c) Unidade Tipo Sigmide ou Tangente Hiperblica:
Este o tipo de unidade mais comumente usado em aplicaes de redes neurais. Neste caso temse que:
net i =

w ij x j + bias i

( 8.3)

e para a unidade tipo sigmide:


out i = sig (net i ) =

1
1 + exp( net i )

( 8.4)

enquanto, para a unidade tipo tangente hiperblica:


out i = tanh (net i ) = 2 sig (net i ) 1

( 8.5)

A sada da unidade tipo sigmide varia entre 0 e 1, enquanto que a sada da unidade tipo
tangente hiperblica varia entre -1 e 1.
Note que para este tipo de unidade: a) a curva de sada apresenta uma forma de S, b) que tal
curva pode ser vista como uma verso suave (isto , com derivada limitada) da curva de sada da
unidade tipo TLU.
d) Unidade tipo Funo de Base Radial:
Neste caso tem-se:
net i = x C i

( 8.6)

onde Ci um vetor que determina o centro da unidade e:

out i = exp (net i )2

( 8.7)

Desta maneira, a sada da unidade mxima quando x = Ci e decai suavemente medida que x
se afasta do centro Ci.

55

8.1.4 Topologia de Redes Neurais Artificiais


De acordo com a topologia, uma rede neural artificial pode ser classificada como feedforward
(sem realimentao local) ou feedback (com realimentao local ou recorrente) Em uma rede neural
artificial tipo feedforward uma unidade envia sua sada apenas para unidades das quais ela no recebe
nenhuma entrada direta ou indiretamente (via outras unidades). Em outras palavras em uma rede tipo
feedforward no existem laos (loops). Em uma rede tipo feedback os laos existem. A Figura 8-3
mostra os tipos de redes neurais artificiais.

Figura 8-3. Algumas topologias para rede neural artificial: (a) sem realimentao e camadas isoladas,
(b) sem realimentao e conexes entre camadas de entrada e sada, (c) com realimentao.
Em redes neurais artificiais tipo feedforward as unidades podem ser enumeradas de forma tal
que a matriz de pesos W triangular inferior com diagonal nula (enumere as unidades da entrada para
a sada e denote por Wij o peso recebido pela unidade i vindo da unidade j).
Uma rede neural artificial separada em camadas, onde todas as unidades enviam suas sadas
apenas para as unidades situadas na prxima camada, dita ser estritamente feedforward (vide Figura
8-3 a).
Uma rede neural artificial tipo feedforward implementa um mapeamento esttico do seu
espao de entrada para o seu espao de sada. Em certos casos necessita-se de camadas escondidas (ou
camadas internas) para que a rede possa implementar o mapeamento entrada-sada desejado.
Uma rede tipo feedback , em geral, um sistema dinmico no linear. Neste ltimo caso, a
estabilidade da rede torna-se um tpico de grande importncia.
Uma aplicao tipca de uma rede neural artificial tipo feedforward o desenvolvimento de
modelos no lineares usados em reconhecimento de padres/classificao. Uma aplicao tipca de
redes neurais artificiais tipo feedback como uma memria endereada por contedo onde a
informao que deve ser gravada corresponde a pontos de equilbrio estvel da rede.

8.1.5 Aprendizado em Redes Neurais Artificiais


Na fase de aprendizado (treinamento) de uma rede neural artificial, uma regra usada para
alterar os elementos da matriz de pesos W (e outros parmetros modificveis que a rede possa ter)
usando a informao do meio externo, disponibilizada pelo supervisor do aprendizado. Neste contexto,
os termos treinamento, aprendizado ou adaptao so sinnimos e so interpretados como alteraes
nos parmetros modificveis da rede neural.
Os diferentes mtodos de aprendizado podem ser classificados de acordo com a participao do
supervisor no processo de aprendizado.
No grau de superviso mais forte possvel o supervisor fornece diretamente para a rede neural
os valores dos pesos. Este o caso, por exemplo, das Redes de Hopfield. Este tipo de superviso pode
ser qualificado de Muito Forte e, na literatura, redes que utilizam tal tipo de estratgia so referidos
como sendo de pesos fixos.
Em um grau de superviso menor, que denominamos de Superviso Forte, o supervisor fornece
para a rede neural um conjunto de treinamento, ou seja, um conjunto de entradas e suas respectivas
sadas desejadas. Deseja-se ento que a rede aprenda a "imitar" o supervisor, ou seja, ajuste os seus

56

pesos de forma a produzir, para cada entrada do conjunto de treinamento a sada desejada fornecida
pelo supervisor. Este o caso de redes tipo feedforward treinadas com algoritmos de correo de erro,
como o algoritmo Back-Propagation. Nestes algoritmos, para cada entrada do conjunto de treinamento
a sada produzida pela rede neural comparada com a sada desejada fornecida pelo supervisor e os
pesos so alterados de forma a diminuir esta diferena. Frequentemente, este tipo de aprendizado
denominado na literatura de aprendizado supervisionado.
Na reduo seguinte do nvel de superviso, denominada de Superviso Fraca, o supervisor faz
apenas o papel de um crtico fornecendo uma avaliao grosseira da sada da rede neural (por
exemplo, certo ou errado, erro grande ou erro pequeno, sucesso ou fracasso) ao invs de fornecer a
sada desejada. Nesta categoria esto os algoritmos de aprendizado por reforo (reinforcement
learning) ou de punio/recompensa (reward/punishment).
No menor grau de superviso, que denominamos de Superviso Muito Fraca, o algoritmo de
treinamento da rede neural tenta descobrir categorias dos dados de entrada e o supervisor participa
apenas fornecendo os rtulos para estes agrupamentos. Um exemplo deste tipo de aprendizado est
presente nas Redes de Kohonen. Na literatura este tipo de aprendizado denominado aprendizado no
supervisionado, um nome que, estritamente falando, no estaria totalmente apropriado, pois ainda
ocorre uma pequena (mas efetiva) participao do supervisor no processo de aprendizagem.

Figura 8-4. Graus de envolvimento do supervisor nas diferentes formas de treinamento de redes
neurais.

8.1.6 Capacidade de Aproximao Universal


No Congresso Internacional de Matemtica, realiza em Paris no ano de 1900, o eminente
matemtico, Prof. David Hilbert apresentou 23 problemas, de cuja discusso poderiam advir
significativos avanos na cincia.
O 13o problema provocou, de fato, um impacto decisivo no campo de redes neurais. O problema
envolvia responder questo: Existem funes contnuas de 3 variveis que no so representveis
como superposies e composies de funes de 1 varivel?" No contexto de uma rede neural, a
questo poderia ser adaptada para: Existem funes contnuas de 3 variveis que no so
sintetizveis atravs de ajuste de pesos de um perceptron multi-camadas?" Em termos formais, dada
uma funo f: R3 R, existiria um conjunto de pesos w de forma que f(x) = rede_neural(x,w), para
alguma rede_neural? De forma mais geral, o problema de aproximao universal consiste em
caracterizar o conjunto de funes f: Rn R que podem ser representados na forma f(x) = fRN(x,w),
onde para um dado conjunto de pesos fRN(.,w) : Rn R representa o mapa entrada-saida de uma
rede_neural.
Um resultado fundamental a esta questo fornecido pelo Teorema de Kolmogorov.
Teorema de Kolmogorov: Uma funo contnua f: [0,1]n R, com n 2, pode ser
representado na forma
f ( x1 ,..., x n ) =

2 n +1

j=1

i =1

h j ( g ij ( x i ))

( 8.8)

onde hj e gij so funes contnuas de 1 varivel e gij so funes monotnicas crescentes, fixas e
independentes da especificao de f. (Prova: Kolmogorov, 1957)

57

A dificuldade do Teorema de Kolmogorov reside no fato que no so fornecidos procedimentos


construtivos para h e g e tambm no se garante que se possa arbitrar h e g, tomando-se, por exemplo,
funes sigmoidais ou lineares, como apresentam, usualmente, as redes neurais.
Diversos autores como Hornik, Stinchcombe e White, 1989, Funahashi, 1989 e Irie & Miyake,
1988 estenderam e adaptaram os resultados para o caso especfico de redes neurais. Aqui
apresentado um resultado obtido por Cybenko que faz referncia a funes : R R, ditas
sigmoidais:
1 se t +
( x ) =
0 se t -

( 8.9)

Teorema de Cybenko: Seja f: [0,1]n R uma funo contnua e : R R uma funo


contnua sigmoidal. Ento, dado > 0, existe:
N

f RN ( x ) = v j ( wTj x + b)

( 8.10)

j =1
n

onde wj Rn, bj R e vj R, de forma que:

f RN ( x ) f ( x ) < x [0,1]

( 8.11)

(Prova: Teorema 2 de Cybenko, 1989).


Em vista do Teorema de Cybenko, redes neurais com uma camada de neuronios dotados de
funes de ativao do tipo sigmoidal e uma camada do tipo linear so suficientes para aproximar
funes contnuas sobre [0,1]n. Com uma camada adicional de entrada pode-se realizar um
escalonamento, de modos que o domnio pode ser estendido a paraleleppedos [xmin, xmax].
Resultados similares so disponveis para redes neurais empregando funes de base radial.
(Nascimento Jr. e Yoneyama, 2002)

8.2 Aprendizado com Superviso Forte


So apresentados dois mtodos de aprendizado onde a participao do supervisor pode ser
considerado forte. O primeiro mtodo trata de redes de Hopfield onde os pesos so fixos e ajustados
(programados) a priori. Neste caso os pesos fixos devem ser calculados de modo que os pontos de
equilbrio de uma rede recorrente sejam os desejados. O segundo mtodo o de ajuste de pesos
baseado na minimizao de erro quadrtico em relao a uma amostra de pares entrada-sada. Aqui,
mtodos de otimizao numrica so utilizados para a determinao do ponto de mnimo.

8.2.1 Programao Direta dos Pesos


Selecionou-se para estudo, a rede neural de Hopfield. Trata-se de uma rede neural com
realimentao e, como tal, so sistemas dinmicos no lineares que podem exibir comportamentos
bastante complicados.
A importncia do estudo de tais tipos de redes neurais advm do fato de que possuem aplicaes
notveis, particularmente no campo de memrias associativas e para a obteno de soluo para
algumas classes de problemas de otimizao. No caso de memrias associativas, a rede neural
projetada de modo que os padres que devem ser memorizados correspondem aos seus pontos de
equilbrio estveis. No caso da soluo de problemas de otimizao, a rede neural projetada de modo
que haja convergncia para pontos de equilbrio estveis e que, eventualmente correspondem a
solues timas.

58

8.2.1.1 Memrias associativas


So entidades que armazenam um conjunto de padres = {S1, S2, ... , SM} de modo que,
quando lhes apresentado um novo padro Y, retornam Si que mais se aproximam de Y, em um
sentido estabelecido a priori. Podem ser interpretadas como memrias endereveis por contedo, pois
permitem que um determinado padro que esteja armazenado seja recuperado mediante uma entrada
incompleta ou corrompida (pattern completion e pattern recognition). So exemplos de aplicaes, o
reconhecimento de caracteres manuscritos e o reconhecimento de fisionomias.

8.2.1.2 Redes de Hopfield de tempo discreto


Em funo de convenincia matemtica, assuma que so empregados os valores 1 e -1 no lugar
de 0 e 1, usualmente adotados em representaes binrias.
Considere uma rede neural artificial de uma camada e com realimentao, empregando sada
bipolar, como a ilustrada na Figura 8-5.

Figura 8-5. Uma RNA de uma camada e com realimentao


onde:
1 se net i > 0
y i = sign( net i ) =
1 se net i 0

( 8.12)

net i = w ij y j + bias i + ext i

( 8.13)

j=1

onde, N o nmero de unidades na rede, biasi e exti so variveis constantes internas e externas,
respectivamente.
Um padro Y = (y1, ... , yN) dito corresponder a um ponto de equilbrio estvel da rede, se:

sign w ij y j = y i
j=1

i = 1,..., N

( 8.14)

pois, neste caso, a sada no se alteraria na atualizao, caso se apresentasse Y como entrada.
Se o padro que se deseja armazenar S = (s1,...,sN), tem-se que os pesos wij da rede devem ser
wij = ksisj
( 8.15)
com k > 0, pois, neste caso:

sign w ijs j = sign ks is js j


j=1

j=1

= sign (kNsi )

( 8.16)

= s i i = 1,..., N

59

desde que sjsj = 1, significando que S um ponto de equilbrio da rede. Por convenincia, se k = N-1,
1
W = SST
( 8.17)
N
onde W a matriz de pesos com elementos wij.
No caso de se ter M padres, uma proposta simples para a determinao da matriz de pesos W,
pode ser obtida por superposio, ou seja:
T
1 M pat pat
W=
( 8.18)
S S
N pat =1

( )

Para que a rede apresente a funo de memria associativa, deve-se ter:


N

sign w ijs j = si i = 1,..., N


j=1

ou, utilizando a expresso ( 8.18),


1 N M

sign s pat
s pat
j s j = s i i = 1,..., N
i
N j=1 pat =1

( 8.19)

( 8.20)

Denotando por SP um padro particular que se deseja memorizar na rede, o argumento de sign(.)
na equao ( 8.20) :
1 N M pat pat P 1 N pat pat P 1 N M pat pat P
s sj s j = N s i sj s j + N s i sj s j
N j=1 pat =1 i
j=1
j=1 pat = 2
( 8.21)
= s Pi + (IC)i = 1,..., N
onde (IC) representa a interferncia cruzada entre SP e outros padres. Portanto, se a magnitude de
(IC) for inferior a 1, no haver mudana de sinal de siP e a condio de estabilidade do padro SP
estar satisfeita.
A equao ( 8.18) expressa uma regra conhecida como a de Hebb. Uma rede neural com
realimentao utilizando a regra de Hebb, e com atualizao da sada realizada assncronamente,
chamada de rede de Hopfield de tempo discreto (Hopfield, 1982).
Uma questo importante obter uma estimativa para o nmero M de padres diferentes que
pode ser armazenado em uma rede como o da Figura 8-5, com N neurnios. Esta estimativa depende,
entre outros fatores, da taxa de erros que se admitiria na recuperao da informao armazenada. Caso
no se admitam erros (perfect recall), McEliece et al, 1987, mostram que:
N
M
( 8.22)
4 ln N
o que resultaria, para N = 256, apenas M 11.
Note-se que, caso os padres a serem armazenados sejam ortogonais entre si, ou seja:
T
0 se pat i pat k
Spat i Spat k =
N se pat i = pat k

( )

( 8.23)

a capacidade de memria seria M = N. Entretanto, com a regra de Hebb, W seria a matriz identidade, o
que, do ponto de vista prtico, seria desinteressante.
Um conceito interessante utilizado por Hopfield, 1982, a de funo energia em um dado
instante kT:
1
H(k ) = Y T ( k ) WY(k )
( 8.24)
2
Pode-se verificar que H(k+1) H(k), sendo que a igualdade ocorre quando yi no varia na
atualizao. Portanto, a tendncia da rede neural quando recebe uma entrada S evoluir
dinamicamente, na direo em que h decrscimo da funo energia, at que a sada se estabilize em
um dado ponto YS. Caso a rede esteja treinada, YS corresponde verso recuperada de S, ou seja, um
padro completo e no ruidoso que havia sido armazenado a priori e que melhor se aproxima do S
apresentado.

60

8.2.1.3 Redes de Hopfield com atualizao contnua


Aps propor o uso de redes neurais bipolares realimentadas e com atualizao assncrona como
memrias associativas, Hopfield, 1984, verificou que propriedades computacionais similares poderiam
ser obtidas empregando uma verso de tempo contnuo e com sadas contnuas. Redes neurais com
realimentao deste tipo so conhecidos como redes de Hopfield do tipo gradiente (Zurada, 1992) ou
redes de Hopfield com atualizao contnua (Hertz et al, 1991).
Uma forma de se implementar redes de Hopfield com atualizao contnua na forma de um
circuito. A Figura 8-6 apresenta um possvel circuito eltrico analgico para o neurnio:

Figura 8-6. Circuito eltrico implementando um neurnio para utilizao em redes de Hopfield.
As variveis neti e yj so tenses, biasi uma corrente, wij e gi so condutncias, Ci uma
capacitncia e fi um amplificador de tenso tal que Vout = f(Vin), ou seja, yi = fi(neti), com impedncia
de entrada com valor muito elevado que pode ser considerado infinito para efeitos prticos.
A dinmica deste circuito, assumido ser a i-sima unidade da rede, descrita pela equao
diferencial ordinria:
N
dnet i
iC
=
C
=
bias
+
( 8.25)
i
i
i w ij ( y j net i ) g i net i
dt
j=1
Definindo-se C = [C1, ... , CN] e G = diag[G1, ... , GN], onde
N

G i = g i + w ij

( 8.26)

j=1

a equao ( 8.25) pode ser reescrita de forma compacta


dnet
C
= Gnet + Wf ( net ) + bias
dt

( 8.27)

Figura 8-7. Rede de Hopfield com atualizao contnua, implementado na forma de circuito eltrico.

61

A Figura 8-7 ilustra um circuito eltrico anlogo para uma rede de Hopfield com 4 unidades e
atualizao contnua. Assumindo que a matriz de pesos W simtrico e que as funces de ativao fi(.)
so inferior e superiormente limitadas e monotonicamente crescentes, a funo energia que pode ser
proposta :
N
yi
1
H( t ) = Y T WY bias T Y + G i 0 f i1 ()d
( 8.28)
2
i =1
Aplicando-se a regra da cadeia e utilizando a simetria da matriz W, verifica-se que:
N
dH
df 1 ( yi ) dyi 2
= Ci i
(
)
dt
dyi
dt
i =1

( 8.29)

Notando-se que fi(.) monotonicamente crescente, tem-se que:


df i1 ( yi )
>0
( 8.30)
dy i
e, portanto, dH/dt 0, sendo que dH/dt = 0 se e somente se dyi/dt = 0 para todas as unidades i =
1,2,...,N. Logo, a funo energia no crescente com o tempo, e deixa de ser decrescente apenas
quando dyi/dt = 0, ou seja, yi no mais varia no tempo.
Analogamente ao que ocorria no caso de redes de Hopfield de tempo discreto, a tendncia da
rede neural evoluir dinamicamente, na direo em que h decrscimo da funo energia, at que a
sada se estabilize em um dado ponto Y*. Pontos que exibem tal caracterstica so conhecidos na
literatura como; ponto de equilbrio e, desde que a condio inicial Y0 esteja na vizinhana de Y* (ou
seja, na regio de atrao de Y*), Y(t) Y* medida que t .
Se em um problema de otimizao, a funo custo pode ser expressa da forma:
1
H( t ) = Y T WY bias T Y
( 8.31)
2
ento, a rede de Hopfield pode ser utilizada para a sua minimizao. De fato, considere-se funes de
ativao f i com ganhos muito elevados:
f i (net i ) = f i (net i )
( 8.32)
onde um nmero positivo muito grande e fi(net) , por exemplo, do tipo (1+exp(-net))-1 ou
tanh(net). Neste caso, H(t) pode ser escrito como:
yi
1
1 N
H( t ) = Y T WY bias T Y + G i 0 f i1 ()d
2
i =1

( 8.33)

em vista de neti = fi1 ( yi ) / .


Se assume valores elevados, o terceiro termo de ( 8.33) pode ser desconsiderado frente aos
demais. Como a rede de Hopfield tal que: Y(t) Y*, que minimiza H(t), possvel utiliz-la para
resolver problemas de minimizao (Hopfield e Tank, 1986).
Entre as diversas aplicaes propostas na literatura esto:

Converso anlogo-digital;

Decomposio de sinais;

Programao linear;

Problema do caixeiro viajante.

62

8.2.2 Ajuste de Pesos Mediante Amostras de Pares Entrada-Sada


O primeiro problema a ser resolvido quando se treina uma RNA usando aprendizado
supervisionado selecionar o conjunto de dados a ser usado para treinar a rede. Tal conjunto de dados
deve conter a relao que a rede deve adquirir. Dado que na maioria dos casos esta relao no
conhecida, tal seleo de dados para treinamento pode ser um problema no trivial.

8.2.2.1 Regra de Hebb


Em 1949, Donald Hebb, em seu livro The Organization of Behavior, props o que hoje
conhecido como a regra de Hebb:
"Quando um axnio do neurnio A est suficientemente prximo para excitar o neurnio B e
repetidamente colabora para o seu disparo, acontece algum processo de crescimento ou mudana
metablica em um ou em ambos os neurnios de forma tal que a eficincia do neurnio A para
disparar o neurnio B aumenta."
A regra de Hebb j foi apresentada no contexto de redes de Hopfield e pode ser expressa
quantitativamente por:
w ij = y i ( X) x j
( 8.34)
onde X = [x1 x2 ... xp]T o vetor de entrada, Y = [y1 y2 ...yq]T o vetor de sada, > 0 o passo de
aprendizado e p e q so respectivamente o nmero de entradas e sadas da rede.
Um exemplo simples da aplicao da regra de Hebb envolve um modelo conhecido como
Matriz Linear Associativa (Linear Associative Matrix, LAM, ou Linear Associator), introduzido por J.
A. Anderson, 1968. Neste modelo a sada uma funo linear das entradas, ou seja, Y = W X. A
Figura 8-8 ilustra tal rede, a qual usada para associar um conjunto de vetores de entrada X = [X1 X2
...XM] a um conjunto de vetores de sada desejados D = [D1.D2 ... DM], onde M o nmero de
associaes desejadas (ou seja, quando se apresenta Xi rede, deseja-se que Y = Di).

y
unidade
linear

W11

camada
de sada

Wqp
L

x1

camada
de entrada

x2

xp

Figura 8-8. Esquema de uma matriz linear associativa.


Na fase de aprendizado, se os vetores X formarem uma base ortonormal, isto , se eles forem
ortogonais entre si e tiverem comprimento unitrio, podemos inicializar a matriz de pesos W como
uma matriz nula e usar = 1. A correta associao entrada-sada ser ento obtida com apenas uma
apresentao de cada par entrada-sada desejada, pois, fazendo:

[ ],

W( k ) = W( k ) W( k 1) = D k X k

1 k M

( 8.35)

depois da apresentao dos M pares de vetores, a matriz de pesos W ser:

[ ]

W( M ) = D1 X1

[ ] +...+ D [X ]

+ D2 X2

M T

63

( 8.36)

Algumas limitaes importantes deste modelo so:


1) O nmero de associaes aprendidas (ou "armazenadas" na rede) menor ou igual ao nmero
de unidades de entrada (Mp);
2) Os vetores, ou padres, de entrada tm que ser ortogonais entre si;
3) No possvel aprender relaes entrada-sada no lineares.

8.2.2.2 O Perceptron de 1 camada e regra Delta


Em 1958, Frank Rosenblatt props o modelo Perceptron. O modelo do Perceptron de 1 camada
de pesos consiste de 1 camada de entrada binrias e 1 camada de sadas tambm binrias. No existem
camadas escondidas, portanto, existe apenas 1 camada de pesos modificveis. As unidades de sada
utilizam a funo bipolar (rel {-1,1} ou degrau unitrio {0,1}), como ilustrado na Figura 8-9.

T.L.U.

yq

bias 1

+1

camada
de sada

Wqp
L

x1

camada
de entrada

L
x2

xp

Figura 8-9. Perceptron de 1 camada.


Rosenblatt props o seguinte procedimento para o aprendizado supervisionado do Perceptron,
hoje conhecido como a regra do Perceptron:
Passo 1) Aplique um padro de entrada e calcule a sada Y;
Passo 2) Se a sada for correta, v ao passo 4;
Passo 3) Se a sada for incorreta e igual a -1,
adicione o valor da entrada ao peso correspondente, Wij = X j ;
Se for igual a +1, subtraia o valor da entrada do
peso correspondente, Wij = X j ;
Passo 4) Selecione outro padro de entrada do conjunto de treinamento e retorne ao passo 1.
O passo 2 pode ser expresso alternativamente como:
1
Wij = [ Di Yi ]X j
2

( 8.37)

Note que esta uma regra baseada no sinal de erro.


Rosenblatt, 1962, provou que, se uma soluo existe, isto , se existe uma matriz W que fornece
a classificao correta para o conjunto de padres de treinamento, ento o procedimento acima
encontrar tal soluo depois de nmero finito de iteraes. Esta prova conhecida hoje como o
Teorema de Convergncia do Perceptron. Portanto muito importante entender em que casos tal
soluo existe.
Considere apenas 1 unidade de sada do Perceptron de 1 camada. Tal unidade divide o espao
de entrada em 2 regies ou classes (uma regio onde a sada "alta", e outra regio onde a sada
baixa, 0 ou -1). Estas regies so separadas por um hiperplano (uma linha para o caso de 2 entradas e
1 plano para 3 entradas). O hiperplano a superfcie de deciso neste caso. A posio do hiperplano
determinada pelos pesos e bias recebidos pela unidade de sada. A equao do hiperplano da unidade i
:
p

WijX j + biasi = 0

( 8.38)

j=1

64

Minsky e Papert, 1969 analisaram a capacidade e limitaes do Perceptron de 1 camada e


mostraram que este pode resolver problemas que so linearmente separveis, isto , problemas onde,
para cada unidade de sada existe um hiperplano que divide o espao de entrada nas 2 duas classes
corretas. Infelizmente muitos problemas interessantes no so linearmente separveis. Alm disso,
Peretto, 1992 mostra que o nmero de funes lgicas linearmente separveis reduz a zero medida
que o nmero de entradas cresce.
A Figura 8-10 mostra as funes lgicas AND, OR e XOR para 2 entradas e 1 sada. Nesta
figura, podemos ver que as funes AND e OR so linearmente separveis. Entretanto a funo XOR
no linearmente separvel visto que no possvel posicionar 1 linha de tal forma a separar os
pontos que devem produzir sada 0 (ou -1) dos pontos que devem produzir sada 1.
X2 OR

X2

X2 AND

S.D.1

S.D.

S.D.
0

XOR

X
1

0
0

= 0 or -1

X
1
=1

0
0

1
S.D.2

X
1

Figura 8-10. Superfcies de Deciso (DS) para os casos OR, AND e XOR.
Outra maneira de ilustrar que o Perceptron de 1 camada no pode resolver o problema do XOR
escrever as 4 inequaes que devem ser satisfeitas pelos pesos e bias. Estas inequaes so:
1) 0 W1 + 0 W2 < bias bias > 0
2) 1 W1 + 0 W2 > bias W1 > bias
3) 0 W1 + 1 W2 > bias W2 > bias
4) 1 W1 + 1 W2 < bias W1 + W2 < bias
Estas inequaes no podem ser satisfeitas simultaneamente, pois os pesos W1 e W2 no podem
ser positivos e maiores que o bias, ao mesmo tempo em que sua soma seja menor que o bias.
importante notar que neste caso do Perceptron de 1 camada, no existe uma soluo para ser
encontrada, isto , trata-se de uma limitao devido ao problema de representao (onde estamos
interessados em saber se existe pelo menos 1 soluo) e no um problema de aprendizado (onde j
sabemos que existe pelo menos 1 soluo e se deseja encontrar 1 das solues).
Uma maneira de superar a limitao da separao linear usar RNAs com mais de 1 camada,
tais como o Perceptron de Mltiplas Camadas (Multi-Layer Perceptron - MLP), que introduz camadas
extras de unidades (as chamadas camadas escondidas) entre as camadas de unidades de entrada e
sada. possvel mostrar que isto equivalente a definir novas formas para as superfcies de deciso,
uma consequncia da combinao seqencial de vrios hiperplanos. O problema passa a ser ento
como determinar os pesos, ou seja, como treinar tal rede com vrias camadas.
Comparando a regra do Perceptron e a regra Delta, pode-se perceber que essas duas regras so
praticamente idnticas, com a nica diferena significativa sendo a omisso da funo de limiar
(threshold function) durante o treinamento no caso da regra Delta. Entretanto elas so baseadas em
princpios diferentes: a regra do Perceptron baseada no princpio de posicionar um hiperplano e a
regra Delta baseada no princpio de minimizar o erro quadrado mdio do erro de sada.
Outro ponto interessante que se a matriz linear associativa for treinada usando a regra Delta ao
invs da regra de Hebb, os vetores de entrada no precisam ser mais ortogonais entre si. Basta apenas
que sejam linearmente independentes. Entretanto, para p unidades de entrada a rede ainda poder
armazenar apenas at p associaes lineares, dado que no possvel ter mais que p vetores
linearmente independentes em um espao com dimenso p.

65

No caso particular onde:


1) suficientemente pequeno;
2) Todos os padres de treinamento so apresentados com a mesma probabilidade;
3) Existem p padres de entrada e p unidades de entrada; e,
4) Os padres de entrada formam um conjunto linearmente independente;
mediante o emprego da regra Delta, a matriz de pesos W ir convergir para a soluo tima W* onde:

W* = D1 D2 ... D p

] [X X
1

... X p

( 8.39)

8.2.2.3 ADALINE e a regra delta


Em 1960 Widrow e Hoff propuseram um neurnio denominado de ADALINE, inicialmente
uma abreviao para ADAptive LInear NEuron e mais tarde, ADAptive LINear Element. O
ADALINE uma TLU (Threshold Linear Unit = Unidade Linear de Limiar) com uma sada bipolar (1 e 1) e mltiplas entradas bipolares (-1 e 1).
Para treinar o ADALINE, Widrow e Hoff, 1960, propuseram a regra Delta, tambm conhecida
como regra de Widrow-Hoff ou algoritmo LMS (Least-Mean-Square). A regra delta tambm uma
regra baseada no sinal de erro e, portanto, uma regra de aprendizado supervisionado.
O princpio bsico da regra Delta alterar, em cada apresentao de um par entrada-sada
desejada do conjunto de treinamento, os pesos da rede na direo que diminui o valor do quadrado do
erro da sada, definido como:
q

1
[Di Yi ]2
2
i =1

E pat = E ipat =
i =1

( 8.40)

Em outras palavras, a regra Delta um procedimento de otimizao que usa a direo do


gradiente executado a cada iterao. Repetindo-se o procedimento acima em todos os pares do
conjunto de treinamento, o erro mdio Eav minimizado onde:
1 M pat
E
M pat =1
E, conseqentemente, temos:
E av =

Wij =
=

( 8.41)

E pat
Wij
E pat Yi
Yi Wij

= [Di Yi ]

( 8.42)

Yi
Wij

Porm a funo de ativao na sada no contnua, portanto no diferencivel e em princpio


a equao acima no poderia ser usada. Na realidade o que Widrow e Hoff propuseram foi que,
durante o treinamento, fosse usada uma funo de ativao linear Y=W X + bias. Tal modificao
acelera a aprendizagem porque os pesos so alterados mesmo quando a classificao da sada quase
correta, em contraste com a regra do Perceptron que altera os pesos somente quando ocorre um erro de
classificao grosseiro. Outra modificao importante o uso de entradas bipolares (-1 e 1) ao invs
de entradas binrias (0 e 1) onde quando a entrada 0, os pesos associados com tal entrada no
mudam. Usando uma entrada bipolar, os pesos so alterados mesmo quando a entrada est inativa (-1
neste caso).

66

O procedimento para treinamento do perceptron de 1 camada usando a regra Delta pode ser
esquematizado da seguinte maneira:
Passo 1: Inicialize a matriz de pesos W e o vetor bias como pequenos nmeros aleatrios;
Passo 2: Selecione do conjunto de treinamento um par de vetores entrada-sada desejada;
Passo 3: Calcule a sada da rede como: Y = W X + bias
Passo 4: Altera a matriz de pesos W e o vetor bias usando:
Wij = [ Di Yi ]X j
( 8.43)

biasi = [ Di Yi ]

( 8.44)

Passo 5) Se o vetor do erro de sada D-Y no for suficientemente pequeno para todos os vetores
de entrada do conjunto de treinamento, retornar ao Passo 2.
Depois do treinamento, a sada da rede Y calculada para um vetor de entrada X qualquer, em
dois passos:
Passo 1) Calcule o vetor net (de net input) como:
net = W X + bias

( 8.45)

Passo 2) Calcular a sada da rede:

+1 se net i 0
Yi =
-1 se net i < 0

( 8.46)

Esta fase conhecida como a fase de evocao (recall phase). O procedimento acima minimiza
a mdia da diferena entre a sada desejada e a net input de cada unidade de sada (o que Widrow e
Hoff chamam de erro medido). possvel mostrar que, indiretamente, tambm se est minimizando a
mdia do erro de sada (o que Widrow e Hoff chamam de erro do neurnio).
Em relao capacidade da rede, Widrow e Lehr, 1990 mostram que, em mdia, um ADALINE
com p entradas pode armazenar at 2p padres de entrada aleatrios com suas sadas desejadas
binrias tambm aleatrias. O valor 2p o limite superior alcanado apenas quando p.

8.2.2.4 O papel das unidades escondidas dos Perceptrons


A Figura 8-11 mostra, esquematicamente, um Perceptron de mltiplas camadas. necessrio
pelo menos 1 camada de unidades escondidas com uma funo de ativao no linear, pois 1 RNA
com unidades escondidas lineares equivalente a uma RNA sem camada escondida. As unidades de
sada podem ter funes de ativao linear ou no linear. tambm possvel a existncia de conexes
diretas entre as unidades de entrada e sada.
y
y
y
yq
3
1
2
L
L
L
L camada
de sada
L

NL

Unidade
= Linear

Unidade
= No Linear

NL

NL

NL

NL

camada
escondida

camada
de entrada

+1

+1

x
x2
1
3
Figura 8-11. Perceptron de Mltiplas Camadas.
x

67

xp

O uso de unidades escondidas torna possvel a recodificao dos padres de entrada, criando
uma representao diferente. Cada camada escondida executa a recodificao do seu sinal de entrada.
Alguns autores referem se a isto como as unidades escondidas criando representaes internas ou
extraindo os atributos escondidas dos dados fornecidos.
Dependendo do nmero de unidades escondidas, possvel encontrar uma nova representao
onde os vetores de sada da camada escondida so linearmente separveis apesar dos vetores de
entrada no serem.
Quando se tem apenas 1 camada escondida com um nmero pequeno de unidades, no
suficiente para que seja possvel esta recodificao dos vetores de entrada, uma possvel soluo
adicionar uma segunda camada de unidades escondidas. Assim, entre outras coisas, o projetista da rede
tem que decidir entre: 1) usar apenas 1 camada escondida com muitas unidades; ou 2) usar 2 ou mais
camadas escondidas com poucas unidades em cada camada. Normalmente no mais de 2 camadas
escondidas so usadas por 2 razes: 1) provavelmente o poder de representao de uma rede com at 2
camadas escondidas ser suficiente para resolver o problema; 2) as simulaes tem mostrado que para
a maioria dos algoritmos usados para treinamento de RNA disponveis atualmente, o tempo de
treinamento da rede aumenta rapidamente com o nmero de camadas escondidas.
O poder de um algoritmo que consegue adaptar os pesos de um Perceptron de mltiplas
camadas vem do fato que tal algoritmo poder encontrar automaticamente a recodificao interna
necessria para resolver o problema usando os exemplos do mapeamento entrada-sada desejado.
possvel interpretar tal recodificao interna, ou representao interna, como um conjunto de regras
(ou micro-regras como alguns autores preferem). Assim, usando-se uma analogia com expert systems,
tal algoritmo "extrai" as regras ou atributos de um conjunto de exemplos. Alguns autores referem-se a
isto como a propriedade de executar a extrao dos atributos do conjunto de dados.
As Figuras 8.12, 8.13 e 8.14 ilustram 3 diferentes solues para o problema do XOR usando
unidades tipo TLU nas camadas escondida e de sada. Observe que nestas solues a unidade de sada
pode tambm ser linear sem bias, isto , respectivamente y = x3+x4, y=x4-x3, e y = x1+x2-2x3. Nas
figuras 8.12 e 8.13 as duas unidades escondidas recodificam as variveis de entrada x1 e x2 como as
variveis x3 e x4. Os 4 pontos de entrada so mapeados para 3 pontos no espao [x3, x4]. Estes 3
pontos so linearmente separveis como as figuras ilustram. Observe que a soluo ilustrada na Figura
8-12 uma combinao das funes AND e OR.
y
1

-0.5
+1
-0.5
+1

x3

x1 x 2 x3 x4 y
0 0 0 0 0

x4

-0.5
1 -1 -1 1
L
L

x1

x2
x4

x 3+ x 4

S.D.

=0
=1

(x1,x 2)=(0,1)

0
0

(0,0) 0
ou (1,1)

Figura 8-12. Primeira soluo para o problema XOR.

68

(1,0)
x

y
-0.5

-1

x3

x1 x2 x3 x4 y
x4

-0.5

+1
-1.5

1 1
L

+1

x1

1
L

0 0

1
0

0 1
0 1

1 1

x2
x

x -x

4 3

(x1,x 2)=(0,1)
ou (1,0)

(1,1)

=0
=1

S.D.

(0,0)

x3

Figura 8-13. Segunda soluo para o problema XOR.


y

x3

-0.5
-1.5

=0

-2
1
1

+1

x1

x1 x 2 x 3

1
1
0

0
0

x2

=1

x3

(1,1,1)

(0,1,0)

x2
(0,0,0)
(1,0,0)

x1

Figura 8-14. Terceira soluo para o problema XOR.


A Figura 8-14 mostra que, se as conexes das unidades de entrada para as unidades de sada
forem usadas, o problema do XOR pode ser resolvido usando apenas 1 unidade escondida que
implementa a funo AND. Ento se considera o espao [x1, x2, x3], os 4 padres so linearmente
separveis pois possvel encontrar um plano que separa os pontos que devem produzir a sada "0"
dos pontos que devem produzir a sada "1". Se a unidade de sada for uma unidade TLU, a superfcie
de deciso no espao [x1, x2] muda de uma reta para uma elipse, como ilustrado na Figura 8-10.
Como a funo AND pode ser definida para variveis de entrada como o produto dessas
variveis. Da Figura 8-14 mostra que se fosse disponvel uma entrada extra para a rede com o valor de
x1*x2 ento apenas 1 camada de pesos seria necessria para resolver o problema e no haveria a
necessidade de unidades escondidas. Generalizando esta idia, quando uma unidade utiliza os produtos
de suas variveis de entrada, ela chamada de higher-order unit e a rede de higher-order ANN. Em
geral, higher-order units implementam a funo:
( 2)
yi = f (bias + w ij(1) x j + w ijk
x jx k
j

( 8.47)

( 3)
+ w ijkl
x j x k x l + ...
j

Da definio acima o Perceptron uma RNA de primeira ordem pois utiliza apenas o primeiro
termo da equao acima. Widrow chama tais unidades como unidades que possuem Polynomial
Discriminant Functions. O problema com higher-order ANN a exploso do nmero de pesos
medida que o nmero de entradas aumenta. Entretanto recentemente tais redes tem sido utilizadas com
sucesso para a classificao de imagens, independentemente da posio, rotao ou tamanho das
imagens.

69

8.2.3 O Algoritmo Back-Propagation


Foi visto anteriormente que a vantagem em usar as chamadas unidades escondidas que a RNA
pode ento implementar superfcies de deciso mais complexas, isto , o poder de representao da
rede bastante aumentado. A desvantagem em usar as unidades escondidas que o aprendizado fica
muito mais difcil, pois o mtodo de aprendizado tem que decidir que atributos devem ser extrados
dos dados de treinamento. Basicamente, do ponto de vista de otimizao, a dimenso do problema
tambm bastante aumentada, pois se requer a determinao de um nmero bem maior de pesos.
O algoritmo BP usa o mesmo princpio da regra Delta, isto , minimizar a soma dos quadrados
dos erros de sada, considerando-se sua mdia sobre o conjunto de treinamento, usando uma busca
baseada na direo do gradiente. Por esta razo o algoritmo BP tambm chamado de Regra Delta
Generalizada (Generalized Delta Rule). A modificao crucial foi substituir as unidades TLU por
unidades com funes de ativao contnuas e suaves. Isto possibilitou a aplicao de uma busca tipo
gradient-descent, mesmo nas unidades escondidas. A funo de ativao padro para as unidades
escondidas so as funes chamadas squashing ou S-shaped, tais como a funo sigmide,
1
1 + e x
e a funo tangente hiperblica,
sig(x) =

( 8.48)

tanh(x)=2*sig(x)-1

( 8.49)

Algumas vezes a classe geral de funes tipo squashing denominada de funes sigmoidais. A
funo sigmide cresce monotonicamente de 0 at 1, enquanto que a funo tangente hiperblica
cresce de -1 at 1. Observe que a funo sigmide pode ser visto como uma aproximao suave da
funo bipolar {0,1}, enquanto que a funo tangente hiperblica pode ser vista como uma
aproximao de uma funo bipolar {-1,1}, como no ADALINE de Widrow.
A dificuldade em treinar um Perceptron de mltiplas camadas que no existe um erro prdefinido para as unidades escondidas. Como o algoritmo BP uma regra de aprendizado
supervisionado, ns temos o valor que as unidades de sada devem seguir, mas no para as unidades
escondidas.
Seja uma RNA tipo feedforward com Ninp unidades de entrada e Nout unidades de sada.
Assumindo, apenas por uma questo de simplicidade na notao, uma RNA com apenas uma camada
escondida com Nhid unidades conforme ilustrado na Figura 8-11, tem-se:
Ninp +1

net H
k ( j) =

l =1

wH
k ( j, l) u k ( l)

H
yH
net H
k ( j) = f
k ( j)

( 8.50)

( 8.51)

onde 1 j Nhid,
net Sk (i) =

Nhid +1

j=1

w Sk (i, j) y H
k ( j)

ySk ( i) = f S net Sk (i)

( 8.52)

( 8.53)

onde 1 i Nout, e:
uk = vetor de entradas da RNA com dimenso (Ninp +1) x 1, sendo que se assume uk(Ninp + 1) = 1,
wH
k ( j, l) = peso entre a unidade escondida j e a unidade de entrada l,
net H
k ( j) = entrada total para a unidade escondida j,

yH
k ( j) = sada da unidade escondida j, sendo assumido:
yH
k ( Nhid + 1) = 1
fH (.) = funo de ativao usada nas unidades escondidas,

70

w Sk (i, j) = peso entre a unidade de sada i e a unidade escondida j,

net Sk (i) = entrada total para a unidade de sada i,


ySk ( i) = sada da unidade de sada i,
fS(.) = funo de ativao usada na unidade de sada i.
O algoritmo Back-Propagation prope que a variao dos pesos ocorra na direo de mximo
decrscimo do erro, apontado pelo sentido contrario ao gradiente Ek/wk :
Ek
( 8.54)
w k (i, j)
onde, Ek definido como o erro quadrtico calculado sobre as unidades de sada quando o padro uk
aplicado na entrada da RNA, ou seja:
w k (i, j) = w k +1(i, j) w k (i, j) =

1 Nout
E k = d Sk (i) ySk (i)
2 l =1

1 Nout
= eSk (i)
2 l =1

( 8.55)

onde o erro eSk para a unidade de sada i ( eSk (i) ) simplesmente definido como o escalar:
eSk (i) d Sk (i) ySk (i)

( 8.56)

onde, d Sk ( i) e ySk ( i) denotam respectivamente a sada desejada e a sada calculada para a unidade de
sada i, quando o padro uk aplicado na entrada da RNA.
H
O "pseudo-erro" e H
k para a unidade escondida j, denotado ( e k ( j) ) definido como o escalar:

H
k

(j)

e Sk (i)
e (i) H ,

y k (j)
i =1

Nout

S
k

1 j Nhid

( 8.57)

isto , o pseudo-erro de uma dada unidade escondida calculado como a soma dos erros de cada
unidade de sada multiplicado pela influncia da unidade escondida no erro desta unidade de sada.
Donde, pode-se escrever:

eSk (i)
yH
k ( j)

eSk (i) d ySk (i) netSk (i)


ySk (i) d net Sk (i) yH
k ( j)

( 8.58)

= fkS (i) w H
k (i, j)
onde, fkS (i) denota a derivada da funo f S ( z) em relao z calculada no ponto z = net Sk ( i) .
E assim tem-se que:
Nout

e Hk (j) = e Sk (i)f kS (i)w Hk (i, j),

( 8.59)

1 j Nhid

i =1

Portanto, pode-se calcular agora a variao do termo Ek em ( 8.27), em relao a wk atravs da


aplicao da regra da cadeia:
Ek
E k d y k (i) net k (i)
=
( 8.60)
w k ( i, j) y k (i) d net k (i) w k (i, j)
Se a unidade i uma unidade da camada de sada:
Ek
= eSk (i)
S
y k (i)

( 8.61)

Se a unidade i uma unidade da camada escondida:

Ek

yH
k (i)

Nout

E k d ySk ( l) net Sk (l)

S
H
d

(
)
(
)
(
)
y
l
net
l
y
i

l =1
k
k
k

( 8.62)

71

A expresso ( 8.62) pode ser reescrita como:

Ek

yH
k (i)

Nout

l =1

eSk (l) f kS (i) w Sk (l, i)

( 8.63)

onde, f S (z) denota a derivada de f S (z) , em relao varivel z, no ponto z = net Sk (i) .
Assim, para a unidade i da camada de sada:

wSk (i, j) = eSk (i) fkS(i) yH


k ( j)
onde 1 i Nout e 1 j Nhid+1.

( 8.64)

Para a unidade i da camada escondida:


Nout S
H
S
H
w H
( 8.65)
k ( i, j) = e k ( l) f k ( l) w k ( l, i) f k ( i) u k ( j)
l =1

onde, 1 i Nhid, 1 j Ninp+1. Utilizando a eq. ( 8.33) pode-se escrever ento que para as
unidades escondidas:
H
H
wH
k (i, j) = ek (i) fk (i) uk ( j)

onde,

eH
k

e f

( 8.66)

so definidas de forma anloga a

eSk

f kS ,

respectivamente.

Observe que na derivao do algoritmo BP, apenas as seguintes restries foram usadas:
1) A rede do tipo feedforward;
2) Todas as unidades possuem funes de ativao diferenciveis; e
3) A funo combinao (usada para calcular o valor da net input) foi definida como (em
notao vetorial): net=W out+ bias.
Os passos do algoritmo BP so:
Passo 1: Gerao do conjunto inicial de pesos sinpticos para todas as unidades da RNA;
Passo 2: Inicializao das matrizes de covarincia P e escalares r para cada unidade da RNA;
Passo 3: Escolha do vetor de entrada a ser treinado uk e da sada desejada dk associada a esta
entrada;
Passo 4: Clculo das sadas de todas as unidades da RNA, ou seja, do vetor:

[y

H
H
S
S
k (1) K y k ( Nhid ) y k (1) K y k ( Nout )

];

Passo 5: Clculo do erro eSk para cada unidade de sada;


Passo 6: Clculo do erro e H
k para cada unidade na camada escondida;
S
Passo 7: Clculo do vetor de sada hk para cada unidade da RNA ( h H
k e h k );

Passo 8: Atualizao dos pesos wk utilizando as expresses ( 8.63) ou ( 8.65) (dependendo de


se trata de w Sk ou w Hk );
Passo 9: Voltar ao passo 3 at o trmino do conjunto de padres usados para o treinamento;
Passo 10: Voltar ao passo 3 at o trmino do nmero mximo de iteraes permitido.
Alguns casos possveis so o uso de diferentes funes de ativao na camada escondida, uso de
vrias camadas escondidas e redes tipo feedforward, mas no tipo estritamente feedforward.
Uma vantagem de se usar as funes sigmide ou tangente hiperblica em uma rede de
mltiplas camadas que as suas derivadas podem ser calculadas simplesmente usando o valor da sada
da unidade sem a necessidade de clculos mais complicados, pois:

72

dsig( x)
= sig( x)[1 sig( x)]
dx

( 8.67)

d tanh( x )
= [1 + tanh( x )][1 tanh( x )]
dx

( 8.68)

e:

Tais propriedades so muito teis, pois reduzem o nmero total de clculos necessrios para
treinar a rede.
Em relao inicializao dos pesos, Rumelhart e McClelland, 1988, sugerem usar pequenos
nmeros aleatrios. Em relao taxa de aprendizado (), ressalta-se que, embora um valor grande
possa resultar em um aprendizado mais rpido, podero tambm ocorrer oscilaes. Uma maneira de
reduzir o risco de provocar oscilaes incluir um termo de momento, modificando a equao de
atualizao dos pesos para:
w ij (k + 1) = i out j + w ij (k )

( 8.69)
onde, o ndice k indica o nmero da apresentao e uma constante positiva com valor pequeno
selecionado pelo usurio. Tal modificao filtra as oscilaes de alta frequncia nas mudanas dos
pesos, pois tende a cancelar as mudanas que tem direes opostas e refora a direo predominante.
No caso da regra Delta, quando aplicada para treinar redes sem camadas escondidas e com
unidades de sada lineares, a superfcie de erro tem sempre a forma de uma taa, isto , uma superfcie
convexa e consequentemente os pontos de mnimo locais so tambm pontos de mnimo globais. Se a
taxa de aprendizado for suficientemente pequena, a regra Delta ir convergir para um destes pontos
de mnimo. No caso do Perceptron de mltiplas camadas a superfcie de erro pode ser muito mais
complexa com muitos pontos de mnimo locais. Como o algoritmo BP um procedimento tipo
gradient-descent, existe a possibilidade que o algoritmo fique preso em um destes pontos de mnimo
locais e, portanto, no convirja para a melhor soluo, o ponto de mnimo global.

8.3 Aplicaes de Redes Neurais Artificiais em Controle


As redes neurais podem ser utilizadas em uma vasta gama de aplicaes, podendo-se citar como
exemplos, processamento de sinais (cancelamento de rudos, reconhecimento de caracteres,
codificao e outros), controle de sistemas dinmicos (manipuladores mecnicos, processos
industriais, veculos auto-guiados e outros), sistemas de deciso (teraputica mdica, anlise financeira
e outras) e numerosas possibilidades descritas na literatura especializada.
Em particular, neste captulo, so enfatizadas as aplicaes de redes neurais artificiais
empregadas como controladores clssicos, gerando um sinal u(.) a ser enviado para o atuador, a partir
do sinal de erro e(.) entre a sada e a referncia.
Um dos problemas encontrados na utilizao de redes neurais no controle de sistemas o das
informaes necessrias para o treinamento. De fato, na Figura 8-15 nota-se que, de incio, os sinais
u(.) que originam a resposta y(.) adequada pode no ser conhecida. Neste caso, utilizando-se, por
exemplo, o algoritmo backpropagation juntamente com um perceptron multicamadas, necessita-se de
um mecanismo para geral ut(.) que poderia, ento, compor os pares (e(.), ut(.)) para treinamento da
rede.

Figura 8-15. Utilizao de uma rede neural como controlador.

73

Uma alternativa para gerar ut(.) utilizar um controlador convencional de forma que a rede
neural possa copiar as suas caractersticas. A Figura 8-16 ilustra uma forma de obter os pares
entrada-sada do controlador que so utilizados no treinamento da rede neural. Este controlador pode
ser, por exemplo, um operador humano.

Figura 8-16. A rede neural pode ser utilizada para adquirir as caractersticas de um controlador
convencional.
Outra alternativa, seria realizar uma identificao da planta a ser controlada. A identificao
poderia conduzir a modelos diretos como o obtida por um esquema do tipo Figura 8-17 ou inverso
como as provenientes de arranjos como o da Figura 8-18.

Figura 8-17. Identificao de modelo direto atravs da utilizao de redes neurais.

Figura 8-18. Identificao de modelo inverso atravs da utilizao de redes neurais.

74

Uma outra possibilidade, utilizar o conceito de aprendizado por reforo, onde a rede gera
aes u(.) aleatrias e o resultado, avaliado por um crtico, realimentado para ajuste dos pesos da
rede, em um mecanismo de punio ou recompensa (figura 13.5)

Figura 8-19. Esquema para utilizao de rede neural como controlador treinado por mecanismo de
punio ou recompensa.
Estas so as principais arquiteturas de redes neurais em aplicaes de controle de sistemas
dinmicos em malha fechada, porm possvel encontrar outras variantes.

75