Professional Documents
Culture Documents
Alexandre Romariz
24 de Agosto de 2007
Conteúdo
2
CONTEÚDO
4 Sistemas nebulosos 40
4.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.2 Lógica nebulosa . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.3 Regras nebulosas e possibilidade . . . . . . . . . . . . . . . . . . 42
4.4 Saída de uma regra nebulosa . . . . . . . . . . . . . . . . . . . . 43
4.5 Dificuldades e Aplicações Práticas . . . . . . . . . . . . . . . . . 44
4.6 Redes Neurais e Lógica Nebulosa . . . . . . . . . . . . . . . . . 45
5 Algoritmos Genéticos 47
5.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.2 Elementos Principais e Exemplo . . . . . . . . . . . . . . . . . . 48
5.3 Aplicações típicas . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5.3.1 Evoluindo tabelas de transição em autômatos celulares . . 50
5.3.2 Predição de valores . . . . . . . . . . . . . . . . . . . . . 52
5.3.3 Evoluindo Redes Neurais . . . . . . . . . . . . . . . . . . 52
5.4 Questões de implementação . . . . . . . . . . . . . . . . . . . . 53
5.4.1 Quando usar . . . . . . . . . . . . . . . . . . . . . . . . 53
5.4.2 Codificação . . . . . . . . . . . . . . . . . . . . . . . . . 54
5.4.3 Seleção . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Sistemas Inteligentes 3
Capítulo 1
4
1.2. INTRODUÇÃO ÀS REDES NEURAIS
Sistemas Inteligentes 5
CAPÍTULO 1. SISTEMAS INTELIGENTES E REDES NEURAIS
P a r t i d o
P a n c o
Figura 1.1: No reconhecimento de padrões, seres humanos não têm dificuldade
de relacionar estímulos iguais a significados diferentes, dependendo do contexto.
Na Figura, o “P” da palavra superior e o “B” da inferior são, na verdade, o mesmo
símbolo. Adaptado de McClelland et al.[1].
Alexandre Romariz 6
1.2. INTRODUÇÃO ÀS REDES NEURAIS
Sistemas Inteligentes 7
CAPÍTULO 1. SISTEMAS INTELIGENTES E REDES NEURAIS
1.2.3 Histórico
Como dissemos acima, os sistemas conexionistas têm uma história tão ou mais
antiga do que a dos computadores digitais. Já nos trabalhos de James (1890) en-
contramos os princípios fundamentais do que são hoje o modelo de neurônio e
o princípio da associação. Mas a primeira análise matemática das potencialida-
des de redes de elementos processadores inspirados em neurônios data da década
de 40. A demonstração (feita por McCulloch e Pitts) de que associações des-
tes neurônios artificiais podem implementar qualquer função lógica finita foi o
Alexandre Romariz 8
1.2. INTRODUÇÃO ÀS REDES NEURAIS
Sistemas Inteligentes 9
CAPÍTULO 1. SISTEMAS INTELIGENTES E REDES NEURAIS
assim, o sucesso prático das redes neurais artificiais lembra-nos da diferença entre
modelagem precisa de sistemas biológicos (ou teorias convincentes de comporta-
mento inteligente) e computação útil de inspiração neural.
Uma característica peculiar da organização do sistema nervoso é o seu caráter
distribuído e não-centralizado, bem diferente da arquitetura mais bem sucedida
dos computadores digitais. A tese de que o comportamento inteligente é resultado
de um processo coletivo, emergente de muitas unidades simples, conectadas de
maneira densa e plástica deu origem à idéia de redes neurais artificiais.
Por outro lado, uma característica fundamental de modelos abstratos de com-
putação é sua universalidade e independência de mecanismos de implementação.
O mesmo conjunto de funções computáveis pode ser gerado por modelos que apa-
rentam não ter semelhança alguma. Do ponto de vista teórico, há ainda debates
sobre serem os sistemas conexionistas uma porta para um novo nível de análise
da computação [2] ou apenas uma alternativa de implementar certas funções [3].
De um ponto de vista de engenharia, computação neural pode ser vista como útil
para uma classe específica de problemas, e seu valor é portanto independente de
sua eventual relevância em Inteligência Artificial.
Pesquisadores do campo de Redes Neurais gostariam de dispor de um modelo
simples que representasse todas as características principais do neurônio, já que
se acredita que o poder computacional destes sistemas emerge da complexidade
de suas interações. Uma visão qualitativa de propriedades neurais é apresentada a
seguir.
Neurônios são sistemas dinâmicos intrincados, e sua operação depende de uma
cadeia de fenômenos bio-eletroquímicos. Vamos nos concentrar em característi-
cas relativamente comuns de neurônios, ainda que praticamente qualquer afirma-
tiva nesse campo possa ser contestada com um contra-exemplo de uma célula
nervosa específica [4]. A Figura 1.2 apresenta esquematicamente um neurônio.
Nele, duas estruturas originam-se do corpo celular: a árvore dendrítica (que pode
ser vista como uma coleção de terminais de entrada) e um axônio, pelo qual o
sinal de saída propaga.
Neurônios mantêm uma diferença de potencial elétrico em sua membrana ex-
terna, em decorrência de permeabilidade seletiva de íons e bombas ativas, que car-
regam íons contra o gradiente de concentração. Uma perturbação deste potencial
de equilíbrio (provocada, por exemplo, por um estímulo externo em um neurô-
nio sensorial, ou pela influência da atividade de outro neurônio, como discutido
abaixo), propaga-se pela célula em um processo análogo à transmissão de um si-
nal elétrico em uma linha de transmissão. Este mecanismo passivo de condução
não é efetivo para distâncias grandes. Um mecanismo periódico de regeneração é
necessário, já que axônios podem se estender por uma grande fração do cérebro,
ou mesmo por todo o corpo [5].
Um processo ativo de regeneração existe [6]. A permeabilidade seletiva dos
Alexandre Romariz 10
1.2. INTRODUÇÃO ÀS REDES NEURAIS
Nodes of Ranvier
Axon
(a)
Myelin sheath
Axon
Cell Body hillock
Dendrites
(b)
Σ
W W
Figura 1.2: (a) Visão esquemática de um neurônio típico. Sinais elétricos múl-
tiplos se propagam pelos dendritos. Potenciais de ação são gerados inicialmente
no hillock do axônio e podem ser restaurados em cada seção não-mielinada (Nós
de Ranvier). Na visão detalhada, uma conexão sináptica é mostrada. Na maio-
ria dos casos, a interconexão entre neurônios é mediada por substâncias químicas
(neurotransmissores). (b) Uma abstração típica para fins computacionais.
canais iônicos é, ela mesma, controlada por tensão, criando um laço de realimen-
tação. Quando um segmento da célula é despolarizado além de um certo valor,
certos canais iônicos (principalmente canais de Na+ ) tornam-se cada vez mais
permeáveis, e assim o fluxo iônico leva o sistema a um desequilíbrio ainda maior
de potencial. Outros canais (principalmente de K+ ) de dinâmica mais lenta são
ativados mais tarde, e trazem o sistema de volta ao estado de repouso. O resultado
global é um pico bem definido na tensão da membrana, conhecido como potencial
de ação.
Este processo ativo de produção de pulsos geralmente ocorre primeiro no seg-
mento inicial do axônio (hillock), onde a concentração de canais controlados por
tensão é maior e o limiar para a geração do AP é menor [6]. Ainda que haja
evidência para propagação ativa e não-linear de APs na árvore dendrítica, é co-
mum modelar esta propagação como passiva, com o axônio realizando uma soma
e comparação com um limiar. APs permitem transmissão por distâncias longas, já
que eles podem ser regenerados em cada região não-mielinada do axônio (nós de
Ranvier) por um processo fundamentalmente igual ao da geração inicial de APs.
Sistemas Inteligentes 11
CAPÍTULO 1. SISTEMAS INTELIGENTES E REDES NEURAIS
Eles também têm papel essencial na comunicação entre neurônios, como veremos
abaixo.
Sinais de entrada fracos, que não atingem o limiar de geração de APs não se
propagam eficientemente. Quanto mais forte o sinal, mais cedo ocorre o AP. Uma
vez que a permeabilidade dos canais demora um pouco para se re-estabelecer, a
produção de um novo AP em um tempo curto é relativamente difícil. Estes fatos
sugerem que a relação entre intensidade do sinal de entrada e freqüência dos APs
é uma função crescente com limiar e saturação, uma característica comum a quase
todos os modelos de redes neurais artificiais.
O processo pelo qual os neurônios são acoplados (sinapse) é também um sis-
tema dinâmico complexo. Na maioria dos casos, não há contato elétrico. Um AP
inicia a liberação de substâncias químicas (neurotransmissores) que se ligam a sí-
tios específicos do neurônio receptor, abrindo canais iônicos, e despolarizando-o.
A eficiência desta conexão, que afeta a amplitude e o atraso do potencial pós-
sináptico, varia no espaço (conexões chegando a posições diferentes de um neurô-
nio podem ter efeitos diferentes) e em múltiplas escalas de tempo. Em particular,
um processo de aumento seletivo de eficiência sináptica no longo prazo, baseado
na correlação de atividades pré e pós-sinápticas (Potenciação de Longo Prazo) é
considerado fundamental para aprendizado e memória [7].
Dado este processo complexo, não fica claro nem ao menos quais variáveis
físicas realmente representam informação de alto nível. O potencial de ação cer-
tamente tem um papel relevante, uma vez que ele desempenha função fundamental
na comunicação neural. Uma abordagem bastante comum, denominada hipótese
do código freqüencial (ver Recce 1999 [8]) toma a freqüência de disparo como
variável principal. Esta, como mencionado acima, é uma função crescente, não-
linear, das entradas. A idéia de que a temporização dos pulsos carrega informação
(hipótese do código temporal) só ganhou atenção recentemente em estudos ori-
entados a computação. Esta idéia não necessariamente é oposta a anterior, já que
é concebível que ambos os códigos estejam sendo usados para tarefas diferentes
de transmissão da informação, ou que cada um é adequado para tarefas em escalas
temporais diferentes [9].
O desenvolvimento dos primeiros computadores eletrônicos trouxe um au-
mento no interesse de modelos neurais para computação [10, 11]. Eles baseiam-se
principalmente no código freqüencial e dão ênfase a dois aspectos da arquitetura
do sistema nervoso: soma adaptativa de entradas, e função de ativação geralmente
não-linear. Este modelo de neurônio artificial é descrito pelo mapa não-linear e
multidimensional f : RN → R
y = f wT (t)x(t)
(1.1)
onde y é a saída do neurônio, w um vetor real de ’pesos sinápticos’ e x um vetor de
Alexandre Romariz 12
1.2. INTRODUÇÃO ÀS REDES NEURAIS
Adaptive Connections
(b)
Delayed recurrent connections
Input connection (initial state)
Lateral inhibition
(c)
Sistemas Inteligentes 13
CAPÍTULO 1. SISTEMAS INTELIGENTES E REDES NEURAIS
Alexandre Romariz 14
Capítulo 2
15
CAPÍTULO 2. REDE DE HOPFIELD E REDE DE RETROPROPAGAÇÃO
w41
1 w21 2 3 4
w14
Alexandre Romariz 16
2.1. REDE DE HOPFIELD
• AA+ A = A
• A+ AA+ = A
Sistemas Inteligentes 17
CAPÍTULO 2. REDE DE HOPFIELD E REDE DE RETROPROPAGAÇÃO
Alexandre Romariz 18
2.2. A REDE DE RETROPROPAGAÇÃO
mesmo que ele tenha excitação global negativa (sj < 0), de acordo com
1
pk = (2.6)
1 + exp( −∆E
T
k
)
onde ∆Ek é o quanto aumenta a função energia da rede com a ativação do neurô-
nio k.
Sistemas Inteligentes 19
CAPÍTULO 2. REDE DE HOPFIELD E REDE DE RETROPROPAGAÇÃO
x1
x0
Entradas
Saida
x0
xN-1
onde
∆wi [t] = α(d − y)xi (2.8)
Alexandre Romariz 20
2.2. A REDE DE RETROPROPAGAÇÃO
x y x⊕y
0 0 0
0 1 1
1 0 1
1 1 0
próxima vez que a mesma entrada for apresentada, é de fato mais provável que se
tenha uma resposta correta.
A rede aprende a partir dos erros cometidos na classificação. Os exemplos
são apresentados várias vezes, até se obter a convergência do vetor de pesos, ou
até que o erro de classificação seja aceitável. A desvantagem do uso da função
limiar, é que o vetor de pesos pode oscilar quando os padrões não se apresentam
claramente separados (por causa de ruído, por exemplo).
Se a função de ativação for diferenciável (não é o caso da função de limiar),
uma regra semelhante a esta será encontrada a partir de considerações da teoria de
aproximação estocástica de funções. O sistema resultante será idêntico, a menos
de nomenclatura, do filtro adaptativo ADALINE (Adaptive Linear Element) de
Widrow, e a regra de aprendizado (neste caso chamada de adaptação ) é conhecida
como Regra Delta na teoria de Redes Neurais e como algoritmo LMS (Least Mean
Squares) em processamento digital de sinais. Isto revela uma clara relação entre
redes neurais e PDS, apesar de das diferenças de motivação em cada caso.
A capacidade de aprendizado a partir dos próprios erros, encontrada no Per-
ceptron, foi motivo de muito entusiasmo na época, visto que este é claramente um
dos objetivos da Inteligência Artificial. No entanto, a necessidade de separação
linear entre as classes é uma limitação muito grave. No livro Perceptrons, editado
em 1969, os pesquisadores Minsky e Papert (defensores da abordagem simbó-
lica de IA), deixam isto muito evidente com a função ou-exclusivo, mostrada na
Tabela 2.1
É fácil perceber que nenhuma reta no plano xy é capaz de separar os pontos
onde a função vale 0 dos pontos onde vale 1. Por isso, o Perceptron falhará na
tentativa de aprender este relacionamento extremamente simples entre duas variá-
veis.
Evidentemente, havia a esperança de se poder estender de alguma forma as
habilidades do Perceptron para problemas mais complexos. A idéia mais simples
seria utilizar uma estrutura multicamada (um conjunto de Perceptrons alimenta
um outro e assim sucessivamente). Para o caso do ou-exclusivo, é até possível
construir por inspeção uma rede como esta que resolve o problema adequada-
Sistemas Inteligentes 21
CAPÍTULO 2. REDE DE HOPFIELD E REDE DE RETROPROPAGAÇÃO
mente. Mas como treinar a rede para problemas do mundo real, cuja resposta
não sabemos a priori? Deparamo-nos aqui com um problema: como determinar o
comportamento destes Perceptrons intermediários, cuja saída não representa ne-
nhuma variável especificada pelos exemplos disponíveis? A extensão da regra
delta para várias camadas de processadores só foi conseguida em meados dos anos
80. Até então, houve praticamente o abandono das pesquisas em conexionismo.
Alexandre Romariz 22
2.2. A REDE DE RETROPROPAGAÇÃO
w111 y21
x1
w211
x2
y31
y3k
xn w2mk
w1nm y2m
Figura 2.4: Estrutura da rede “backpropagation” Neste exemplo, temos uma rede
com 2 camadas, com n entradas, m neurônios na camada escondida e k neurônios
na camada de saída.
Sistemas Inteligentes 23
CAPÍTULO 2. REDE DE HOPFIELD E REDE DE RETROPROPAGAÇÃO
Finalmente, encontramos
∂E
= (−dj − y3j )ġ ′ (s)|s=I3j ẏ2i (2.15)
∂w2ij
Observar que a única diferença para a regra de Rosenblatt é o termo g’(s), relativo
à derivada da função de ativação.
Para a camada escondida, começamos da mesma maneira:
∂E ∂E ∂I2j
= (2.17)
∂w1ij ∂I2j ∂w1ij
∂I2j
= xi (2.18)
∂w1ij
∂E ∂E ∂y2j ∂E ′
= = ġ (s)|s=I2j (2.19)
∂I2j ∂y2j ∂I2j ∂y2j
Portanto, chega-se a
X
∆w1ij = α g ′ (s)|I2j d3k w2jk (2.21)
k
onde
∂E
d3k = − = (dk − y3k )g ′ (s)|I3k (2.22)
∂I3k
observe que a quantidade d3k é calculada na atualização de pesos da camada
de saída e propagada “para trás” em direção às camadas anteriores, através das
mesmas conexões usadas para calcular a saída. Daí o nome retropropagação de
erro.
Alexandre Romariz 24
2.2. A REDE DE RETROPROPAGAÇÃO
Sistemas Inteligentes 25
CAPÍTULO 2. REDE DE HOPFIELD E REDE DE RETROPROPAGAÇÃO
Alexandre Romariz 26
2.2. A REDE DE RETROPROPAGAÇÃO
Sistemas Inteligentes 27
CAPÍTULO 2. REDE DE HOPFIELD E REDE DE RETROPROPAGAÇÃO
Dados de entrada Deve-se definir quais são as entradas e saídas da rede. Não é
necessário conhecer uma função analítica que relacione entradas e saídas,
mas algum conhecimento sobre o problema ajuda a retirar dados irrelevan-
tes da entrada. Um trabalho de pré-processamento adequado pode ser a
diferença entre sucesso e fracasso da aplicação. Em uma anãlise de ima-
gens, por exemplo, dificilmente o uso direto dos valores de intensidade de
todos os pixels, sem nenhum pré-processamento, levará a uma boa perfor-
mance. Medidas comuns de pré-processamento incluem a representação em
freqüência (Transformada de Fourier) e outras transformações para garantir
certas invariâncias (escala, translação, rotação, etc.)
Dados de saída A saída pode ser uma função contínua (por exemplo, se deseja-
mos estimar o valor de uma variável econômica futura, dado seus valores
recentes) ou valores discretos (por exemplo, a rede indica se há ou não há
uma anomalia no sistema, a partir da leitura dos parâmetros atuais). No
segundo caso, a escolha mais comum é termos um neurônio de saída para
cada classe (no exemplo dado, um neurônio para indicar “Sistema Normal”
e outro para indicar “Sistema Defeituoso”) .
Arquivos de Treinamento e Teste Os exemplos conhecidos devem ser divididos
em 2 ou 3 arquivos. O principal (de treinamento) contém a maior parte dos
dados, e será usado para o ajuste da rede. Uma parcela menor deverá ter
exemplos que não são usados para ajuste de pesos, mas apenas para verifi-
cação de desempenho. Este denomina-se “arquivo de teste”, embora alguns
autores façam uma distinção entre Validação (teste de desempenho durante
o treinamento, para escolher o momento de parada) e Teste (para uma es-
timativa final de desempenho, ao final do treinamento). Se pretendermos
usar treinamento estocástico ou on-line, é preciso garantir que o arquivo de
treinamento esteja “embaralhado”, isto é, que os exemplos semelhantes não
sejam linhas vizinhas do arquivo.
Topologia da Rede Definidos os dados de entrada, sabemos quantas variáveis de
entrada existem, e quantos neurônios na saída. Infelizmente, não sabemos
quantos neurônios serão usados na camada escondida, nem se é conveniente
termos mais de uma camada escondida. Isto é definido por tentativa e erro.
Treinamento Definidos todos os parâmetros, inicia-se um laço de treinamento.
Para cada exemplo, apresenta-se os valores de entrada à rede, e computa-se
a sua saída. Comparando-se a saída desejada com a obtida, temos os erros
da camada de saída. Aplicando-se o algoritmo backpropagation,calculam-
se as modificações em todos os pesos da rede1 . No treinamento on-line, esta
1
Lembre-se de que cada neurônio tem um valor de limiar ou viés (“bias”), que para todos os
Alexandre Romariz 28
2.2. A REDE DE RETROPROPAGAÇÃO
Onde entra o tempo? O PMC tem sido usado com sucesso na identificação e
controle de sistemas dinâmicos. No entanto, a variável tempo é nestes ca-
sos mapeada como outra qualquer (a dinâmica do sistema é estudada como
um mapeamento estático entre valores anteriores e futuros das variáveis de
estado). Parece natural esperar que o tempo tenha um papel mais importante
no aprendizado, e que se a própria rede se comportar como um sistema dinâ-
mico (como a rede de Hopfield) teremos melhores resultados. Imaginemos
efeitos é um peso ligado a uma entrada fictícia que vale sempre 1. Evidentemente, este parâmetro
também é ajustado.
Sistemas Inteligentes 29
CAPÍTULO 2. REDE DE HOPFIELD E REDE DE RETROPROPAGAÇÃO
Alexandre Romariz 30
2.2. A REDE DE RETROPROPAGAÇÃO
E quando não sabemos qual o erro? A hipótese de que sempre dispomos de exem-
plos de operação desejada relacionando explicitamente todas as entradas e
saídas é bastante forte. Os casos mais importantes de aprendizado (envol-
vendo controle motor, por exemplo) desenvolvem-se sobre um ambiente que
retorna muito pouca informação. O algoritmo de retropropagação de erro
está longe de modelar esta habilidade dos sistemas animais.
Sistemas Inteligentes 31
Capítulo 3
32
3.1. MELHORAMENTOS AO ALGORITMO DE GRADIENTE
deste valor ser fixo faz com que a influência do módulo do vetor gradiente sobre
a amplitude resultante de mudança contrarie o que intuitivamente se espera [4]: a
mudança de pesos será pequena nos trechos em que a superfície de erro é plana,
e maior onde há inclinaçoes abruptas. Intuitivamente, uma busca eficiente pelo
mínimo de erro deveria ter comportamento contrário, sendo "mais cuidadosa"nos
trechos movimentados da superfície de erro, e tomando passos maiores nas regiões
mais planas.
Algoritmos mais sofisticados do que os de gradiente simples já são conheci-
dos há muito no campo de otimização e matemática aplicada, e agora vêm sendo
aplicados em Redes Neurais. A seguir, descrevemos os princípios teóricos dos
algoritmos de gradiente conjugado.
Sistemas Inteligentes 33
CAPÍTULO 3. OUTRAS REDES NEURAIS E ALGORITMOS DE
TREINAMENTO
com propriedades interessantes para minimização.
o que nos dá
E ′′ (w)∆w + E ′ (w) = 0 (3.7)
Esta é a equação do chamado método de Newton para o problema de minimização
de funções.
A cada passo do algoritmo, o ponto crítico ∆w é determinado a partir da so-
lução destes sistema de equações que envolve a hessiana. Ao invés de buscar a
solução direta, os algoritmos de gradiente conjugado usam uma solução iterativa
por meio de conjuntos de vetores conjugados. Para funções quadráticas, estes
algoritmos chegam ao ponto crítico em um número de passo não superior à di-
mensão do espaço. De fato, vamos supor que dispomos de uma base de vetores
do espaço ℜn . O ponto crítico buscado pode ser então expresso como
n
X
∆w = αi pi (3.8)
i=1
p1 = −E ′ (w0 ) (3.9)
pj+1 = rj+1 + βj pj (3.10)
rj+1 = −E ′ (wj ) (3.11)
wj+1 = wj + αj pj (3.12)
(rj+1 − rj )T rj+1
βj = (3.13)
||rj ||2
onde w0 é o valor do conjunto de pesos antes deste passo de otimização, e wi o
valor após cada um dos n sub-passos. Ao final do processo, estaríamos em um
mínimo se E(W) realmente fosse quadrática. Como provavelmente não o é, o
algoritmo é repetido por mais n subpassos.
Alexandre Romariz 34
3.2. REDES DE FUNÇÕES DE BASE RADIAIS
Sistemas Inteligentes 35
CAPÍTULO 3. OUTRAS REDES NEURAIS E ALGORITMOS DE
TREINAMENTO
soma das ativações).
Os parâmetros da rede são os centros e aberturas (variância) das funções ra-
diais e os pesos W . Fixados os centros e as variâncias, otimizar os valores dos
pesos é um problema linear relativamente simples. A escolha dos centros pode
ser feito por um método não-supervisionado, como veremos na rede de Kohonen
(seção 3.4).
Uma característica importante das RBFN’s é a de que o valor de ativação da
camada gaussiana pode ser tomado como indicação de novidade. Baixos valores
em todos os neurônios da camada, por exemplo, podem indicar a presença de um
vetor de entrada x muito diferente daqueles com os quais a rede foi treinada. Este
tipo de informação não pode ser obtida em uma rede neural convencional.
As RBFN’s valorizam ainda o caráter local do treinamento (pontos distantes da
área de atuação de uma unidade não influenciam o ajuste de seus parâmetros). A
atualização de pesos em redes convencionais tem caráter global e costuma impedir
a identificação de estruturas locais. Já o treinamento local, além de permitir aná-
lise da representação resultante, faz com que novos aspectos do problema sejam
aprendidos sem prejuízo do que já se conhece. Esta característica incremental do
aprendizado não é obtida no Perceptron multicamadas apresentado anteriormente.
Alexandre Romariz 36
3.4. REDES DE KOHONEN E SISTEMAS AUTO-ORGANIZÁVEIS
Sistemas Inteligentes 37
CAPÍTULO 3. OUTRAS REDES NEURAIS E ALGORITMOS DE
TREINAMENTO
conceito de vizinhança). Todos os neurônios recebem o mesmo vetor de entrada.
A função de ativação dos neurônios é identidade, o que significa que eles simples-
mente efetuam o produto interno entre a entrada e seus vetores de interconexão.
Imaginemos que num instante inicial, os vetores de interconexão foram aleatoria-
mente fixados, todos com o mesmo módulo. Dada uma entrada, o neurônio cujo
vetor estiver mais alinhado (por pura sorte) terá melhor resposta e será o vence-
dor. Ao vencedor e uma certa vizinhança, será dada a oportunidade de aprender
(adaptar seu vetor de pesos), segundo:
Alexandre Romariz 38
3.4. REDES DE KOHONEN E SISTEMAS AUTO-ORGANIZÁVEIS
1
5 5 1
3
3
6 6
4 x
4
2
2
1
6
5 2
3
4
Sistemas Inteligentes 39
Capítulo 4
Sistemas nebulosos
4.1 Introdução
A lógica sempre foi estudada em Inteligência Artificial como um formalismo para
representação do conhecimento. A representação obtida é, no entanto, inflexí-
vel demais para lidar com conceitos do mundo real sem exigir um nível elevado
de simplificação. Na lógica clássica lidamos com um mundo de clareza, rigor e
precisão no qual conceitos reais não se encaixam com facilidade.
A habilidade humana para manipular conceitos imprecisos é vista como a prin-
cipal diferença entre inteligência humana e artificial. Consideremos um paradoxo
conhecido desde a grécia antiga: um homem com um fio de cabelo a mais do que
um homem calvo é também calvo? Aparentemente, o bom senso no diz que sim.
No entanto, esta afirmação em lógica clássica nos força a concluir que todos são
calvos. Afinal, se um homem com nenhum fio de cabelo é calvo por definição,
e aquele com 1 fio de cabelo a mais continua calvo, então são calvos os homens
com 2 fios de cabelo, 3 fios de cabelo, ou qualquer número finito de fios de cabelo.
Obviamente, o conceito de calvície não se descreve corretamente com um número
máximo de fios de cabelo.
A lógica nebulosa (“fuzzy logic”)1 .pretende formalizar a habilidade humana
de chegar a decisões razoáveis baseadas em dados imprecisos e qualitativos. Com
ela procura-se tratar a imprecisão e o caráter vago dos processos mentais humanos.
Um artigo de Zadeh (1965), que propõe uma extensão da teoria clássica de
conjuntos, costuma ser citado como ponto de partida das pesquisas sobre lógica
nebulosa, ainda que estas relacionem-se com as lógicas multivaloradas, cuja ori-
gem é bem mais antiga. Na apresentação que se segue, estudaremos conceitos
de maior emprego em aplicações práticas. No entanto, devemos ressaltar que este
1
Os termos “nebuloso” e “difuso” costumam ser usados para traduzir a palavra inglesa fuzzy.
Adotaremos aqui o termo nebuloso.
40
4.1. INTRODUÇÃO
Sistemas Inteligentes 41
CAPÍTULO 4. SISTEMAS NEBULOSOS
Alexandre Romariz 42
4.4. SAÍDA DE UMA REGRA NEBULOSA
associada a x.
A palavra "possível", em linguagem natural, tem basicamente dois significa-
dos: um físico ("factível") e um lógico ("compatível com a informação disponí-
vel"). Na definição apresentada acima, este conceito origina-se não de freqüências
de eventos (probabilidade) mas da tradução de restrições suaves sobre variáveis
em termos de conjuntos nebulosos. No entanto, probabilidade e possibilidade não
são totalmente independentes. Um evento de possibilidade reduzida não pode ter
elevada probabilidade e, no caso limite, um evento impossível tem necessaria-
mente probabilidade nula. Podemos então requerer que graus de probabilidade
sejam um limite inferior para o grau de possibilidade (princípio da consistência).
Eventos mutuamente excludentes podem ter simultaneamente graus elevados de
possibilidade. Assim, graus de possibilidade não são aditivos, ao contrário dos de
probabilidade. Vale notar que a noção de que graus subjetivos de certeza não são
aditivos é bastante antiga.
Estes conceitos intuitivos podem ser formalizados com a definição de medidas
e integrais nebulosas. Em uma medida nebulosa, o requerimento de aditividade
!
[ X
m Aj = m Aj (4.4)
j j
Sistemas Inteligentes 43
CAPÍTULO 4. SISTEMAS NEBULOSOS
PP ZE NP
x dx F
ZE
ZE
ZE
x dx
F
x=10 dx=-10
F=-3
onde zj são os valores possíveis para a saída do atuador, e C ′ (zj ) (mais exatamente
IC′ (zj ) é a pertinência do valor zi ao conjunto nebuloso C’ definido pela combi-
nação das regras aplicadas. A Figura 4.1 mostra um exemplo de determinação de
valores de saída a partir de regras nebulosas.
Alexandre Romariz 44
4.6. REDES NEURAIS E LÓGICA NEBULOSA
especialistas e operadores humanos para estes sistemas não é tarefa fácil, mesmo
com a flexibilidade apresentada por regras nebulosas. Esta dificuldade, aliada ao
fato de serem recentes os resultados teóricos quanto à estabilidade e robustez des-
tes controladores, faz com que alguns especialistas tenham restrições aos sistemas
nebulosos de controle, apesar dos bons resultados obtidos.
Encontram-se na literatura numerosas aplicações de controle nebuloso. Desta-
camos: controle de aquecedores, de sinais de trânsito, de tráfego aéreo, robótica,
controle automático de velocidade e da transmissão em automóveis, controle de
reatores nucleares. A empresa Hitachi Ltd. desenvolveu um sistema de operação
automática de trens baseado em lógica nebulosa, que vem sendo usado no metrô
de Sendai (Japão) desde 1987.
Uma aplicação interessante encontrada na literatura é o controle de direção de
veículo proposto por Sugeno & Nishida (1985). O problema é definir a direção a
ser seguida por um carro mantido a velocidade constante em um percurso sinuoso,
dadas a direção atual e as distâncias para os limites da pista. São empregadas re-
gras nebulosas com conseqüentes lineares, como visto anteriormente. A partição
do espaço de entrada (número de conjuntos nebulosos) foi arbitrariamente fixada.
Então, a partir de exemplos do percurso do carro quando guiado por operadores
humanos, foram identificados os parâmetros dos conseqüentes de 20 regras. Os
autores apresentam bons resultados, não apenas em simulações, mas no controle
efetivo de um pequeno modelo a baixa velocidade.
A pesquisa em sistemas nebulosos ainda encontra algumas restrições em cer-
tos meios. São várias as razões para este fato. Em primeiro lugar, a teoria dos
conjuntos é um campo extremamente fértil para polêmica em matemática, e é de
uma extensão desta teoria que partimos ao definir conjuntos nebulosos.
Em segundo lugar, ainda não está bem resolvida a relação entre conjuntos
nebulosos e teoria da probabilidade. Há uma enorme resistência por parte de
estatísticos em aceitar esta nova teoria como algo útil e não coberto pelo cálculo
de probabilidades.
As aplicações em controle, o ponto mais "vendido"de lógica nebulosa também
recebem críticas de membros da teoria de controle. Em parte, por haver uma
nuvem de marketing em torno do tema, em parte porque as pesquisas em controle
nebuloso raramente envolvem especialistas em controle.
De qualquer forma, os resultados da teoria de conjuntos nebulosos são nume-
rosos e significativos, e não há motivo para o preconceito que a área desperta.
Sistemas Inteligentes 45
CAPÍTULO 4. SISTEMAS NEBULOSOS
sante observar neste ponto as semelhanças e diferenças existentes entre esta teoria
e a de redes, e discutir que vantagens podemos esperar da combinação das duas.
Tanto redes neurais quanto lógica nebulosa se propõem a desenvolver computa-
cionalmente habilidades típicas do raciocínio humano, diminuir a diferença entre
inteligência humana e artificial, entender "o que torna as pessoas mais espertas
do que as máquinas". As abordagens são, no entanto, bem diferentes. A teoria
dos conjuntos nebulosos tornar formalismos tradicionais (conjuntos, relações, re-
gras, etc.) tolerantes à imprecisão e adequados ao processamento de informações
vagas. Já as redes neurais surgem fundamentalmente de considerações quanto à
arquitetura do processamento e quanto ao nível de análise dos processos cogniti-
vos. As abordagens diferentes não nos impedem de identificar vários pontos de
contato entre as teorias.
Fundamentalmente, em ambas está presente a idéia de substituir símbolos dis-
cretos por quantidades contínuas. Ambas enfatizam o processamento numérico
de informações. Os trabalhos que procuram analisar a estrutura das operações
internas das redes neurais indicam em vários momentos pontos de contato com
lógica nebulosa. O processamento em certos modelos de redes neurais pode ser
visto como uma busca por um estado no qual a obediência às restrições repre-
sentadas pelas conexões é a maior possível. Existe, portanto, algo semelhante ao
disparo simultâneo de muitas regras possivelmente conflituosas e com condições
parcialmente satisfeitas.
Até mesmo a sutil relação com probabilidade e estatística é um ponto comum
a redes neurais e lógica nebulosa. Vimos que a definição de conjuntos nebulosos
pode ser interpretada como uma distribuição de possibilidade, um conceito subje-
tivo de factibilidade ou compatibilidade com a informação disponível. Por outro
lado, Smolensky afirma que um sistema sub-simbólico realiza um conjunto de in-
ferências que, como um todo, produzem a saída que melhor se ajusta às condições
de entrada "num sentido definido pelo conhecimento estatístico armazenado em
suas conexões".
Surge então a expectativa de que os conceitos de lógica nebulosa constituam
uma ferramenta para a análise interna de redes neurais. Além disso, as redes neu-
rais podem contribuir muito na construção de sistemas nebulosos, principalmente
no ajuste automático de parâmetros. Técnicas de aprendizado podem substituir o
difícil processo de ajuste por tentativa.
Alexandre Romariz 46
Capítulo 5
Algoritmos Genéticos
5.1 Introdução
No Capítulo 1, vimos que o processamento de informação realizado em sistemas
biológicos serve de inspiração para uma nova arquitetura computacional, deno-
minada sistemas conexionistas ou redes neurais artificiais. O processo biológico
de evolução também serve de inspiração para uma classe relativamente nova de
algoritmos computacionais, denominados Algoritmos Genéticos (GAs). Faremos
uma exposição dos fundamentos desta técnica, acompanhando aquela feita por
Mitchell 1998 [16].
A identificação do mecanismos de seleção natural, e o seu uso para explicação
da variedade e complexidade da vida sobre a Terra é um dos maiores feitos do pen-
samento científico. Os elementos para que ocorra evolução envolvem uma seleção
de indivíduos que chegam à fase reprodutiva, hereditariedade de características
entre animais e suas proles, e pequenas alterações aleatórias dessas característi-
cas. A repetição deste processo seletivo por muitas gerações faz surgirem ajustes
específicos e complexos nos seres vivos, mesmo que o processo de variação seja
aleatório em sua origem.
Também na engenharia, a determinação de uma melhor solução para o pro-
blema é dificultada pela aparente inexistência de modelos para guiar numerica-
mente a avaliação de propostas. No caso de Redes Neurais, vimos como em mui-
tas situações sabemos apenas se o resultado final é bom ou ruim, mas não qual
variável interna do sistema produziu um erro, ou de quanto foi esse erro. Assim,
GAs são soluções atraentes quando o problema envolve uma variedade exponen-
cial de possíveis alternativas e nosso conhecimento sobre o assunto é incompleto
para definir um método quantitativo de análise. Um processo artificial de sele-
ção dentre uma população inicial de possíveis soluções, alteradas ligeiramente de
uma geração para a outra, pode produzir uma solução próxima à ótima, mesmo
47
CAPÍTULO 5. ALGORITMOS GENÉTICOS
Alexandre Romariz 48
5.2. ELEMENTOS PRINCIPAIS E EXEMPLO
1 0 0 1 1 0 1 0 1 0 1 0 1 1
1 0 0 1 0 1 1 0 1 0 1 1 0 1
Sistemas Inteligentes 49
CAPÍTULO 5. ALGORITMOS GENÉTICOS
5. Retorne ao passo 3.
Alexandre Romariz 50
5.3. APLICAÇÕES TÍPICAS
Sistemas Inteligentes 51
CAPÍTULO 5. ALGORITMOS GENÉTICOS
Alexandre Romariz 52
5.4. QUESTÕES DE IMPLEMENTAÇÃO
S → aSb,
S → ǫ.
onde S é um string inicial qualquer e ǫ é o string nulo gera todos os strings cons-
tituídos por um número igual de ’a’s à direita e ’b’s à esquerda.
De forma semelhante, uma regra de geração de grafos determina a substituição
de símbolos por matrizes de interconexão. Um GA pode evoluir regras para tais
substituições, e a arquitetura da rede fica determinada por um número menor de
parâmetros.
No caso de regras de aprendizado, foi mostrado que a regra delta (para a rede
perceptron) podia ser “redescoberta” por um GA. Não se espera que GAs evoluam
regras melhores do que a de retropropagação, mas talvez seja possível aplicá-lo
na determinação de bons algoritmos de treinamento não-supervisionado.
Espaço de soluções Deve ser amplo, ou então uma busca exaustiva por todas as
soluções deve ser tentada.
Função de erro Deve ser difícil de quantificar, ou deve definir uma superfície
rugosa (com múltiplos pontos extremos). Se não for o caso, algoritmos de
gradiente provavelmente serão melhores.
1
Chama-se uma época uma passagem por todos os exemplos do arquivo de treinamento super-
visionado.
Sistemas Inteligentes 53
CAPÍTULO 5. ALGORITMOS GENÉTICOS
5.4.2 Codificação
A codificação em strings binários é a mais comum, ainda que haja exemplos de
codificação em alfabetos finitos, ou com valores reais. A vantagem de cada uma
parece depender do problema. Estruturas em árvore podem gerar problemas com
o crescimento sem controle dos objetos sob análise.
Uma questão séria na escolha de uma codificação é conhecida como o pro-
blema da ligação (“linkage problem”): é interessante que características funcio-
nalmente relacionadas estejam representadas em locais próximos do cromossomo,
para diminuir a chance de que o “crossover” desvirtue por completo a solução. No
entanto, se estamos aplicando um GA, sabemos pouco sobre os parâmetros funci-
onalmente relacionados das soluções para determinar a ordem das representações!
Para atacar esta questão, alguns autores incluem um “endereço” na represen-
tação de cada sítio do cromossomo. Assim, a ordem dos cromossomos não afeta,
porque o significado é reordenado no momento da avaliação. Neste caso, um
operador inversão — troca da ordem de cromossomos —- mantém a mesma ade-
quação mas permite variar o efeito do operador “crossover”. Uma outra idéia é
a de incluir no cromossomo a posição em que “crossovers” podem ocorrer com
maior probabilidade, e deixar também a escolha destes locais especiais evoluir.
5.4.3 Seleção
Além do uso de uma probabilidade de reprodução proporcional à adequação do
cromossomo, são empregadas outras estratégias de seleção. O principal perigo da
regra simples é a de que soluções melhores nas primeiras gerações rapidamente
dominem a população, impedindo o algoritmo de avaliar soluções diferentes. Uma
forma de diminuir esta possibilidade é levar em conta não apenas a adequação da
solução, mas também a média e desvio-padrão de toda a população. Como de
início o desvio-padrão deve ser elevado na população, uma vantagem inicial em
termos absolutos não deve permitir que uma solução domine toda a população de
imediato.
Outra solução, é usar seleção por “ranking”. Nela, os melhores indivíduos têm
chances uniformes de se reproduzir, ao invés de ter uma probabilidade de repro-
dução proporcional à adequação. Finalmente, o algoritmo de seleção Boltzman
lembra o resfriamento simulado utilizado em redes de Hopfield: de início, a pres-
Alexandre Romariz 54
5.4. QUESTÕES DE IMPLEMENTAÇÃO
Sistemas Inteligentes 55
Bibliografia
[6] E. Kandal, J. Schwartz, and T. Jessel, eds., Essentials of Neural Science and
Behavior. Stamford, USA: Appleton & Lange, 1995.
[7] D. Hebb, The organization of behavior. New York, USA: Wiley, 1949.
56
BIBLIOGRAFIA
[14] J. Hopfield, “Neural networks and physical systems with emergent collective
computational abilities,” Proceedings of the National Academy of Science
USA, vol. 79, pp. 2554–2558, 1982.
Sistemas Inteligentes 57