Notas de Aula - Inteligência Computacional Aplicada

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 113

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO DO CEARÁ

DEPARTAMENTO DA INDÚSTRIA
PÓS-GRADUAÇÃO

CLÁUDIO MARQUES DE SÁ MEDEIROS


GUILHERME DE ALENCAR BARRETO

NOTAS DE AULA:
INTELIGÊNCIA COMPUTACIONAL APLICADA

FORTALEZA
2015
Sumário

1 Descrição do Problema de Classificação de Padrões 4


1.1 O Modelo de Classificação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Características ou Atributos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 Vetores de Características ou de Atributos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4 O Modelo Clássico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2 Classificadores Elementares 7
2.1 Medidas de Dissimilaridade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2 Classificadores Elementares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.1 Método do Encaixe no Molde (Template Matching) . . . . . . . . . . . . . . . . . . . . 9
2.2.2 Árvores de Decisão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2.3 Classificadores Baseados em Distância Mínima . . . . . . . . . . . . . . . . . . . . . . 11
2.2.4 O Produto Interno e sua Relação com a Distância Euclidiana . . . . . . . . . . . . . . 16

3 Técnicas de Clusterização Baseadas em Protótipos 18


3.1 O Conceito das Redes Neurais Não-Supervisionadas Competitivas . . . . . . . . . . . . . . . . 19
3.2 Pré-processamento dos Dados de Entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.3 Rede WTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.4 Rede FSCL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.5 Rede SOM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.6 Rede Neural-Gas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.7 Convergência . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.8 Vantagens das Redes Neurais Competitivas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

4 Classificadores Paramétricos: O Caso Gaussiano 26


4.1 Interpretação Estatística do Problema de Decisão . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.2 Distância Mahalanobis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.2.1 Covariância . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.2.2 Contornos (Curvas de Nível) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.3 Superfícies de Decisão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.4 O Classificador e Sua Função Discriminante . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.5 Estudo de Caso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

5 Classificadores Não-Paramétricos 40
5.1 Considerações Iniciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.2 Método do Histograma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.3 Método dos k-Vizinhos Mais Próximos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.4 Método de Kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5.5 Estudo de Caso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

1
6 Classificadores Lineares Baseados em Aproximação de Funções 46
6.1 Definições Preliminares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
6.2 Modelo ADALINE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
6.3 Treinamento, Convergência e Generalização . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

7 Classificador Não-Linear Perceptron Multicamadas 51


7.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
7.2 O Algoritmo de Retropropagação do Erro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
7.3 Fundamentos da Rede MLP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
7.3.1 Interpretação Geométrica de Neurônios e Camadas . . . . . . . . . . . . . . . . . . . . 55
7.3.2 Quantas Camadas Escondidas? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
7.4 Como Escolher o Número Adequado de Neurônios na Camada Escondida . . . . . . . . . . . . 56
7.5 Adição de Termos de Penalização à Função Custo . . . . . . . . . . . . . . . . . . . . . . . . . 58
7.6 Sumário de Heurísticas para Treinamento de MLPs . . . . . . . . . . . . . . . . . . . . . . . . 59
7.7 Treinamento, Convergência e Generalização . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

8 Classificador Não-Linear de Funções de Base Radial 62


8.1 Projeto da Primeira Camada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
8.2 Projeto da Segunda Camada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
8.3 Treinamento, Convergência e Generalização . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

9 Noções de Controle Nebuloso (Fuzzy) 66


9.1 Operação Básica de um Controlador Nebuloso . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
9.2 Fundamentos da Lógica Nebulosa(Fuzzy) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
9.2.1 Conjuntos Nebulosos (Fuzzy) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
9.2.2 Funções de Pertinência . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
9.2.3 Operadores Lógicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
9.2.4 Regras Se - Então . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
9.2.5 Fuzzyficação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
9.2.6 Defuzzyficação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
9.3 Estrutura de Controladores Nebulosos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
9.3.1 Controlador P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
9.3.2 Controlador PD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
9.3.3 Controlador PI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
9.3.4 Controlador PID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
9.3.5 Avaliação da Estabilidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

A Os Dados 81
A.1 Coleta de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
A.1.1 Atributos Nominais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
A.2 Formação do Banco de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
A.3 Análise Preliminar Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
A.3.1 Análise Qualitativa Gráfica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
A.3.2 Análise Quantitativa Preliminar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
A.3.3 Intervalo das Variáveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
A.3.4 Transformações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

B Extração de Características 89
B.1 Estatísticas de Alta Ordem - HOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
B.2 Transformações nos Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
B.2.1 Análise de Componentes Principais - PCA . . . . . . . . . . . . . . . . . . . . . . . . . 91
B.2.2 Análise por Discriminante Linear de Fischer . . . . . . . . . . . . . . . . . . . . . . . . 93
B.2.3 Principal Discriminant Variate Method . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

2
B.3 Transformada de Fourrier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
B.3.1 Analogia entre Vetores e Sinais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
B.4 A Transformada de Fourier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

C Noções Básicas Sobre Métodos de Otimização Não Lineares 101


C.0.1 Método Newton-Raphson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
C.0.2 Métodos Quase-Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
C.0.3 Métodos Gauss-Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
C.0.4 Método Levenberg-Marquardt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

D Estimação de Sistemas 107


D.1 Estimação Baseada na Técnica dos Mínimos Quadrados . . . . . . . . . . . . . . . . . . . . . 107
D.1.1 Idéia Básica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
D.1.2 Justificativa Matemática . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
D.1.3 Mínimos Quadrados Recursivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

3
Capítulo 1

Descrição do Problema de Classificação de


Padrões

Este capítulo aborda os conceitos básicos para o entendimento da disciplina de reconhecimento de padrões.
Existem muitos tipos de padrões, por exemplo: padrões visuais, padrões temporais e padrões lógicos.
Lançando mão de uma interpretação bem ampla, pode-se dizer que tarefas de reconhecimento de padrões
são encontradas em toda atividade inteligente. Deste modo, não há uma só teoria de reconhecimento de
padrões que seja capaz de cobrir a infinidade de problemas possíveis. Contudo, existem algumas aborda-
gens, incluindo: reconhecimento estatístico de padrões, reconhecimento de padrões usando lógica fuzzy e
reconhecimento de padrões usando redes neurais.
Este material didático está restrito à abordagem estatística paramétrica e não-paramétrica, incluindo aí
as versões mais recentes de modelos de redes neurais. Assim, problemas de reconhecimento de padrões serão
tratados como problemas de classificação, que consiste em associar um vetor de entrada a uma determinada
categoria ou classe (saída).

1.1 O Modelo de Classificação


Suponha que se está trabalhando com padrões visuais, e que se sabe que os padrões de interesse repre-
sentam as 26 letras do alfabeto romano (Figura 1.1). Logo, pode-se dizer neste caso que o problema de
reconhecimento de padrões consiste em associar uma entrada a qualquer uma das 26 classes. De maneira
mais geral, diz-se que o usuário interessado no problema quer decidir se a entrada pertence à Classe 1 ou à
Classe 2 ou ... ou à Classe c.

Figura 1.1: O alfabeto romano de 26 letras.

Além disso, suponha que se utilizou uma câmera para digitalizar a entrada visual, e que se isolou um único
caracter como uma matriz (array) formada por valores representando intensidade luminosas (brightness).
Como um computador pode classificar este dado? Uma abordagem óbvia consiste na comparação da entrada
com o elemento modelo (template) de cada classe e escolher a classe da nova entrada como sendo a daquele

4
template que mais se parece com a nova entrada. O problema com este tipo de abordagem é que ela não diz
o que comparar e como medir o grau de semelhança!
O que torna difícil problemas de reconhecimento de padrões é que pode haver um grau elevado de
variabilidade mesmo entre as entradas que pertencem à mesma classe, em comparação com as diferenças
entre padrões pertencentes a classes distintas. Uma forma de lidar com este problema é procurar por
características (f eatures) chaves.

1.2 Características ou Atributos


Uma forma de classificar um objeto ou evento é medindo algumas de suas características ou atributos
mais representativos. Por exemplo, para classificar uma letra impressa, pode ser útil saber sua área e seu
perímetro. Poderia-se também medir seu grau de compactação através da razão entre a área e o quadrado
do perímetro. Por fim, seria interessante medir o quanto a letra é simétrica em relação a um eixo horizontal
comparando a área de sua metade superior com a área da metade inferior (obviamente existem provavelmente
meios mais eficientes de se medir a simetria!).
Algumas características podem ser particularmente sensíveis a pequenas diferenças. Por exemplo, para
distinguir a letra “D” da letra “O”, veja a Figura 1.2, pode-se medir o grau de inclinação (straightness) do lado
esquerdo, calculando talvez a razão entre a distância da reta e o comprimento do arco que o lado esquerdo da
letra forma. Claramente, a especificação das características necessárias para uma boa classificação depende
do problema específico que se quer resolver, e especificá-las é mais uma arte do que propriamente uma ciência.
Com esta afirmação se quer dizer que um elevado grau de experimentação com diferentes combinações de
características se faz necessário.

Figura 1.2: Distinguindo a letra “D” da letra “O”.

1.3 Vetores de Características ou de Atributos


Com freqüência se tem em mãos um conjunto fixo de d características para qualquer objeto ou evento
que se deseja classificar. Por exemplo, para o problema de diferenciar as letras D e O, tem-se medido:

x1 = área
x2 = perímetro
..
.
xd = comprimento do arco/distância a linha reta

Neste caso, é útil pensar no conjunto de características como um vetor de características x, também
chamado simplesmente de padrão, tal que x é um vetor-coluna de dimensão d (x ∈ ℜd ), ou seja, contendo d
variáveis-características, {x1 , x2 , ..., xd }. Usando o operador de transposição (T ), pode-se converter o vetor-
coluna x em um vetor-linha xT :

5
 
x1
 x2 
 
x= .. , xT = [x1 , x2 , ..., xd ] (1.1)
 . 
xd
Equivalentemente, pode-se pensar no vetor x como um ponto em um espaço de vetores de características
ou espaço de padrões, de dimensão d. Deste modo, pode-se representar um objeto ou evento abstratamente
como um ponto no espaço de padrões!

1.4 O Modelo Clássico


A definição de vetor de características, feita na seção anterior, leva a formulação clássica adotada para
problemas de reconhecimento de padrões (Figura 1.3).

• Um sistema ou programa, chamado de “extrator de características” (feature extractor) processa os


dados originais (raw data) com o intuito de determinar os valores numéricos de um conjunto de d
características x1 , x2 , ..., xd , que formam os componentes do vetor de características x.

• Um sistema ou programa, chamado de “classificador” recebe o vetor x e atribui a ele uma das c
categorias: Classe 1, Classe 2, ..., Classe c.

Figura 1.3: Modelo clássico para reconhecimento de padrões.

O projeto de um extrator de características é muito dependente da aplicação de interesse. O extrator


ideal produziria o mesmo vetor de características x para todos os elementos de uma mesma classe, e diferentes
vetores de características para elementos de classes distintas. Na prática, diferentes entradas apresentadas
ao extrator de características sempre produzirão vetores de características diferentes, mas espera-se que a
variabilidade intra-classe (i.e., dentro da mesma classe) seja relativamente pequena em comparação com a
variabilidade inter-classes (i.e., entre classes distintas).
A esta altura, assume-se que o projetista do extrator de características tenha feito o melhor trabalho
possível, e que as características escolhidas contenham toda informação necessária para segregar os vários
padrões. Assim, dado o conjunto de características, o trabalho seguinte é projetar o classificador propriamente
dito.

6
Capítulo 2

Classificadores Elementares

Este capítulo apresenta um levantamento das principais métricas usadas em classificadores de padrões
para, em seguida, darmos início ao projeto de classificadores elementares e intuitivos.

2.1 Medidas de Dissimilaridade


Existem diferentes definições para a distância ∥u − w∥ entre vetores u = [u1 , u2 , ..., ud ] e w = [w1 , w2 , ..., wd ]
quaisquer, correspondendo a diferentes modos (métricas) de se medir distância em um espaço vetorial de
dimensão d. O objetivo principal destas métricas é medir similaridade (correlação) ou dissimilaridade (dis-
tância) entre vetores.
O fato de se diferenciar entre medidas de similaridade e dissimilaridade é apenas uma questão de termi-
nologia, já que os dois conceitos são recíprocos. Contudo, a idéia por trás desta dicotomia é que a correlação
aumenta à medida que a similaridade (proximidade) entre os vetores aumenta, enquanto que distâncias di-
minuem. Medidas de correlação serão vistas na próxima seção. A seguir, apresentamos algumas das medidas
de distância mais comuns.
A distância Euclidiana é uma medida comumente utilizada como medida de dissimilaridade entre vetores.
Sua formalização matemática é apresentada na equação 2.1 e seus contornos de pontos equidistantes são
constituidos de hiperesferas, que no caso bidimensional são círculos (figura 2.1).
v
u d
√ u∑
∥u − w∥ = (u1 − w1 ) + (u2 − w2 ) + ... + (ud − w1 ) = t (uk − wk )2
2 2 2 (2.1)
k=1

Como pode ser visto na equação 2.1, a norma Euclidiana está relacionada com a soma quadrática das
diferenças de projeções dos vetores nos seus diversos eixos. Se uma dessas diferenças apresentar um valor
significativamente maior que as outras, ela encobrirá o efeito das mesmas. Outra característica importante
é um maior esforço computacional quando comparado com outras medidas de similaridade.
No caso em que a velocidade de processamento é de importância crítica, pode-se utilizar a distância de
Manhattan.

d
∥u − w∥ = |u1 − w1 | + |u2 − w2 | + ... + |ud − wd | = |uk − wk | (2.2)
k=1
Haverá uma redução do esforço computacional em virtude de ser levado em conta apenas os módulos das
diferenças. Em duas dimensões, seus contornos de pontos equidistantes são constituidos de diamantes (figura
2.1).
As distâncias Euclidiana e de Manhattan são casos particulares da distância Minkowski.
( )1/λ
∥u − w∥ = |u1 − w1 |λ + |u2 − w2 |λ + ... + |ud − wd |λ (2.3)
( d )1/λ

= (uk − wk )λ , λ∈ℜ
k=1

7
Para a condição em que λ = 1 a distância Minkowski reduz-se à distância Manhattan, e para λ = 2
reduz-se à distância euclidiana.
A escolha do valor de λ apropriado depende de quanto se quer dar ênfase a grandes diferenças. Por
exemplo, no caso de λ tender ao infinito teremos uma distância que depende apenas da maior diferença,
como é um outro caso particular: a distância de Chebyshev.

∥u − w∥ = maxi |ui − wi | (2.4)

Esta distância apresenta contornos de pontos equidistantes quadrados. Mais uma vez, a escolha desta
distância está ligada a um baixo esforço computacional.
Para o caso em que se deseja uma aproximação da distância euclidiana, porém com menor esforço com-
putacional, pode-se lançar mão de uma combinação das distâncias de Manhattan (dmh ) e Chebyshev (dch )
dada pela equação 2.5. ( )
2
d = max dmh , dch (2.5)
3
Os contornos de pontos equidistantes são octágonos.
Uma outra medida de similaridade e de grande importância é a distância quadrática.
p ∑
∑ p
∥u − w∥ = (ui − wi )Qij (uj − wj ) (2.6)
i=1 j=1

Observe que no caso em que a matriz Q é igual a matriz identidade, a distância quadrática se reduz a
distância euclidiana.
Para o caso particular em que a matriz Q seja igual a inversa da matriz de covariância da massa de
dados, a distância quadrática toma a forma de distância de Mahalanobis, a qual será bastante explorada no
capítulo seguinte. Neste caso, por questão de simplicidade, considerando vetores de dados com apenas duas
características, a distância quadrática é dada por

∥u − w∥ = (u1 − w1 )2 σ11 + (u2 − w2 )2 σ22 + 2(u1 − w1 )(u2 − w2 )σ12 . (2.7)

A Equação 2.7 sugere, pela semelhança com a lei dos cossenos, o cálculo de distância entre vetores
pertencentes a um espaço definido por bases não ortogonais que representam as direções de maiores vari-
abilidades dos dados. E ainda mais, é um cálculo de distância ponderado, tendo em vista que a diferença
entre as componentes dos dois vetores no eixo de maior variância tem maior representatividade no cálculo
da distância.
Na figura 2.1 são apresentados os contornos das distâncias de Manhattan, euclidiana e quadrática.

Figura 2.1: Interpretações geométricas das diferentes métricas usadas para classificação.

8
2.2 Classificadores Elementares
Existem pelo menos 2 modos de se levar adiante o projeto de um classificador:

1. Criar um modelo matemático do problema e obter um classificador ótimo1 .

2. Definir uma hipótese plausível para a solução e adequá-la ao problema de classificação.

O segundo método é o mais utilizado na prática, porque a modelagem matemática (Abordagem 1) nem
sempre é possível de se obter, e quando possível sua complexidade é tamanha que inviabiliza sua aplicação
prática. A idéia subjacente à segunda abordagem consiste em começar com uma solução muito simples,
analisar suas características, identificar suas fraquezas, e aumentar seu grau de complexidade apenas se
necessário.
Nesta seção são abordados classificadores do tipo encaixe no molde template matching, árvores de decisão
e classificadores de distância mínima.

2.2.1 Método do Encaixe no Molde (Template Matching)


O método do Encaixe no Molde (tradução livre do termo em inglês Template Matching) é uma abor-
dagem natural para classificação de padrões. Por exemplo, considere as letras “D” e “O” ruidosas, mostradas
à direita na Figura 2.2, como padrões a serem classificados. As versões não-ruidosas mostradas à esquerda
da mesma figura podem ser usadas como “modelos” ou “formas” (templates). Assim, para classificar um dos
exemplos ruidosos basta simplesmente compará-lo com os dois templates.

Figura 2.2: Exemplo de Encaixe no Molde.

Esta comparação é geralmente feita de duas maneiras possíveis, a saber:

• Contar o número de concordâncias (quadrinho negro com quadrinho negro, quadrinho branco com
quadrinho branco). Pegar a classe que resultar no número máximo de concordâncias. Esta abordagem
é chamada de máxima correlação.

• Contar o número de não-concordâncias (quadrinho negro onde deveria haver quadrinho branco, qua-
drinho branco onde deveria haver quadrinho preto). Pegar a classe que resultar no número mínimo de
não-concordâncias. Esta abordagem é chamada de mínimo erro.

Template matching funciona bem quando as variações intra-classes são devido a “ruído aditivo”. Assim,
esta abordagem funciona para o exemplo da Figura 2.2 porque não há outros tipos de distorções presentes
nos caracteres, tais como translação, rotação, expansão, contração ou oclusão. Template matching não
funcionará em todas as situações, mas quando for a técnica apropriada, ela é bastante efetiva, podendo ser
facilmente modificada (generalizada) de diversas maneiras úteis.
1
O termo ótimo pode ter diversas interpretações dependendo do caso, mas em geral se refere ao classificador que produz o
menor erro de classificação

9
2.2.2 Árvores de Decisão
Uma árvore de dicisão é um exemplo de um processo de decisão multi-estágio. Ao invés de usar o conjunto
completo de características para tomar uma decisão, esta técnica usa diferentes subgrupos de características
em diferentes níveis numa árvore de decisão.
O número de decisões requeridas para classificar um padrão depende do padrão.
As decisões em cada nó não precisam ser necessariamente baseadas em comparações com limiares em
uma única variável, mas também podem envolver uma combinação linear ou não linear de variáveis.
Árvores de decisão têm sido usadas numa variada gama de problemas. Apresentam como vantagens
o armazenamento compacto de suas regras de decisão, sua capacidade de classificação eficiente de novas
amostras e bom desempenho na generalização de uma grande variedade de problemas. Suas desvantagens
residem em dificuldades no projeto de uma árvore ótima, levando a grandes árvores com taxas de erros
elevadas em certos casos, particularmente se a linha limite de separação dos padrões é complicada e uma
árvore de decisão binária com limites de decisão paralelos aos eixos das coordenadas é usado. Também,
muitas das árvores são não-adaptativas, pois usam um conjunto de treinamento fixo e dados adicionais irão
requerer um novo projeto de árvore.
Por exemplo, pode-se utilzar a árvore de decisão mostrada na Figura 2.3 para distinguir as letras maiús-
culas “A”, “B”, “C” e “D” entre si.

Figura 2.3: Exemplo de árvore de decisão.

Este método funciona bem quando não há incerteza nos valores das características escolhidas. Porém,
pode ser facilmente estendido através do emprego de características incertas, sejam elas nebulosas (fuzzy) ou
probabilísticas. Por exemplo, se a figura contém um buraco bem largo e um outro bem pequeno, pode ser
interessante atribuir um escore fuzzy (ou ainda um valor de probabilidade) entre 0 e 1 com uma resposta à
pergunta “O número de buracos é igual a zero?”. Em seguida, pode-se escolher um valor limiar, tal que a
resposta seja “Sim” se o escore está acima do limiar escolhido e “Não”, caso contrário. De modo alternativo,
se o escore cai em uma região cuja resposta é ambígua, pode-se seguir mais de um caminho através da àrvore
e calcular escores para os diversos nós terminais.
Árvores de decisão são atrativas graças à simplicidade e eficiência deste tipo de algoritmo. Contudo, elas
tendem a se tornar intratáveis computacionalmente para o processamento de dados de entrada sensoriais.
Quando há um grau de incerteza significativo, usualmente se prefere o uso de um procedimento especialmente

10
projetado para tratar com incertezas do que “embelezar” uma àrvore de decisão com mecanismos extras e ad
hoc.
A seguir é apresentado outro exemplo simples de aplicação de árvore de decisão para classificação em
um conjunto de dados chamado Iris. Como pode ser visto na Figura 2.4, são utilizados apenas os atributos
largura e comprimento da pétala.

Figura 2.4: Projeção largura da pétala versus comprimento da pétala do conjunto Íris.

A árvore de decisão pode ser vista na Figura 2.5.

Figura 2.5: Árvore de decisão para classificação no conjunto Íris.

2.2.3 Classificadores Baseados em Distância Mínima


Do ponto de vista matemático, o método de Encaixe no Molde pode ser facilmente formalizado como
segue. Seja x o vetor de características de uma entrada desconhecida, e seja m1 , m2 , ..., mc os vetores-
protótipos (templates) para as c classes, o erro no “casamento” de x com mi , i = 1, ..., c é dado por:

di (x, mi ) = ∥x − mi ∥. (2.8)
Um classificador de erro mínimo calcula ∥x − mi ∥ para i = 1, ..., c (Figura 2.6a) e escolhe a classe de x
como sendo a classe do protótipo para qual o erro di (x, mi ) é mínimo.
Visto que ∥x − mi ∥ é também a distância de x a mi , este classificador recebe o nome de classificador de
distância mínima (Figura 2.6b). Claramente, o método de Encaixe no Molde é um classificador deste tipo.
Na aplicação do método Encaixe no Molde na classificação de caracteres baseado na contagem de não-
concordâncias foi usada a distância Manhattan implicitamente2 .
2
Na verdade, é também possível usar distância euclidiana para o exemplo de classificação de caracteres. Por exemplo,
suponha que os componentes do vetor de características x correspondem a valores dos pixels, tal que um componente tem valor
+1 se um quadrado pertence à figura e −1 se pertence ao fundo. Assim, usando uma métrica euclidiana, ∥x − mi ∥2 é 4 vezes o
número de não-concordâncias. Contudo, contar o número de não-concordâncias está mais de acordo com a natureza da distância
Manhattan (“Quantas quadras existem daqui até o terminal de ônibus?”) do que da distância euclidiana.

11
(a) (b)

Figura 2.6: (a) Cálculo das distâncias entre x e mi , i = 1, ..., c e (b) diagrama de um classificador de distância
mínima.

Vetor Protótipo
A questão agora é: como determinar os vetores protótipos das classes? Esta é uma questão fundamental,
pois, o vetor protótipo é aquele que apresenta um valor típico ou central que melhor representa os dados de
uma determinada classe.
Para um conjunto de dados monovariável existem três medidas que podem representar um valor típico,
e portanto, candidatas a serem adotadas como vetor protótipo. São elas:

• Moda - esta medida corresponde ao valor da amostra aleatória que ocorre com maior frequência. Existe
aqui um problema, pois podem existir mais de uma moda no conjunto de dados da classe.

• Mediana - esta medida divide o conjunto de dados em dois: metade dos dados apresentam valores
inferiores que a mediana e a outra metade apresenta valores superiores.

• Média - a média é a soma dos valores de todas as amostras dividida pelo número de amostras. É
geralmente utilizada como vetor protótipo.

Para o caso de dados distribuídos de forma assimétrica, como a distribuição exponencial e a lognormal,
a média e a mediana podem ser bastante diferentes, de tal forma que não é óbvio qual medida deve ser
utilizada como valor típico.
Para o caso de distribuições normais o gráfico de histograma mostra que trata-se de uma distribuição
simétrica, com um único pico no centro da distribuição e com tails(caldas) bem comportados. As medidas
de moda, mediana e média são realmente equivalentes. Sendo assim, é razoável utilizar a média como valor
típico.
O leitor deve tomar cuidado para não confundir outras distribuições com a distribuição normal. Por
exemplo, a distribuição de Cauchy, mesmo sendo uma distribuição simétrica e com um único pico no centro
da distribuição, apresenta heavy tails. Os valores extremos nos tails provocam distorção na média e não na
mediana. Logo, mediana é a medida que melhor representa o valor típico.
Diante do exposto, parece evidente que o conhecimento sobre a distribuição dos dados e a consequente
adoção das medidas que melhor representam os mesmos pode influenciar de maneira positiva no desempenho
de classificadores baseados em distância mínima.

Estimando o Vetor-Protótipo de Uma Classe


Suponha que se tem em mãos uma coleção de ni padrões (vetores de características), todos de uma mesma
classe Ci . Assim, se estes vetores forem representados como {xi (1), xi (2), ..., xi (ni )}, uma maneira simples
e direta de se estimar o vetor médio mi , também chamado centróide ou protótipo da classe i, é através da
média aritmética simples:
1 ∑
ni
m̂i (ni ) = xi (k) (2.9)
ni
k=1

12
Em algumas aplicações, novos vetores para serem classificados aparecem regularmente, e é interessante
melhorar a estimativa de m̂i através da inclusão destes dados. Visto que ni m̂i (ni ) é a soma dos primeiros
ni vetores, em que m̂(ni ) denota o vetor-protótipo calculado usando os ni primeiros vetores-características,
a soma dos primeiros ni + 1 vetores é dada por:

ni m̂i (ni ) + xi (ni + 1) (2.10)

em que ao se dividir esta expressão por ni + 1, obtém-se a seguinte fórmula recursiva, muito útil para a
“aprendizagem” incremental do vetor-protótipo:
ni 1
m̂i (ni + 1) = m̂i (ni ) + xi (ni + 1) (2.11)
ni + 1 ni + 1
A palavra “aprendizagem” pode parecer bastante pretensiosa para uma fórmula tão simples usada para
estimação do vetor-protótipo de uma determinada classe. Contudo, o uso deste termo é próprio das regras
de aprendizagem usada em redes neurais artificiais (17, 30). O ponto-chave é que amostras adicionais podem
modificar o classificador.
Usando o método de “tirar médias” (averaging), cada novo exemplar incluído no cálculo do vetor-
protótipo da classe tem menos influência (peso) na modificação do classificador. Esta abordagem é particu-
larmente interessante pois garante a estabilidade do classificador, não alterando as fronteiras entre classes
com muita intensidade. Contudo, em problemas de classificação variantes no tempo costuma ocorrer um va-
riação (drif t) sistemática das propriedades estatísticas dos padrões, podendo ser desejável que o classificador
rastreie (track) estas variações por meio da seguinte fórmula:

m̂i (ni + 1) = (1 − α)m̂i (ni ) + αxi (ni + 1) (2.12)

em que 0 < α < 1 é chamado de fator de esquecimento. Esta equação permite estimar um vetor-protótipo
usando uma técnica de filtragem passa-baixa em vez de média aritmética.
Assumiu-se tacitamente que se conhece de antemão a classe correta de cada padrão usado para estmar
o vetor-protótipo. A isto dá-se o nome de aprendizagem supervisionada. Um outro modo de se atualizar
um classificador consiste em usá-lo para classificar um novo padrão cuja classe é desconhecida, e usar este
padrão para atualizar o vetor-protótipo da classe a que ele for atribuído. A esta abordagem dá-se o nome de
aprendizagem não-supervisionada ou clustering.

Classificador Baseado em Mínima Distância Euclidiana


O uso da distância Euclidiana como métrica para classificação por proximidade de vetores protótipos das
classes é bastante intuitivo, tendo em vista que este tipo de medida é bastante difundida e corriqueiramente
utilizada não somente no meio acadêmico, mas também no dia a dia de quem precisa calcular distâncias.
De forma bastante objetiva, considere um conjunto de dados bidimensional formado por duas classes,
cujas características dos vetores de dados são compostas por variáveis aleatórias3 com distribuição normal e
variâncias iguais. As classes estão representadas pelos mesmos números de amostras. A escolha natural para
os vetores protótipo de classe é o vetor média de cada classe.
Conforme citado anteriormente e visto na figura 2.7, os contornos são circulares. Neste caso bastante
particular, existe uma linha divisória, chamada de linha de decisão (no caso n-dimensional é chamada de
superfície de decisão) ou discriminante entre as classes, que é dada por uma reta formada a partir de pontos
equidistantes dos vetores protótipos das classes. Logo, amostras que se situem do lado esquerdo da linha
de decisão serão classificadas como pertencentes à classe vermelha. Caso contrário, serão classificadas como
pertencentes à classe azul. O classificador naturalmente cometerá alguns erros de classificação, pois há
amostras da classe vermelha que podem ser encontradas à direita da linha de decisão e vice-sersa.
Este classificador de mínima distância Euclidiana é bastante simples. Se ele é satisfatório, ou seja, possui
um número elevado de classificações corretas, não há razão para se procurar outros classificadores mais
3
Grosso modo, variáveis aleatórias são aquelas cujo comportamento obedece as leis da probabilidade, ou seja, existe um grau
de incerteza na descrição destas variáveis. De forma equivalente, variáveis aleatórias são aquelas cuja variabilidade pode ser
explicada (ou modelada) por leis da estatística.

13
Figura 2.7: Discriminante linear na distância Euclidiana.

complicados. Existem, no entanto, situações em que este tipo de classificador apresenta baixo desempenho,
produzindo muitas classificações incorretas. A seguir são apresentadas algumas destas situações mais comuns:

1. As características podem ter sido inadequadamente escolhidas. Se as características simplesmente não


contém informação necessária para separar as classes, não importa quanto esforço seja devotado ao
projeto do classificador que a taxa de erro do mesmo será sempre alta. O efeito de uma escolha inade-
quada das características na colocação dos vetores de características no espaço de padrões é mostrado
na Figura 2.8, onde as classes estão extremamente superpostas e não se consegue uma distinção clara
entre as classes.

Solução Sugerida: Voltar à análise do problema e definir novas características.

Figura 2.8: Características inadequadas impossibilitam uma separação clara entre as classes.

2. O espaço de padrões pode ser complexo demais. A variabilidade que torna difícil a distinção entre os
padrões é devido à complexidade da tarefa do que propriamente à presença de ruído (Figura 2.9). Por
exemplo, não faz sentido tentar usar um classificador de distância-mínima na detecção de erros de sin-
taxe em expressões de uma linguagem de programação. Problemas semelhantes surgem na classificação
de dados sensoriais. Sempre que padrões são submetidos a transformações bem-definidas, tais como
translação ou rotação, há o perigo de se introduzir uma quantidade substancial de complexidade no
espaço de padrões original. Geralmente, deve-se procurar empregar características que sejam invarian-
tes a tais transformações, em vez de forçar o classificador a tratar com elas. Na comunicação humana,
padrões maiores são freqüentemente compostos de padrões menores, que por sua vez são compostos de
padrões ainda menores. Por exemplo, parágrafos são formados por sentenças que são feitas de palavras
que são feitas de letras. O projeto de classificadores que possam lidar com este nível de complexidade
está fora do escopo deste texto.

