Buscar

redes neurais

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 32 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 32 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 32 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Projeto de Iniciac¸a˜o Cient´ıfica
T´ıtulo do Projeto: Aprendizado em Fuzzy Lattice Neural Networks
com Aplicac¸o˜es em Reconhecimento de Padro˜es
Bolsista: ALISSON NEGRISOLI DE GODOI
Orientador: PROF. DR. PETER SUSSNER
1
Suma´rio
1 Conceitos gerais de Redes Neurais 4
1.1 Introduc¸a˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Modelo ba´sico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Topologia de uma Rede Neural . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4 Me´todos de Aprendizado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4.1 Aprendizado Supervisionado . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4.2 Aprendizado Na˜o Supervisionado . . . . . . . . . . . . . . . . . . . . . . . 8
1.5 Generalizando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.6 Aplicac¸o˜es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2 Reconhecimento de Padro˜es 9
2.1 Introduc¸a˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2 Classificac¸a˜o de Padro˜es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3 Classificac¸a˜o e Regressa˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.4 Teorema de Bayes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3 Modelos de Redes Neurais 12
3.1 Perceptron de Mu´ltiplas Camadas . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.1.1 Histo´ria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.1.2 Topologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.1.3 Propagac¸a˜o dos Sinais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.1.4 Retropropagac¸a˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.1.5 Correc¸a˜o dos pesos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.1.6 Func¸a˜o de Ativac¸a˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.1.7 Superf´ıcie de Decisa˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2 Teoria da Ressonaˆncia Adaptativa - ART . . . . . . . . . . . . . . . . . . . . . . 16
3.2.1 Histo´ria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2.2 Topologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2.3 Selec¸a˜o do conjunto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2.4 Atualizac¸a˜o dos pesos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2.5 Exemplo usando ART1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4 Conceitos Ba´sicos de Teorias Matema´ticas Relevantes 20
4.1 Conjuntos Nebulosos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.2 Reticulados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.3 O Produto de Reticulados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.4 O Reticulado Completo PL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.5 Reticulados Nebulosos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.6 Func¸o˜es Geradoras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5 Fuzzy Lattice Neural Network 24
5.1 Introduc¸a˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5.2 Arquitetura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5.3 Famı´lias de hipercaixas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5.4 Expansa˜o maximal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5.5 Algoritmo de aprendizado na˜o-supervisionado . . . . . . . . . . . . . . . . . . . . 26
5.6 Algoritmo de aprendizado supervisionado . . . . . . . . . . . . . . . . . . . . . . 28
5.7 Func¸a˜o de ordem parcial nebulosa em VL . . . . . . . . . . . . . . . . . . . . . . 29
2
Resumo
Este relato´rio de iniciac¸a˜o cient´ıfica tratara´ dos principais assuntos e to´picos estudados pelo
aluno, nos primeiros meses, para se chegar ao entendimento e desenvolvimento de uma rede
FLNN. Para alcanc¸ar esse objetivo, sera´ necessa´rio o domı´nio de dois assuntos ba´sicos: Redes
Neurais Artificiais (modelos MLP e ART), Teoria Fuzzy ou Nebulosa e Reticulados.
Este relato´rio inicial contera´ cinco meses e meio de planejamento, cujo conteu´do referente
apresenta desde a definic¸a˜o da arquitetura de uma rede neural artificial ate´ conceitos e teorias
matema´ticas necessa´rias para a implementac¸a˜o da rede neural FLNN. Os conceitos matema´ticos
aqui estudados sera˜o de bastante importaˆncia para preparar o terreno para inserir o conceito
da rede neural FLNN, que sera´ analisada, implementada e estudada no restante do per´ıodo do
projeto.
3
1 Conceitos gerais de Redes Neurais
1.1 Introduc¸a˜o
Este to´pico busca esclarecer o principal assunto que sera´ tratado nesse relato´rio, para poder con-
cretizar o objetivo dos estudos que e´ analisar as redes neurais artificiais baseadas em aprendizado
e em reconhecimento de padro˜es usando a lo´gica nebulosa. Para isso e´ necessa´rio introduzir o
que sa˜o as redes neurais.
Com o advento da computac¸a˜o, o interesse do homem em utilizar as ma´quinas para fazerem
atividades cada vez mais parecidas com a habilidade humana e´ grande. As ma´quinas de hoje
fazem atividades relativamente simples comparadas com as habilidades humanas. Isso se deve
ao fato do ce´rebro humano ser bem mais complexo que uma ma´quina de von Neumann, ou mais
conhecida como a arquitetura tradicional de um computador, composta basicamente por uma
unidade aritme´tica e memo´ria. Em 1943, McCulloch e W. Pitts [10], motivados a entenderem
como o ce´rebro humano funciona, comec¸aram a tentar explicar logicamente o funcionamento
desse complexo mecanismo, e proporam o primeiro modelo de rede neural. Depois disso, Hebb
propoˆs um me´todo de aprendizado para uma rede neural [6].
O grande interesse na a´rea de tentar explicar o ce´rebro, ou como as redes de nosso ce´rebro
funcionam, ganhou grande esforc¸o principalmente nos u´ltimos anos devido a` grande evoluc¸a˜o
tecnolo´gica. Novas te´cnicas foram colocadas em pra´tica, principalmente com a facilidade de
se adquirir ma´quinas capacitadas a fazerem processamento paralelo, podendo assim virtualizar
algumas propriedades do ce´rebro humano antes impossibilidades pelo processamento sequ¨encial
das informac¸o˜es.
Mas nada disso seria poss´ıvel sem o estudo biolo´gico do ce´rebro humano. E´ atrave´s deste
que pode-se estimar como um neuroˆnio funciona, e enta˜o modela´-lo no computador. Modelado
um neuroˆnio, pode-se reproduzir va´rios, e enta˜o interconecta´-los para trabalharem em conjunto.
Os neuroˆnios e as suas conexo˜es sa˜o chamados de redes neurais.
1.2 Modelo ba´sico
As Redes Neurais Artificiais foram desenvolvidas baseadas nas biolo´gicas, logo elas teˆm uma
certa semelhanc¸a, das quais as principais podem ser citadas abaixo:
1. O processamento da informac¸a˜o ocorre em elementos simples chamados neuroˆnios.
2. Os sinais sa˜o transmitidos nos neuroˆnios atrave´s de conexo˜es conhecidas como sinapses.
3. Cada uma dessas conexo˜es tem um certo peso, que de certa forma indica a facilidade do
sinal passar por essa ligac¸a˜o.
4. Cada neuroˆnio tem va´rios sinais de entrada, e aplica uma func¸a˜o nesses sinais para gerar
um sinal de sa´ıda.
Para entender melhor uma rede neural artificial, comec¸a-se explicando como seu elemento
ba´sico funciona. Estuda-se primeiramente o funcionamento ba´sico de um neuroˆnio biolo´gico, e
enta˜o por analogia pode-se chegar ao neuroˆnio artificial. Um neuroˆnio biolo´gico e´ composto por
basicamente 3 partes: dentritos, nu´cleo e axioma(descritos na Figura 1). Os dentritos recebem
sinais de outros neuroˆnios ou de sensores, que capturam est´ımulos externos e os traduzem para
sinais: pulsos ele´tricos transmitidos na sinapse atrave´s de um processo qu´ımico. A sinapse pode
ser definida como uma ligac¸a˜o entre neuroˆnios, capacitando esses de transmitir o sinal entre o
axioma do emissor e os dentritos dos receptores.
4
Figura 1: Modelo de um neuroˆnio biolo´gico, enfatizando a sinapse.
Esses sinais recebidos pelo neuroˆnio biolo´gico sa˜o tratados pelo nu´cleo. Quando esses sinais
sa˜o suficientemente grandes, o nu´cleo dispara um sinal de ativac¸a˜o que sera´ transmitido atrave´s
de seu axioma, que consecutivamente estara´ fazendo o processo de sinapse com outros neuroˆnios.
Juntando a morfologia de um neuroˆnio biolo´gico com suas propriedades, foi poss´ıvel estipular
um modelo para um neuroˆnio artificial [10]. Os sinais de entrada no neuroˆnio, as func¸o˜es e o
sinal de sa´ıda podem ser interpretados de muitas maneiras. Uma maneira e´ considerar os pesos
um fator para cada sinal e uma func¸a˜o de ativac¸a˜o que recebe o somato´rio dos sinais. Logo, um
exemplo de um neuroˆnio artificial e´ dado na Figura 2.
Figura 2: Modelo de um Neuroˆnio Artificial
Aqui xi, significa o i-e´simo sinal de entrada do neuroˆnio, e wi o i-e´simo peso de cada sinal. O
peso b significa bias e pode ser definido como um peso atrave´s do qual passa um sinal constante
sempre com valor 1. O bias na˜o e´ influenciado pelos valores de entrada xi. De forma ana´loga,
pode-se dizer que o sinal que passa por esse peso e´ o x0 com valor sempre constante 1. Esse peso
e´ muito u´til para aumentar o grau de liberdade da rede e com isso melhorar a adaptac¸a˜o da rede
neural ao conhecimento a ela apresentado. Ele pode ser traduzido como uma sinapse unita´ria
ou uma sinapse constante, mas sera´ referenciado nesse relato´rio apenas como bias. Fazendo a
soma ponderada dos sinais de entrada pelos pesos, tem-se o valor total do sinal que entra nesse
neuroˆnio:
5
s =
n∑
i=1
wixi + b (1)
ou de forma ana´loga,
s =
n∑
i=0
wixi onde x0 = 1 e w0 = b (2)
O neuroˆnio dispara o sinal de sa´ıda utilizando esses sinais como paraˆmetros em uma func¸a˜o
de ativac¸a˜o. Essa func¸a˜o pode ser dada por muitas func¸o˜es matema´ticas, e tem como paraˆmetro
a soma ponderada dos sinais de entrada:
y = f(s) (3)
Logo, um neuroˆnio artificial disparara´ um sinal com valor f dependendo dos sinais de entrada
s. Algumas func¸o˜es retornam valores bina´rios {0, 1}, outros bipolares, {−1, 1}, e algumas func¸o˜es
podem retornar algum valor no intervalo completo entre [−1, 1]. Isso dependera´ do tipo de rede
que esta´ implementando.
1.3 Topologia de uma Rede Neural
Uma rede neural e´ composta por neuroˆnios, os quais agrupados formam camadas. O arranjo
dos neuroˆnios em camadas e´ chamado de arquitetura da rede [4, 16]. As camadas podem ser
classificadas em: camada de entrada, por onde os sinais entram na rede; camadas escondidas
na qual os sinais sa˜o esquematicamente processados; camada de sa´ıda que produz a resposta da
rede.
Uma camada de neuroˆnios e´ conectada a pro´xima camada atrave´s de uma camada de pesos.
Quando cita-se uma rede de n camadas, significa que ela tem n camadas de pesos ajusta´veis. E´
importante ressaltar que existem dois me´todos equivalentes de contar as camadas de uma rede
neural, e que varia com a especificac¸a˜o do autor. Alguns autores contam atrave´s das unidades
das camadas, mas a camada de entrada na˜o e´ contada. Outros contam pelas camadas de pesos.
A direc¸a˜o das ligac¸o˜es tambe´m pode ser usada para classificar uma rede neural. Redes do tipo
alimentadas diretamente ou alimentadas adiante (“feedforward”) sa˜o aquelas cujas conexo˜es se
direcionam a` camada de sa´ıda, e do tipo recorrentes ou retroalimentadas (“recurrent”) sa˜o aquelas
que possuem conexo˜es entre neuroˆnios da mesma camada ou cujas conexo˜es sa˜o direcionadas
para a camada de entrada.
A funcionalidade de uma rede neural e´ representar uma func¸a˜o, que dependera´ da topologia
descrita acima e tambe´m do me´todo de aprendizado, que sera´ descrito mais adiante. Essa func¸a˜o
tera´ como paraˆmetro os valores de entrada e os pesos da rede, onde x e´ o vetor das entradas, e
w e´ o vetor dos pesos. Enta˜o pode-se descrever a func¸a˜o de uma rede neural F : Rn 7→ Rm:
y = Fw(x) (4)
onde y e´ equivalente ao vetor (y1, . . . , yj , . . . , ym)T , comm significando o nu´mero de neuroˆnios
da u´ltima camada.
Uma rede neural de uma camada de pesos pode ser chamada de “single-layer net”. Essa rede
possui um conjunto de pesos que va˜o dos neuroˆnios de entrada ate´ os da sa´ıda, ou seja, que na˜o
conte´m camadas escondidas. Segue, na Figura 3, um exemplo de rede com uma u´nica camada,
que esta´ definida por possuir apenas um conjunto de pesos, representados pela matriz Wm×n.
Uma rede neural de va´rias camadas e´ uma rede com muitas camadas de pesos e conte´m
camadas de neuroˆnios escondidas. Logo, a camada de entrada se conecta a` camada escondida,
6
que por sua vez pode se conectar a va´rias camadas escondidas ate´ por fim se conectar a` camada
de sa´ıda. Na Figura 3 segue um exemplo identificando uma rede de duas camadas, definida pelas
matrizes de pesos W2×3 e Z3×2
(a) (b)
Figura 3: (a) Uma rede alimentada adiante de uma camada e (b) Uma rede alimentada adiante
de duas camadas
1.4 Me´todos de Aprendizado
A rede deve ser capaz de aprender e com isso melhorar seu desempenho e cada vez mais chegar
mais pro´ximo da resposta correta. Pode-se dizer que uma rede neural aprende ajustando seus
pesos para produzir respostas coerentes. Existem muitos algoritmos de aprendizado, e cada um
se difere do outro pela maneira de que os pesos sa˜o ajustados.
Esses pesos podem mudar, ou serem corrigidos, de va´rias maneiras. Para isso pode-se definir
a apresentac¸a˜o de todos os k dados a` rede para essa processar e produzir os k resultados como
e´poca. Existem dois me´todos para corrigir os pesos da rede neural:
• Modo Sequ¨encial - a correc¸a˜o dos pesos acontece a cada apresentac¸a˜o a` rede de um padra˜o.
A correc¸a˜o e´ feita na pro´pria iterac¸a˜o, ou seja, para cada entrada k apresentada, a rede faz
a correc¸a˜o de seus pesos. Assim, em cada ciclo ocorrem k correc¸o˜es. Esse me´todo tambe´m
e´ conhecido como modo on-line, modo padra˜o ou modo estoca´stico.
• Modo por Lote - apenas uma correc¸a˜o e´ feita por ciclo, ou seja, a correc¸a˜o ocorre somente
apo´s a apresentac¸a˜o do conjunto x1, . . . , xk. Todos os dados de treinamento sa˜o apresen-
tados a` rede, e a partir destes dados, as correc¸o˜es dos pesos sa˜o feitas. Por isso e´ chamado
de modo por lote, pois a rede e´ corrigida considerando um acu´mulo de erros.
1.4.1 Aprendizado Supervisionado
O me´todo de aprendizado supervisionado depende de um conjunto de dados de treinamento, que
conte´m o valor de entrada e o valor de sa´ıda esperado. Atrave´s desse valor alvo, a rede pode
aprender com os seus erros e ajustar os pesos das conexo˜es para diminuir a distaˆncia entre a
resposta da rede neural e do valor alvo. A entrada foi definida anteriormente como sendo um
7
vetor x que conte´m os dados, e define-se agora o vetor t que conte´m o valor alvo, ou seja, o
valor que a rede deveria produzir para a entrada x. Logo, as k entradas podem ser descritas
como (xξ, tξ) onde ξ = 1, . . . , k. Define-se tambe´m a sa´ıda da rede neural yξ para uma entrada
de treinamento xξ.
Com o valor alvo, o erro da rede para a respectiva entrada pode ser calculado, pois a rede
possui o valor que produziu e o valor que deveria ter produzido. Os pesos podem ser corrigidos
para, na pro´xima vez que essa entrada for dada, a rede produzir um resultado mais pro´ximo o
poss´ıvel do valor alvo. Como a sa´ıda da rede depende basicamente de seus pesos, a func¸a˜o de
erro tambe´m depende dos pesos:Eξ = Eξ(w) (5)
E o erro total produzido em uma e´poca de treinamento pode ser expresso pela equac¸a˜o:
E(w) =
k∑
ξ=1
Eξ(w) (6)
Os pesos da rede podem ser corrigidos a partir destes erros, que dependera´ da implementac¸a˜o
espec´ıfica da rede. Quando a rede na˜o obtiver mais erros, ou quando os erros forem relativa-
mente pequenos, a rede neural pode parar de aprender, e ser utilizada, ou diretamente em uma
aplicac¸a˜o, ou como parte de um sistema inteligente.
Um exemplo e´ a rede neural Perceptron, para a qual fornece-se como entrada os dados
de treinamento e o valor de sa´ıda esperado, ou valor alvo, com o qual o valor produzido sera´
comparado. Caso haja discordaˆncia entre o valor de sa´ıda e o esperado, a rede deve aprender
ate´ produzir um resultado igual ou pro´ximo ao esperado.
1.4.2 Aprendizado Na˜o Supervisionado
Ao contra´rio do aprendizado supervisionado, que apresenta a entrada e o valor alvo da rede
neural, apenas a entrada e´ dada. A rede e´ capaz de agrupar uma certa quantidade de dados
semelhantes em regio˜es de memo´rias.
Os pesos enta˜o servem para calcular em que espe´cie de memo´ria o modelo apresentado se
localiza. Sabendo a localizac¸a˜o dessa memo´ria, pode-se agrupar a nova entrada nessa memo´ria,
ou criar uma nova para armazenar o novo tipo de entrada. O funcionamento desse modelo vai
depender muito da implementac¸a˜o, mas normalmente um fator de inclusa˜o, ou policiamento
e´ empregado nesses tipo de rede, para garantir o grau de semelhanc¸a entre as entradas e as
memo´rias.
Logo, a rede neural na˜o sabe de fato o significado do dado armazenado, mas sabe distinguir
entre os va´rios tipos de entrada atrave´s de seus padro˜es. Um exemplo dessa rede e´ a ART, que
recebe apenas uma entrada para ser tratada, sem varia´veis alvo.
1.5 Generalizando
A capacidade de tratar situac¸o˜es na˜o previstas e´ uma das caracter´ısticas que distingue uma
rede neural de um programa simples de computador. No projeto de um programa simples, e´
necessa´rio prever todos os poss´ıveis caminhos e um tratamento espec´ıfico para cada dado. Ja´
uma rede neural e´ capaz de aprender, e com isso tratar dados que ainda na˜o foram apresentados
a` ela no momento do treinamento, e produzir uma resposta condizente a` sua estrutura, ou seja,
ela tem a capacidade de generalizar dados ainda na˜o apresentados a` ela.
O ce´rebro trabalha de forma diferente de um programa normal de computador. O ce´rebro
e´ capaz de tomar uma decisa˜o nunca tomada antes atrave´s do conhecimento acumulado em
8
suas ligac¸o˜es sina´pticas. Por isso, e´ importante, no momento do treinamento da rede neural,
apresentar a estrutura do modelo para a qual esta esta´ sendo adaptada. E´ importante tambe´m
na˜o viciar a rede, ou seja, na˜o fazeˆ-la decorar uma estrutura, e sim aprendeˆ-la. Caso contra´rio,
a rede na˜o sera´ capaz de generalizar, e respondera´ de forma errada a` certos dados de entrada
na˜o apresentados no momento do treinamento. Praticamente treˆs condic¸o˜es sa˜o necessa´rias para
manter o aspecto de generalizac¸a˜o [8].
1. A primeira delas e´ a necessidade do dado de entrada ter a informac¸a˜o necessa´ria do objeto
que pretende-se apresentar a` rede, para enta˜o a rede ser capaz de modelar uma func¸a˜o que
gere a sa´ıda com uma certa precisa˜o.
2. A segunda necessidade e´ que a func¸a˜o final da rede neural F seja suave, ou seja, pequenas
variac¸o˜es na entrada da rede gerem pequenas variac¸o˜es na sa´ıda. Uma func¸a˜o suave implica
em uma continuidade na func¸a˜o de derivada.
3. E a terceira condic¸a˜o e´ a necessidade do conjunto de dados de aprendizado cobrir de
maneira satisfato´ria a estrutura do modelo que pretende-se treinar. Esse fato e´ importante
para evitar extrapolac¸o˜es, ou seja, evitar a necessidade de abranger modelos fora do espac¸o
de treinamento.
1.6 Aplicac¸o˜es
As rede neurais sa˜o utilizadas em muitas a´reas atualmente, mas as principais sa˜o:Automac¸a˜o e
Controle, Predic¸a˜o, Otimizac¸a˜o, Processamento de Imagens e Reconhecimento de Padro˜es.
2 Reconhecimento de Padro˜es
2.1 Introduc¸a˜o
As redes neurais, hoje em dia, sa˜o muito utilizadas em reconhecimento de padro˜es, como por
exemplo, reconhecimento de caracteres em uma imagem, e de pessoas pela imagem de suas
digitais ou mapeamento da ı´ris e da voz. Ou seja, deseja-se separar os objetos em conjuntos
ou classes, por algum grau de semelhanc¸a, mas que nem sempre sa˜o exatamente iguais, ou pela
pro´pria natureza do objeto, ou pela inconsisteˆncia do objeto. As redes neurais sa˜o um me´todo
de implementar o reconhecimento de padro˜es de forma mais simplificada.
2.2 Classificac¸a˜o de Padro˜es
O principal objetivo da classificac¸a˜o de padro˜es e´ agrupar objetos com propriedades semelhantes
em classes [2]. Para melhor introduzir o aspecto de reconhecimento de padro˜es, analisa-se
primeiramente um exemplo, o reconhecimento de caracteres.
Supondo um problema de reconhecimento de padra˜o, entre reconhecer entre o caracter ‘a’ e
‘b’. Para tal, precisa-se de imagens digitais de ambos os caracteres. As imagens hipote´ticas na
Figura 4, de largura 7 pixels e de altura 9 pixels, aumentadas 5 vezes, podem ser usadas como
um exemplo:
Essas imagens, do tipo PBM (“Portable Bit Map”), tem seus pontos definidos como valores
de branco ou preto (0 ou 1), com um total de 63 pontos (7x9). Logo, classificar as letras acima
como sendo ‘a’ ou ‘b’, significa analisar ponto a ponto seus pixels e colocar num conjunto correto.
Para facilitar a ana´lise, defini-se o i-e´simo ponto da imagem como xi, e a imagem como um
simples vetor x = (x1, · · · , xd)T , onde d e´ o nu´mero total de pontos. O problema em questa˜o e´
desenvolver um algoritmo que classifique as imagens de forma correta, agrupando-as em classes
9
(a) Caracteres ‘a’ digitalizados de va´rias fontes.
(b) Caracteres ‘b’ digitalizados de va´rias fontes
Figura 4: Figuras (a) e (b) para representar digitalizac¸a˜o de figuras.
do tipo Ck, k = 1, 2. No exemplo acima, C1 seria a imagem ‘a’ e C2 seria a imagem ‘b’,
considerando a variac¸a˜o da fonte ou da escrita.
Um problema, que deve ser evitado, e´ o tamanho dos dados de entrada nos programas,
resultando em grande quantidade de tempo de processamento. Uma soluc¸a˜o para resolver isso
e´ um pre´-processamento dos dados, que consiste em modela´-los, considerando as varia´veis de
entrada, de forma a torna´-los menores e de fa´cil compreensa˜o pelo sistema. Por exemplo, pode-
se dividir a altura e a largura da imagem e denotar esta raza˜o por uma varia´vel x˜, e utiliza´-la
como entrada.
Figura 5: Frequ¨eˆncia das classes de caracteres C1 e C2 pela varia´vel x˜.
Considerando a Figura 5 e o pre´-processamento x˜, pode-se dizer que a classe C1, correspon-
dente ao caracter ‘a’, tera´ valores menores do que a classe C2 para a varia´vel x˜, pois em pra´tica,
apesar dos caracteres ‘a’ e ‘b’ possu´ırem essa largura, o caracter ‘b’ possui altura maior do que
‘a’. Como pode-se observar, as vezes ocorrera´ sobreposic¸a˜o das classes, ou seja, existem certos
valores da varia´vel x˜ que podem pertencer tanto para a classe C1 tanto como para a classe C2.
2.3 Classificac¸a˜o e Regressa˜o
Como citado acima, o problema de classificac¸a˜o e´ o me´todo de associar um objeto a uma certa
classe. Considere um sistema de classificac¸a˜o para C1 e C2, com um vetor de sa´ıda denotado por
y = (y1, y2)T que represente a pertineˆncia a uma dessas classes. Esse vetor seria (1, 0)T caso a
entrada fosse identificada como sendo o caracter ‘a’, e (0, 1)T caso a entrada fosse identificada
como um caracter ‘b’. E´ claro que poderia-se obter (0, 0)T caso a entrada na˜o fosse identificada
nem por ‘a’ e nem por ‘b’, ou (1, 1)T caso a entrada se parec¸a com ‘a’ e ‘b’.
10
O processo de classificac¸a˜o consiste basicamente em associar novas entradas com um nu´mero
discreto de classes ou categorias. Contudo, existemoutros problemas de reconhecimento, referi-
dos como regressa˜o, no qual as varia´veis de sa´ıda representam valores de varia´veis cont´ınuas [2].
Essas varia´veis cont´ınuas sa˜o utilizadas para ajustes e coleta de dados, como por exemplo, a
predic¸a˜o de valores de caˆmbio para uma certa moeda, dado como entrada valores recentes do
caˆmbio das moedas.
Ambos os problemas, de classificac¸a˜o e de regressa˜o, sa˜o casos particulares de func¸o˜es de
aproximac¸a˜o. Para problemas de regressa˜o, ha´ uma func¸a˜o de regressa˜o que deseja-se aproximar.
Para casos de classificac¸a˜o, existe uma func¸a˜o de classificac¸a˜o que deseja-se aproximar para
produzir resultados coerentes, ou seja, deseja-se que essa func¸a˜o classifique os elementos que sa˜o
passados como paraˆmetros para essa. Logo, tanto a classificac¸a˜o como a regressa˜o sa˜o casos de
reconhecimento de padro˜es.
2.4 Teorema de Bayes
O principal objetivo no momento de classificar um novo caracter e´ evitar ou diminuir ao ma´ximo a
probabilidade de classifica´-lo em um grupo diferente do desejado. E´ sempre poss´ıvel um caracter
ser classificado em mais de um grupo, logo e´ interessante introduzir o conceito da probabilidade
priorita´ria P (Ck), que e´ a probabilidade de um objeto pertencer a` um grupo Ck. Por exemplo,
se o caracter ‘a’ esta´ contido na classe C1 nove vezes a mais que o caracter ‘b’, enta˜o P (C1) = 0.9
e P (C2) = 0.1.
Agora suponha que seja obtido o valor da varia´vel x˜ para uma imagem. Essa varia´vel faz
parte de um conjunto discreto de varia´veis X l. Enta˜o a probabilidade conjunta P (Ck, X l) pode
ser definida como sendo a probabilidade de uma imagem ter o valor caracter´ıstico X l e pertencer
a classe Ck.
Com isso, pode-se introduzir a probabilidade condicional P (X l|Ck), que seria a probabilidade
de X l ocorrer dado Ck. Para melhor visualizar essas classificac¸o˜es e´ interessante analisar os casos
por uma matriz, onde as linhas representam as classes, e as colunas representam os valores de
X l.[2]
Figura 6: Modelo de matriz para classes por propriedades discretas
De acordo com a Figura 6, a probabilidade priorita´ria P (Ck) seria a frac¸a˜o das imagens
que esta˜o na linha Ck. A probabilidade conjunta P (Ck, X l) significaria a probabilidade de uma
imagem ser classificada em uma ce´lula dessa matriz, e o seu valor pode ser dado pela frac¸a˜o
das imagens contidas nessa ce´lula. A probabilidade condicional P (X l|Ck) poderia ser dada pela
frac¸a˜o das imagens na linha Ck que pertencem a ce´lula X l, ou seja, pega-se o total de imagens
de uma classe Ck, e a frac¸a˜o dessas imagens que pertencem a propiedade X l e´ a probabilidade
condicional.
A probabilidade conjunta, ou seja, a probabilidade de uma imagem ser classificada em uma
11
ce´lula e´ a mesma probabilidade de uma imagem de uma determinada classe pertencer a` uma
propriedade X l e ao mesmo tempo de pertencer a sua classe:
P (Ck, X l) = P (X l|Ck)P (Ck) (7)
Analisando a matriz, pode se verificar que a expressa˜o acima equivale a expressa˜o:
P (Ck, X l) = P (Ck|X l)P (X l) (8)
onde P (Ck|X l) e´ a probabilidade que uma frac¸a˜o da coluna X l pertencer a classe Ck e P (X l) e´
a frac¸a˜o das imagens que pertencem a propriedade X l. Logo, usando as Equac¸o˜es 7 e 8, pode-se
escrever:
P (Ck|X l) = P (X
l|Ck)P (Ck)
P (X l)
(9)
Vale lembrar que essa func¸a˜o e´ utilizada para casos discretos. Pode-se generaliza´-la para
casos cont´ınuos utilizando a equac¸a˜o de densidade probabil´ıstica. A func¸a˜o definida na Equac¸a˜o
9 nos da´ a probabilidade de um objeto X l pertencer a classe Ck. A ma´ classificac¸a˜o de um
objeto x para Ck pode ser evitada seguindo a regra:
P (Ck|x) > P (Cj |x) para todo j 6= k (10)
Caso ocorra uma igualdade na Equac¸a˜o 10, pode-se classificar a varia´vel x para qualquer
classe. Por exemplo:
• Se P (C1|x) > P (C2|x), x e´ classificado em C1;
• Se P (C1|x) < P (C2|x), x e´ classificado em C2;
• Se P (C1|x) = P (C2|x), tanto faz classificar x em C1 ou em C2.
A importaˆncia do Teorema de Bayes e´ dada por ele expressar as probabilidades em termos
que sa˜o muito mais fa´ceis de serem obtidos e calculados.
3 Modelos de Redes Neurais
3.1 Perceptron de Mu´ltiplas Camadas
3.1.1 Histo´ria
Da de´cada de 60, o Perceptron foi descrito por Rosenblatt (em 1962) [14], e por Minsky e Papert
[11]. O modelo original era composto por 2 camadas. A entrada era denominada de sensorial.
A camada intermedia´ria era denominada associativa e tinha seus pesos fixos randomicamente.
A de sa´ıda era denominada de resposta. O modelo a ser tratado aqui sera´ o Perceptron de
mu´ltiplas camadas.
3.1.2 Topologia
O Perceptron de Mu´ltiplas camadas (MLP), como o pro´prio nome diz, e´ composto por diversas
camadas. Seu me´todo de aprendizagem e´ o supervisionado, no qual a rede neural aprende
ajustando os pesos proporcionalmente em func¸a˜o do erro produzido por essa. Mas o problema
e´ que o erro produzido apenas e´ computado em relac¸a˜o a u´ltima camada e na˜o nas camadas
intermedia´rias, ou seja, quem produz o resultado final e´ a u´ltima camada, e esse resultado final
vai ser comparado com o resultado desejado. Sabe-se que na˜o e´ apenas a ultima camada que e´
12
Figura 7: Sinais de propagac¸a˜o e retropropagac¸a˜o em uma rede multilayer Perceptron.
responsa´vel por esses erros, logo tem-se que repassar uma parte desses erros para as camadas
intermedia´rias. O fluxo dos dados pode ser descrito pela Figura 7:
O fluxo para produzir a resposta na rede e´ chamado de propagac¸a˜o. No treinamento da rede,
depois de obtida a resposta, deve-se retroceder o erro para computar os ajustes necessa´rios nos
pesos de cada neuroˆnio das camadas intermedia´rias, te´cnica chamada de retropropagac¸a˜o.
3.1.3 Propagac¸a˜o dos Sinais
Como ja´ discutido no primeiro cap´ıtulo, a propagac¸a˜o dos dados e´ feita de neuroˆnio para
neuroˆnio. O Perceptron e´ uma rede alimentada adiante, ou seja, o fluxo dos dados ocorre
em uma u´nica direc¸a˜o.
Os sinais de entrada sa˜o repassados para as camadas intermedia´rias. Cada neuroˆnio da
camada intermedia´ria vai produzir um sinal de sa´ıda, levando em considerac¸a˜o a soma ponderada
dos sinais e a func¸a˜o de ativac¸a˜o de cada neuroˆnio. Esses sinais sa˜o transmitidos ate´ chegarem
na camada de sa´ıda, produzindo assim uma resposta para o objeto apresentado.
3.1.4 Retropropagac¸a˜o
No momento do treinamento, e´ necessa´rio ajustar os pesos da rede para essa produzir o resultado
correto, ou pelo menos pro´ximo deste. Uma maneira de ajustar os pesos e´ se basear no erro
produzido por essa rede. O erro da u´ltima camada e´ de fato fa´cil de ser calculado, pois a rede
possui o sinal produzido e o alvo, mas as camadas escondidas na˜o possuem o valor alvo para
os seus neuroˆnios, logo a te´cnica de retropropagac¸a˜o e´ usada para se obter o erro de todos os
neuroˆnios da rede neural. Sua ide´ia fundamental e´ responsabilizar as camadas escondidas por
uma certa frac¸a˜o do erro produzido na u´ltima camada.
Logo, o objetivo de reajustar os pesos e´ aproximar o sinal de sa´ıda da u´ltima camada yξ da
resposta desejada tξ. Mas note que o objetivo de uma rede neural e´ produzir a resposta correta,
e na˜o apenas fazer um neuroˆnio espec´ıfico produzir a sa´ıda correta. Enta˜o pode-se definir a
fo´rmula do erro gerado pelo padra˜o xξ.
Eξ(w) =
1
2
n(L)∑
j=0
(yξj − tξj)2 (11)
onde j indica um neuroˆnio, e n(L) o nu´mero de neuroˆnios da u´ltima camada. Com o objetivo
de minimizar os erros de todas as entradas, usa-se a me´dia dos erros das entradas ao inve´s de
13
um erro relacionado a uma entrada Eξ. A fo´rmula abaixo e´ usada no modo de treinamento por
lote.
E(w) =
k∑
ξ=1
Eξ(w) (12)
Para minimizar o erro da rede neural deve-se minimizar ao ma´ximo a func¸a˜o Eξ(w) (ou
E(w)) (de modo que Eξ(w) ≥ Eξ(w∗), onde w∗ significa o conjunto de pesos ideais). Logo,tem-se um problema de otimizac¸a˜o.
Uma condic¸a˜o necessa´ria para assegurar que w∗ seja o mı´nimo global de Eξ e´ ∇E(w∗) sendo
igual a zero. Para efetuar a otimizac¸a˜o, deve-se convergir os pesos w, a cada iterac¸a˜o, em direc¸a˜o
aos pesos ideias w∗. A te´cnica utilizada para corrigir os pesos e´ da descida mais ı´ngreme, que
consiste em corrigir os pesos na direc¸a˜o oposta ao vetor gradiente ∇E(w). Lembre-se que o
vetor gradiente indica a direc¸a˜o de crescimento da fo´rmula de erro em relac¸a˜o aos pesos. Como
o objetivo e´ procurar na˜o o crescimento, mas sim a minimizac¸a˜o do erro, deve-se corrigir os
pesos na direc¸a˜o oposta do crescimento.
O fator de crescimento dos erros pode ser descrito com o conceito de gradiente local, que
aponta para as modificac¸o˜es necessa´rias nos pesos sina´pticos de cada neuroˆnio, facilitando, desta
maneira, os ca´lculos. O gradiente local normalmente e´ definido como δ, que depende da soma
ponderada dos sinais de entrada para cada neuroˆnio [5].
Pode-se calcular o gradiente local da u´ltima camada, e esse mesmo processo pode ser usado
nas camadas anteriores. Obtido o gradiente local, pode-se obter o erro para cada neuroˆnio, e
enta˜o ajustar os pesos de acordo com esse erro. Logo, para alcanc¸ar esse objetivo, segue-se os
passos abaixo:
1. Apresente um padra˜o do tipo (xξ, tξ).
2. Calcule os parametros δ - derivada parcial de E em relac¸a˜o a func¸a˜o s - para todos os
neuroˆnios da camada de sa´ıda.
3. Use os parametros δ da camada posterior para calcular os parametros δ da camada anterior.
4. Ajuste os pesos considerando os valores dos gradientes locais.
3.1.5 Correc¸a˜o dos pesos
A correc¸a˜o dos pesos, de acordo com a regra delta, definida por Widrow e Hoff em 1960, utiliza
a te´cnica de otimizac¸a˜o da descida mais ı´ngreme, ajustando o peso na direc¸a˜o contra´ria de
crescimento do erro:
w(t+ 1) = w(t) + ∆w(t),
onde ∆wji = −η∇Eξ(w) (13)
onde t e´ definido como a t-e´sima iterac¸a˜o, e logo w(t) significa o vetor de pesos w na t-e´sima
iterac¸a˜o. Observa-se que Eξ pode ser substitu´ıdo por apenas E caso o treinamento seja por lote.
η e´ definido como parametro de taxa aprendizagem, ou passo. Quando esse valor e´ pequeno, a
rede requer muitas e´pocas para convergir para o mı´nimo local, e um valor grande pode fazer
com que a rede nunca chegue ao mı´nimo local. O sinal negativo indica a descida contra o vetor
gradiente.
14
3.1.6 Func¸a˜o de Ativac¸a˜o
O ca´lculo de δ requer o conhecimento da derivada da func¸a˜o de ativac¸a˜o f . Para isso e´ necessa´rio
que essa func¸a˜o seja cont´ınua. Ale´m disso, para que uma rede de mu´ltiplas camadas funcione
bem, e´ necessa´rio que essas func¸o˜es de ativac¸o˜es sejam na˜o lineares, caso contra´rio, a rede
exercitara´ o papel de uma rede de uma u´nica camada. Exemplo de duas func¸o˜es na˜o lineares
sigmo´ides muito usadas sa˜o descritas abaixo.
Func¸a˜o Log´ıstica. Func¸a˜o na˜o linear sigmo´ide muito usada na arquitetura de redes neurais,
exemplificada na Figura 8.
f(s) =
1
1 + e−as
para a > 0 (14)
Func¸a˜o tangente hiperbo´lica. Uma outra func¸a˜o na˜o linear sigmo´ide e´ a func¸a˜o tangente
hiperbo´lica. Ela tambe´m pode ser usada, pois por ser cont´ınua, sua derivada existe e seu
gradiente local pode ser definido. Ela esta´ exemplificada na Figura 8.
h(s) = a tanh(bs), (a, b) > 0 (15)
A Figura 8 representa as duas func¸o˜es:
Figura 8: Func¸a˜o log´ıstica f(s) esta´ com o valor da varia´vel a = 1 e a func¸a˜o tangente hiperbo´lica
h(s) esta´ com o valor de (a, b) = (1, 1).
3.1.7 Superf´ıcie de Decisa˜o
Superf´ıcie de Decisa˜o e´ um subconjunto em Rn que indica o limite de uma regia˜o de classifi-
cac¸a˜o, ou seja, o limite que separa duas ou mais classes. Uma rede neural com o aprendizado
supervisionado tem o objetivo de modelar essas superf´ıcies de deciso˜es para os padro˜es de en-
tradas apresentados. Exemplifica-se com duas classes C0 e C1, cujos dados esta˜o representados
na figura 9, retirados de [13] e comentado por [15], onde ‘+’ significa que o ponto (x, y) pertence
a C1, e o sinal de ‘o’ significa que o ponto pertence a C0.
A superf´ıcie de decisa˜o depende da func¸a˜o definida na Equac¸a˜o 4. O vetor de sa´ıda y =
(y1, ..., ym)t da MLP tem valores cont´ınuos. Portanto, aplicam-se valores limiares a`s entradas do
15
Figura 9: A figura a esquerda representa os pontos apresentados a rede, e a direita com a
superf´ıcie de decisa˜o apo´s 20.000 e´pocas de treinamento com uma MLP usando a te´cnica de
Descida de Gradiente Reforc¸ada [13], com 92% de classificac¸a˜o correta.
vetor y para associa´-lo a uma determinada classe Cj . No exemplo citado acima, tem-se apenas
uma sa´ıda y e um valor limiar de decisa˜o 0, 5. O padra˜o x pertencera´ a C1 se y ≥ 0, 5, e a C0
caso contra´rio. A superf´ıcie de decisa˜o e´ trac¸ada no limite de decisa˜o, ou seja, para todos os
padro˜es x em que y = 0, 5.
3.2 Teoria da Ressonaˆncia Adaptativa - ART
3.2.1 Histo´ria
A Teoria da Ressonaˆncia Adaptativa foi desenvolvida por Stephen Grossberg em 1976, e mel-
horada posteriormente por Carpenter e Grossberg [3]. Suas caracter´ısticas principais se devem
a capacidade de formar conjuntos em um aprendizado na˜o supervisionado. Esses conjuntos
agrupam objetos semelhantes apresentados a rede neural, e sa˜o representados por um exemplar.
3.2.2 Topologia
A estrutura fundamental da rede e´ composta por treˆs camadas. A primeira camada, de entrada,
se conecta a segunda camada, que representa uma regia˜o de memo´ria curta para armazenar,
temporariamente, o exemplar de cada conjunto com o objetivo de compara´-lo contra o objeto
de entrada. O exemplar fica armazenado permanentemente na terceira camada, a de memo´ria
longa. O modelo de uma rede ART pode ser definido pela Figura 10.
Na Figura 10, o vetor x representa o objeto de entrada, i indica o ı´ndice que vai de 1, . . . , n,
e o vetor y representa os conjuntos cujos ı´ndices variam de 1, . . . ,m. Os pesos bottom-up sera˜o
utilizados para calcular a pontuac¸a˜o para cada conjunto, ou seja, dado um objeto de entrada,
os pesos calculam a pontuac¸a˜o deste para todos os conjuntos, e quanto maior essa pontuac¸a˜o,
melhor a chance do objeto pertencer ao conjunto. Os pesos top-down guardam o representante de
cada conjunto. Os pesos “bottom-up” e “top-down” sera˜o referidos por bij e tij respectivamente,
onde os ı´ndices representam os pesos que conectam o neuroˆnio de entrada i ao neuroˆnio de sa´ıda
j.
3.2.3 Selec¸a˜o do conjunto
A ide´ia ba´sica do algoritmo consiste em agrupar os objetos em conjuntos, e determinar um
exemplar para cada conjunto. No primeiro algoritmo desenvolvido (ART-1), era pressuposto
16
Figura 10: Modelo da rede Neural ART desenvolvida por Grossberg, conhecida como Neural
Net.
que os objetos armazenados e apresentados estariam na forma 0,1. Quando a rede inicializa o
treinamento, ela atribui para todos os objetos exemplares o valor 1, determinados pelos pesos
de conexa˜o. Um valor de vigilaˆncia tambe´m deve ser determinado antes do algoritmo comec¸ar,
o qual indica qua˜o semelhante deve ser o objeto em relac¸a˜o ao exemplar. Este valor varia entre
0 e 1, onde quanto mais pro´ximo do valor 1, mais o objeto apresentado deve ser semelhante ao
exemplar.
No momento do treinamento, objetos va˜o sendo apresentados a` rede, e atrave´s dos pesos
“bottom-up”, o objeto de entrada e´ comparado com todos os exemplares em paralelo. O exemplar
com a pontuac¸a˜o mais elevada, ou seja, aquele exemplar que obtiver a maior semelhanc¸a com
o objeto apresentado sera´ escolhido. O exemplar escolhido encontra-se armazenado nos pesos
top-down, os quais sera˜o comparados com os objetos de entrada usando a Equac¸a˜o 16. Caso essa
relac¸a˜o seja maior que o paraˆmetro de vigilaˆncia, o objeto apresentado pertencera´ ao conjunto
contra o qual foi comparado, e para tal o exemplar deste conjunto escolhidodevera´ ser atualizado
para compreender tambe´m o novo padra˜o apresentado a rede.
||tj · x||
||x|| > p←→ objeto x passa pelo valor de vigilaˆncia. (16)
onde o mo´dulo nos vetores acima indica o somato´rio dos pontos, e p significa o valor de
vigilaˆncia que varia entre 0 e 1. Caso a relac¸a˜o na˜o seja maior que p, enta˜o outro conjunto
apropriado deve ser escolhido, e o processo deve se repetir ate´ que um conjunto apropriado seja
encontrado ou ate´ na˜o haver mais conjuntos para serem escolhidos. Caso a u´ltima condic¸a˜o
acontec¸a, existem algumas opc¸o˜es que podem ser consideradas:
• criar um novo conjunto para o objeto de entrada. Esta ac¸a˜o pode ser tomada dinamica-
mente pois os pesos de cada conjunto sa˜o independentes, ou seja, a escolha de um conjunto
na˜o influenciara´ os pesos de outros conjuntos. Ela e´ aconselha´vel quando na˜o se sabe ao
17
certo o nu´mero de conjuntos que devem ser criados. A desvantagem desse me´todo e´ que
alguns objetos de entrada com um alto ru´ıdo podem ser classificados incorretamente;
• diminuir o valor do paraˆmetro de vigilaˆncia, para enta˜o o algoritmo conseguir classificar o
valor de entrada em algum conjunto previamente criado. Esta ac¸a˜o deve ser tomada quando
se observar que a frequ¨eˆncia dos objetos na˜o classificados, ou classificados erroneamente e´
alta. A desvantagem desta te´cnica consiste em reiniciar todo o treinamento da rede;
• considerar o valor de entrada como sendo um ru´ıdo, e ignorar sua classificac¸a˜o. Esta ac¸a˜o
deve ser muitas vezes tomada, pois na vida real sa˜o dif´ıceis os objetos que na˜o teˆm ru´ıdos,
mas deve ter um certo cuidado para na˜o ignorar um objeto que deveria ser classificado
corretamente, caso contra´rio a rede pode perder seu poder de generalizac¸a˜o.
O algoritmo praticamente segue os seguintes passos [9]:
1. Inicialize os pesos bottom-up com um valor pro´ximo de 0 e os pesos top-down com valores
iguais a 1.
2. Apresente o padra˜o a` rede neural.
3. Calcule a pontuac¸a˜o para cada conjunto utilizando a equac¸a˜o de soma ponderada com os
pesos bottom-up: yj =
∑n
i=1 xibij .
4. Caso exista algum conjunto para ser escolhido, encontre o melhor conjunto com a maior
pontuac¸a˜o
5. Fac¸a o teste hipote´tico usando a Equac¸a˜o 16.
6. Desabilite o conjunto que esta´ sendo analisado. Caso o teste hipote´tico tenha dado ver-
dadeiro, va´ para o passo 7, caso contra´rio, va´ para o passo 4.
7. Atualize os pesos “bottom-up” e “top-down”.
8. Volte para o passo 2 caso haja mais entradas a serem apresentadas.
3.2.4 Atualizac¸a˜o dos pesos
A atualizac¸a˜o dos pesos na rede neural ART consiste basicamente em atualizar os pesos“bottom-
up” e “top-down”. Os pesos “top-down” podem ser atualizados fazendo apenas uma operac¸a˜o de
AND lo´gico entre os pontos do objeto apresentado a rede neural e o exemplar do grupo escolhido,
utilizando o exemplar como uma ma´scara.
Os valores dos pesos “bottom-up” tambe´m devem ser atualizados para poderem classificar o
conjunto que melhor se aproxima do valor de entrada, ou seja, os pesos privilegiara˜o os pontos xi
os quais esta˜o localizados nas posic¸o˜es semelhantes ao exemplar do conjunto yj . Para atualizar
os pesos “bottom-up” e “top-down”, sa˜o utilizadas as equac¸o˜es abaixo [9, 4]:
tij(t+ 1) = tij(t) · xi (17)
bij(t+ 1) =
tij(t)xi
L+ ||tj · x|| (18)
onde L significa um padra˜o de ajuste, normalmente na˜o maior que 1 e o mo´dulo significa a
soma dos pontos formados pelo AND lo´gico entre o exemplar escolhido tj e o objeto apresentado
x.
18
3.2.5 Exemplo usando ART1
Um exemplo sera´ demonstrado usando o algoritmo da rede neural ART1, escrito em C++,
baseado em [4]. Sera˜o apresentadas algumas letras como objetos, e para cada iterac¸a˜o, sera´
demonstrado o objeto armazenado nos exemplares de cada conjunto, como descrito na Figura
11. Para este algoritmo foi adotado o procedimento de criar um novo conjunto caso a figura de
entrada na˜o pertenc¸a a nenhum dos conjuntos previamente criados. Para os valores de entrada,
foram utilizadas 4 figuras de largura 7 e altura 9: A, B, C e D, as quais foram apresentadas
nessa mesma ordem.
Entrada Exemplares
Valor de Vigilaˆncia 0.9 e 0.7
Valor de Vigilaˆncia 0.9
Valor de Vigilaˆncia 0.7
Figura 11: A figura representa, primeiramente, os grupos em comum tanto para os valores de
vigilaˆncia 0.9 e 0.7, e depois para cada caso.
Observe que a letra D foi classificada diferentemente para diferentes valores de vigilaˆncia.
No padra˜o 0.9, ela foi tratada como uma letra diferente de todas as outras ja´ apresentadas, ou
seja, o algoritmo criou um novo conjunto para agrupar a letra D. Ja´ com o padra˜o de vigilaˆncia
0.7, ela foi reconhecida como a letra B, e colocou-a no conjunto B, cujo exemplar foi atualizado.
Apesar do valor de vigilaˆncia 0.7 ser baixo nesse exemplo, levando a classificac¸a˜o erroˆnea da
letra D, deve-se levar em considerac¸a˜o que as figuras tem poucos pontos. Com figuras maiores,
pequenas variac¸o˜es na˜o sera˜o de grande expressa˜o em sua classificac¸a˜o, mas ja´ em uma figura de
apenas 63 pontos, a variac¸a˜o de apenas um ponto pode influenciar bastante na maneira como
ela e´ classificada.
19
4 Conceitos Ba´sicos de Teorias Matema´ticas Relevantes
4.1 Conjuntos Nebulosos
Um conjunto pode ser descrito basicamente como um agrupamento de objetos que conte´m uma
certa propriedade. Os conjuntos cla´ssicos sa˜o enfatizados por possu´ırem seus limites definidos
precisamente, e neles um objeto e´ determinando incluso ou na˜o com certeza absoluta(pertence
ou na˜o pertence). Ja´ os conjuntos nebulosos podem admitir um grau de incerteza em relac¸a˜o
ao objeto pertencer ou na˜o ao conjunto, ou seja, pode-se dizer que o grau de pertineˆncia de
um elemento em um conjunto nebuloso expressa o grau de compatibilidade do elemento com o
conceito representado pelo grupo nebuloso.
Todo conjunto nebuloso a e´ definido em termos de um conjunto universo X, por uma func¸a˜o
chamada de func¸a˜o de pertineˆncia, que determina para todo elemento x ∈ X um nu´mero, a(x),
no intervalo fechado [0, 1] que caracteriza o grau de pertineˆncia de x em a [17]:
a(x) : X→ [0, 1] (19)
onde o conjunto universal X e´ definido como sendo um conjunto cla´ssico. Tambe´m deve-
se observar que normalmente um conjunto nebuloso e´ definido unicamente pela sua func¸a˜o de
pertineˆncia, ou seja, o conjunto nebuloso acima a e´ definido por sua func¸a˜o de pertineˆncia a(x).
A classe dos conjuntos nebulosos pode ser definida por:
F(X) = {a : X→ [0, 1]} (20)
Um conjunto cla´ssicoA ∈ P(X) se relaciona a um conjunto nebuloso a ∈ F(X) pela Equac¸a˜o
21:
a(x) =
{
1, se x ∈ A
0, se x /∈ A. (21)
4.2 Reticulados
Um reticulado L e´ um conjunto parcialmente ordenado (poset) no qual todos subconjuntos
na˜o vazios finitos teˆm um supremo e ı´nfimo. Um reticulado L e´ completo se todos os seus
subconjuntos tem um supremo e um ı´nfimo [1]. Para compreender melhor a definic¸a˜o, introduz-
se alguns conceitos, comec¸ando primeiramente por ordenac¸a˜o parcial.
Dado um conjunto na˜o-vazio X, a relac¸a˜o bina´ria “≤” em X e´ chamada de ordenac¸a˜o parcial
se satisfaz as seguintes propriedades para ∀x, y, z ∈ X.
• Propriedade reflexiva: x ≤ x;
• Propriedade anti-sime´trica: x ≤ y e y ≤ x enta˜o x = y;
• Propriedade transitiva: x ≤ y e y ≤ z enta˜o x ≤ z.
Se um conjunto possui uma ordenac¸a˜o parcial “≤” enta˜o ele pode ser chamado de parcial-
mente ordenado, ou poset. Como um exemplo de um poset pode-se citar a classe dos conjuntos
nebulosos F(X) com a ordem definida por:
a ≤ b⇔ a(x) ≤ b(x),∀x ∈ X (22)
Para introduzir o supremo e o ı´nfimo, considere um conjunto parcialmente ordenado M, e
diga-se que a relac¸a˜o de ordem seja ≤. Tome como sendo S um subconjunto de M, e enta˜o
define-se algumas notac¸o˜es:
20
↑ S = {z ∈M : ∀x ∈ S, x ≤ z} e´ o conjunto dos elementos superioresde S; (23)
↓ S = {z ∈M : ∀x ∈ S, x ≥ z} e´ o conjunto dos elementos inferiores de S; (24)
Devido a propriedade de simetria dos conjuntos, supremo pode ser definido por:∨
S =↑ S∩ ↓ (↑ S) (25)
E seguidamente ı´nfimo por: ∧
S =↓ S∩ ↑ (↓ S) (26)
e ambos teˆm, no ma´ximo, um elemento. Estes sera˜o o supremo e o ı´nfimo de S quando
na˜o-vazio. Caso o conjunto S possua um elemento ma´ximo, este sera´ chamado de quociente de
S, e denotado por Q(S). Se Q(S) existe, enta˜o o supremo
∨
S tambe´m existe e
∨
S = Q(S).
Um conjunto parcialmente ordenado L e´ um reticulado quando o ı´nfimo e o supremo de todos
os subconjuntos de S finitos na˜o-vazios existirem em L.
Um exemplo de um reticulado seria o conjunto G = {(0, 0), (0, 1), (1, 0), (1, 1)}, com a regra
de ordenac¸a˜o dada por (x, y) ≤ (z, w) se x ≤ z e y ≤ w. Nesse exemplo, todo subconjunto finito
e na˜o-vazio teria um supremo e um ı´nfimo. A Figura 12 representa esse reticulado.
Figura 12: Representac¸a˜o do reticulado completo G = {(0, 0), (0, 1), (1, 0), (1, 1)} onde a seta de
um elemento x a um elemento y significa que x ≥ y.
Um reticulado L e´ chamado de completo se todos os subconjuntos teˆm um supremo e ı´nfimo.
A diferenc¸a entre um reticulado e um reticulado completo e´ o fato deste u´ltimo ter supremo e
ı´nfimo em L para todos os subconjuntos na˜o-vazios, inclusive para os subconjuntos infinitos.
Um exemplo de um reticulado completo pode ser considerado o conjunto F(X), pois todos os
seus subconjuntos, incluindo os infinitos, tem supremo e ı´nfimo. Um exemplo de um reticulado
na˜o completo pode ser considerado o conjunto L1 = [0, 3)∪ (4, 6], pois o seu subconjunto infinito
[0, 3) na˜o tem um supremo em L, mas observe que o reticulado L2 = [0, 3) ∪ [4, 6] e´ completo,
pois o supremo de [0, 3) e´ 4.
Futuramente, a noc¸a˜o de isomorfismo sera´ importante para compreender algumas trans-
formac¸o˜es entre os reticulados, e para tal compreensa˜o, considere A e B dois reticulados. O
mapeamento f : A→ B e´ chamado de isomorfismo de reticulado se f e´ uma func¸a˜o bijetora, e
se a func¸a˜o f assim como o seu inverso f−1 preservam a ordem, ou seja, X ≤ Y ⇔ f(X) ≤ f(Y ),
para X,Y ∈ A. Por consequ¨eˆncia, um reticulado isomo´rfico preserva os seus ı´nfimos e supremos.
Se A = B, enta˜o f e´ chamado de um automorfismo. Caso ocorra uma inversa˜o na ordem
parcial dos reticulados, ou seja, f e´ uma bijec¸a˜o em A o qual inverte a ordem parcial onde
X ≤ Y ⇔ f(X) ≥ f(Y ), enta˜o f e´ chamado de automorfismo dual [7].
21
4.3 O Produto de Reticulados
Sejam L1, . . . ,LN reticulados. O conjunto L = L1 × · · · × LN , com a ordem parcial dada
por (x1, . . . ,xN ) ≤ (y1, . . . ,yN) ⇔ x1 ≤ y1, . . . ,xN ≤ yN representa um reticulado, que e´
chamado de produto dos reticulados, e cada um dos reticulados Li, i ∈ {1, . . . , N} e´ chamado
de reticulado constituinte. Seja M um reticulado, daqui por diante utilizaremos a notac¸a˜o
(M)N = L1 × · · · × LN , se M = L1 = · · · = LN . O supremo e o ı´nfimo em L sa˜o dados
respectivamente por x ∨ y = (x1, . . . ,xN ) ∨ (y1, . . . ,yN ) = (x1 ∨ y1, . . . ,xN ∨ yN ) e x ∧ y =
(x1, . . . ,xN ) ∧ (y1, . . . ,yN ) = (x1 ∧ y1, . . . ,xN ∧ yN ) [1].
Note que se Li, i ∈ {1, . . . , N} sa˜o todos completos, com os menores e maiores elemen-
tos definidos por Oi, . . . , ON e Ii, . . . , IN , enta˜o o produto dos reticulados sera´ um reticulado
completo com o menor elemento definido por O = (O1, . . . , ON ) e o maior elemento definido
por I = (I1, . . . , IN ) [12]. Considere o reticulado G definido na sec¸a˜o anterior. G pode ser
definido como um produto de reticulados atrave´s do reticulado F = {0, 1}, da seguinte maneira:
G = (F)2 = F× F = {0, 1} × {0, 1} = {(0, 0), (0, 1), (1, 0), (1, 1)}.
4.4 O Reticulado Completo PL
Seja L um reticulado completo e sejam OL e IL respectivamente o menor e o maior elemento
de L. Deseja-se definir um reticulado completo VL que conte´m os intervalos em L. Para tal
fim, considere o conjunto IL composto por todos os intervalos dos elementos de L, ou seja,
IL = {[a,b] : a ≤ b e a,b ∈ L}.
O conjunto IL geralmente na˜o pode ser considerado um reticulado, pois geralmente na˜o
possui um ı´nfimo em IL. Observe que
∨ IL = [OL, IL], mas que ∧ IL na˜o necessariamente existe
em IL. Pore´m, se VL = IL ∪ {OV}, onde OV representa o menor elemento de VL, enta˜o VL
representa um reticulado completo.
Um reticulado completo PL, denominado reticulado dos intervalos generalizados de L, e´
definido como o conjunto {[a,b] : a,b ∈ L} com a relac¸a˜o de ordem parcial dada por [a,b] ≤
[c,d] ⇔ c ≤ a,b ≤ d. Pode-se concluir que o supremo e o ı´nfimo de dois elementos desse
reticulado e´ dado por:
[a,b] ∨ [c,d] = [a ∧ c,b ∨ d] e
[a,b] ∧ [c,d] = [a ∨ c,b ∧ d] onde a,b, c,d ∈ L.
Vale ressaltar que o menor elemento e´ dado por [IL, OL] e o maior elemento por [OL, IL]. Um
elemento de PL e´ chamado de intervalo generalizado. Note que VL e´ um subreticulado de PL,
ou seja, e´ um subconjunto de PL que tambe´m e´ um reticulado. Para o menor elemento de VL,
pode-se pegar o menor elemento de PL, que no caso e´ [IL, OL].
Um exemplo de PL pode ser considerado o reticulado completo I = PU, com U = [0, 1],
tal que cada elemento e´ dado por [a, b] ∈ I,∀a, b ∈ U. Considere agora o produto (I)2 tal
que cada elemento e´ dado por ([a, b], [c, d]) ∈ (I)2,∀[a, b], [c, d] ∈ I. Como exemplo, considere
([0.1, 0.7], [0.3, 0.4]) e ([0.5, 0.8], [0.5, 0.2]) como sendo elementos de (I)2. O supremo e o ı´nfimo
desses elementos podem ser obtidos da seguinte maneira:
([0.1, 0.7], [0.3, 0.4]) ∨ ([0.5, 0.8], [0.5, 0.2]) = ([0.1, 0.7] ∨ [0.5, 0.8], [0.3, 0.4] ∨ [0.5, 0.2])
= ([0.1 ∧ 0.5, 0.7 ∨ 0.8], [0.3 ∧ 0.5, 0.4 ∨ 0.2])
= ([0.1, 0.8], [0.3, 0.4])
22
e
([0.1, 0.7], [0.3, 0.4]) ∧ ([0.5, 0.8], [0.5, 0.2]) = ([0.1, 0.7] ∧ [0.5, 0.8], [0.3, 0.4] ∧ [0.5, 0.2])
= ([0.1 ∨ 0.5, 0.7 ∧ 0.8], [0.3 ∨ 0.5, 0.4 ∧ 0.2])
= ([0.5, 0.7], [0.5, 0.2])
Considere um elemento ([x0, x1], [y0, y1]) ∈ (I)2. Observe que esse elemento pode ser inter-
pretado como um retaˆngulo, desde que x0 ≤ x1 e y0 ≤ y1. Um produto de N intervalos de
reticulados pode ser interpretado como sendo uma hipercaixa em RN , assim como o retaˆngulo,
descrito acima, pode ser interpretado como sendo uma hipercaixa em R2.
4.5 Reticulados Nebulosos
Um reticulado nebuloso e´ um par (L,p(x,y)) onde L e´ um reticulado convencional e p : X →
[0, 1] e´ uma func¸a˜o de ordem parcial nebulosa no universo do discurso X = {(x,y) : x,y ∈ L}.
A func¸a˜o p e´ uma ordem parcial nebulosa pois p(x,y) = 1 se e somente se x ≤ y em L [12].
Considere L um reticulado e R a relac¸a˜o de ≤ em L. Suponha dois elementos x,y ∈ L, logo
esses elementos podem ser compara´veis, ou seja, (x,y) ∈ R ou (y,x) ∈ R; ou incompara´veis,
isto e´, nenhum dos pares anteriores pertencem a relac¸a˜o R. A extensa˜o acima permite relacionar
qualquer dois elementos do conjunto de reticulados atrave´s da func¸a˜o de ordem parcial nebulosa
p(x,y), que indica o grau de inclusa˜o de x em y.
O reticulado nebuloso e´ considerado a extensa˜o do reticulado L, e para manter essa extensa˜o
compat´ıvel, um reticulado nebuloso e´ definido sobre a condic¸a˜o de que p(x,y) = 1 ⇔ x ≤ y.
Um reticulado convencional L pode ser identificado com o reticulado nebuloso (L,p) atrave´s da
func¸a˜o p dada por:
p(x,y) =
{
1, se x ≤ y
0, caso contra´rio.
(27)
onde x,y ∈ L.
4.6 Func¸o˜es Geradoras
Considere uma func¸a˜o h : L→ R, onde L e´ um reticulado completo. Essa func¸a˜o e´ chamada de
func¸a˜o geradora se satisfaz as seguintes propriedades:
(P1) h(O) = 0
(P2) u ≤ w⇒ h(u) ≤ h(w),∀u,w ∈ L
(P3) u ≤ w⇒ h(w ∨w)− h(x ∨ u) ≤ h(w)− h(u),∀x,u,w ∈ L
(28)
Uma func¸a˜o k pode definir uma ordem parcial nebulosa se k(x,y) = h(x)/h(x ∨ y), onde
x,y sa˜o elementos de um reticulado completo L, pois k(x,y) = h(y)/h(x ∨ y) = 1 ⇔ h(y) =
h(x ∨ y) ⇔ y = x ∨ u ⇔ x ≤ y. Logo, a func¸a˜o k(x,y) = 1 ⇔ x ≤ y[12]. Deste modo,
(L, k(x,y)) e´ um reticulado nebuloso. E´ importante ressaltar que a func¸a˜o k satisfaz as seguintes
propriedades:
(C1) k(u, O) = 0,u 6= O
(C2) k(u,u) = 1,∀u ∈ L
(C3) u ≤ w⇒ k(x,u) ≤ k(x,w),x,u,w ∈ L
onde O e I sa˜o respectivamente o menor e o maior elemento do reticulado completo L. A
func¸a˜o k(x,y) sera´ utilizada como uma func¸a˜o de ativac¸a˜o dos neuroˆnios no modelo de rede
FLNN.
23
Ja´ foi citado que o conjunto resultante de um produto deN reticulados mante´m a propriedade
de um reticulado. Deste modo, o conjunto resultante do produto de N reticulados nebulosos
tambe´m deve manter a propriedade de um reticulado nebuloso. Para tal fim, o lema a seguir
garante a existeˆncia de uma func¸a˜o geradora h no produto dos reticulados nebulosos desde que
todos os reticulados nebulosos constituintes pussuam uma func¸a˜o geradora.
Lema 1: Seja L = L1 × · · · ×LN o produto de N reticulados completos, cada qual com suas
respectivas func¸o˜es geradoras h1, . . . , hN . Logo, a func¸a˜o h((x1, . . . ,xN )) = h1(x1)+· · ·+hN (xN )
define uma func¸a˜o geradora h no produto dos reticulados L = L1 × · · · × LN [12].
Seja F = {0, 1} um exemplo de um reticulado nebuloso e hF (x) = x uma func¸a˜o geradora de
F. Considere tambe´m o reticulado nebuloso G, que e´ definido pelo produto de dois reticulados
nebulosos constituintes F, ou seja, G = (F)2. De acordo com o lema acima, a func¸a˜o geradora h
de G e´ definida como sendo hG((x1, x2)) = hF (x1) + hF (x2) = x1 + x2, que utilizada em todos
os elementos de G, produz os seguintes resultados: hG((0, 0)) = 0, hG((0, 1)) = 1, hG((1, 0)) = 1
e hG((1, 1)) = 2. Uma vez obtido os valores para hG, pode-se obter o valor da func¸a˜o de ordem
parcial k para cada elemento de G, como por exemplo, a func¸a˜o k((0, 1), (1, 0)) = 1/2.
5 Fuzzy Lattice Neural Network
5.1 Introduc¸a˜o
Para tratar de rede neural FLNN, descreve-se primeiramente sua arquitetura. Depois, para
cada caso de aprendizado, supervisionado e na˜o-supervisionado, sera´ citado o seu algoritmo e
as pequenas adaptac¸o˜es na arquitetura. Por fim, sera´ feita uma ana´lise sobre o algoritmo de
aprendizado supervisionado e um estudo sobre sua superf´ıcie de decisa˜o.
5.2 Arquitetura
A arquitetura de uma rede neural FLNN e´ semelhante a da rede neural ART. A FLNN propo˜e
uma arquitetura recorrente em duas camadas. A primeira camada e´ a camada de entrada, e
acima desta existe a camada de categoria. A camada de entrada possui N neuroˆnios artificiais
usados para armazenar e comparar os dados de entrada. A camada de categoria consiste de L
neuroˆnios ratificais, que definem M classes. Cada neuroˆnio da camada de categoria pode definir
no ma´ximo uma classe, ou seja, L ≥M . A Figura 13 representa a arquitetura dessa rede neural.
As duas camadas sa˜o completamente conectadas pelo vetor de pesos w, que tem o objetivo
de filtrar os dados tanto de baixo para cima (“bottom-up”), tanto como de cima para baixo
(“top-down”). Existe tambe´m um no´ utilizado para reiniciar as classes, caso elas na˜o passem por
um valor de policiamento, semelhante a rede neural ART.
O vetor de entrada x dessa rede e´ um elemento pertencente a (VL)N onde cada componente
xj , para j ∈ {1, . . . , N}, representa um intervalo em VL. Observa-se que os vetores de entrada x
da rede neural FLNN podem ser consideradas como hipercaixas em RN , e na˜o apenas pontos como
descritos na rede neural ART. O tamanho de uma hipercaixa qualquer x = ([a1, b1], . . . , [aN , bN ]),
denotado por Z(x), pode ser definido por Z(x) =
∏N
i=1(h(bi) − h(ai)), onde h1, . . . , hN sa˜o
func¸o˜es geradoras em L. Essa definic¸a˜o de tamanho de uma hipercaixa sera´ u´til para ajudar na
compreensa˜o dos algoritmos dessa rede neural.
Os neuroˆnios da rede FLNN apresentam como func¸a˜o de ativac¸a˜o uma func¸a˜o de ordem
parcial nebulosa, denotada aqui por p, que calcula o valor de pertineˆncia da entrada x no vetor
de pesos wi. Esses pesos ligam os neuroˆnios da camada de entrada ao neuroˆnio i da camada de
categoria, onde i ∈ {1, . . . , L}.
24
Figura 13: Arquitetura ba´sica da rede neural FLNN. Ela possui N neuroˆnios na camada de
entrada, L neuroˆnios na camada de categoria e M classes.
5.3 Famı´lias de hipercaixas
A rede neural FLNN tem por objetivo classificar as hipercaixas x em classes c, formadas pela
unia˜o de um conjunto finito de elementos de (VL)N . Cada peso wij pode ser interpretado como
um elemento do conjunto VL, e cada vetor de pesos wi pode ser interpretado como um elemento
do conjunto de (VL)N . Deste modo, c =
⋃
iwi, onde wi significa o vetor de pesos que conecta a
entrada x ao i-e´simo neuroˆnio pertencente a classe c. Um conjunto de hipercaixas sa˜o chamados
de famı´lias e sa˜o denotados por {wi}. Uma famı´lia {wi} representa a classe c se a unia˜o dos
elementos dessa famı´lia for igual a classe c, ou seja, {wi} representa a classe c se e somente se
c =
⋃
iwi. Note que mais de uma famı´lia de hipercaixas pode representar a mesma classe.
Supondo a existeˆncia de uma func¸a˜o de ordem parcial nebulosa p no reticulado (VL)N , o
grau de inclusa˜o de um intervalo x para a classe c e´ definido como p(x, c) = maxi(p(x,wi)).
Note que quando o valor de p(x, c) = 1, pode-se dizer que x esta´ incluso em c.
Para a resoluc¸a˜o da maioria dos problemas, e´ importante que as classes possuam intervalos
conexos, ou seja, uma classe c =
⋃
iwi e´ chamada conexa se e somente se para qualquer duas
hipercaixas q e r inclusas na classe c, existe uma sequ¨encia de hipercaixas t0, . . . , tN−1 inclusas
na classe c, de q a r. Ou seja, t0 ∧q = q, tN−1 ∧ r = r, e ti ∧ ti+1 6= O, i = 0, . . . , N − 2. Note
tambe´m que uma famı´lia e´ chamada de conexa se e somente se ela define uma classe conexa [12].
5.4 Expansa˜o maximal
As deciso˜es na rede neural FLNN sa˜o dirigidas pelo grau de inclusa˜o da entrada x em uma
classe c. Para facilitar esse ca´lculo, considere F como sendo o conjunto de todas as famı´lias
de hipercaixas, e Fc como sendo a colec¸a˜o de todas as famı´lias que possam representar a classe
concreta c no reticulado L, ou seja, Fc = {{wi} : {wi} representa a classe c}. Podemos definir
25
uma ordem parcial em F da maneira seguinte: sejam {qm} e {rn} elementos de F , onde {qm} ≤
{rn} se e somente se ∀q ∈ {qm} existe um r ∈ {rn} tal que q ≤ r. Logo, conclui-se que F e Fc
sa˜o conjuntos parcialmente ordenados.
Devido a essa propriedade, foi poss´ıvel para Petridis e Kaburlasos provarem em [12] o fato
que Fc possui um elemento ma´ximo, e que sera´ utilizado para representar a classe c, ou seja, todo
elemento estara´ completamente incluso na classe c se ele e´ menor ou igual ao
∨Fc. Essa te´cnica e´
chamada de expansa˜o maximal, e consiste basicamente em encontrar o quociente Q(Fc) da classe
c. O lema citado abaixo, cuja prova pode ser encontrada em [12], descreve os fundamentos da
expansa˜o maximal.
Existe um grande benef´ıcio em substituir a famı´lia {wi} que representa a classe pelo quociente
Q(Fc), pois para qualquer intervalo x, e´ va´lido que p(x, Q(Fc)) = max(p(x, {wi})), onde {wi} ∈
Fc. Em outras palavras, Q(Fc) maximiza o grau de inclusa˜o do intervalo x na classe c, facilitando
o ca´lculo de inclusa˜o pelos algoritmos.
Como exemplo, considere a Figura 14. Na figura (a) pode se observar uma classe c formada
por dois vetores de pesos w1 e w2, respectivamente formados pelos retaˆngulos 5 − 6 − 7 − 8 e
9 − 10 − 11 − 12. De imediato, um representante para tal classe poderia ser a famı´lia {wi} =
{w1,w2}. Considere a entrada x, formada pelo retaˆngulo 1− 2− 3− 4, inclusa na classe c. Ao
se aplicar a func¸a˜o de ordem parcial nebulosa p em x para a famı´lia representante de c, o valor
retornado sera´ menor que 1, pois x na˜o esta´ completamente incluso nem em w1 e nem em w2.
Ja´ na figura (b), e´ poss´ıvel se observar a aplicac¸a˜o da te´cnica da expansa˜o maximal para
o representantede c. Foram criados dois vetores de pesos a mais, w3 e w4, representados
respectivamente pelos retaˆngulos 13 − 10 − 7 − 14 e 15 − 6 − 11 − 16. A famı´lia {wi} =
{w1,w2,w3,w4} e´ considerada um quociente para a classe c. Agora, ao se aplicar a func¸a˜o de
ordem parcial nebulosa p em x para a famı´lia representante de c, o valor retornado sera´ igual a
1, pois x esta´ completamente incluso em w4.
Figura 14: Exemplo da te´cnica da expansa˜o maximal para encontrar o quociente para da classe
c. Na figura (a), observa-se que a entrada x na˜o esta´ inclusa na famı´lia {wi}, pois x na˜o
esta´ completamente incluso nem em w1 nem em w2. Ja´ na figura (b), apo´s a aplicac¸a˜o da
te´cnica da expansa˜o maximal, observa-se que a entrada x esta´ inclusa na famı´lia {wi}, pois x e´
completamente incluso na hipercaixa w4.
5.5 Algoritmo de aprendizado na˜o-supervisionado
O algoritmo de aprendizado na˜o-supervisionado tem por objetivo agrupar as entradas x em
classes, que possuem como representante uma famı´lia de reticulados {wi}. Esse algoritmo e´
26
bastante semelhante ao algoritmo apresentado para a rede ART por apresentar um valor de
policiamento para indicar quando um elemento pode ser inserido ou na˜o em uma classe. Uti-
lizaremos aqui a notac¸a˜o wi,k para indicar o vetor de todos os pesos que fazem parte da classe
k. Os passos do algoritmo seguem abaixo:
1. A primeira entrada e´ guardada diretamente na memo´ria da rede, na camada de categoria.
Depois, o aprendizado segue como descrito nos ı´tens abaixo.
2. Apresente um valor de entrada x para inicializar as classes.
3. Calcule p(x, ck) para todas as classes ck, k = 1, . . . ,M que ainda na˜o foram desabilitadas,
onde ck =
⋃
iwk,i e p(x, ck) = maxip(x,wk,i).
4. Fac¸a uma competic¸a˜o entre as classes ck: escolha a classe cJ tal que a func¸a˜o p aplicada
em x para todas as classes ck seja ma´xima, ou seja, p(x, cJ) = maxkp(x, ck), onde J e´ o
ı´ndice do vencedor correspondente e cJ =
⋃
iwJ,i.
5. Fac¸a o teste de policiamento: o tamanho de x ∨ w e´ menor ao valor de policiamento
Z definido pelo usua´rio? (onde w corresponde aos pesos da classe vencedora no passo
anterior).
6. Se o teste de policiamento for bem sucedido, enta˜o incorpore a entrada x na classe cJ
trocando o peso w por x∨w, e enta˜o calcule o novo quociente Q(FcJ ) para representar a
classe cJ .
7. Se o teste de policiamento falhar, enta˜o desabilite a classe cJ . Desabilitar, nesse caso,
significa tornar a classe cJ inacess´ıvel a` entrada x enquanto essa e´ apresentada a rede
neural FLNN.
8. Fac¸a o teste de completude: todas as classes c1, . . . , cM esta˜o desabilitadas? Se o teste de
completude falhar, volte ao passo 3 para procurar por outro vencedor.
9. Caso o teste de completude seja bem sucedido, enta˜o memorize a entrada x em uma nova
classe cM+1.
Esse algoritmo representa a fase de aprendizado da rede FLNN. Quando essa fase terminar,
para testar se um elemento x pertence a` uma determinada classe, e´ apenas aplicar p(x, ck) para
todas as classes ck, k = 1, . . . ,M memorizadas na camada de categoria, onde x pertencera´ a
classe vencedora. Durante a fase de teste, nenhuma classe e´ atualizada.
A Figura 15 representa um exemplo dos principais passos do algoritmo de aprendizado na˜o
supervisionado, considerando o espac¸o das hipercaixas em R2. Nesse exemplo, apresenta-se uma
hipercaixa x a` rede neural, compostas por duas classes c1 e c2, representadas respectivamente
por w1 e w2. Na figura (a), observa-se a tentativa de inclusa˜o da entrada x na classe c1. O
teste de policiamento falha, e a classe c1 e´ desativada nas pro´ximas iterac¸o˜es pela busca de uma
classe vencedora. Na figura (b), ocorre a tentativa de inclusa˜o da entrada x na classe c2.
Observa-se na figura (c) que a entrada x passa pelo teste de policiamento para a classe c2, e
consequ¨entemente w2 e´ atualizado para w′2 = w2 ∨ x. Apo´s essa atualizac¸a˜o, a classe c2 deixa
de existir para ser unificada com a classe c1. Com essa unificac¸a˜o, e´ necessa´rio atualizar o novo
quociente da classe c1 utilizando a te´cnica da expansa˜o maximal, observada na figura (d).
27
Figura 15: Exemplo de alguns passos do algoritmo de aprendizado na˜o supervisionado da rede
neural FLNN. Na figura (a) observa-se a tentativa de inclusa˜o da hipercaixa x na classe c1, que
falha no teste de policiamento. A classe c1 e´ desabilitada, e uma nova tentativa e´ feita com a
classe c2 figura (b). Na figura (c), observa-se que a classe c2 passa no teste de policiamento, e o
peso w2 e´ atualizado para w′2 = w2 ∨ x, implicando na unia˜o da classe c1 com a classe c2. Na
figura (d), a te´cnica da expansa˜o maximal e´ aplicada, e o quociente da classe c1 e´ atualizado.
5.6 Algoritmo de aprendizado supervisionado
O algoritmo de aprendizado supervisionado e´ um pouco diferente do algoritmo anterior, visto que
esse algoritmo consiste de N pares de entrada (xi, gi), i ∈ {1, . . . , N}, onde xi ∈ L e´ um padra˜o
de entrada e elemento do reticulado L, e gi e´ o ı´ndice da categoria de xi, ou seja, gi ∈ {1, . . . , k},
onde K e´ o nu´mero de categorias.
Note que a arquitetura apresentada na Figura 13 deve ser acomodada para acrescentar o
ı´ndice de categoria gi. Essa acomodac¸a˜o pode ser da seguinte forma: primeiramente permitindo
que o ı´ndice gi seja guardado na camada de categoria, e em seguida adicionando um no´ na
camada de entrada para acomodar o ı´ndice de entrada gi. Com essa nova acomodac¸a˜o, deve
interconectar o novo no´ da camada de entrada a todos os no´s da camada de categoria.
O algoritmo da rede FLNN consiste basicamente em agrupar todos as hipercaixas da entrada
que possuam a mesma categoria gi, desde que essa unia˜o na˜o abranja outra categoria gj , para
todo gj diferente de gi. Depois das entradas poss´ıveis agrupadas, ela e´ adicionada na camada
de categoria. O algoritmo utilizado por [12] e´ descrito pelo Algoritmo 1.
A func¸a˜o armazene(x,gi) no Algoritmo 1 indica o armazenamento da varia´vel x juntamente
com o seu ı´ndice gi na camada de categoria da rede neural FLNN. Esse algoritmo tem uma ordem
de execuc¸a˜o de O(N3) devido aos lac¸os realizados nos passos 1, 3 e 6. Tanto nos algoritmos
28
para i← 1 ate´ N , fac¸a
x← xi.
para j ← 1 ate´ N , fac¸a
se gi = gj , enta˜o
x′ ← x ∨ xj .
para k ← 1 ate´ N , fac¸a
se gk 6= gi e p(xk,x′) ≤ 1, enta˜o
x← x′.
fim-para
fim-se
fim-para
armazene(x,gi)
fim-para
Algoritmo 1: Algoritmo de aprendizado supervisionado da rede neural FLNN.
de aprendizado supervisionado e na˜o-supervisionado, a rede FLNN permite a sobreposic¸a˜o de
intervalos. A ide´ia consiste basicamente em tratar classes mutuamente na˜o exclusivas, onde os
mecanismos de reconhecimento de padro˜es dos seres humanos sa˜o modelados com bons resultados
de aprendizagem.
Para finalizar o me´todo de aprendizado supervisionado, falta ainda definir uma func¸a˜o de
ordem parcial nebulosa p que possua uma func¸a˜o geradora. Antes de continuar com as definic¸o˜es,
considere o exemplo demonstrado pela Figura 16 de alguns passos do algoritmo supervisionado.
Esta figura divide o processo em 4 partes: (a), (b), (c) e (d).
Na parte (a), as cinco hipercaixas sa˜o apresentadas, com seus respectivos ı´ndices. Na parte
(b), a operac¸a˜o de supremo sobre as entradas (x1, 1) e (x4, 1) e´ aplicada, e o resultado e´ rep-
resentado na camada de categoria por (c1, 1). Na figura (c), a operac¸a˜o de supremo e´ aplicada
sobre (x2, 2) e (x3, 2) e o resultado e´ representado na camada de categoria por (c2, 2). Note
que na˜o foi poss´ıvel a expansa˜o com (x5, 2) devido ao fato de que (x4, 1) ficaria completamente
incluso no resultado. Logo, na figura (d), (x5, 2) fica representado na camada de categoria por
(c3, 2).
5.7 Func¸a˜o de ordem parcial nebulosa em VL
Encontrar uma func¸a˜o de ordem parcial nebulosa em VL se resume basicamente a encontrar uma
func¸a˜o geradora qualquerem VL, e atrave´s desta obter uma func¸a˜o de ordem parcial nebulosa.
Para tal fim, um automorfismo dual foi estabelecido entre L2 e PL. Para tal, e´ satisfato´rio provar
a existeˆncia de apenas um isomorfismo entre os dois reticulados para provar a existeˆncia de um
automorfismo dual. Considere o isomorfismo ϕθ : PL→ L2, que ao ser aplicado em um elemento
[a, b] ∈ PL resulta em ϕθ([a, b]) = (θ(a), b) em L2, onde θ(.) e´ um automorfismo dual. Logo,
[a, b] ≤ [c, d] em PL implica que c ≤ a e b ≤ d ⇒ θ(c) ≥ θ(a) e b ≤ d ⇒ (θ(a), b) ≤ (θ(c), d) em
L2, e vice-versa.
Desta forma existe um isomorfismo entre os reticulados L2 e PL, e os elementos (a, b) ∈ L2 e
[θ(a), b] ∈ PL sa˜o isomo´rficos. Um automorfismo dual θ(.) em L implica que θ(O) = I e θ(I) = O,
ou seja, o menor elemento (0, 0) de L2 e´ mapeado pelo menor elemento [θ(O), O] = [I,O]
de PL. Da mesma maneira, o maior elemento (I, I) de L2 e´ mapeado pelo maior elemento
[θ(I), I] = [O, I] de PL. Uma func¸a˜o de ordem parcial nebulosa pode ser definida no reticulado
VL da seguinte maneira [12].
1. Uma func¸a˜o geradora h no reticulado L pode definir uma func¸a˜o geradora no reticulado
29
Figura 16: Exemplo do algoritmo supervisionado para cinco entradas. Note que nesse exemplo,
o resultado final que e´ armazenado na camada de categoria, e essas hipercaixas sa˜o representadas
por (ci, gi), onde ci representa a maximizac¸a˜o dos elementos que fazem parte do ı´ndice gi.
L2 de acordo com o Lema 1.
2. Uma func¸a˜o geradora h no reticulado L2 implica em uma func¸a˜o de ordem parcial nebulosa
ph(x,y) = h(x)/h(x ∨ y) em L2.
3. Um automorfismo dual θ(.) em L pode definir um isomorfismo ϕθ entre L2 e PL, como
demonstrado acima.
4. E concluindo, uma func¸a˜o de ordem parcial nebulosa entre dois intervalos [a, b], [c, d] ∈ VL
e´ dada por p([a, b], [c, d]) = ph(ϕθ([a, b]), ϕθ([c, d])) = ph((θ(a), b), (θ(c), d)), onde (θ(a), b)
e (θ(c), d) ∈ L2 e p e´ uma func¸a˜o de ordem parcial nebulosa em L2.
Para um exemplo, considere o reticulado completo I = PU, com U = [0, 1]. Logo, a func¸a˜o
θ(x) = 1 − x define um automorfismo dual no reticulado U = [0, 1]. Considere dois intervalos,
[0, 0.5] e [0.3, 0.8] elementos de I. O grau de inclusa˜o do primeiro intervalo em relac¸a˜o ao segundo
intervalo pode ser obtido da seguinte maneira:
30
p([0, 0.5], [0.3, 0.8]) = ph(ϕθ([0, 0.5]), ϕθ([0.3, 0.8]))
= ph((θ(0), 0.5), (θ(0.3), 0.8))
= ph((1, 0.5), (0.7, 0.8))
=
h(0.7, 0.8)
h((1, 0.5) ∨ (0.7, 0.8))
=
h(0.7, 0.8)
h((1 ∨ 0.7), (0.5 ∨ 0.8))
=
h(0.7, 0.8)
h(1, 0.8)
=
h(0.7) + h(0.8)
h(1) + h(0.8)
= 0.8333 . . .
onde a func¸a˜o geradora h e´ a func¸a˜o identidade h(x) = x. p em (VL)N e´ baseado no
isomorfismo ϕNθ : (PL)N → (L2)N . Para mapear um elemento a ∈ (VL)N para (L2)N , basta
aplicar ϕNθ (a) = ϕ
N
θ (a1, . . . ,aN ) = (ϕθ(a1), . . . , ϕθ(aN )), onde a = (a1, . . . ,aN ).
31
Refereˆncias
[1] G. Birkhoff. Lattice Theory. American Mathematical Society, Providence, 3 edition, 1993.
[2] C.M. Bishop. Neural Networks for Pattern Recognition. Oxford University Press, Oxford,
UK, 1995.
[3] G.A. Carpenter and S. Grossberg. Neural Networks, 3, chapter ART 3: Hierarchical search
using chemical transmitters in self-organizing pattern recognition architectures, pages 129–
152. 1990.
[4] L. Fausett. Fundamentals of Neural Networks: Algorithms, Architectures, and Applications.
Prentice-Hall, Englewood Cliffs, NJ, 1994.
[5] S. Haykin. Redes Neurais: Princ´ıpios e Pra´tica. Porto Alegre: Bookman, 2001.
[6] D. O. Hebb. The Organization of Behaviour. New York: Wiley, 1949.
[7] H.J.A.M. Heijmans. Morphological Image Operators. Academic Press, New York, NY, 1994.
[8] D. Hume. A Treatise of Human Nature. Selby-Bigge, L.A., and Nidditch, P.H. (eds.),
Oxford: Oxford University Press, 1978.
[9] C. Lau. Neural Networks: Theoretical Foundations and Analysis. 1992.
[10] W.S. McCulloch and W. Pitts. A logical calculus of ideas immanent in nervous activity.
Bulletin of Mathematical Biophysics, 5:115–133, 1943.
[11] M.L. Minsky and S.A. Papert. Perceptrons. MIT Press, Cambridge, MA, 1969.
[12] V. Petridis and V. G. Kaburlasos. Fuzzy Lattice Neural Network (FLNN): A Hybrid Model
for Learning, chapter IEEE Transactions on Neural Networks, vol. 9, no. 5, pages 877–890.
1998.
[13] B. D. Ripley. Pattern Recognition and Neural Networks. Cambridge University Press, 1996.
[14] F. Rosenblatt. Principles of Neurodynamics: Perceptrons and the Theory of Brain Mecha-
nisms. Spartan, Washington, 1962.
[15] A. Ru¨besam. Perceptrons com aplicac¸o˜es em reconhecimento de padro˜es. Technical report,
IMECC – UNICAMP, 2001.
[16] P. Sussner. Encyclopedia for Electrical and Electronics Engineering, volume 16, chapter
Perceptrons, pages 44–59. John Wiley & Sons, 1999.
[17] B. Yuan and G. J. Klir. Fuzzy Set Theory: Foundations and Applications. 1997.
32

Outros materiais