View
214
Download
0
Category
Preview:
Citation preview
36
3 AGRUPAMENTO E CLASSIFICAÇÃO POR TÉCNICAS INTELIGENTES
3.1 INTRODUÇÃO
Nas seções seguintes (3.2 e 3.3) são introduzidos os modelos de
categorização e Neuro-Fuzzy que são a base dos módulos do Sistema de
Classificação de Unidades Consumidoras de Energia Elétrica proposto.
3.2 TÉCNICAS DE CATEGORIZAÇÃO
3.2.1 Análise de Agrupamentos (Cluster Analysis)
A categorização (clustering) é uma das técnicas mais utilizadas no processo de
mineração de dados (data mining) para descobrir grupos e identificar distribuições
de padrões ocultos em uma base de dados. A técnica de categorização (clustering)
particiona um conjunto de padrões de entrada em grupos (clusters) homogêneos
[3], de tal forma que os dados de um mesmo cluster são mais similares entre si
que os dados encontrados em diferentes clusters [14]. A similaridade destes
pontos é definida de acordo com critérios pré-estabelecidos. Por exemplo,
considerando os registros de um banco de dados de uma empresa que contém os
itens comprados pelos seus clientes, o procedimento de categorização poderá
grupar clientes de forma que aqueles com padrões similares de compras estejam
no mesmo cluster. Logo, o principal objetivo do processo de categorização é
revelar a organização dos padrões em grupos que nos permitam descobrir
similaridades e diferenças, bem como permitir extrair conclusões sobre esta
distribuição. Esta idéia é aplicável em muitos campos da ciência, como medicina,
engenharia, biologia, geologia e ciências sociais.
No processo de categorização não há classes pré-definidas, nem exemplos
que possam mostrar que tipos de relações desejáveis devem estar válidos entre os
dados. Por esta característica o algoritmo utilizado neste processo é dito não
supervisionado [22].
37
A categorização produz categorias iniciais nas quais os valores dos
padrões encontrados nos dados são classificados. Este processo pode resultar em
diferentes particionamentos dos dados dependendo dos critérios específicos
utilizados. Logo, existe a necessidade de pré-processamento antes de se iniciar a
tarefa de categorização. Os passos básicos para se desenvolver o processo de
categorização são apresentados na Figura 10 e podem ser resumidos como a
seguir [12]:
• Seleção de Características. O alvo é selecionar apropriadamente as
características nas quais a categorização se processará, representando o
máximo de informação possível concernente à tarefa de interesse. Para isto, o
pré-processamento de dados pode ser necessário antes da execução do
algoritmo de categorização.
• Algoritmo de Categorização (Clustering Algorithm). Este passo se
refere à escolha de um algoritmo que resulte na definição de um bom esquema
de categorização para um dado conjunto de dados. A medida de proximidade e
os critérios de categorização caracterizam o algoritmo, bem como sua
eficiência em definir um esquema de categorização que se ajuste ao conjunto
de dados.
i) Medida de proximidade é a medida que quantifica quão
similares são dois pontos no espaço de dados (i.e. vetores
característicos). Em muitos casos deve ser verificado se todas as
características selecionadas contribuem igualmente para computar a
medida de proximidade e se não há características dominantes em
relação às outras.
ii) Critérios de categorização - Neste passo devem ser
definidos os critérios de categorização, que podem ser expressos
através da função objetivo (OFV), ou através de algum tipo de regra.
• Validação dos resultados. A assertividade dos algoritmos de
categorização é verificada utilizando-se critérios e técnicas apropriadas. Uma
vez que algoritmos de categorização definem clusters que não são conhecidos
38
a priori, independentemente do método de categorização, a partição final dos
dados requer algum tipo de avaliação na maioria das aplicações [29].
• Interpretação dos resultados. Em muitos casos, os especialistas na
área de aplicação têm que integrar os resultados de categorização com outras
evidências experimentais e análises, de forma a chegar a uma conclusão
correta.
Figura 10 – Processo de Categorização
Os inúmeros algoritmos de categorização podem ser divididos em duas
principais categorias: hierárquicos e não hierárquicos.
3.2.2 Algoritmos de Categorização Hierárquicos
A categorização hierárquica é um método estatístico para encontrar grupos
relativamente homogêneos baseados em características medidas (distância),
transformando um conjunto de pontos de dados em uma seqüência de partições
encadeadas. Este particionamento pode ser feito por dois métodos [10] [17]:
• Aglomerativo: Inicia com cada ponto sendo um cluster e
aglomera dois pontos a cada passo.
39
• Divisivo: Inicia com todos os pontos em um único cluster e
dividindo um cluster em dois a cada passo.
Na categorização hierárquica, os clusters maiores podem conter clusters
menores ou subclasses e assim sucessivamente.
A Figura 11 apresenta um exemplo da árvore resultante da categorização
hierárquica. No nível 1 todas as amostras xi estão representadas como singleton
clusters. À medida que aumentam os níveis, mais amostras são categorizadas de
uma forma hierárquica.
Figura 11 – Estrutura de Categorização Hierárquica Aglomerativa
Os métodos aglomerativos são mais comumente utilizados. Estes
consistem em inicialmente listar os elementos da amostra em conjuntos singleton
S1, S2, ..., Sn. Então uma função de custo é utilizada para encontrar o par de
elementos {Si, Sj} que serão mesclados. Logo, Si e Sj serão removidos da lista e
substituídos pelo novo elemento resultante de Si ∪ Sj. Este processo iterativo
ocorre até que se tenha apenas um conjunto final. Portanto, a maior diferença
entre os vários métodos de categorização hierárquica aglomerativa refere-se à
40
avaliação da função objetivo na mesclagem dos elementos Si e Sj a qual é denotada
por c(Si,Sj), conforme apresentado abaixo.
• Single-link (conectedness or minimum method) – A distância
entre um cluster e outro é computada como sendo igual a menor
distância de qualquer um dos elementos deste cluster até qualquer
um dos outros elementos do outro cluster.
• Average-link – A distância entre um cluster e outro é computada
como sendo igual a média das distâncias de todos os elementos
deste cluster até todos os outros elementos do outro cluster.
• Complete-link (diameter or maximum method) – A distância entre
um cluster e outro é computada como sendo igual a maior
distância de qualquer um dos elementos deste cluster até qualquer
um dos outros elementos do outro cluster.
A Tabela 1 apresenta um resumo das funções de avaliação mais
conhecidas no método aglomerativo.
Método Função de Avaliação Apresentado no Algoritmo
Single-link ,
min ( , )i i j j
i jx S x Sd x x
∈ ∈ SLINK [33]
Average-link 1 ( , )i i j j
i jx S x Si j
d x xS S ∈ ∈
∑ ∑ Voorhees’ method [36]
Complete-link ,
max ( , )i i j j
i jx S x Sd x x
∈ ∈ CLINK [7]
onde ( , )i jd x x é a distância entre ix e jx
Tabela 1 – Modelos Hierárquicos de Categorização
41
3.2.3 Algoritmos de Categorização Não Hierárquicos
A categorização não hierárquica produz clusters separados e, portanto,
gera bons resultados quando um conjunto de dados é composto por um número
distinto de classes.
Os dois algoritmos de categorização mais comumente utilizados são:
• Hard C-Means [1] [17];
• Fuzzy C-Means [3].
3.2.3.1 Hard C-Means
Esta seção descreve brevemente o algoritmo hard c-means, também
referenciado na literatura como algoritmo k-means [1] [17].
O k-means é um método de categorização não-hierárquico rígido, criado para
agrupar dados não rotulados em categorias. É um dos métodos rígidos mais utilizados
por não impor restrições ao conjunto de amostras, podendo ser aplicado a qualquer
quantidade de dados [30].
Para um conjunto { }1, , nX x x= K de n amostras do espaço ℜD , onde as
classes do problema não são conhecidas, o método k-means associa cada amostra a
uma única categoria ou partição.
As categorias geradas assumem a forma de hiperesferas do ℜD de mesmo
tamanho, que são caracterizadas pelos seus centros.
Para o conjunto { }1, , cA a a= K de c partições rígidas, as seguintes
propriedades são válidas:
1
c
ii
a X=
=U (20)
i ja a = ∅I i j∀ ≠ (21)
42
ia X∅ ⊂ ⊂ i∀ (22)
A eq. (20) expressa o fato de que o espaço amostral é formado pela união de
todas as categorias. A eq. (21) indica que nenhum elemento pode pertencer a mais
de uma categoria e a eq. (22) mostra que nenhuma classe pode ficar vazia ou
conter todos os elementos.
O valor de c deve variar entre 2 < c < n, dado que para c = l, todos os
pontos pertencem à mesma categoria e para c = n, cada ponto pertence à sua própria
categoria. Nestes dois casos, não existe de fato um problema de categorização.
Para o método k-means, cada categoria é representada por um centro do
conjunto { }1, , cV v v= K . Neste método, cada amostra é agrupada na categoria que
estiver mais próxima, ou seja, na categoria cuja distância Euclidiana da amostra ao
centro é mínima.
A distância Euclidiana é dada pela fórmula:
( ) ( )1
22
1
,=
⎡ ⎤= = − = −⎢ ⎥
⎣ ⎦∑
p
ik k i k i kj ijj
d d x v x v x v (23)
onde: kjx é o elemento j do k-ésimo vetor de dados
ijv é o elemento j do i-ésimo vetor v (centro dos clusters)
p é a dimensão do vetor de dados
A matriz de partição { }11, , cnU u u= K é a matriz das funções características iju ,
com c linhas e n colunas, que expressa a que categoria cada amostra pertence. O termo
iju é a função característica do j-ésimo ponto na i-ésima categoria.
Os valores possíveis de iju são l, se a amostra pertence à categoria, ou 0, se
a amostra não pertence à categoria. Suas propriedades são dadas por:
11
c
iji
u=
=∑ j∀ (24)
43
1
0n
ijj
u n=
< <∑ i∀ (25)
10ìju ⎧
= ⎨⎩
ij i
ij i
u a
u a
∈
∉ (26)
As eq. (24) e (26) garantem que uma amostra pertence a exatamente uma
categoria e a eq. (25) indica que nenhuma categoria é vazia e que o número máximo
de elementos é n-1.
O k-means encontra a melhor partição rígida com c categorias para um espaço
amostral minimizando a função objetivo J(U,V), que é dada pela fórmula:
( ) ( )2
1 1
,c n
ij iji j
J U V u d= =
= ∑∑ (27)
No algoritmo k-means, o fator de parada 0ε ≥ determina o seu término.
Quando a matriz U tem uma variação menor do que ε entre duas iterações, o
deslocamento dos centros das categorias no espaço é muito pequeno, não havendo
uma mudança significativa no formato das partições. Isto indica que o algoritmo se
estabilizou e uma solução eficiente foi encontrada.
Como o k-means é um método rígido (o que implica que sua matriz U é rígida), o
critério mais comumente utilizado é que a diferença entre a matriz U em duas iterações
deve ser igual a 0, indicando que os centros não foram deslocados ou não tiveram um
deslocamento significativo.
A Figura 12 ilustra quatro classes reais do 2ℜ para um conjunto de amostras
geradas aleatoriamente. O método k-means foi aplicado a este conjunto de amostras
para 4 categorias e o resultado é o deslocamento dos centros dos clusters, inicializados
aleatoriamente para os pontos C1, C2, C3 e C4, respectivamente.
44
Figura 12 – Exemplo de Categorização pelo Algoritmo Hard C-Means
(Classes=4)
Algoritmo k-means;
Passo 1. Fixar o número de categorias c, 2 < c < n;
Passo 2. Inicializar aleatoriamente U, obedecendo às eq. (24) a (26);
Passo 3. Calcular o conjunto V dos c centros das categorias;
n
ik kk 1
i n
ikk 1
u xv
u
=
=
⋅=
∑
∑ (28)
Passo 4. Recalcular a matriz U para os novos centros das categorias;
45
SE ( )ij kjd min d , k c= ∀ ∈ /*se a categoria i é a mais próxima do ponto j */
ENTÃO iju 1=
SENÃO iju 0=
Passo 5. Comparar a nova matriz U com a anterior.
SE i, k∀ ik ik _ anterioru u− ≤ ε
ENTÃO fim
SENÃO volte para o Passo 3
3.2.3.2 Fuzzy C-Means
O algoritmo Fuzzy C-means (FCM), originalmente introduzido por J.
Bezdek em 1981, é a versão fuzzy do método rígido k-means, sendo empregado
para classificar um universo de amostras em categorias fuzzy de acordo com a sua
disposição no Espaço Euclidiano.
A informação a ser analisada é apresentada ao algoritmo na forma de
vetores “d” dimensionais. As componentes do vetor representam as “d”
características do objeto que são a base de comparação deste com outros objetos.
A saída do algoritmo define a classificação dos dados em clusters. Assim, os
centros dos clusters são buscados de maneira iterativa, visando-se minimizar a
função objetivo que representa a distância entre qualquer dado ao centro do
cluster. Os vetores de dados assinalados para o mesmo cluster são mais similares
entre si do que em relação aos vetores não assinalados para ele.
Considere um conjunto X = x1,…,xn de n vetores em Rd , representando os
dados. A categorização fuzzy de X em c clusters consiste em descobrir os valores
de µi,…,µn onde
[0,1]:Xi →µ e 1)( =∑ xi iµ , para todo Xx ∈
Estas funções são chamadas de funções de pertinência e representam o
grau de similaridade de um elemento com uma determinada classe.
46
O algoritmo FCM produz fuzzy clusters da mesma forma que o algoritmo
k-means produz hard clusters [3], através da minimização de uma função objetivo
(OFV):
∑∑= =
−=n
k
c
iik
mik vxJ
1 1
2)(µ (29)
onde ikµ é o grau de pertinência do k-ésimo vetor de dados kx ao i-ésimo cluster.
A similaridade de objetos é medida pela distância entre vetores de dados. Os
vetores v1,…,vc são os centros dos clusters. Altos graus de pertinência ocorrem
para pontos próximos aos correspondentes centros de clusters.
O índice m é chamado de expoente de peso fuzzy. Quanto maior o valor de
m menos os pontos dos dados, cujas pertinências são uniformemente baixas,
contribuem para a função objetivo. Conseqüentemente, estes pontos tendem a
contribuir menos na determinação dos centros e das funções de pertinência. O
peso fuzzy m varia entre [1, ∞), e determina o grau de “nebulosidade” da solução
final, que é o grau de sobreposição entre as classes (clusters). Com m=1, obtém-se
uma partição rígida (hard). À medida que m→∞, a solução se aproxima do seu
mais alto grau de fuzzificação.
A minimização da função objetivo é demonstrada a seguir:
0)(2 =−−=∂∂ ∑ ik
m
kik
i
vxvJ µ (30)
Logo,
m
kik
km
kik
i
xv
)(
)(
∑∑
=µ
µ (31)
Para o cálculo da outra derivada parcial, utilizando o método
multiplicativo de Lagrange com a condição 1)( =∑ xi iµ , obtém-se:
47
0)( 21 =−−=∂∂ − λµµ ik
mik
ik
vxmJ (32)
onde λ é o termo multiplicador de Lagrange.
Conseqüentemente,
∑ −
−
−
−=
jm
ik
mik
ikvx
vx))1/(1(2
))1/(1(2
)/1(
)/1(µ (33)
Caso estas equações pudessem ser resolvidas de uma forma objetiva, não
iterativa, a solução levaria diretamente à categorização fuzzy. Infelizmente isto
não é possível, mas estas equações servem como base para o processo iterativo
que convergirá para o mínimo local da função objetivo.
Logo, o método Fuzzy C-Means é um algoritmo iterativo que tem os
seguintes passos:
Algoritmo Fuzzy C-Means;
Passo 1. Escolhem-se os valores para c(número de clusters), n(número de
amostras) e para a matriz U (c x n) que é uma estimativa inicial dos
valores de pertinência.
(34)
Passo 2. Aplicando-se estas pertinências à eq. (35), obtém-se os centros
dos clusters.
m
kik
km
kik
i
xv
)(
)(
∑∑
=µ
µ
(35)
48
Passo 3. Calculam-se as distâncias de cada elemento no conjunto de dados
a cada centro de cluster por:
( ) ( )1
22( ) ( ) ( ) ( )
1
,=
⎡ ⎤= = − = −⎢ ⎥
⎣ ⎦∑
pt t t t
ik k i k i kj ijj
d d x v x v x v (36)
onde: ( )tkjx é o elemento j do k-ésimo vetor de dados no instante t
( )tijv é o elemento j do i-ésimo vetor v (centro dos clusters) no
instante t
p é a dimensão do vetor de dados
Passo 4. Atualizam-se os valores de pertinência para cada elemento. Os
valores atualizados de ikµ do elemento k no cluster i são computados pela
eq. (25) que pode ser reescrita por:
( )
( t 1)ik 2
m 1c (t )ik(t )
j 1 jk
1
dd
+
−
=
µ =⎡ ⎤⎛ ⎞⎢ ⎥⎜ ⎟⎜ ⎟⎢ ⎥⎝ ⎠⎣ ⎦∑
(37)
A eq. (28) garante que o somatório dos valores de pertinência de um
elemento sobre todos os clusters é igual a unidade. No caso do
denominador )(tikd ser igual a zero, (ou extremamente pequeno), temos
0)1( =+tjkµ (j = 1, 2, ..., c para j≠i) e 1)1( =+t
ikµ . Este caso corresponde ao
elemento kx coincidindo com o centro do cluster )(tiv .
Passo 5. A matriz )1( +tU é, então, recalculada com os novos valores de
pertinência:
49
(38)
Passo 6. O processo iterativo termina quando as pertinências, ou os
centros dos clusters, após sucessivas iterações forem inferiores a uma
tolerância pré-estabelecida; do contrário uma nova iteração é executada
fazendo-se t = t + 1 e retornando-se ao passo 2. A verificação da tolerância
pode ser feita por:
εµµ ≤−+ )()1(
,max t
ikt
ikki (39)
onde ε é a tolerância pré-definida.
O algoritmo Fuzzy C-Means descrito acima está baseado na tentativa de se
minimizar iterativamente a distância entre os elementos em cada um dos clusters
enquanto a distância entre os centros dos mesmos é maximizada. Como
demonstrado [3], a convergência do algoritmo após o processo iterativo definirá,
aproximadamente, um mínimo local para a função objetivo. A taxa de
convergência tende a ser maior, ou seja, com menor número de iterações, quando
m é próximo de 1 (valor CESP).
3.2.4 Medidas de Desempenho do FCM
Considerando que os algoritmos de categorização são não-
supervisionados, independentemente de o método aplicado ser rígido (hard) ou
nebuloso (fuzzy), o número final de partições dos dados requer algum critério de
validação. Esta análise de desempenho da categorização permite encontrar o
número ótimo de classes.
50
Um método consistente de validação para o FCM deve considerar
simultaneamente a compactação e a separação das partições. Considerando uma
análise baseada exclusivamente no índice de compactação, a partição ótima seria
aquela em que cada elemento do conjunto de dados fosse considerado como sendo
uma classe. Em contrapartida, considerando uma análise baseada exclusivamente
no índice de separação, a partição ótima seria o conjunto total de dados em uma
única classe, ou seja, índice de separação igual a zero. Logo o melhor
particionamento do espaço amostral é obtido pela minimização dos dois critérios
[29].
A seguir serão apresentadas as principais medidas de desempenho do FCM
utilizadas na literatura.
3.2.4.1 Medidas de desempenho do Expoente Fuzzy (m)
• A Função Objetivo “J” (OFV - Objective Function Value) - decresce
monotonicamente com o aumento do número de clusters e com o aumento
do valor do expoente fuzzy (m).
• O valor mJ ∂∂ / é a derivada do valor da função objetivo OFV em relação
ao expoente fuzzy m. O melhor valor de m para um dado cluster está no
ponto máximo da curva ( )J / m− ∂ ∂ vs. classe.
3.2.4.2 Medidas de Desempenho e Validação do Número de
Categoria
• FPI (Fuzziness Performance Index) [28] - é uma medida de validação do
número de categorias ideal de um conjunto amostral derivada do
coeficiente de partição [31].
Ele estima o grau de “nebulosidade” (fuzziness) gerado por um
número específico de categorias (clusters). O número ótimo de categorias
é obtido pelo valor mínimo de FPI. Sua fórmula é dada por:
51
111
−−
−=c
cFFPI (40)
Onde F é o Coeficiente de Partição [31], que indica o número
ótimo de categorias de um espaço amostral quando seu valor máximo é
atingido [19]. Em um espaço particionado o domínio de F varia no
intervalo 1/c ≤ F ≤ 1.
F é dado por:
2
1 1)(1 ∑∑
= =
=n
i
c
kikn
F µ (41)
F assume 1 quando a matriz U (eq. (34)) é rígida (hard), ou seja,
tem todos os seus elementos iguais a 0 ou 1.
Para F = 1/c, o sistema atinge o maior grau de nebulosidade
possível, ou seja, cada ponto pertence a todas as categorias com o mesmo
grau de pertinência (1/c). Logo, F é influenciado pelo número de
categorias e pelo aumento da sobreposição destas, decrescendo à medida
que o número de categorias aumenta.
À medida que o FPI se aproxima de 1, aumenta o grau de
compartilhamento entre as classes. Quando o FPI se aproxima de 0, as
classes se tornam mais distintas com menor grau de sobreposição. No caso
de FPI=0, as classes não são mais fuzzy e se tornam crisp.
• MPE (Modified Partition Entropy) [2] [31] – estima o grau de desordem
gerado por um número específico de clusters. Como o FPI, seus valores
variam entre 0 e 1. À medida que o MPE se aproxima de 1, a desordem é
predominante, enquanto que valores próximos de 0 indicam excelente
organização.
O valor do Modified Partition Entropy (MPE) é dado por:
52
cHMPE
log= (42)
onde H é a Função Entropia de Partição, que indica o número
ótimo de categorias de um espaço amostral quando seu valor mínimo é
atingido [19]. Em um espaço particionado o domínio de H varia no
intervalo log(c) ≥ H ≥ 0.
H é dada por:
)log(11 1
ik
n
i
c
kikn
H µµ∑∑= =
−= (43)
H assume 0 quando a matriz U (eq. (34)) é rígida (hard), ou seja,
tem todos os seus elementos iguais a 0 ou 1.
Para H = log(c), o sistema atinge o maior grau de “nebulosidade”
possível. Logo, H é influenciado pelo número de categorias e pelo
aumento da sobreposição destas, apresentando um comportamento
crescente à medida que o número de categorias aumenta.
• Distância de separação - Separate Distance (S) [37] – estima o grau de
compacidade e separação das categorias geradas.
Quanto menor o valor de S (eq. (44)), melhor a disposição das
categorias. Minimizar S corresponde a minimizar a função objetivo Jm, que
é a finalidade do algoritmo FCM. Para a constante nebulosa m, S é escrita
como:
m2min
JSn.d
= (44)
Onde n é o número de elementos da amostra.
A função objetivo Jm é dada por:
53
n c2 2
m ik iki 1 k 1
J d= =
= µ∑∑ (45)
O fator dmin é a distância Euclidiana mínima entre dois centros de
categorias (clusters):
min ,min i ji j
d v v= − (46)
Finalmente, substituindo as eq. (45) e (46) na eq. (44) tem-se:
22
1 12
,
min
c n
ij i ji j
i ji j
v xS
n v v
µ= =
−=
−
∑∑ (47)
A tabela 2 apresenta um resumo das medidas de validação de
categorias nebulosas e suas principais características detalhadas nesta
seção.
54
Medidas de
Validação
Intervalo Valor Ótimo Característica
111
−−
−=c
cFFPI 0 ≤ FPI ≤ 1 Minimizar Estima o grau de
nebulosidade gerado
por um número
específico de
clusters
cHMPE
log= 0 ≤ MPE ≤ 1 Minimizar Estima o grau de
desordem gerado
por um número
específico de
clusters
22
1 12
,
min
c n
ij i ji j
i ji j
v xS
n v v
µ= =
−=
−
∑∑ 0 ≤ S ≤ ∞ Minimizar Estima o grau de
compacidade e
separação das
categorias geradas
Tabela 2 – Medidas de Validação Nebulosas
3.2.5 Método Pareto Aplicado a Problemas Multi-Objetivos
O método Pareto é uma técnica usada para a solução de problemas com
múltiplos objetivos. Se existem dois objetivos a serem otimizados, será possível
encontrar uma solução ótima com relação ao primeiro objetivo, e uma outra
solução ótima com relação ao segundo objetivo.
Todas as soluções potenciais resultantes da otimização do problema de
multi-objetivos são classificadas em soluções dominadas e soluções não-
dominadas (conjunto Pareto-Ótimo) [23].
55
Considerando um problema de minimização, a solução x é dominada se
existe uma solução y melhor que x para todos os objetivos ( )if i 1, , k= K :
( ) ( )i if x f y≤ para todo 1 i k≤ ≤ (48)
Figura 13 – Método Pareto - Conceito de Dominância
Exemplo: Considerando o critério de minimização para as funções f1 e f2,
aplicando o conceito de dominância de Pareto às soluções apresentadas na Figura
13, pode-se concluir que:
• A e B são boas soluções, embora nenhuma seja melhor nos dois critérios;
• A e B são não-dominadas, pois não existem soluções melhores
considerando ambos os critérios;
• C, D, E e F são dominadas por outras soluções.
f1
f2
A
BC
DE
F
56
3.3 SISTEMAS NEURO-FUZZY DE CLASSIFICAÇÃO
Sistemas Neuro-Fuzzy são sistemas híbridos que associam a capacidade de
aprendizagem das Redes Neurais Artificiais com a capacidade de interpretação
lingüística dos Sistemas de Inferência Fuzzy. Esta combinação resulta nas
seguintes propriedades:
• Um sistema Neuro-Fuzzy é um sistema Fuzzy que é treinado por
algoritmos de aprendizado baseados na teoria das redes neurais
artificiais [5];
• Um sistema Neuro-Fuzzy pode ser visto como uma rede neural de três
camadas feedforward. A função de ativação é substituída por
operações t-norm e t-conorm. A primeira camada representa as
variáveis de entrada, a segunda camada (oculta) representa a base de
regras e a terceira camada representa as variáveis de saída [24];
• Um sistema Neuro-Fuzzy pode ser interpretado como um sistema de
base de regras fuzzy. É possível criar uma base de regras a partir de um
conjunto vazio, ou inicializá-lo a partir do conhecimento de um
especialista [25];
• O processo de aprendizagem de um sistema Neuro-Fuzzy considera as
propriedades semânticas do sistema fuzzy, resultando em restrições nas
modificações dos parâmetros do sistema;
• Um sistema Neuro-Fuzzy aproxima uma função n-dimensional (não
conhecida) que está parcialmente definida pelos dados de treinamento.
Como nas pesquisas e desenvolvimento da metodologia dos sistemas
híbridos Neuro-Fuzzy participam pesquisadores das duas áreas, têm-se duas
abordagens principais [15]:
o Redes de estrutura fixa, adotada na maioria das vezes pela
comunidade de pesquisadores da área de sistemas Fuzzy;
57
o Redes de estruturas auto-evolutivas, apresentadas pela comunidade
de pesquisadores da área de Redes Neurais.
Nas seções seguintes serão apresentados os Sistemas Neuro-Fuzzy de
Classificação NEFCLASS [24] e NFHB-Invertido [13] utilizados neste trabalho.
3.3.1 Modelo NEFCLASS
O modelo NEFCLASS representa um sistema híbrido neuro-fuzzy cujo
algoritmo de aprendizado está baseado em duas etapas principais:
• Aprendizado quando a estrutura do classificador é criada;
• Ajuste do classificador pela determinação dos parâmetros do
sistema através de um método iterativo de treinamento visando
aumentar a acurácia sem perder a interpretabilidade semântica.
O sistema de classificação Neuro-Fuzzy NEFCLASS é um sistema derivado
do modelo fuzzy perceptron genérico de três camadas. O modelo NEFCLASS pode
ser inicializado pelo conhecimento a priori (inserindo regras “se-então”) e pode ser
interpretado desta mesma forma após o processo de aprendizado, i.e., não é uma
“caixa preta” como usualmente são as redes neurais. Uma vez criada a base de
regras, o NEFCLASS incorpora o conhecimento dos conjuntos fuzzy adquirido
durante o processo adaptativo dos parâmetros das funções de pertinências relativos
ao algoritmo de treinamento supervisionado. Como as regras não são ponderadas
(pesos = 1), simplifica-se a análise semântica e conseqüentemente a interpretação
dos resultados.
3.3.1.1 Arquitetura
A estrutura do Sistema Neuro-fuzzy NEFCLASS é representada por uma
Rede Neural feedforward [16] de três camadas conforme apresentada na Figura
14.
58
Figura 14 – Arquitetura do modelo NEFCLASS
onde:
• kU é o conjunto de neurônios da camada k;
• uex associa uma entrada externa a cada neurônio 1∈u U ;
• Au associa uma função de ativação [ ]: 0,1ℜ →uA a cada neurônio ∈u U para calcular a ativação ua com:
( )( ) ( )= =u ua A ex u ex u para todo 1∈u U
59
e
=u ua net para todo { }, 2,3∈ ∈iu U i
• Ou associa uma função de saída [ ]: 0,1ℜ →uO a cada neurônio
∈u U para calcular a saída ( )= =u u u uo O a a para todo ∈u U .
• ( )1 2,′i jW u u é o peso na conexão do i-ésimo neurônio ′u da camada 1 ao j-ésimo neurônio u da camada 2;
• unet é a função de ativação da rede calculada com:
t-norm para todo 2∈u U
e
t-conorm para todo 3∈u U
A arquitetura do modelo NEFCLASS possui as seguintes características:
o A primeira camada representa as variáveis de entrada de cada
padrão p;
o A camada oculta representa as regras fuzzy;
o A terceira camada representa as variáveis de saída, uma unidade
(neurônio) para cada classe;
o Os neurônios utilizam t-norms e t-conorms como função de
ativação;
o Os conjuntos fuzzy são codificados como pesos na conexão dos
neurônios entre a camada de entrada e a camada oculta;
o Para manter a clareza semântica do modelo, as conexões da
camada escondida com a camada de saída têm peso 1 (conexão
existente) ou peso 0 (conexão inexistente);
o Cada neurônio da camada oculta só pode estar ligado a um
neurônio na camada de saída, ou seja, cada regra só pode ter como
conseqüente uma única classe.
60
3.3.1.2 Algoritmo de Aprendizado para Criação da Base de Regras
O sistema NEFCLASS pode ser construído a partir de um conjunto inicial
de padrões, ou pode partir de uma base de regras vazia que será criada em função
dos dados de treinamento (padrões). Cada variável de entrada terá seu domínio
particionado em conjuntos fuzzy (Figura 15).
Figura 15 – Classificação após aprendizado das regras a partir dos dados
de entrada x e y
Considerando funções de pertinência triangulares descritas por três
parâmetros (a,b,c) conforme indicado na Figura 16 (página 45), tem-se :
(49)
Os conjuntos fuzzy mais à direita e mais à esquerda do universo de
discurso são representados como metades de um trapézio.
Considerando um sistema NEFCLASS com as seguintes características:
x y
c1 c2
R1 R3R2
x y
c1 c2
R1 R3R2
small medium large
x
y
smal
lm
ediu
mla
rge
⎪⎪⎪⎪
⎭
⎪⎪⎪⎪
⎬
⎫
⎪⎪⎪⎪
⎩
⎪⎪⎪⎪
⎨
⎧
∈−−
∈−−
=µ→ℜµ
contrário caso0
]c,b[x sebcxc
)b,a[x seabax
)x(],1,0[: c,b,ac,b,a
61
n unidades na camada de entrada x1,...,xn;
k ≤ k max , onde,
k max é um parâmetro que representa o número máximo de regras
(unidades de neurônios na camada escondida);
k é o número inicial de regras (conhecimento prévio; para k = 0: base de
regras vazia);
m unidades na camada de saída: c1,...,cm (m é o número de classes);
Um conjunto de treinamento L ={(p1,t1),...,(ps,ts)} de s padrões, cada um
consistindo em um padrão de entrada p ℜ∈ n e um padrão de saída
(target) t ∈{0,1}m.
Considerando que o sistema NEFCLASS é inicializado com k ≤ k max
regras fuzzy, a criação da base de regras do NEFCLASS terminará quando for
encontrada, para cada padrão p, a combinação dos conjuntos fuzzy que possuam o
maior grau de pertinência. Esta combinação de conjuntos fuzzy é o antecedente de
uma regra promissora. Caso este antecedente não exista na base de regras, ele será
incluído. O conseqüente das regras é avaliado a partir do somatório de todos os
graus de pertinência de cada padrão em relação a cada classe de saída. A classe
que apresentar o maior valor de pertinência é a escolhida.
Após o processamento de cada um dos padrões de treinamento, obter-se-á
uma base de k’ regras. Se k’> kmax, somente as melhores kmax regras (método de
aprendizado das melhores regras) ou as melhores kmax / m (método de aprendizado
das melhores regras por classe) serão mantidas, enquanto que todas as outras serão
excluídas da base.
O método de seleção das melhores regras considera o valor do
desempenho de cada regra, que é computado durante o processamento dos
padrões. Se uma regra classifica um padrão corretamente, seu grau de pertinência
é somado ao valor de desempenho da regra; caso contrário, o valor é subtraído. A
eq. (50) apresenta o cálculo do desempenho de uma regra.
62
( ) ( )1
1 1 , onde
0 se classe( ) consequente( )1 caso contrário
=
= −
=⎧= ⎨
⎩
∑ x
x
Nc
r r pp
p r
P RN
Rc
(50)
onde:
N é o número de padrões;
( )r pR x é o grau de pertinência da regra r (net) para o padrão px .
Algoritmo de aprendizado em pseudocódigo:
para (todos os padrões p) faça
ache o antecedente A,
de forma que A( p) seja máximo;
se A não está na lista de antecedentes (A ∉L) então inclua A em L;
fim;
para (todos os antecedentes A ∈L) faça
ache o melhor conseqüente C para A;
crie a base de regras candidata R = (A,C);
determine o desempenho de R;
inclua R na base de regras B;
exclua R da lista de candidatas;
fim;
3.3.1.3 Algoritmo de Treinamento dos Conjuntos Fuzzy
O algoritmo supervisionado do NEFCLASS é executado de forma cíclica
utilizando o conjunto de padrões de treinamento, até que um determinado critério
de parada seja satisfeito, como, por exemplo, o número mínimo de padrões
classificados incorretamente, o valor do erro chega ao valor mínimo local, etc.
(Figura 17).
Após a propagação de um padrão, o erro é determinado para cada unidade
de saída. A partir deste erro, verifica-se em cada unidade de regra ativada na
63
camada escondida se o grau de pertinência deve ser aumentado ou diminuído
(Figura 16). Somente a função de pertinência identificada como responsável pela
avaliação do grau é ajustada. No modelo NEFCLASS o ajuste da função de
pertinência somente ocorrerá se não for violada nenhuma restrição de integridade
estabelecida pelo usuário. Como exemplo de restrições tem-se:
Os conjuntos fuzzy deverão se manter simétricos;
Os conjuntos fuzzy deverão se sobrepor em um grau fixado;
Os conjuntos fuzzy não poderão ultrapassar uns aos outros, ou seja,
deverão manter sua posição relativa no domínio de discurso da variável.
Os graus de pertinência deverão ter a soma igual a 1.
Figura 16 – Treinamento dos conjuntos fuzzy
64
Figura 17 – Gráfico NEFCLASS de Erro durante o Treinamento dos
Conjuntos Fuzzy
Do ponto de vista da arquitetura e do fluxo de dados, os conjuntos fuzzy
são treinados por um algoritmo tipo backpropagation [5]. Diferentemente da
aplicação em Redes Neurais, o NEFCLASS não utiliza o cálculo do gradiente
descendente. A heurística para o algoritmo de aprendizado dos conjuntos fuzzy é
extremamente simples e consiste em deslocar a função de pertinência à direita ou
à esquerda, fazendo que o grau de pertinência ( )xµ de um conjunto fuzzy x seja
aumentado ou reduzido (Figura 16). A seguir o algoritmo de aprendizado em
pseudocódigo, considerando-se uma função de pertinência triangular.
repita propague o próximo padrão (p,t);
para unidade de saída ic faça ( )= −i i iec t activation c ; */ it = alvo (target) /*
para cada regra R com activation(R)>0 faça ( ) ( )( ) ( )( )1 ,= ⋅ − ⋅ ⋅∑R ie activation R activation R W R c ec
{ }( ) ( ){ }
1, ,arg min ,
⊂=
Ki i
i nj W x R p
( ),= jW x Rµ
*/ ,a bµ µ and cµ são parâmetros do conjunto fuzzy µ /* */ learning rate 0>σ /*
( ) ( )( )
( )
sgn ;
;
;
= ⋅ ⋅ − ⋅ −
= − ⋅ ⋅ − +
= ⋅ ⋅ − +
b R i
a R b
c R b
e c a p b
e c a
e c a
µ µ µ
µ µ
µ µ
δ σ
δ σ δ
δ σ δ
65
modifique µ com , ,a b cδ δ δ , sem violar a integridade (constraints) para µ ;
fim; até (erro não mude ou seja atendido o critério de parada);
3.3.1.4 Redução na Base de Regras
Para garantir uma boa interpretabilidade do modelo e melhorar a
generalização, o NEFCLASS utiliza quatro estratégias de redução da base de
regras, a saber:
a-) Redução de Variáveis
Este método consiste em encontrar variáveis que não são importantes
para a classificação. A correlação entre as variáveis de entrada e a classe de
informação é utilizada visando uma ordenação para teste. A variável que
apresenta o menor grau de correlação é testada primeiramente sendo excluída
dos antecedentes de todas as regras. A seguir é feita uma verificação de
consistência das regras e os conjuntos fuzzy são treinados. Se houver uma
melhora de performance na classificação, o classificador é mantido. Caso
contrário, é recuperado o melhor classificador até então armazenado. O
processo descrito é repetido para todas as variáveis com baixo grau de
correlação.
b-) Redução de Regras
Consiste em excluir uma regra que nunca ou raramente resulta no grau
máximo de pertinência para uma determinada classe dada pelo seu
conseqüente. Todos os padrões são apresentados às regras. Para cada regra é
guardado o número de ocorrências de classificações corretas que produzem o
grau máximo de pertinência para cada classe. A regra com o menor número de
ocorrências é excluída da base e os conjuntos fuzzy são treinados. Se houver
uma melhora de performance na classificação, o classificador é mantido. Caso
contrário, é recuperado o melhor classificador até então armazenado. O
processo descrito é repetido para todas as regras com baixo número de
66
ocorrências. O processo pára quando não há mais melhoria de performance do
classificador, ou quando existe apenas uma regra por classe.
c-) Redução de Conjuntos Fuzzy Consiste em eliminar os conjuntos fuzzy cujo suporte é muito largo
dentro do domínio de discurso de uma variável. O processo ordena os
conjuntos fuzzy por largura do suporte. O conjunto fuzzy com maior largura
de suporte é excluído do antecedente de todas as regras. A seguir é feita uma
verificação de consistência das regras e os conjuntos fuzzy são treinados. Se
houver uma melhora de performance na classificação, o classificador é
mantido. Caso contrário, é recuperado o melhor classificador até então
armazenado. O processo pára quando não houver mais ganho de performance
do classificador. O procedimento descrito é repetido para todos os conjuntos
previamente selecionados com suporte largo.
d-) Redução de Termos
Consiste em eliminar termos que não influenciam o grau de pertinência
do conseqüente de uma regra. É verificado para cada regra se a retirada de um
termo lingüístico relativo a uma variável mantém o grau de pertinência do
conseqüente da regra. A regra com o menor número de casos é selecionada e o
termo é excluído dos antecedentes. Se houver uma melhora de performance na
classificação, o classificador é mantido. Caso contrário, é recuperado o melhor
classificador até então armazenado. O processo pára quando não houver mais
ganho de performance do classificador.
A seguir o algoritmo em pseudocódigo da redução da base de regras.
repita selecione o método de redução;
repita execute o passo de redução; traine os conjuntos fuzzy;
67
se (não há melhoria)
então desfaça o passo de redução;
até (nenhuma melhoria);
até (fim dos métodos);
3.3.2 Modelo Neuro-Fuzzy Hierárquico BSP Invertido
Os Sistemas Neuro-Fuzzy Hierárquicos [32] NFHB (Neuro-Fuzzy
Hierárquico Binary Space Partitioning), admitem um número de entradas
ilimitado e ainda são capazes de gerar automaticamente a sua própria estrutura e
criar sua base de regras. Esses modelos utilizam um método de particionamento
recursivo que divide o espaço de entrada das variáveis (características) do sistema,
sucessivamente, em duas regiões. Essa divisão recursiva do espaço de entrada
pode ser representada por uma árvore binária que ilustra as sucessivas subdivisões
do espaço de entrada.
Entretanto, o modelo NFHB, criado por [32], não é ideal para um sistema
classificador de padrões. Primeiramente, o modelo NFHB possui apenas uma
saída; para utilizá-lo como um classificador seria necessário criar um critério de
faixa de valores (janelas) na saída, onde cada faixa representa uma determinada
classe. Esse critério de faixas, no entanto, pode prejudicar o desempenho do
sistema, uma vez que as distâncias entre as faixas não têm, necessariamente,
relação com as distâncias entre as classes no espaço de entrada.
Em segundo lugar, o modelo NFHB original utiliza o método de inferência
Takagi-Sugeno [34], o que prejudica a interpretabilidade das regras,
principalmente nas aplicações de classificação.
Assim, foi derivado o modelo NFHB-Invertido [13] dedicado à
classificação de padrões e extração de regras, que utiliza a arquitetura do modelo
NFHB original na fase de aprendizado e em seguida inverte a estrutura gerada para
a validação dos resultados. A inversão adaptou o novo sistema à tarefa especifica
de classificação, pois se passou a ter o número de saídas do sistema igual ao
68
número de classes ao invés do critério de faixa de valores utilizado no modelo
NFHB original.
Além do objetivo de classificação de padrões, o sistema NFHB-Invertido
foi capaz de extrair conhecimento em forma de regras fuzzy interpretáveis
expressas como: SE x é A e y é R então padrão pertence à classe Z.
3.3.2.1 Célula Básica NFHB-Invertida
Uma célula básica NFHB-Invertida é um mini sistema neuro-fuzzy que
realiza um particionamento fuzzy e binário em um determinado espaço, segundo
as funções de pertinência descritas pela Figura 18. A célula NFHB-Invertida gera
duas saídas precisas (crisp) após um processo de defuzzificação.
Figura 18 – Exemplo de perfil das funções de pertinência da célula BSP-
Invertida
A Figura 19 ilustra a célula básica NFHB-Invertida.
Figura 19 – Célula NFHB-Invertida
69
As saídas (crisp) de uma célula NFHB-Invertida, ilustrada na Figura 28,
são dadas pelas eq. (51) e (52).
( )( ) ( )1
xy
x xβ ρ
ρ µ∗
=+
(51)
( )( ) ( )2
xy
x xβ µ
ρ µ∗
=+
(52)
onde β corresponde a um dos dois casos possíveis a seguir:
• À entrada da primeira célula: caso em que 1β = , onde o valor
unitário na entrada da primeira célula representa todo o universo de
discurso da variável ix que está sendo utilizada como entrada da
célula.
• À saída de um estágio de nível anterior: caso em que iyβ = , onde
iy , representa uma das duas saídas de uma célula qualquer “j”,
cujo valor é calculado pela eq. (51) ou pela eq. (52).
Figura 20 – Interior da Célula NFHB-Invertida
Considerando o perfil sigmóide implementado para a função de
pertinência ( µ ) alto e o seu complemento a um, implementado para a função de
pertinência ( ρ ) baixo, tem-se:
70
( ) ( ) 1x xρ µ+ = (53)
Logo substituindo a eq. (53) nas eq. de saída (51) e (52):
( )1y xβ ρ= ∗ (54)
( )2y xβ µ= ∗ (55)
3.3.2.2 Arquitetura NFHB-Invertida
Como dito anteriormente, o modelo NFHB-Invertido utiliza o modelo
NFHB original para criar sua estrutura, e em seguida utiliza a estrutura de forma
invertida para a tarefa de classificação.
A Figura 23 mostra a arquitetura NFH-Invertida obtida a partir da estrutura
NFHB original ilustrada na Figura 21 e cujo particionamento está representado na
Figura 22.
Na arquitetura NFHB-Invertida o sistema passa a ter várias saídas, e essas
saídas são conectadas às células T-conorms que definem as classes. No exemplo
da Figura 23, a saída do sistema com o maior valor, definirá a classe (classe1,
classe2, ou classe 3) a que pertence o padrão que foi apresentado ao sistema.
Para o ajuste dos pesos dos arcos que ligam as saídas das células folhas
finais aos neurônios T-conorms é utilizado o método dos Mínimos Quadrados.
Maiores detalhes sobre a aplicação deste método pode ser encontrado em [13].
71
Figura 21 – Estrutura NFHB
Figura 22 – Particionamento do espaço de entrada do sistema NFHB.
72
Figura 23 – Arquitetura NFHB-Invertida
Na estrutura NFHB apresentada na Figura 21, as partições inicias 1 e 2
(célula ‘BSP 0’) foram subdivididas; portanto os conseqüentes de suas regras são
as saídas dos subsistemas 1 e 2, respectivamente. Estes, por sua vez, têm, como
conseqüentes os valores d11, y12, d21, d22, respectivamente. O conseqüente y12 é a
saída da célula ‘BSP 12’. Caso se estejam utilizando conseqüentes de Sugeno de
ordem 0 (valores constantes), cada ‘di’ corresponde a um ‘singleton’. Usando-se
conseqüentes de Sugeno de ordem 1, cada ‘di’ corresponde a uma combinação
linear das entradas, conforme dado pela eq. (56).
µ(x)ρ(x)d2*µ(x)d1*ρ(x) y
++
=
(56)
A saída do sistema NFHB mostrado pela Figura 21 é dada pela eq. (57), a
seguir.
73
).d.d())d.d(.d( y 222221212.122122.121121.1211111. α+αα+α+αα+αα= (57)
A forma genérica de um sistema NFHB de 3 níveis é representada na eq.
(58). As variáveis ki e kij assumem apenas valores iguais a ‘0’ou ‘1’, indicando a
existência ou não das bi-partições de ordem ‘i’e ‘ij’, respectivamente.
∑ ∑ ∑∑ ∑ ∑= = == = =
ααα+αα+α=2
1i
2
1j
2
1k
ijkijk ijk ij i
2
1i
2
1i
2
1j
ij ij ij i i i i .d.k...d.k..d.k y (58)
onde:
• αi, αij, αijk, são os níveis de disparo das regras de cada bi-partição i, ij,
ou ijk, respectivamente;
• ki (kij, kijk), é igual a ‘1’ se a partição i, (ou ij, ou ijk) existe e ‘0’ caso
contrário;
• di, dij, dijk, são os conseqüentes (singletons ou combinações lineares)
das regras existentes.
Na fórmula da expressão geral de saída do modelo NFHB, descrita acima,
já se levou em consideração a simplificação causada pelo uso das funções de
pertinência complementares (ρ + µ = 1) no método de defuzzificação das saídas
de cada subsistema neuro-fuzzy.
O particionamento da Figura 21 pode ser representado por uma árvore
binária com a estrutura mostrada na Figura 24, a seguir.
74
Figura 24 – Árvore binária referente ao particionamento da Figura 21
Nesta árvore binária os nós simbolizados por pequenos círculos são nós
interiores e representam regiões que foram subdivididas. Os nós simbolizados por
pequenos quadrados são nós terminais e representam as bi-partições, isto é, as
regiões que não sofreram subdivisões. A raiz da árvore simboliza todo o espaço a
ser particionado.
O conjunto de regras que traduz lingüisticamente o exemplo da Figura 21
é:
Se x1 é baixo (x1 ∈ ρ0) então
{Se x2 é baixo (x2 ∈ ρ1) então y = d11
Se x2 é alto (x2 ∈ µ1) então
{Se x1 é baixo (x1 ∈ ρ12) então y = d121
Se x1 é alto (x1 ∈ µ12) então y = d122}
}
Se x1 é alto (x1 ∈ µ0) então
{Se x2 é baixo (x2 ∈ ρ2) então y = d21
Se x2 é alto (x2 ∈ µ2) então y = d22}
onde:
• ρ0 , µ0, são as funções de pertinência que definem a partição de nível
0, correspondente à célula ‘BSP 0’;
75
• ρ1 , µ1, são as funções de pertinência que definem a subdivisão da
partição 1, correspondente à célula ‘BSP 1’;
• ρ2 , µ2, são as funções de pertinência que definem a subdivisão da
partição 2, correspondente à célula ‘BSP 2’;
• ρ12 , µ12, são as funções de pertinência que definem a subdivisão da
partição 12, correspondente à célula ‘BSP 12’.
Cada uma das funções de pertinência acima possui dois parâmetros ‘a’ e
‘b’, que definem o perfil das funções alto (µ) e baixo (ρ) de cada variável de
entrada.
O parâmetro ‘a’ que define a inclinação das funções de pertinência das
células do segundo nível é o dobro do parâmetro ‘a’ das funções de pertinência da
célula do primeiro nível. Isto permite definir o parâmetro ‘a’ do primeiro nível
como um hiperparâmetro, no caso de particionamento fixo.
O parâmetro ‘b’ é ajustado para que o ponto médio de transição das
funções de pertinência das células do segundo nível coincida com a metade do
quadrante do primeiro nível que foi decomposto.
As expressões que definem essas funções são:
µ(x) = Sig[a(x-b)] (59)
e
ρ(x) = 1- µ(x) (60)
onde Sig( ) é a função de pertinência sigmóide dada pela eq. (61) descrita
abaixo.
e11)b,a,x(sig)x(
)bx(a −−+==µ (61)
76
3.3.2.3 Algoritmo de Aprendizado NFHB-Invertido
O algoritmo de aprendizado do modelo NFHB-Invertido [13] é igual ao do
modelo NFHB original [32]. Para o modelo NFHB-Invertido foi utilizado o
método dos Mínimos Quadrados Ordinários (MQO) para calcular os conseqüentes
(di’s) e o Back Propagation para calcular os parâmetros (a e b) dos antecedentes
das regras.
O processo de aprendizado do modelo NFHB é efetuado em oito passos
correspondentes à numeração do fluxograma da Figura 25. Este algoritmo
descreve o aprendizado de um sistema NFHB com conseqüentes singletons ou
conseqüentes de Sugeno de ordem 1 (combinações lineares das entradas).
Como foi visto anteriormente, os parâmetros que definem os perfis das
funções de pertinências dos antecedentes e conseqüentes são encarados como os
pesos fuzzy dos sistemas neuro-fuzzy. Assim, no sistema NFHB, os di e os
parâmetros ‘a’ e ‘b’ são encarados como sendo os pesos fuzzy do modelo.
77
Figura 25 – Algoritmo de Aprendizado do modelo NFHB
Os oito passos do algoritmo de aprendizado estão descritos abaixo:
1) Cria-se a bi-partição inicial dividindo-se em duas partes o espaço
de entrada, utilizando dois conjuntos fuzzy, alto e baixo, da
variável de entrada x. Neste passo é criada a primeira célula BSP,
chamada de célula raiz.
2) Cada parâmetro ajustável di (peso fuzzy) é inicializado com a
média dos valores alvo dos padrões de saída que incidem sobre a
bipartição (Figura 22) de índice i. Por exemplo, para se calcular o
valor inicial do peso d2, somam-se todos os valores alvo de
78
padrões que incidem sobre o quadrante 2, e em seguida, divide-se o
valor encontrado pelo número de padrões que incidem sobre o
quadrante 2. Esse processo se aplica aos conseqüentes singletons
ou, no caso de conseqüentes de combinações lineares, ao parâmetro
constante bias. O parâmetro b dos antecedentes das regras é
inicializado com o valor igual à metade do intervalo do universo de
discurso da variável de entrada da célula. O parâmetro a dos
antecedentes das regras foi inicializado, por escolha heurística,
com o valor igual ao dobro do inverso do universo de discurso
daquele intervalo. As eq. (62) e (63) ilustram a inicialização de a e
b.
a = 2 / (LimS – LimI) (62)
b = (LimS + LimI) / 2 (63)
onde: LimI e LimS são, respectivamente, os limites inferior e
superior do universo de discurso da variável de entrada do
particionamento da célula.
3) O erro total do sistema é calculado para todo o conjunto de
treinamento, de acordo com a expressão do erro médio quadrático:
2L
1n
dnnrms )yy(
L1E ∑
=
−= (64)
onde L é o número de padrões do conjunto de treinamento e yn e
ynd são, respectivamente, o valor de saída do sistema NFHB e o
valor desejado de saída para o padrão de índice ‘n’.
Caso este erro esteja abaixo do mínimo desejado, o processo de
aprendizado pára; caso contrário, o processo de aprendizado
continua com o passo 4.
4) Para o ajuste dos pesos fuzzy podem ser usadas as seguintes
implementações:
79
a) O método do Gradient Descent ajusta apenas os pesos
fuzzy di (conseqüentes singleton ou pesos das
combinações lineares). Neste caso, é utilizado o
particionamento fixo, não havendo ajuste dos perfis dos
antecedentes a e b;
b) O método dos mínimos quadrados ordinários (MQO)
ajusta apenas os pesos fuzzy di (conseqüentes singleton
ou pesos das combinações lineares). Neste caso também é
utilizado o particionamento fixo;
c) O MQO ajusta os pesos fuzzy d e um método de Gradient
Descent ajusta os parâmetros a e b das funções de
pertinência dos antecedentes. Neste caso tem-se o que se
chama de particionamento adaptativo.
d) Um método de Gradient Descent ajusta tanto os pesos
fuzzy di’s quanto os parâmetros a e b das funções de
pertinência dos antecedentes. Neste caso tem-se também
o particionamento adaptativo.
5) Nesta etapa, cada bipartição é avaliada em relação à sua
contribuição para o erro total e em relação ao erro mínimo
aceitável. Cada bi-partição com erro inaceitável é separada; a
avaliação do erro gerado pelo conjunto de dados que incidem sobre
a partição ij é calculada pela eq. (65).
2L
1n
dnn
nij
ni
ijrms )yy(
L1E ∑
=
−⋅α⋅α= (65)
onde: niα , e n
ijα são os níveis de disparo das regras para o padrão
‘n’.
6) Para limitar o crescimento indefinido da estrutura do sistema, foi
utilizado um parâmetro de aprendizado denominado taxa de
decomposição (δ) [37]. Este parâmetro é adimensional e atua
80
impedindo que o processo de decomposição seja realizado
indefinidamente. Seu valor situa-se, geralmente entre, 0,001 e 0,05.
Ele é comparado constantemente, durante o aprendizado, com a
população de padrões que incidem sobre um determinado
quadrante. Quando a densidade populacional de padrões de um
quadrante (razão entre o número de padrões que incidem sobre o
quadrante e o número total de padrões) cai abaixo da taxa de
decomposição, este quadrante não deve ser decomposto, o que
limita o crescimento da estrutura.
7) Neste passo é efetuada a decomposição das partições separadas.
Para cada bi-partição separada é realizado um processo de
decomposição que segue duas vertentes:
Vertente 1) Aloca-se um novo nó (nova célula) na estrutura BSP
para a bi-partição separada (ela é dividida em duas). Deste modo,
são geradas duas novas funções de pertinência que constituirão as
duas partições recém criadas. Isto é feito independentemente do
tipo de conseqüente empregado pelo modelo. É o caso de se
trabalhar com o conseqüente de um só tipo (singletons ou
combinações lineares). A Figura 26 ilustra este processo.
81
Figura 26 – Vertente 1 de decomposição BSP.
Vertente 2) Nesta vertente utilizam-se conseqüentes mistos
(singletons e combinações lineares simultaneamente). Antes de se
particionar em duas partes uma bipartição, verifica-se se seu
conseqüente é do tipo singleton. Caso o seja, substitui-se o
conseqüente singleton por uma combinação linear de entradas; caso
contrário, procede-se a decomposição descrita na vertente 1,
utilizando-se inicialmente singletons como conseqüentes da nova
célula alocada. A Figura 27 ilustra este processo.
82
Figura 27 – Vertente 2 de decomposição BSP
8) Volta ao passo 3 para continuar o aprendizado.
3.3.2.4 Seleção das Entradas das células BSP
Para a escolha das entradas das células BSP do modelo NFHB-Invertido
foi utilizada neste trabalho a estratégia de seleção fixa que proporciona bons
resultados com um custo computacional muito reduzido.
No caso específico dos modelos NFHB e NFHB-Invertido, a seleção
adequada dos atributos para cada célula evita particionamentos desnecessários,
acarretando estruturas de árvore BSP mais compactas que resultam em uma
melhor generalização, um menor número de regras e um maior grau de
interpretabilidade.
A estratégia empregada no sistema NFHB-Invertido para a seleção de
variáveis utiliza uma simplificação da estratégia utilizada pelo NFHB original,
baseada no modelo neuro-fuzzy ANFIS proposto por Jang [18].
83
O modelo neuro-fuzzy ANFIS é funcionalmente equivalente a um sistema
de inferência fuzzy de Takagi-Sugeno, isto é, as regras são do tipo:
Se x é Alto e y é Médio então z = f(x,y)
A metodologia empregada no NFHB original [32] utiliza mini sistemas
ANFIS com apenas duas variáveis de entradas (Figura 28(a)), cada uma com 4
conjuntos fuzzy. Deste modo, o espaço de entrada é dividido em 16 partes (Figura
28(b)). As entradas dos mini sistemas ANFIS são atributos da base de dados
escolhidos dois a dois. Cada um dos mini sistemas ANFIS (um para cada par de
atributos da base de dados) é treinado durante certo número de ciclos
especificado. Em seguida, calcula-se o erro de classificação para cada
configuração de dois atributos. Posteriormente, as duplas de entradas são listadas
em ordem crescente do valor do erro, selecionando-se, primeiramente, as entradas
que geraram o melhor desempenho (menor erro).
Entretanto, nos modelos NFHB e NFHB-Invertido cada célula tem
somente uma entrada, surgindo a questão de qual das duas entradas selecionadas
pelo mini sistema ANFIS deve ser primeiro utilizada. Para solucionar esse
problema, o NFHB-Invertido utiliza mini sistemas ANFIS com apenas uma
entrada dividida em 8 conjuntos fuzzy, conforme pode ser observado pela Figura
29(a). Neste caso, o espaço de entrada é dividido em 8 partições, conforme
mostrado na Figura 29(b).
T
T
T
T
T
T
T
T
∑
Ai
Aj
.
.
.
.
T
T
T
T
T
T
T
T
∑
Ai
Aj
T
T
T
T
T
T
T
T
∑
T
T
T
T
T
T
T
T
TT
TT
TT
TT
TT
TT
TT
TT
∑
Ai
Aj
.
.
.
.
Atributo 1
M1 M4M2 M3
Atributo
2
M1
M4
M2
M3
Atributo 1
M1 M4M2 M3
Atributo 1
M1 M4M2 M3
Atributo
2
M1
M4
M2
M3
Atributo
2
M1
M4
M2
M3
Figura 28 (a) – Mini sistema ANFIS
(com 2 entradas) para seleção de
variáveis do modelo NFHB original.
Figura 28 (b) – Particionamento
ANFIS de duas entradas com 4
conjuntos fuzzy cada.
84
y∑Ai y∑Ai
Atributo 1
M1 M8M7M6M5M3M2 M4
Atributo 1
M1 M8M7M6M5M3M2 M4
Figura 29 (a) – Mini sistema ANFIS
(com 1 entrada) para seleção de
variáveis do modelo NFHB-Invertido.
Figura 29 (b) – Particionamento
ANFIS de uma entrada com 8
conjuntos fuzzy.
Neste caso, o algoritmo para seleção de variáveis seleciona um atributo da
base de dados e treina o mini sistema ANFIS durante um número de ciclos
especificado. Em seguida, calcula-se o erro de classificação para esse atributo.
Um outro atributo é então escolhido e um novo treinamento do sistema é
realizado. Posteriormente, os atributos são listados em função do erro,
escolhendo-se, primeiramente, os atributos de menor erro de treinamento.
Uma vez determinada a ordem de relevância dos atributos, posteriormente,
durante o processo de aprendizado e construção da arquitetura NFHB-Invertido,
cada um destes atributos é usado como entrada para cada nível da árvore BSP. A
mesma entrada (atributo) é utilizada para todos os nós do mesmo nível.
Esta estratégia gera particionamentos desnecessários devido ao fato de que
todos os nós num mesmo nível são forçados a utilizar a mesma entrada previamente
fixada, a qual nem sempre é a característica mais adequada para esse nó. Uma das
vantagens desta estratégia é que o custo computacional é muito pequeno, já que a
seleção de características é realizada uma única vez, antes do processo de aprendizado.
Os resultados obtidos são bem competitivos, resultando, em muitos casos, em uma
alternativa interessante em termos do compromisso entre tempo e desempenho.
85
A metodologia da estratégia fixa pode ser resumida em dois passos (Figura
30):
a) A base de dados original é utilizada em sua totalidade para
escolher os atributos mais relevantes do ponto de vista da informação
contida neles. Mediante o algoritmo de seleção anteriormente descrito, os
atributos são ordenados de forma decrescente de importância. Este
processo é realizado uma única vez, antes do processo de treinamento.
b) A lista com o resultado e ordem dos atributos é armazenada.
Posteriormente durante o processo de treinamento e geração da estrutura de
árvore BSP, é extraído da lista o atributo correspondente a cada nível. Ou
seja, todos os nós do nível "i" utilizam como entrada o atributo contido
na posição "i" da lista previamente ordenada.
86
Figura 30 – Seleção Fixa de Atributos
3.3.2.5 Extração de Regras
Uma das principais vantagens do modelo NFHB-Invertido [13] é a sua
capacidade de extrair conhecimento, a partir da estrutura gerada pelo aprendizado,
sob o formato de regras fuzzy (de classificação), com o intuito de descobrir
informação em uma determinada base de dados. Diferentemente do NFHB
original, as regras extraídas neste modelo são do tipo: Se x é alto e y é grande e...
e w é quente então classe k.
87
Para efetuar a extração das regras obtidas através do processo de
aprendizado, o modelo NFHB-Invertido utiliza a estrutura BSP invertida antes de
ser conectada aos neurônios T-conorm. Deste modo, cada partição do espaço de
entrada (nó folha) terá uma regra associada. Entretanto, é importante ressaltar que
sendo o NFHB-Invertido um sistema fuzzy, os elementos de cada partição
pertencem a todas as k classes existentes no problema, com diferentes graus de
pertinência. Portanto, cada partição da estrutura BSP resultante gera k sub-regras,
cada uma com o seu grau de validade determinado pela acurácia e abrangência
fuzzy.
Esse novo processo de extração de regras segue os três seguintes passos:
1. Caminhamento na árvore BSP;
2. Visualização das regras fuzzy hierárquicas em formato
padrão (não-hierárquico);
3. Avaliação das regras utilizando a acurácia fuzzy e
abrangência fuzzy.
Cada um dos passos acima é descrito nas próximas seções.
3.3.2.5.1 Caminhamento na Árvore BSP
Para ilustrar a metodologia de extração de regras do modelo NFHB-
Invertido, será considerada uma base de dados hipotética consistindo de 8 padrões
(de A até H) de dois atributos (Idade e Peso) e duas classes {0, 1}, conforme
apresentado na Tabela 3.
Tabela 3 – Base de Dados usada como exemplo no método de extração de regras.
88
Suponha que a estrutura BSP gerada após o processo de aprendizado seja a
mostrada na Figura 31.
Figura 31 – Árvore BSP criada a partir da base de dados da Tabela 3.
Como mencionado anteriormente, no caso de árvores crisp, cada padrão
pertence ou não a uma partição; já no caso fuzzy, todos os padrões da Tabela 3
(A, B, C, ..., H) estão presentes com diferentes graus em todas as partições. Deste
modo, o primeiro passo no processo de extração de regras no modelo NFHB-
Invertido é o cálculo do grau de pertinência de cada padrão a todas as partições
existentes (nós folhas). Este cálculo é realizado caminhando-se na árvore BSP e
efetuando-se a interseção (“E”) dos graus de pertinência de cada padrão a cada
nível da árvore.
A Figura 32 apresenta, para a base de dados da Tabela 3, o resultado dos
graus de disparo (α) de cada padrão em cada partição (nó da árvore), que é
calculado utilizando o operador “produto” para efetuar a interseção de todos os
antecedentes da regra. Na Figura 32 é destacado o cálculo do grau de disparo do
padrão C em todas as três partições. Destacam-se também os padrões pertencentes
à classe 0 (células em fundo branco) e dos pertencentes à classe 1 (células em
fundo cinza).
89
Figura 32 – Grau de disparo (α) de cada regra (partição) usando o produto
como operador “T-norm”
Conforme pode ser observado na Figura 32, todos os padrões estão
presentes em todas as partições, com maior ou menor grau, independentemente da
classe a qual pertencem. Portanto, percebe-se que cada caminhamento resulta em
um antecedente que classifica todas as classes existentes na base de dados,
gerando para cada partição k sub-regras. O grau de adequabilidade de cada sub-
regra é definido pelas acurácia e abrangência fuzzy, definidas na seção 3.3.2.5.3.
90
3.3.2.5.2 Visualização das Regras
Apesar do modelo NFHB-Invertido possuir uma estrutura hierárquica, o
conjunto de sub-regras é apresentado na forma “padrão” (não hierárquica). A
seguir, são apresentados os antecedentes das regras fuzzy extraídas da arquitetura
BSP mostrada na Erro! Fonte de referência não encontrada.32. Como pode ser
verificada, cada partição gera duas sub-regras, uma para cada classe existente na
base de dados.
0 • Partição 1: Se Idade é Baixa Então Classe
1
0 • Partição 2: Se Idade é Alta e o Peso é Baixo Então Classe
1
0 • Partição 3: Se Idade é Alta e o Peso é Alto Então Classe
1
O passo final no processo de extração de regras do modelo NFHB-
Invertido diz respeito ao cálculo do grau de validade de cada sub-regra. Esse passo
é descrito na próxima seção.
3.3.2.5.3 Avaliação das Regras
Para avaliar as sub-regras geradas em cada partição, foram definidas duas
medidas fuzzy de avaliação: acurácia fuzzy e abrangência fuzzy.
Acurácia Fuzzy
A acurácia de uma regra mede o quanto a solução é boa em função do
grau de certeza, ou confiança, obtido através do conjunto de dados. Logo, a
91
acurácia mede o grau de aderência de uma regra descoberta em relação à base
de dados.
Considerando que no modelo fuzzy todos os padrões da base de dados
estão presentes, em maior ou menor grau, em todas as partições, foi utilizada a
medida de acurácia fuzzy conforme a eq. (66).
,1
,1
_ −
−
=∑
∑
N
i j
i
P
Nj
N l
i jj
Acuracia Fuzzyα
α (66)
onde:
iN é a classe N da partição i;
i , jNα é o grau de pertinência do padrão j da classe N da partição i
i, jα é o grau de pertinência do padrão j na partição i;
NP é o número total de padrões da classe N;
l é o número total de padrões da partição i;
Portanto, a Acurácia Fuzzy para as classes 0 e 1 na partição 1 são as
seguintes (vide Figura 32)
10
0.40 0.40 0.20 0.15 1.15_ 0.2450.95 0.90 0.80 0.40 0.40 0.20 0.15 0.90 4.7
Acuracia Fuzzy + + += = =
+ + + + + + +
11
0.95 0.90 0.80 0.90 3.55_ 0.7550.95 0.90 0.80 0.40 0.40 0.20 0.15 0.90 4.7
Acuracia Fuzzy + + += = =
+ + + + + + +
O somatório de todas as acurácias das classes correspondentes a uma regra
(partição) é igual a 1, uma vez que as funções de pertinência de cada nó são
complementares, e que o grau de presença de cada padrão em cada partição é
calculado pela interseção dos graus de disparo em cada nó utilizando o operador
produto com o conectivo “E”.
O somatório dos graus de pertinência de cada padrão em todas as partições
é igual a 1 pelas características acima mencionadas (funções complementares e
operador produto).
92
Abrangência Fuzzy
A abrangência de uma regra fuzzy fornece a medida do peso que cada
regra tem no total da base de regras, ou seja, quantos padrões são afetados por
essa regra. Logo, a abrangência mede o grau de influência de uma regra
descoberta em relação à base de dados.
Considerando que no modelo fuzzy todos os padrões da base de dados
estão presentes, em maior ou menor grau, em todas as partições, foi utilizada a
medida de abrangência fuzzy conforme a eq. (67).
,1_ ==
∑k
i jj
iAbrangencia FuzzyP
α (67)
onde:
i, jα é o grau de pertinência do padrão j na partição i;
P é o número total de padrões na base de dados;
k é o número de padrões da partição i;
Com base na Figura 32, foi calculada a Abrangência Fuzzy apresentada a
seguir:
1 0.95 0.90 0.80 0.40 0.40 0.20 0.15 0.90_ 0.598
Abrangencia Fuzzy + + + + + + += =
2 0.045 0.09 0.16 0.24 0.24 0.16 0.127 0.08_ 0.148
Abrangencia Fuzzy + + + + + + += =
3 0.005 0.01 0.04 0.36 0.36 0.64 0.722 0.02_ 0.278
Abrangencia Fuzzy + + + + + + += =
Pelas características anteriormente citadas (funções de pertinência
complementares e operador produto), a composição de todas as regras abrange o
total de padrões, ou seja, o somatório das abrangências de todas as partições é
igual a 1.
93
3.4 RESUMO
Neste capítulo foram apresentadas as técnicas de inteligência artificial
escolhidas para o desenvolvimento do sistema inteligente de detecção de
irregularidades na medição de energia elétrica.
Para a etapa de categorização natural das unidades consumidoras foi
escolhido o algoritmo Fuzzy C-Means (FCM) devido a sua característica não
gida de categorização do espaço amostral, o que reflete mais a realidade do dia-
ría-dia.
Para a etapa de classificação foram escolhidos os sistemas neuro-fuzzy
NEFCLASS e NFHB-Invertido, por terem a capacidade de extrair as regras que
regem as irregularidades na medição de energia elétrica das diversas unidades
consumidoras.
Para o modelo NFHB-Invertido, foram utilizadas medidas fuzzy de
avaliação: acurácia e abrangência, para avaliar a aderência e abrangência de cada
regra em relação à base de dados.
No próximo capítulo é detalhado o Sistema de Classificação de Unidades
Consumidoras de Energia Elétrica utilizado no estudo de casos de unidades
consumidoras supridas em baixa tensão e média tensão.
Recommended