3. Podem existir subclasses distintas embutidas nos dados. É comum ocorrer na prática situações em
que as classes definidas pelo usuário final não são as classes, digamos assim, “naturais” do problema
(Figura 2.10). Por exemplo, enquanto que o objetivo da classificação de letras do alfabeto pode ser

14
Figura 2.9: Exemplo típico de espaço de padrões muito complexo.

simplesmente decidir entre uma dentre 23 categorias, se forem incluídas tanto letras maiúsculas quanto
minúsculas, faz mais sentido tratá-las separadamente e construir um classificador com 52 categorias
e realizar uma operação lógica “OU” com as saídas no final. Obviamente, não está sempre claro que
existem subclasses nos dados, mas o principal indicativo é uma taxa de erro de classificação elevada.

Solução Sugerida:
Usar algoritmos de agrupamento (clustering) para encontrar subclasses nos dados, e tratar
cada subclasse com uma classe distinta. Algoritmos de clusterização serão discutidos em
capítulos posteriores.

Figura 2.10: Exemplo de existência de subclasses nos dados.

4. As superfícies de decisão devem ser não-lineares. As fronteiras lineares produzidas por um classificador
do tipo distância-euclidiana-mínima podem não ser flexíveis o suficiente. Por exemplo, se x1 é o
perímetro e x2 é a área da figura, então x1 cresce linearmente com a escala, enquanto x2 cresce
quadraticamente. Este fato “distorce” o espaço de padrões, evitando que uma função discriminante
linear tenha um bom desempenho na classificação (Figura 2.11).

Soluções Sugeridas:
• Redefinir o conjunto de características ou tentar uma transformação das características
originais (feature extraction). Por exemplo, definir x2 do exemplo acima como a raiz
quadrada da área.
• Tentar o uso da distância Mahalanobis, visto que ela produz superfícies de decisão qua-
dráticas (ver Subseção 4.2).
• Utilizar um algoritmo de redes neurais artificiais, do tipo perceptron multicamadas.

Figura 2.11: Exemplo típico da necessidade de superfícies de decisão não-lineares.

15
5. As características podem ser altamente correlacionadas. Acontece com freqüência que duas caracte-
rísticas, originalmente escolhidas (ou medidas) para representar propriedades distintas de um objeto
ou evento, são influenciadas por mecanismo comum e tendem a variar juntas (Figuras 2.12 e 2.13).
Por exemplo, o perímetro e a largura máxima de uma figura variam ambos com a escala: figuras
maiores terão perímetros e larguras máximas mais largas. Correlação degrada o desempenho de um
classificador baseado em distância euclidiana. Um padrão posicionado no extremo de uma classe pode
estar mais próximo do protótipo de uma outra classe do que de seu próprio protótipo. Uma situação
semelhante ocorre quando as características possuem escalas (magnitudes) bem distintas, por exemplo,
uma característica é medida em mícrons e uma outra em quilometros.

Soluções Sugeridas:
• Usar a distância Mahalanobis (ver Subseção 4.2).
• Utilizar transformações que produzam novos conjuntos de características que sejam não-
correlacionadas (e.g., análise das componentes principais, PCA).

Figura 2.12: Exemplo típico de características correlacionadas.

Figura 2.13: Exemplo típico de características correlacionadas.

2.2.4 O Produto Interno e sua Relação com a Distância Euclidiana


Pode-se analisar classificadores de distância mínima lançando mão de um pouco de álgebra linear.
Vejamos então. A equação 2.1, que se refere à distância Euclidiana, pode também ser apresentada em
um formato vetorial como

∥x − y∥ = (x − y)T (x − y) = xT x − 2yT x + yT y (2.13)

E se considerarmos a normalização dos vetores x e y pela norma Euclidiana, isto é x∗ = x


∥x∥ e y∗ = y
∥y∥ ,
temos

16
Figura 2.14: Discriminante linear na distância Euclidiana.

∥x∗ − y∗ ∥ = x∗ T x∗ − 2y∗ T x∗ + y∗ T y∗ = 2 − 2y∗ T x∗ (2.14)


O termo y∗ T x∗ é o produto interno dos vetores y∗ e x∗ , o qual pode ser dado por


d
y∗ T x∗ = x∗ T y∗ = x∗1 y1∗ + x∗2 y2∗ + · · · + x∗d yd∗ = x∗k yk∗ (2.15)
k=1

O produto interno também pode ser interpretado, agora no campo da geometria analítica, como o produto
escalar dos vetores y∗ e x∗ conforme a equação 2.16.

y∗ T x∗ = x∗ T y∗ = ∥x∗ ∥ · ∥y∗ ∥ · cos(θ) (2.16)


onde θ é o ângulo entre y∗ e x∗ . A figura 2.14 ilustra bem esta interpretação.
Desta forma, percebe-se que o classificador de mínima distância Euclidiana pode ser implementado a
partir da aplicação do produto interno entre o vetor a ser classificado e os respectivos vetores-protótipo das
classes. Pela equação 2.14, quanto maior o produto interno, menor a distância Euclidiana entre o vetor e o
protótipo de classe. Logo, o maior produto interno está associado à menor distância.
O produto interno de y∗ e x∗ é máximo quando o ângulo entre estes dois vetores é igual a zero, ou seja,
quando um vetor é um múltiplo positivo do outro. Costuma-se usar também o termo correlação para denotar
o produto-interno y∗ T x∗ . Neste caso, diz-se que a correlação de y∗ e x∗ é máxima quando estes dois vetores
apontam no mesmo sentido. Quando y∗ T x∗ = 0, diz-se que os vetores y∗ e x∗ são chamados ortogonais ou
não-correlacionados.
A vantagem de se utilizar o produto interno para a classificação de padrões por mínima distância Eu-
clidiana é que, mesmo que haja demanda de tempo para a normalização do conjunto amostral, o esforço
computacional para calcular o produto interno durante o processo de classificação é significantemente menor
que para calcular diretamente a distância Euclidiana. Isto pode ser bastante importante para aplicações em
tempo real.

17
Capítulo 3

Técnicas de Clusterização Baseadas em


Protótipos

Neste capítulo são tratadas arquiteturas de rede neurais de aprendizado não-supervisionado, conhecidas
como métodos de clustering baseados em protótipos.
Em suas concepções básicas, estas redes apresentam apenas uma única camada de neurônios e, con-
seqüentemente, uma camada de pesos sinápticos a serem ajustados. Em particular, os neurônios da rede
SOM estão dispostos e organizados na única camada existente em arranjos geométricos fixos, de 1, 2 ou até
3 dimensões.
A Figura 3.1 ilustra como os neurônios da rede SOM podem ser dispostos em uma grade retangular,
formando um arranjo bidimensional com 7 × 9 (63) neurônios. Conforme será mostrado adiante, esta orga-
nização estruturada dos neurônios da rede será necessária para definir o conceito de vizinhança física entre
neurônios da rede.

Figura 3.1: Neurônios de uma rede competitiva.

O objetivo destas redes é descobrir padrões de similaridade presentes nos dados de entrada, organizando-
os em grupos e atribuindo a cada grupo encontrado um ou mais neurônios. Os vetores de pesos destes
neurônios passam então a representar elementos prototípicos (médios) de cada grupo encontrado.
Por motivos que ficarão claros a seguir, estas redes pertencem à classe das Redes Neurais Competitivas,
visto que os neurônios “competem” entre si para ser o representante de um dado vetor de entrada.

18
3.1 O Conceito das Redes Neurais Não-Supervisionadas Competitivas
Grosso modo, redes neurais não-supervisionadas tentam extrair características estatísticas predominantes
nos dados de entrada e constroem, de forma auto-organizada (i.e. sem auxílio externo e sem conhecimento
prévio), uma representação reduzida do espaço de entrada, codificando-a em seus pesos sinápticos.
Para utilizar uma rede neural não-supervisionada é preciso ter em mãos um número finito de N exemplos
de treinamento, cada um deles representado como um vetor x(t) ∈ Rn , ou seja
 
x1 (t)
 
x(t) =  ...  (3.1)
xn (t)

em que t = 1, 2, . . . , N , indica o instante de apresentação deste vetor à rede durante o treinamento da mesma.
Cada componente xi (t) carrega alguma informação relevante para a análise em questão, sendo denomi-
nada normalmente de característica ou atributo. Dessa forma, um vetor x(t) é, normalmente, chamado de
vetor de características (feature vector) ou vetor de atributos (attribute vector) no contexto de reco-
nhecimento de padrões. Através do mapeamento dessas características é que as redes não-supervisionadas
podem construir sua própria representação do espaço de entrada. Parte dos métodos propostos neste capítulo
utiliza um subgrupo das redes neurais não-supervisionadas, chamadas redes neurais competitivas.
Redes competitivas constituem uma das principais classes de redes neurais artificiais (RNAs), nas quais
um único neurônio ou um pequeno grupo deles, chamados neurônios vencedores, são ativados de acordo com
o grau de proximidade entre seus vetores de pesos e o vetor de entrada atual, grau este medido segundo
alguma métrica. Esse tipo de algoritmo é comumente utilizado em tarefas de reconhecimento e classificação
de padrões, tais como formação de agrupamentos (clustering), quantização vetorial e classificação de padrões.
Nestas aplicações, o vetor de pesos associado ao neurônio vencedor é visto como um protótipo representativo
de um determinado grupo de vetores de entrada.
Os modelos neurais competitivos avaliados aqui são baseados na determinação do neurônio cujo vetor
de pesos, wi (t), está mais próximo, ou equivalentemente, é o mais “parecido” com o vetor de entrada, x(t),
atualmente sendo apresentado à rede. Existem diversas maneiras de se medir proximidade entre vetores, mas
nos restringiremos a duas delas apenas.
Assim, após a apresentação de um vetor de entrada x na iteração t, calcula-se a ativação do neurônio i
através do produto-interno entre x e wi (t):


p
ui (t) = wiT (t)x(t) = wij (t)xj (t), i = 1, . . . , q (3.2)
j=1

onde T denota a operação de transposição dos vetores e q indica o número de neurônios. Equivalentemente,
podemos determinar ui (t) através da distância euclidiana:
v
u∑
u p
ui (t) = ∥x(t) − wi (t)∥ = t (xj − wij (t))2 , i = 1, . . . , q (3.3)
j=1

Por definição, o neurônio vencedor, i∗ (t), é aquele cujo vetor de pesos está mais próximo do vetor de
entrada atual. Se a Equação (3.2) for utilizada, então o neurônio vencedor é encontrado da seguinte forma:

ui∗ (t) = max{ui (t)}, (3.4)


∀i

Esta equação diz que o neurônio vencedor é aquele de maior ativação. Se, por outro lado, a Equação (3.3)
for utilizada, então o neurônio vencedor é encontrado da seguinte forma:

u∗i (t) = min{ui (t)}, (3.5)


∀i

19
3.2 Pré-processamento dos Dados de Entrada
Antes de apresentar os exemplos de treinamento para as redes competitivas é comum mudar a escala
original das componentes dos vetores x tal que o comprimento de cada vetor de entrada seja constante
(unitário, de preferência).
Segundo a abordagem mais comum cada vetor de dados é dividido pelo comprimento (módulo ou norma)
do vetor, ou seja:
x(t)
x′ (t) = (3.6)
∥x(t)∥
o que é o mesmo que dividir cada componente deste vetor pelo comprimento do mesmo:

xj (t)
x′j (t) = (3.7)
∥x(t)∥

onde a norma de um vetor qualquer é definida como:



∥x(t)∥ = x21 (t) + x22 (t) + · · · + x2p (t) (3.8)

Note que a operação implementada nas Equações (3.6) e (3.7) torna o comprimento do novo vetor unitário:

x(t) ∥x(t)∥

∥xi (t)∥ = = =1 (3.9)
∥x(t)∥ ∥x(t)∥

3.3 Rede WTA


No algoritmo competitivo mais simples, conhecido como Winner-take-all (WTA), durante a fase de tei-
namento apenas o neurônio vencedor tem seu vetor de pesos wi∗ (t) atualizado em resposta a um dado vetor
de entrada x(t). O treinamento da rede WTA é resumido a seguir:

1. Seleção aleatória de um exemplo de treinamento x(t) como vetor de entrada atual.

2. Busca pelo neurônio vencedor, i∗ (t), para o vetor de entrada x(t), usando as Equações (3.4) ou (3.5).

3. Atualização do vetor de pesos, wi (t), da rede:

wi (t + 1) = wi (t) + η[x(t) − wi (t)] (3.10)

em que 0 < η < 1 denota o passo de aprendizagem. Em geral, os valores iniciais dos pesos são atribuídos
de forma aleatória e eqüiprovável a partir do intervalo [0, 1]. Alternativamente, os vetores de pesos
iniciais podem ser selecionados a partir do próprio conjunto de vetores de treinamento.
Pode-se mostrar que o vetor de pesos de um determinado neurônio i converge para o centróide (centro
de gravidade) do conjunto de vetores de treinamento para o qual o neurônio i foi selecionado vencedor.
Para isto basta perceber que os valores esperados de wi (t + 1) e wi (t) são iguais para t → ∞. Daí,
simbolizando por wio o valor final do vetor de pesos wi .

A fim de aumentar a probabilidade de convergência do algoritmo para um mínimo global, é comum fazer


com que o passo de aprendizagem decresça com o tempo. A seguir são apresentadas três possibilidades:
( )
t
η(t) = η0 1 − , (3.11)
tmax
η0
η(t) = , (3.12)
1+t
( )(t/tmax )
ηT
η(t) = η0 (3.13)
η0

20
tal que η0 e ηT ≪ η0 são os valores inicial e final de η. A velocidade de decaimento é controlada pelo
parâmetro tmax , que simboliza o número máximo de iterações de treinamento:

tmax = Tamanho do conjunto de treinamento × Número máximo de épocas (3.14)

A idéia por trás das equações anteriores é começar com um valor alto para η, dado por η0 < 0, 5, e
terminar com um valor bem baixo, da ordem de η ≈ 0, 01, a fim de estabilizar o processo de aprendizado.
A despeito de sua simplicidade, a rede WTA é afetada por algumas questões que comprometem seriamente
seu desempenho:

• Escolha dos valores iniciais dos pesos da rede: dependendo dos valores iniciais atribuídos aos pesos,
alguns neurônios podem dominar o treinamento, sendo sempre selecionados como vencedores, enquanto
outros nunca o são. As unidades não selecionadas são chamadas de unidades mortas (dead units).

• Valorização excessiva da informação contida na entrada x(t) mais recente: pela própria natureza do
algoritmo, as entradas apresentadas à rede no início do treinamento têm menos influência no valor final
dos pesos dos neurônios que aquelas apresentadas por último.

Para minimizar esses problemas, é comum modificar o algoritmo da rede WTA, criando variantes mais
eficientes. As principais maneiras de se fazer isso são através da alteração da Equação (3.5) ou da alteração
da Equação (3.10). Algumas destas modificações dão origem aos três algoritmos seguintes.

3.4 Rede FSCL


O primeiro algoritmo, chamado Frequency-Sensitive Competitive Learning (FSCL) altera a Equação (3.5),
penalizando neurônios que são escolhidos vencedores com muita freqüência, de modo a permitir vitórias de
outros neurônios:

i∗ (t) = arg min{fi (t) · ∥x(t) − wi (t)∥} (3.15)


∀i
[ c ]z
i
fi (t) = (3.16)
t
em que ci é o número de vezes que o neurônio i foi escolhido vencedor até o instante t, e z > 1 é uma
constante. O ajuste dos pesos continua sendo feito de acordo com a Equação (3.10). Nota-se que a presença
de fi (t) como elemento ponderador da distância euclidiana ajuda a minimizar a ocorrência de unidades
mortas.

3.5 Rede SOM


