Notas de Aula - Inteligência Computacional Aplicada
Notas de Aula - Inteligência Computacional Aplicada
Notas de Aula - Inteligência Computacional Aplicada
DEPARTAMENTO DA INDÚSTRIA
PÓS-GRADUAÇÃO
NOTAS DE AULA:
INTELIGÊNCIA COMPUTACIONAL APLICADA
FORTALEZA
2015
Sumário
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
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
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
3
Capítulo 1
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).
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.
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!
• 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.
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.
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.
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
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:
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.
• 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.
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.
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.
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:
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:
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.
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:
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.
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.
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).
16
Figura 2.14: Discriminante linear na distância Euclidiana.
∑
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.
17
Capítulo 3
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.
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:
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:
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)∥
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)∥
2. Busca pelo neurônio vencedor, i∗ (t), para o vetor de entrada x(t), usando as Equações (3.4) ou (3.5).
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 .
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:
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.
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
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.
23
Então, o ajuste dos pesos é feito da seguinte forma:
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.
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
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.
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
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.
dmh = (x − mx )T C−1
x (x − mx ) (4.8)
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 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
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.
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.
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.
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.
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.
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
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.
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.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.
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.
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
∏
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.
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.
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
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
∑
n ( )
1 (x − xi )T (x − xi )
p̂(x) = p exp − (5.21)
nhp (2π) 2 2ph2
i=1
43
Figura 5.2: Classificador KNN com vizinhança 2
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
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.
x 0 = −1
x1
w1 w0 = θ
x2 w2
y(t) y*(t)=+ 1
x3
w3 Σ −
wp
: −+
xp d(t)
e(t)
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
∑
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
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:
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:
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.
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
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.
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
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)
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:
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)
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
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.
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.
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:
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
√
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:
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).
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).
• 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;
• 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 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:
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:
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).
−1 → ϵ − 1 (7.40)
0 → ϵ (7.41)
1 → 1−ϵ (7.42)
61
Capítulo 8
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:
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:
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:
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
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.
• Processamento Fuzzy: processamento das entradas fuzzy de acordo com conjuntos de regras e produção
de saídas fuzzy;
66
Figura 9.1: Esquema da máquina fuzzy.
• 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;
• 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.
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.
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.
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.
• 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.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:
69
Figura 9.3: Processo de fuzzyficação
O resultado das implicações para cada regra apresentada pode ser obtido a partir de algumas técnicas
encontradas na literatura:
Assim, os resultados das implicações são apresentados na Tabela 9.2 para duas formas distintas do
operador lógico AND.
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:
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)
É 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.
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:
• 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:
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:
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
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
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
74
Figura 9.6: Funções de pertinência
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
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.
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).
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.
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.
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.
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.
27 V. Maiorov and A. Pinkus. Lower bounds for approximation by MLP neural networks. Neurocomputing,
25:81–91, 1999.
32 R. Reed. Pruning algorithms - a survey. IEEE Transactions on Neural Networks, 4(5):740–747, 1993.
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.
• 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.
• 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
Uma vez suplantadas estas dificuldades, resta agora utilizar um estimador robusto para a média e a
matriz de covariância.
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.
(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.
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
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.
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.
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
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
>> 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
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.
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
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
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)
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.
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.
É 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
101
Figura C.1: Função de erro não linear e não quadrática.
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.
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).
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]
u[k] H[k]y[k]
z[k] = −
(u[k])T y[k] (y[k])T H[k]y[k]
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.
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
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
y1 = θ̂1 x1 + θ̂ + ξ1 (D.4)
y2 = θ̂1 x2 + θ̂2 + ξ2
y3 = θ̂1 x3 + θ̂2 + ξ3
.. .. .. ..
. . . .
yn = θ̂1 xn + θ̂2 + ξn .
Y = Xθ̂ + ξ, (D.5)
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
dá
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
109
Prova:
[∑ ]−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)
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
= θ̂ k−1 + Kk η(k),
(D.19)
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
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