O algoritmo chamado Self-Organizing Map (SOM) foi proposto por Kohonen. Esta rede difere das redes
competitivas anteriormente descritas pelo fato de seus neurônios estarem dispostos em uma grade (grid) fixa,
geralmente uni- ou bi-dimensional, de modo que se possa definir uma relação de vizinhança espacial entre
neurônios desta grade.
Assim, a Equação (3.10) é alterada pela inserção do conceito de vizinhança, que é o conjunto de neurônios
que estão em torno do neurônio vencedor i∗ (t). Durante o treinamento os vetores de pesos dos neurônios
na vizinhança do neurônio vencedor também passam a ser ajustados, de acordo com a seguinte regra de
aprendizagem:
wi (t + 1) = wi (t) + η(t)h(i∗ , i; t)[x(t) − wi (t)]. (3.17)
em que h(i∗ , i; t) é a função de vizinhança, a qual pode ser dada por
{
1, Se i ∈ Vi∗ (t)
hi (t) = (3.18)
0, Se i ∈
/ Vi∗ (t)

21
em que Vi∗ (t) representa o conjunto de neurônios na vizinhança do neurônio vencedor em dado instante,
incluindo o próprio neurônio vencedor. O tamanho do conjunto vizinhança é dado pelo número de neurônios
que se deve considerar como “vizinhos” do neurônio vencedor, tanto à direita, quanto à esquerda. Por
exemplo, para uma rede com q = 10 neurônios, se o neurônio vencendor no instante t for o neurônio 3 (ou
seja, i∗ (t) = 3), então um conjunto vizinhança de tamanho 1 é definida como Vi∗ (t) = {i = 2, i∗ = 3, i = 4}.
Já um conjunto vizinhança de tamanho 2 seria dada por Vi∗ (t) = {i = 1, i = 2, i∗ = 3, i = 4, i = 5}
Uma outra possibilidade para a função de vizinhança h(i∗ , i; t) é dada por
( )
∗ ∥ri (t) − ri∗ (t)∥2
h(i , i; t) = exp − (3.19)
ϑ2 (t)

em que ϑ(t), chamado de spread, define o raio de influência da função de vizinhança, enquanto ri (t) e ri∗ (t)
são, respectivamente, as posições dos neurônios i e i∗ no arranjo geométrico da rede.
O parâmetro ϑ(t) deve começar com um valor alto no início do treinamento (neurônio altruísta), e ser
bem pequeno no final do treinamento (neurônio egoísta). Ou seja, no começo do treinamento o neurônio
vencedor permite que quase todos os neurônios tenham seus pesos modificados em resposta a um dado vetor
de entrada. À medida que o treinamento avança, o neurônio vencedor vai eliminando neurônios de sua
vizinhança (ou seja, ϑ vai diminuindo), até o ponto em que ele não possui mais nenhum vizinho (ϑ ≈ 0,01),
passando a funcionar como uma rede WTA. Uma possibilidade para realizar o decaimento de ϑ é
( )(t/T )
ϑT
ϑ(t) = ϑ0 (3.20)
ϑ0

na qual ϑ0 e ϑT ≪ ϑ0 são os valores inicial e final de ϑ. Em suma, a Equação (3.20) faz com que a vizinhança
diminua com o avanço do treinamento.
A função de vizinhança funciona como uma espécie de janela de ponderação (weighting window), fazendo
com que os neurônios mais próximos do neurônio vencedor atual tenham seus vetores de pesos atualizados
mais intensamente que aqueles neurônios que estão mais distantes do neurônio vencedor. O neurônio vencedor
tem seus pesos reajustados com maior intensidade, visto que para ele tem-se h(i∗ , i; t) = 1. Para todos os
outros neurônios, tem-se h(i∗ , i; t) < 1.
O efeito mais sensível da diferença entre as redes WTA e SOM está na aceleração da convergência da
rede. Por permitir mais neurônios vencedores por vetor de entrada, a rede SOM converge mais depressa para
um estado estacionário.
É importante enfatizar que se os neurônios da rede SOM estão dispostos em uma grade unidimensional,
tem-se que ri (t) ∈ R, ou seja, a posição de um neurônio i qualquer coincide com seu próprio índice, ri (t) = i.
Neste caso, cada neurônio possui apenas vizinhos à direita e à esquerda. Contudo, se os neurônios da rede
SOM estão dispostos em uma grade bidimensional, tem-se que ri (t) ∈ R2 , ou seja, a posição de um neurônio
i na grade é dada pelas coordenadas (xi , yi ) em relação a uma origem pré-fixada. Neste caso, um neurônio
pode ter vizinhos à esquerda, à direita, acima, abaixo e diagonalmente.
Em razão de sua arquitetura peculiar e de seu algoritmo de treinamento, a rede SOM implementa uma
projeção não-linear Φ do espaço de entrada contínuo χ ⊂ Rn (espaço dos dados), em um espaço de saída
discreto A, representado pelo espaço das coordenadas dos neurônios na grade, tal que dim(A) ≪ n. Mate-
maticamente, esta projeção pode ser simbolizada por:

Φ:χ→A (3.21)

A rede SOM tem tido grande utilização em aplicações de mineração de dados e reconhecimento de
padrões. Grande parte do seu sucesso se deve à combinação de dois princípios essenciais de auto-organização
de sistemas: (i) competição entre neurônios por recursos limitados e (ii) cooperação , implementada pela
função vizinhança. O resultado da atuação destes dois princípios na rede SOM é uma projeção Φ que preserva
relações de proximidade espacial entre os dados de entrada, ou seja, o mapeamento preserva a topologia do
espaço de entrada no espaço de saída, conforme ilustrado na Figura (3.2). Nesta figura, dim(χ) = n = 2
e dim(A) = 1, os pontos pretos correspondem às coordenadas dos vetores de pesos do i-ésimo neurônio.
Neurônios que são vizinhos na grade unidimensional são conectados por linhas tracejadas.

22
Figura 3.2: Projeção implementada pela rede SOM

Pode-se expressar a propriedade preservação de topologia da rede SOM da seguinte forma. Sejam x1 e x2
dois vetores no espaço de entrada χ. Sejam ri∗1 e ri∗2 as coordenadas dos neurônios vencedores para x1 e x2 ,
respectivamente. Diz-se que a rede SOM, corretamente treinada, preserva a topologia do espaço de entrada
se as seguinte relação for observada

∥x1 − x2 ∥ → 0 ⇒ ∥ri∗1 − ri∗2 ∥ → 0 (3.22)

ou seja, se quaisquer dois vetores estão fisicamente próximos no espaço de entrada, então eles terão neurônios
vencedores espacialmente próximos na rede. As principais conseqüências desta propriedade são listadas a
seguir:

• Aproximação do espaço de entrada: a rede SOM constrói uma aproximação discreta do espaço de
entrada, na qual cada neurônio da rede representa uma determinada região do espaço de entrada
que define sua região de atração ou campo receptivo (receptive field). Esta região é conhecida
também como célula de Voronoi (Voronoi cell). Assim, uma das principais aplicações da rede SOM
é a categorização de dados não-rotulados em agrupamentos (clusters) e sua posterior utilização na
classificação de vetores de características que não estavam presentes durante o treinamento.

• Estimação pontual da função densidade de probabilidade: o mapeamento da rede SOM reflete variações
na estatística do espaço de entrada. Ou seja, regiões no espaço de entrada χ de onde as amostras x têm
uma alta probabilidade de ocorrência são povoadas com um maior número de neurônios, possuindo,
conseqüentemente, uma melhor resolução do que regiões em χ de onde amostras x são retiradas com
baixa probabilidade de ocorrência.

3.6 Rede Neural-Gas


O algoritmo Neural-Gas (NGA) modifica simultaneamente as Equações (3.5) e (3.10). Não se busca
diretamente um único vencedor, mas sim o ordenamento de todos eles na ordem crescente das distâncias
euclidianas dos seus respectivos vetores de pesos à entrada atual x(t). Desta forma o neurônio vencedor i1 é
o primeiro da lista, o segundo mais próximo i2 , e assim até o neurônio iN , cujos pesos estão mais distantes
da entrada:
∥x(t) − wi1 (t)∥ < · · · < ∥x(t) − wik (t)∥ < · · · < ∥x(t) − wiN (t)∥ (3.23)

23
Então, o ajuste dos pesos é feito da seguinte forma:

wi (t + 1) = wi (t) + η(t)hλ (k, t)[x(t) − wi (t)], (3.24)

na qual hλ (k, t) funciona de modo equivalente à função vizinhança da rede SOM, sendo definida pela seguinte
expressão: { }
k−1
hλ (k, t) = exp − , (3.25)
λ(t)
com k representando a posição do neurônio na lista ordenada definida pela Expressão (3.23). A variável λ(t)
decai com o tempo, como na Equação (3.13), equivalendo-se ao conceito de largura da vizinhança da rede
SOM.
A rede Neural-Gas também é capaz de preservar a topologia do espaço de entrada no espaço dos pesos
dos neurônios. Contudo, esta propriedade é alcançada sem que os seus neurônios sejam dispostos segundo o
arranjo geométrico fixo da rede SOM.

3.7 Convergência
A convergência das redes competitivas é, em geral, avaliada com base nos valores do erro de quantização
médio (εepoca ) por época de treinamento:

1 ∑ 2 1 ∑
N N
εepoca = ε (t) = ∥x(t) − wi∗ (t)∥2 (3.26)
N N
t=1 t=1

onde ε = ∥x(t) − wi∗ (t)∥ é chamado de erro de quantização para o vetor de entrada x(t) atual. O gráfico
εepoca × número de epócas é chamado de Curva de Aprendizagem da rede neural. Em geral, o treinamento
da rede neural é parado quando εepoca (ou Pepoca ) estabiliza, ou seja, quando para de variar.
Para validar a rede treinada, ou seja, dizer que ela está apta para ser utilizada, é importante testar a sua
resposta para dados de entrada diferentes daqueles vistos durante o treinamento. Estes novos dados podem
ser obtidos através de novas medições, o que nem sempre é viável. Durante o teste os pesos da rede não são
ajustados.
Para contornar este obstáculo, o procedimento mais comum consiste em treinar a rede apenas com
uma parte dos dados selecionados aleatoriamente, guardando a parte restante para ser usada para testar o
desempenho da rede. Assim, ter-se-á dois conjuntos de dados, um para treinamento, de tamanho N1 < N ,
e outro de tamanho N2 = N − N1 . Em geral, escolhe-se N1 tal que a razão N1 /N esteja na faixa de 0, 75 a
0, 90.
Em outras palavras, se N1 /N ≈ 0, 75 tem-se que 75% dos vetores de dados devem ser selecionados
aleatoriamente, sem reposição, para serem utilizados durante o treinamento. Os 25% restantes serão usados
para testar a rede. O valor de εepoca calculado com os dados de teste é chamado de erro de generalização da
rede, pois testa a capacidade da mesma em “extrapolar” o conhecimento aprendido durante o treinamento
para novas situações. É importante ressaltar que, geralmente, o erro de generalização é maior do que o erro
de treinamento, pois trata-se de um novo conjunto de dados.

3.8 Vantagens das Redes Neurais Competitivas


Uma das vantagens das redes competitivas é que elas são capazes de realizar quantização vetorial, que
pode ser entendida como uma estimação pontual da função densidade de probabilidade dos dados de entrada
feita pelos vetores de pesos.
A quantização vetorial consiste numa compressão de dados na qual, naturalmente, ocorre alguma perda
de informação que pode ser avaliada por uma medida denominada erro de quantização. O vetor de erros de
quantização, eq (t), indica a qualidade da estimação, sendo definido como a diferença entre o vetor de entrada
atual e o vetor de pesos do neurônio vencedor correspondente, ou seja:

eq (t) = x(t) − wi∗ (t) (3.27)

24
sobre o qual opera uma medida de distância, em geral, euclidiana, dando origem a uma grandeza escalar
denominada erro de quantização associado ao vetor x(t):
v
u∑
u n
eq (x(t)) = ∥x(t) − wi∗ (t)∥ = ∥eq (t)∥ = t [xj (t) − wi∗ j (t)]2 , (3.28)
j=1

na qual n é a dimensão de x(t). A Figura 3.3 mostra o vetor erro de quantização eq , cujo módulo corresponde
ao erro de quantização definido na Equação (3.28).

w* eq
i

Figura 3.3: Ilustração do vetor erro de quantização eq . Os círculos abertos (‘◦’) simbolizam os vetores de
dados, enquanto os círculos fechados (‘•’) simbolizam os vetores de pesos (centróides).

Duas importantes vantagens oferecidas pelas redes competitivas para o problema de detecção de novidades
são apresentadas a seguir:

• Compressão de dados: após a estabilização da rede com um limiar de erro de quantização aceitável,
os pesos da rede podem ser usados em vez dos próprios dados, e como a quantidade de vetores de pesos
(protótipos) é bastante reduzida em relação à quantidade de dados, tem-se uma redução considerável de
esforço computacional. Além de reduzir o custo computacional, trabalhar com os protótipos aumenta
a robustez do algoritmo, visto que os protótipos extraem qualidades estatísticas médias, filtrando
flutuações aleatórias que porventura estejam presentes nos dados originais. Isso pode ser verificado
através da iteração da Equação (3.10).

• Simplificação de critérios de qualidade: todos os testes podem ser feitos utilizando-se como critério
o erro de quantização.

25
Capítulo 4

Classificadores Paramétricos: O Caso


Gaussiano

Este capítulo trata do projeto de classificadores paramétricos gaussianos e sua relação com os classifica-
dores de distância mínima, em especial os que usam distância euclidiana e distância quadrática.

4.1 Interpretação Estatística do Problema de Decisão


Na abordagem dos classificadores baseados na mínima distância Euclidiana não se levou em consideração
a possibilidade muito comum de se deparar com conjuntos de dados com classes apresentando diferentes
números de amostras.
Uma solução bastante simples para classificação seria atribuir todos os vetores de entrada à classe que
apresente maior probabilidade a priori, conforme equação 4.1. Esta probabilidade a priori seria obtida a
partir da contagem do número de vetores para cada classe em relação ao número total de vetores do conjunto
de dados.

P (ci ) > P (cj ) j = 1, ..., C para todo j ̸= i. (4.1)


Esta abordagem simplista é geralmente evitada, pois as taxas de erro de classificação podem ser demasia-
damente grandes, principalmente quando as probabilidades a priori das classes são muito próximas. Apenas
como ilustração, como classificar padrões quando as probabilidades a priori das classes são iguais?
Uma solução para este problema é também levar em conta o espalhamento dos dados (variância).
A Figura 4.1 apresenta duas situações interessantes. No item a, as duas classes apresentam números de
dados iguais, porém com variâncias diferentes. Claramente a classe vermelha apresenta uma menor variância.
A linha decisória foi posicionada na metade da distância entre os vetores protótipos (médios) das classes.
Pode-se perceber que este classificador cometerá bastante erro de classificação de vetores pertencentes à
classe azul devido ao seu maior espalhamento. Um pequeno deslocamento da linha decisória em direção à
classe que se apresenta mais compactada (menor variância) parece, pelo menos intuitivamente, reduzir o
erro total de classificação, pois o aumento no número de erros na classificação da classe vermelha é mais que
compensado pela diminuição do número de erros na classificação da classe azul.
Uma outra questão importante pode ser percebida no item b da Figura 4.1. As duas classes apresentam
números de dados diferentes, porém com variâncias iguais. Mais uma vez, um pequeno deslocamento da linha
decisória em direção à classe que apresenta menor número de amostras (supostamente menor probabilidade
de ocorrência) parece reduzir o erro total de classificação.
As duas questões tratadas aqui são levadas em consideração por uma teoria de decisão estatística proposta
por Fischer para a elaboração de um classificador ótimo. Fischer mostrou que um classificador ótimo escolhe
a classe ci que maximiza a probabilidade a posteriori P (ci | x), ou seja,

x ∈ ci se P (ci | x) > P (cj | x) para todo j ̸= i. (4.2)

26
(a) (b)

Figura 4.1: Classificação de dados bidimensionais em problemas com (a) classes com números iguais de
amostras e variâncias diferentes e (b) classes com números de amostras e variâncias diferentes.

Embora o método possa ser empregado indiscriminadamente em relação ao tipo de distribuição de dados,
ele assume intrínsecamente que as características dos dados são variáveis aleatórias (governadas por Leis
Probabilísticas) e geralmente assume também funções densidade de probabilidade (pdf) Gaussianas para
cada classe. Desta forma, se os dados apresentam distribuição Gaussiana, o classificador deve apresentar
bom desempenho.
O problema é que a probabilidade a posteriori não pode ser medida diretamente. Então, usando a regra
de Bayes
p(x | ci )P (ci )
P (ci | x) = , (4.3)
P (x)
pode-se calcular a probabilidade a posteriori a partir da probabilidade a priori P (ci ) e da função densidade
de probabilidade P (x | ci ) das classes, e normalizada pela probabilidade P (x). Tanto a P (ci ) quanto a pdf
(verosimilhança) são estimados a partir dos dados. P (x) é um fator de normalização que pode ser deixado
de lado para a maioria dos casos de classificação.
Rememorando as duas questões iniciais sobre a influência do número de amostras e a variância de cada
classe, e considerando um caso unidimensional de variáveis aleatórias de distribuição gaussiana, uma dada
amostra x será atribuída a classe ci se

p(x | ci )P (ci ) p(x | cj )P (cj )


> (4.4)
P (x) P (x)
( ) ( )
1 (x − µi )2 1 (x − µj )2
√ exp − P (ci ) > √ exp − P (cj ). (4.5)
σi 2π 2σi2 σj 2π 2σj2
Na Figura 4.2 pode ser vista a influência desses fatores sobre o posicionamento do limiar de decisão. No
item a, onde o número de amostras para cada classe é igual, o limiar está situado mais próximo da média
da distribuição da classe vermelha (menor variância). No item b, onde o número de amostras da classe azul
é significantemente maior que o da classe vermelha, o limiar está situado ainda mais próximo da média da
distribuição da classe vermelha. Vê-se aí a influência da probabilidade maior de ocorrência de padrões da
classe azul.
A classificação pelo critério de Fischer não está livre de erros. Na Figura 4.2 pode-se ver que as funções
densidade de probabilidade de ambas as classes atravessam o limiar, e como consequência, o erro na classifi-
cação está relacionado com a soma das áreas limitadas por ambas as funções densidade de probabilidade que
atravessam o limiar. Desta forma, quanto menor for a interseção entre as pdfs tanto maior será a precisão
na classificação. A classificação a partir da probabilidade a posteriori minimiza a probabilidade de erro e
consequentemente é ótimo.

27
(a) (b)

Figura 4.2: Classificação de dados unidimensionais em problemas com (a) classes com números iguais de
amostras e variâncias diferentes e (b) classes com números de amostras e variâncias diferentes.

4.2 Distância Mahalanobis


Como pode ser visto na seção 4.1, o posicionamento do limite de decisão de classificação, diferentemente
do classificador de mínima distância Euclidiana, é função não somente dos protótipos das classes, mas
também dos espalhamentos dos dados dentro das classes. Observando cuidadosamente o expoente das funções
densidade de probabilidade gaussianas na equação 4.5, percebe-se que o posicionamento da linha de decisão
é determinado por
[ ]
(x − m)2 1 x−m 2
dmh = = (x − m) 2 (x − m) = , (4.6)
σ2 σ σ
que pode ser interpretada como a normalização da distância do padrão ao protótipo de classe pela variância
de classe. Esta é chamada de distância de Mahalanobis (dmh ).
Um aspecto interessante da distância de Mahalanobis para o projeto de classificadores reside no fato dela
provê um modo de medir distâncias que é invariante a transformações lineares dos dados. Senão, vejamos.
Seja uma variável aleatória x, não necessariamente gaussiana (se o for melhor!), de média mx e desvio
padrão σx . Se for aplicada uma transformação linear a x, dada por y = kx, a média e o desvio padrão de
y serão dados por my = kmx e σy = kσx . Logo, distâncias de Mahalanobis (dmh ) calculadas sobre o novo
espaço serão dadas por:
[ ]2 [ ]2 [ ]2
y − my kx − kmx x − mx
dmh = = = . (4.7)
σy kσx σx
Este aspecto é particularmente interessante pois, em geral, o valor númerico de uma variável-característica,
e consequentemente o cálculo de distância, depende das unidades usadas na sua obtenção, ou seja, depende
da escala de medição. No caso da distância de Mahalanobis isso não acontece, pois esta é uma medida
independente da escala da variável, e por conseguinte não degradará a tarefa de classificação.
A questão de interesse agora para reconhecimento de padrões é a seguinte: Qual é a generalização, para
o caso d-dimensional, das expressões 4.2 e 4.6 ?
A resposta vem a ser a seguinte:

dmh = (x − mx )T C−1
x (x − mx ) (4.8)

que é chamada de distância Mahalanobis entre o vetor de características x e o vetor-protótipo mx . A matriz


Cx é a matriz de covariância de x.
Para a continuidade da discussão sobre a distância Mahalanobis é preciso entender antes de tudo o conceito
de covariância entre duas variáveis características, que no presente contexto passam a ser entendidas como
variáveis aleatórias.

28
4.2.1 Covariância
A título de ilustração, a variância de uma variável aleatória é definida como o valor esperado dos desvios
desta variável em relação ao seu médio elevados ao quadrado, ou seja:
∫ ∞
σx = E[(x − mx ) ] =
2 2
(x − mx )2 fX (x)dx Se a variável é contínua. (4.9)
−∞


= (xk − mx )2 pX (x = xk ) Se a variável é discreta. (4.10)
k=1

em que fX (x) é a densidade de probabilidade da variável contínua x, enquanto pX (x = xk ) é a função


distribuição de probabilidade da variável discreta x assumir o valor xk , e mx é o referido valor médio de x.
Independentemente da natureza de x (discreta ou contínua), a variância sempre mede a dispersão de x ∈ ℜ
em torno do seu valor médio.
As expressões (4.9) e (4.10) são de interesse teórico. Em reconhecimento de padrões é muito difícil ter
uma noção precisa das funções distribuição e densidade de probabilidade de x. Na realidade não se tem muito
mais além de um número finito de amostras de x. Assim, o valor médio e a variância de x são comumente
estimados pelas expressões A.2 e A.3.
A covariância de duas variáveis-características mede por sua vez a tendência destas de co-variar juntas,
ou seja, de variar juntas. Isto pode ser traduzido matematicamente através do valor esperado do produto
entre os desvios de duas variáveis-características em relação às suas médias. Para ser mais preciso, considere
as variáveis características xi e xj , i ̸= j. Seja {x1i , x2i , ..., xN
i } um conjunto de N amostras da variável-
característica xi , e seja {xj , xj , ..., xj } um conjunto correspondente de N amostras da variável-característica
1 2 N

xj 1 . De maneira semelhante, seja mi o valor médio da variável-característica xi e mj o valor médio da


variável-característica xj . Assim, a covariância da variável xi com a variável xj é definida como:
∫ ∞∫ ∞
cov(xi , xj ) = E[(xi − mi )(xj − mj )] = (xi − mi )(xj − mj )fXi Xj (xi , xj )dxi dxj (4.11)
−∞ −∞

em que fXi Xj (xi , xj ) é a densidade de probabilidade conjunta de xi e xj . Pelas mesmas razões apresentadas
para a variância, a covariância é, na prática, estimada pela seguinte expressão:

1 ∑ k
N
cov(xi , xj ) ≈ (xi − mi )(xkj − mj ) (4.12)
N −1
k=1

A covariância de xi e xj possui várias propriedades importantes:

• Se xi e xj tendem a crescer juntas, então cov(xi , xj ) > 0.

• Se xi tende a crescer quando xj tende a decrescer, então cov(xi , xj ) < 0.

• Se xi e xj são independentes, então cov(xi , xj ) = 02 .



• |cov(xi , xj )| ≤ σi · σj , em que σi = V ar(xi ) é o desvio-padrão de xi .

• cov(xi , xi ) = σi2 = V ar(xi ).

Assim, a covariância cov(xi , xj ) é um número entre −σi · σj e σi · σj que mede a dependência entre as
variáveis-características xi e xj . Com cov(xi , xj ) = 0 não haverá dependência entre elas. A correspondência
entre a covariância e a forma de um grupo (cluster) de dados está ilustrada na Figura 4.3.
1
Note que xki e xkj são variáveis-características de um mesmo vetor xk .
2
Esta afirmação é um pouco forte demais para ser levada ao pé da letra na prática. Se o número N de amostras é pequeno, a
covariância entre variáveis-características independentes não será exatamente nula. Na verdade, poderá nem ser muito pequena.
Contudo, para N grande, se pode ter plena confiança que a magnitude da covariância será pequena quando comparada com seu
máximo valor possível, dado pelo produto σi · σj .

29
Figura 4.3: Exemplos da correspondência entre covariância e forma do cluster.

Matriz de Covariância
Visando uma representação mais genérica e compacta da informação sobre todas as covariâncias cov(xi , xj ),
estas podem ser colocadas juntas em uma Matriz de Covariância:
 
E[(x1 − m1 )2 ] E[(x1 − m1 )(x2 − m2 )] · · · E[(x1 − m1 )(xd − md )]
 E[(x2 − m2 )(x1 − m1 )] E[(x2 − m2 )2 ] · · · E[(x2 − m2 )(xd − md )] 
 
Cx =  .. .. .. ..  (4.13)
 . . . . 
E[(xd − md )(x1 − m1 )] E[(xd − md )(x2 − m2 )] · · · E[(xd − md )2 ]
E, de modo muito semelhante ao tratamento dado a uma variável aleatória x escalar, pode-se mostrar que
a distância de Mahalanobis provê um modo de medir distâncias que é invariante a transformações lineares
dos dados, agora d-dimensionais.
Suponha uma matriz d × d sendo usada para transformar vetores de características x ∈ ℜd , os quais
possuem um vetor de médias mx e uma matriz de covariância Cx , em outros vetores y, ou seja,

y = Ax. (4.14)

O vetor de médias para y e a nova matriz de covariância são agora dados por:

my = Amx (4.15)

Cy = ACx AT (4.16)
em que T simboliza a transposição de matrizes e vetores.
Aplicando 4.15 e 4.16 em 4.8 e lançando mão de um pouco de álgebra linear temos,

dmhy = (y − my )T C−1
y (y − my )
= (Ax − Amx )T ((A−1 )T C−1 −1
x A )(Ax − Amx )
= (x − mx )T AT (A−1 )T Cx−1 A−1 A(x − mx )
= (x − mx )T (A−1 A)T C−1 −1
x (A A)(x − mx )
= (x − mx )T C−1
x (x − mx )
= dmhx (4.17)

Isto mostra que a distância de Mahalanobis é uma medida invariante (i.e. independente) para qualquer
transformação linear e não-singular. Ou seja, se for feita a substituição de y = Ax e se forem usadas as
Equações (4.15) e (4.16), serão sempre obtidos os mesmos valores para dmh , qualquer que seja a matriz A.
Resumindo, visto que se pode chegar ao espaço de padrões de y a partir do espaço de padrões de x
através de uma transformação linear, e visto que a Equação (4.8) é invariante a transformações lineares,
pode-se calcular distância diretamente no espaço de padrões de x usando a distância Mahalanobis.

30
Estimando a Matriz de Covariância
A covariância teórica entre a variáveis-características xi e xj , bem como sua estimativa, foram definidas
nas Equações (4.11) e (4.12), respectivamente. Uma generalização desta útima equação pode ser usada para
estimar a matriz de covariância da seguinte forma. Seja {xi (1), xi (2), ..., xi (n)} uma amostra de n vetores-
características, todos da mesma classe Ci , e seja m̂i o vetor-protótipo desta classe. Assim, tem-se a seguinte
expressão:
1 [ ]
Σ̂i = (xi (1) − m̂i )(xi (1) − m̂i )T + · · · + (xi (ni ) − m̂i )(xi (ni ) − m̂i )T (4.18)
ni
1 ∑
ni
= (xi (k) − m̂i )(xi (k) − m̂i )T (4.19)
ni
k=1

Esta fórmula esconde uma armadilha para o desavisado, no que diz respeito às dimensões dos vetores
xi (k) ∈ ℜd e da matriz Σ̂i ∈ ℜd×d . Acontece que se n < d + 1, a matriz Σ̂i é singular, ou seja, não existe uma
inversa para ela. Isto é muito ruim, haja visto que se precisa justamente da inversa de Σ̂i para se calcular a
distância de Mahalanobis!
Mesmo se n > d + 1, a estimativa da matriz de covariância pode ser muito ruim. Sabe-se que Σ̂i contém
2
d elementos e, levando em consideração o fato de que Σ̂i tem que ser simétrica, pode-se mostrar que Σ̂i
contém d(d − 1)/2 elementos independentes. Não se pode esperar a obtenção de uma boa estimativa Σ̂i até
que o número de vetores de características se aproxime de d(d − 1)/2. Isto não é um problema sério se d é
pequeno, porém não é incomum se ter 50, 100 e até mais atributos. Se d = 100, d(d − 1)/2 é quase igual a
5000, indicando que é preciso algo em torno de 5000 vetores-características para se ter uma boa estimativa
da matriz de covariância.

4.2.2 Contornos (Curvas de Nível)


É possível mostrar que as superfícies nas quais a distância Mahalanobis dmh é constante, também chama-
dos de contornos ou curvas de nível, são elipsóides centrados em torno do vetor-protótipo (ver Figura 4.12).
No caso particular em que as características são não-correlacionadas, ou seja,

E[(xi − mi )(xj − mj )] = 0, ∀ i ̸= j (4.20)

e que as variâncias de todas as componentes de x são iguais, ou seja,

E[(x1 − m1 )2 ] = E[(x2 − m2 )2 ] = · · · = E[(xd − md )2 ] = σ 2 (4.21)

então as superfícies são círculos (ou esferas), e assim a distância Mahalanobis se reduz à distância euclidiana.
Pode-se usar a distância Mahalanobis em um classificador do tipo distância-mínima da seguinte forma.
Seja m1 , m2 , ..., mc os protótipos (templates) para as c classes, e seja C1 , C2 , ..., Cc as matrizes de
covariância correspondentes3 . Assim, um determinado vetor de características x é classificado com base na
determinação da sua distância Mahalanobis de x em relação a cada um dos protótipos, e atribuindo a x a
mesma classe a qual pertence o vetor-protótipo que resultou na distância Mahalanobis mínima (Figura 4.4).
O uso da distância Mahalanobis resolve várias das limitações encontradas no uso da distância euclidiana
em classificadores:
1. A distância Mahalanobis automaticamente leva em conta a escala do eixo de coordenadas, ou seja, a
escala de determinada componente do vetor de características. Pode ser exemplificado para matriz
de covariancia diagonal. Neste caso as variâncias ponderam os termos de diferença ao
quadrado.

2. Ela leva também em consideração a correlação entre diferentes componentes do vetor de características.
Pode ser exemplificado facilmente para matriz de dimensão 2.

3. Conforme será visto adiante, a distância Mahalanobis provê tanto superfícies de decisão lineares quanto
não-lineares.

31
Figura 4.4: Classificador de distância mínima usando distância Mahalanobis.

Entretanto, existe um preço a ser pago por estas vantagens. Matrizes de covariância podem ser difíceis de
se estimar, ao mesmo tempo que requisitos de memória e tempo de processamento crescem quadraticamente
em vez de linearmente com o número de características. Estes problemas podem até ser insignificantes
quando se trabalha com vetores de características de baixa dimensão, mas eles podem se tornar bastante
sérios quando o número de características é elevado.

4.3 Superfícies de Decisão


Em geral, um classificador divide ou particiona o espaço de padrões em áreas ou volumes menores, chama-
dos regiões de decisão (Figura 4.5). Assim, todos os vetores-características (vetores-padrões ou simplesmente
padrões) pertencentes a uma certa região de decisão são atribuídos à mesma classe. Em geral, uma classe
corresponde à uma única região de decisão. Mas, cuidado! Pode haver situações em que uma classe é formada
por duas ou mais regiões de decisão, não-necessariamente adjacentes (contíguas) no espaço (ver Figura 2.10).

Figura 4.5: Exemplo hipotético de regiões de decisão.

As fronteiras que separam as regiões de decisão são chamadas superfícies ou fronteiras de decisão (Figura
4.6a). Estas fronteiras representam casos em que há “empate” (ou seria melhor dizer, em que há dúvida)
na escolha da classe que irá representar o padrão de entrada. Em outras palavras, para um classificador
distância-mínima, as fronteiras de decisão contém pontos que estão eqüidistantes de dois ou mais vetores-
protótipos.
3
Note que cada classe tem sua matriz de covariância correspondente!

32
Usando a métrica euclidiana, a fronteira de decisão entre a Região i e a Região j é definida pela reta ou
plano perpendicular à reta que liga os protótipos mi e mj . Analiticamente, fronteiras de decisão lineares são
uma conseqüência direta do fato das funções discriminantes serem lineares. Usando a métrica de Mahalanobis,
as fronteiras de decisão são superfícies quadráticas, tais como elipsóides, parabolóides ou hiperparabolóides.

(a) (b)

Figura 4.6: Fronteiras de decisão para um classificador distância-mínima mostrando (a) os vetores-protótipos
de cada classe e (b) os padrões pertencentes a elas.

4.4 O Classificador e Sua Função Discriminante


A teoria de decisão estatística proposta por Fischer (equação 4.2), que maximiza a probabilidade a
posteriori P (ci | x), a regra de Bayes (equação 4.3) e a suposição ou imposição de que as funções densidade
de probabilidade (pdf) para cada classe sejam Gaussianas, foram utilizadas na seção 4.1 para prover a
classificação de padrões monovariáveis (equação 4.5). Agora, a generalização da probabilidade a posteriori
para classificação de padrões d-dimensionais é dada por:
[ ( )]
P (ci ) 1 1 T −1
P (ci | x) = exp − (x − mi ) Σ (x − mi ) (4.22)
P (x) (2π) d2 | Σi | 12 2

Equivalentemente, porém de forma simplificada, pode-se associar um determinado vetor de entrada x a


classe ci se o ln(P (ci | x)) for o maior dentre os de todas as classes. Desta forma,
d 1 1
ln(P (ci | x)) = ln(P (ci )) − ln(P (x)) − ln(2π) − ln(| Σi |) − (x − mi )T Σ−1 (x − mi ) (4.23)
2 2 2
Considerando que as parcelas ln(P (x)) e d2 ln(2π) são comuns a todas as classes, a regra de discriminação
é dada por: classifique x como pertencente a classe ci , se gi > gj para todo j ̸= i, onde
1 1
gi (x) = ln(P (ci )) − ln(| Σi |) − (x − mi )T Σ−1 (x − mi ). (4.24)
2 2
Classificar padrões x com base nos valores de gi (x) significa aplicar funções discriminantes quadráticas,
e como consequência imediata, estabelecer superfícies4 (ou hipersuperfícies) de decisão não lineares.
A Figura 4.7 ilustra os gráficos das probabilidades a posteriori p(ci | x) das classes apresentadas no item
b da Figura 4.1. A projeção da interseção entre as superfícies representativas das probabilidades a posteriori
das classes sobre o plano dos dados pode ser vista na Figura 4.8. Esta é a linha (ou superfície) de decisão
4
Em geral, um classificador divide ou particiona o espaço de padrões em subespaços menores, chamados regiões de decisão.
As fronteiras que separam as regiões de decisão são chamadas superfícies ou fronteiras de decisão. Estas fronteiras representam
casos em que há dúvida na escolha da classe que irá representar o padrão de entrada.

33
obtida a partir da aplicação do classificador ótimo quadrático. Desenvolvendo a equação 4.24 obtém-se a
equação 4.25, a qual justifica a forma quadrática do discriminante.
[ ]
1 T −1 T −1 1 1 T −1
gi (x) = − x Σi x + mi Σi x + ln(P (ci )) − ln(| Σi |) − mi Σi mi . (4.25)
2 2 2

Figura 4.7: Gráficos das probabilidades a posteriori p(ci | x) das classes apresentadas no item b da figura
4.1.

Figura 4.8: Discriminante quadrático de Fisher.

Alguém desavisado pode acreditar que a aplicação do classificador ótimo quadrático produzirá resultados
ótimos para quaisquer que sejam os conjuntos de dados. Na realidade, isto não é verdade. O projetista do
classificador deve lembrar-se que, apesar do método ser aplicável a qualquer conjunto de dados, seu desen-
volvimento partiu da premissa de que os dados apresentariam distribuições gaussianas. E se as distribuições
não forem gaussianas, o classificador não será ótimo.
Outra possível fonte de dificuldade reside no fato de que a implementação do método depende da inversão
da matriz de covariância. E, não são raros os casos em que a matriz de covariância é mau condicionada, o
que leva a inversões pouco confiáveis, ou até mesmo impossibilidade de inversão.
Existem outros motivos para desempenhos mais modestos. Senão vejamos. A Figura 4.9 ilustra a
aplicação do classificador quadrático para a tarefa de classificação de vetores pertencentes a classe azul ou
vermelha (Figura 4.8). A superfície discriminante 1 foi obtida a partir de um conjunto de dados composto de
30 vetores representantes da classe vermelha e 125 representantes da classe azul. Já a superfície discriminante
2 foi obtida com 120 vetores da classe vermelha e 500 da classe azul. A curva 2 parece se ajustar melhor à
distribuição dos dados, pelo menos à primeira vista. Isto se dá devido a uma melhor estimativa dos vetores

34
Figura 4.9: Influência do número de dados sobre o posicionamento do discriminante quadrático.

de médias e matrizes de covariância obtidas com uma maior quantidade de amostras. Logo, o classificador
pode não ter desempenho ótimo para um número reduzido de amostras.
Nestes casos, se o projetista separar várias vezes e aleatoriamente o conjunto de dados em conjunto de
treinamento e conjunto de teste, e aplicar para cada vez o classificador quadrático, o posicionamento da
superfície de decisão poderá ser significantemente diferente, a ponto de alterar significantemente a taxa de
acerto do classificador. Este posicionamento instável da superfície de decisão pode ser minorado a partir da
imposição de outras formas de estimação da matriz de covariância. Seguem algumas opções:

1. Assumir que a matriz de covariância usada pelo discriminante é a mesma para todas as classes. Em ge-
ral, define-se uma matriz de covariância agregada (pooled covariance matrix), que leva em consideração
a matriz de covariância estimada de cada classe, Σ̂i , ou seja:


C
ni
Spool = Σ̂i (4.26)
n
i=1

em que n = C i=1 ni é o número total de vetores de características disponíveis e C ≥ 1 define o número
de classes existentes. Desta forma, se existir a inversa desta nova matriz, aplica-se a mesma à equação
4.25.
Percebe-se então, que a primeira e a quarta parcelas do lado direito da equação 4.25 serão comuns a
todas as funções discriminantes de classes. Logo, podem ser suprimidas. Daí, a classificação será feita
a partir das funções discriminantes dadas por
[ ]
T −1 1 T −1
gi (x) = mi Σi x + ln(P (ci )) − mi Σi mi . (4.27)
2

A equação 4.27 claramente indica que a adoção de uma única matriz de covariância leva a funções
discriminantes e superfícies de decisão lineares, como pode ser visto nas Figuras 4.10 e 4.11.
Existe um outro caso importante em que as funções discriminantes são lineares. Este caso ocorre
quando todos os grupos de padrões (clusters) em todas as c classes realmente têm a mesma matriz de
covariância. Geometricamente, esta situação surge quando os agrupamentos, para todas as categorias,
têm a mesma forma elipsoidal (Figura 4.12).
Este tipo de discriminante linear é muito útil, pois embora ele não possua a vantagem de ter uma
superfície de decisão não-linear, ele tem a seu favor o fato de ser invariante a transformações lineares.
Além disso, este tipo de discriminante reduz os requisitos de memória, necessários para armazenar uma
matriz de covariância d×d, para os requisitos necessários para armazenar C vetores wi , i = 1, . . . , C de
dimensão d × 1, aumentando a velocidade do cálculo das funções discriminantes. Isto é particularmente
interessante se o número de classes é elevado.

35
Figura 4.10: Gráficos das probabilidades a posteriori p(ci | x) das classes obtidas a partir de uma única
matriz de covariância.

Figura 4.11: Discriminante linear de Fisher.

2. Usar o método de regularização proposto por Friedman (12) como um meio de evitar a degradação do
desempenho do discriminante gaussiano quadrático para conjunto de dados com poucos vetores e com
dimensão elevada. De modo mais específico, a matriz de covariância estimada da i-ésima classe Σ̂i é
λ
substituída por uma matriz Σ̂i , construída a partir da combinação linear de Σ̂i com a matriz agregada
Spool :
λ (1 − λ)Si + λS
Σ̂i = (4.28)
(1 − λ)ni + λn
em que 0 ≤ λ ≤ 1, Si = ni Σ̂i e S = nSpool . Perceba que para os valores extremos de λ = 0 e λ = 1
chega-se às estimativas da matriz de covariância que levam ao discriminante gaussiano quadrático e
discriminante gaussiano linear, respectivamente:
{
λ Σ̂i , λ=0
Σ̂i = (4.29)
Spool , λ=1

O melhor valor do parâmetro λ para um determinado conjunto de dados a classificar é encontrado


experimentalmente, ou seja, por tentativa-e-erro.

3. Assumir que as características (atributos) são estatisticamente independentes. Isto resulta em uma
matriz de covariância diagonal, na qual os elementos da diagonal principal são as variâncias de cada

36
Figura 4.12: Discriminante linear para classes com formas elipsoidais.

um dos d atributos, ou seja:  


σ12 0 · · · 0
 0 σ22 · · · 0 
 
C= .. .. . . .  (4.30)
 . . . .. 
0 0 · · · σd2
em que as variâncias individuais σi2 são facilmente estimadas por meio da Equação (A.3). Esta abor-
dagem é utilizada pelo Classificador Naive-Bayes (34), para o qual se tem reportado aplicações bem-
sucedidas na literatura especializada. Infelizmente, a suposição de independência é muito forte e difícil
de se encontrar na prática. De qualquer modo, se as variáveis (atributos) envolvidas no projeto do
classificador forem gaussianas, técnicas de descorrelação podem ser aplicadas aos dados, resultando em
atributos independentes.
Um caso bem particular ocorre quando as matrizes de covariância são diagonais5 e as variâncias das
variáveis-características são iguais:
 2 
σ 0 ··· 0
 0 σ2 · · · 0 
 
Σi = σ 2 Id =  . .. . . ..  (4.31)
 .. . . . 
0 0 · · · σ2

em que I é a matriz identidade de dimensão d × d. A função discriminante agora tem uma relação
direta com a distância euclidiana, como pode ser visto na equação 4.32:
[ ]
1 1
gi (x) = 2 mi x + ln(P (ci )) − 2 mi mi .
T T
(4.32)
σ 2σ

As funções discriminantes lineares dadas pelas equações 4.27 e 4.32 podem ser apresentadas da seguinte
forma:

gi (x) = wiT x + bi

em que o vetor wi ∈ Rd define o vetor de pesos ou coeficientes do i-ésimo discriminante linear e o escalar
bi ∈ R é chamado de bias ou threshold (limiar).
Assim, a classificação de um vetor-característica x, fornecido como entrada, é implementado com o cálculo
dos valores das K funções discriminantes g1 (x), g2 (x), . . . , gK (x), e associando x àquela classe que obtiver o
maior valor para sua função discriminante.
5
Ou seja, as variáveis-características são não-correlacionadas!

37
Uma maneira útil de interpretar funções discriminantes lineares se dá através do conceito de produto-
interno, pois se pode afirmar que as funções discriminantes lineares medem a correlação entre x e mi ,
adicionada de um termo de correção (regularização) que penaliza valores elevados da norma ∥mi ∥2 do vetor-
protótipo correspondente. Com esta correção incluída, um classificador de distância-mínima é equivalente a
um classificador de correlação-máxima (Figura 4.13).

Figura 4.13: Classificador de correlação máxima.

4.5 Estudo de Caso


Exemplo de regiões de decisão obtidas para classificação do conjunto de dados Íris, utilizando apenas os
atributos comprimento e largura da sépala. A região azul corresponde a classe setosa, a vermelha corresponde
a classe versicolor e a preta corresponde a classe virgínica. Foram aplicados o discriminante de Bayes e suas
variantes.

Figura 4.14: Regiões de decisão com a aplicação do discriminante quadrático de Bayes ao comprimento e
largura da sépala do banco de dados Íris - PA=97.3, PA1=100, PA2=94 e PA3=98

38
Figura 4.15: Regiões de decisão com a aplicação do discriminante de Bayes (matriz de covariância única) ao
comprimento e largura da sépala do banco de dados Íris - PA=88, PA1=98, PA2=86 e PA3=80

Figura 4.16: Regiões de decisão com a aplicação do discriminante de Bayes (matriz de covariância diagonal)
ao comprimento e largura da sépala do banco de dados Íris - PA=85.3, PA1=100, PA2=80 e PA3=76

Figura 4.17: Regiões de decisão com a aplicação do discriminante de Bayes (matriz de covariância igual a
identidade) ao comprimento e largura da sépala do banco de dados Íris - PA=93.3, PA1=100, PA2=94 e
PA3=86

39
Capítulo 5

Classificadores Não-Paramétricos

Os métodos de classificação discutidos no capítulo anterior requerem o conhecimento das funções densi-
dade de probabilidade condicional de classe. Com estas funções pode-se aplicar a regra de Bayes e decidir
a qual classe pertence um dado padrão x. Entretanto, em casos em que a estrutura encontrada nos dados
não é contemplada pelos modelos paramétricos, não se pode assumir uma determinada função densidade de
probabilidade. Uma solução para este problema é partir para uma estimação desta função com métodos não
paramétricos.
Dentre os diversos métodos utilizados para estimação da densidade de probabilidade, abordaremos os
métodos de aproximação por histograma, k-vizinhos mais próximos e métodos de Kernel.

5.1 Considerações Iniciais


Considerando x, pertencente ao conjunto dos números reais, como uma variável aleatória, sabe-se que a
probabilidade de x < xi , isto é, a probabilidade de x assumir valores menores que xi é dada por
∫ xi
P (x < xi ) = p(x)dx. (5.1)
−∞

onde p(x) é a função densidade de probabilidade. Logo, a probabilidade de x é


∫ +∞
P (x) = p(x)dx = 1 (5.2)
−∞

A equação 5.2 representa uma característica importante que deve ser perseguida pelo projetista quando
busca a estimação de funções densidade de probabilidade a partir de um conjunto de dados limitado. Outro
aspecto importante é o fato de que a função distribuição de probabilidade deve ser monótona crescente, o
que leva a função densidade de probabilidade ser maior ou igual a zero
p(x) ≥ 0 (5.3)

Embora as equações 5.2 e 5.3 representem características desejáveis para uma estimação de função den-
sidade de probabilidade, o projetista de um classificador pode abrir mão delas a favor da melhoria de
propriedades de convergência.

5.2 Método do Histograma


O método do histograma é simples de implementar e bastante intuitivo.
Considerando o caso de uma variável aleatória x unidimensional e real por questão de simplicidade, o
projetista deve dividir o intervalo de valores encontrados para x em N sub-intervalos (células) de mesmas
dimensões e estimar a densidade de probabilidade em um dado ponto por
nj
p̂(x) = ∑N (5.4)
j nj dx

40
onde nj é o número de amostras encontradas na célula de largura dx. A generalização para o caso multidi-
mensional é
nj
p̂(x) = ∑ (5.5)
j nj dV

onde V é o volume associado ao índice j.


É importante perceber que V é responsável pela granularidade da estimativa. Se V é grande, a estimativa
da densidade de probabilidade é mais confiável, uma vez que é baseada em um número maior de amostras.
Entretanto, a estimativa da densidade é formada por platôs largos. Por outro lado, se V é pequeno a
estimativa se aproxima de uma curva contínua, mas apresenta menor grau de confiaça.
Esta idéia simples de estimar a densidade de probabilidade apresenta dois incovenientes. O primeiro é
o fato de que para o caso p-dimensional, se o projetista fixar o número de células em cada dimensão igual
a N , o número de células cresce exponencialmente (N p ) com o número de atributos do vetor de entrada do
classificador. Este crescimento no número de células requer um número crescente de dados para a estimação
da densidade de probabilidade.
Uma forma de contornar o crescimento exponencial do número de células é considerar que os atributos
dos vetores de dados de entrada do classificador são variáveis aleatórias independentes, ou seja,


p
p(x) = pi (x). (5.6)
i=1

Sendo assim, o número de células passa a ser pN . A validade desta consideração está condicionada à
experimentação.
O segundo incoveniente reside no fato de que este tipo de estimativa apresenta descontinuidades na
transição entre células e quedas abruptas nas regiões limites da faixa de dados.

5.3 Método dos k-Vizinhos Mais Próximos


Na estimação da densidade de probabilidade usando aproximação por histograma, o projetista fixa o
volume das células e avalia o número de amostras encontradas dentro de cada célula. Já no método dos k-
vizinhos mais próximos, o volume das células é variável, pois o projetista fixa o número de amostras a serem
encontradas dentro de cada célula e avalia o volume de cada célula. Segue o desenvolvimento do método.
A probabilidade de que um determinado vetor esteja localizado dentro de um volume V centrado em x
é dado por ∫
θ= p(x)dx. (5.7)
V (x)

Se a integral for aplicada a um pequeno volume, a probabilidade θ pode ser dada por

θ ∼ p(x)V. (5.8)

A probabilidade θ também pode ser aproximada pela razão entre o número de amostras encontradas
dentro do volume V e o número de amostras total do conjunto de dados. Então,
k
θ∼ . (5.9)
n
Combinando 5.8 e 5.9, a densidade de probabilidade pode ser estimada por
k
p̂(x) = . (5.10)
nV
A classificação dos padrões de entrada é baseada na regra de Bayes, onde a estimativa da função de
verossimilhança p(x|wm ) é dada por
km
p̂(x|ωm ) = (5.11)
nm V

41
e a estimativa da probabilidade a priori é dada por
nm
p̂(ωm ) = . (5.12)
n
Nas equações 5.11 e 5.12, nm é o número de amostras pertencentes a classe ωm em todo o conjunto de
dados (n), e km é o número de amostras pertencentes a classe ωm dentro de uma vizinhança de k amostras
(ΣC
m=1 km = k).
Substituindo as funções de verossimilhança e as probabilidades a priori das classes m e i na regra de
Bayes (p̂(ωm |x) ≥ p̂(ωi |x)), o resultado é o seguinte

km nm ki n i
≥ (5.13)
nm V n ni V n
ou seja, atribuir o padrão x à classe ωm se
km ≥ ki (5.14)
A regra de decisão é atribuir o padrão à classe que obtiver maior número de amostras dentre os k-vizinhos
de x.
É importante salientar que a escolha do parâmetro k influi substancialmente na forma da estimativa da
densidade de probabilidade. Se k for grande a estimativa será a de uma curva suave, omitindo qualquer
detalhe que possa vir a existir na estrutura dos dados. Por outro lado, se k for pequeno, a estimativa será
composta de variações abruptas.

5.4 Método de Kernel


O método de kernel, também conhecido como método de Parzen de estimação de densidade de probabi-
lidade, semelhantemente ao método do histograma, também fixa o volume das células e encontra o número
de amostras contidas nas mesmas para estimar a densidade de probabilidade.
Considerando o caso unidimensional por motivo de simplificação e sem perda de generalização, a estimação
da função probabilidade cumulativa de x pode ser dada por
número de observações ≤ x
P̂ (x) = . (5.15)
n
Como a função densidade de probabilidade é a derivada da função probabilidade cumulativa de x, a
estimação para a densidade de probabilidade pode ser dada por

P̂ (x + h) − P̂ (x − h)
p̂(x) = (5.16)
2h
onde 2h é positivo e representa a dimensão da célula e a expressão no numerador representa o número de
amostras encontradas dentro do intervalo 2h. A operacionalização da estimativa 5.16 pode ser feita a partir
da equação 5.17
( )
1 ∑
n
x − xi
p̂(x) = K (5.17)
nh h
i=1

onde n é o número total de amostras do conjunto de dados e a função K(z) = K((x − xi )/h) é dada por

K(z) = 0, se |z| > 1 (5.18)


1
= , se |z| ≤ 1
2
Da mesma forma que no método do histograma, a estimativa da densidade de probabilidade dada pela
equação 5.17 apresenta descontinuidades. Entretanto, a adoção de uma função K(z) suavizada, que decresça

42
com o crescimento de |z|, pode eliminar estas descontinuidades indesejadas. A função kernel mais utilizada
na prática é a forma normal apresentada na equação 5.19.
( 2)
1 z
K(z) = √ exp − (5.19)
2π 2

Assim a densidade de probabilidade para uma variável unidimensional pode ser estimada por

∑n ( )
1 (x − xi )2
p̂(x) = √ exp − (5.20)
nh 2π i=1 2h2

e para o caso p-dimensional por


n ( )
1 (x − xi )T (x − xi )
p̂(x) = p exp − (5.21)
nhp (2π) 2 2ph2
i=1

O parâmetro h é conhecido como o parâmetro de suavização. Para grandes valores de h, a estimativa da


densidade de probabilidade é bastante suavizada e não apresenta detalhes contidos na estrutura dos dados.
Por outro lado, com h pequeno, surgem os detalhes.
É importante salientar que a equação 5.20 não necessariamente é mais correta que a equação 5.17. O que
se objetiva com o uso de uma função K(z) suavizada é uma estimativa suave da densidade de probabilidade.
Outro aspecto importante é que segundo o Teorema de Rosenblatt, a estimativa da densidade de proba-
bilidade a partir de funções kernel positivas gera desvios em relação a verdadeira densidade de probabilidade
para conjuntos limitados de amostras. Se o projetista deseja eliminar ou reduzir este desvio, deverá relaxar
a necessidade de que a função kernel seja positiva.

5.5 Estudo de Caso


Exemplo de regiões de decisão obtidas para classificação do conjunto de dados Íris, utilizando apenas os
atributos comprimento e largura da sépala. A região azul corresponde a classe setosa, a vermelha corresponde
a classe versicolor e a preta corresponde a classe virgínica. Foram aplicados o classificador KNN e janela de
Parzen.

Figura 5.1: Classificador KNN com vizinhança 1

43
Figura 5.2: Classificador KNN com vizinhança 2

Figura 5.3: Classificador KNN com vizinhança 3

Figura 5.4: Classificador Janela de Parzen (h=1) aplicado ao comprimento e largura da sépala do banco de
dados Íris - PA=92.9, PA1=100, PA2=95.4 e PA3=83.4

44
Figura 5.5: Classificador Janela de Parzen (h=0.1) aplicado ao comprimento e largura da sépala do banco
de dados Íris - PA=96.1, PA1=100, PA2=94 e PA3=94.4

45
Capítulo 6

Classificadores Lineares Baseados em


Aproximação de Funções

Neste capítulo abordaremos os classificadores de Mínimos Quadrados (MQ) Não-Recursivo, Adaline,


Madaline e Perceptron Simples, bem como sobre critérios de optimalidade subjacentes. A idéia aqui é passar
dos classificadores não-adaptativos (por exemplo, MQ) para os adaptativos (por exemplo, MADALINE e
Perceptron Simples). Dicas de treinamento de classificadores adaptativos devem já ser introduzidas aqui,
tais como treinamento por épocas, passo de aprendizagem decrescente, etc.

6.1 Definições Preliminares


De início, vamos assumir que existe uma lei matemática F(·), também chamada aqui de função ou
mapeamento, que relaciona um vetor de entrada qualquer, x ∈ Rp , com um vetor de saída, d ∈ Rq . Esta
relação, representada genericamente na Figura 6.1, pode ser descrita matematicamente da seguinte forma:

d = F[x] (6.1)

em que se assume que F(·) é totalmente desconhecida, ou seja, não sabemos de antemão quais são as fórmulas
usadas para associar um vetor de entrada x com seu vetor de saída d correspondente.

Sistema
x d
F(.)
Entrada (desconhecido) Saida
Figura 6.1: Representação simplificada de um mapeamento entrada-saída genérico.

O mapeamento F(·) pode ser tão simples quanto um mapeamento linear, tal como

d = Mx (6.2)

em que M é uma matriz de dimensão q × p. Contudo, F(·) pode ser bastante complexo, envolvendo relações
não-lineares entre as variáveis de entrada e saída. É justamente o funcionamento da relação matemática F(·)
que se deseja imitar através do uso de algoritmos adaptativos, tais como as redes neurais.
Supondo que a única fonte de informação que nós temos a respeito de F(·) é conjunto finito de N pares

46
entrada-saída observados (ou medidos), ou seja:

x1 , d1
x2 , d2
.. ..
. . (6.3)
xN , dN

Os pares entrada-saída mostrados acima podem ser representados de maneira simplificada como {xµ , dµ },
em que µ é um apenas indíce simbolizando o µ-ésimo par do conjunto de dados. Uma maneira de se adquirir
conhecimento sobre F(·) se dá exatamente através dos uso destes pares.
Para isto pode-se utilizar uma rede neural qualquer para implementar um mapeamento entrada-saída
aproximado, representado como F̂(·), tal que:

y = F̂[x] (6.4)

em que y é a saída gerada pela rede neural que, espera-se, seja muito próxima da saída real d. Dá-se o nome
de Aprendizado Indutivo ao processo de obtenção da relação matemática geral F̂(·) a partir de apenas alguns
pares {xµ , dµ } disponíveis.
A seguir será mostrado um dos primeiros modelos matemáticos adaptativos usados com o propósito de
obter uma representação aproximada de um mapeamento entrada-saída qualquer.

6.2 Modelo ADALINE


Nesta seção descreveremos um tipo elementar de algoritmo adaptativo, chamado Elemento Linear
Adaptativo (ADAptive LINear Element - ADALINE), composto de apenas um elemento processador (neurô-
nio) linear, proposto por Widrow & Hoff (35, 36).
O modelo ADALINE têm seus parâmetros ajustados por meio de uma regra de adaptação recursiva
denominada Regra de Widrow-Hoff, também conhecido como Regra Delta, ou ainda, como algoritmo de
adaptação LMS (Least Mean Square).

x 0 = −1
x1
w1 w0 = θ
x2 w2
y(t) y*(t)=+ 1
x3
w3 Σ −
wp
: −+
xp d(t)
e(t)

Figura 6.2: Arquitetura do neurônio linear (ADALINE).

O modelo ADALINE é mostrado na Figura 6.2. O vetor de entrada é então definido como:
   
x0 (t) −1
 x1 (t)   x1 (t) 
   
x(t) =  .  =  .  (6.5)
 ..   .. 
xp (t) xp (t)

47
em que xj (t) denota uma componente qualquer do vetor de entrada x(t) e t indica o instante de apresentacão
deste vetor ao modelo ADALINE.
Como estamos tratando apenas de um modelo com um único neurônio, então o vetor de saída reduz-se
a um escalar, ou seja,
d(t) = d(t) (6.6)
representa o vetor de saídas desejadas associado ao vetor de entrada atual. O vetor de pesos associado ao
neurônio do modelo ADALINE é representado por
   
w0 θ
 w1   w1 
   
w =  .  =  . , (6.7)
 .   . 
. .
wp wp

em que θ define um limiar (threshold ou bias) associado ao neurônio.


O vetor de pesos w e o limiar θ correspondem aos parâmetros ajustáveis do modelo ADALINE. A seguir
são descritos os passos que compõem o treinamento (ou ajuste) destes parâmetros.
Após a apresentação de um vetor de entrada x, na iteração t, a ativação u(t) do neurônio é calculada
pela seguinte expressão: escondida:


p−1
u(t) = wj (t)xj (t) − θ
j=1


p−1
= wj (t)xj (t) + w0 x0
j=1


p−1
= wj (t)xj (t)
j=0

= wT (t)x(t) = xT (t)w(t) (6.8)

em que foi feito x0 = −1 e w0 = θ. O superscrito T indica a operação de transposição dos vetores. Assim,
a ativação do neurônio no instante t é simplesmente o produto-escalar do vetor de entrada x(t) com o vetor
de pesos w(t). Como o neurônio do modelo ADALINE é linear, então a saída deste é dada por y(t) = u(t).
Note que a saída y(t) ∈ R pode assumir infinitos valores, das mais variadas amplitudes. Contudo, para
algumas aplicações, tal como classificação de padrões, a saída só deve assumir um número finito de valores
possíveis. Dá-se o nome de quantização escalar ao processo de transformar a saída contínua y(t) em uma
saída discreta y ∗ (t).
Uma função quantizadora bastante utilizada em reconhecimento de padrões é obtida com a função sinal,
definida como: {
+1, Se y(t) > 0
y ∗ (t) = sign (y(t)) = (6.9)
−1, Se y(t) ≤ 0
A precisão instantânea (ou seja, no instante t) do modelo ADALINE como aproximador do mapeamento
F(·) é medida com base no Erro Quadrático (EQ) definido como:
1 1
ε(t) = e2 (t) = (d(t) − y(t))2 (6.10)
2 2
em que e(t) = d(t) − y(t) é o erro associado à apresentação do par entrada-saída atual (x(t), d(t)). Já o erro
global, ou seja, a medida de desempenho do modelo em função da apresentação de um conjunto de dados é o
Erro Quadrático Médio (EQM), o qual é baseado nos erros produzidos para todos os pares entrada-saída
{x(t), d(t)}:
1 ∑ 1 ∑
N N
J(t) = ε(t) = (d(t) − y(t))2 (6.11)
2N 2N
t=1 t=1

48
Os parâmetros do modelo ADALINE devem ser especificados a fim de que este produza sempre uma
saída y(t) bem próxima da saída esperada d(t) para um vetor de entrada x(t) qualquer. Em outras palavras,
o funcional J(t) deve ter o menor valor possível para aquele conjunto de dados específico. Dá-se o nome de
parâmetros ótimos aos valores de w e θ que alcançam este objetivo.
Um procedimento iterativo de se chegar aos parâmetros ótimos envolve o uso da seguinte equação recur-
siva:
∂J(t)
wj (t + 1) = wj (t) − α (6.12)
∂wj (t)
tal que a variável 0 < α < 1 é chamada de taxa de aprendizagem ou passo de adaptação.
Utilizando a regra da cadeia, a derivada presente na Equação (6.12) pode ser escrita da seguinte forma:

∂J(t) dJ(t) de(t) dy(t) du(t)


= (6.13)
∂wj (t) de(t) dy(t) du(t) dwj (t)

em que os resultados das quatro derivadas para o modelo ADALINE são mostrados a seguir:

dJ(t)
= e(t) (6.14)
de(t)
de(t)
= −1 (6.15)
dy(t)
dy(t)
= +1 (6.16)
du(t)
du(t)
= xj (t) (6.17)
dwj (t)

Assim, temos que a regra recursiva de ajuste dos pesos, wj (t), é dada por:

wj (t + 1) = wj (t) + ∆wj (t)


= wj (t) + αe(t)xj (t) (6.18)

O processo de ajuste dos pesos, também chamado de fase de aprendizado ou fase de treinamento do
modelo ADALINE equivale a um aprendizado que depende de um sinal de saída conhecido previamente, ou
como se diz no jargão da área, depende de uma saída desejada d(t) fornecida por um “supervisor” externo a
fim de guiar o processo de ajuste dos parâmetros, conforme ilustrado na Figura 6.3. Por este motivo, este
tipo de aprendizado é chamado também de aprendizado supervisionado.

x(t) Sistema Real


d(t)
F(.)
+
e(t)
_
ADALINE
^
F(.)

Figura 6.3: Aprendizado supervisionado.

49
6.3 Treinamento, Convergência e Generalização
O algoritmo ADALINE pode ser utilizado tanto para aproximação de funções quanto para classificação
de padrões. Em ambos os casos, a avaliação deste modelo é comumente dividido em duas etapas descritas a
seguir.
Fase de Treinamento - Nesta etapa, um determinado número N1 < N de pares entrada-saída {xµ dµ } são
escolhidos aleatoriamente para formar o conjunto de dados de treinamento. Não existe regra definida para a
escolha de N1 ; em geral, faz-se N1 /N ≈ 0,75 ou 0,8. Os N1 pares são então apresentados, um por vez, para
o modelo ADALINE, que tem seus pesos modificados segundo a Equação (6.18).
Toda vez que se apresenta todos os N1 vetores de treinamento, diz-se que uma época de treinamento foi
completada. Em geral, o conjunto de treinamento é apresentado mais de uma época ao modelo ADALINE,
sendo que a ordem de apresentação dos pares entrada-saída deve ser mudada a cada época.
O treinamento deve ser interrompido quando o aprendizado convergir, ou seja, quando o EQM (J(t)),
mostrado na Equação (6.11), alcançar um limite inferior Jmin previamente estabelecido, ou seja, quando
J(t) < Jmin . O gráfico J(t) × K, em que K define a época de treinamento, é chamado de Curva de Aprendi-
zagem da rede neural. Outro critério de parada para o treinamento envolve simplesmente a especificação de
um número máximo (Kmax ∈ N+ ≫ 1) de épocas de treinamento. Normalmente, os dois critérios são usados
simultaneamente.
Fase de Teste - Para validar o modelo ADALINE treinado, ou seja, dizer que ele está pronto para ser
utilizado, é importante testar a sua resposta para um conjunto de dados diferente daquele utilizado durante
o treinamento. Durante esta fase os pesos da rede não são ajustados.
Os pares entrada-saída de teste podem ser obtidos através de novas medições, o que nem sempre é possível
de se realizar. A opção viável então consiste na utilização dos N2 = N − N1 pares entrada-saída restantes,
chamados de conjunto de teste. A avaliação, em geral, é feita também com base no valor do EQM. O valor de
J(t) calculado com os pares entrada-saída de teste é chamado de erro de generalização do modelo ADALINE,
pois testa a capacidade deste em “extrapolar” o conhecimento aprendido durante o treinamento para novas
situações.
É importante ressaltar que, geralmente, o erro de generalização é maior do que o erro de treinamento,
pois trata-se de um novo conjunto de dados.
Por outro lado, quando se utiliza o modelo ADALINE para classificar padrões, o seu desempenho é
avaliado pela taxa de acerto na classificação, definida como:
Número de vetores classificados corretamente
Pepoca = (6.19)
Número de total de vetores
em que o número de vetores classificados corretamente é calculado com base na saída quantizada y ∗ (t), que só
assume dois valores, ou seja, y ∗ (t) = +1, se o vetor de entrada x(t) pertence a uma certa classe, e y ∗ (t) = −1
se o vetor x(t) pertence a uma outra classe.

50
Capítulo 7

Classificador Não-Linear Perceptron


Multicamadas

7.1 Introdução
A rede MLP tem se mostrado uma ferramenta poderosa na modelagem de mapeamentos entrada-saída
tipicamente encontrados em problemas de aproximação de funções (regressão) e classificação de padrões.
A rede MLP é especialmente indicada para modelagem caixa-preta de mapeamentos não-lineares a partir
de treinamento supervisionado1 . Estas características são bastante atrativas, principalmente para pretensos
usuários que já elaboraram modelos analíticos/dedutivos complicados.
O aprendizado a partir de exemplos (também chamado de aprendizado indutivo), embora seja uma
idéia intuitiva, não pode ser tratada como uma questão banal. Na realidade existem algoritmos bastante
sofisticados sendo utilizados para realizar a adaptação dos parâmetros do modelo neural. A implementação
de alguns destes algoritmos requer conhecimentos sólidos na área de otimização não-linear. Entretanto, o
algoritmo do gradiente descendente para retropropagação do erro se apresenta como uma das alternativas de
maior simplicidade e, talvez por isso, seja bastante popular. Porém, esta aparente simplicidade pode ocultar
aspectos importantes e decisivos para o sucesso da aplicação da rede MLP.
Isto posto, após a apresentação de uma breve descrição da rede MLP e do algoritmo de retropropagação
do erro de saída, são realizadas algumas considerações sobre a interpretação funcional das camadas e dos
neurônios em cada camada da MLP e apresentadas algumas recomendações para o treinamento destas redes.

7.2 O Algoritmo de Retropropagação do Erro


Embora se faça alguma menção sobre perceptrons com mais de uma camada escondida, o enfoque aqui
é o perceptron com apenas uma camada escondida. A Figura 7.1 mostra a topologia em foco nesta breve
descrição do algoritmo de retropropagação aplicado ao treinamento de uma MLP completamente conectada
com apenas uma camada escondida (18, 31).
A camada de entrada é composta apenas de unidades receptoras dos sinais externos, a camada interme-
diária é composta por neurônios somadores com função de ativação não-linear e a camada de saída também
é composta por neurônios somadores (que podem ou não ser lineares).
O treinamento da rede MLP se dá em duas fases: uma direta e outra reversa.

1
No treinamento supervisionado, cada entrada apresentada à rede vem acompanhada de uma resposta (saída) desejada e,
então, os pesos sinápticos da rede são ajustados de forma que a saída seja a mais próxima possível daquela desejada.

51
Figura 7.1: MLP com uma camada escondida

Sentido Direto:
Esta etapa de funcionamento da rede MLP envolve o cálculo das ativações e saídas de todos os neurônios
da camada escondida e de todos os neurônios da camada de saída. Assim, o fluxo de sinais (informação) se
dá das unidades de entrada para os neurônios de saída. Por isso, diz-se que a informação está se propagando
no sentido direto (forward).
Assim, após a apresentação de um vetor de entrada x, na iteração t, o primeiro passo é calcular as
ativações dos neurônios da camada escondida:

(h)

P
(h)

P
ui (t) = wij (t)xj (t) − θi (t) = wij (t)xj (t), i = 1, . . . , Q (7.1)
j=1 j=0

na qual wij (t) é uma conexão sináptica (peso) entre a j-ésima entrada e o i-ésimo neurônio da camada
(h)
escondida, θi (t) é o limiar do i-ésimo neurônio da camada escondida, Q (2 ≤ Q < ∞) é o número de
neurônios da camada escondida e P é a dimensão do vetor de entrada (excluindo o limiar). Definindo
(h)
x0 (t) = −1 e wi0 (t) = θi (t) simplifica bastante a notação. As ativações também podem ser entendidas
como a projeção de x na direção do vetor de pesos wi do neurônio i:


n
ui (t) = wij (t)xj (t) = wiT (t)x(t), i = 1, . . . , q (7.2)
j=0

em que T denota a operação de transposição dos vetores e q indica o número de neurônios da camada
escondida.
Em seguida, as saídas correspondentes de cada neurônio oculto são calculadas por
 
[ ] ∑ P
yi (t) = φi ui (t) = φi  wij (t)xj (t) ,
(h) (h)
(7.3)
j=0

cujo φi (·) é geralmente uma das seguintes formas:


1
φi [ui (t)] = , (Logística) (7.4)
1 + exp[−ui (t)]
1 − exp[−ui (t)]
φi [ui (t)] = , (Tangente Hiperbólica) (7.5)
1 + exp[−ui (t)]

52
O segundo passo consiste em calcular, de forma similar, os valores de saída dos neurônios da camada de
saída: [ Q ]
[ ] ∑
(o) (o) (h)
yk (t) = φk uk (t) = φk mki (t)yi (t) , (7.6)
i=0
em que mki (t) é o peso da conexão sináptica entre o i-ésimo neurônio da camada escondida e o k-ésimo
neurônio (k = 1, . . . , M ) da camada de saída, e M ≥ 1 é o número de neurônios de saída. Novamente, com
(h) (o) (o)
o propósito de simplificar a notação, define-se y0 (t) = −1 e mk0 (t) = θk (t), em que θk (t) é o limiar do
neurônio da saída k.
É importante salientar que durante o processo de treinamento os pesos estão sendo ajustados a cada
apresentação de vetor de entrada, e por isso, nesta notação estão em função de t.

Sentido Reverso:
Esta etapa caracteriza-se pela retropropagação dos sinais de erro de saída através das camadas de saída
e escondida, até atingir a camada de entrada. Por isso, diz-se que a informação está se propoagando no
sentido reverso (backward).
(o)
Assim, é necessário inicialmente calcular o valor do erro ek (t) gerado por cada neurônio de saída no
passo corrente t
(o) (o)
ek (t) = dk (t) − yk (t), k = 1, . . . , M (7.7)
em que dk (t) é o valor desejado para a saída do k-ésimo neurônio da camada de saída.
Os pesos deverão ser adaptados no sentido de minimizar uma função custo, que pode ser o erro quadrático
médio calculado sobre a resposta dos M neurônios de saída em relação a apresentação da amostra x(t), como
mostra a Equação 7.8 a seguir

1 ∑ [ (o) ]2 1 ∑[ ]2
M M
(o)
ε(t) = ek (t) = dk (t) − yk (t) , (7.8)
2M 2M
k=1 k=1

ou a soma dos erros quadráticos estimados nos M neurônios de saída conforme a Equação 7.19
M [
∑ ]2 ∑
M [ ]2
(o) (o)
ε(t) = ek (t) = dk (t) − yk (t) . (7.9)
k=1 k=1

A função custo J(t) = ε(t) é uma função que depende de cada peso da rede MLP. Assim, a adaptação
de cada peso é realizada em função da derivada da função custo em relação ao peso em questão, conforme a
Equação 6.12.
Pela regra da cadeia, a derivada da função custo em relação ao peso mki é dada por
(o) (o) (o)
∂J(t) dε(t) dek (t) dyk (t) duk (t)
= (o) (o) (o)
, (7.10)
∂mki (t) dek (t) dyk (t) duk (t) dmki (t)
ou seja,
∂J(t) (o) (h)
= −δk (t)yi (t), (7.11)
∂mki (t)
(o)
onde δk (t) é o gradiente local do neurônio k da camada de saída dado por
[ ]
δk (t) = φ′k uk (t) ek (t).
(o) (o) (o)
(7.12)

A derivada φ′k [uk (t)] assume diferentes expressões, dependendo da escolha da função de ativação. Assim,
(o)

tem-se as seguintes possibilidades:

φ′k [uk (t)] = yk (t)[1 − yk (t)],


(o) (o) (o) (o)
se φk [uk (t)] é a função logística (7.13)
1
φ′k [uk (t)] =
(o) (o) (o)
[1 − (yk (t))2 ], se φk [uk (t)] é a tangente hiperbólica (7.14)
2

53
O segundo passo da fase reversa consiste em calcular os gradientes locais dos neurônios da camada
escondida. Similarmente, a derivada da função custo em relação ao peso ωij é dada por

∂J(t) (h)
= −δi (t)xj (t), (7.15)
∂ωij (t)
(h)
onde δi (t) é o gradiente local do neurônio i da camada oculta dado por

[ ]∑
M [ ]
φ′i mki (t)δk (t) = φ′i ui (t) ei (t),
(h) (h) (o) (h) (h)
δi (t) = ui (t) i = 0, . . . , Q, (7.16)
k=1

(h)
em que o termo ei (t) pode ser considerado como o sinal de erro retropropagado ou projetado para o i-ésimo
neurônio da camada escondida, desde que tais “sinais de erro da camada escondida” são combinações lineares
dos “verdadeiros” sinais de erro cometidos nos neurônios da camada de saída.
O terceiro passo da fase reversa corresponde ao processo de atualização ou ajuste dos parâmetros (pesos
sinápticos e limiares) da rede MLP com uma camada escondida. Assim, para a camada escondida temos que
a regra de atualização dos pesos, wij , é dada por:

wij (t + 1) = wij (t) + ∆wij (t)


(h)
= wij (t) + ηδi (t)xj (t) (7.17)

em que η é a taxa de aprendizagem (0 < η < 1). E para camada de saída temos que a regra de atualização
dos pesos, mki , é dada por:
(o) (h)
mki (t + 1) = mki (t) + ηδk (t)yi (t), i = 0, . . . , Q. (7.18)

Uma apresentação completa de todos os N padrões do conjunto de treinamento durante o processo de


treinamento é chamada de época. Muitas épocas podem ser necessárias até que haja convergência na aplicação
do algoritmo de retropropagação. Assim, uma boa prática é apresentar aleatoriamente os dados do conjunto
de treinamento, época por época, com o objetivo de tornar estocástica a busca no espaço de pesos durante
o processo de treinamento.
Uma forma simples de avaliar a convergência é através do erro quadrático médio

1 ∑ ∑ [ (o) ]2 1 ∑∑[ ]2
N M N M
(o)
εtrain = ek (t) = dk (t) − yk (t) , (7.19)
2N M 2N M
t=1 k=1 t=1 k=1

calculado ao fim de cada rodada de treinamento usando os vetores de dados de treinamento. Durante este
processo, se a variação do erro estiver abaixo de um valor predeterminado, ou mesmo se o erro cai abaixo de
um valor predeterminado, considera-se que houve convergência.
A saída do k-ésimo neurônio da camada de saída da rede treinada é dada por
  
∑Q ∑P
yk (t) = φk  mki φi  wij xj (t) .
(o)
(7.20)
i=0 j=0

É importante notar que os pesos da Equação (7.20) são fixos.


Antes que o usuário aplique a rede MLP para solucionar um determinado problema, recomenda-se que
a rede seja submetida a uma avaliação do seu desempenho sobre um conjunto de dados, contendo amostras
jamais apresentadas anteriormente à rede, chamado de conjunto de teste. Este procedimento é comumente
conhecido como avaliação da capacidade de generalização da rede.

54
7.3 Fundamentos da Rede MLP
É sabido que um perceptron simples aplicado a classificação pode resolver apenas problemas com classes
linearmente separáveis (classes podem ser separadas por um hiperplano) (29) e que, por extensão, se a função
de ativação de cada neurônio numa rede de múltiplas camadas for linear, então esta rede também será capaz
de resolver apenas problemas linearmente separáveis (6).
Problemas que não são linearmente separáveis podem ser resolvidos com redes multicamadas cujos neurô-
nios possuem funções de ativação não lineares. Então, a questão é: quantas camadas escondidas devem ser
usadas e quantos neurônios em cada camada escondida?
Hornik et al. (21), Cybenko (8) e Funahashi (13) provaram de forma não construtiva que qualquer função
contínua pode ser aproximada arbritrariamente bem por uma rede MLP com apenas uma camada escondida
com neurônios escondidos semilineares usando limiares (bias) e um neurônio linear na saída.
Maiorov & Pinkus (27) provaram que, usando funções de ativação sigmoidais estritamente monotônicas,
pode-se aproximar arbitrariamente bem qualquer função contínua dentro de um determinado intervalo por
uma rede MLP com duas camadas escondidas com um número finito de neurônios em cada camada.
Esses teoremas e provas influenciaram muitos pesquisadores a continuar a trabalhar intensivamente e
acreditar nas potencialidades da MLP. Entretanto, o efeito sobre os usuários principiantes, aqueles que vêem
a MLP como uma caixa preta, foi o de encorajá-los a simplesmente escolher um número considerado grande de
neurônios na camada escondida e tentar resolver seus problemas práticos. Por esta razão serão apresentados
a seguir estudos consolidados sobre o funcionamento interno de uma MLP.

7.3.1 Interpretação Geométrica de Neurônios e Camadas


Xiang et al. (37) propõem algumas indicações gerais baseadas na interpretação geométrica de pesos,
limiares, camadas escondidas e neurônios em cada camada escondida em problemas de aproximação de
funções. Eles sugerem que informações sobre a geometria do problema podem simplificar bastante a escolha
da arquitetura a ser usada. Basicamente, a camada escondida de uma MLP fornece os blocos de construção
básicos com formas semelhantes a partes da função a ser aproximada. As larguras, alturas e posições desses
blocos construtivos podem ser arbitrariamente ajustados pelos pesos e limiares. Uma MLP com quatro
camadas é interpretada simplesmente como uma combinação linear de múltiplas MLPs de três camadas que
compartilham os mesmos neurônios na camada escondida mas com neurônios de saída diferentes.
Mesmo quando o espaço de entrada da rede neural cresce, a interpretação geométrica abordada no
parágrafo anterior é válida. Entretanto, as formas geométricas básicas de funções de alta dimensionalidade
são difíceis de serem determinadas. Conseqüentemente, extrair informação geométrica de funções de alta
dimensionalidade a partir de um conjunto de dados disponível é um desafio interessante.
Bose & Garga (6) usam resultados de geometria computacional para projetar redes neurais em problemas
de classificação de padrões. Eles construiram um diagrama de Voronoi 2 e obtiveram a informação necessária
para projetar a rede neural a partir disto. Qualquer célula de Voronoi pode ser implementada por uma rede
neural com uma camada escondida e um neurônio na camada de saída. O número de neurônios na camada
escondida é igual ao número de hiperplanos que confinam o agrupamento (cluster) e apenas um neurônio é
suficiente para fazer a operação lógica “E”. No caso de regiões não convexas ou mesmo disjuntas, os neurônios
de uma segunda camada escondida fazem a operação “E” para cada pequena região convexa e um neurônio
por classe faz a operação “OU” das várias pequenas regiões convexas para formar uma região não convexa ou
agrupar em uma mesma classe duas regiões disjuntas. O número de neurônios na camada de saída é igual
ao número de classes distintas.
Daqi & Yan (9), ao adotar outro ponto de vista interpretativo para a MLP, chamam a atenção para o
fato de que em uma rede com uma única camada escondida, a função primordial dos neurônios da camada
escondida com funções de ativação sigmoidais é transformar classes não linearmente separáveis no espaço de
entrada em classes linearmente separáveis num espaço expandido por estes neurônios. Cada vetor de pesos
2
Um diagrama de Voronoi é uma partição do espaço d-dimensional em regiões convexas, chamadas de células de Voronoi,
cada uma das quais define uma "região de influência" de um dado ponto no seu interior. Cada célula pode ser definida como a
interseção de um número finito de subespaços fechados e é, então, confinado por um número finito de hiperplanos.

55
associado a um neurônio da camada escondida representa um vetor de base do espaço no qual o vetor de
entrada será projetado.

7.3.2 Quantas Camadas Escondidas?


Teoricamente, uma MLP pode ter tantas camadas escondidas quanto o projetista desejar. Entretanto,
na prática, a escolha geralmente é de uma ou duas camadas.
Haykin (19) sugere que, para efeito de eficiência no treinamento, não se deve criar topologias com muitas
camadas, pois os pesos das camadas mais próximas da entrada da rede serão treinados mais lentamente. Isto
se dá pela atenuação imposta ao erro devido a derivada da não-linearidade de cada neurônio em seu ponto
de operação durante a retropropagação. Existem maneiras de amenizar este efeito, tal como o uso de taxas
de aprendizagem maiores para neurônios pertencentes a camadas mais próximos da entrada da rede, porém,
em geral, criam mais parâmetros a serem ajustados.
Pesquisas mostram visões algumas vezes conflitantes sobre a escolha do número de camadas escondidas.
Pode-se adotar uma postura mais pragmática, começando com uma arquitetura mais simples (perceptron
simples) e, conforme se julgue necessário, adiciona-se novas camadas. Entretanto, a utilização de MLPs com
apenas uma camada escondida é uma opção atrativa. Sua estrutura mais simples a torna menos suscetível
a atrações para mínimos locais, além de apresentar maior uniformidade na velocidade de estabilização dos
pesos durante o processo de treinamento, conforme já citado. E ainda, considerando desempenhos similares,
o número de pesos de uma MLP com uma única camada escondida não é muito maior que o necessário para
uma MLP com duas camadas escondidas.

7.4 Como Escolher o Número Adequado de Neurônios na Camada Escon-


dida
Em muitas situações práticas é impossível ou pelo menos inviável obter exemplos representativos de
todas as condições de entrada para uma rede neural. Desta forma, a rede deve aprender e não simplesmente
memorizar os padrões de treinamento. Se ela memoriza, sua resposta ao conjunto de dados de treinamento
será muito boa, mas poderá falhar bastante no tratamento de novos dados. O grande objetivo que se
pretende alcançar com sistemas adaptativos que aprendem com exemplos é generalizar, a partir dos dados
de treinamento, para novas entradas (24).
Alguns estudos (16, 32) evidenciam que o número de parâmetros a serem ajustados numa rede neural
tem influência sobre sua capacidade de generalização. Redes com complexidade reduzida (baixo número de
pesos) favorecem a melhoria da generalização. Entretanto, é importante ter em mente que uma rede com
poucos parâmetros pode não ser capaz de aprender a partir dos dados, não importando qual algoritmo de
treinamento seja aplicado. Por outro lado, redes de grande porte (grande número de pesos) apresentam menor
sensibilidade a parâmetros de aprendizagem, condições iniciais e mínimos locais. Entretanto, a velocidade
com a qual o mapeamento entrada-saída é realizado pode ser severamente diminuída. Redes de tamanho
intermediário também podem aprender vagarosamente e ser muito sensíveis a condições iniciais e parâmetros
de treinamento.
Na maioria dos casos, o número de neurônios ocultos é determinado a partir do treinamento de várias
topologias e estimação do erro de generalização de cada uma. Nesses casos, uma prática comum é estimar
o erro de generalização durante o treinamento e interrompê-lo quando o mesmo começar a crescer. Entre-
tanto, esta técnica, conhecida como parada prematura (early stopping), pode não ser prática quando se tem
disponível poucos dados para treinamento.
A seguir, serão apresentados algumas regras heurísticas para a escolha ou indicação do número de neurô-
nios.
Redes neurais, assim como qualquer classificador treinado não parametricamente, requerem muitos dados
para que se tenha um treinamento apropriado, pois não se faz suposições estatísticas prévias sobre os dados.
Assim, o tamanho do conjunto de dados de treinamento influi diretamente no desempenho dessa classe
de máquinas de aprendizado. De acordo com Baum & Haussler (2), uma rede neural contendo apenas

56
uma camada escondida e usada como classificador binário, quase sempre apresentará bom desempenho na
generalização desde que duas condições sejam satisfeitas:

• O erro relativo cometido no conjunto de treinamento seja menor que ϵ/2;

• O número de exemplos, N , usados no treinamento seja


( )
32W 32W
N≥ ln (7.21)
ϵ ϵ
onde “ln” denota o logaritmo natural, W o número de pesos na rede e ϵ é um parâmetro de exatidão.

Haykin (19), ignorando o fator logarítmico na Equação (7.21), sugere que o número apropriado de amos-
tras de treinamento é, com uma aproximação de primeira ordem, diretamente proporcional ao número de
pesos na rede e inversamente proporcional ao erro ϵ. Assim, o número de padrões de treinamento (N )
requeridos para classificar exemplos de teste com um erro relativo igual a ϵ é aproximadamente dado por
W
N> . (7.22)
ϵ
Esta equação sugere que o número requerido de padrões de treinamento cresce linearmente com o número de
parâmetros livres da rede MLP. Uma boa dica é N ∼ 10W (ϵ = 0, 1). Entretanto, é suposto que o conjunto
de dados de treinamento é representativo de todas as condições encontradas no conjunto de teste.
O projetista deve tomar cuidado com estas regras que simplesmente associam o número de pesos ao
número de amostras do conjunto de treinamento. Tais regras revelam uma preocupação apenas com o
sobreajustamento (overfitting). Entretanto, algumas vezes, se dispõe de um número muito grande (não se
sabe o quão grande) de exemplos de treinamento em relação ao número de parâmetros a ser ajustado, mas
estes exemplos não representam todas as regiões da função a ser mapeada de forma quantitativamente e/ou
qualitativamente equilibrada. Assim o mapeamento entrada-saída implementado pela rede treinada pode
ser tão suave em regiões de pouca representatividade dos dados que ocorra subajustamento (underfitting) ao
invés de sobreajustamento. Ainda mais, na medida do possível, o projetista deve levar em consideração o
ruído contido nos dados, pois em casos onde não se tem ruído pode ser necessário um número de dados que
seja apenas o dobro do número de pesos para que se evite o sobreajustamento. Por outro lado, em casos
bastante ruidosos, dados em número 30 vezes maior que pesos podem não ser suficientes (11).
Alguns pesquisadores supõem que o número de neurônios ocultos também está relacionado com a dimen-
são do vetor de entrada (10, 14, 15). Swingler (33) e Berry & Linoff (3) afirmam que jamais será necessário
ter neurônios escondidos em número maior que duas vezes o número de características de entrada. Krus-
chke (24) observa que redes treinadas com algoritmos de retropropagação algumas vezes generalizam melhor
quando contêm camadas escondidas com um número de neurônios consideravelmente menor que o da camada
precedente.
Blum (5) & Masters (28) sugerem que o número de neurônios ocultos num perceptron com apenas uma
camada escondida deve estar relacionado com o número de unidades de entrada e o número de neurônios de
saída, como pode ser visto a seguir,

M +P
Q0 = (regra do valor médio) (7.23)
2

Q0 = 2P + 1 (regra de Kolmogorov) (7.24)


2 P + M ≤ Q0 ≤ 2P + 1 (regra de Fletcher-Gloss) (7.25)


Q0 = MP (regra da raiz quadrada) (7.26)
onde Q0 é o número de neurônios ocultos recomendado, M é o número de neurônios de saída e P é o número
de unidades de entradas.

57
Essas regras simples têm pouco a oferecer além de um “chute” inicial para o número de neurônios ocultos.
Elas ignoram o número de exemplos de treinamento, a quantidade de ruído nos dados e a complexidade da
função de mapeamento. Mesmo quando se deseja minimizar o erro de treinamento com a imposição de que
o conjunto de dados tem muitas amostras e nenhum ruído, é relativamente fácil construir contra-exemplos
que desmentem essas regras.
Daqi & Yan (9) consideram que o número de neurônios ocultos está apenas relacionado com o número
de classes, assim como as regiões e as formas de distribuição das amostras no espaço de entrada, e não
relacionados com o número de amostras ou dimensão do espaço de entrada. Porém, a determinação da
distribuição das amostras em um espaço de alta dimensão é bastante difícil. Assim, eles apresentaram a
seguinte fórmula empírica para selecionar o número inicial de neurônios ocultos:

Q0 = [2log2 (P + K − 1)] ≥ 2, (7.27)

na qual K é o número de classes e P é o número de unidades de entrada. A Equação (7.27) é adequada para
alguns problemas de classificação clássicos como XOR e IRIS.
Uma importante observação feita por Barron (1), mediante a análise do erro quadrático médio de pro-
blemas de diversas magnitudes, é que para conjuntos de treinamento grandes, o erro para uma rede MLP
(com uma camada escondida) é independente do tamanho do espaço de entrada e está relacionado com o
inverso do número de neurônios ocultos (O(1/Q)). Então, MLPs são particularmente adequadas para lidar
com problemas com grande dimensionalidade de entrada, ou seja, são menos susceptíveis à maldição da
dimensionalidade que métodos clássicos de aproximação (e. g. polinômios).
A forma mais simples e, provavelmente a estratégia mais popular, para determinar a topologia da rede
MLP é focar diretamente na minimização do erro quadrático médio sobre o conjunto de treinamento e avaliar
a capacidade de generalização sobre um conjunto de teste. Entretanto, o excessivo esforço computacional
geralmente é considerado uma grande dificuldade (7).

7.5 Adição de Termos de Penalização à Função Custo


Termos de penalização modificam a função custo de tal forma que a retropropagação baseada nessa função
leva os pesos desnecessários a zero e, na realidade, os remove automaticamente durante o treinamento. Mesmo
quando os pesos não são realmente removidos, a rede se comporta como um sistema menor (32).
É muito comum adicionar-se à função custo um termo que leva em conta a magnitude dos pesos, resul-
tando em
∑N ∑ M [ ]2
(o)
C = µoe dk (t) − yk (t) + µθ g(θ). (7.28)
t=1 k=1

Os fatores de ponderação (µoe e µθ ) na Equação (7.28) requerem algum ajuste e dependem do problema.
Mas o que é mais comum é o ajuste de µoe e µθ manualmente por testes de desempenho na generalização
sobre um conjunto de dados independente.
Ishikawa (22) propõe a Equação (7.29) como função de pesos. A derivada de g(θ) em função de θi
adiciona −µθ sgn(θi ) à regra de atualização de pesos3 . Se θi ≥ 0, o peso é decrementado de µθ , caso
contrário, é incrementado de µθ .

W
g(θ) = |θi | (7.29)
i

Hinton (20) usa o método de decaimento de pesos, no qual o termo de penalização é dado por


W
g(θ) = θi2 = ||θ||2 . (7.30)
i
3
A função sinal (sgn(θi )) é uma função de limiar que assume valor igual a 1 se θi ≥ 0, e valor igual a −1 se θi < 0.

58
Dessa forma, considerando que a derivada de g(θ) em função de θi é 2µθ θi , isso efetivamente introduz um
termo de decaimento de pesos nas equações de retropropagação. Pesos maiores são mais penalizados durante
o processo de otimização e pesos que não são essenciais
∑ para a solução decaem a zero e podem ser removidos.
A desvantagem do termo de penalização i θi2 é que ele tende a favorecer vetores de pesos com mui-
tos componentes pequenos ao invés daqueles com apenas um componente grande, mesmo quando isto é
desejado (26).

7.6 Sumário de Heurísticas para Treinamento de MLPs


A aprendizagem de MLPs, embora seja simples à primeira vista, requer ajuste de parâmetros e a adoção
de algumas estratégias de treinamento. Conforme apresentado nas subseções anteriores, a inobservância
de aspectos importantes relacionados com o treinamento pode tornar o processo bastante penoso e com
resultados modestos. A seguir são arroladas as principais sugestões e dicas para o treinamento de MLPs:

• Normalizar os dados para a faixa de valores das ativações da rede;

• Aplicar métodos de extração de características;

• Realizar testes preliminares para a indicação do número mais adequado de dados para treinamento e
testes;

• Usar a tangente hiperbólica em vez da função logística como função de ativação dos neurônios;

• Evitar o uso dos limites assintóticos (−1 e +1) da tangente hiperbólica como rótulos das saídas dese-
jadas. Sugestão: −0, 95 e 0, 95;

• Adicionar um valor constante de 0, 05 na derivada da não-linearidade para reduzir o efeito de paralisia


de neurônios;

• Iniciar os pesos da rede de tal forma que as funções de ativação dos neurônios estejam inicialmente na
região linear;

• Adotar taxas de aprendizagem maiores nas camadas mais próximas da entrada da rede numa tentativa
de equalizar a velocidade de aprendizado dos neurônios;

• Usar decaimento da taxa de aprendizagem durante o processo de treinamento;

• Usar termo de momento (α) para tornar o processo de treinamento menos oscilatório e menos sensível
em relação a escolha da taxa de aprendizagem;

• Escolher topologias que tenham menos pesos a serem ajustados do que dados no conjunto de treina-
mento;

• Usar processos de aprendizagem baseados em métodos de otimização mais sofisticados, como os base-
ados no gradiente conjugado (Ex.: método Levenberg-Marquardt);

• Aplicar algum método de poda sobre a rede treinada para eliminar redundâncias e melhorar a capaci-
dade de generalização.

59
7.7 Treinamento, Convergência e Generalização
A convergência da rede MLP é, em geral, avaliada com base nos valores do erro quadrático médio por
época de treinamento, aqui simbolizado por ε(epoca):

1 ∑ 1 ∑∑ 2
N N m
ε(epoca) = ε(t) = ek (t) (7.31)
N 2N
t=1 t=1 k=1

Por outro lado, quando se utiliza a rede MLP para classificar padrões, o desempenho da mesma é avaliado
pela taxa de acerto na classificação, definida como:
Número de vetores classificados corretamente
Pepoca = (7.32)
Número de total de vetores
O gráfico de ε(epoca) ou P (epoca) pelo número de épocas é chamado de Curva de Aprendizagem da rede
neural.
Em geral, o treinamento da rede neural é interrompido quando ε(epoca) (ou P (epoca)) atinge um limite
inferior (ou superior) considerado adequado para o problema em questão (por exemplo, εepoca ≤ 0,001 ou
Pepoca ≈ 0,95), ou quando o número máximo de épocas permitido é alcançado.
Para validar a rede treinada, ou seja, dizer que ela está apta para ser utilizada, é importante testar a sua
resposta (saída) para dados de entrada diferentes daqueles vistos durante o treinamento. Estes novos dados
podem ser obtidos através de novas medições, o que nem sempre é viável. Durante o teste os pesos da rede
não são ajustados.
Para contornar este obstáculo, o procedimento mais comum consiste em treinar a rede apenas com
uma parte dos dados selecionados aleatoriamente, guardando a parte restante para ser usada para testar o
desempenho da rede. Assim, ter-se-á dois conjuntos de dados, um para treinamento, de tamanho N1 < N ,
e outro de tamanho N2 = N − N1 . Em geral, escolhe-se N1 tal que a razão N1 /N esteja na faixa de 0,75 a
0,90.
Em outras palavras, se N1 /N ≈ 0,75 tem-se que 75% dos vetores de dados devem ser selecionados
aleatoriamente, sem reposição, para serem utilizados durante o treinamento. Os 25% restantes serão usados
para testar a rede. O valor de ε ou da taxa de acerto na classificação calculados para os dados de teste é
chamado de erro de generalização da rede, pois testa a capacidade da mesma em “extrapolar” o conhecimento
aprendido durante o treinamento para novas situações. É importante ressaltar que, geralmente, o erro de
generalização é maior do que o erro de treinamento, pois trata-se de um novo conjunto de dados.
Em geral, os procedimentos de treinamento e teste são repetidos por um número M ≫ 1 de vezes, a fim
de se ter uma noção da variabilidade estatística das taxas de acerto. Para cada bateria de treinamento e
teste, os elementos que comporão os conjuntos de treinamento e teste são selecionados aleatoriamente. O
valor final da taxas de acerto é dado então pela média das taxas obtidas para as M baterias. O intervalo de
confiança da taxa de acerto também pode ser estimado a partir da amostra obtida para as M baterias de
treinamento e teste. O mesmo procedimento é levado a cabo caso se queira ter uma noção do valor médio
do erro de generalização.
Em particular, para tarefas de detecção de novidades, uma rede neural pode ser avaliada quanto à
quantidades de erros do tipo I (falso positivo) e do tipo II (falso negativo) produzidos. A Taxa de Falsos
Positivos (TFP) e Taxa de Falsos Negativos (TFN) são calculadas, respectivamente, a partir das seguintes
expressões:
Número de vetores comuns classificados como novidades
TFP = 100 × (7.33)
Número de total de vetores comuns
e
Número de vetores novidades classificados como comuns
TFN = 100 × . (7.34)
Número de total de vetores novidades
Por fim, algumas técnicas para acelerar a convergência da rede MLP durante o treinamento são listadas
a seguir.

60
Taxa de aprendizagem variável:
Nas expressões de ajuste de pesos sinápticos, e.g. Equações (7.17) e (7.18) é interessante que se use uma
taxa de aprendizagem variável no tempo, η(t), decaindo até um valor bem baixo com o passar das iterações,
em vez de mantê-la fixa por toda a fase de treinamento. Duas opções são dadas a seguir:
( )
t
η(t) = η0 1 − , Decaimento linear (7.35)
tmax
η0
η(t) = , Decaimento exponencial (7.36)
1+t
em que η0 é o valor inicial da taxa de aprendizagem e tmax é o número máximo de iterações, ou seja:

tmax = N × Número máximo de épocas (7.37)

A idéia por trás das duas equações anteriores é começar com um valor alto para η, dado por η0 ≈ 0,5, e termi-
nar com um valor bem baixo, da ordem de η ≈ 0, 01 ou menor, a fim de estabilizar o processo de aprendizado.

Termo de momento:
Outra melhoria que se pode fazer nas expressões de ajuste de pesos sinápticos, e.g. Equação (7.17) e
Equação (7.18) é se usar um termo adicional, chamado termo de momento, cujo objetivo é tornar o processo
de modificação dos pesos mais estável. Com este termo, Equação (7.17) e Equação (7.18) passam a ser
escritas como:

wij (t + 1) = wij (t) + ηδi (t)xj (t) + ξ∆wij (t − 1) (7.38)


mki (t + 1) = mki (t) + ηδk (t)yi (t) + ξ∆mki (t − 1) (7.39)

em que ∆wij (t − 1) = wij (t) − wij (t − 1) e ∆mki (t − 1) = mki (t) − mki (t − 1). A constante 0 < ξ < 1 é
chamada fator de momento. Enquanto ξ deve ser mantida bem abaixo de 0,5 por questões de estabilidade
do aprendizado, o fator de momento assume valores na faixa [0,5 - 1].
É importante destacar que foi demonstrado recentemente que a inclusão do fator de momento na equação
recursiva de ajuste dos pesos da rede MLP corresponde a uma versão do método de otimização do gradiente
conjugado (4).

Limites menores que os assintóticos:


É interessante notar que os valores limites 0 e 1 para a função logística, ou (−1 e +1) para a função
tangente hiperbólica são valores assintóticos, ou seja, nunca são alcançados na prática. Assim, ao tentarmos
forçar a saída rede neural para estes valores assintóticos, os pesos sinápticos, mki tendem a assumir valores
absolutos muito altos, ou seja, mki → ∞.
Para evitar este problema, sugere-se elevar de um valor bem pequeno 0 < ϵ ≪ 1 o limite inferior de ϕ(·)
e diminuir deste mesmo valor o limite superior de ϕ(·). Assim, teríamos a seguinte alteração:

−1 → ϵ − 1 (7.40)
0 → ϵ (7.41)
1 → 1−ϵ (7.42)

É comum escolher valores dentro da faixa ϵ ∈ [0, 01 − 0, 05].

61
Capítulo 8

Classificador Não-Linear de Funções de Base


Radial

A rede de Funções de Base Radial (Radial Basis Function, RBF) é uma arquitetura neural híbrida
que combina conceitos de aprendizagem supervisionada e não-supervisionada. O objetivo deste tipo de
arquitetura neural é o mesmo da rede MLP, ou seja, aproximar mapeamentos (funções) não-lineares e também
classificar padrões.
Em sua concepção básica, apresenta uma camada de entrada, uma só camada intermediária com funções
de ativação não-lineares (normalmente do tipo gaussiana), e uma camada de saída cujos neurônios são
geralmente lineares.
Para utilizar a rede RBF é preciso ter em mãos um número finito de N exemplos de treinamento dados
na forma de pares de vetores (x, d):

x(1), d(1)
x(2), d(2)
.. ..
. . (8.1)
x(N ), d(N )

onde assume-se que estes vetores estão relacionados segundo uma lei matemática F(·), tal que:

d(t) = F[x(t)] (8.2)

onde t = 1, . . . , N .
É justamente o mapeamento F(·) que se deseja conhecer. Uma maneira de se adquirir conhecimento
sobre F(·) é através dos dados disponíveis. Para isto pode-se utilizar a rede RBF (assim como a rede MLP)
para gerar uma aproximação de F(·), denotada por F̂(·), tal que:

o(t) = F̂[x(t)] (8.3)

onde o(t) é a saída gerada pela rede que, espera-se, seja muito próxima da saída real d(t).
Cada vetor de entrada é representado como
 
x1 (t)
 
x(t) =  ...  (8.4)
xp (t)
onde o tempo discreto t = 1, 2, · · · , serve para indicar o instante de apresentacão de um vetor de entrada
qualquer à rede, enquanto o vetor de saída, descrito como
 
d1 (t)
 
d(t) =  ...  , (8.5)
dn (t)

62
representa o vetor de saídas desejadas associado ao vetor de entrada atual. Ainda, xj denota uma componente
qualquer do vetor de entrada x e dk denota uma componente qualquer do vetor de saídas desejadas d.
O vetor de pesos associado a cada neurônio i da camada escondida, também chamada de camada oculta
ou camada intermediária, é representado como
 
wi1
 
wi =  ...  (8.6)
wip

onde θi é o limiar (threshold) associado ao neurônio i. Os neurônios desta camada são chamados de neurônios
escondidos por não terem acesso direto à sáida da rede RBF, onde são calculados os erros de aproximação.
De modo semelhante, o vetor de pesos associado a cada neurônio k da camada de saída é representado
como    
mk0 θk
   
mk =  ...  =  ...  (8.7)
mkn mkn
onde θk é o limiar associado ao neurônio de saída k.
Apesar de haver vários modos de se projetar uma rede RBF, a forma apresentada aqui refere-se a um
treinamento em duas etapas, como segue:

8.1 Projeto da Primeira Camada


Esta etapa envolve basicamente a especificação do número de neurônios da primeira camada e a posição
de cada neurônio no espaço de entrada. A forma mais comum de se determinar a posição (centro) de cada
neurônio ci é através da rede SOM. Ou seja, consideramos os centros como se fossem os vetores de pesos de
uma rede SOM, ci = wi , e ajustamos seus valores de acordo com a regra de aprendizagem da rede SOM.
Assim, após a apresentação de um vetor de entrada x na iteração t, calcula-se a ativação do neurônio i
por meio da seguinte expressão:
ui (t) = ∥x(t) − ci ∥, i = 1, . . . , q (8.8)
onde q é o número de neurônios desta camada, e o vetor ci , mantido constante para o neurônio i, define o
que se chama de centro do neurônio i. A saída dos neurônios é calculada da seguinte forma:
{ 2 }
u (t)
yi (t) = ϕi (ui (t)) = exp − i 2 , i = 1, . . . , q (8.9)
2σi

onde σi é chamada de spread do neurônio i, pois define a largura (abertura) da função de ativação gaussiana
deste neurônio..
Note que, de acordo com a Equação (8.9), o neurônio i fornece resposta máxima, i.e. yi (t) ≈ 1, para
vetores de entrada próximos do seu centro ci . Desta forma, diz-se que cada neurônio da camada escondida
tem seu próprio campo receptivo (receptive field) no espaço de entrada, que é uma região centrada em ci
com tamanho proporcional a σi .
É comum normalizar
∑q a saída dos neurônios da camada escondida, tal que a soma de todas as saídas seja
igual a 1, ou seja, i=1 yi (t) = 1. Para isto a Equação (8.9) é redefinida como:
{ 2 }
ui (t)
ϕi (ui (t)) exp − 2σ 2
yi (t) = ∑q =∑ { 2 }
u (t)
(8.10)
l=1 ϕl (ul (t))
q
l=1 exp − l
2σ 2

63
8.2 Projeto da Segunda Camada
Após o projeto da primeira camada (camada escondida) prossegue-se com o processo de atualização ou
ajuste dos parâmetros (pesos sinápticos) dos neurônios da camada de saída.
A ativação de um neurônio k desta camada é dada por:

q
uk (t) = mki (t)yi (t), k = 1, . . . , n (8.11)
i=0

onde n é o número de neurônios de saída. Note que as saídas dos neurônios da camada escondida, yi (t),
fazem o papel de entrada para os neurônios da camada de saída. Em seguida, as saídas dos neurônios da
camada de saída são calculadas como
( q )

ok (t) = ϕk (uk (t)) = ϕk mki (t)yi (t) , (8.12)
i=0

onde assumiu-se que y0 (t) = −1 e mk0 = θk . A função de ativação ϕk assume geralmente uma das seguintes
formas:
1
ϕk (uk (t)) = , (Logística) (8.13)
1 + exp[−uk (t)]
1 − exp[−uk (t)]
ϕk (uk (t)) = . (Tangente Hiperbólica) (8.14)
1 + exp[−uk (t)]
Agora, a regra de atualização dos pesos, mki , é dada por
mki (t + 1) = mki (t) + ∆mki (t)
= mki (t) + αδk (t)yi (t), (8.15)
onde α(t) é a taxa de aprendizagem, e δk (t) é definido como
δk (t) = ek (t)ϕ′ (uk (t)). k = 1, . . . , n (8.16)
O erro ek (t) entre a saída desejada dk (t) para o neurônio k e a saída gerada por ele, ok (t), é dado por
ek (t) = dk (t) − ok (t). k = 1, . . . , n (8.17)
No caso em que os neurônios da camada de saída são lineares, suas saídas são dadas por

q
yk (t) = mki (t)vi (t), k = 1, . . . , m (8.18)
i=0

em que m é o número de neurônios de saída. Assumiu-se que v0 (t) = −1 e mk0 = θk . O ajuste dos pesos
pode ser realizado de uma só vez (batch) pela aplicação do método dos Mínimos Quadrados.
Pode-se equacionar a relação entre as saídas dos neurônios da camada escondida e dos neurônios de saída
da seguinte forma matricial:
GM = D, (8.19)
tal que G é uma matriz de dimensões N × q, definida como
 
φ1 (x(1)) φ2 (x(1)) φ3 (x(1)) · · · φq (x(1))
 φ1 (x(2)) φ2 (x(2)) φ3 (x(2)) · · · φq (x(2)) 
 
G =  .. .. .. .. .. , (8.20)
 . . . . . 
φ1 (x(N )) φ2 (x(N )) φ3 (x(N )) · · · φq (x(N ))
e D = [d(1) d(2) · · · d(N )]T é uma matriz de dimensões N × m cujas linhas são os vetores de saídas
desejadas transpostos. Assim, a Equação (8.19) pode ser resolvida pelo método dos mínimos quadrados
(18, 31) encontrando-se os valores dos pesos da camada de saída por meio da seguinte expressão
M = (GT G)−1 GT D. (8.21)

64
8.3 Treinamento, Convergência e Generalização
O projeto de uma rede RBF envolve a especificação de diversos itens, cujos valores influenciam conside-
ravelmente seu funcionamento. Assim, as considerações apresentadas para as redes SOM e MLP são válidas
para a RBF. A seguir são dadas algumas sugestões específicas para redes RBF.

Seleção do Parâmetro spread (σi ): Este parâmetro é de fundamental importância para o projeto da rede
RBF. Se ele for muito alto, existe um elevado grau de superposição entre os campos receptivos dos
neurônios da camada escondida, aumentando a suavidade da resposta da rede, porém diminuindo a sua
precisão. Isto equivale a dizer a rede generaliza demais. Se for muito pequeno, a superposição deixa
de existir, porém precisão é elevada apenas para os casos em que x(t) ≈ ci . Neste caso, a rede não
generaliza bem.
Existem diversas técnicas para determinar σi , contudo nos restrigiremos a dois casos bastante comuns,
a saber:

• Caso 1: Um único spread para todos os neurônios, ou seja, σi = σ. Neste caso, uma estratégia
comum consiste em fazer σ igual a uma fração da maior distância entre os centros de todos os
neurônios, ou seja:
dmax (ci , cj )
σ= √ , ∀i ̸= j (8.22)
2q
onde dmax (ci , cj ) = max∀i̸=j {∥ci − cj ∥}.
• Caso 2: Cada neurônio contém seu próprio spread, que tem seu valor definido como metade da
distância entre o centro do neurônio i e o centro mais próximo. Em termos matemáticos:

dmin (ci , cj )
σi = , ∀i ̸= j (8.23)
2
onde dmin (ci , cj ) = min∀i̸=j {∥ci − cj ∥}.

Caso nenhuma destas técnicas surta o efeito desejado, a sugestão é tentar buscar métodos mais sofis-
ticados que os discutidos aqui, ou então, fazê-lo por tentativa-e-erro.

65
Capítulo 9

Noções de Controle Nebuloso (Fuzzy)

O passo inicial em um projeto de sistema de controle tradicional é a obtenção de um modelo idealizado


do processo a ser controlado, que geralmente se apresenta na forma de equações diferenciais ou equações
a diferenças. A solução destas equações encontra apoio em ferramentas matemáticas poderosas como as
transformadas de Laplace e Z. Entretanto, a aplicação destas técnicas requer que o problema em questão
seja linear e invariante no tempo. Assim, os sistemas que apresentam comportamento não-linear e/ou estão
sujeitos a deterioração gradativa de componentes ou fortes influências ambientais apresentam dificuldades
adicionais para a sua representação matemática e, pontanto, para sua solução sob a ótica do controle.
Embora muitos processos apresetem as dificuldades citadas, não é raro encontrarmos processos matemati-
camente complexos sendo controlados satisfatoriamente por humanos, chamados experts, sem a compreensão
formal do modelo ou de detalhes físicos envolvidos. Esta capacidade apresentada pelo ser humano inspirou
a utilização de inteligência computacional, notadamente a técnica de controle nebuloso. Esta, por sua vez,
emula a forma como o ser humano compreende a realidade. Aqui, as percepções subjetivas como heurística,
intuição e experiência humanas são convertidas em representações matemáticas simples e regras lógicas que
compõem o algoritmo de controle. Desta forma, um controlador fuzzy pode tornar-se um modelo lógico da
forma com que o operador raciocina ao manipular o sistema.
A aplicação desta filosofia no projeto de sistemas de controle apresenta características atrativas, tais
como:

• Habilidade de lhe dá com conhecimento vago e impreciso de experts humanos;

• Comportamento suave do controlador;

• Comportamento robusto do controlador;

• Habilidade para controlar sistemas instáveis.

Entretanto, é importante salientar que não se deve fazer uso indiscriminado de controladores inteligentes,
tendo em vista que, em muitas situações a planta a ser controlada apresenta não-linearidades, mas, mesmo
assim, a solução com controladores PID convencionais ainda apresenta excelente solução custo/benefício.

9.1 Operação Básica de um Controlador Nebuloso


Em linhas gerais, a implementação de um controlador nebuloso é realizada em três etapas básicas mos-
tradas na Figura 9.1 e descritas brevemente a seguir:

• Fuzzificação: entradas do mundo real são convertidas (fuzzificadas) em entradas fuzzy;

• Processamento Fuzzy: processamento das entradas fuzzy de acordo com conjuntos de regras e produção
de saídas fuzzy;

• Defuzzificação: conversão de uma saída fuzzy em um valor aplicável no mundo real.

66
Figura 9.1: Esquema da máquina fuzzy.

O esquema clássico do projeto contém os seguintes passos:

• Definir entradas e variáveis de controle: determinar quais estados do processo devem ser observados e
quais ações de controle devem ser consideradas;

• Definir a interface: determinar a forma com a qual as observações do processo são expressas como
conjuntos nebulosos;

• Projetar a Base de Regras: determinar quais regras devem ser aplicadas sob quais condições;

• Projetar a unidade computacional: determinação dos algoritmos para a implementação da computação


nebulosa;

• Determinar como é feita a conversão do resultado da análise das regras em um valor que seja capaz de
realizar efetivamente ações de controle.

9.2 Fundamentos da Lógica Nebulosa(Fuzzy)


9.2.1 Conjuntos Nebulosos (Fuzzy)
Para o entendimento de conjuntos fuzzy é necessário relembrar alguns conceitos básicos da teoria de
conjuntos que conhecemos. Estes conjuntos são aqui denominados de conjuntos crisp.
Um conjunto crisp é uma coleção de objetos de algum tipo, números, pontos geométricos, etc. Geralmente
o conjunto é determinado pela listagem de todos os elementos ou pela especificação de alguma propriedade
bem definida destes elementos. Neste segundo caso, uma regra define quando um determinado elemento do
conjunto Universo pertence ou não pertence ao conjunto sob determinação. Pode-se então, rotular todos os
elementos do conjunto Universo como pertencentes ou não pertencentes ao conjunto sob determinação. Uma
função Booleana pode ser usada para tal fim:
{
1 se e somente se x ∈ A
µA (x) =
0 se e somente se x ∈
/ A.

Esta função, chamada função discriminante, define claramente os elementos do conjunto Universo que per-
tencem e que não pertencem ao conjunto A, dividindo o conjunto Universo em duas partes.
Quando se trabalha com conjuntos nebulosos, a fronteira entre o conjunto A e o conjunto Universo deixa
de existir de forma clara. Na realidade, todos os elementos do conjunto Universo podem receber rótulos que
lhes confiram um certo grau de pertinência ao conjunto A. Neste caso, a função discriminante dá espaço
a função de pertinência, a qual passa a atribuir rótulos baseados em números reais entre 0 e 1, incluindo
os limites do intervalo. Assim, um conjunto nebuloso A do conjunto universo U é um conjunto de pares
ordenados de um elemento genérico u e de seu grau de pertinência µA (u) tal como A = {(u, µA (u))/u ∈ U}.

67
Para exemplificar, se um dado elemento u do conjunto Universo U tem grau de pertinência µA (u) = 0,
pode-se dizer que o mesmo não apresenta a propriedade que caracteriza o conjunto A. Se o elemento tem
grau de pertinência µA (u) = 1, pode-se dizer que o mesmo apresenta a propriedade que caracteriza o conjunto
A. Se o grau de pertinência é µA (u) = 0, 5, não se pode dizer tacitamente que o mesmo apresenta ou não a
propriedade que caracteriza o conjunto A. E, se o grau de pertinência é µA (u) = 0, 8, alguém pode imaginar
que é bem provável que o elemento apresente a propriedade que caracteriza o conjunto A.

9.2.2 Funções de Pertinência


Como anteriormente comentado, os modelos nebulosos fazem uso de variáveis linguísticas. Estas, por sua
vez, modelam matematicamente conceitos vagos a respeito do chamado universo de discurso. Assim, termos
como MUITO GRANDE, GRANDE, MÉDIO, PEQUENO e MUITO PEQUENO são comumente associados
a funções de pertinência.
O domínio de cada variável linguística (região em que µA (u) > 0) deve inicialmente ser definido a partir
da experiência do projetista no trato com o problema em questão ou baseado em informações fornecidas
por experts. Em seguida o projetista deve verificar, por experimentação, o efeito de suas decisões sobre o
comportamento da saída do sistema. Caso seja necessário, o projetista deve redimensionar o domínio de
algumas ou de todas as variáveis linguísticas até que os resultados sejam satisfatórios.
A Figura 9.2 ilustra a representação do erro (universo de discurso) em sistemas de controle através das
seguintes variáveis linguísticas: GN-grande e negativo, MN-médio e negativo, PN-pequeno e negativo, Z-nulo,
PP-pequeno e positivo, MP-médio e positivo, e GP-grande e positivo.

Figura 9.2: Funções de pertinência

Além da triangular, pode-se utilizar diversas outras formas tais como: trapezoidal, gaussiana, parabólica
ou alguma outra forma especial. Dentre as citadas, a forma triangular é a mais popular em virtude de sua
simplicidade na implementação e reduzida demanda computacional. É importante salientar que a suavidade
obtida com funções de alta ordem e com grande custo computacional não reflete fortemente na qualidade da
saída de um modelo nebuloso.

9.2.3 Operadores Lógicos


Algumas operações podem ser realizadas tanto com conjuntos crisp quanto nebulosos. As principais são o
complemento Ā, a união ∪ e a interseção ∩. A seguir são apresentadas as definições formais destas operações
a partir das funções discriminantes ou de pertinência dos conjuntos envolvidos:

• A operação complemento de Ā é determinada por µĀ (u) = 1 − µA (u);

• A interseção A ∩ B pode ser determinada por


µA∩B (u) = min[µA (u), µB (u)]
ou

68
µA∩B (u) = µA (u).µB (u)

• A união A ∪ B pode ser determinada por µA∪B (u) = max[µA (u), µB (u)]

Na realidade, pode-se pensar a lógica nebulosa como uma generalização da lógica booleana. Assim, como
os números fuzzy podem variar de 0 a 1, é necessária a utilização de funções que realizem as operações lógicas
no mundo fuzzy e que preserve os resultados da lógica booleana. A Tabela 9.1 ilustra este fato.

Tabela 9.1: Operadores lógicos fuzzy aplicados em conjuntos booleanos.


AN D OR N OT
A B min[A, B] A B min[A, B] A 1−A
0 0 0 0 0 0 0 1
0 1 0 0 1 1 1 0
1 0 0 1 0 1
1 1 1 1 1 1

Pode-se observar que o operador min(mínimo), o operador max(máximo) e o operador 1 − A atendem


perfeitamente os resultados obtidos com os operadores AND, OR e NOT aplicados na lógica booleana.
Observações:

• A forma como a operação interseção é definida para conjuntos crisp é bastante clara, porém, para
conjuntos nebulosos é um tanto quanto arbitrária. É necessário porém que se satisfaça a seguinte
propriedade: resulte em 1 quando ambos os graus de pertinência forem 1 e resulte em 0 caso contrário;

• A propriedade que deve ser satisfeita no caso da operação união é que resulte em 1 quando pelo menos
um dos graus de pertinência for 1 e resulte em 0 caso contrário;

9.2.4 Regras Se - Então


Os conjuntos nebulosos e os operadores nebulosos são usados juntamente com as regras do tipo se-então
para formularmos as sentenças fundamentais ao raciocínio nebuloso. Considerando a seguinte regra,
SE e[k] é PP E ∆e[k] é NG ENTÃO u[k + 1] é NM
temos que PP(positivo pequeno), NG(negativo grande) e NM(negativo médio) são valores linguísticos
definidos pelos conjuntos nebulosos nos universos de discurso defininos para erro e variação do erro,
respectivamente. A parte "se" da regra, ou seja, "e[k] é PP e ∆e[k] é NG" é denominada antecedente
enquanto a parte "então", ou seja, "u[k + 1] é NP" é denominada de consequente.

9.2.5 Fuzzyficação
Na prática, as regras fuzzy podem ter vários antecedentes, os quais devem ser combinados a partir de
operadores para gerar os resultados de cada regra. A seguir é apresentado um exemplo para facilitar o
entendimento.
Considerando os universos de discurso "erro percentual" e "variação do erro" ilustrados na Figura 9.3,
pode-se observar que para erro de +7% e variação do erro de −0, 12, os conjuntos nebulosos pertinentes são:

• Erro PP (µP P (erro) = 0, 65) e PM (µP M (erro) = 0, 35)

• Variação do erro NG (µN G (∆erro) = 0, 40) e NM (µN M (∆erro) = 0, 60)

As regras ativadas são as seguintes:

• Regra 1: SE e[k] é PP E ∆e[k] é NG ENTÃO u[k + 1] é NM

• Regra 2: SE e[k] é PP E ∆e[k] é NM ENTÃO u[k + 1] é NP

• Regra 3: SE e[k] é PM E ∆e[k] é NG ENTÃO u[k + 1] é NP

69
Figura 9.3: Processo de fuzzyficação

• Regra 4: SE e[k] é PM E ∆e[k] é NM ENTÃO u[k + 1] é ZE,

O resultado das implicações para cada regra apresentada pode ser obtido a partir de algumas técnicas
encontradas na literatura:

• Implicação de Zadeh: max{min[µE (e), µD (∆e)], 1 − µE (e)}

• Implicação de Mamdani: min[µE (e), µD (∆e)]

• Implicação de Larsen: µE (e).µD (∆e)

• Implicação de Lukasiewicz: min{1, [1 − µE (e) + µD (∆e)]}

Assim, os resultados das implicações são apresentados na Tabela 9.2 para duas formas distintas do
operador lógico AND.

Tabela 9.2: Resultados da aplicação das regras.


Regra µE (e) µD (∆e) min[µE (e), µD (∆e)] µE (e) µD (∆e) µE (e).µD (∆e)
1 0,65 0,40 0,40 0,65 0,40 0,26
2 0,65 0,60 0,60 0,65 0,60 0,39
3 0,35 0,40 0,35 0,35 0,40 0,14
4 0,35 0,60 0,35 0,35 0,60 0,21

9.2.6 Defuzzyficação
Os resultados de todas as regras ativadas podem ser combinados através de diversos métodos para a
formação de valores aplicáveis ao mundo real. Esta etapa e conhecida como "defuzzyficação". Os métodos
mais empregados são o método do centróide e o das alturas.

70
O resultado de cada implicação é um número real representado aqui por µ1 , µ2 , µ3 e µ4 , respectivamente
para cada regra. No caso do método do centróide, a saída de cada regra é na realidade um conjunto nebuloso
que pode ser obtido como a seguir:

• Regra 1: µCM1 (u) = min[µ1 , µC1 (u)]

• Regra 2: µCM2 (u) = min[µ2 , µC2 (u)]

• Regra 3: µCM3 (u) = min[µ3 , µC3 (u)]

• Regra 4: µCM4 (u) = min[µ4 , µC4 (u)]

onde µCi (u) é a função de pertinência do i-ésimo conjunto nebuloso definido no universo de discurso de saída
U e µCMi (u) é a i-ésima função de pertinência modificada. A combinação dos resultados de cada regra pode
ser dado por um conjunto resultante µR (u) (Figura ??) como segue

µR (u) = max[µCM1 (u), µCM2 (u), µCM3 (u), µCM4 (u)] (9.1)

e a saída aplicável ao mundo real pode ser obtida como



j uj .µR (uj )
u= ∑ . (9.2)
j µR (uj )

Figura 9.4: Processo de fuzzyficação

É importante observar que o universo de discurso U é discreto, tendo em vista que a implementação do
controlador nebuloso é digital. Assim, é justificado o uso de somatório na equação 9.2 em vez de integral.
No caso do método das alturas, o resultado de cada implicação (µ1 , µ2 , µ3 e µ4 ) é utilizado como a altura
representativa de cada conjunto nebuloso do universo de saída ativado, e estas alturas são tomadas como
fatores ponderantes do cálculo de média responsável pela saída do controlador, como se pode ver a seguir:
µ1 .uN M + µ2 .uN P + µ3 .uN P + µ4 .uZE
u= . (9.3)
µ1 + µ2 + µ3 + µ4
Este segundo método apresenta resultados semelhantes aos obtidos com o método do centróide quando
os conjuntos definidos no universo de saída têm a mesma forma e são simétricos. Além disso, o método das
alturas requer baixo esforço computacional, o que pode ser atrativo em aplicações embarcadas.

9.3 Estrutura de Controladores Nebulosos


Não é fácil reproduzir exatamente as ações de um controlador em malha fechada convencional através da
lógica nebulosa. Mas na realidade, isto não é necessário. É preciso então escolher adequadamente as variáveis

71
de entrada e saída, definir de forma coerente os conjuntos nebulosos e o conjunto de regras, de tal forma
que o controlador resultante possa apresentar comportamento satisfatório e compatível com as espectativas
geradas pelo projetista.
A escolha do tipo de controlador P, PD, PI ou PID a ser implementado tem implicação direta na escolha
das variáveis de entrada e de saída da máquina de processamento nebuloso, assim como os conteúdo ante-
cedentes e consequentes de cada regra. Em geral, as variáveis de estado do processo, as quais se relacionam
com os conteúdos antecedentes das regras (parte SE da regra), são selecionados dentre:

• Sinal de erro atual: e[k] = ysp [k] − y[k];

• Variação do erro: ∆e[k] = (ysp [k] − y[k]) − (ysp [k − 1] − y[k − 1]) = −y[k] + y[k − 1]);

• Soma dos erros ou integral do erro: e.

A variável de saída de controle (entrada do processo), a qual se relaciona com os conteúdos consequentes das
regras (parte ENTÃO da regra), são selecionados dentre:

• Sinal de controle atual: u[k];

• Variação do sinal de controle: ∆u[k] = u[k] − u[k − 1].

9.3.1 Controlador P
Nesta subseção tratamos de um "controlador nebuloso" que imita o comportamento de um controlador
convencional proporcional aplicável a um sistema do tipo SISO (simple input-simple output). A entrada do
controlador é o erro atual e[k] e a saída é a próxima entrada u[k + 1] do sistema a ser controlado. A base de
regras para este controlador é relacionada a seguir:

• Regra 1: SE e[k] é NG ENTÃO u[k + 1] é NG.

• Regra 2: SE e[k] é NM ENTÃO u[k + 1] é NM.

• Regra 3: SE e[k] é NP ENTÃO u[k + 1] é NP.

• Regra 4: SE e[k] é ZE ENTÃO u[k + 1] é ZE.

• Regra 5: SE e[k] é PP ENTÃO u[k + 1] é PP.

• Regra 6: SE e[k] é PM ENTÃO u[k + 1] é PM.

• Regra 7: SE e[k] é PG ENTÃO u[k + 1] é PG.

As funções de pertinência dos conjuntos de entrada e saída são apresentados na Figura 9.5, cujas larguras
são parametrizadas por A e B. É importante perceber que o mapeamento não linear entre e[k] e u[k + 1] é
bastante influenciado por estes parâmetros. Na realidade B é o nível no qual a saída u[k + 1] satura e A é o
nível corresponde ao valor de e[k] no qual ocorre a saturação de u[k + 1] (??).

9.3.2 Controlador PD
A equação que define a saída de um controlador PD digital convencional é dada como segue

u[k] = KP .e[k] + KD .∆e[k]. (9.4)

Desta forma, para que um controlador nebuloso imite o comportamento de um controlador PD convencional,
são necessárias não somente a informação sobre o erro atual, como também sobre a variação do erro. É
importante observar que a saída deste controlador deve atuar diretamente na entrada do processo.
A Tabela 9.3.3 ilustra uma proposta de um conjunto de 49 regras elaboradas para a implementação
de um controlador nebuloso PD. Esta é uma proposta dentre diversas possibilidades. Porém, para que se

72
Figura 9.5: Funções de pertinência

Tabela 9.3: Proposta de conjunto completo de regras para controlador fuzzy PD. Entradas: e[k] e ∆e[k] -
Saída: u[k + 1].
e[k] / ∆e[k] NG NM NP ZE PP PM PG
NG NG NG NG NG NM NP ZE
NM NG NG NG NM NP ZE PP
NP NG NG NM NP ZE PP PM
ZE NG NM NP ZE PP PM PG
PP NM NP ZE PP PM PG PG
PM NP ZE PP PM PG PG PG
PG ZE PP PM PG PG PG PG

obtenha comportamentos satisfatórios, é importante que o projetista seja inspirado no comportamento de


um controlador PD convencional.
A Tabela 9.4 ilustra um refinamento do conjunto de regras proposto na Tabela 9.3.3, que foi alcançado
por experimentação exaustiva.
A Figura 9.6 ilustra a atuação das regras da Tabela 9.4, apresentadas por extenso a seguir, em relação a
cada ponto de operação da saída do sistema a ser controlado.

Conjunto de Regras (Tabela 9.4)

• Regra 1: SE e[k] é NG E ∆e[k] é ZE ENTÃO u[k + 1] é NG

• Regra 2: SE e[k] é NM E ∆e[k] é ZE ENTÃO u[k + 1] é NM

• Regra 3: SE e[k] é NP E ∆e[k] é ZE ENTÃO u[k + 1] é NP

• Regra 4: SE e[k] é ZE E ∆e[k] é ZE ENTÃO u[k + 1] é ZE,

• Regra 5: SE e[k] é PP E ∆e[k] é ZE ENTÃO u[k + 1] é PP

• Regra 6: SE e[k] é PM E ∆e[k] é ZE ENTÃO u[k + 1] é PM

73
Tabela 9.4: Proposta de conjunto simplificado de regras para controlador fuzzy PD. Entradas: e[k] e ∆e[k]
- Saída: u[k + 1].
e[k] / ∆e[k] NG NM NP ZE PP PM PG
NG NG
NM NG NM NP
NP NM NP ZE
ZE NP ZE PP
PP ZE PP PM
PM PP PM PG
PG PG

• Regra 7: SE e[k] é PG E ∆e[k] é ZE ENTÃO u[k + 1] é PG

• Regra 8: SE e[k] é NM E ∆e[k] é NP ENTÃO u[k + 1] é NG,

• Regra 9: SE e[k] é NP E ∆e[k] é NP ENTÃO u[k + 1] é NM

• Regra 10: SE e[k] é ZE E ∆e[k] é NP ENTÃO u[k + 1] é NP

• Regra 11: SE e[k] é PP E ∆e[k] é NP ENTÃO u[k + 1] é ZE

• Regra 12: SE e[k] é PM E ∆e[k] é NP ENTÃO u[k + 1] é PP,

• Regra 13: SE e[k] é NM E ∆e[k] é PP ENTÃO u[k + 1] é NP

• Regra 14: SE e[k] é NP E ∆e[k] é PP ENTÃO u[k + 1] é ZE

• Regra 15: SE e[k] é ZE E ∆e[k] é PP ENTÃO u[k + 1] é PP

• Regra 16: SE e[k] é PP E ∆e[k] é PP ENTÃO u[k + 1] é PM,

• Regra 17: SE e[k] é PM E ∆e[k] é PP ENTÃO u[k + 1] é PG.

?? propõe um controlador PD com apenas 03 conjuntos nebulosos em cada universo de discurso de


entrada e 05 conjuntos nebulosos no universo de discurso de saída. As 09 regras são apresentadas a seguir:

• Regra 1: SE e[k] é NG e ∆e[k] é NG ENTÃO u[k + 1] é NG.

• Regra 2: SE e[k] é ZE e ∆e[k] é NG ENTÃO u[k + 1] é NP.

• Regra 3: SE e[k] é PG e ∆e[k] é NG ENTÃO u[k + 1] é ZE.

• Regra 4: SE e[k] é NG e ∆e[k] é ZE ENTÃO u[k + 1] é NP.

• Regra 5: SE e[k] é ZE e ∆e[k] é ZE ENTÃO u[k + 1] é ZE.

• Regra 6: SE e[k] é PG e ∆e[k] é ZE ENTÃO u[k + 1] é PP.

• Regra 7: SE e[k] é NG e ∆e[k] é PG ENTÃO u[k + 1] é ZE.

• Regra 8: SE e[k] é ZE e ∆e[k] é PG ENTÃO u[k + 1] é PP.

• Regra 9: SE e[k] é PG e ∆e[k] é PG ENTÃO u[k + 1] é PG.

74
Figura 9.6: Funções de pertinência

Tabela 9.5: e e ∆e da página 86.


∆e
NG Z PG
PG ZE PP PG
e Z NP ZE PP
NG NG NP ZE

9.3.3 Controlador PI
A equação que define a saída de um controlador PI analógico é dada como segue

u(t) = KP e(t) + KI e(t)dt. (9.5)

Desta forma, as entradas para um controlador nebuloso PI seriam o erro e[k] e o somatório do erro e[k] e a
saída seria u[k + 1]. Entretanto, a formulação de regras para a integral do erro não é tão simples, em virtude
do enorme universo de discurso. Assim, se derivarmos e digitalizarmos a Equação 9.5, ainda teremos uma
equação representativa de um controlador PI. Porém, suas entradas são semelhantes a de um controlador
PD e sua saída é o incremento/decremento da entrada do sistema a ser controlado, como pode ser visto na
Equação
∆u[k + 1] = KP ∆e[k] + KI e[k]. (9.6)
É importante notar que o conjunto de regras da Tabela poderia ser utilizada para a implementação do
controlador PI, merecendo talvez alguns poucos ajustes. As Tabelas 9.6 e 9.7 são propostas de conjuntos de
49 regras para a implementação do controlador PI nebuloso.

75
Tabela 9.6: Proposta 1 para controlador fuzzy PI - Entradas: e e ∆e - Saída: ∆u.
e[k] / ∆e[k] NG NM NP ZE PP PM PG
NG NG NG NG NG NM NP ZE
NM NG NG NG NM NP ZE PP
NP NG NG NM NP ZE PP PM
ZE NG NM NP ZE PP PM PG
PP NM NP ZE PP PM PG PG
PM NP ZE PP PM PG PG PG
PG ZE PP PM PG PG PG PG

Tabela 9.7: Proposta 2 para controlador fuzzy PI - Entradas: e e ∆e - Saída: ∆u.


e[k] / ∆e[k] NG NM NP ZE PP PM PG
NG NG NG NG NG NG NG NM
NM NG NM NM NM NM NM NP
NP NM NP NP NP NP NP ZE
ZE NP ZE ZE ZE ZE ZE PP
PP ZE PP PP PP PP PP PM
PM PP PM PM PM PM PM PG
PG PM PG PG PG PG PG PG

O controlador fuzzy com ação direta na entrada do sistema é análogo ao controlador PD, e o controlador
fuzzy com ação incremental é análogo ao controlador PI. Na Tabela 9.8 é apresentada outra proposta de
conjuntos de 25 regras para a implementação dos controladores PI ou PD nebulosos.

Tabela 9.8: Base de regras de controlador fuzzy PD ou PI.


NG NP ZE PP PG
NG PMG PG PM PP ZE
NP PG PM PP ZE NP
ZE PM PP ZE NP NM
PP PP ZE NP NM NG
PG ZE NP NM NG NMG

As Figuras 9.7(a),9.7(c) ?? apresentam as respostas a um degrau de setpoint dos controladores P, PD e


PI fuzzy, respectivamente, em comparação com a operação em malha aberta.

76
Figura 9.7: Resposta do sistema em malha aberta (linha negra), sistema em malha fechada com controlador
P (linha verde), com controlador PD (linha azul) e com controlador PI (linha vermelha).

9.3.4 Controlador PID


Existem muitos casos em que é vantajoso usar um controlador PID não-linear. Se a planta for linear,
pode-se melhorar o desempenho transiente pela incorporação de uma não-linearidade que faça o controlador
operar como um controlador time-optimal quando o erro for grande e como um controlador linear quando
o erro for pequeno (??). Se a planta for não-linear, a não-linearidade do controlador pode ser projetada de
tal forma a compensar as não-linearidades da planta. Tempo morto é um exemplo de não-linearidade que
geralmente é combatido por controladores PID. Isto reduz o desgaste em atuadores.
A aplicação de controladores fuzzy em associação com o controlador PID convencional permite expandir a
capacidade do sistema de controle pela adição de sinais de entrada e saída extras, criando assim controladores
multivariáveis.
A forma incremental do controlador fuzzy PID é mais comum em virtude de sua ação integral. A razão
disto reside no fato de que é mais intuitivo descrever as ações do controlador em termos de mudanças do
sinal de controle.
A base de regras de um controlador PID fuzzy com incorporação de não linearidade é, em sua forma
básica, muito similar a sua versão linear.
Para o caso em que o controlador possui 02 entradas, cada uma delas com 05 funções de pertinência, o
controlador PID apresenta o incoveniente de apresentar 125 regras, o que dificulta a tarefa de sintonia. Uma
solução mais eficiente é dividir o controlador em dois, um que é equivalente a um PD e o outro que prover a
ação integral. Isto reduz o número de regras para 30.
Melhorias no desempenho do controlador podem ser obtidos por tentativa e erro, no caso do desconheci-
mento do modelo, ou por otimização, caso contrário. Usando esta inicialização, pode-se atingir desempenhos

77
tão bons quanto os obtidos com controladores PID lineares.
Algumas das ações típicas alcançadas por tentativa e erro são aumentar o impacto da ação proporcional
quando o erro é muito alto e reduzir ligeiramente a ação integradora. Estas duas ações tendem a reduzir o
tempo de amortecimento e sobressinal.

9.3.5 Avaliação da Estabilidade


Uma forma de avaliar a estabilidade de um sistema controlado fuzzy é pela observação da trajetória pelas
qual são ativadas as regras. A trajetória deve migrar gradualmente das bordas da tabela para o centro em
sistemas estáveis, como pode ser visto na Figura 9.8.

Figura 9.8: Trajetória de ativação de regras em sistema estável

78
Referências Bibliográficas

1 A. Barron. Universal approximation bounds for superposition of sigmoids functions. IEEE Transactions
on Information Theory, 39(3):930–945, 1993.
2 E. B. Baum and D. Haussler. What size net gives valid generalization? Neural Computation, 1:151–160,
1989.
3 M. J. A. Berry and G. Linoff. Data Mining Techniques. John Willey and Sons, 1997.
4 A. Bhaya and E. Kaszkurewicz. Steepest descent with momentum for quadratic functions is a version of
the conjugate gradient method. Neural Networks, 17(1):65–71, 2004.
5 A. Blum. Neural Networks in C++. Wiley, 1992.
6 N. K. Bose and A. K. Garga. Neural network design using Voronoi diagrams. IEEE Transactions on
Neural Networks, 4(5):778–787, 1993.
7 B. Curry and P. H. Morgan. Model selection in neural networks: Some difficulties. European Journal of
Operational Research, 170:567–577, 2006.
8 G. Cybenko. Approximation by superposition of sigmoidal functions. Mathematics of Control, Signal
and Systems, 2:303–314, 1989.
9 G. Daqi and J. Yan. Classification methodologies of multilayer perceptrons with sigmoid activation
functions. Pattern Recognition, 38:1469–1482, 2005.
10 S. Draghici. On the capabilities of neural networks using limited precision weights. Neural Networks,
15:395–414, 2002.
11 FAQ. How many hidden units should i use? Neural Networks FAQ Website, 2006.
http://www.faqs.org/faqs/ai-faq/neural-nets/part3/section-10.html.
12 J. H. Friedman. Regularized discriminant analysis. Journal of the American Statistical Association,
84:165–175, 1989.
13 K.-I. Funahashi. On the approximate realization of continuous mappings by neural networks. Neural
Networks, 2(3), 1989.
14 M. Gori and F. Scarselli. Are multilayer perceptrons adequate for pattern recognition and verification?
IEEE Transactions on Pattern Analysis and Machine Intelligence, 20(11):851–859, 1998.
15 R. P. Gormann and T. J. Sejnowski. Analysis of hidden units in a layered network trained to classify
sonar targets. Neural Networks, 1:75–89, 1988.
16 M. Gutierrez, J. Wang, and R. Grondin. Estimating hidden unit number for two-layer perceptrons. In
Proceedings of the IEEE International Joint Conference on Neural Networks (IJCNN’89), pages 677–681,
1989.
17 S. Haykin. Neural Networks: A Comprehensive Foundation. Macmillan Publishing Company,
Englewood Cliffs, NJ, 1994.

79
18 S. Haykin. Neural Networks: A Comprehensive Foundation. Prentice-Hall, 2nd edition, 1999.

19 S. Haykin. Redes Neurais - Princípios e Prática. 2nd edition, 2002.

20 G. E. Hinton. Connectionist learning procedures. Artificial Intelligence, 40:185–134, 1989.

21 K. Hornik, M. Stinchcombe, and H. White. Multilayer feedforward networks are universal approximators.
Neural Networks, 2:359–366, 1989.

22 M. Ishikawa. A structural leaning algorithm with forgetting of link weights. Technical Report TR-90-7,
Eletrotechnical Lab., Tsukuba-City, Japan, 1990.

23 Vojislav Kecman. Learning and Soft Computing - Support Vector Machines, Neural Networks, and
Fuzzy Logic Models. The MIT Press, 2001.

24 J. K. Kruschke. Improving generalization in back-propagation networks with distributed bottlenecks.


In Proceedings of the IEEE International Joint Conference on Neural Networks (IJCNN’89), pages 443–447,
1989.

25 B. P. Lathi. Sistemas de Comunicação. GUANABARA DOIS S.A., 1983. Tradução: Lúcia Maria
Pantoja Junqueira e Leila Marize Fernandes. Revisão Técnica: Yuzo Yano.

26 C. G. Looney. Advances in feedforward neural networks: Demystifying knowledge acquiring black


boxes. IEEE Transactions on Knowledge and Data Engineering, 8(2):211–226, 1996.

27 V. Maiorov and A. Pinkus. Lower bounds for approximation by MLP neural networks. Neurocomputing,
25:81–91, 1999.

28 T. Masters. Practical Neural Network Recipes in C++. Academic Press, 1993.

29 M. L. Minsky and S. A. Papert. Perceptrons. Cambridge, MA, 1988.

30 J. C. Principe, N. R. Euliano, and W. C. Lefebvre. Neural Adaptive Systems: Fundamentals Through


Simulations. Willey & Sons, 2000.

31 J. C. Principe, N. R. Euliano, and W. C. Lefebvre. Neural and Adaptive Systems: Fundamentals


through Simulations. John Wiley & Sons, 2000.

32 R. Reed. Pruning algorithms - a survey. IEEE Transactions on Neural Networks, 4(5):740–747, 1993.

33 K. Swingler. Applying Neural Networks: A Practical Guide. Academic Press, 1996.

34 A. Webb. Statistical Pattern Recognition. John Willey and Sons, Malvern, UK, 2003.

35 B. Widrow and M. E. Hoff. Adaptive switching circuits. In IRE WESCON Convention Record-Part 4,
pages 96–104, 1960.

36 B. Widrow and S. D. Stearns. Adaptive Signal Processing. Prentice-Hall, Upper Saddle River, NJ, 1985.

37 C. Xiang, S. Q. Ding, and T. H. Lee. Geometrical interpretation and architecture selection of MLP.
IEEE Transactions on Neural Networks, 16(1):84–96, 2005.

80
Apêndice A

Os Dados

Classificar padrões é uma tarefa que pode ser implementada de uma forma simplória mas que também
pode apresentar grande dificuldade para a sua realização. Com isto em mente o projetista deve dispender
algum tempo para a elaboração de sua própria metodologia de ataque ao problema ou pode lançar mão de
metodologias sugeridas na literatura. É importante perceber que o sucesso na classificação é bastante afetado
pela metodologia, ou falta dela, utilizada para projetar o classificador.
Inicialmente o projetista do classificador deve se inteirar do problema, pois uma clara compreensão do
objeto de investigação e uma especificação precisa dos objetivos a serem atingidos são essenciais. Esta etapa
é provavelmente a mais importante e mais difícil do estudo.
É interessante que, sempre que possível, o projetista busque informações sobre trabalhos realizados no
passado a respeito do seu objeto de estudo ou de objetos afins. Algumas vezes pode-se até obter dados a
partir desses estudos prévios. E, de posse desses dados, pode-se realizar estudos preliminares que permitam ao
projetista fazer estimativas dos recursos relacionados com a aquisição de dados e com a análise dos mesmos.
Na ausência dessas informações prévias o projetista deve estimar os recursos baseado em sua experiência.
O que pode ser um trabalho árduo e mais sucetível a imprecisões.

A.1 Coleta de Dados


Após a etapa preliminar de planejamento o projetista deve partir para a coleta de dados.
É importante observar que os dados a serem coletados devem ser representativos das condições operacio-
nais reais do sistema ao qual se deseja fazer classificação de padrões. O conjunto de dados deve ser completo
o suficiente para satisfazer a dois pontos:
• Todas as classes devem ser representadas. Geralmente, o conjunto de dados contém vários subgrupos,
cada qual tendo sua própria tendência central para um padrão particular. Todos esses padrões devem
estar representados.

• A Variação estatística dentro de cada classe deve ser adequadamente representada.


Algumas vezes é legítimo, e mesmo desejável, gerar casos para o conjunto de treinamento com o auxílio
de um gerador de números aleatórios. Existem duas principais razões para tal:

• Quando é caro ou impraticável coletar um grande número de amostras, mas é possível simular com
precisão aceitável as amostras.

• Quando o conjunto de treinamento representa bem o fenômeno com excessão da existência de possíveis
erros randômicos sobrepostos. A presença de ruído aleatório imposto aos padrões puros é benéfico para
que o classificador seja robusto.

Se não for possível ter uma boa representatividade, o projetista deve ter o conhecimento de quanto os
dados disponíveis são discrepantes em relação às condições operativas para que possa estimar efeitos dessas
discrepâncias no projeto do classificador.

81
O projetista deve estar atento a vários detalhes que podem fazer a diferença na qualidade dos dados
obtidos.
Inicialmente o projetista deve dar atenção e registrar informações relativas a especificações de sensores,
descrição e especificação dos equipamentos de digitalização e armazenamento de dados e aspectos relacionados
com a calibração de todo o sistema de aquisição dos dados.
Em seguida o projetista deve estar ciente de quais variáveis relacionadas com o problema de classificação
devem ser coletadas e com qual precisão. É importante salientar que o aumento do número de variáveis
medidas não necessariamente incorrerá numa melhora de desempenho do classificador com base em um
banco de dados de tamanho finito.
Uma vez que o projetista tenha determinado que variáveis devam ser medidas, o mesmo deve decidir qual
estratégia de amostragem deve ser utilizada e qual o tamanho apropriado do banco de dados.
No caso particular onde já se conhece as diversas classes envolvidas no problema existem duas estratégias
principais que podem ser adotadas. A primeira consiste em coletar amostras separadamente para cada classe.
Com esta estratégia não é possível avaliar a probabilidade da ocorrência de cada classe (probabilidade a
priori), tendo em vista que o número de amostras a serem coletadas é predeterminado pelo projetista.
Entretanto, no caso em que as probabilidades a priori são conhecidas, o projetista deve coletar dados para
cada classe na proporção de suas probabilidades a priori. A segunda estratégia consiste em coletar dados
aleatoriamente, de tal forma que as probabilidades a priori emergirão dos dados.
A coleta aleatória apresenta uma outra característica que é a possibilidade de obtenção de dados sujeitos
a condições diversificadas do ambiente e/ou dos equipamentos de medição. Isto enriquece substancialmente
o conjunto de dados no sentido de projetar classificadores robustos a variações das condições citadas.
O projetista do classificador deve coletar dados em quantidade compatível com o número de características
do vetor de dados, com o desempenho desejado do classificador, com a quantidade de parâmetros a serem
estimados no classificador e com a probabilidade assintótica de erro de classificação. É importante salientar
que é difícil saber, antes de coletar os dados, o quão complexo deverá ser o classificador, e além disso,
obter resultados teóricos relativos aos efeitos de um conjunto de amostra limitado sobre o desempenho do
classificador não é uma tarefa fácil. Logo, de forma geral, se o número de características é grande e/ou a
tarefa de classificação é complexa, então deve-se coletar um grande número de dados.
O projetista de um classificador pode, e na realidade é recomendável, realizar simulações com conjuntos
de dados preliminares para que características ocultas no conjunto de dados possam ser ressaltadas.
Além disso, um grande número de amostras deve ser usado quando os dados são altamente estratificados.
A presença de muitas subclasses nos dados de treinamento necessita de grandes conjuntos de treinamento,
pois as diferenças entre padrões dentro das subclasses podem ser pequenas. A partir destas simulações o
projetista pode reamostrar dados com as seguintes características:

• Priorização, na medida do possível, da coleta de bastante dados que se situem nas proximidades das
regiões de decisão. Apenas algumas poucas amostras de fácil classificação normalmente são suficientes
para que os classificadores respondam bem a estes casos. Não há necessidade de dispensar esforço
computacional extra para processar casos que são supérfulos. Além disso, algoritmos que minimizam
o erro médio sobre o conjunto de dados não dedicarão atenção suficiente para os casos que necessitam
de mais atenção se eles podem minimizar seus erros médios aprendendo os casos mais fáceis. Se o
conjunto de dados é focado nos casos difíceis, o algoritmo não terá como evitá-los.

• Redução, ou mesmo eliminação, de incorporação de desvios (biases) humanos. Este é um dos fenômenos
mais perigosos na construção de um conjunto de dados.

• Balanceamento do número de dados membros de cada classe ou grupo natural da amostra. Alguns
classificadores podem se ajustar implicitamente a conjuntos de dados desbalanceados. Outros porém,
podem ter seu desempenho bastante influenciado pela representação desproporcional das classes no
conjunto de dados. Classes que têm apenas uma participação simbólica no conjunto de dados podem
não ser bem classificadas quando o classificador estiver em uso.

82
A.1.1 Atributos Nominais
A discussão anterior foi implicitamente baseada na obtenção de conjuntos de dados compostos de atributos
ordinais (numéricos). Entretanto existem situações em que os atributos são variáveis nominais.
Variáveis nominais são variáveis que geralmente representam nomes de coisas. Elas não têm nenhum valor
numérico. E por isso, são difíceis de serem tratadas. A sugestão é a associação de padrão a um representante
numérico. Por exemplo, a entrada de atributos nominais em uma rede neural quase sempre ocorre pelo uso
de tantos neurônios quantas forem as possibilidades representadas por tais variáveis nominais. Exatamente
um neurônio será ativado para cada valor da variável. Todos os outros neurônios serão desativados. Isso é
chamado de codificação um-de-n. A única excessão a esta regra ocorre quando a variável é binária. Neste
caso, apenas um neurônio é usado.
Para muitas redes neurais é teóricamente possível codificar variáveis nominais com mais de dois estágios
para a utilização de apenas um neurônio. Por exemplo, pode-se atribuir valor mínimo para um estado, valor
médio para outro e valor máximo para um terceiro estado, no caso de três estados. Entretanto, o processo
de treinamento torna-se consideravelmente lento. Um outro incoveniente está relacionado com o fato de ter
sido atribuído implicitamente uma ordem nos estados que na realidade não existe.
A codificação um-de-n tradicional apresenta um inconveniente principalmente quando é usada para saídas.
O problema reside no fato de que, especialmente quando o numero de categorias é alto, os vetores de dados
são bastante similares. Isso produzirá erros médios quadráticos relativamente pequenos.

A.2 Formação do Banco de Dados


Uma vez obtidos os dados, os mesmos devem ser distribuídos aleatoriamente em dois conjuntos: o con-
junto de treinamento e o conjunto de teste. O primeiro conjunto é utilizado para fazer a estimação dos
parâmetros do classificador (treinamento), enquanto o outro conjunto é utilizado para estimar o desempenho
do classificador. Para o caso em que se pretende comparar o desempenho de classificadores de diferentes
complexidades ou classificadores de mesma complexidade porém com condições iniciais diferentes, deve-se
partilhar o conjunto de dados em três. O primeiro serve para fazer o treinamento dos classificadores. O
segundo serve como forma de comparação de desempenho entre os classificadores (validação). E, portanto,
faz parte do processo de treinamento. O terceiro e último conjunto de dados é utilizado com o propósito de
avaliação de desempenho do classificador que apresentou o melhor desempenho no processo de treinamento.

A.3 Análise Preliminar Dados


Com os dados disponíveis o projetista deve iniciar o processo de análise dos mesmos. O primeiro passo
é a busca por dados perdidos ou faltantes e por dados inconsistentes.
O projetista deve tentar descobrir a causa da perda de dados. E no caso em que o número de dados
faltantes seja significativo, deve-se reamostrar os dados. Agora com a falha sanada.
Há outras possibilidades. Se o número de vetores de dados com características faltantes for pouco
significativo diante do número de dados do conjunto amostral, pode-se eliminar cada vetor de dados que
apresente pelo menos uma característica faltante. O bom senso deve ser usado, pois o número de descartes
pode ser pouco significativo diante de toda a massa de dados, mas pode significar uma redução drástica para
uma determinada classe. E ainda, um dado pode ter apenas uma característica faltante diante de várias
presentes e que apresentam informações preciosas para o treinamento do classificador. Neste caso, a escolha
tradicional é usar um valor que de alguma forma seja representativo da amostra. Seguem algumas sugestões:

• Se o dado é ordinal, a mediana é o valor representativo mais apropriado.

• Para dados ordinais limitados em intervalos ou divididos (normalizados) pelo maior valor absoluto, a
média é provavelmente a melhor opção, a menos que que a distribuição tenha cauda longa.

• Se a variável é nominal e nós não temos um código dedicado para indicação de "valor perdido", nós
usaríamos a moda (o valor mais comum).

83
Caso o classificador a ser usado seja uma rede neural, uma sugestão para o tratamento das características
faltantes, qualquer que seja o tipo de variável, incluindo a nominal, é dedicar um neurônio especial para
significar "valor perdido". Normalmente, esse neurônio estaria desligado. Mas para dados perdidos ele seria
ligado.
Outro tipo de falha que o projetista deve está atento está relacionada a inconsistências. Estas são
observações que "destoam" do restante dos dados. Elas podem ser observações genuínas que são surpresas
para o investigador. Talvez signifiquem desvios da normalidade da estrutura existente nos dados. Por outro
lado, inconsistências podem ser contaminações ou erros causados na cópia ou transferência de dados.
Algumas vezes uma inspeção visual detecta um dado totalmente fora da faixa de valores considerada
como aceitável ou consistente. Outras vezes pode ser difícil detectar a falha, pois os valores obtidos, embora
errados, podem apresentar uma aparente consistência com os outros dados. Recomenda-se que inicialmente
o projetista visualize os dados com um histograma e aplique um julgamento baseado na sua experiência.
Num segundo momento, o projetista pode lançar mão de uma avaliação estatística. Informações relativas
a médias e desvios-padrão de cada variável por classe e para todo o conjunto de dados podem ser bastante
esclarecedoras. O importante é saber que a rejeição automática de inconsistências no conjunto de dados
nunca deve ser feita.
Quando os dados são multivariáveis, as inconsistências podem ser difíceis de serem detectados, parti-
cularmente quando existem várias delas presentes. Um procedimento clássico é computar a distância de
Mahalanobis para cada amostra

Di = ((xi − m)T Σ−1 (xi − m))1/2 (A.1)


onde m é a média amostral e Σ é a matriz de covariância. Inconsistências podem ser identificados como
aquelas amostras que produzem grandes valores de distância de Mahalanobis. Este método apresenta alguns
problemas na prática:

• Múltiplas inconsistências em um agrupamento poderão distorcer a média e a matriz de covariância


amostral, atraindo a média e inflando a matriz de covariância em suas direções, de tal forma a propor-
cionar valores mais baixos de distância de Mahalanobis.
• Agrupamentos de inconsistências podem causar distorções na matrix de covariância de tal forma que
se possa achar grandes distâncias de Mahalanobis para amostras que não são inconsistências.

Uma vez suplantadas estas dificuldades, resta agora utilizar um estimador robusto para a média e a
matriz de covariância.

A.3.1 Análise Qualitativa Gráfica


É recomendado ainda que o projetista lance mão de visualizações gráficas dos dados. Este recurso pode
ajudar na detecção de falha na amostragem, dar uma idéia da natureza dos dados, detectar agrupamento
nos dados etc.

Histograma
Devemos desenvolver o hábito de sempre examinar a distribuição das variáveis que pretendemos apresen-
tar a um classificador.
Histogramas de variáveis individuais, por exemplo, podem dar uma noção da distribuição dos dados. Isto
é particularmente importante quando se pretende classificar padrões baseado num classificador paramétrico
gaussiano. Se a distribuição dos dados não for gaussiana, a tendência é que o erro de classificação seja
considerável. E é importante que o projetista tenha esse conhecimento. Um outro exemplo é o caso em que
uma determinada classe apresenta distribuição bimodal. Podemos estar diante de um caso de existência de
subclasses embutidas nos dados.
Existem alguns "softwares" poderosos, com ferramentas de visualização, que podem ajudar considera-
velmente o trabalho do projetista. Um deles é o MATLAB. Nele podemos utilizar comandos simples para a
geração de histogramas:

84
• hist(X,N) - onde o histograma da variável X é mostrado com a discretização de N colunas.

• histfit(X,N) - onde o histograma é acompanhado de uma aproximação Gaussiana.

(a) (b)

Figura A.1: (a) Histograma de variável com distribuição normal e (b) não normal

Algumas vezes o projetista aplica algum tipo de transformação nos dados com o objetivo de salientar
alguma característica embutida nos dados e que possa melhorar o desempenho do classificador. É importante
salientar que, mesmo após a aplicação dessa transformação supostamente apropriada aos dados, a nova
distribuição deve ser examinada novamente.

Projeções Bidimensionais
Gráficos relacionando as variáveis (duas variáveis por vez) dos dados podem indicar variáveis mais ou
menos importantes e até aguçar a percepção do projetista para realizar transformações nos dados. Seguem
algumas projeções de dados como exemplificação.

(a) (b)

Figura A.2: (a) Projeção largura versus comprimento da sépala e (b) projeção comprimento da pétala versus
comprimento da sépala do conjunto de dados Íris.

A.3.2 Análise Quantitativa Preliminar


A inspeção visual é uma escolha natural para adquirir o conhecimento de como os dados estão dispostos.
Entretando, quando os dados são multivariados, e notadamente com muitos atributos, esta tarefa é bastante
árdua.
Informações mais consistentes sobre os dados podem ser obtidas com a utilização de medidas estatísticas
tais como média e desvios-padrão.

85
O valor médio e a variância de x são comumente estimados pelas seguintes expressões:
∑N
i=1 xk
mx ≈ (A.2)
N
1 ∑
N
σx2 ≈ (xk − mx )2 (A.3)
N −1
i=1

A estimativa de mx representa a média de um conjunto de dados e a variância representa a dispersão de


x ∈ ℜ em torno do seu valor médio.
No cálculo da variância, a divisão por N − 1 ao invés de N ocorre porque estamos nos referindo a uma
estimativa de variância a partir de uma amostra da população. No caso do cálculo da variância exata, o
valor utilizado é N .
Frequentemente o projetista escolhe, involuntariamente, características para representar propriedades
distintas de um objeto ou evento, e as mesmas podem vir a ser influenciadas por um mecanismo comum e
tendem a variar juntas (Figura A.3). Por exemplo, o perímetro e a largura máxima de uma figura variam
ambos com a escala: figuras maiores terão perímetros e larguras máximas maiores. Isto é chamado de
correlação, a qual pode degradar o desempenho de classificadores. Entretanto, este assunto será abordado
posteriormente.

Figura A.3: Exemplo típico de características correlacionadas.

A.3.3 Intervalo das Variáveis


Quando o classificador a ser utilizado é uma rede neural, as características dos vetores de entrada da
mesma, tanto do conjunto de treinamento quanto do conjunto de testes, podem ser ajustadas sob a mesma
escala para figurarem dentro dos limites de ativação dos neurônios. Com esta atitude o projetista pode obter
benefícios no sentido de redução no tempo de treinamento e melhora na estabilidade da rede neural.
Uma forma comum de adequação das características consiste em aplicar um mapeamento linear. Con-
siderando os limites máximo (Vmax ) e mínimo (Vmin ) do conjunto original de dados, e os limites práticos
máximo (Amax ) e mínimo (Amin ) de uma rede neural, pode-se adequar um valor V do conjunto original em
um valor ajustado A pela aplicação da seguinte formula.

A = r(V − Vmin ) + Amin (A.4)

onde
Amax − Amin
r= (A.5)
Vmax − Vmin
Variáveis medidas geralmente apresentam uma distribuição aproximadamente normal. Se a variável
é unimodal, aproximadamente simétrica em relação à média e raramente apresenta valores significativos
extremamente distantes da média, pode-se aplicar um método de normalização mais sofisticado baseado na
média e desvio padrão amostrais. A variável dita randômica pode ser convertida em uma variável padronizada
Z pela subtração da média, seguida da divisão pelo desvio padrão.
x−µ
Z= (A.6)
σ

86
Está sendo considerado que a amostra é grande o suficiente para que se possa confiar na qualidade dos
estimadores.
A simples adequação para uma nova variável Z não é suficiente. Deve-se agora fazer a adequação para
os limites práticos de entrada das redes neurais.
Uma outra possibilidade de normalização dos dados é obtida pela divisão de todo o conjunto de amostras
pelo módulo da amostra de maior valor absoluto. Para problemas específicos, este método é mais recomen-
dado visto que um valor zero no novo conjunto de dados é proveniente de um valor zero no conjunto original,
o que não se pode afirmar para o método baseado no ajuste dos limites.
O ajustamento dos dados não deve ser entendido como um pré-processamento absolutamente necessário,
embora seja quase sempre recomendável.
Algumas redes neurais, tais como as redes de Kohonen, têm limites de valores estritos em suas entradas.
Nesses casos, não existe escolhas. Os dados devem ser adequados.
Uma das razões para a uniformização dos dados é para equalização da importância das características
dos vetores de entrada. Teóricamente, a rede neural deve ter a capacidade de aprender a importância relativa
das características através do ajuste de seus pesos. Entretanto, nem sempre a rede consegue.
Uma outra razão está relacionada ao fato de que a maioria dos algoritmos de treinamento de redes neurais
minimiza o erro lenvando em consideração todas as saídas. Se estas saídas estiverem inadequadamente
ajustadas, aquelas que apresentarem maiores variabilidades dominarão o erro e serão favorecidas no processo
de correção dos pesos.

A.3.4 Transformações
Muitas vezes a classificação de padrões pode ser uma tarefa bastante dificultada quando o conjunto de
dados contém informações importantes distribuídas irregularmente, tais como adensamento de informações
em uma pequena faixa de valores ou espalhamento das mesmas em uma ampla faixa. Para esses casos pode
valer a pena investigar os efeitos da aplicação de transformações não lineares.
Além disso, existem três propriedades que um conjunto de dados deveria ter para ser submetido a um
processo de treinamento de uma rede neural e uma transformação não-linear pode levar este conjunto de
dados a ter uma ou mais destas propriedades, as quais são:
• As variâncias dos dados devem ser aproximadamente as mesmas. Geralmente grandes valores medidos
têm maiores variâncias. Isso não é bom.
• Uma distribuição normal não é particularmente importante para uma rede neural. Na realidade, exis-
tem evidências de que distribuições achatadas são aprendidas com mais facilidade. O que é importante
é que a distribuição seja aproximadamente simétrica e não tenham heavy tail.
• O aprendizado da rede neural é facilitado se a contribuição das diversas variáveis é tão aditiva quanto
possível. Quando, por exemplo, o produto ou o quociente de duas variáveis é mais importante para a
decisão, nós estamos sobrecarregando a rede neural mais do que o necessário. Relações multiplicativas
podem ser mudadas para aditivas pela aplicação de logaritmo.
Muitas vezes há bastante dificuldade para escolher qual dessas propriedades devem ser previlegiadas em
um projeto. Logo, vale apena experimentar algumas transformações e comparar os resultados.
Podemos ter boas indicações sobre a necessidade de aplicação de transformações através da observação
de um histograma dos dados originais.
A aplicação de uma função logaritmica ao conjunto de dados é a mais comum transformação de compres-
são.
Algumas vezes é possível saber que o conjunto de dados dever ser transformado mesmo sem que os dados
sejam apresentados em forma de gráfico. Por exemplo, quando uma variação nos dados é mais significativa
que o próprio valor do dado.
O método tradicional para estabilização da variância de uma variável de distribuição binomial é
(√ )
x
y = arcsin (A.7)
n

87
A transformação proposta por Tukey é
(√ ) (√ )
x x+1
y = arcsin + arcsin (A.8)
n+1 n+1

88
Apêndice B

Extração de Características

Neste capítulo vamos abordar técnicas de extração de características, ressaltando o fato de que já vinha-
mos fazendo extração de características de forma implícita, por meio do uso de classificadores de multicama-
das.

B.1 Estatísticas de Alta Ordem - HOS


“Momentos ou estatísticas de ordem superior são medidas de não-gaussianidade, ou seja, de quão
diferente determinada densidade de probaiblidade é da densidade Normal.”

• Variância - Mede a dispersão em torno da média da variável aleatória X:


∫ ∞
V ar(X) = E[(X − µ) ] =
2
(X − µ)2 fX (x)dx (B.1)
−∞

na qual µ = E[X] é o valor esperado de X.

• Assimetria (skewness) - Mede a falta de simetria da densidade (distribuição) de probabilidade da


variável X:
E[(X − µ)3 ]
Assimetria = (B.2)
σ3
onde σ é o desvio-padrão de X. Na prática, a assimetria é calculada como:
∑N
(Xi − X̄)3
Assimetria = i=1 (B.3)
(N − 1)σ 3
onde N é o número de amostras.

→ Se assimetria = 0 ⇒ caudas da densidade tem “pesos” iguais. Exemplo: Normal(0,1).


→ Se assimetria < 0 ⇒ cauda esquerda da densidade é mais “pesada” (alongada) que a cauda direita.
Exemplo: Densidade Beta com parâmetros A=3 e B=2.
→ Se assimetria > 0 ⇒ cauda esquerda da densidade é mais “pesada” que a cauda direita. Exemplo:
Densidade Weibull com parâmetros A=2 e B=2.

• Curtose (kurtosis) - Mede o grau de “achatamento” de uma densidade de probabilidade em relação


à densidade Normal:
E[(X − µ)3 ] − 3σ 4
Curtose = (B.4)
σ4
Na prática, a assimetria é calculada como:
∑N
(Xi − X̄)4
Curtose = i=1 −3 (B.5)
(N − 1)σ 4

89
→ Se curtose = 0 ⇒ densidade Normal (por definição).
→ Se curtose < 0 ⇒ densidade é mais achatada que a densidade Normal. Exemplo: Densidade
uniforme (caso extremo).
→ Se curtose > 0 ⇒ é mais “pontiaguda” que a densidade Normal. Exemplo: Densidade t-student.

Normal: Assimetria=0.0076 e Curtose=−0.0141 Weibull(2,2): Assimetria=0.6043 e Curtose=0.1179


12000 1000

10000 800
8000
600
6000
400
4000

2000 200

0 0
−6 −4 −2 0 2 4 0 0.5 1 1.5 2 2.5

t−Student(5): Assimetria=0.0647 e Curtose=4.1937 Beta(3,2): Assimetria=−0.2750 e Curtose=−0.6638


2500 600

2000 500

400
1500
300
1000
200
500 100

0 0
−10 −5 0 5 10 15 0 0.2 0.4 0.6 0.8 1

• Comandos Matlab: skewness, kurtosis, e moment.


Exemplo 1:

>> X=randn(100000,1);
>> Assimetria=skewness(X)
Assimetria =
0.0043
>> Curtose=kurtosis(X,0)
Curtose =
0.0050

Exemplo 2:

>> Xb=betarnd(3,2,10000,1);
>> Assimetria=skewness(Xb)
Assimetria =
-0.2690

90
>> Curtose=kurtosis(Xb,0)
Curtose =
-0.6531
Exemplo 3:
>> Xw=weibrnd(2,2,10000,1);
>> Assimetria=skewness(Xw)
Assimetria =
0.6230
>> Curtose=kurtosis(Xw,0)
Curtose =
0.2629

B.2 Transformações nos Dados


B.2.1 Análise de Componentes Principais - PCA

A análise de componentes principais (PCA - Principal Component Analysis), tam-


bém conhecida como transformação de Karhunen-Loève ou transformação de Hotelling,
consiste numa transformação linear particular sobre um conjunto original de dados de
tal forma que os dados transformados são representados em um novo sistema de co-
ordenadas. O primeiro eixo desse novo sistema de coordenadas, chamado de primeira
componente principal, é o eixo no qual a projeção dos dados apresenta a maior variân-
cia. A segunda componente principal é o eixo no qual a projeção dos dados apresenta
a segunda maior variância, e assim por diante.
Para entender como a PCA funciona, considere uma matriz de transformação P T ,
que transforma o conjunto de dados X em um novo conjunto Y (Y = P T X). A matriz
P deve ser ortonormal1 (P −1 = P T ) e a matriz de covariância do conjunto de dados
transformados deve ser diagonal.
A covariância de Y (cov(Y ) = E[Y Y T ]) é então dada por

cov[Y ] = E[(P T X)(P T X)T ] = E[P T XX T P ] (B.6)


cov[Y ] = P T E[XX T ]P = P T COV (X)P (B.7)
Multiplicando ambos os lados de B.7 por P, temos
P cov(Y ) = P P T cov(X)P (B.8)

P cov(Y ) = cov(X)P (B.9)


Considerando a matriz P como [P1 , P2 , ..., Pd ], onde P1 , P2 , ..., Pd são vetores de
dimensão d, e substituindo P em B.9, temos
[λ1 P1 , λ2 P2 , ..., λd Pd ] = [cov(X)P1 , cov(X)P2 , ..., cov(X)Pd ] (B.10)
1
Uma matriz é dita ortonormal quando os seus vetores componentes são ortogonais entre si e ainda são vetores unitários

91
Da expressão B.9 percebe-se que [P1 , P2 , ..., Pd ] são os autovetores associados aos
autovalores λ1 , λ2 , ..., λd da matriz de covariância do conjunto de dados originais. Logo,
aplicando uma matriz de transformação P T (transposta da matriz de autovetores da
matriz de covariância de X) sobre o conjunto de dados originais, obtém-se um novo
conjunto de dados representados em um sistema de eixos dados pelos autovetores
(P1 , P2 , ..., Pd ) e com variâncias dadas pelos autovalores (λ1 , λ2 , ..., λd ). Em última
instância houve a rotação do sistema de coordenadas.
As componentes principais são dependentes das escalas usadas para medir as va-
riáveis originais. Mesmo se as unidades usadas forem as mesmas, mas se uma delas
apresenta uma faixa de valores muito maior que a das outras, então é esperado que a
primeira componente principal se apresente na direção do eixo dessa variável. A so-
lução prática para este problema é uniformizar os dados de tal forma que as variáveis
passem a figurar em uma mesma faixa de valores. Uma forma comum de uniformização
é transformar os dados em um conjunto com média zero e variância um. Isso dá igual
importância às variáveis originais. Uma outra forma de uniformização é a aplicação
de uma função logaritmica aos dados originais, e somente depois aplicar a análise de
componentes principais.
Pode-se dizer que a análise das componentes principais apresenta as seguintes ca-
racterísticas:
• É um procedimento para visualizar conjuntos de dados multivariados em um sis-
tema de projeção conveniente de padrões
• Pode salientar características não visíveis nos dados originais
• É possível preservar informações essenciais dos dados originais
• Pode ser usado para redução da dimensionalidade num conjunto de dados
• É capaz de achar apenas subespaços lineares, não funcionando muito bem quando
a relação entre as características é não-linear. (A Review of Dimension Reduction
Techniques - Miguel Á. Carreira-Perpiñán)
Exemplo - Seja a seguinte matriz de covariância:
 
1 −2 0
C =  −2 5 0  (B.11)
0 0 2
Os autovalores/autovetores de C, calculados usando a função eig do matlab são os
seguintes:
λ1 = 5.83, v1 = [0.383 − 0.924 0]T
λ2 = 2.00, v2 = [0 0 1]T
λ3 = 5.83, v3 = [0..924 0.383 0]T (B.12)

92
Assim, as componentes principais são dadas por:
Y1 = v1T X = 0.383X1 − 0.924X2
Y2 = v2T X = X3
Y3 = v3T X = 0.924X1 + 0.383X2
A variância devido a cada uma das componentes Yi é dada por:
λ1 5.83
V ar(Y1 ) = λ1 ⇒ P1 = = = 0.73
λ1 + λ2 + λ3 8
λ1 + λ2 5.83 + 2
V ar(Y2 ) = λ2 ⇒ P1+2 = = = 0.98
λ1 + λ2 + λ3 8
λ1 + λ2 + λ3 5.83 + 2 + 0.17
V ar(Y3 ) = λ3 ⇒ P1+2+3 = = = 1.0
λ1 + λ2 + λ3 8
Conclusão: Cerca de 98% da variabilidade dos dados é contabilizada usando ape-
nas as duas primeiras componentes. Assim, para fins práticos, pode-se desprezar a
terceira variável.

B.2.2 Análise por Discriminante Linear de Fischer

O estudo desenvolvido por Fischer consiste em encontrar uma combinação linear


de variáveis que separe tanto quanto possível as classes envolvidas em um processo de
classificação de padrões.
Considerando um conjunto com n amostras representando as classes ci , cada qual
com ni dados, temos que o vetor médio representativo de cada classe e o vetor médio
de toda a massa de dados são dados por
1 ∑
x̄i = x (B.13)
ni
x∈Ci

1∑ 1∑
n c
x̄ = xi = ni x̄i (B.14)
n i=1 n i=1
A partir de B.13 e B.14 monta-se a matriz SB dada por B.15 que representa a
distância média dos centros das classes ao centro da massa de dados ponderada pelo
número de amostras por classe.

1∑
c
SB = ni (x̄i − x̄)(x̄i − x̄)T (B.15)
n i=1
Monta-se também a matriz SW dada por B.16 que representa a variação média dos
dados das classes em relação aos seus respectivos centros de classe. Também é uma
média ponderada pelo número de amostras de cada classe.

93
1∑∑ 1∑
c c
SW = (x − x̄i )(x − x̄i )T = ni Σi (B.16)
n i=1 n i=1
x∈Ci

A idéia é encontrar um vetor (w) que projete os dados x (x ∈ X) em um novo


espaço (y ∈ Y ), através de uma transformção linear (y = wT x), de tal forma que as
classes sejam melhor separadas.
Neste novo espaço o vetor médio representativo de cada classe, o vetor médio de
toda a massa de dados, e as novas versões das matrizes SB e SW são dados por
1 ∑
ȳi = y (B.17)
ni
y∈Ci

1∑
c
ȳ = ni ȳi (B.18)
n i=1

1∑
c
SB y = ni (ȳi − ȳ)(ȳi − ȳ)T = wT SB w (B.19)
n i=1

1 ∑∑
c
SWy = (y − ȳi )(y − ȳi )T = wT SW w (B.20)
n i=1
y∈Ci

O critério proposto é maximizar J(w) (B.21). Isto significa maximizar a distância


entre os centros das classes e minimizar a variância dos dados dentro de cada classe.

w T SB w
J(w) = T (B.21)
w SW w
A função J(w) é quadrática. Logo, se a diferenciarmos e igualarmos a zero, obte-
remos o vetor w que a maximiza.
[ ]
dJ(w) 1 w T SB w
= T SB w − T SW w = 0. (B.22)
dw w SW w w SW w
Logo,

w T SB w
SB w − T SW w = 0. (B.23)
w SW w
w T SB w
Como w T SW w é uma constante, temos

SB w = λSW w (B.24)
Considerando que a matriz SW possui inversa, temos um problema generalizado de
vetor próprio

94
−1
[SW SB − λI]w = 0 (B.25)
−1
O autovetor correspondente ao maior autovalor de SW SB representa o eixo de
melhor separação das classes. Desta forma os dados originais serão projetados num
espaço unidimensional. Caso o projetista deseje projetar os dados em um espaço
multidimensional, pode utilizar tantos autovetores quanto se deseje para implementar
a transformação linear, e assim a função de transformação será

y = WTx (B.26)

B.2.3 Principal Discriminant Variate Method

Em situações em que o conjunto de dados é multicolinear (correlação), a aplicação


do discriminante linear de Fischer conduz a um ajustamento dos dados de treinamento
em uma direção inclinada. Isso geralmente resulta na localização do discriminante num
subespaço de pequena variância, o que produz instabilidade na generalização. O dis-
criminante linear de Fischer maximiza a separabilidade sem considerar a estabilidade
do classificador.
Por outro lado, a análise das componentes principais ajusta suas componentes de
tal forma a destacar a maior variação total dos dados, ignorando a separabilidade
das diferentes classes. Logo, a PCA busca a máxima estabilidade em detrimento da
separabilidade.
O método PDV consiste em aliar a capacidade de discriminação do discriminante
linear de Fischer com a estabilidade conferida pela análise de componentes princi-
pais. Com o PDV, objetiva-se encontrar uma direção, chamada principal discriminant
variate, a qual maximiza o seguinte critério de discriminação

wT [λSB + (1 − λ)ST ]w
J(w) = T (B.27)
w [λST + (1 − λ)I]w
onde I é a matriz identidade, de mesmas dimensões que a matriz ST , e a matriz ST
é a matriz de covariância da massa total de dados dada por

1∑
n
ST = (xi − x̄)(xi − x̄)T (B.28)
n i=1
A constante λ pode ter seu valor ajustado entre 0 e 1, de tal forma que a medida que
λ tende a 1, a separabilidade é aumentada. Por outro lado, se λ tende a 0, obtém-se
mais estabilidade.
O valor ótimo de λ é aquele que produz o erro mínimo através de um processo
de validação. Ou seja, para cada valor de λ avalia-se a taxa de erro de classificação

95
no conjunto de treinamento ou de teste e adota-se o que apresenta menor erro de
classificação.

B.3 Transformada de Fourrier


B.3.1 Analogia entre Vetores e Sinais

A análise de sinais pode ser melhor compreendida se for realizada uma analogia
entre sinais e vetores (25). Então, considerando dois vetores V1 e V2 , conforme Fig.
B.1, a componente de V1 sobre o vetor V2 é dada por C12 V2 . Geometricamente,
a componente do vetor V1 na direção do vetor V2 é obtida traçando-se uma reta
perpendicular a V2 desde o extremo de V1 até o vetor V2 . O vetor V1 pode então
ser expresso em termos de V2 como
V1 = C12 V2 + Ve (B.29)
O vetor Ve representa o erro na aproximação de V1 por um vetor na mesma direção
de V2 .
É bastante sugestivo que quanto maior a componente de um vetor na direção de
outro vetor, mais eles se assemelham em suas direções e menor é o vetor de erro. A
magnitude C12 é, então, uma indicação da semelhança entre V1 e V2 . No caso em que
C12 fosse zero, um vetor não teria nenhuma componente na direção do outro, e por isso
os dois vetores seriam perpendiculares entre si, e conhecidos como vetores ortogonais.
O produto escalar ou produto interno entre dois vetores é a ferramenta matemática
que fornece a projeção de um vetor na direção de outro e é dado por
V1 .V2 = V1 V2 cosθ (B.30)
onde θ é o ângulo entre os vetores V1 e V2 .
Baseado na equação B.30, a componente de V1 ao longo de V2 é dada por V1 cosθ =
V1 .V2 /V2 .
Como a componente de V1 ao longo de V2 também é dada por C12 V2 , tem-se que
V1 .V2 V1 .V2
C12 = 2 = (B.31)
V2 V2 .V2
O conceito de comparação e ortogonalidade de vetores pode ser estendido aos sinais.
Considerando dois sinais, f1 (t) e f2 (t), e supondo que f1 (t) pode ser aproximada em
termos de f2 (t) em um intervalo t1 < t < t2, tem-se que
f1 (t) ≈ C12 f2 (t) para t 1 < t < t2 (B.32)
Evidentemente o valor de C12 deve ser tal que o erro entre a função real e a função
aproximada seja mínimo no intervalo t1 < t < t2 . A função de erro fe (t) é definida
como
fe (t) = f1 (t) − C12 f2 (t) (B.33)

96
Figura B.1: Decomposição de V1 em V2.

Um dos critérios possíveis para minimizar a função de erro fe (t) no intervalo entre
t1 e t2 é minimizar o valor médio de fe (t) nesse intervalo. Entretanto, esse critério
é inadequado porque podem existir erros grandes positivos e negativos que podem se
cancelar mutuamente e dar a indicação falsa de que o erro é baixo, ou mesmo zero.
Essa situação pode ser contornada se o critério de minimização da função de erro se
referir à minimização do valor do quadrado do erro, como pode ser visto na expressão
B.34 ∫ t2
1
e= [f1 (t) − C12 f2 (t)]2 dt (B.34)
(t2 − t1 ) t1
Para que o valor de C12 minimize e, é necessário que a derivada de e em função de
C12 seja zero.
∫ t2 [ ∫ t2 ∫ t2 ]
de 1 d 2 1
= f1 (t)dt+ −2 f1 (t)f2 (t)dt + 2C12 f22 (t)dt = 0
dC12 (t2 − t1 ) t1 dC12 (t2 − t1 ) t1 t1
(B.35)
Como a primeira integral é zero, C12 é dado por
∫ t2
f1 (t)f2 (t)dt
C12 = t1∫ t2 (B.36)
f 2 (t)dt
t1 2

Logo, f1 (t) tem uma componente f2 (t) e essa componente tem uma magnitude C12 .
Se C12 é nulo, então o sinal f1 (t) não contém nenhuma componente do sinal f2 (t), e
diz-se que as duas funções são ortogonais no intervalo (t1, t2).
É importante perceber a semelhança entre as expressões B.31 e B.36. A integral do
produto das funções f1 (t) e f2 (t) na expressão B.36 corresponde ao produto escalar
ou produto interno entre V1 e V2 na expressão B.31.
Ainda por analogia com vetores, é sabido que um vetor V traçado da origem até
um ponto qualquer no espaço tridimensional pode ser representado por suas projeções
(Vx , Vy , Vz ) sobre os eixos x, y e z, e que as direções e sentidos de tais eixos podem

97
ser representados por vetores unitários e ortogonais entre si (ux , uy euz ) chamados de
vetores de base.
O vetor V pode então ser representado em função dos vetores de base como na
expressão a seguir:
V = Vx ux + Vy uy + Vz uz (B.37)
É importante perceber que o vetor V não poderá ser reconstituído por um número
de vetores de base menor que três. Logo, a representação será perfeita somente se for
utilizado um conjunto completo de vetores de base.
Da mesma forma que com vetores, uma função qualquer f (t) pode ser expressa
como uma soma das suas componentes na direção de um conjunto de funções de base
ortogonais entre si, se essas funções formarem um conjunto completo.
Um exemplo de conjunto de funções de bases ortogonais entre si é o conjunto for-
mado por funções exponenciais complexas dadas por ejnωt , onde n pode assumir valores
inteiros positivos e negativos. A ortogonalidade pode ser verificada a partir da solução
da equação B.38 a seguir
∫ t0 +T ∫ t0 +2π/ω0
I= (ejnω0 t )(ejmω0 t )∗ dt = ejnω0 t e−jmω0 t dt (B.38)
t0 t0

Se n = m, a integral I é dada por 2π/ω0 . Caso contrário é igual a zero. Logo, sendo
o conjunto ortogonal no intervalo (t0 , t0 +T ) e considerando que o mesmo é completo, é
possível representar uma função arbitrária f (t) por uma combinação linear de funções
exponenciais no intervalo (t0 , t0 + T ), como pode ser visto a seguir
f (t) = F0 + F1 ejω0 t + F−1 e−jω0 t ... + Fn ejnω0 t + F−n e−njω0 t (B.39)
onde Fn é dado pela equação B.40
∫ t0 +T ∫
f (t)(ejnω0 t )∗ dt 1 t0 +T
t0
Fn = ∫ t0 +T = f (t)e−jnω0 t dt (B.40)
t0 (ejnω0 t )(ejnω0 t )∗ dt T t0
A equação B.39 é a representação de f (t) pela série de Fourier. E a equação B.40
fornece o cálculo dos coeficientes dos componentes de frequência da série.

B.4 A Transformada de Fourier

A equação B.41 é uma forma compacta de apresentar a equação B.39.




f (t) = Fn ejnω0 t (B.41)
n =−∞

É importante salientar que apesar de f (t) ter sido representada pela série de Fourier
num intervalo restrito (t0 , t0 +T ), se f (t) for periódica os coeficientes da série podem ser

98
melhor estimados se a integração for realizada em k1 + k2 períodos (t0 − k1 T, t0 + k2 T ).
Assim a equação B.40 pode também ser representada por B.42.
∫ t0 +k2 T
1
Fn = f (t)e−jnω0 t dt (B.42)
(k1 + k2 )T t0 −k1 T
Outro aspecto importante é que a expansão em série de Fourier de f (t) é equivalente
à decomposição desta função em termos das suas componentes de várias frequências, e
que neste caso, o espectro de frequências não é uma curva contínua, mas existe apenas
em alguns valores discretos de ω. Portanto, é um espectro discreto.
Os coeficientes Fn são normalmente complexos (Fn = α − jβ) e, por isso, podem ser
descritos por uma magnitude e uma fase. Logo, faz-se necessária a representação pelos
espectros de amplitude e de fase. E ainda mais, Fn e F−n são complexos conjugados
um do outro. Logo, o espectro de magnitude das funções periódicas é simétrico em
relação ao eixo vertical que passa pela origem (ω = 0).
A representação dada pela equação B.41 pode parecer estranha para o leitor no que
se refere às componentes negativas de frequência. Entretanto, pode-se interpretar ejnω0 t
e e−jnω0 t como fasores que giram na mesma frequência, porém em sentidos opostos, e
quando se somam, produzem uma função real no domínio do tempo (ejnω0 t + e−jnω0 t =
2cosnωt) (??).
Objetivando converter a série de Fourier complexa apresentada na equação B.41
por uma versão real, mais atrativa para alguns, pode-se aplicar o teorema de Euler
nas equações B.40 e B.41 e obtém-se a série trigonométrica de Fourier, como pode ser
visto na equação B.43


f (t) = a0 + (an cosnω0 t + bn sinnω0 t) (B.43)
n=1

onde, ∫
1 t0 +T
a0 = f (t)dt (B.44)
T t0

2 t0 +T
an = f (t)cosnω0 t.dt (B.45)
T t0

2 t0 +T
bn = f (t)sinnω0 t.dt (B.46)
T t0
Até aqui mostrou-se que é possível representar uma função qualquer periódica em
termos de uma série de funções exponenciais complexas ou de funções trigonométricas.
Mas o que dizer sobre sinais aperiódicos?
Na realidade, um sinal não-periódico pode ser tratado como um sinal periódico de
período infinito. E assim, como a frequência fundamental ω0 da série de Fourier é

99
dada por 2π/T , para T tendendo para infinito, ω0 tende para um valor infinitesimal,
de tal forma que o espectro ω0 , 2ω0 , 3ω0 , ... se torna muito denso a ponto de se tornar
realmente contínuo e infinito.
Agora, uma função não-periódica f (t) pode ser representada por uma soma contínua
de funções exponenciais com frequências compreendidas no intervalo (−∞ < ω <
+∞) como pode ser visto na equação B.47
∫ +∞
1
f (t) = F (ω)ejωt dω (B.47)
2π −∞
onde ∫ +∞
F (ω) = f (t)e−jωt dt (B.48)
−∞
representa o espectro de frequência de f (t) e é chamada função densidade espectral.
As equações B.47 e B.48 são normalmente conhecidas como o par de transformadas
de Fourier. A equação B.48 é a transformada direta de Fourier de f (t) e a equação
B.47 é a transformada inversa de Fourier de F (ω).
É importante salientar que funções periódicas no domínio do tempo apresentam
espectros discretos no domínio da frequência, e que funções não-periódicas no domínio
do tempo apresentam espectros contínuos no domínio da frequência. O par de trans-
formadas de Fourier dado pelas equações B.47 e B.48 consiste em uma formulação mais
geral que a formulação dada para a série de Fourier.

100
Apêndice C

Noções Básicas Sobre Métodos de


Otimização Não Lineares

A teoria de otimização é usada para encontrar um conjunto de parâmetros que


minimize ou maximize alguma função de erro ou custo de interesse.
No caso particular de redes neurais artificiais, o aprendizado de uma função des-
conhecida a partir dos dados é basicamente uma busca não linear de um conjunto
de pesos. Assim, a teoria de otimização não linear é de importância crucial para o
processo de aprendizado.
O fato de não existir uma teoria geral para solucionar um problema de otimização
não linear leva à introdução de uma aproximação quadrática local para a função de erro
não linear. Nesse caso esta aproximação quadrática resulta em teoremas relativamente
simples e, nas vizinhanças do mínimo (ou máximo) local, a aproximação quadrática se
comporta semelhantemente à função não linear original (23) 1 .
Uma função de erro E(w) representa uma transformação de um espaço vetorial
definido pelos elementos do vetor de pesos em um espaço de um escalar real. Geo-
metricamente, esse mapeamento RN → R1 representa uma hipersuperfície sobre o
espaço de pesos. Uma E(w) é ilustrada na Figura C.1 como uma superfície não linear
e não quadrática, o que significa que não se assemelha a um parabolóide (função con-
vexa) com um mínimo garantido. Entretanto, próximo a um mínimo, a aproximação
quadrática parece ser uma boa opção.
Com o intuito de criar uma aproximação quadrática, pode-se considerar apenas os
dois primeiros termos da série de Taylor em um certo ponto w0 de uma função de
erro E(w). A equação a seguir ilustra a aplicação desta técnica a uma função de erro
1
Todo o texto e figuras sobre os métodos de otimização aqui apresentados são adaptados de Kecman (2001)

101
Figura C.1: Função de erro não linear e não quadrática.

dependente de vetores w bidimensionais.


∂E ∂E ∂ 2E
Eaq (w1 + ∆w1 , w2 + ∆w2 ) = E(w1 , w2 ) + ∆w1 + ∆w2 + ∆w1 ∆w2 +
∂w1 ∂w2 ∂w1 ∂w2
(C.1)
2 2
1 2∂ E 1 2∂ E
+ (∆w1 ) 2 + (∆w2 ) 2 + O((∆w1 )3 , (∆w2 )3 )
2 ∂w1 2 ∂w2
A Equação anterior pode ser reescrita em notação matricial para o caso geral, em
que o vetor w é N-dimensional, como segue
1
Eaq (w) = E0 + gT (w − w0 ) + (w − w0 )T H(w − w0 ), (C.2)
2
em que E0 é um escalar. Os elementos do vetor gradiente g e da matriz Hessiana H
são definidos como segue
∂E(w) ∂ 2 E(w)
gi = hij = . (C.3)
∂wi ∂wi ∂wj
Agora, calculando o gradiente de Eaq (w) em relação a w

▽Eaq (w∗ ) = g + H(w∗ − w0 ) (C.4)

e igualando ao vetor nulo, temos o ponto de mínimo dado por

wa∗ = w0 − H−1 g. (C.5)

C.0.1 Método Newton-Raphson

O método Newton-Raphson usa w∗ , o qual é um mínimo da aproximação quadrá-


tica, como o próximo ponto na busca pelo mínimo da função original desconhecida

w[k + 1] = w[k] − H−1 [k]g[k]. (C.6)

102
Figura C.2: As cinco primeiras iterações na aplicação do método Newton-Raphson em uma superfície de
erro genérica.

Uma solução melhor é obtida com a introdução de uma taxa de aprendizado η à


equação C.6
w[k + 1] = w[k] − ηH−1 [k]g[k]. (C.7)
Esta, por sua vez, é determinada por uma busca linear a partir de w[k] na direção
H−1 [k]g[k].
A convergência deste método é rápida quando w[k] está próximo ao ponto ótimo w0 .
Porém, a convergência para o mínimo não é garantida, podendo até divergir quando a
matriz Hessiana não for definida positiva. Esta questão é ilustrada na Figura C.2. Os
três primeiros passos resultam em convergência, pois a estimativa da matriz Hessiana
é definida positiva. Porém, nos dois passos seguintes, ocorre divergência em função de
H ser definida negativa.
Como pode ser observado, o método apresenta duas dificuldades. A primeira é
que há a necessidade de, a cada iteração, inverter a matriz Hessiana. E a segunda é
decorrente da possibilidade da matriz Hessiana se apresentar como definida negativa.
Uma solução simples para estas duas dificuldades é considerar H−1 = I. Entretanto,
esta consideração reduz o método de Newton-Raphson ao lento algoritmo gradiente
descendente. A seguir, são apresentados métodos alternativos que contornam estas
dificuldades.

C.0.2 Métodos Quase-Newton

Muitos métodos têm sido propostos para substituir H−1 [k] por uma matriz definida
positiva H[k] adaptada iterativamente sem a necessidade de inversão, de tal forma que
a atualização dos pesos é dada por
w[k + 1] = w[k] − ηHg[k]. (C.8)

103
A seguir são apresentadas duas metodologias baseadas na aplicação em batelada do
conjunto de dados (batch algorithms).

Método Davidon-Fletcher-Powell (DFP)

O método parte com H0 = I (gradiente descendente) e tende ao método Newton-


Raphson a medida que o processo iterativo avança. O método garante que as matrizes
H[k] são definidas positiva. A seguir é apresentado o algoritmo.

Tabela C.1: Algoritmo do Método Davidon-Fletcher-Powell (DFP).


1. Defina H[0] = I;
2. Calcule o gradiente g[k];
3. Calcule a nova direção v[k] = −H[k]g[k];
4. Encontre a taxa de aprendizado η[k] que minimize E(w[k] + η[k]v[k]);
5. Calcule o novo vetor de pesos w[k + 1] = w[k] + η[k]v[k];
6. Considere u[k] = η[k]v[k] e y[k] = g[k + 1] − g[k];
7. Calcule a matriz H[k + 1] = H[k] + A[k] + B[k] para a próxima iteração, em que:
T T
A[k] = u[k](u[k])
(u[k])T y[k]
B[k] = − H[k]y[k](H[k]y[k])
(y[k])T H[k]y[k]
;
8. Verifique o critério de parada e, se não satisfeito, retorne ao passo 2;

Método Broyden-Fletcher-Goldfarb-Shano (BFGS)

A metodologia proposta aqui, embora um pouco mais complexa, apresenta a van-


tagem de evitar a tendência de H[k] se tornar singular, como ocorre no método DFP.
O algoritmo é praticamente o mesmo, havendo uma alteração no passo 7, como segue.
• Calcule a matriz H[k + 1] = H[k] + A[k] + B[k] + C[k] para a próxima iteração,
em que:

u[k](u[k])T H[k]y[k](H[k]y[k])T
A[k] = B[k] = − .
(u[k])T y[k] (y[k])T H[k]y[k]

C[k] = (y[k])T (H[k]y[k])T (z[k]z[k])T

u[k] H[k]y[k]
z[k] = −
(u[k])T y[k] (y[k])T H[k]y[k]

C.0.3 Métodos Gauss-Newton

A função de erro normalmente utilizada como referência para avaliar o desempenho


no treinamento de redes neurais é apresentada a seguir em sua forma vetorial

E(w) = e(w)T e(w). (C.9)

104
Dado que neste caso e(w) é diferenciável em relação a cada peso do vetor de pesos w,
cada elemento da matriz de derivada primeira (matriz Jacobiana) pode ser calculado
como segue
∂ei
J(wij ) = . (C.10)
∂wj
E a matriz de derivada segunda (matriz Hessiana) pode ser calculada pela diferenciação
da equação C.9. Em notação vetorial, os resultados para as matrizes Jacobiana e
Hessiana são dadas a seguir como
g = ▽E(w) = Ew = 2JT e (C.11)
∂JT
H = Eww = 2JT J + 2 e (C.12)
∂w
Considerando que a função C.9 é minimizada iterativamente, pode-se pensar que, a
medida que o processo de treinamento da rede neural vai evoluindo, os erros ei vão
se tornando pequenos. Assim, o segundo termo do lado direito da equação C.12 pode
ser negligenciado em favor da elaboração de uma nova versão simplificada de matriz
Hessiana
Ha ≈ 2JT J. (C.13)
O método Gauss-Newton aplica a definição de g e a aproximação de H (equa-
ção C.13 no algoritmo Newton-Raphson C.6
w[k + 1] = w[k] − (JT J)−1 JT e. (C.14)
Esta proposta também é conhecida como método dos mínimos quadrados generali-
zado.
No caso em que, na prática, os erros ei não sejam pequenos o suficiente o método
pode apresentar convergência lenta ou, até mesmo, divergir.

C.0.4 Método Levenberg-Marquardt

Objetivando contornar uma possível tendência da matriz Jacobiana J se tornar


deficiente no posto durante o processo iterativo de treinamento, Levenberg e Marquardt
propõem uma abordagem para regularização da estimativa da matriz Hessiana H =
JT J
w[k + 1] = w[k] − (JT J + λ[k]I)−1 JT e. (C.15)
O fator λ[k] é um escalar que deve ser alterado durante o processo iterativo de treina-
mento. Quando λ[k] assume valores grandes (JT J + λ[k]I) ≈ λ[k]I o método tende ao
gradiente descendente, conferindo grandes reduções no erro quando se está longe do
mínimo. Quando λ[k] assume valores pequenos (JT J + λ[k]I) ≈ JT J o método tende
ao Gauss-Newton, com rápida convergência nas imediações do ponto mínimo. Este
efeito é ilustrado na Figura C.3.

105
Figura C.3: Direção para atualização de pesos em algoritmo Levenberg-Marquardt.

Como estratégia de alteração do fator λ[k], sugere-se que o mesmo assuma valores
baixos, tal como λ[k] = 0, 01, no início do treinamento. Sempre que uma iteração não
promover uma redução do erro, a iteração deve ser repetida, agora com λ[k + 1] =
10λ[k]. Uma vez que o erro tenha decrescido, o fator λ[k] deve ser decrescido.

106
Apêndice D

Estimação de Sistemas

D.1 Estimação Baseada na Técnica dos Mínimos Quadrados


D.1.1 Idéia Básica

Observando o gráfico da figura D.1 a seguir, percebe-se que a disposição do conjunto


de pontos lembra uma função afim do tipo y = ax + b contaminada com algum ruído.

Figura D.1: Pares (x,y)

É bastante razoável, então, estimar m = θ̂1 e a = θ̂2 a partir destes pontos da


seguinte forma:

y1 = θ̂1 x1 + θ̂2 (D.1)


y2 = θ̂1 x2 + θ̂2
y3 = θ̂1 x3 + θ̂2
.. .. ..
. . .
yn = θ̂1 xn + θ̂2 .

Este sistema de equações lineares pode ser organizado matricialmente (Y = Xθ̂)

107
da seguinte forma    
y1 x1 1
y  x 1 ( )
 2  2 
y  x 1
θ̂1
 3 =  3 
 ..   .. ..  θ̂2
. . .
yn xn 1
OBS.: Se X for quadrada e não-singular (det ̸= 0), então X−1 existe. Logo, θ̂ = X−1 Y
(sistema determinado: número de equações = número de incógnitas)
Como X não é quadrada (sistema sobredeterminado: número de equações > número
de incógnitas), não pode ser invertida. Entretanto, multiplicando ambos os lados de
Y = Xθ̂ por XT , temos
XT Y = XT Xθ̂. (D.2)
Como XT X é quadrada e considerando que XT X é não-singular, então

θ̂ = [XT X]−1 XT Y. (D.3)


A matriz [XT X]−1 XT é conhecida com a matriz pseudo-inversa.

D.1.2 Justificativa Matemática

Os valores observados de y podem ser dados pela equação D.4 a seguir,

y1 = θ̂1 x1 + θ̂ + ξ1 (D.4)
y2 = θ̂1 x2 + θ̂2 + ξ2
y3 = θ̂1 x3 + θ̂2 + ξ3
.. .. .. ..
. . . .
yn = θ̂1 xn + θ̂2 + ξn .

onde ξi é o erro cometido na tentativa de explicar yi a partir de xi e θ̂.


A equação D.4 toma a seguinte forma matricial

Y = Xθ̂ + ξ, (D.5)

onde ξ é agora um vetor de erros.


Considerando que é de interesse que a estimativa dos parâmetros (θ̂) minimize o
erro (ξ), define-se a sequinte equação de erro

N
JM Q = ξ(i)2 = ξ T ξ = ||ξ||, (D.6)
i=1

108
que é uma função quadrática, e deriva-se esta função para encontrar o ponto de mínimo.
Antes, porém, determina-se ξ da equação D.5 e substitui-se na equação D.6, o que nos

JM Q = (Y − Xθ̂)T (Y − Xθ̂) (D.7)


T T
= YT Y − YT Xθ̂ − θ̂ XT Y + θ̂ XT Xθ̂.

Igualando a derivada de JM Q a zero, temos


dJM Q
= −(YT X)T − XT Y + (XT X + XT X)θ̂ = 0 (D.8)
dθ̂
= −XT Y − XT Y + 2XT Xθ̂ = 0,

o que nos dá uma estimativa do vetor de parâmetros como

θ̂ = [XT X]−1 XT Y. (D.9)

Lembrete
d(XT Y) d(YT X) d(XT AX)
=X =X = (A + AT )X
dY dY dX
É importante notar que
d2 JM Q
= 2XT X > 0,
dθ̂2
é definida positiva, garantindo assim que θ̂ leva a um ponto de mínimo da equação D.6

θ̂M Q = argθ minJM Q = [XT X]−1 XT Y.

D.1.3 Mínimos Quadrados Recursivos

θ̂ = [XT X]−1 XT Y (MQ em batelada) (D.10)


[ k ]−1 [ k ]
∑ ∑
θ̂ k = Ψ(i − 1)ΨT (i − 1) Ψ(i − 1)y(i) (MQ recursivo) (D.11)
i=1 i=1

109
Prova:

Considerando X e Y dados a seguir


   
a b ( ) y1
a c e
X = c d XT = Y = y2  ,

b d f
e f y3
os resultados das operações XT X e XT Y são dados por
 
( ) a b ( 2 2 2
)
a c e  a + c + e ab + cd + ef
XT X = c d =
b d f ab + cd + ef b2 + d2 + f 2
e f
 
( ) y1 ( )
a c e  y2  = ay 1 + cy 2 + ey 3
XT Y = .
b d f by1 + dy2 + f y3
y3
Agora, considerando que as informações contidas em X e Y são disponibilizadas
sequencialmente, linha após linha, o cálculo de XT X pode ser realizado iterativamente
como segue. Considerando i = 1, i = 2 e i = 3 na equação D.11, temos
( ) ( ) ( )
a c e
Ψ(0) = Ψ(1) = Ψ(2) = .
b d f
e
( ) ( 2 )
a ( ) a ab
para i = 1 XT X = a b =
b ab b2
( 2 ) ( ) ( 2 )
a ab c ( ) a + c 2
ab + cd
para i = 2 XT X = + c d =
ab b2 d ab + cd b2 + d2
( 2 ) ( ) ( 2 )
a + c 2
ab + cd e ( ) a + c 2
+ e2
ab + cd + ef
para i = 3 XT X = + e f =
ab + cd b2 + d2 f ab + cd + ef b2 + d2 + f 2
Logo, os resultados obtidos recursivamente tendem ao resultado obtido em batelada.
∑k
A prova de XT Y = i=1 Ψ(i − 1)y(i) segue a mesma metodologia.

[∑ ]−1
k
Definindo Pk = i=1 Ψ(i − 1)Ψ (i − 1) , temos
T


k ∑
k−1
P−1
k = Ψ(i − 1)Ψ (i − 1) =
T
Ψ(i − 1)ΨT (i − 1) + Ψ(k − 1)ΨT (k − 1)
i=1 i=1
P−1
k = P−1
k−1 + Ψ(k − 1)Ψ (k − 1)
T
(D.12)

110
O uso da equação D.12 é inadequado em função da necessidade da inversão de uma
matriz a cada iteração. Uma expressão numericamente mais vantajosa pode ser obtida
a partir do lema da inversão1 .
Assim, reescrevendo a equação D.12 como

P−1 −1
k = Pk−1 + Ψ(k − 1).1.Ψ (k − 1)
T
(D.14)

e considerando

A = P−1
k−1 B = Ψ(k − 1) C = 1 D = Ψ (k − 1),
T
(D.15)

a equação D.12 pode ser dada por

Pk = Pk−1 − Pk−1 Ψ(k − 1)[1 + ΨT (k − 1)Pk−1 Ψ(k − 1)]−1 ΨT (k − 1)Pk−1 , (D.16)

em que o termo a ser invertido é um escalar para modelos com apenas uma saída.
Agora, o vetor de parâmetros em k − 1 pode ser dado por
[ k−1 ]−1 [ k−1 ]
∑ ∑
θ̂ k−1 = Ψ(i − 1)ΨT (i − 1) Ψ(i − 1)y(i) (D.17)
i=1 i=1

de forma que
[ k−1 ] [ k−1 ]
∑ ∑
Ψ(i − 1)y(i) = Ψ(i − 1)ΨT (i − 1) θ̂ k−1 = P−1
k−1 θ̂ k−1 . (D.18)
i=1 i=1

Assim, o vetor de parâmetros em k é dado por


[ k−1 ]

θ̂ k = Pk Ψ(i − 1)y(i) + Ψ(k − 1)y(k)
[ i=1 ]
−1
= Pk Pk−1 θ̂ k−1 + Ψ(k − 1)y(k)
[( ) ]
−1
= Pk Pk − Ψ(k − 1)Ψ (k − 1) θ̂ k−1 + Ψ(k − 1)y(k)
T

= θ̂ k−1 − Pk Ψ(k − 1)ΨT (k − 1)θ̂ k−1 + Pk Ψ(k − 1)y(k)


[ ]
= θ̂ k−1 + Pk Ψ(k − 1) y(k) − Ψ (k − 1)θ̂ k−1
T

= θ̂ k−1 + Kk η(k),
(D.19)

onde Kk = Pk Ψ(k − 1) e η(k) = y(k) − ΨT (k − 1)θ̂ k−1 .


1
Lema da Inversão:
[A + BCD]−1 = A−1 − A−1 B[C−1 + DA−1 B]−1 DA−1 (D.13)

111
Usando a equação D.16, temos
Pk−1 Ψ(k − 1)ΨT (k − 1)Pk−1 Ψ(k − 1)
Kk = Pk−1 Ψ(k − 1) −
1 + ΨT (k − 1)Pk−1 Ψ(k − 1)
Pk−1 Ψ(k − 1)
= . (D.20)
1 + ΨT (k − 1)Pk−1 Ψ(k − 1)
O cálculo recursivo deve ser realizado pela seguinte sequência:
Pk−1 Ψ(k − 1)
Kk =
1 + ΨT (k − 1)Pk−1 Ψ(k − 1)
[ ]
θ̂ k = θ̂ k−1 + Kk y(k) − Ψ (k − 1)θ̂ k−1
T

Pk = Pk−1 − Kk ΨT (k − 1)Pk−1 . (D.21)

O algoritmo dos mínimos quadrados recursivos ainda pode ser aplicado na estimação
de parâmetros variantes no tempo. As equações D.21 devem ser levemente alteradas
para a inclusão do fator de esquecimento λ:
Pk−1 Ψ(k − 1)
Kk =
λ + ΨT (k − 1)Pk−1 Ψ(k − 1)
[ ]
θ̂ k = θ̂ k−1 + Kk y(k) − Ψ (k − 1)θ̂ k−1
T

1( )
Pk = Pk−1 − Kk ΨT (k − 1)Pk−1 . (D.22)
λ
Como sugestão, o fator de esquecimento λ deve assumir valores ligeiramente inferi-
ores a 1, tais como na faixa 0.99 − 0.95.

112

Você também pode gostar