Upload
hoangminh
View
214
Download
0
Embed Size (px)
Citation preview
1
Máquinas de Vetores Suportes
SAMUEL BELINI DEFILIPPO
Monografia final de curso sob orientação
do Prof. Raul Fonseca Neto
Juiz de Fora, MG fevereiro de 2004
2
Máquinas de Vetores Suportes
SAMUEL BELINI DEFILIPPO MONOGRAFIA SUBMETIDA AO CORPO DOCENTE DO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO DA UNIVERSIDADE FEDERAL DE JUIZ DE FORA COMO PARTE INTEGRANTE DOS REQUISITOS NECESSÁRIOS PARA OBTENÇÃO DO GRAU DE BACHAREL EM CIÊNCIA DA COMPUTAÇÃO.
Aprovada por:
Wilhelm Passarella Freire Doutorando em Engenharia de Sistemas e Computaçao– COPPE/UFRJ
Hélio José Corrêa Barbosa Doutor em Engenharia Civil – COPPE/UFRJ
Juiz de Fora, MG fevereiro de 2004
Raul Fonseca Neto (orientador)
Doutor em Engenharia de Sistemas e Computação – COPPE/UFRJ
i
Agradecimentos
Agradeço a todos que direta e indiretamente me ajudaram a concluir este trabalho.
Especialmente ao meu Orientador que foi muito importante ao me ajudar e influenciar para o estudo aqui publicado.
ii
Resumo
Este trabalho consiste no desenvolvimento e implementação de um algoritmo para a solução do problema relacionado ao treinamento de um classificador denominado máquina de vetores suportes (SVM). Trata-se da solução de um problema dual de otimização quadrática colocado sob a forma de Wolfe. O método apresentado tem como embasamento teórico o desenvolvimento de uma rede Perceptron dual cuja topologia está relacionada a uma representação dependente dos dados que computa uma função de saída responsável pela maximização da margem de separação dos dados em um problema de classificação binária. O algoritmo, denominado KPDS, Kernel Perceptron Dual SVM, utiliza uma forma mais estável, porém, com uma menor taxa de convergência, de correção dos multiplicadores, com base no gradiente da função lagrangeana.
iii
Sumário AGRADECIMENTOS..................................................................................................................................................I RESUMO ...................................................................................................................................................................... II LISTA DE FIGURAS ................................................................................................................................................. V LISTA DE TABELAS..............................................................................................................................................VII CAPÍTULO I – APRENDIZADO SUPERVISIONADO E TEORIAS DE GENERALIZAÇÃO .................. 1
1.1 - APRENDIZADO SUPERVISIONADO E A PARTIR DE DADOS .................................................................................. 3 1.2 - APRENDIZAGEM ESTATÍSTICA E MINIMIZAÇÃO DE RISCOS ............................................................................... 4
1.2.1 - Minimização do Risco Empírico (ERM).................................................................................................. 8 1.2.2 - Minimização de Risco Estrutural (SRM)...............................................................................................11
1.3 - DIMENSÃO VC E SELEÇÃO DE MODELOS......................................................................................................... 14 1.3.1 – Capacidade e poder de generalização: ................................................................................................15 1.3.2 – Projeto de máquinas:.............................................................................................................................16
CAPÍTULO II – DISCRIMINANTES E REGRESSORES ................................................................................19 2.1 - CLASSIFICADORES BAYESIANOS: .................................................................................................................... 19
2.1.1 – Regra de Bayes:......................................................................................................................................20 2.1.2 – Critério MAP:.........................................................................................................................................21 2.1.3 - Naive Bayes:............................................................................................................................................23
2.2 - FUNÇÃO DISCRIMINANTE E SUPERFÍCIE DE DECISÃO ...................................................................................... 25 2.3 – CRITÉRIO ML OU CRITÉRIO DE FISHER:.......................................................................................................... 28 2.4 - MINIMIZAÇÃO DO RISCO DE DECISÃO.............................................................................................................. 32 2.5 - TREINAMENTO POR CORREÇÃO DO ERRO ........................................................................................................ 34
2.5.1 – Regressor linear:....................................................................................................................................34 2.5.2 - Regressor com múltiplas variáveis:.......................................................................................................40 2.5.3 - Método de Newton:.................................................................................................................................46 2.5.4 - Algoritmo LMS, regra delta e ADALINE:.............................................................................................49 2.5.5 - Uso de regressão linear como classificador.........................................................................................55
CAPÍTULO III – PERCEPTRONS ........................................................................................................................58 3.1 – MODELO PERCEPTRON .................................................................................................................................... 58
3.1.1 – Perceptron como superfície de decisão:...............................................................................................59 3.1.2 - Algoritmo de treinamento.......................................................................................................................63 3.1.3 – Critério de custo e correção do erro ....................................................................................................66 3.1.4 – Perceptron de múltiplas saídas:............................................................................................................69 3.1.5 – Perceptron dual:.....................................................................................................................................70 3.1.6 - Convergência do Perceptron:...............................................................................................................73 3.1.7 – Perceptron de votação:..........................................................................................................................75
3.2 - PERCEPTRON E O PROBLEMA XOR:................................................................................................................. 77 3.2.1 – Perceptron multi-camadas (MLP): .......................................................................................................77 3.2.2 - Espaço de características: .....................................................................................................................83 3.2.3 – Base de funções:.....................................................................................................................................86 3.2.4 – Redes RBF e funções de base radial.....................................................................................................90 3.2.5 - RBF e o problema XOR:.........................................................................................................................92
3.3 - PERCEPTRON DE ÓTIMA ESTABILIDADE OU DE LARGA MARGEM.................................................................... 93 3.3.1 – Maximização da margem: .....................................................................................................................96 3.3.2 – Convergência e estabilidade:................................................................................................................98
CAPÍTULO IV – MÁQUINAS DE VETORES SUPORTE (SVM) .................................................................100 4.1 - NORMALIZAÇÃO DA MARGEM E HIPERPLANOS CANÔNICOS......................................................................... 100 4.2 - FORMULAÇÃO MATEMÁTICA LAGRANGEANA:.............................................................................................. 105 4.3 - REPRESENTAÇÃO DEPENDENTE DOS DADOS: ................................................................................................ 107
iv
4.4 – PERCEPTRON SVM DUAL:............................................................................................................................. 109 4.4.1 – Classificador geométrico: ...................................................................................................................109 4.4.2 – Estratégias de aprendizado:................................................................................................................111
4.5 - SVM COM SOFT MARGIN .............................................................................................................................. 113 4.5.1 – Flexibilização da margem:..................................................................................................................114 4.5.2 – Norma L1: .............................................................................................................................................115 4.5.3 – Norma L2: .............................................................................................................................................118 4.5.4 – Controle da capacidade de generalização:........................................................................................120
4.6 - ANALOGIA MECÂNICA:.................................................................................................................................. 123 4.7 – SVM E MULTI-CLASSIFICAÇÃO: ................................................................................................................... 124
CAPÍTULO V – CLASSIFICADORES KERNEL .............................................................................................127 5.1 – FUNÇÕES KERNEL ......................................................................................................................................... 128
5.1.1 - Espaço e Funções de Características..................................................................................................129 5.1.2 – Problema XOR: ....................................................................................................................................132
5.2 - CONDIÇÕES DE MERCER E UNIVERSALIDADE: .............................................................................................. 135 5.3 - CLASSES E PROPRIEDADES DE FUNÇÕES KERNEL.......................................................................................... 139
5.3.1 - Propriedades de funções Kernel..........................................................................................................139 5.3.2 – Classes de funções Kernel ...................................................................................................................140 5.3.3 – Dimensão VC de funções Kernel.........................................................................................................141
5.4 - PROJETO DE FUNÇÕES KERNEL ...................................................................................................................... 144 5.4.1 – Validação de funções kernel: ..............................................................................................................145 5.4.2 – Kernel baseados em modelos generativos: ........................................................................................146 5.4.3 – Kernel baseados em sintaxes: .............................................................................................................148
5.5 – KERNEL E ESTIMATIVA DE DENSIDADE: ....................................................................................................... 153 5.5.1 - Regra NN ou kNN:................................................................................................................................154 5.5.2 - Mapeamento kernel: .............................................................................................................................156 5.5.3 - Janelas de Parzen:................................................................................................................................156 5.5.4 - Aprendizagem dos parâmetros: ...........................................................................................................159
5.6 – FUNÇÕES KERNEL EM DISCRIMINANTES: ...................................................................................................... 160 5.6.1 – Kernel em Perceptron..........................................................................................................................161
CAPÍTULO VI – SVM: TÉCNICAS E SOLUÇÕES.........................................................................................163 6.1 - ESTRATÉGIAS DE CONJUNTO DE TRABALHO OU DECOMPOSIÇÃO ............................................................... 165
6.1.1 – Decomposição de variáveis:................................................................................................................166 6.1.2 - Formulação do Método:.......................................................................................................................167 6.1.3 – Algoritmo gradiente reduzido: ............................................................................................................169 6.1.4 – Aplicação a SVM:.................................................................................................................................170 6.1.5 – Chunking: .............................................................................................................................................172
6.2 - OTIMIZAÇÃO SEQÜENCIAL MÍNIMA (SMO):TEORIA E IMPLEMENTAÇÃO.................................................. 173 6.2.1 – Escolha das variáveis: .........................................................................................................................173 6.2.2 – Solução do subproblema de otimização:............................................................................................176 6.2.3 – Atualização de parâmetros e cache:...................................................................................................180 6.2.4 – Cálculo da função Kernel:...................................................................................................................180 6.2.5 – Algoritmo SMO:...................................................................................................................................181 6.2.6 – Aplicação a um problema de separabilidade linear:.........................................................................185
6.3 – MÉTODOS ONLINE: TEORIA E IMPLEMENTAÇÃO ......................................................................................... 187 6.3.1 – Algoritmo Kernel Adatron:..................................................................................................................187 6.3.2 – Variantes do Kernel Adatron: .............................................................................................................189 6.3.3 – Algoritmo Kerneltron: .........................................................................................................................194 6.3.4 – Algoritmo KPSD: .................................................................................................................................198 6.3.5 – Aplicação a um problema de separabilidade linear:.........................................................................203 6.3.6 – Aplicação a um problema de separabilidade não linear: .................................................................205
CAPÍTULO VII – CONSIDERAÇÕES FINAIS E SUGESTÕES FUTURAS ..............................................208 REFERÊNCIAS BIBLIOGRÁFICAS..................................................................................................................211
v
Lista de Figuras FIGURA I-1 – SISTEMAS ADAPTATIVOS........................................................................................................................... 2 FIGURA I-2 – PROBLEMA DE CLASSIFICAÇÃO ................................................................................................................ 6 FIGURA I-3 – RELAÇÃO DE ERRO, COMPLEXIDADE E ESPAÇO DE HIPÓTESES.............................................................. 13 FIGURA I-4 – POSSÍVEIS DICOTOMIAS PARA TRÊS PONTOS EM R2............................................................................... 14 FIGURA I-5 – RELAÇÃO ENTRE COMPLEXIDADE, CONFIDÊNCIA E RISCOS .................................................................. 16 FIGURA II-1 – PROBABILIDADE DAS CLASSES .............................................................................................................. 22 FIGURA II-2 – REGIÃO DE ERRO RELACIONADA À SUPERPOSIÇÃO DAS CURVAS ........................................................ 23 FIGURA II-3 – SUPERFÍCIE DE DECISÃO EM R2............................................................................................................. 26 FIGURA II-4 – CLASSIFICADOR LINEAR PARA MÚLTIPLAS CLASSES ............................................................................ 27 FIGURA II-5 – SUPERFÍCIE DE DECISÃO PARA ∑ = ( Σ2.I) .......................................................................................... 30 FIGURA II-6 – SUPERFÍCIE DE DECISÃO PARA ∑1 = ∑2 .............................................................................................. 31 FIGURA II-7 – SUPERFÍCIE DE DECISÃO PARA ∑1 ≠ ∑2 ................................................................................................. 31 FIGURA II-8 – MODELO DE REGRESSÃO LINEAR .......................................................................................................... 35 FIGURA II-9 – SUPERFÍCIE DE ERRO DA REGRESSÃO SIMPLES ..................................................................................... 37 FIGURA II-10 – MÉTODO DE DESCIDA OU GRADIENTE................................................................................................. 38 FIGURA II-11 – REGRESSÃO LINEAR COM MÚLTIPLAS VARIÁVEIS .............................................................................. 41 FIGURA II-12 – SUPERFÍCIE DE ERRO DA REGRESSÃO MÚLTIPLA ................................................................................ 42 FIGURA II-13 – DIREÇÕES DO GRADIENTE E AUTOVALORES ....................................................................................... 45 FIGURA II-14 – DIREÇÃO DE NEWTON X DIREÇÃO DO GRADIENTE............................................................................. 48 FIGURA II-15 – NEURÔNIO MATEMÁTICO E NEURÔNIO BIOLÓGICO ............................................................................ 50 FIGURA II-16 – REGRA DA CADEIA APLICADA A FUNÇÃO DE ATIVAÇÃO .................................................................... 51 FIGURA II-17 – FUNÇÕES DE ATIVAÇÃO MAIS COMUNS .............................................................................................. 52 FIGURA II-18 – MODELO MADALINE ........................................................................................................................... 53 FIGURA II-19 – FUNÇÃO DE ATIVAÇÃO SIGMÓIDE E SUA DERIVADA .......................................................................... 55 FIGURA II-20 – REGRESSOR COMO CLASSIFICADOR .................................................................................................... 56 FIGURA III-1 – TOPOLOGIA DO MODELO PERCEPTRON................................................................................................ 59 FIGURA III-2 – SEPARAÇÃO DE CLASSES NO MODELO PERCEPTRON........................................................................... 60 FIGURA III-3 – SUPERFÍCIE DE DECISÃO DO PERCEPTRON........................................................................................... 61 FIGURA III-4 – TOPOLOGIA DE REDE DO PERCEPTRON ................................................................................................ 61 FIGURA III-5 – CORREÇÃO DO VETOR W EM FUNÇÃO DA ENTRADA X ........................................................................ 68 FIGURA III-6 – PERCEPTRON DE MÚLTIPLAS SAÍDAS ................................................................................................... 69 FIGURA III-7 – MOVIMENTAÇÃO DO VETOR W ............................................................................................................ 74 FIGURA III-8 – TOPOLOGIA DO PERCEPTRON MLP ..................................................................................................... 77 FIGURA III-9 – SEPARAÇÕES DOS PONTOS DO PROBLEMA XOR POR UMA HIPÉRBOLE .............................................. 78 FIGURA III-10 – INTERSEÇÃO DA FUNÇÃO OU COM A FUNÇÃO ~ E........................................................................... 79 FIGURA III-11 – REDE MLP DO PROBLEMA XOR ....................................................................................................... 80 FIGURA III-12 – MLP E CRITÉRIO MAP....................................................................................................................... 82 FIGURA III-13 – TRANSFORMAÇÃO DO PROBLEMA XOR PARA O ESPAÇO R3............................................................ 84 FIGURA III-14 – REDE MLP EQUIVALENTE DO PROBLEMA XOR ............................................................................... 84 FIGURA III-15 – REDE PERCEPTRON COM EXPANSÃO DOS DADOS .............................................................................. 85 FIGURA III-16 – APROXIMAÇÃO DA FUNÇÃO F POR UMA BASE DE FUNÇÕES ELEMENTARES .................................... 87 FIGURA III-17 – APROXIMAÇÃO COM BASE DE FUNÇÕES SINC. .................................................................................. 88 FIGURA III-18 – MLP COM BASE DE FUNÇÕES ............................................................................................................. 89 FIGURA III-19 – APROXIMAÇÃO DE FUNÇÕES COM BASES LOGÍSTICAS...................................................................... 90 FIGURA III-20 – REDE RBF UNIDIMENSIONAL. ........................................................................................................... 91 FIGURA III-21 – APROXIMAÇÃO DE FUNÇÕES COM BASES RADIAIS............................................................................ 92 FIGURA III-22 – TRANSFORMAÇÃO NÃO LINEAR DOS DADOS PARA O PROBLEMA XOR............................................ 93 FIGURA III-23 – HIPERPLANOS SEPARADORES............................................................................................................. 96 FIGURA III-24 – HIPERPLANO COM MÁXIMA MARGEM................................................................................................ 97 FIGURA IV-1 – HIPERPLANOS NA FORMA CANÔNICA. ............................................................................................... 101 FIGURA IV-2 – NORMALIZAÇÃO DA MARGEM. .......................................................................................................... 101 FIGURA IV-3 – RESTRIÇÃO DO ESPAÇO DE HIPÓTESES (HIPERPLANOS). ................................................................... 104 FIGURA IV-4 – CLASSIFICADORES DE MÍNIMA MARGEM E MÁXIMO DIÂMETRO ...................................................... 105 FIGURA IV-5 – PERCEPTRON SVM DUAL. ................................................................................................................. 108 FIGURA IV-6 – PROBLEMA DE RECONHECIMENTO DE PADRÕES EM R2.................................................................... 109
vi
FIGURA IV-7 – SVM COM SOFT MARGIN ................................................................................................................... 115 FIGURA IV-8 – SVM MULTICLASSIFICAÇÃO: UM CONTRA TODOS ............................................................................ 125 FIGURA IV-9 – ÁRVORE DE DECISÃO PARA PROBLEMA DE MULTICLASSIFICAÇÃO. ................................................. 126 FIGURA V-1 – ESPAÇO DE ENTRADA E ESPAÇO DE CARACTERÍSTICAS ..................................................................... 129 FIGURA V-2 - CLASSIFICADOR KERNEL COM MÚLTIPLAS SAÍDAS ............................................................................. 130 FIGURA V-3 – FUNÇÃO KERNEL E FUNÇÕES CARACTERÍSTICAS............................................................................... 131 FIGURA V-4 – SVM KERNEL E O PROBLEMA XOR. .................................................................................................. 135 FIGURA V-5 – CLASSIFICADOR SVM COM KERNEL GAUSSIANO............................................................................... 137 FIGURA V-6 – EXEMPLO DE CLASSIFICAÇÃO COM SVM E KERNEL GAUSSIANO ...................................................... 138 FIGURA V-7 – FUNÇÕES KERNEL ESTACIONÁRIAS ..................................................................................................... 141 FIGURA V-8 – EXTRAÇÃO DE CARACTERÍSTICAS....................................................................................................... 154 FIGURA V-9 – KERNEL PERCEPTRON DUAL............................................................................................................... 162 FIGURA VI-1 – ESTRATÉGIAS NA DETERMINAÇÃO DO CONJUNTO DE TRABALHO .................................................... 174 FIGURA VI-2 – SOLUÇÃO ANALÍTICA DO SUB-PROBLEMA QUADRÁTICO.................................................................. 177 FIGURA VI-3 – REPRESENTAÇÃO GRÁFICA DA SOLUÇÃO SVM ................................................................................ 185 FIGURA VI-4 – TOPOLOGIA DE REDE DO ALGORITMO KSPD.................................................................................... 200 FIGURA VI-5 – CONJUNTO DE TREINAMENTO DO PROBLEMA DA ESPIRAL ............................................................... 206 FIGURA VI-6 – RESULTADO OU SAÍDA DO PROBLEMA DA ESPIRAL NO ESPAÇO R2.................................................. 206
vii
Lista de Tabelas TABELA III-1 – TABELA DA VERDADE DO PROBLEMA XOR ....................................................................................... 80 TABELA III-2 – VALORES DAS COORDENADAS PROJETADAS PELAS FUNÇÕES GAUSSIANAS ..................................... 93 TABELA V-1 – OCORRÊNCIAS DE SUBSTRINGS DE TAMANHO 2 ................................................................................ 151 TABELA V-2 – OCORRÊNCIAS DE SUBSTRINGS DE TAMANHO VARIÁVEL ................................................................. 152 TABELA VI-1 – CONJUNTO DE TREINAMENTO ........................................................................................................... 185
1
Capítulo I – Aprendizado Supervisionado e Teorias de Generalização Neste capítulo trataremos do paradigma de aprendizado supervisionado que consiste de
um processo de indução que procura inferir hipóteses a partir de um conjunto de dados.
Neste sentido, torna-se importante o estudo de teorias de generalização no sentido de
estabelecer a hipótese ou modelo que seja mais adequada ao problema. Primeiramente,
vamos abordar de forma geral o problema de aprendizado supervisionado, em seguida
descreveremos a principal teoria de generalização que utilizam o conceito de
aprendizagem estatística de VAPNIK e CHERVONENKIS (1971).
Ultimamente, uma classe de problemas ocorridos na tomada de decisões em um
ambiente real, cercado de incertezas e imprecisões, tem sido resolvidas, segundo
ZADEH (1994), utilizando-se técnicas denominadas soft computing que empregam,
sobretudo, o conceito de aprendizado a partir de dados experimentais ou da experiência
do agente com o ambiente no qual se encontra inserido o problema. Estes problemas
têm, como aspectos principais, a adaptatividade, a distributividade e, freqüentemente, a
não-linearidade. É importante observar que todos estes são características marcantes dos
sistemas biológicos naturais.
Procuramos o desenvolvimento de técnicas e algoritmos no sentido de
solucionar problemas de identificação, classificação, predição, estimativa e controle de
sistemas adaptativos e paramétricos através de um processo contínuo de treinamento,
considerando a existência de um conjunto de dados ou informações do ambiente. Este
processo de loop feedback possibilita o ajuste progressivo dos parâmetros até que um
ponto de resultado seja alcançado.
É importante destacar que o desenvolvimento de modelos adaptativos, ver
Figura I-1, segundo PRÍNCIPE, EULIANO e LEFEBVRE (2000), é um processo
construtivo, a exemplo dos projetos de engenharia, possuindo um conjunto de princípios
biológicos, físicos e matemáticos que justificam o seu funcionamento.
2
Figura I-1 – Sistemas adaptativos
Embora, muitos problemas desta natureza possuam uma modelagem analítica
travéz de expressões algébricas, equações diferenciais ou sistemas discretos,
procuramos uma alternativa de solução mais parecida com a forma humana de atuar.
Certamente, a inteligência humana não é capaz de realizar cálculos matemáticos
complexos. Entretanto, a sua habilidade em interagir com sistemas adaptativos de alta
complexidade é notória e fruto, talvez, de milhões de anos de evolução em contato com
a natureza.
Neste sentido, temos um problema fundamental, ou seja, temos que encontrar a
forma mais eficiente de se utilizar o conhecimento ou a habilidade humana no
desenvolvimento de modelos adaptativos. A princípio, destacam-se duas categorias
principais de sistemas. Na primeira abordagem estão os sistemas de arquitetura top-
down, onde o conhecimento humano é inserido na forma de heurísticas ou regras de
julgamento em modelos simbólicos e declarativos, característicos das técnicas
cognitivas de Inteligência Artificial. Apesar deste tipo de arquitetura ter sucesso na
solução de inúmeras tarefas de altíssima complexidade, como: jogos, planejamento,
otimização combinatória e processamento da informação, a mesma é deficiente na
incorporação de capacidades mentais como o aprendizado, a discriminação, a
categorização, a generalização e a memorização, ingredientes fundamentais em
qualquer sistema inteligente.
Na segunda abordagem, destacam-se os sistemas de arquitetura botom-up,
provenientes dos modelos conexionistas de Inteligência Artificial, nos quais o
conhecimento e a habilidade humana são conquistados ou aprendidos a partir da
3
utilização de um conjunto de dados experimentais, a partir da interação com o ambiente
e, também, a partir de um conjunto de paradigmas de aprendizado que vão direcionar a
forma como os dados do modelo serão ajustados.
1.1 - Aprendizado supervisionado e a partir de dados Para entendermos melhor o processo de aprendizagem a partir de dados, considere uma
adaptação do exemplo apresentado por POGGIO e GIROSI (1990):
Exemplo 1.1: Seja um agente envolvido no aprendizado de uma língua
estrangeira, mais precisamente, na pronúncia de suas palavras. Considere a existência de
um livro de regras, bem como de uma tabela contendo todos os pares de palavras
existentes seguidas de suas pronúncias. Na tentativa de estabelecer um mapeamento ou
uma função, que caracterize uma forma de aprendizado, apresentam-se cinco opções:
1 - O agente não aprende nada;
2 - O agente aprende o conjunto de regras de pronúncia;
3 - O agente memoriza todos os pares da tabela;
4 - O agente memoriza um subconjunto de pares da tabela utilizados com
maior freqüência;
5 - O agente memoriza os pares mais freqüentes e desenvolve uma teoria ou
modelo.
Na primeira alternativa, não existe aprendizagem. A segunda alternativa requer o
aprendizado de um grande número de regras, com situações de conflito e exceções,
necessitando, ainda, de um eficiente processo de matching, no sentido de melhor
escolher a regra de pronúncia adequada a cada palavra. Não parece, portanto, uma
forma humana de resolver o problema, mas somente o uso top-down de um
conhecimento imperativo, estabelecendo uma analogia com o problema da sala chinesa
(SEARLE, 1980).
A terceira alternativa requer a memorização de todos os pares (palavra,
pronúncia) existentes em uma tabela de observações (look-up table). Entretanto, existem
dois tipos de problemas. Em primeiro lugar, embora existam 800.000 palavras
4
estrangeiras cadastradas, somente um número reduzido, cerca de 50.000, são mais
utilizadas, e, em segundo lugar, mesmo possuindo um esquema de acesso eficiente, o
agente descarta a pronúncia das palavras menos utilizadas, exigindo, de tempos em
tempos, um novo período de treinamento ou de memorização.
A quarta alternativa constrói um conjunto de treinamento contendo, somente, as
palavras mais utilizadas e suas respectivas pronúncias, requerendo que o agente crie
uma função, segundo alguma estratégia adequada como, por exemplo, um modelo de
regressão ou de interpolação. Entretanto, o mesmo não é capaz de desenvolver uma
teoria e, possivelmente, irá falhar na pronúncia de novas palavras, que não estejam no
conjunto de treinamento. Dizemos que, neste caso, o agente desenvolveu a capacidade
de discriminar o conhecido ou memorizar, mas não desenvolveu o poder de
generalização.
Finalmente, na quinta alternativa, o agente memoriza o conjunto de treinamento,
através do aprendizado de uma função e, também, desenvolve uma teoria de
aprendizado, para que seja capaz de pronunciar, futuramente, palavras ainda não
conhecidas. Esta parece ser, sem dúvida alguma, a alternativa preferível de aprendizado.
Porém, para que a mesma tenha sucesso, sobretudo na pronúncia de novas palavras, é
necessário que algumas premissas sejam observadas:
1 - O tamanho do conjunto de treinamento seja suficientemente grande para
possibilitar o aprendizado da função de mapeamento f ;
2 - A função de mapeamento f deva possuir uma boa aproximação para o
mapeamento futuro de dados não pertencentes ao conjunto de
treinamento;
3 - O conjunto de funções f deva ser suficientemente poderoso de modo a
representar o verdadeiro mapeamento;
4 - Todas as pronúncias (valores desejados) e mapeamentos (pares), que
formarão o conjunto de treinamento, sejam conhecidos a priori.
1.2- Aprendizagem estatística e minimização de riscos O problema de aprendizado, na sua forma mais geral, pode ser descrito como um
problema de mapeamento ou de aproximação de funções, KECMAN (2001). Ou seja,
5
desejamos descobrir ou aproximar uma função f que relacione um conjunto de pontos
ou amostras ou vetores de entrada de alta dimensão, X, a um conjunto de pontos ou
valores desejáveis ou vetores de saída, Y.
Este problema se divide em dois grupos principais relacionados,
respectivamente, a uma forma de aprendizado supervisionado, que utiliza, em seu
treinamento todo o conjunto de dados, e a uma forma de aprendizado não
supervisionado que utiliza em seu treinamento apenas o conjunto de amostras. No
primeiro caso temos os problemas de classificação ou reconhecimento de padrões,
regressão ou predição de valores ou ajuste dos dados. No segundo caso, temos os
problemas de estimativa de densidade, agrupamento de dados ou clusterização, detecção
de anomalias, extração de características e redução da dimensionalidade, também
chamado de análise dos componentes principais.
Particularmente, no problema de classificação relacionado a um conjunto de
treinamento, temos um processo de indução onde, a partir de uma representação
apropriada dos dados em vetores de características, tentamos inferir uma hipótese
caracterizada pelo projeto de um classificador que possui um conjunto de parâmetros,
como mostra a Figura I-2. Posteriormente, para uma nova amostra ou observação,
representada pelo respectivo vetor de características, utilizamos o classificador para
estabelecermos a sua categorização.
6
Aprendizado:
Aplicação:
Figura I-2 – Problema de classificação
7
É importante ressaltar que neste processo não existe, a priori, nenhuma
informação a respeito da distribuição dos dados de entrada, e o conjunto de pontos,
muitas vezes, não é precisamente conhecido. Assumimos, entretanto, que os dados são
distribuídos segundo alguma distribuição de probabilidade. Na forma mais comum de
aprendizado, tem-se um problema de inferência estatística, onde os conjuntos X e Y,
formam um conjunto de treinamento D = {(x,y)∈ X x Y}. A inferência estatística,
entretanto, se baseia em três considerações fundamentais:
1 - Os dados podem ser modelados, ou ajustados, por uma função
paramétrica, de um modelo;
2 - A distribuição de probabilidade que regula a aleatoriedade dos dados é
uma distribuição conhecida, como exemplo, a distribuição normal, cuja
função de densidade é uma função gaussiana;
3 - O paradigma utilizado para a correção ou estimativa dos parâmetros da
função é o método da probabilidade ou likelihood máxima, reduzindo o
aprendizado à aplicação de minimização de uma função quadrática do
erro (WIDROW, HOFF(1960)).
Segundo VAPNIK (1998), as três considerações apresentam inconvenientes ou
são inapropriadas para o tratamento de muitos problemas complexos, considerando que:
1 - Muitos problemas atuais são de altíssima dimensão, necessitando de um
número exponencial de parâmetros, em relação as suas
dimensionalidades. Como exemplo, podemos citar o fato de que, uma
função discriminante quadrática, possui uma quantidade de parâmetros
equivalente ao quadrado da dimensão dos dados em uma máquina de
classificação linear;
2 - Os algoritmos de aprendizagem não podem depender do conhecimento a
priori das distribuições de probabilidade como forma de regular a
natureza estocástica do sistema;
3 - Como forma de obter um melhor limite para o erro de validação, os
algoritmos de aprendizagem não podem utilizar, somente, o critério de
minimização do erro de treinamento, conhecido como o princípio de
minimização do risco empírico, necessitando, portanto, de novos
paradigmas.
8
Além destas considerações, devemos observar também que um novo paradigma
de aprendizado deva ser capaz de lidar com a esparsidade e escassez do conjunto de
treinamento e assumir o não conhecimento a priori da quantidade de parâmetros
necessários ao modelo. Neste sentido, pode-se considerar que a capacidade do modelo
ou o seu número de parâmetros é função da complexidade do conjunto de treinamento e
do paradigma de aprendizado adotado. Definimos, portanto, uma classe de modelos
semiparamétricos, contrapondo aos modelos estatísticos paramétricos mais
convencionais.
A nova premissa, sugerida por Vapnik, é contemplada pelo princípio da
minimização do risco estrutural (SRM), um novo princípio de indução derivado da
teoria de aprendizagem estatística introduzida por VAPNIK e CHERVONENKIS
(1971), que controla melhor o erro de generalização no processo de aprendizagem,
aperfeiçoando a teoria anterior da minimização do risco empírico (ERM) que é a base
da inferência estatística.
Este novo princípio é o ingrediente principal para o desenvolvimento de
máquinas de vetores suportes, também chamadas de SVM, apresentadas por CORTES e
VAPNIK (1995), que são modelos recentes de aprendizagem supervisionada, aplicados,
sobretudo, em problemas de classificação e regressão, e que serão objeto de estudo e
implementação.
1.2.1 - Minimização do Risco Empírico (ERM) Seja a função f definida como uma função aplicada a um conjunto de dados X Є Rn
associada a um conjunto de parâmetros α. Em um modelo linear, poderíamos definir f
como uma função sinal aplicada à equação de um hiperplano.
Desta forma a função de aprendizado seria escrita como:
( ) ( )( ) ( ) RbRwbxwbwxfxf D ∈∈+== ,:,,,, ϕα ,
sendo ϕ uma função sinal, e <w,x> o produto interno entre o vetor externo ao vetor de
parendizagem.
A função { }1,1: +−→DRf realiza um mapeamento dos valores de X DR∈ em
um conjunto binário de valores Y = {-1, +1}, dependendo da pertinência de um
9
elemento x a uma classe negativa ou positiva. Tal problema é definido como um
problema de classificação binária, e a função f de aprendizado é comumente chamada de
função de decisão.
Um processo iterativo de determinação da função, também chamado de
aprendizado supervisionado ou treinamento da máquina, é obtido baseando-se na
escolha dos parâmetros α em função do conjunto D de m observações:
( ) ( ){ } { }1,1,:,, 11 +−∈∈= iD
imm yRxyxyxD K
Este conjuto, como já vimos, é chamado de conjunto de treinamento, e
desempenha um papel fundamental no processo de aprendizado iterativo, as vezes
conhecido como online.
Uma vez escolhida uma função para a aproximação dos dados, é necessário
estabelecermos uma medida de qualidade, denominada erro de classificação, associada
ao treinamento da máquina:
( ) ( ) ( )∫ −= yxdPxfyR ,,21
αα
A medida é chamada de perda e P(x,y) é definida como uma função de
distribuição de probabilidade condicional geralmente desconhecida. R(α) é conhecido
na literatura estatística como um funcional de risco ou simplesmente risco. O objetivo,
portanto, da minimização do risco, é encontrar um conjunto de parâmetros que
minimize R(α) sobre uma classe de funções ou hipóteses definidas dentro de um espaço
de hipóteses denominado H.
O risco esperado é, portanto, uma medida de qualidade da hipótese em predizer
os mapeamentos relativos aos possíveis valores de x e y. Como a distribuição de
probabilidade é desconhecida, nós não podemos computar e portanto minimizar o risco
esperado em função do conjunto de parâmetros α diretamente. Neste caso, a única
alternativa é computar uma aproximação estocástica do risco para um conjunto
especifico de treinamento D, chamada de risco empírico.
O risco empírico é definido através da seguinte equação:
10
( ) ( )∑=
−=m
iiiemp yxf
mR
1
,1αα
A utilização da minimização do risco empírico no lugar do risco esperado,
definido pelo funcional R(α), conduz a um princípio denominado princípio da
minimização do risco empírico (ERM). Este princípio se baseia na intuição de que pela
lei dos grandes números o risco empírico converge para o risco esperado. Ou seja:
( ) ( )( ) 0lim =−∞→
αα empmRR
Caso esta convergência não ocorra na prática, devido à insuficiência de dados,
não será garantido que alguma forma de inferência seja realizada no conjunto de dados.
Segundo Vapnik e Chervonenkis, a consistência de um processo de inferência existe, se
e somente se, ocorrer uma convergência na probabilidade do risco empírico substituir o
risco esperado. O que é necessário, portanto, é a existência de uma convergência
uniforme ou consistência assintótica. Esta convergência pode ser escrita em termos
probabilísticos pela equação:
( ) ( )( ) 0suplim =
>−
∞→εαα
αempm
RRP , para qualquer ε > 0,
onde ε denota um valor de probabilidade e sup um argumento que aplicado em algum
conjunto não vazio S fornece o menor elemento s tal que o s ≥ x para todo x Є S. Se S
não existe, então sup(S) = ∞.
De forma resumida, esta equação assegura que a consistência no processo de
convergência é determinada pelo pior caso de uma função, de um conjunto de funções
de aproximação, que produzem o maior erro entre o risco empírico e o verdadeiro risco
esperado.
O princípio ERM é muito geral. Diferentes funções de perda podem ser
consideradas para desenvolvermos uma medida de qualidade. Entre as mais comuns, se
encontra o método dos mínimos quadrados, associado a norma L2, para a estimativa de
modelos de regressão ou o método da máxima probabilidade, para a estimativa de
densidades. A eficiência destas técnicas depende, entretanto, da lei dos grandes números
11
e da qualidade do conjunto de treinamento. Neste sentido, uma série de razões pode
comprometer o aprendizado supervisionado, baseado no princípio ERM:
1 - Existe uma dependência determinística no mapeamento, relacionada à
natureza do problema, mas um excesso de ruído nos dados coletados;
2 - A natureza do problema ou do mapeamento é estocástica;
3 - O processo de mapeamento é determinístico, mas não existe quantidade
de dados suficientes a serem coletados.
1.2.2 - Minimização de Risco Estrutural (SRM) A técnica ou principio de minimização do risco estrutural foi desenvolvido por
VAPNIK (1998), dentro do contexto da aprendizagem estatística e introduz um novo
princípio de indução compromissado com o projeto de máquinas que demonstrem uma
melhor capacidade de generalização, buscando um equilíbrio entre a qualidade do erro
de treinamento e a capacidade da máquina. Como já citado, os modelos que tenham uma
capacidade reconhecidamente reduzida, são incapazes de aprenderem o conjunto de
treinamento. Por outro lado, modelos que tenham uma alta capacidade desenvolvem um
problema de aprendizado excessivo denominado overfitting, perdendo o poder de
generalização.
A teoria da convergência uniforme em probabilidade, desenvolvida por Vapnik e
Chevonenkis, provê limites no desvio do risco empírico em relação ao risco esperado.
Para algum η tal que 0 ≤ η ≤ 1 podemos limitar o funcional de risco, para uma
probabilidade 1- η, segundo a expressão:
( ) ( )m
hmh
RR emp
−
+
+≤4
ln12ln η
αα para qualquer α,
onde h é definida como a dimensão VC da função e m a quantidade de dados.
Se conhecermos a dimensão VC, dada pelo parâmetro h, podemos computar o
lado direito da equação, determinado um limite superior para o valor do risco. A
equação demonstra que um baixo risco depende, simultaneamente, da escolha de uma
classe de funções ou do tipo de máquina de aprendizagem, e de uma função particular
12
pertencente a esta classe. Estes valores são representados, respectivamente, pelos
parâmetros h e α. Depende, também, da quantidade de dados, representada pelo
parâmetro m e da probabilidade de acerto ou nível de confiança da hipótese, 1-η, dada
pelo parâmetro η. Podemos observar que o limite decresce, se diminuirmos o risco
empírico através da utilização de uma máquina com uma baixa dimensão VC.
Como o risco empírico é usualmente uma função decrescente no valor de h, ou
seja, quanto maior a capacidade menor o erro de treinamento, isso significa que para um
dado conjunto de treinamento deve ser estabelecido um valor ótimo para a dimensão
VC. A escolha de um valor apropriado para h é essencial no sentido do algoritmo de
aprendizagem obter bom desempenho, notadamente, quando o conjunto de treinamento
é pequeno.
Este princípio, baseado no limite imposto ao funcional de risco, substitui o
princípio ERM como um princípio de indução. Pela equação que liga os dois tipos de
erro, fica claro que a minimização isolada do risco empírico não necessariamente
implica em valores reduzidos para o risco esperado. Baseado neste fato, Vapnik propôs
no novo princípio, para que o risco esperado seja pequeno, a minimização conjunta de
ambos os termos. Portanto, a dimensão VC e o risco empírico de uma classe de funções,
devem ser minimizados ao mesmo tempo.
Neste sentido, definimos subconjuntos aninhados de funções, máquinas ou
hipóteses, na forma:
KK ⊂⊂⊂⊂ nHHH 21 ,
com a propriedade de que h(n) ≤ h(n + 1) onde h(n) é a dimensão VC associada a
hipótese Hn. Desta forma, podemos sugerir que a adoção do princípio SRM envolve a
solução do seguinte problema:
( ) ( )
+
mnhRMin empHn
α
Observando a Figura I-3, podemos perceber a relação entre os tipos de erro e
respectivos riscos com a complexidade das hipóteses, associadas ao parâmetro C ou a
13
dimensão h. O erro de generalização ou risco esperado ou, simplesmente, o verdadeiro
erro, associado ao princípio de minimização do risco estrutural, representa um
compromisso entre o erro de treinamento ou erro de aproximação ou bias do modelo, e
o erro de validação ou a estimativa de erro ou a variância do modelo.
Figura I-3 – Relação de erro, complexidade e espaço de hipóteses
Assim, procuramos escolher uma hipótese que, de certa forma, represente este
compromisso. O princípio SRM, proposto por Vapnik e Chervonenkis, procura
estabelecer através da dimensão VC um aninhamento de hipóteses no sentido de
possibilitar a escolha de um modelo satisfatório de baixa complexidade. Por outro lado,
as técnicas de treinamento, bastante utilizadas no treinamento das redes neurais
artificiais, procuram minimizar somente o erro de validação, estabelecendo um intervalo
de confiança no erro de treinamento, como validação corrigida, mas não garantido a
bom desempenho do classificador em dados desconhecidos.
Apesar do princípio SRM estar bem estruturado, a sua implementação como
critério de generalização, em problemas reais é dificultada por três razões:
14
1 - Determinação da dimensão VC de uma hipótese pode ser difícil de ser
computada;
2 - Mesmo considerando o conhecimento da dimensão VC de uma hipótese,
a solução do problema de minimização, para um conjunto de hipóteses
aninhadas, envolve a determinação do risco empírico para cada hipótese
Hn e finalmente a escolha da hipótese Hn que minimiza os erro associada;
3 - Existem várias hipóteses para as quais a dimensão VC é infinita.
A seguir, veremos as duas formas clássicas de implementação do princípio
SRM, e uma descrição mais detalhada do conceito de dimensão VC.
1.3 - Dimensão VC e seleção de modelos Basicamente, Vapnik e Chervonenkis introduzem o conceito de dimensão VC de um
conjunto de funções, como o maior número possível de pontos ou vetores que podem
ser separados em duas classes, entre todas as possibilidades possíveis, chamadas de
dicotomias, utilizando-se as funções do conjunto, como mostra o Exemplo 1.2.
Exemplo 1.2: Para um conjunto formado de funções lineares ou hiperplanos em
um espaço de n dimensões, a dimensão VC é computada como sendo igual a n+1.
De fato, em um espaço bidimensional, conforme a Figura I-4, a separação de
todas as dicotomias possíveis, utilizando-se 1 reta como separador, somente é possível
para três pontos.
Figura I-4 – Possíveis dicotomias para três pontos em R2
15
1.3.1– Capacidade e poder de generalização: Considerando que as condições de necessidade e suficiência de consistência ou
generalização do princípio de risco empírico, dependem da capacidade do conjunto de
funções que implementam o modelo, a dimensão VC se apresenta como uma alternativa
para o estabelecimento de um limite superior para o erro de validação.
Desta forma, o novo princípio indutivo se baseia, como vimos, na maximização
do poder de generalização de uma máquina considerando a minimização do risco
empírico ou erro de treinamento e, também, de uma medida de confiança relacionada à
dimensão VC. Este princípio corresponde, portanto, a encontrar uma máquina com a
menor dimensão VC que satisfaça a um determinado erro de treinamento.
A capacidade de uma máquina está relacionada a sua consistência com o
conjunto de treinamento, ou seja, com o erro de aproximação, dependendo da
quantidade de parâmetros do modelo. Por outro lado, o seu poder de generalização
depende do nível de confiança, da dimensão VC e do tamanho do conjunto de
treinamento. Claramente, quando o tamanho do conjunto de treinamento tende para
infinito, o risco esperado se iguala ao risco empírico. Por outro lado, um maior nível de
confiança relacionado a hipótese, diminui o risco empírico mas aumenta o limite
superior do erro de generalização, representado, portanto, um aumento do risco
esperado, conforme a Figura I-5. Isto reflete, portanto, um compromisso entre a acurácia
de um modelo e o grau de confiança associado.
16
Figura I-5 – Relação entre complexidade, confidência e riscos
Em princípio, não existe uma relação direta entre a quantidade de parâmetros
livres de um modelo e sua dimensão VC. Temos modelos com dimensão VC infinita
que superam o número de parâmetros, modelos, como os classificadores lineares, onde
o número de parâmetros é igual a dimensão VC, e modelos onde o número de
parâmetros é superior a dimensão VC como a função descrita no Exemplo 1.3.
Exemplo 1.3: O conjunto de funções unidimensionais definidas por:
f(x,α) = sinal (∑ i |αi.xi|.sinal(x) + α0, para i = 1,...,n ,
onde x є R1 e α є Rn+1, possui dimensão VC igual a um, ou seja, somente um ponto em
um alinha, sendo este valor independente do número de parâmetros que é igual a n+1.
1.3.2 – Projeto de máquinas: A seguir, apresentamos duas abordagens para o projeto de uma máquina representada,
para alguns casos, por um modelo, um conjunto de hipóteses ou uma classe de funções.
A primeira consiste em projetar uma máquina de determinada capacidade e uma
dada topologia, possuíndo, portanto, uma dimensão VC que deve ser estimada. Em
seguida, realiza-se o treinamento da mesma com base no princípio do risco empírico ou
ERM, observando-se o dilema bias-variância, ou seja, para se diminuir o erro de
treinamento, aumentamos a capacidade do modelo, o que, diretamente, aumenta o
intervalo de confiança, ocasionando um maior erro de generalização. Este compromisso
pode ser mais bem orientado, se utilizarmos o princípio da razão de Occam, no sentido
de que a menor ou mais simples representação deva ser a melhor ou aquela escolhida.
Poderíamos, também, controlar diretamente o número de parâmetros do modelo,
através da escolha de uma medida de penalização, seguindo o critério de determinação
de uma hipótese de descrição mais curta, conhecido como critério MDL, derivado da
teoria de aprendizagem computacional de RISSANEN (1989). Uma segunda alternativa
seria a utilização do critério de informação, conhecido como critério AIC, proposto por
AKAIKE (1974), ou, finalmente, a utilização de um funcional de regularização, na
forma proposta por TIKHONOV e ARSENIN (1977).
17
Por fim, poderíamos adotar uma técnica heurística baseada no controle do
treinamento do algoritmo, durante a fase de minimização do erro de aproximação ou
treinamento. Esta tecnica é conhecida como cross-validation. Esta técnica pode ser
aplicada com eficiência em problemas cujo conjunto de treinamento possui um tamanho
razoável e a base de dados pode ser dividida em um subconjunto para treinamento e um
subconjunto para validação.
Neste sentido, vários projetos de máquina poderiam ser testados, até mesmo com
o uso de computação evolutiva, e aquele que apresentasse os menores erros de validação
e treinamento seria escolhido. É a abordagem predileta dos algoritmos de treinamento
baseados no uso de redes neurais artificiais, mais especificamente nas topologias de
redes alimentadas adiante, conhecidas como Perceptron de múltiplas camadas ou MLP.
A segunda consiste em seguir o princípio SRM, ou seja, escolher um conjunto de
máquinas cujo risco empírico ou erro de treinamento seja zero, selecionando,
posteriormente, aquela de menor complexidade ou dimensão VC. Neste sentido, é
suficiente projetarmos uma máquina de vetores suportes, ou simplesmente uma SVM,
onde os conceitos de classificador de larga margem e de separabilidade linear são de
fundamental importância.
No entanto, é importante ressaltar que, sob a ótica da dimensão VC, não existe
no princípio SRM nenhum compromisso em relação ao dilema bias-variância.
Simplesmente, a melhor estratégia consiste na utilização de uma máquina com
dimensão VC reduzida buscando a minimização do intervalo de confiança. Também,
existe uma distinção clara entre a dimensão VC e o controle do número de parâmetros
do modelo, o que não ocorre nos modelos baseados em penalidades.
A utilização de máquinas ou classificadores com dimensão VC reduzida, não é
uma condição necessária para obtermos uma boa capacidade de generalização. Existe
um grande número de algoritmos de aprendizagem, como exemplo, o método da k-
vizinhança, ou KNN, e as funções de base radiais que apresentam dimensão VC infinita
mas proporcionam um bom desempenho em problemas práticos. Portanto, a existência
de uma dimensão VC alta, não implica, necessariamente, em um desempenho ruim.
18
Neste sentido, torna-se possível a utilização de máquinas de maior ou menor
capacidade, em problemas com um pequeno conjunto de treinamento, obtendo um bom
poder de generalização. Isto, de uma forma ou outra, provoca uma mudança profunda
no projeto e na utilização de novos modelos de máquinas de aprendizagem.
19
Capítulo II – Discriminantes e Regressores Neste capítulo, vamos apresentar alguns modelos matemáticos desenvolvidos para a
solução do problema de reconhecimento de padrões chamados de discriminantes e
modelos de ajuste de dados chamados de regressores. Estes problemas, respectivamente,
podem ser descritos como um problema de classificação ou categorização dos dados, ou
como um problema de predição de valores, ambos sob a ótica do aprendizado
supervisionado. Portanto, é necessária para o desenvolvimento ou treinamento destes
modelos, a existência de um conjunto de treinamento baseado em um conjunto de
observações.
Inicialmente, trataremos dos classificadores Bayesianos, embasados na teoria de
decisão de Bayes e os vários critérios de minimização de riscos associados. É uma
classe de classificadores paramétricos que obtêm ótimos resultados, caso sejam
conhecidos às probabilidades a priori das hipóteses relacionadas, bem como as
probabilidades condicionais dos dados. Estes classificadores introduzem os conceitos de
função discriminante e superfície de decisão.
Dando continuidade, apresentaremos os regressores baseados no processo de
correção por erro. Trataremos dos modelos de regressão linear, na forma simples e
múltipla, desenvolvidos de forma adaptativa e semiparamétrica, a partir do método dos
mínimos quadrados, conhecido como LMS. Finalmente, abordaremos o uso de modelos
de regressão como classificadores.
2.1- Classificadores Bayesianos: A teoria de decisão de Bayes (Thomas Bayes, 1702-1761) se desenvolveu no contexto
da teoria da probabilidade, tendo uma forte relação com a razão de Occam, em favor do
uso da simplicidade como critério de escolha das hipóteses.
Willian of Occam foi um monge que viveu no século XVI (1285-1349) na
Inglaterra e estabeleceu um princípio em favor da simplicidade que tem uma forte
conexão com o raciocínio Bayesiano.
Originalmente, a razão de Occam foi escrita em latim como: “Pluralitas non est
ponenda sine necessitate”. Também, segundo NILSSON (1996), a citação foi
20
apresentada como: “Entia Non sunt multiplicanda praeter necessitatem”, que
traduzidas significam, basicamente, que em um processo de explanação ou justificativa
as entidades ou meios não devem ser multiplicados ou utilizados além da necessidade.
Em resumo, este princípio estabeleceu que a explicação dos fatos não deveria ser
mais complicada que o necessário. É um princípio aceito universalmente pela ciência.
Na prática, a razão de Occam é utilizada como uma heurística, ou seja, uma medida
efetiva que auxilia no entendimento e na solução de problemas.
2.1.1 – Regra de Bayes: O raciocínio Bayesiano depende, essencialmente, de um conhecimento antecipado das
hipóteses. Este conhecimento, na forma de probabilidades, é conhecido como a
probabilidade à priori das hipóteses, e tem uma importância fundamental na acurácia do
classificador. O emprego da razão de Occam no raciocínio Bayesiano se justifica na
escolha de hipóteses mais simples e menos complexas, contendo um menor número de
parâmetros.
Basicamente, a teoria de decisão de Bayes utiliza uma fórmula de inferência
conhecida como fórmula de Bayes, que induz uma probabilidade denominada
probabilidade a posteriori, relacionada à pertinência de um novo dado à determinada
hipótese, induzida a partir do conhecimento da probabilidade a priori da hipótese e da
probabilidade condicional do dado estar relacionado à hipótese, dado que a hipótese seja
verdadeira. Matematicamente, a fórmula é derivada da probabilidade condicional entre
dois eventos. Ou seja:
( ) ( )( )BP
BAPBAP ∧=| .
Reescrevendo a probabilidade da interseção como:
( ) ( ) ( )APABPBAP .|=∧ ,
e, substituindo o seu valor na fórmula da probabilidade condicional, temos:
( ) ( ) ( )( )
=
BPAPABPBAP .|| .
21
Em termos de um problema de classificação, podemos associar o evento B a um
dado ou amostra x e o evento A a uma hipótese Hi, que pode ser descrita como a
pertinência do dado x a uma classe Ci. Desta forma, a equação de Bayes fica definida
como:
P(Ci|x) = (P(x|Ci) . P(Ci)) / P(x)
A expressão P(Ci), como já dissemos, indica a probabilidade à priori da classe
Ci. A probabilidade P(x|Ci) indica a probabilidade condicional de classe, ou seja, a
probabilidade de que x pertença a classe Ci, dado a existência da classe. A probabilidade
P(x) indica a probabilidade do evento, podendo ser descartada do processo de
classificação, por ser um termo de normalização. Para tanto, definimos P(x) como:
( ) ( ) ( )∑=i
ii CPCxPxP .| , para as diferentes classes envolvidas no processo.
2.1.2 – Critério MAP: Para se classificar corretamente um dado a partir da regra de Bayes, tomamos o maior
valor da probabilidade a posteriori, ou seja, x Є Ci se e somente se:
( ) ( )xCPxCP ji || > para todo j ≠ i.
Este critério de escolha é denominado de critério MAP, significando a escolha
da máxima probabilidade a posteriori.
Geralmente, a probabilidade a priori é obtida a partir de um conhecimento
histórico da freqüência de cada classe. A probabilidade condicional pode ser obtida a
partir de estimativas de densidade do conjunto de treinamento ou associadas a uma
função de densidade de probabilidade conhecida. A função de densidade mais utiliza é
baseada na função de Gauss ou distribuição normal. Este modelo de classificação é um
modelo paramétrico, pelo fato de utilizar um conjunto de parâmetros associados ao
conjunto de treinamento. Como exemplo, podemos citar a distribuição de Gauss
univariável, que necessita da média e do desvio padrão dos dados.
A equação de Bayes aplicada a cada classe e normalizada pela probabilidade
P(x), define uma função de probabilidade conjunta que especifica no espaço dos dados,
22
também conhecido como espaço de entrada, uma região que caracteriza o nível de
participação de cada valor no conjunto de valores da respectiva classe.
O raciocínio Bayesiano apresenta um importante resultado relacionado à
minimização do erro esperado, também chamado de erro de Bayes. Seja um problema
contendo duas hipóteses 1H e 2H complementares. A probabilidade de erro pode ser
considerada como a área de interseção das funções de probabilidade condicional
multiplicadas pela probabilidade a priori das classes, dadas pela fórmula de Bayes:
( ) ( )11| HPHSP para a hipótese 1H e
( ) ( )22| HPHSP para a hipótese 2H ,
considerando que a probabilidade ( )SP atua como fator de normalização.
Graficamente, para um problema unidimensional, cujas probabilidades
condicionais são descritas pela distribuição de Gauss e considerando x como espaço de
entrada da amostra, 1H a hipótese do dado pertencer a 1C e 2H a hipótese do dado
pertencer à classe 2C , temos a seguinte representação, mostrada pela Figura II-1:
Figura II-1 – Probabilidade das classes
A probabilidade de erro é definida como a soma das probabilidades de todas as
classificações erradas, ou seja:
( ) ( ) ( )1221 || RxCPRxCPerroP ∈+∈= .
Aplicando a fórmula de Bayes podemos redefinir o erro como:
( ) ( ) ( ) ( ) ( )221112 || CPCRxPCPCRxPerroP ∈+∈= .
Finalmente, considerando a integração das áreas relacionadas às regiões R1 e
R2, temos:
23
( ) ( ) ( ) ( ) ( )∫ ∫+=2 1 2211 ||
R RdxCPCxPdxCPCxPerroP
Figura II-2 – Região de erro relacionada à superposição das curvas
Observando a Figura II-2, podemos reparar que, caso não haja superposição
entre as curvas, ocorre uma perfeita separação das classes relacionadas às hipóteses, não
havendo erro. Entretanto, caso haja interseção, FUKUNAGA (1990) mostrou que a
escolha do ponto de interseção entre as curvas para o posicionamento do discriminante,
é aquela que minimiza a probabilidade de erros futuros de classificação entre as duas
classes ou hipóteses. O parâmetro T é denominado limite de Bayes. Claramente, se o
limite T for reposicionado para a esquerda ou para a direita, aumentamos o erro de
classificação.
2.1.3 - Naive Bayes: Um dos classificadores Bayesianos de maior utilização em problemas de classificação é
denominado Naive Bayes Classifier, tendo a seu desempenho comparável, em algumas
aplicações, aos classificadores baseados em árvores decisórias e em redes neurais
artificiais. A sua utilização é direcionada a problemas de aprendizado envolvendo a
aprendizagem de conceitos, a exemplo das árvores decisórias, onde cada amostra do
conjunto de dados possui um conjunto de atributos, geralmente com valores discretos,
sendo um atributo denominado categórico relacionado ao processo de classificação.
Seja portanto, um mapeamento da forma f(x) → V , onde o conjunto V
representa um conjunto discreto de valores, e c(x) a função de aprendizagem que
aproxima a função de classificação f. Seja um conjunto de treinamento formado por um
24
conjunto de n+1 uplas, na forma (a1, a2, a3, ...,an,v), relacionado aos valores dos n
atributos da amostra x acrescido do valor do atributo categórico que define a
pertinência do dado a alguma classe, ou seja f(x) = v.
É possível a classificação de uma nova instância (a1,a2,...,an) atribuindo a
mesma o valor da classe relacionada ao critério MAP, ou seja:
c(x) = Arg Max v є V Prob {v | a1, a2, ..., an}
Utilizando a regra de Bayes, e eliminando o fator de normalização referente a
Prob{a1, a2, ..., an}, podemos reescrever a expressão na forma:
c(x) = Arg Max v є V Prob{a1, a2, …, an| v}.P{v}
Para determinar a probabilidade condicional da amostra em relação a uma classe
ou hipótese, o classificador se baseia na hipótese de que os valores dos atributos são
condicionalmente independentes em relação ao valor da classe v. Neste sentido a
probabilidade condicional se torna igual ao produtório das probabilidades individuais.
Portanto, podemos escrever:
Prob{a1, a2, …, an| v} = Πi P(ai|v),
Fornecendo a seguinte função de classificação:
c(x) = Arg Max v є V Prob{v}. Πi P(ai|v)
Para um conjunto de dados cujo domíninio dos atributos é formado por
conjuntos discretos de valores, podemos computar as probabilidades condicionais
P(ai|v), simplesmente, tomando-se a freqüência dos respectivos valores para cada classe
no conjunto total de treinamento. Entretanto, quando o domínio dos atributos é formado
por valores contínuos, o classificador naive Bayes oferece uma solução bastante
simples, tomando-se as probabilidades P(ai|v) como funções gaussianas de uma
variável, ou seja:
P(ai|v) = 1/ √2.πσ . exp(-1/2. (( x – μ )2 / σ2 )),
considerando μ = 1/m. ∑ i xi , o valor esperado do conjunto de valores associados ao
atributo ai e σ2 = 1/m. ∑ i (xi – μ)2, . a sua variância.
25
2.2 - Função discriminante e superfície de decisão Uma forma natural de classificarmos os dados é através da definição de uma função
discriminante para cada classe envolvida no problema. Consideramos, portanto, a
função discriminante de cada classe, como a equação que delimita a sua região de
classificação, definindo uma forma de score ou pontuação:
( ) ( ) ( ) ( )iiii CPCxPxCPxg .|| == ,
Aplicando o logaritmo na expressão, temos a equação da função discriminante
na sua forma mais conhecida:
( ) ( )( ) ( )( )iii CPCxPxg ln|ln += .
Para classificarmos um novo dado x, basta computarmos o valor de x para cada
função discriminante, e escolhermos a classe de pertinência que fornecer o maior valor.
Na Figura II-2, o valor T, chamado de limite de Bayes, está associado ao ponto de
interseção das equações, consistindo, portanto, de uma superfície de decisão. Neste
caso, assume o papel de um ponto delimitador para um problema de classificação
envolvendo as classes C1 e C2. De uma forma mais geral, as superfícies de decisão
formadas pela interseção de discriminantes, definem hiperplanos de dimensão D
equivalente a dimensão do espaço de entrada.
A classificação Bayesiana é importante, pois, segundo FUKUNAGA (1990), e
como pode ser visto anteriormente, a escolha do limite de Bayes como ponto
delimitador minimiza o erro esperado de classificação, também conhecido como erro de
Bayes. Este erro está associado ao funcional de risco. Entretanto, como já percebemos, a
utilização da classificação Bayesiana nem sempre é possível, dado que a probabilidade a
priori das classes, em muitos problemas, é de difícil determinação ou nem mesmo é
conhecida.
A superfície de decisão em problemas multidimensionais consiste de uma região
de fronteira que separa ou delimita as diferentes classes ou categorias. O objetivo
principal no estudo de reconhecimento de padrões é definir com exatidão a posição e o
formato da superfície de decisão de forma que o erro esperado ou o erro de Bayes seja
minimizado. É fácil percebermos no exemplo apresentado que o deslocamento do ponto
26
de decisão para a direita ou esquerda do ponto de interseção das curvas aumenta o erro
de classificação, não sendo, portanto, uma boa opção.
A Figura II-3 define, de forma clara, a construção de uma superfície de decisão
em R2 para um problema de classificação em um espaço bidimensional de entrada,
envolvendo duas classes:
Figura II-3 – Superfície de decisão em R2
Neste caso, a função de classificação pode ser implementada como uma função
sinal da equação da superfície de decisão, ou seja, considerando a superfície de decisão
como a interseção das funções discriminantes das duas classes, o que implica em fazer:
( ) ( )21 || CxgCxg = .
Assim, a função de decisão do classificador, que neste caso se assemelha a
função de classificação, é definida como:
( ) ( ) ( )( )21 || CxgCxgxf −= ϕ ,
27
onde ϕ é uma função sinal.
Claramente, se f(x) = 1 o dado x pertence à classe C1, ou seja c(x) = 1.
O uso destas funções permite o desenvolvimento de uma classe mais geral de
classificadores lineares, representados pela Figura II-4. Para um problema de
multiclassificação, onde a função discriminante de cada classe é uma função linear ou
hiperplano na forma:
Neste caso, podemos definir, seguindo o critério MAP, a função de decisão do
classificador como:
f(x) = Max i gi (x),
sendo o dado xk atribuído a classe Cl se l = Arg Max i gi (x), ou seja c(x) = l.
Figura II-4 – Classificador linear para múltiplas classes
A construção de classificadores mais potentes, relacionados à solução de
problemas de separabilidade não linear, exige o emprego de funções kernel que,
basicamente, realizam uma projeção dos dados do espaço de entrada para um espaço de
maior dimensão definido como espaço de características.
28
2.3 – Critério ML ou critério de Fisher: Em 1936, R.A. Fisher sugeriu o primeiro algoritmo paramétrico de reconhecimento de
padrões. Para um problema de classificação binária, onde a probabilidade condicional
dos dados pertencerem às classes era descrita por uma distribuição normal representada
pela função de Gauss multivariável, com centros em m1 e m2 e matrizes de covariância
∑1 e ∑2 , Fisher mostrou que a solução era uma superfície de decisão quadrática na
forma:
f(x) = ϕ( 1/2.(x-m1)T.∑1-1.(x-m1) - 1/2.(x-m2)T.∑2
-1.(x-m2) + ln |∑2| / |∑1| )
De fato, se definirmos a função de Gauss, multivariável, para cada classe Ci,
como:
pi(x) = 1/ ((2.π)D/2 | ∑i |1/2).exp( - ( (x – mi). ∑i-1.(x – mi)T)/2 ),
considerando o valor esperado ou centro mi e a matriz de covariância ∑i das respectivas
classes C1 e C2, e tomarmos o logaritmo da probabilidade condicional desconsiderando
a probabilidade a priori das classes, o discriminante de cada classe fica definido por:
gi(x) = g(x|Ci) = -1/2.(x – mi). ∑-1.(x – mi)T) – D/2.log(2.π) – 1/2.ln| ∑i |
fornecendo como função de decisão:
( ) ( ) ( )( )21 || CxgCxgxf −= ϕ ,
onde ϕ é uma função sinal.
Equivalente, portanto, a função de decisão sugerida por Fisher. A expressão ML
deriva, portanto, da maximização da probabilidade condicional, denominada de
likelihood.
O termo (x-mi)T.∑i-1.(x-mi) é considerada como a distância normalizada entre os
respectivos centros e suas classes, sendo, também, chamada de distância
mahalanobiana. Observe que, para os casos onde a matriz de covariância é igual a uma
matriz identidade ou igual a matriz diagonal na forma σ2.I, a distância mahalanobiana se
iguala a distância euclidiana, dada pelo produto interno dos vetores: (x-mi)T.(x-mi).
29
A matriz de covariância ∑i de uma classe, é uma matriz quadrada e simétrica, definida na forma:
∑i = E [(x – mi).(x-mi)T] = E [x.xT] – mi.miT,
sendo E [x.xT] = R, a matriz de auto-correlação das variáveis ou componentes
das amostras.
FUKUNAGA (1990), descreve dois casos de interesse, que tornam o critério ML
um discriminante linear:
O primeiro, relacionado ao fato das matrizes de covariância serem iguais e
reduzidas a matrizes diagonais, portanto, ∑ = ( σ2.I). Neste caso, o classificador se
limita a classificar um vetor x, com base na menor distância de um ponto aos
respectivos centros. A distribuição dos dados para cada classe define agrupamentos
circulares de mesmo tamanho. As funções discriminantes para cada classe tomam a
forma de funções lineares, ou hiperplanos, do tipo:
gi(x) = wiT.x + bi, onde wi = (1/ σ2).mi e bi = -(1/2. σ2)mi
T.mi
Definindo, portanto, uma superfície de decisão linear, correspondente a um
hiperplano perpendicular a direção da reta que une os centros das duas classes, cuja
equação é dada por:
f(x) = ϕ ( g2(x) – g1(x)) =ϕ( wT. (x – x0)),
onde w = m2 – m1 e x0 = 1/2.(m1+m2) + k.ln(P(C2)/P(C1)).
A constante k está relacionada a probabilidade a priori das classes. Caso estas
probabilidades sejam iguais ou desconsideradas como no critério ML, o valor do termo
associado se reduz a zero. Neste caso, x0 = 1/2.(m1+m2), e o hiperplano passa
exatamente no ponto médio dos centros m1 e m2, conforme a Figura II-5. Caso
contrário, o hiperplano será puxado em direção ao centro relacionado a menor
probabilidade a priori, aumentando a probabilidade de classificação na classe contrária.
30
Figura II-5 – Superfície de decisão para ∑ = ( σ2.I)
O segundo, relacionado ao fato das matrizes de covariância serem iguais, ou
seja: ∑1 = ∑2 = ∑. Neste caso, a função de classificação quadrática se reduz a uma
função de decisão, na forma:
f(x) = ϕ ( g2(x) – g1(x)), ou
f(x) = ϕ ( 1/2.(x-m1)T.∑-1.(x-m1) - 1/2.(x-m2)T.∑-1.(x-m2)).
A superfície de decisão continua sendo linear, derivada do fato de que:
(x-mi)T.∑-1.(x-mi) = xT.∑-1.x - xT.∑-1.mi - miT
.∑-1.x + miT
.∑-1.mi
provocando, portanto, a anulação do termo quadrático xT.∑-1.x na função relacionada a
diferença das funções discriminantes.
Entretanto, a superfície não é mais perpendicular à direção da reta que une os
dois centros. A distribuição dos dados para cada classe assume a forma geral de um
elipsóide, conforme a Figura II-6, com formatos e tamanhos semelhantes. As funções
discriminantes, neste caso, são descritas pelas seguintes funções lineares:
gi(x) = wiT.x + bi, onde wi =∑-1.mi e bi = -(1/2.mi
T .∑-1.mi).
31
Figura II-6 – Superfície de decisão para ∑1 = ∑2
Para o caso mais geral, ver Figura II-7, onde as matrizes de covariância são
diferentes e não diagonais, as superfícies de decisão são quadráticas, podendo tomar as
formas circulares, elípticas ou parabólicas, dependendo do formato e da posição de cada
cluster de dados determinados, respectivamente, pelo centro e pela matriz de
covariância associada.
Figura II-7 – Superfície de decisão para ∑1 ≠ ∑2
32
Apesar da maior precisão ou acurácia dos classificadores quadráticos, tem-se um
problema relacionado ao seu alto custo computacional. Este custo se refere ao fato
destes classificadores possuírem um número de parâmetros livres que crescem
quadraticamente com a dimensão do espaço de entrada. Ao contrário, as funções de
classificação lineares necessitam determinar, somente, um número linear de parâmetros.
Também, o uso de discriminantes quadráticos, requer mais exemplos de
treinamento para uma estimativa precisa de seus parâmetros. FISHER (1936),
demonstrou que os discriminantes quadráticos requerem uma quantidade de dados da
ordem mínima de 10.n2, sendo n a dimensão do espaço de entrada. Para contornar este
problema, Fisher sugeriu que, no caso mais geral, as matrizes de covariância sejam
aproximadas para a forma:
∑1 = ∑ 2 = ∑ = γ.∑1 - (1- γ ).∑ 2 ,
para uma constante γ, 0< γ < 1, tornando o discriminante linear.
2.4 - Minimização do risco de decisão Podem ser utilizados diferentes critérios para o projeto de classificadores. Esses
critérios, de uma forma ou de outra, são baseados em medidas de probabilidade. Dentre
os critérios mais importantes, podemos descrever:
1 - O critério denominado MAP, visto anteriormente, conhecido também
como critério de decisão de Bayes, que minimiza o erro esperado de
classificação, tomando o argumento relacionado ao valor máximo das
probabilidades a posteriori.
2 - O critério denominado ML, também visto anteriormente, que considera
somente as probabilidades condicionais, chamadas de likelihood, para a
determinação da função de decisão. É equivalente ao critério de Bayes,
caso as probabilidades à priori sejam iguais.
3 - O critério de Neyman-Pearson ou simplemente N-P, que é um critério
idêntico na forma ao critério ML. A diferença básica é que este critério
compara a taxa das probabilidades condicionais em relação a um
determinado parâmetro. Se este parâmetro for igual a um, o critério de
Neyman-Pearson se equipara ao critério ML.
33
4 - O critério Min-Max, relacionado à teoria dos jogos.
5 - O critério relacionado somente as probabilidades a priori.
6 - O critério relacionado a estimativa da máxima entropia.
7 - O critério relacionado à minimização do risco de Bayes, que representa
uma generalização do critério de Bayes, para um novo conjunto de
funções perda. Caso a função de perda seja uma função do tipo 0-1, esse
critério se reduz ao critério de Bayes.
Considerando que o critério Min-Max, apesar de ser um critério de decisão, não
se aplica a problemas de classificação ou reconhecimento de padrões, que o critério
relacionado a máxima entropia se aplica, principalmente, aos classificadores simbólicos
como as árvores decisórias, e que os demais critérios são variantes ou simplificações do
critério de Bayes, apresentaremos, a seguir, o critério relacionado à minimização de
risco de Bayes.
Em alguns problemas de classificação, é importante minimizar a probabilidade
de classificação errônea dos dados, segundo determinados critérios. Em um problema de
diagnóstico médico, por exemplo, a ocorrência de resultados falso-negativos é muito
mais séria do que a presença de resultados falso-positivos. Sendo assim, é possível
associar ao erro de classificação das hipóteses uma matriz de perda, definida por
elementos Lkj, atribuindo penalidades distintas à classificação de um dado a classe Cj
quando de fato o mesmo deveria pertencer à classe Ck.
Desta forma, considerando como função discriminante a probabilidade a
posteriori de cada classe, o risco ou perda esperada de um dado pertencente a classe Ck,
ser classificado erroneamente, para um total de c classes, é dado por:
( ) ( )∑ ∫=
=c
j Rkkj
j
dxCxPLkR1
|
Portanto, a perda total esperada ou simplesmente o risco, para todo processo de
classificação, será dado por:
( ) ( ) ( )∑ ∫∑∑= ==
==c
j R
c
kkkkj
c
kkk
j
dxCPCxPLCPRR1 11
|.
34
Assim, a melhor decisão deve ser aquela que minimiza o funcional de risco para
uma determinada matriz de perda escolhida, nos casos em que a probabilidade de
distribuição dos dados seja conhecida. Portanto, atribuímos x a classe Ck se:
Para um problema envolvendo somente duas classes, podemos definir o risco
das mesmas como:
R1 = L11.P(x|C1).P(C1) + L21.P(x|C2).P(C2)
R2 = L12.P(x|C1).P(C1) + L22.P(x|C2).P(C2)
Neste caso, atribuímos a x a classe C1 se R1 < R2, ou seja, se:
P(x|C1)/P(x|C2) > P(C2).(L21 – L22) / P(C1).(L12 – L11)
Se considerarmos P(C1) = P(C2) e L11 = L22 = 0, atribuímos a x a classe C1 se:
P(x|C1) > P(x|C2).(L21/L12).
2.5 - Treinamento por correção do erro
2.5.1 – Regressor linear:
Nesta seção, mostraremos um novo paradigma de aprendizado supervisionado que tem
como base o processo de correção por erro. Esta forma de treinamento esta relacionada
ao princípio de minimização do risco empírico, tomando como função de perda o
quadrado da diferença entre o valor computado f(x) e o valor desejável y para um
conjunto finito de treinamento formado por pares (xi, yi), para i=1,...,m.
Na forma mais simples, o modelo consiste de um regressor linear que procura
aproximar ou ajustar o conjunto de pontos pela equação de uma reta, considerando as
informações fornecidas pelo conjunto de treinamento. Os principais elementos deste
modelo, mostrados na Figura II-8, são definidos a seguir:
35
1 - A equação da reta na forma <w, x> + b definindo dois parâmetros
formados pelo coeficiente w e o escalar b, também chamado de bias da
equação.
2 - O conjunto de valores estimados correspondentes ao mapeamento da
função na forma: z = <w, x> + b.
3 - O erro individual de cada mapeamento dado pela diferença entre valor
estimado e o valor desejado na forma: εi = yi - zi, onde zi = <w,xi> + b.
Figura II-8 – Modelo de regressão linear
Em função destes elementos, podemos definir o erro quadratico médio, como a
função quadrática:
∑=
=m
iim
J1
2
21
ε
Solução analítica:
A solução do problema de regressão consiste em encontrar o mínimo da função J
em função dos parâmetros da equação de regressão. Existe uma solução analítica do
problema, amplamente conhecida no meio estatístico, proposta por Karl Friedrich Gauss
(1777-1855), que consiste em computar as derivadas parciais da função J em relação aos
parâmetros da equação de regressão e igualar a zero. Esta solução está relacionada,
obviamente, a satisfação das condições de primeira ordem para a determinação do ponto
de mínimo de uma função. Ou seja, fazemos:
36
∂J/∂w = 1/m. ∑i [yi – w.xi –b. xi] = 0
∂J/∂b = -1/m. ∑i [yi – w.xi –b) = 0
A solução deste sistema de equações lineares fornece:
w = ∑i (xi – xm).(yi – ym) / ∑i (xi – xm)2
b = (∑i xi2. ∑i yi - ∑i xi. ∑i yi.xi) / m.(∑i (xi – xm)2),
onde xm e ym são, respectivamente, as médias do conjunto de dados, definidas como:
xm = 1/m. ∑i xi e ym = 1/m. ∑i yi,
estando associadas ao primeiro momento das funções de densidade de probabilidade
(fdp).
Para determinarmos o grau de eficiência da regressão, computamos o coeficiente
de correlação r, definido como uma relação entre a covariância das duas variáveis e o
produto dos respectivos desvios padrões, ou seja:
r = E[(xi ), (yi)] / σx. σy,
onde:
E[(xi),(yi)] = 1/m . ∑i (xi – xm).(yi – ym)T e
( )∑ −=i
mx xxim
21σ
( )∑ −=i
my yyim
21σ
Os valores do coeficiente r variam de -1 a 1. Quando r está próximo de 1 indica
que os dados estão bem correlacionados, próximo de 0, indica que não há correlação e
próximo de -1 indica que existe uma correlação negativa, ou seja, na forma inversa. O
desvio padrão é a raiz quadrada da variância. A variância, identificada por σ2,
representa uma medida de dispersão dos dados em torno da média, estando associada ao
segundo momento da função de densidade de probabilidade.
37
Solução iterativa:
Neste trabalho, estamos interessados em soluções adaptativas, ou seja, soluções
que possam ser computadas de modo iterativo, convergindo para o ponto de ótimo do
problema.
A solução do problema de regressão linear pode ser obtida iterativamente através
da utilização do método de gradiente. A função de erro J, também chamada de
superfície de erro, tem a forma quadrática. A solução do problema consiste em
determinar o ponto de mínimo w* em J, assumindo por conveniência que o bias do
modelo é igual a zero, correspondente ao menor valor do erro, conforme a Figura II-9:
Figura II-9 – Superfície de erro da regressão simples
Para tanto, podemos utilizar um método de descida. Este processo consiste,
basicamente, em atualizar a cada iteração os parâmetros da função em relação à direção
contrária a direção do gradiente, que aponta para a máxima troca, ou seja:
( ) ( ) ( )kJkwkw ∇−=+ η1 ,
onde η é uma pequena constante relacionado ao passo de atualização, sendo o gradiente
da função computado momentaneamente para cada valor de w. Este processo pode ser
melhor visualizado pela Figura II-10.
38
Figura II-10 – Método de descida ou gradiente
É importante mostrarmos que o algoritmo apresenta uma taxa de convergência
geométrica em relação a um parâmetro de adaptação que é inversamente proporcional a
taxa de aprendizagem η. Neste sentido, devemos saber qual o maior valor possível da
taxa de aprendizagem η, no sentido de garantirmos uma convergência rápida e estável.
Para mostrarmos esta convergência é necessário, primeiramente, reescrever a
equação de atualização dos pesos na forma:
w(k + 1) = (1- η.λ).w(k) + η.λ.w* ,
onde λ = 1/m. ∑xi2 e w* é a solução ótima que minimiza a função quadrática de erro.
Prova: Para obtermos a nova expressão de atualização dos pesos devemos mostrar que
a função quadrática de erro pode ser reescrita na forma:
J = Jmin + ½.m .(w – w*). ∑xi2 .(w – w*)
Seja w* obtido da equação original de erro fazendo ∂J/ ∂w = 0, o que implica:
w* = ∑xi.yi/ ∑xi2.
Substituindo este valor na equação de erro, temos:
39
Jmin = 1/(2m).[∑i yi2 - (∑i xi.yi)2/ ∑i xi2 ].
Considerando a função original de erro na forma:
J = 1/(2m). ∑i [xi2.w2 – 2.yi.xi.w + yi2],
podemos reescrever a mesma na forma desejada:
Jmin + ½.m .(w – w*). ∑xi2 .(w – w*),
introduzindo na expressão os valores de Jmin e w*.
Considerando a introdução do parâmetro λ = 1/m. ∑xi2 na nova equação obtida
para a superfície de erro, temos:
J = Jmin + λ / 2.(w – w*)2.
Finalmente, computando o gradiente de J em relação a w, obtem-se:
( )*. wwj −=∇ λ ,
cujo valor, substituído na equação original de atualização, fornece:
w(k + 1) = (1- η.λ).w(k) + η.λ.w*.
Aplicando o processo de indução nesta equação, até obtermos o valor de w(0), e
realizando algumas operações de eliminação dos termos comuns, obtemos:
w(k) = w* + (1- η.λ)k.(w(0) – w*)
Na solução, temos w(k) = w*. Desta forma, a segunda parte da expressão deve
tender a zero em função do número de iterações k. Portanto, o valor de (1- η.λ)k deve
ser menor que 1. Para tanto, devemos ter |1- η.λ| < 1, fornecendo:
η < ηmax = 2/ λ
Desta análise da convergência, podemos deduzir alguns resultados importantes:
1 - O processo de convergência é geométrico em relação a uma razão ρ=|1-
η.λ|;
40
2 - Na atualização por lote ou batch, podemos utilizar uma taxa normalizada
igual a ηmax/2.m;
3 - Na atualização online é comum utilizarmos uma taxa equivalente a 10%
de ηmax;
4 - É possível definirmos uma constante de adaptação que prevê o número
de iterações ou épocas que o algoritmo vai realizar até ocorrer a
convergência. Este valor é dado pela expressão: Г= 1/ η.λ.
Obviamente, uma adaptação rápida requer uma taxa alta de aprendizagem, sendo
que, em condições ideais, para η = ηmax, o método converge em quatro iterações.
2.5.2 - Regressor com múltiplas variáveis: Nesta forma de aprendizado, assumimos a existência de múltiplas variáveis ou
componentes para cada amostra do conjunto de treinamento. Estas variáveis são
chamadas de variáveis independentes, e o objetivo consiste em determinar o melhor
regressor linear que associa estes valores a uma saída representada por um conjunto de
valores a serem mapeados.
A equação do regressor tem a forma:
z = w1x1 + w2x2 + ... + wDxD + b
= < w, x > + b,
considerando a existência de D variáveis independentes, determinando a dimensão do
espaço de entrada, do vetor de pesos w e do parâmetro b, relacionado ao bias da
equação.
A cada variável ou componente xi, de uma amostra (x,y), está associado um
coeficiente ou peso wi, sendo o vetor w também chamado de vetor de coeficientes. Para
cada amostra xi do conjunto de treinamento, o regressor computa uma saída zi, que deve
ser comparada ao valor desejável yi, fornecendo um valor de erro єi, ou seja:
εi = yi-zi, onde zi = <w,xi> + b,
conforme o esquema apresentado na Figura II-11.
41
Figura II-11 – Regressão linear com múltiplas variáveis
Desta forma, podemos definir a função de erro, dada pela média da soma dos
erros quadrados, como:
J = 1 / (2m) . ∑(εi)2 , i = 1,...,m
= 1/ (2m) . ∑i ( yi - < w, xi> + b )2 , i = 1,...,m
= 1/ (2m) . ∑i ( yi - ∑k wk.xik, k=0,...,D)2 , i = 1,...,m
Podemos observar, pela Figura II-12, que em R2, ou seja, considerando a
existência de duas componentes no vetor w, a superfície de erro depende dos
coeficientes w1 e w2.
42
Figura II-12 – Superfície de erro da regressão múltipla
Solução analítica: A solução deste problema, ou seja, a obtenção do mínimo da função ou da
superfície de erro, pode ser obtida exatamente como no caso de regressão simples,
tomando as derivadas parciais de J em relação ao vetor w e bias b, representado pela
componente w0, e igualando as expressões a zero. Isto implica na solução de um sistema
formado por D+1 equações, contendo D+1 variáveis não conhecidas, expresso na forma:
∂ J/∂wj = -1/m. ∑i xij .( yi - ∑k wkxik, para k = 0,...,D ) = 0, para j = 0,...,D
A solução deste sistema recai na solução do sistema de equações matriciais na
forma:
∑i xij.yi = (∑k wk∑i xik.xij, para k=0,...,D), para j = 0,...,D
Este sistema pode ser representado mais facilmente utilizando-se uma notação
matricial que emprega uma matriz R denominada matriz de autocorrelação dos vetores
de entrada. Esta matriz é definida na forma R = [Rk,j], onde cada elemento
Rk,j=1/m.(∑ixik.xij, para i = 1,...,m), representa a auto-correlação das variáveis ou
componentes de índices k e j, considerando todo conjunto de treinamento.
43
Seja, também, o vetor P = [Pj] relativo à correlação cruzada de uma variável ou
componente de índice j em relação ao vetor de valores desejados y. Portanto:
Pj = 1/m. (∑xij.yi , para i = 1,...,m).
Substituindo no sistema de equações, temos:
P = R.w* , o que implica: w* = R-1.P.
A solução analítica do problema de regressão de múltiplas variáveis envolve,
portanto, a determinação da matriz inversa da matriz R de autocorrelação, e a realização
de um produto matricial, envolvendo uma matriz e um vetor.
A solução deste problema poderia, também, ser obtida diretamente da função de
erro, representada na forma matricial, ou seja, tomando:
J(w) = [0.5.wT.R.w – PT.w + 1/(2m). (∑i yi2, para i=1,...,m) ],
e, fazendo ∂J/∂w = 0 , temos:
0.5.R.w + 0.5.wTR – P = 0,
o que implica em:
2.R.w – 2.P = 0, ou w* = R-1.P
Se substituirmos o valor de w*, na equação da superfície de erro, obtemos:
Jmin = ½ .[1/m. (∑i yi2, para i=1,...,m) – PTw*]
Desta forma, a equação de erro pode ser reescrita como:
J = Jmin + ½.(w – w*)T.R.(w-w*)
Neste caso, podemos observar que a matriz de correlação define o formato da
superfície de erro, entretanto, a determinação de seu ponto de mínimo depende do
conjunto de valores desejados.
44
Solução iterativa: Para determinamos o mínimo da superfície de erro, podemos, a exemplo da
regressão linear simples, utilizar uma técnica iterativa baseada, também, no computo da
direção do gradiente, ou seja:
Definindo T
DwJ
wJ
wJJ
∂∂
∂∂
∂∂
=∇ ,,,10
K , podemos atualizar o vetor w, segundo a
expressão:
( ) ( ) ( )kJkwkw ∇−=+ η1
Neste caso, o tamanho máximo do passo, representado pela constante η, que
garante a convergência do método, é fornecido considerando a análise da expressão:
w(k+1) = (I - η.R).w(k) + η.R.w*
A convergência não será mais geométrica, como na regressão simples, e
dependerá da matriz de autovalores Λ relacionada ao computo dos autovalores da matriz
de auto-correlação R. A condição de convergência requer, segundo WIDROW e
STEARNS (1985), que: lim ( I - η Λ)k = 0 p/ k → ∞.
A matriz de autovalores Λ tem a forma de uma matriz diagonal, onde cada
elemento autovalor λi é computado segundo a solução do sistema: det( R – λ.I) = 0.
De forma resumida, podemos dizer que a convergência é garantida, se, para cada
direção principal da superfície de erro, tivermos: 0 < η < 2/ λi. Portanto, um limite para
o valor da taxa, pode ser obtido considerando: η < 2/ λmax.
Neste sentido, podemos fazer as seguintes observações relacionadas ao processo
de convergência, conforme a Figura II-13.
45
Figura II-13 – Direções do gradiente e autovalores
1 - Quando os autovalores da matriz R são semelhantes, as curvas de
contorno da superfície são circulares e a negativa da direção do gradiente
aponta em relação ao ponto de mínimo. Neste caso, a convergência se
comporta como no caso unidimensional.
46
2 - Quando os autovalores são diferentes, ocorre uma forma de spread, e as
curvas de contorno tomam a forma de elipses. Neste caso, a direção
oposta ao gradiente não aponta necessariamente para o ponto de mínimo,
significando que a trajetória de modificação dos pesos não será retilínea.
Se tomarmos um valor de η incompatível, o processo pode divergir em
uma ou mais direções. Portanto, o passo ou a taxa de aprendizagem do
método, fica limitado inversamente pelo valor do maior autovalor.
3 - A convergência segue, inicialmente, a direção do maior autovalor,
implicando em maiores correções do vetor de pesos, associadas a
menores passos. No fim do processo, a atualização do vetor de pesos está
associada ao valor do menor autovalor, o qual possui uma pequena taxa
de adaptação e fornece maiores passos. Neste sentido, podemos dizer que
a velocidade de adaptação é controlada pelo menor autovalor. De fato,
podemos considerar Г= 1/ η.λmin .
2.5.3 - Método de Newton: O método de Newton propõe uma solução iterativa do problema de minimização de
uma função utilizando-se, também, das informações de segunda ordem relacionadas a
matriz hessiana H, ou matriz de derivadas parciais de segunda ordem da função.
Seja uma aproximação quadrática f, ou a expansão da função f, contínua e
diferenciável, em uma série de Taylor:
( ) ( ) ( )( ) ( ) ( )( )kkkT
kkkkkkk xxxHxxxxxfxfxf −−+−∇+= ++++ 1111 .21
Se H(xk) ≠0, então xk+1 é um ponto estacionário de f, ou seja ( ) 01 =∇ +kxf ,
fornecendo:
( ) ( ) ( ) 0. 1 =−+∇ + kkkk xxxHxf
ou, equivalentemente:
( ) ( )kkkk xfxHxx ∇−= −+
11
47
Considerando, xk+1 = xk + p, onde p se refere ao passo em relação ao ponto de
mínimo, podemos reescrever o modelo quadrático da função na forma:
( ) ( ) ( ) ( )pxHppxfxfpxf kT
kkk .21
+∇+=+
Caso pk seja o mínimo da função quadrática: ( ) ( ) ( )pxHppxfp kT
k .21
+∇=Φ ,
temos que:
( ) ( )kkk xfpxH −∇=. , ou ( ) ( )kkk xfxHp ∇−= −1.
Considerando a função a ser aproximada a função de erro J, temos:
J = 1/(2m).∑i ( yi - ∑k wk.xik, k=0,...,D)2 , i = 1,...,m ,
consequentemente:
∂J/∂wj = -1/m. (∑i ( xij.(yi - ∑k wk.xik, k=0,...,D))) , i = 1,...,m , j = 1,...,D
= ∑k wk.Rk,j - Pj, k,j = 0,...,D
∂(∂J/∂wj)/∂wi = Ri,j, para i,j = 1,...,D
Portanto, a matriz hessiana H, na solução do problema de regressão de múltiplas
variáveis pelo método de Newton, se equivale a matriz R de autocorrelação. Neste
sentido, a equação de atualização dos pesos toma a forma:
( ) ( ) ( )( )kR
kJkwkw ∇−=+1
A principal diferença entre o método de Newton e o método do gradiente, se
refere ao fato de que, no método de Newton, a direção de descida sempre aponta para o
mínimo da função, enquanto que, no método do gradiente, a direção de descida aponta
na direção da máxima troca, conforme mostra a Figura II-14. Portanto, ao
multiplicarmos o vetor gradiente pela inversa da matriz de autocorrelação, estamos
ajustando ou normalizando a direção, no sentido do ponto de mínimo da função.
48
Figura II-14 – Direção de Newton x direção do gradiente
Quando os autovalores da matriz R são iguais, a direção de Newton coincide
com a direção do gradiente. Entretanto, caso o spread ocorra, o método de Newton se
torna uma alternativa mais eficiente ao método do gradiente.
Outra vantagem deste método está na velocidade de convergência relacionada a
um tempo de adaptação constante, derivado da equalização dos autovalores em
decorrência da normalização do gradiente. Neste caso, os pesos, ou componentes do
vetor, convergem na mesma taxa em cada direção, independentemente dos valores dos
autovalores.
Esta vantagem está, evidentemente, no uso de informações adicionais, ou das
informações de segunda ordem da função. Entretanto, a sua implementação requer um
custo computacional maior, relacionado ao cálculo da matriz de autocorrelação e a sua
inversa. Neste caso, podemos ter uma solução analítica que computa a inversa da matriz
de autocorrelação a priori, ou uma solução adaptativa que estima o seu valor por
sucessivas aproximações com base em uma implementação iterativa.
Ambas alternativas apresentam seus problemas, a solução analítica pode esbarrar
no mau condicionamento da matriz R, enquanto que, a solução adaptativa, na baixa taxa
de convergência do método decorrente de um alto spread dos dados .
49
A seguir, veremos como o gradiente da função de erro pode ser computado de
forma eficiente, em função dos valores presentes no conjunto de treinamento, em uma
forma online, proporcionando uma nova forma de solução para o problema de
regressão, conhecida como método dos mínimos quadrados, ou algoritmo LMS.
2.5.4 - Algoritmo LMS, regra delta e ADALINE: No início dos anos 60, Bernard Widrow construiu um algoritmo extremamente elegante
para uma estimativa paramétrica do gradiente da função em soluções adaptativas. Ele
propôs que, ao invés de estimar o gradiente de todos os valores da função envolvido em
um somatório, era suficiente utilizar somente os valores instantâneos, de forma iterativa,
como uma estimativa da verdadeira quantidade. Convêm ressaltar que Bernard Widrow
foi o primeiro pesquisador a utilizar sistemas adaptativos em aplicações de engenharia.
Utilizando a idéia na função de erro J, e tomando a derivada parcial da mesma
em relação ao parâmetro w, temos:
A vantagem neste caso, é que o gradiente da função pode ser estimado a cada
iteração, realizando-se somente uma multiplicação. Esta forma de estimativa do
gradiente, aplicada ao problema de regressão linear, gerou o famoso algoritmo
denominado LMS ou método dos mínimos quadrados, bem como, o modelo de rede
neural conhecido como Adaline (WIDROW e HOFF (1960)).
Substituindo o valor do gradiente na equação de atualização do parâmetro w,
tem-se a seguinte regra de treinamento:
Esta regra, no contexto de um neurônio linear adaptativo ou Adaline com um
vetor de múltiplos parâmetros de entrada, equivalente a um problema de regressão de
múltiplas variáveis, é chamada de regra delta. A mesma pode ser obtida de uma forma
adaptativa, empregando-se a regra da cadeia a topologia de uma rede neural definida
somente por um elemento processador.
50
Este elemento foi introduzido pela primeira vez por Warren McCulloch e Walter
Pitts (1943) e consiste basicamente na aplicação de uma função de saída degrau, não
linear, chamada função de ativação, ao valor produzido pelo elemento Adaline. Desta
forma, o resultado de saída do modelo de McCulloch e Pitts, pode ser computado como:
Sendo a variável net uma abstração do potencial de ativação do neurônio
produzido pela combinação linear dos sinais de entrada equivalente ao produto interno
<w, x> em comparação a um valor de limiar representado pelo bias b. Esta analogia,
pode ser mais bem representada na Figura II-15.
Figura II-15 – Neurônio matemático e neurônio biológico
Como dissemos, a regra de aprendizado relacionado ao algoritmo LMS, pode ser
derivada utilizando-se a regra da cadeia na estrutura de um elemento linear adaptativo.
Observe que agora, a função de ativação ou função de saída não é definida a priori,
como no elemento de McCulloch e Pitts. A derivação da regra delta pela regra da cadeia
é um exemplo claro do emprego do paradigma de correção por erro na solução
adaptativa de sistemas lineares.
51
Primeiramente, tomamos a função J, modificada agora, de modo a representar o
erro quadrático total.
( ) ∑∑==
+=−==D
iiipppp
m
pp bxwzzyJ
11
2 . e onde 21
εε
Aplicando a regra da cadeia, conforme a Figura II-16, temos:
( ) pippippi
p
pi
p xxzywz
zJ
wJ
ε−=−−=∂
∂
∂∂
=∂
∂.
Caso a função de ativação f seja considerada, temos um novo desdobramento da
regra da cadeira, fornecendo:
( ) ii
p
i
p xnetfwnet
netz
wz
.. ′=∂∂
∂
∂=
∂
∂
Derivando, portanto, a seguinte expressão final conhecida como regra delta:
( ) ( ) ( ) ( ) ( )( )knetfkxkkwkw ppipii ′+=+ ..1 ηε
É importante verificarmos que para uma função de saída linear, a regra delta
retoma a equação anterior, desconsiderando o termo relativo à derivada da função de
ativação.
Figura II-16 – Regra da cadeia aplicada a função de ativação
52
Na solução de sistemas não lineares, é comum tomarmos a função de ativação
como um tipo de função sigmóide que atenue o valor da derivada. Entre as funções mais
empregadas estão a função logística e a função tangente hiperbólica, que mapeiam
respectivamente valores entre 0..1 e -1..1 . As derivadas destas funções são dados por:
( ) ( )iii xxnetf −=′ 1logistic
( ) ( )2tanh 15.0 ii xnetf −=′
As funções de ativação mais utilizadas estão representadas na Figura II-17.
Além da função logística e da função tangente hiperbólica é representada, também, a
função sinal, conhecida como threshold, de caráter não linear e descontínuo.
Figura II-17 – Funções de ativação mais comuns
Uma implementação em alto nível do algoritmo está descrita a seguir:
Algoritmo LMS;
Entrada:
Conjunto de treinamento na forma: { (x1,y1), ..., (xm,ym) }
Função de ativação: (1) linear, (2) logística, (3) tangente hiperbólica
Taxa de aprendizagem η, 0 < η < 1
Variáveis:
Conjunto de variáveis independentes: x = (+1, x1, x2, xD)
Conjunto de parâmetros: w = (w0, w1, w2, ..., wD)
Aproximação do erro: ε
Derivada da função: derf
53
Saída:
Equação do regressor na forma: <w.x> + b = 0
Início
n ← 1; w(n) ← 0;
derf ← 1;
Se tipo = 2 Então
derf ← x(n+1).(1 – (x(n+1))
SenãoSe tipo = 3 Então
derf ← 0.5.(1 – x(n+1)2)
Fim_Se; Enquanto erro (ε) for maior que erro admissível Faça
Para todo vetor x do conjunto de treinamento Faça
ε(n+1) ← y(n+1) – xT(n+1).w(n);
w(n+1) ← w(n) + η . derf.x(n+1).ε(n+1)
Fim_Para;
n ← n + 1;
Fim_Enquanto;
Fim. A extensão do modelo Adaline para uma rede contendo múltiplas unidades de
saída, recebe o nome de Madaline, conforme mostra a Figura II-18. Neste caso, o vetor
de pesos toma a forma de uma matriz e a regra delta é aplicada da mesma forma
computando localmente o erro e a derivada de cada unidade, para cada vetor linha de
pesos associados, ou seja:
( ) ( ) ( ) ( )( )knetfkxkkwkw ijijiji ′+=+ ..)(1 ,, ηε
Figura II-18 – Modelo Madaline
54
Não linearidade, suavidade e atenuação de erro: Conforme observado na introdução do trabalho, a não linearidade e
adaptabilidade são características essenciais de muitos problemas reais e seus processos
biológicos de solução. A modelagem e solução analítica destes problemas nem sempre é
possível. Entretanto, a utilização de técnicas de otimização iterativa ou adaptativa, como
já visto, aproxima boas soluções para esta classe de problemas. Contudo, esses métodos
dependem, essencialmente, da propriedade de suavidade da função. Daí, a utilização de
funções de ativação não lineares de natureza sigmóide.
A utilização de elementos processadores não lineares terá um papel importante
em sistemas de classificação, como veremos adiante. Entretanto, a sua utilização torna
mais difícil o processo de convergência para um ótimo local. A não linearidade do
elemento processador modifica a superfície de erro, que relaciona os valores da função
de erro com os parâmetros que estão sendo otimizados. Neste caso, a superfície de erro
deixa de ter a forma quadrática e convexa do método LMS, tornando-se uma superfície
não convexa com a existência de vários mínimos locais.
Outro aspecto importante a ser considerado na otimização de sistemas, se refere
a atenuação dos valores de saída, principalmente, relacionados aos valores da derivada
da função de ativação, conforme mostra Figura II-19. Essa atenuação de sensibilidade é
importante no sentido de amenizar a influência de pontos indesejáveis, denominados
outliers, no processo de treinamento.
55
Figura II-19 – Função de ativação sigmóide e sua derivada
2.5.5 - Uso de regressão linear como classificador A utilização de um modelo de regressão linear como classificador consiste,
basicamente, em aplicar uma função de decisão a função de regressão representada pela
equação de uma reta. Para exemplificar, tomemos um problema de classificação binária
em R2.
Exemplo 2.1: Sejam x1 e x2 as coordenadas ou componentes de um vetor de
entrada. O modelo de regressão define a equação de uma reta na forma <w, x> + b.
Esta reta define uma superfície de decisão de tal forma que: se um ponto do espaço esta
exatamente sobre a reta o valor produzido será zero. De outra forma, o valor produzido
pela equação de regressão assumirá valores positivos ou negativos. Para um problema
de classificação binária, estes valores, correspondentes ao conjunto de valores
desejáveis yi, serão +1 ou -1.
Portanto, definindo uma terceira dimensão para os valores da função, temos uma
superfície de decisão na forma de um degrau de escada. No patamar superior estarão os
pontos associados aos valores +1, no patamar inferior estarão os pontos associados aos
valores -1.
56
Neste sentido, aplicando a função sinal a equação da reta, criamos uma função
de decisão que produzirá como saída a classificação apropriada do dado de entrada. Este
processo pode ser exemplificado pelo seguinte esquema da Figura II-20:
Figura II-20 – Regressor como classificador
Equação do regressor: [ ][ ] bxx T +− 21,.1,1
Função discriminante: ( ) ( )( )
∈<−∈≥−
=−11
22121 02 se 0
0 se 1CxxxCxxx
xxϕ
É fácil percebermos que a função de decisão, representada pela aplicação de
função de ativação do tipo sinal, no elemento processador, gera duas regiões de
classificação. Uma correspondente ao semi-espaço acima da reta para classe C1(rosa) e
a outra correspondente ao semi-espaço abaixo da reta para a classe C2(azul). Se
incluirmos um bias ou desvio na equação de regressão, modificamos a posição do
regressor para a direita ou para a esquerda.
57
Geralmente, a utilização de regressores em problemas de classificação, não
conduz a bons resultados, mesmo em problemas com separabilidade linear. A
explicação básica é que, os processos de classificação e regressão, são processos de
natureza completamente distinta, até mesmo opostos, mesmo tendo como objetivo
conceitual a aproximação de uma função ou a realização de um mapeamento.
Na regressão, procuramos um ajuste perfeito dos dados, minimizando o erro
residual ou erro empírico, no sentido de obtermos uma correlação entre os dados de
entrada e a resposta desejada. Na classificação, por outro lado, procuramos separar os
dados de classes distintas o máximo possível. É um processo de segregação que requer,
quase sempre, a elaboração de discriminantes não lineares. Neste caso, o objetivo
principal é reduzir ao máximo o erro de classificação, considerando o erro de
treinamento e o erro de generalização.
Também, nos modelos de regressão, os dados referentes às amostras e aos
valores desejáveis são provenientes de um mesmo mecanismo gerador. Estes dados
geralmente são formados por valores reais, possuindo ambos, uma natureza randômica.
Ao contrário, nos modelos de classificação, principalmente naqueles que envolvem
múltiplas classes, os dados são provenientes, muitas vezes, de mecanismos geradores
diferentes. Os valores desejados ou a variável dependente do modelo assumem valores
discretos, sendo, na maioria das vezes, frutos de um processo de rotulação.
58
Capítulo III – Perceptrons Nesse capítulo trataremos algumas questões relativas a construção de hiperplanos
separadores e a separabilidade do problema de classificação. Inicialmente, mostraremos
o desenvolvimento do algoritmo Perceptron baseado em uma forma de treinamento
adaptativo. A seguir, será mostrada a deficiência do modelo Perceptron no tratamento
de problemas não linearmente separáveis tomando como exemplo o problema XOR.
Como extensão apresentaremos, também, o desenvolvimento do Perceptron de
múltiplas camadas ou simplesmente MLP.
Finalmente, descreveremos o desenvolvimento do Perceptron de Margem onde
será introduzido o conceito de maximização de margem e vetores suportes no problema
de classificação, iniciando assim, o estudo das máquinas de vetores suportes, tópico que
será descrito com maior profundidade no capítulo seguinte. Vale ressaltar, que o
desenvolvimento do Perceptron de margem se realizou no contexto da mecânica
estatística, não tendo, a princípio, uma relação com a teoria de aprendizagem estatística
de Vapnik e Chervonenkis.
3.1 – Modelo Perceptron ROSENBLATT (1958) propôs um procedimento para a atualização dos pesos de um
elemento processador com múltiplas saídas baseando-se na comparação do valor da
saída com os valores desejados. Este modelo, chamado de Perceptron, é uma máquina
para reconhecimento de padrões, aplicado, inicialmente, ao reconhecimento ótico de
caracteres. Foi considerado o primeiro algoritmo de aprendizado relacionado a modelos
não lineares.
Estruturalmente, o modelo Perceptron é formado por uma camada de entrada,
associando cada unidade de input a componente de um vetor de dimensão D, e uma
camada de saída formada por m unidades. É, portanto, um modelo de Redes Neurais
Artificiais com uma única camada de processamento. Os elementos das duas camadas
são totalmente interconectados por uma matriz sináptica.
Podemos dizer que o modelo Perceptron realiza um mapeamento de um espaço
de entrada de dimensão D para um espaço de saída de dimensão m reduzida. Na sua
forma mais simplificada, o modelo Perceptron é utilizado para problemas de
59
classificação ou reconhecimento de padrões envolvendo somente duas classes, neste
caso, é suficiente a existência de somente um elemento processador na camada de saída.
Na Figura III-1 representamos a topologia deste modelo Perceptron. O mesmo
pode ser considerado como aplicação da função de ativação threshold ao modelo
Adaline.
Figura III-1 – Topologia do modelo Perceptron
3.1.1 – Perceptron como superfície de decisão: Um Perceptron com m saídas pode dividir o espaço de entrada do problema em m
regiões distintas. Considere o exemplo de um problema de reconhecimento de padrões
com três classes e espaço de entrada em R2. Para um Perceptron constituído de três
elementos processadores na camada de saída, cada unidade definirá a equação de um
hiperplano.
Considerando a interseção desses hiperplanos, ou seja, o segmento de superfície
para o qual duas funções discriminantes se interceptam, serão definidas três regiões de
classificação. A Figura III-2 mostra a superfície de decisão para este Perceptron de três
saídas, para as duas situações possíveis.
60
Figura III-2 – Separação de classes no modelo Perceptron
Na classificação de um dado, somente uma saída do Perceptron fornecerá um
valor positivo relacionado à região de classificação desejada. Portanto, ao associarmos
cada elemento processador de saída a uma classe, podemos dizer que obtemos uma
implementação associada a uma máquina linear descrita na seção 2.2. A região de
classificação associada a cada classe é definida como a interseção de uma região
positiva de uma classe com a região negativa relativa as duas outras classes, obtidas de
uma forma de treinamento denominada um contra todos.
Para um vetor de entrada x de dimensão D, cada elemento processador do
Perceptron com função de ativação f e potencial de ativação neti, fornece uma saída
f(neti). Desta forma, para um conjunto de parâmetros relacionado ao bias bi e ao vetor
de pesos wi, obtido da matriz de pesos sinápticos, temos a seguinte saída ou sinal
relacionada a unidade de processamento “i”:
( )
+= ∑
jijiji bxwfnetf , j = 1, ..., D.
A capacidade de aprendizagem do Perceptron, bem como seu algoritmo de
treinamento, será estudada, sem perda de generalidade, em um problema de
classificação binária para um espaço de entrada R2, de duas dimensões. Como já
dissemos anteriormente, para a classificação de padrões em duas classes, é necessário
somente um elemento processador na camada de saída. Este elemento define a equação
61
de um hiperplano, que em nosso exemplo, seria uma reta, capaz de dividir o espaço de
entrada do problema em duas sub-regiões distintas. Seja o exemplo da Figura III-3 para
um hiperplano definido pela equação x1 + x2 = 2.
Figura III-3 – Superfície de decisão do Perceptron
O respectivo modelo, na topologia de uma rede, está apresentado na Figura III-4.
Figura III-4 – Topologia de rede do Perceptron
Se considerarmos a função de ativação uma função threshold ou sinal teremos a
saída do Perceptron igual a um, se o valor de net for não negativo, ou seja, f(neti) = 1 se
neti ≥ 0. Do contrário, se o valor de neti for negativo então a saída do Perceptron será
igual a zero, ou seja, f(neti) = 0 se neti < 0.
62
Graficamente, pode ser observado na Figura 3.4, que o conjunto de pontos que
fornecem saída igual a um se situam na região definida acima ou na função de decisão,
enquanto que, o conjunto de pontos que fornece a saída igual a zero, está situado na
região definida abaixo da função de decisão. Os discriminantes das duas classes seriam
definidos respectivamente pelas equações dos hiperplanos: X1 + X2 ≥ 2 e X1 + X2 < 2.
Em algumas implementações, o Perceptron pode apresentar saída binária
bivalente, ou seja, -1 e 1. Esses valores estão relacionados, também, a classificação dos
dados nas classes C1 e C2.
Neste momento, é interessante introduzirmos o conceito de hiperplano
separador, ou seja, a definição de uma equação linear que permite a divisão do espaço
em sub-regiões linearmente separáveis, portanto, é conclusivo observar que o modelo
Perceptron ou qualquer outro algoritmo de aprendizagem de máquinas, cuja superfície
de decisão esta relacionada a equação de um hiperplano, só resolve problemas
linearmente separáveis.
Caso o conjunto de dados relacionado ao problema não seja linearmente
separável o modelo Perceptron irá falhar na sua solução. Esta deficiência do Perceptron
na representação de um número muito grande de funções pode ser observada de forma
intuitiva no exemplo descrito a seguir:
Exemplo 3.1: Seja um problema de representação de funções booleanas.
Obviamente, algumas funções simples, como exemplo, a função AND e a função OR,
linearmente separáveis, são implementadas facilmente pelo modelo Perceptron.
Entretanto, existe um grande número de funções, não linearmente separáveis, como
exemplo a função XOR, que não serão implementadas. Para mostrarmos melhor este
problema vamos reutilizar o conceito de dicotomia.
Considerando o número de dicotomias como o número de possíveis divisões de
um conjunto de n pontos, relacionado a um espaço de entrada, em dois subconjuntos
distintos, teríamos, para um conjunto de quatro pontos e espaço de entrada R2, sete
dicotomias possíveis, incluindo algumas funções lógicas conhecidas. Estendendo este
raciocício, teríamos, para um conjunto de n pontos, 2n-1-1 dicotomias. Se
63
considerarmos, também, a rotulação das classes e a existência do conjunto vazio,
teríamos o número de dicotomias distintas ampliadas para 2n. Certamente, um grande
número destas divisões, não seriam linearmente separáveis.
Segundo Vapnik e como já visto, o número máximo de pontos em um problema
de classificação binária, que admitem dicotomias linearmente separáveis, está
relacinado a dimensão VC, sendo definido como n+1, considerando n a dimensão do
espaço de entrada. Neste sentido, para um espaço de entrada em R2, poderíamos ter no
máximo três pontos linearmente separáveis em todas as dicotomias possíveis.
Uma outra forma de observarmos a incapacidade de representação de algumas
funções booleanas pelo Perceptron, está no que chamamos ser a maldição da
dimensionalidade. Este problema relacionado à maldição da dimensionalidade de
BELLMAN (1957) foi apresentado no contexto do Perceptron por MINSKY e PAPERT
(1969).
Para uma função booleana com n variáveis de entrada, poderíamos ter 2n
argumentos distintos, representando o domínio da função. Como esta função pode
apresentar uma saída binária, teríamos no total 22n
possibilidades de mapeamentos
diferentes, ficando claro que o número de diferentes funções cresce absurdamente em
relação a dimensão do espaço de entrada. Possivelmente, um grande número dessas
funções, também, não será linearmente separável. Exemplo 3.2: Para duas variáveis booleanas de entrada, teríamos quatro
possíveis mapeamentos, ou seja: (1,1), (1,0), (0,1) e (0,0). Como cada mapeamento
poderia assumir dois valores distintos, teríamos um total de dezesseis mapeamentos
distintos para uma função booleana qualquer.
3.1.2 - Algoritmo de treinamento O algoritmo de treinamento do modelo Perceptron pode ser descrito na forma a seguir,
para um processo de treinamento online:
64
Algoritmo Perceptron;
Entrada:
Conjunto de treinamento na forma: {(x1,y1),(x2,y2),...,(xm,ym)}
Taxa de aprendizagem η
Variáveis:
x(n) – vetor de entrada
w(n) – vetor de pesos
b(n) – bias
z(n) – resposta ou saída
y(n) – resposta desejada
net(n) – potencial do elemento
Saída:
Hiperplano separador na forma: f(x) =.<w,x> + b
Inicio
w(0) ← 0; b(0) ← 0;
n ← 1; t ← 1;
want ← w(0);
Enquanto w(m) <> want Faça
Se (t mod m = 1) Então want← w(m);
n ← 1;
Fim_Se;
net(n) ← ∑ wt(n) . x(n) + b(n);
z(n) ← sinal(net(n));
{ onde:
sinal(net(n)) = 1 se net(n) ≥ 0
= -1 se net(n) < 0 }
65
{ Atualize o vetor de pesos e o bias }
w(n + 1) ← w(n) + η .1/2.(y(n) – z(n)).x(n);
b(n + 1) ← b(n) + (y(n) – z(n))/2;
{ onde:
y(n) = 1 se x(n) pertence a classe C1
= 0 se x(n) pertence a classe C2 }
{ se x(n) é corretamente classificado pelo vetor w(n) então
w(n+1) = w(n), pois y(n) – z(n) = 0, não havendo correção do vetor de peso.
Caso contrário, fazemos:
w(n+1) = w(n) - η . x(n) se x(n) ∈ C2 (y(n) = -1) e z(n) = 1
w(n+1) = w(n) + η . x(n) se x(n) ∈ C1 (y(n) = 1) e z(n) = -1 }
n ← n + 1; t ← t + 1;
Fim_Enquanto;
Fim.
A seguir apresentaremos algumas observações relacionadas ao processo de
treinamento do modelo Perceptron:
1 - O algoritmo itera sobre o conjunto de dados, e cada iteração completa é
considerada uma época.
2 - O algoritmo baseia a correção dos pesos somente nos erros de
classificação.
3 - O algoritmo irá convergir se todos os padrões de entrada forem
classificados corretamente
4 - O algoritmo somente resolve problemas linearmente separáveis. Caso o
problema não seja linearmente separável, o algoritmo nunca termina.
5 - Como o algoritmo do Perceptron não busca um discriminante ótimo
como na estimativa de um regressor linear, mas sim, uma resposta
satisfatória, o mesmo é capaz de generalizar melhor que um regressor.
66
6 - Em problemas linearmente separáveis o erro de treinamento do algoritmo
do Perceptron é zero.
3.1.3 – Critério de custo e correção do erro A função de perda ou de erro do algoritmo Perceptron pode ser definida na forma:
( ) ii wnxnywJ .).()( ∑−= , i = 1,..., D
considerando o fato de que, se um dado vetor x, não é corretamente classificado na
enésima iteração, então:
( ) 0).(. <wnxny
Neste sentido, na solução do problema de classificação teremos J(w) = 0,
implicando na ausência de erro. Pelo método do gradiente, o valor da função deve ser
minimizado em relação ao vetor de pesos w, fornecendo:
)().()( nynxwJ −=∇
Estabelecendo, portanto, a equação da correção dos pesos na forma :
)(.)()1( nxnwnw η+=+ , se y(n) = 1
)(.)()1( nxnwnw η−=+ , se y(n) = -1
se o dado x não estiver corretamente classificado.
A introdução da não linearidade no modelo Perceptron, através do uso de uma
função de ativação não linear, do tipo degrau ou sigmóide, não aumenta o poder de
classificação do mesmo, embora um classificador Perceptron de saída não linear, com
função de ativação sigmóide, apresente uma superfície de decisão mais suave e mais
adaptada provocando uma diminuição do erro. Neste caso a regra de modificação é
equivalente a uma adaptação da regra delta para valores de saída e desejáveis binários,
ou seja:
( ) ( ) ( ) ( ) ( ))().(..1 nxnwfnxnnwnw ′+=+ ηε ,
considerando y(n), f(w(n).x(n)) = ± 1 e f a função de ativação não linear associada.
67
Poderíamos optar no algoritmo por um processo treinamento em modo batch.
Neste caso, a atualização do vetor w se daria somente no final de cada época,
considerando, entretanto, a soma de todos os erros ocorridos. Conseqüentemente, a
equação de correção teria a forma:
∑+= iiant yxww ..η ,
para todos vetores xi erroneamente classificados.
O algoritmo Perceptron não apresenta, para problemas de classificação, o
mesmo resultado que um regressor linear. Embora o algoritmo LMS faça a sua correção
em função de um erro, o fato de utilizar a norma L2 faz com que erros maiores tenham
um maior efeito na atualização dos pesos que erros menores. Devemos considerar,
também, que no algoritmo LMS, o conjunto de erros tem um efeito simultâneo na
atualização dos pesos, implementando uma forma de correção mais suave e contínua, o
que nem sempre acontece no algoritmo do Perceptron.
Além de não tratar dicotomias não linearmente separáveis, existe um outro
grande problema no algoritmo do Perceptron que de fato estimulou o desenvolvimento
do Perceptron de margem, que será tratado neste capítulo. Avaliando o seu algoritmo de
aprendizagem, vemos que, a cada ocorrência de um erro de classificação, o algoritmo
modifica o vetor w de pesos, fazendo uma correção na direção do vetor de entrada x,
alterando, conseqüentemente, o posicionamento do hiperplano separador, conforme a
Figura III-5.
68
Figura III-5 – Correção do vetor w em função da entrada x
Quando o processo convergir, haverá uma grande probabilidade do hiperplano
separador estar posicionado próximo aos últimos exemplos do conjunto de treinamento
que causaram modificações no vetor w. Para o erro de treinamento isto não causa
problemas. Entretanto, para a utilização posterior do modelo em conjuntos de validação,
estes pontos situados próximos à superfície de decisão aumentarão as chances de
ocorrerem erros de classificação, reduzindo, desta forma, o poder de generalização do
Perceptron.
Como veremos, a atitude mais correta será a de afastar o máximo possível o
hiperplano separador dos pontos relacionados ao conjunto de treinamento de classes
contrárias, definindo, assim, uma margem de segurança que garantirá um maior poder
de generalização.
Como solução intermediária poderíamos impor uma margem fixa de
determinado valor como medida de segurança. Neste caso, o critério de viabilidade do
algoritmo teria a forma:
( ) γ≥wnxny ).(. , para i = 1,..., m,
sendo γ a margem fixa estabelecida.
69
3.1.4 – Perceptron de múltiplas saídas: A exemplo do modelo Madaline, referente ao elemento linear adaptativo de múltiplas
saídas, podemos definir uma topologia para o Perceptron, com múltiplos elementos
processadores na camada de saída, conforme a Figura III-6.
Figura III-6 – Perceptron de múltiplas saídas
A utilização deste tipo de Perceptron é feita em problemas de multiclassificação,
onde existem mais de duas classes associadas ao conjunto de treinamento. O número de
elementos processadores na camada de saída é função do número de classes do
problema, sendo o número de unidades de entrada equivalente, como já vimos, a
dimensão do espaço de entrada. Na Figura III-2, podemos observar as regiões de
classificação produzidas para um Perceptron com três unidades de saída, m = 3, em um
espaço de entrada associado a R2 , D = 2.
O treinamento do modelo Perceptron para uma topologia de múltiplos elementos
processadores na camada de saída, e relacionado, portanto, a um problema de
multiclassificação, pode ser feito de forma equivalente, considerando, neste caso, o
vetor de pesos w na forma de uma matriz. Cada linha deste vetor estará associada ao
treinamento de uma unidade da camada de saída, definindo, portanto, um hiperplano
separador. Se considerarmos a existência de m unidades de saída, teremos definido m
hiperplanos separadores, que recortam o espaço de entrada em m regiões de
classificação.
O treinamento de cada hiperplano está associado aos exemplos positivos de sua
respectiva classe, sendo feito de uma forma denominada um contra todos, empregada,
também, no treinamento de máquinas de vetores suportes em problemas de
70
multiclassificação. Neste sentido, a equação de correção dos pesos, na sua forma mais
geral, considerando uma função de ativação f, é a mesma do modelo Madaline, ou seja:
( ) ( ) ( ) ( )( )nnetfnxnwnw ijijkiji ′+=+ ..1 ,, ηε ,
considerando, somente, o cômputo do erro e da derivada local para cada unidade de
saída.
3.1.5 – Perceptron dual: Quando a dimensão do espaço de entrada do problema for superior ao tamanho do
conjunto de treinamento será mais vantajoso optarmos pela solução do problema dual
associado ao Perceptron. Em um primeiro momento, isto parece pouco provável, mas,
como veremos adiante, ao utilizarmos classificadores kernel, ou seja, a introdução de
funções kernel no modelo Perceptron, projetamos a solução do problema para um
espaço de características de dimensão muito maior, tornando mais eficiente a solução do
Perceptron dual.
Para obtermos a formulação do Perceptron dual e, conseqüentemente, o seu
algoritmo de treinamento, devemos, inicialmente, considerar a representação do vetor
w, um parâmetro primal, na forma dependente dos dados. Ou seja, realizamos uma
expansão do vetor em função de cada vetor do conjunto de treinamento, xi, associado
ao respectivo rótulo da classe, yi, e a um conjunto de parâmetros, αi, que representam
as variáveis duais do problema, ou, simplesmente, multiplicadores. Portanto,
redefinimos o vetor de coeficientes na forma: w = ∑i αi.yi.xi.
Esta dependência do vetor w, em relação ao conjunto de treinamento e ao
conjunto de multiplicadores, fica mais bem expressa no exemplo a seguir. De fato, cada
multiplicador representa o grau de importância de cada vetor do conjunto de
treinamento, no posicionamento final do hiperplano separador.
Exemplo 3.3: Considere um conjunto de treinamento definido em R2, na forma:
D = {((0,0),-1), ((0,1),-1), ((1,0),+1), ((1,1),+1)}.
71
Devemos computar uma função de decisão linear do tipo: f(xi) = <w.xi> - b.
Caso f(xi) ≥ 0, o vetor xi pertencerá a classe rotulada com +1, caso contrário, ou seja, se
f(xi) < 0, o vetor xi pertencerá a classe rotulada com -1.
Atribuindo a mesma influência para cada vetor do conjunto de treinamento no
posicionamento do hiperplano separador, podemos considerar os multiplicadores αi
com valores iguais a 1/m, ou seja, α1 = α2 = α3 = α4= ¼. Assim, teremos:
w = ¼. [ -(0,0) –(0,1) +(1,0) + (1,1) ] = (1/2,0).
Para determinarmos o bias b da equação consideramos o valor médio da
projeção dos vetores relativos aos centros das duas classes na direção do vetor w, ou
seja:
c+ = ½.[ (1,1) + (1,0)] = (1,1/2), c- = ½.[ (0,0) + (0,1)] = (0,1/2).
b = ½.[ (1/1/2).(1/2,0)T + (0,1/2).(1/2,0)T ] = 1/4 .
Finalmente, definimos a função de decisão:
f(x) = (1/2,0).x – 1/4 = x1 – 1/2 , que classifica corretamente os vetores.
Foi mostrado, portanto, a dependência do vetor w e, conseqüentemente, do
hiperplano separador em relação ao conjunto de treinamento, considerando, o
posicionamento dos vetores e seus respectivos rótulos. O vetor de multiplicadores, que
estabelece a importância de cada vetor de treinamento na construção do classificador, é,
em geral, determinado por um algoritmo de aprendizagem. A seguir, veremos como este
cálculo pode ser feito no Perceptron dual, fazendo uma analogia como o algoritmo de
treinamento do Perceptron primal.
Para o Perceptron dual, a função de decisão terá a forma:
f(xi) = ∑j αj.yj.<xj,xi> - b, para j =1,...,m.
Sendo que, da mesma forma, se f(xi) ≥ 0 o vetor xi terá rótulo +1, e , caso
contrário, se f(xi) < 0, o vetor xi terá rótulo -1. Portanto, para classificarmos uma
amostra xi durante o processo de treinamento, verificamos o valor do produto yi. f(xi).
Obviamente, se o produto for negativo, ocorrerá uma desclassificação, ou erro de
treinamento, forçando, desta forma, a correção do multiplicador αi associado.
72
Pela lógica do algoritmo Perceptron primal, quando ocorre um erro no
treinamento, realizamos uma correção do vetor w na direção do vetor xi, sendo o passo
da correção dado por uma constante de aprendizagem η. Ou seja, fazemos:
w = w + η.xi , para yi = +1,
w - η.xi , para yi = -1.
Portanto, podemos definir a equação de correção como:
w = w + η.yi.xi,
caso yi. f(xi) < 0, sendo f(xi) = <w.xi> - b, ou, simplesmente, f(xi) = <w.xi>, se
considerarmos o bias b igual a zero.
Para o Perceptron dual, podemos fazer a mesma analogia, ou seja, fazemos:
w ← w + η.yi.xi, ou
w ← ∑j αj.yj.xj + η.yi.xi,
o que se torna equivalente a atualizar o multiplicador αi, na forma:
αi ← αi + η.1,
definindo, portanto, o algoritmo de aprendizagem do Perceptron dual.
Uma das vantagens deste método é que muitos multiplicadores, ao longo do
processo, permanecem com seus valores iguais a zero, indicando que os vetores
associados não têm importância ou influência no posicionamento do hiperplano
separador. Em alto nível, o algoritmo dual do Perceptron pode ser descrito na forma:
Algoritmo Perceptron dual;
Entrada:
Conjunto de treinamento na forma: {(x1,y1),(x2,y2),...,(xm,ym)}
Taxa de aprendizagem η
Saída:
Hiperplano separador na forma: f(xi) = ∑j αj.yj.<xj,xi>, considerando b = 0.
73
Início
Para todo i = 1,...,m Faça
αi ← 0;
Enquanto não houver mais erros de classificação Faça
Para cada amostra do conjunto de treinamento Faça
Compute f(xi) = ∑j αj.yj.<xj,xi>;
Se yi. f(xi) < 0 Então { ocorreu um erro }
αi ← αi + η.1;
Fim_Se;
Fim_Para;
Fim_Enquanto;
Fim.
3.1.6 - Convergência do Perceptron: Vamos assumir, por hipótese, que o conjunto de dados seja linearmente separável, pois
do contrário não haveria convergência do método. Portanto, existe uma função
discriminante linear, ou seja, um hiperplano, que produz um erro de treinamento
exatamente igual a zero. Esta solução dada pelo algoritmo de treinamento é um vetor de
pesos w satisfatório, considerando o produto escalar x.w, tal que:
( ) ( )( ) ( ) 1 para 0.
1 para 0.
−=<
=≥
∑∑
nywnx
nywnx
ii
ii
onde n se refere a iteração associada a enésima entrada aplicada ao algoritmo.
Esta equação, pode ser reescrita na forma:
( ) 0).(. >wnxny
Para que todos os exemplos sejam classificados corretamente e não haja mais
correção do vetor de pesos, é necessário encontrar um vetor w que faça com que a
expressão de viabilidade seja satisfeita simultaneamente para todos os dados do
conjunto de treinamento.
74
Esta solução em um problema de duas dimensões é a equação de uma reta onde
o vetor satisfatório w deve ser ortogonal a cada dado representado pelo vetor x, dado
que xT . w = 0. A equação de atualização dos pesos move os vetor de pesos diretamente
na direção da solução dependendo do sinal do erro. Desta forma existem dois casos a
serem considerados, conforme a descrição a seguir, representada pela Figura III-7.
Figura III-7 – Movimentação do vetor w
No primeiro caso, o dado pertence a classe 1 (saída positiva) mas a saída é –1.
Neste caso, o valor do peso deve ser modificado para a parte esquerda ( de outra forma,
a saída seria positiva e não haveria necessidade de correção). Portanto aumentamos o
valor do peso, movendo-o na direção correta de ajuste.
No segundo caso, o dado pertence a classe 2 (saída negativa) mas a saída é +1.
Neste caso, o valor do peso deve ser modificado para a parte direita ( de outra forma, a
saída seria negativa e não haveria necessidade de correção). Portanto diminuímos o
valor do peso, movendo-o na direção correta de ajuste.
Desta forma, como todas as correções são feitas na direção devida, o vetor de
pesos converge para um vetor satisfatório. após um número finito de iterações.
75
BLOCK(1962) e NOVIKOFF(1962) demonstraram que o número de iterações
do algoritmo Perceptron é limitado superiormente por uma função relacionada a
distância entre os exemplos positivos e negativos, como mostra o teorema a seguir.
Teorema 3.1: Sendo D = { (x1,y1), (x2,y2),...,(xm,ym)} o conjunto de treinamento,
onde || xi|| ≤ R, ou seja, R é o raio de uma hiperesfera que engloba todos os pontos.
Suponha a existência de um vetor w tal que ||w|| = 1 e yi.(w.xi) ≥ γ para todos os
exemplos. O número de correções ou erros praticados pelo algoritmo para todo o
conjunto é de no máximo (R/ γ)2.
Prova: Seja wk o vetor de coeficientes associado ao késimo erro. Então, w1 = 0 e,
ocorrendo um erro, temos: yi.(w.xi) < γ, e, conseqüentemente: wk+1 = wk + yi.xi.
Também, podemos considerar que: wk+1.u = wk.u + yi.(u.xi) ≥ wk.u + γ. Portanto:
wk+1.u ≥ k.γ.
Similarmente, temos: ||wk+1||2 = ||wk||2 + 2.yi.(wk.xi) + ||xi||2 ≤ ||wk||2 + R2.
Combinando os dois resultados, temos: √k.R ≥ || wk+1|| ≥ wk+1.u ≥ k.γ. Implicando,
finalmente, que:
k ≤ (R/ γ)2,
conforme atesta o teorema.
3.1.7– Perceptron de votação: FREUND e SCHAPIRE (1998) propuseram um algoritmo de aprendizado baseado na
topologia do Perceptron, em uma adaptação de HELMBOLD e WARMUTH (1995) de
correção em modo batch e na utilização de funções kernel. Para problemas linearmente
separáveis no espaço de entrada ou no espaço de características, o algoritmo
denominado Perceptron de votação apresenta bons resultados em termos de
generalização, que quase se comparam aos Perceptrons de larga margem, porém, com
tempos de computação inferiores.
O algoritmo proposto por Freund e Schapire consiste, basicamente, em construir
durante o proceso de treinamento, um vetor de predições equivalente à associação de
um vetor de pesos a vários vetores de coeficientes determinados para o Perceptron. Este
vetor é utilizado, posteriormente, para a construção de um discriminante que adota um
76
esquema de votação ponderado, associando cada vetor de coeficientes ao seu respectivo
peso. Os vetores de coeficientes são computados utilizando-se a mesma técnica de
correção baseada em erros do algoritmo Perceptron.
Entretanto, para cada ocorrência de um erro, determina-se um vetor de
coeficientes com peso equivalente ao número de acertos consecutivos que o algoritmo
obteve a partir da última correção. Probabilisticamente, as aproximações ou vetores de
coeficientes com maiores períodos de corretude, terão maior influência no processo de
votação ponderada.
A seguir apresentamos uma descrição em alto nível do algoritmo:
Algoritmo Perceptron de votação: Entrada: Conjunto de treinamento na forma: {(x1,y1), (x2,y2),...,(xm,ym)} Saída: Vetor de pesos ponderado: {(w1,c1), (w2,c2),...,(wk,ck)} Início k ← 0; w1 ← 0; c1 ← 0; Para uma quantidade de épocas Faça Para cada vetor xi do conjunto de amostras Faça z ← wk.xi; Se z = yi Então ck ← ck + 1 Senão wk+1 ← wk + yi.xi; ck+1 ← 1; k ← k + 1; Fim_Se; Fim_Para; Fim_Para; Fim; Equação do classificador: Dado: {(w1,c1), (w2,c2),...,(wk,ck)} g(x) = sinal ( ∑ ci.sinal(wi.x), para i=1,...,k).
A introdução de funções kernel no algoritmo dual do Perceptron e no Perceptron
de votação posibilita a solução de problemas não linearmente separáveis, e será vista
adiante no capítulo V, que trata, exclusivamente, sobre classificadores kernel.
77
3.2- Perceptron e o problema XOR: MINSKY e PAPERT (1969), afirmaram que o poder de aproximação do Perceptron
somente seria aumentado se fossem incluídas novas camadas de processamento. Desde
então, surgiu o Perceptron de múltiplas camadas, dando início a todo estudo das redes
neurais artificiais do tipo feed-forward, culminando com o desenvolvimento do
algoritmo back-propagation (RUMELHART, HINTON e WILLIAMS (1986)) que
resolveu de forma eficiente o problema de atribuição de créditos em um Perceptron de
múltiplas camadas utilizando o paradigma de correção por erros. Este algoritmo
representou um grande avanço no desenvolvimento e estudo dos modelos conexionistas.
Entretanto, a introdução de novas camadas em um Perceptron descaracteriza a
idéia de um hiperplano separador e de um classificador mais geral. Como poderemos
observar, existem outras soluções mais elegantes para um problema de não
separabilidade linear, como o projeto de máquinas kernel ou o uso de uma base de
funções elementares.
3.2.1 – Perceptron multi-camadas (MLP): Um Perceptron de multi-camadas, ou simplesmente MLP, com uma camada interna,
tem sua topologia definida pela Figura III-8.
Figura III-8 – Topologia do Perceptron MLP
Para a solução de problemas não linearmente separáveis como o problema XOR
esta topologia é suficiente, ou seja, basta adicionarmos uma camada interna na topologia
do Perceptron. Neste problema, veremos que a superfície de decisão apropriada tem a
forma quadrática, podendo ter a forma de uma hipérbole, como mostra a Figura III-9.
Esta função, como veremos, poderá ser representada em um espaço de dimensão maior,
78
denominado espaço de características, onde o problema XOR será resolvido como um
problema linearmente separável.
Figura III-9 – Separações dos pontos do problema XOR por uma hipérbole
Dada a topologia do Perceptron MLP com uma camada interna, e seu conjunto
de parâmetros formado pelos vetores de pesos w, e bias b, podemos definir a saída do
modelo, em função de um vetor x de entrada em R2:
Z w,b (x) = f(∑ (f(∑ (x,w),b),w),b),
considerando:
Z(1,1) = -1, Z(0,0) = -1, Z(0,1) = 1, Z(1,0) = 1,
as saídas lógicas corretas do problema do XOR.
A seguir no Exemplo 3.4 descreveremos a solução do problema através de uma
composição de funções lógicas.
79
Exemplo 3.4: Utilizando uma expressão regular ou sentença lógica podemos
determinar a função de saída, para o problema, da seguinte forma:
f(x) = (x1 ∨ x2) ∧ ~(x1 ∧ x2 ),
relacionada a representação gráfica da Figura III-10 que produz a interseção das duas
funções lógicas, formadas por (x1 ∨ x2) e ~(x1 ∧ x2 ), que representam,
respectivamente, a disjunção e a negação da conjunção de duas variáveis lógicas ou dois
literais.
Figura III-10 – Interseção da função OU com a função ~ E
Podemos definir uma topologia de rede MLP para a implementação desta função
que resolve o problema XOR. Ajustando, adequadamente, os vetores de peso e os bias
dos elementos processadores, temos, conforme a Figura III-11, a seguinte topologia.
80
Figura III-11 – Rede MLP do problema XOR
A computação da rede para os quatro pontos de entrada, com coordenadas x1 e
x2, pode ser vista pela tabela da verdade. O valor de saída corresponde a interseção dos
valores lógicos produzidos pelos dois elementos da camada interna responsáveis pela
implementação das funções lógicas OU e ~E.
X1 X2 Elemento 1 (OU) Elemento 2 ~(E) Saída (OU) e ~(E) 0 0 0 1 0 0 1 1 1 1 1 0 1 1 1 1 1 1 0 0
Tabela III-1 – Tabela da verdade do problema XOR
Existem alguns resultados interessantes relacionados ao poder de computação
das redes MLP, principalmente, quando relacionadas ao problema de aproximação de
funções.
O primeiro se refere ao fato de que o poder computacional de um Perceptron de
múltiplas camadas somente é aumentado se as funções de ativação dos elementos
processadores forem não lineares. De fato, se considerarmos um Perceptron de uma
camada interna, ou de duas camadas, como uma composição de funções, ou seja:
f(∑ f(∑ (.))) = f(∑ f(∑ j wijxj + bi)) = f(∑ f(neti)) = f( ∑ j wij.netj + bi), podemos reduzi-lo a um Perceptron de uma única camada de saída se a função de
ativação f não for uma função não linear.
81
O segundo se refere ao fato de que um Perceptron de uma camada interna
produz uma região de classificação equivalente a existências de várias regiões convexas
abertas ou fechadas, sendo cada uma formada pela interseção de semi-espaços gerados
pelos vários hiperplanos definidos pela camada anterior. Neste sentido, o mapeamento
de funções na sua forma mais geral, definidas por regiões côncavas, somente é possível
em Perceptrons de duas camadas, nos quais a camada de saída será responsável pela
combinação de regiões convexas, gerando regiões de classificação côncavas ou não
necessariamente convexas.
O terceiro se refere a um teorema relativo a KOLMOGOROV (1957). Este
teorema assegura que qualquer função contínua de várias variáveis pode ser
representada ou aproximada por um pequeno número de funções de uma variável. Em
uma rede MLP isto significa que uma função contínua de dimensão d que mapeia
valores reais pode ser computada por uma rede de três camadas com d unidades na
camada de entrada, d.(2d+1) unidades na primeira camada interna, (2d+1) unidades na
segunda camada interna e uma unidade na camada de saída.
O quarto resultado se refere ao poder de classificação das redes de saída
sigmóide. Considerando a capacidade de mapeamento ou aproximação universal de uma
rede MLP, qual seria a sua capacidade em relação à implementação de um classificador
Bayesiano. Ou seja, poderíamos interpretar a saída de uma rede MLP como as
probabilidades a posteriori dos dados para cada classe, e aplicarmos o critério MAP de
classificação. De fato, esta interpretação probabilística da saída de uma rede MLP é
possível, se utilizarmos como funções de ativação as funções do tipo logística, como
vimos nesta forma de regressão.
Seja um problema de classificação binária com duas classes C1 e C2. A função
discriminante de cada classe é dada pela fórmula de Bayes, ou seja:
P (Ci|x) = P(x|Ci).P(Ci) / P(x)
Para as duas classes temos que: P(C1) + P(C2) = 1, portanto:
P(x) = P(x|C1).P(C1) + P(x|C2) + P(C2).
82
Considerando a função de Gauss para a distribuição dos dados segundo as
classes, para uma variância σ e média μ, temos:
P(x|Ci) = ( 1/√(2πσ)). exp( -1/2.((x- μ)2/σ2)),
tornando possível redefinir a probabilidade a posteriori de uma classe como a saída de
uma função logística, na forma:
P(C1|x) = 1 / (1 + ℮-α),
onde:
α = ln (P(x|C1).P(C1) / P(x|C2).P(C2))
Assumindo que as probabilidades condicionais são funções gaussianas de
mesma variância, ou matriz de covariância para o caso multidimensional, temos o
parâmetro α expresso como uma função linear de x, ou seja:
α = w.x + b,
representando um combinador linear seguido de uma função de ativação do tipo
sigmóide.
Entretanto, para que uma MLP se comporte de fato como um classificador
Bayesiano, conforme a Figura III-12, devemos normalizar os valores de saída para que a
soma das probabilidades somem uma unidade. Em seguida, para escolhermos a
classificação correta de uma amostra, devemos aplicar o operador Max aos valores das
saídas a exemplo do critério MAP de classificação. Para o caso particular do problema
de classificação binária, é suficiente a existência de somente um elemento processador
com função de ativação logística na camada de saída, considerando que os valores
produzidos por esta função, para duas classes, são complementares em relação a
unidade.
Figura III-12 – MLP e critério MAP
83
Segundo Bishop(1995) as saídas zk normalizadas de uma MLP com k unidades
de saída logísticas, e um conjunto de valores desejáveis na forma binária, podem ser
consideradas como uma estimativa das probabilidades a posteriori dos dados
pertencerem as respectivas classes Ck, ou seja:
zk (x) = P{ Ck|x),
sendo o valor da classe atribuído, pelo critério MAP, a maior das probabilidades, ou
seja:
c(x) = t, onde t = Arg Mink P{ Ck|x) = Arg Mink zk (x)
3.2.2 - Espaço de características: Como já dissemos, existem outras formas mais elegantes de solucionar o problema
XOR. A primeira esta relacionada a projeção dos dados do espaço de entrada para um
espaço de mais alta dimensão denominado espaço de características. Como veremos
mais adiante em nosso trabalho, esta é a base do desenvolvimento de novos
classificadores baseados em hiperplanos separadores na solução de problemas de
separabilidade não linear. A seguir veremos no Exemplo 3.5 como o problema pode ser
resolvido pela projeção dos dados em um espaço tridimensional.
Exemplo 3.5: A equação da hipérbole, relativa a Figura III-9, é dada por:
f(x) = x1 + x2 – 2.x1.x2 – 1/3
Se considerarmos a substituição da expressão relativa ao produto das variáveis,
x1.x2, pela variável x3, teremos a equação de um hiperplano ou uma função de separação
linear em um espaço R3 , dada por:
( )312 321 −−+= xxxxf
A representação no espaço R3 do problema XOR, conforme a Figura III-13,
permite observar que as quatro entradas do problema, agora representadas pelos vértices
marcados no poliedro, admitem uma separação linear feita pela função de decisão, que,
neste caso, representa a equação de um plano que secciona o poliedro em duas regiões
de acordo com a solução do problema.
84
Figura III-13 – Transformação do problema XOR para o espaço R3
A nova representação do conjunto de dados é feita pela definição de uma função
característica φ, que em nosso caso consiste em acrescentar como terceira coordenada
do ponto o produto das respectivas coodernadas em R2, ou seja:
φ: (x1, x2) à (x1, x2, x1.x2)
A solução equivalente do problema com a utilização de uma MLP com uma
camada interna, para um espaço de entrada de duas dimensões, está representada na
Figura III-14.
Figura III-14 – Rede MLP equivalente do problema XOR
85
Uma forma alternativa de resolvermos o problema utilizando uma rede
Perceptron sem camada interna, consiste na expansão dos dados segundo uma série de
monóides de primeiro e segundo grau, conforme mostra a Figura III-15 . Desta forma,
um vetor x com coordenadas em R2 na forma (x1,x2) será expandido para um espaço R5,
de mais alta dimensão, com a utilização de uma função característica, onde cada ponto
terá coordenadas (x1,x2,x1.x2,x12,x2
2).
Esta forma de solução tem uma implementação elegante e eficiente com a
utilização de funções kernel. Estas funções permitem que o produto interno das
projeções dos dados sejam computados diretamente no espaço de entrada original. Ou
seja, se K(xi,xj) representa a função kernel entre dois pontos então podemos afirmar
que:
K(xi.xj) = φ(xi).φ(xj),
para uma função característica φ.
Entretanto, para que esta propriedade seja válida , é necessário que certas
condições, associadas a função kernel escolhida, sejam satisfeitas. No capítulo V
veremos como e porque a utilização de funções kernel representou uma verdadeira
revolução no projeto de classificadores.
Figura III-15 – Rede Perceptron com expansão dos dados
86
3.2.3 – Base de funções: O problema XOR poderia ser solucionado sem a necessidade de projetar os pontos em
um espaço de maior dimensão. É possível a realização de transformações não-lineares,
ou transformações de coordenadas, que tornem o problema linearmente separável no
espaço R2. Esta técnica está associada a aproximação de funções a partir da escolha de
uma base de funções elementares.
Aproximação de polinômios e funções: A aproximação de funções tem como base o teorema da projeção linear, o qual
garante que uma função pode ser aproximada por uma combinação linear de uma base
de funções elementares ψi, associadas a um conjunto de parâmetros, ou seja:
( ) ( ) ( ) ( ) ξαψαα <−= ∑ , erro um para ,, xfxfxxf ii
))
Karl Weierstrass (1815-1897) provou que polinômios de alguma ordem podem
aproximar funções contínuas em determinado intervalo. Formalmente, podemos citar o
teorema de Weierstrass como:
Teorema 3.2: “Seja S[a,b] o espaço de uma função real e contínua definida no
intervalo [a,b]. Se f є S[a,b] então existe uma aproximação polinomial para f(x), x є
[a,b] na forma:
P(x) = ∑i αi . xii, para i = 0,...,n
para um conjunto de coeficientes αi reais tal que | f(x) – P(x) | < ε, para ε > 0.”
Este teorema foi posteriormente extendido para a classe de funções sigmóides
por FUNAHASHI (1989), CYBENKO (1989) e, posteriormente, para as funções
gaussianas, garantindo a ambos modelos a capacidade de aproximadores universais.
Neste sentido, conforme a Figura III-16, construímos uma aproximação f)
para
a função f, seguindo um esquema de construção de um modelo de classificação
semiparamétrico em sua forma mais geral. Esta é a base para a construção dos
classificadores conhecidos como máquinas de vetores suportes (SVM), que serão
87
tratados no capítulo IV, e das funções de base radial (RBF), que serão vistos na seção
seguinte 3.3.
Figura III-16 – Aproximação da função f por uma base de funções
elementares
A escolha das funções elementares, considerando a sua forma e quantidade, no
sentido de formar uma base de aproximação, deve atender, a princípio, a condição de
que as mesmas sejam linearmente independentes, ou seja:
α1ψ1 + α2ψ2 + ... + αnψn = 0 se e somente se [α1,α2,...,αn] = 0
Uma outra condição imposta ao conjunto de funções elementares, é que a base
seja ortonormal, ou seja:
( ) ( ) ( )xdxxx jiji ,. δψψ =∫ ,
onde δ representa a função de Dirac.
Isto significa que uma decomposição ortogonal da base em outra base fornecerá
sempre o valor zero, fornecendo um único conjunto de multiplicadores αi como solução
da aproximação ou projeção da função f(x). Neste sentido, devemos avaliar o conjunto
de multiplicadores através da solução do sistema:
αi = <f(x),ψi(x)>
Pelo fato da base ser ortonormal, temos:
f(x) = ∑i αi .ψi(x)
88
Tomando o produto interno entre f(x) e ψ1(x), computamos:
<f(x), ψ1> = ∑i αi .<ψi(x),ψ1(x)> = α1.<ψ1(x),ψ1(x)>,
fornecendo:
α1 = <f(x),ψ1(x)>
De forma geral, para a avaliação de todos multiplicadores, temos:
αi = <f(x),ψi(x)>, para a aproximação discreta e
αi = ∫ f(x).ψi(x)dx, para a aproximação contínua.
Funções de base senoidal: Existe um grande número de funções elementares que satisfazem as condições
de ortogonalidade da base. As mais comuns, utilizadas em processamento de sinais, são
as funções senoidais, definidas na forma:
ψi(x) = sinc(x-xi) = sin(x-xi)/(x-xi)
Estas funções permitem uma interessante solução para o problema de
aproximação de funções sinais contínuas, como ondas de som, pela realização de
simples amostragens, segundo o Exemplo 3.6.
Exemplo 3.6: De fato, ao utilizarmos uma base de funções senoidais, os
multiplicadores αi são computados como:
αi = ∫ f(x).sinc(x-xi)dx = f(xi),
significando que os pesos se tornam iguais a própria avaliação da funão nos pontos,
conforme mostra a Figura III-17.
Figura III-17 – Aproximação com base de funções Sinc.
89
Funções de base logística: Podemos considerar o modelo Perceptron, com uma camada interna com
funções de ativação sigmóides e um combinador linear na camada de saída, como uma
base de funções elementares, conforme a Figura III-18. Neste caso, cada função
elementar tem a forma de uma função logística, cujo parâmetro representa uma
combinação linear do vetor x de entrada acrescido de um bias, ou seja, definimos:
ψi(x) = 1/ ( 1 + exp(neti )),
onde:
neti = ∑j w i,j xj + bi ,
determinando, como saída do modelo, o valor correpondente ao valor da função:
z(x) = ∑i αi.ψi(x)
Figura III-18 – MLP com base de funções
Neste exemplo, relacionado a um Perceptron MLP, consideramos as funções
elementares como aproximadores globais, no sentido de que suas entradas respondem
ao espaço global do problema. Também, não são definidas ou estáticas, como as bases
de funções seno, mas sim adaptativas, dependendo dos parâmetros associados ao
processamento da camada interna. Neste sentido, podemos dizer que um Perceptron de
uma camada interna, ou uma MLP, aproxima uma função arbitrária, real e contínua,
decidindo a orientação, localização e amplitude de um conjunto de funções de ativação
sigmóides multi-dimensionais, conforme a Figura III-19.
90
Figura III-19 – Aproximação de funções com bases logísticas.
3.2.4 – Redes RBF e funções de base radial A escolha de funções de base radial como funções elementares produz um modelo de
rede denominada de rede de função de base radial ou, simplemente, RBF. Neste caso,
cada função elementar tem como região de influência uma determinada subregião do
espaço de entrada. Neste sentido, consideramos as redes RBF aproximadores locais,
contrapondo as redes MLP de funçõe sigmóides.
As redes RBF, no contexto de modelos conexionistas, foram desenvolvidas por
BROOMHEAD e LOWE (1988), também podem ser destacados os trabalhos de PARK
e SANDBERG (1991), MOODY e DARKEN (1989) e POGGIO e GIROSI (1990) que
mostram o desenvolvimento das redes RBF no contexto da teoria da regularização de
Tikhonov. Como base para a aproximação de funções, o método RBF teve a sua origem
no trabalho de POWELL (1987), relacionado a interpolação exata de pontos no espaço
multi-dimensional.
Topologia e funções de Gauss: Normalmente, na construção de uma rede RBF, utilizamos como função
elementar a função de Gauss, que possui como parâmetro a distância euclidiana, para o
caso unidimensional, ou a distância mahalanobiana, para o caso multidimensional, dos
pontos em relação aos respectivos centros das funções elementares. Assim como nas
redes MLP, as redes RBF são aproximadores semiparamétricos, que necessitam
determinar um conjunto de parâmetros relacionados, respectivamente, ao número de
funções elementares, também chamadas de bases, posição dos centros de cada função,
91
relacionado aos vetores média da função de Gauss, e a abrangência de cada base ou
função, relacionada a variância dos dados na função de Gauss.
A topologia desta rede, definida como uma rede de uma camada interna, para o
caso unidimensional, está representada na Figura III-20.
Figura III-20 – Rede RBF unidimensional.
As funções elementares têm a forma:
ψi (x) = G ( ||x – ci|| ),
considerando ci o centro da iésima base.
Para o caso unidimensional temos:
G( ||x – ci||, σi ) = exp(-1/2.((x – ci)2 /σi2 )),
considerando σi2 a variância dos dados relacionados a iésima base.
Para o caso multidimensional temos:
G(||x – ci||, ∑i ) = exp(-1/2.(xT.∑i-1.x)),
considerando ∑i a matriz de covariância dos dados relacionados a iésima base.
A saída da rede reflete a combinação linear das funções de base relacionada ao
conjunto de multiplicadores αi. Acrescendo um bias ao elemento de saída, temos a
seguinte função de aproximação computada pela rede:
92
z(x) = ∑i αi. G( ||x – ci||, σi2 ) + b, para i = 1, ..., k
Para o caso unidimensional, podemos considerar que cada função elementar ψi
possui centro em ci com variância σi2 e métrica euclidiana relacionada a distância entre
os pontos de entrada x e o respectivo centro ci, fornecendo a seguinte aproximação em
R1, para uma função contínua f, mostrada pela Figura III-21.
Figura III-21 – Aproximação de funções com bases radiais.
3.2.5 - RBF e o problema XOR: A seguir, no Exemplo 3.7, descreveremos como o problema XOR pode ser resolvido a
partir de uma base de funções gaussianas.
Exemplo 3.7: Considerando a utilização, para a solução do problema XOR, das
funções elementares ψi como funções gaussianas e o vetor de parâmetros α = (1, 1),
temos a seguinte projeção dos dados:
( ) ( )( ) ( )0,0 onde
1,1 onde
22
112
2
21
==
==−−
−−
cex
cexcx
cx
ψ
ψ
Resultando na seguinte transformação de coordenadas, representada em R2 pela
Figura III-22, cujos respectivos valores são dados pela Tabela III-2.
93
Figura III-22 – Transformação não linear dos dados para o problema XOR
Pontos ( )x1ϕ ( )x2ϕ (1,1) 1 0,1353 (0,0) 0,1353 1 (0,1) 0,3675 0,3675 (1,0) 0,3675 0,3675
Tabela III-2 – Valores das coordenadas projetadas pelas funções gaussianas
A função de decisão final pode ser implementada, simplesmente, aplicando uma
função de ativação threshold aos valores obtidos de uma combinação linear das
projeções, ou seja:
g(x) = ϕ(ψ1(x) + ψ2(x))
3.3- Perceptron de ótima estabilidade ou de larga margem Algumas pessoas creditam a lacuna de representabilidade do modelo Perceptron,
acusada no trabalho de MINSK e PAPERT (1969), bem como a ausência, naquela
época, de um algoritmo efeciente que resolvesse o problema de atribuição de crédito em
redes MLP ou de múltiplas camadas, a um declínio nas pesquisas e resultados dos
94
modelos chamados de “conexionistas”, em favor de um maior desenvolvimento da
Inteligência Artificial simbólica ou cognitiva.
Tal declínio teria perdurado até o surgimento do algoritmo backpropagation
apresentado por RUMELHART, HINTON e WILLIAMS (1986). Talvez isto seja
verdade, somente no contexto do desenvolvimento e aplicação dos modelos de redes
neurais artificiais feed-forward ou Perceptrons de múltiplas camadas, haja visto o
trabalho amplamente citado de Lecun e outros no reconhecimento de caracteres manuais
de códigos postais utilizando o algoritmo backpropagation e publicado em 1989.
Nós, entretanto, pensamos de uma forma diferente. Principalmente, se
incluirmos os modelos conexionistas em um contexto mais amplo, representado pelo
estudo da aprendizagem de máquinas e do desenvolvimento da neurocomputação. De
fato, ocorreu um grande desenvolvimento dos modelos cognitivos nas décadas de 60, 70
e 80, definindo, praticamente, todo o estado da arte da Inteligência Artificial.
Uma grande quantidade de recursos e investimentos, impulsionado pela guerra
fria e pela ameaça tecnológica nipónica, foi empregado na geração de sistemas ou
arquiteturas que se fundamentavam na formalização do conhecimento e das técnicas de
solução de problemas, como busca e raciocínio, em um nível de abstração semelhante
ao modelo de processamento humano da informação. É desnecessário afirmar que todas
as teorias relacionadas a solução de problemas, sistemas cognitivos, sistemas de
planejamento e de representação do conhecimento foram desenvolvidas neste período.
Porém, não podemos deixar de mencionar que todo desenvolvimento obtido na
área de aprendizagem de máquinas e neurocomputação, também, ocorreram neste
período. Dentre os estudos mais relevantes, podemos destacar o desenvolvimento da
teoria estatística de reconhecimento de padrões, descrita nos livros de NILSSON
(1965), e DUDA e HART (1973). Da teoria de regularização de TIKHONOV e
ARSENIN (1977) aplicada ao desenvolvimento das redes de função de base radial ou
redes RBF, BROOMHEAD e LOWE (1988). Da teoria dos sistemas auto-organizáveis,
incluíndo os mapas auto-associativos de VON DER MALSBURG (1973), KOHONEN
(1982), e a teoria da ressonância adaptativa de Grossberg de 1980.
Também, da teoria dos sistemas dinâmicos, incluindo o modelo BSB de
Anderson, Silverstein, Ritz e Jones em 1977, o modelo aditivo de Cohen e Grossberg
em 1982 e o modelo de Freeman proposto em 1975. Da teoria de aprendizagem
estatística desenvolvida por Vapnik e Chervonenkis durante a década de 70. Da teoria
95
de aprendizagem computacional desenvolvida por Valiant em 1984. Da teoria da
complexidade e probabilidade algorítmica desenvolvidas por Kolmogorov, Chaitin e
Slomonoff na década de 60, incluíndo, finalmente, os critérios MML de WALLACE e
BOULTON (1968) e MDL de RISSANEN (1978).
Talvez, a única exceção seja a teoria de aprendizado por reforço, cujas
publicações mais marcantes datam do final da década de 80 e início dos anos 90.
Entretanto, a primeira utilização de aprendizado por reforço é creditada a Arthur
Samuel, cujo trabalho, um algoritmo para jogar damas, foi publicado em 1959.
Também, a primeira publicação de Sutton e Barto que descreve a utilização deste
paradigma em um elemento processador adaptativo é de 1983. Sendo o método de
diferenças temporais de Sutton e o algoritmo Q-learning de Waltkins publicados,
respectivamente, em 1988 e 1989.
Falta, entretanto, mencionarmos outra grande contribuição, que impulsionou,
principalmente, as redes neurais de topologia recorrente ou de pontos atratores. Trata-se
do desenvolvimento da teoria de aprendizagem de Boltzmann com base em estudos e
propriedades da mecânica estatística. Entre os modelos desenvolvidos, podemos
destacar o surgimento do modelo recorrente de Hopfield em 1982, do algoritmo
estocástico de recozimento simulado de Kirkpatrick, Gelatti e Vecchi em 1983 e da
máquina de BOLTZMANN de HINTON e SEJNOWISKI em 1983. Estes estudos, de
fato, trouxeram um grande impulso, no estudo dos modelos conexionistas,
principalmente dos modelos de redes temporais e neurodinâmicos. Porém, um grupo de
pesquisadores da mecânica estatística, OPPER (1988), KINZEL (1990) e ANLAUF e
BIEHL (1989), se preocuparam com a continuidade do estudo do modelo Perceptron,
mais precisamente, com aspectos relacionados a sua estabilidade e ao seu processo de
convergência, derivando um modelo de Perceptron conhecido como Perceptron de
ótima estabilidade ou Perceptron de larga ou máxima margem.
Essa nova abordagem tem como objetivo principal a construção de um
hiperplano separador que maximiza no espaço de entrada uma medida de distância
entre os pontos de classes contrárias, definida como margem. De fato, existe um número
infinito de hiperplanos capazes de realizar a separação de um conjunto de pontos em um
problema de classificação binária. Entretanto, existirá somente um hiperplano cujo
posicionamento estabelecerá a maior margem de segurança daqueles pontos que estão
mais próximos do mesmo, como veremos a seguir.
96
3.3.1 – Maximização da margem: Na Figura III-23, é fácil verificar a existência de inúmeros hiperplanos que sejam
capazes de separar os pontos seguindo o rótulo de suas respectivas classes. Seja D =
{(x1, y1), ..., (xm,ym)}, um conjunto de treinamento formado por m exemplos, onde x є
Rn e y є {+1, -1}.
A equação de um hiperplano, na sua forma mais geral, é dada por <w,x> + b =
0, e para que um hiperplano seja um hiperplano separador é necessário que as seguintes
condições sejam satisfeitas para todos os exemplos do conjunto de treinamento.
<w, xi> + b > 0 se yi = 1
<w, xi> + b < 0 se yi = -1
Figura III-23 – Hiperplanos separadores.
Evidentemente, estamos procurando a equação de um hiperplano que maximiza
a margem definida para os pontos mais próximos, conforme a Figura III-24 no sentido
de determinar um maior poder de generalização. Os pontos mais próximos a equação
dos hiperplanos são definidos como:
Min x <w, x> + b,
cujo valor será zero para os pontos situados exatamente sobre o hiperplano.
97
Figura III-24 – Hiperplano com máxima margem.
Portanto, para situarmos o hiperplano de modo a maximizar a distância entre os
pontos situados mais próximos à posição do mesmo, devemos maximizar a equação
acima em relação aos parâmetros que definem o posicionamento do hiperplano. Ou seja:
Max w,b { Min x <w, x> + b },
De outra forma, considerando o conjunto de treinamento e a maximização da
margem, temos:
Max w,b { Min x ||x – xi|| : x ∈ Rn, <w, x> + b = 0, i = 1, ... , m}.
Obviamente, estamos procurando um hiperplano que seja responsável por uma
separação linear dos pontos. Desta forma, podemos definir o problema de encontrar o
hiperplano ótimo separador introduzindo as restrições de classificação função objetiva,
fornecendo:
Max w,b { Min x <w, x> + b }
Sujeito a:
<w, xi> + b > 0 se yi = 1
<w, xi> + b < 0 se yi = -1
A solução deste problema será tratada no capitulo seguinte como um problema
relacionado a minimização da norma quadrática do vetor w, sujeito as restrições de
classificação, que no entanto sofrerão algumas modificações no sentido de definir uma
margem normalizada.
98
Uma vez definida a equação do hiperplano, podemos definir uma função de
separação linear, aplicando uma função sinal a esta equação, ou seja:
g(x) = ϕ(<w,x> + b) onde ϕ é uma função sinal.
Os estudos de mecânica-estatística proporcionaram o desenvolvimento de dois
algoritmos clássicos, voltados para a solução do problema relacionado ao Perceptron de
máxima margem, conhecido também, nesta literatura, como Perceptron de estabilidade
máxima.
O primeiro deles, denominado Adatron, foi desenvolvido por ANLAUF e
BIEHL (1989) e o segundo, denominado MinOver, foi desenvolvido KINZEL (1990).
Estes algoritmos possuem pequenas diferenças que serão descritas com maior detalhe
no capítulo VI, que trata, exclusivamente, do estudo e implementação de métodos para o
treinamento de máquinas de vetores suporte.
3.3.2– Convergência e estabilidade: Alguns resultados importantes relacionados as propriedades de estabilidade e
convergência destes algoritmos, foram obtidos da literatura de mecânica-estatístia, e
serão descritos a seguinte:
1 - ANLAUF e BIEHL (1989): ‘Cada ponto estável do algoritmo Adatron
corresponde a um ponto de máxima margem e vice-versa.’
2 - ANLAUF e BIEHL (1989): ‘O algoritmo converge em número finitos de
passos para pontos estáveis, ou seja, define a máxima margem, se uma
solução existe.’
3 - OPPER (1988): ‘O algoritmo converge exponencialmente para a solução
ótima.’
É importante ressaltarmos que o desenvolvimento dos Perceptrons de máxima
margem se aplicava, somente, no contexto dos problemas linearmente separáveis. O uso
de funções kernel nos algoritmos, possibilitanto a maximização da margem no espaço
de características e, conseqüentemente, a solução de problemas não linearmente
separáveis surgiu, no contexto das máquinas de vetores suportes, somente na década de
99
90, CORTES e VAPNIK (1995), muito embora a idéia de introdução de funções kernel
em procedimentos de aprendizado não seja nova.
Esta idéia remonta ao trabalho de AIZERMAN, BRAVERMAN e ROZONOER
(1964) que desenvolveram um método de funções potenciais para o problema de
reconhecimento de padrões aplicado ao algoritmo clássico do Perceptron, e aos
classificadores Bayesianos que utilizam as funções gaussianas para definir as
probabilidades condicionais dos dados.
O Perceptron de máxima magem, associado a uma representação dependente dos
dados, a teoria de aprendizagem estatística de Vapnik e a utilização de funções kernel,
constituem a base do desenvolvimento das máquinas de vetores suportes, que serão
descritas com profundidade no capítulo a seguir.
100
Capítulo IV – Máquinas de Vetores Suporte (SVM)
4.1- Normalização da margem e hiperplanos canônicos A obtenção do hiperplano ótimo que maximiza a margem relacionada ao problema de
dicotomia linear pode ser resolvida, como dissemos no capítulo anterior, através da
minimização da norma quadrática do vetor w. Para tanto, devemos, primeiramente,
definir o conceito de margem normalizada que possibilitará reescrever o hiperplano em
sua forma canônica.
Inicialmente consideremos as restrições de classificação na fórmula:
<w, xi> + b > 0 se yi = 1
<w, xi> + b < 0 se yi = -1
É possível reescrever este sistema na forma:
<w, xi> + b ≥ 1 se yi = 1
<w, xi> + b ≤ -1 se yi = -1,
considerando a alteração dos parâmetros w e b.
Seja a existência de três hiperplanos paralelos e suas respectivas equações
conforme a Figura IV-1.
Considerando H1: <w,x> + b = +1 e H2 = <w,x> + b = -1, é possível
obtermos estas equações através da manipulação dos parâmetros das equações originais.
De fato, sendo, H1: <a,x> + b1 = 0, onde b1 = b´ - δ, substituindo o valor do bias e
dividindo por δ ,temos o hiperplano:
H1: <a/δ, x> + b´/δ = 1, ou H1: <w,x> + b = +1.
Da mesma forma, considerando H2 = <a,x> + b2 = 0 onde b2 = b´ + δ e
substituindo o valor do bias e dividindo por δ, temos o hiperplano:
H2: <a/δ, x> + b´/δ = -1 ou H2: <w,x> + b = -1.
101
Figura IV-1 – Hiperplanos na forma canônica.
O hiperplano ótimo é definido por H: <w,x> + b = 0, sendo o único hiperplano
que separa o conjunto de treinamento com a máxima margem. Para maximizarmos a
margem, é necessário primeiramente determinarmos a sua equação. Em função dos
hiperplanos H, H1 e H2, o valor da margem, denominado γ, é definido como a distancia
de um ponto situado em H2 até um ponto situado em H1, sendo igual a 2 / ||w||.
Isso é facilmente demonstrado projetando-se o vetor diferença (x1 – x2) na
direção do vetor w que é ortogonal a direção dos hiperplanos. Conforme a Figura IV-2:
Figura IV-2 – Normalização da margem.
102
Os pontos para os quais <w, x> + b = +1 e <w,x> + b = -1, são conhecidos
como vetores suportes, e terão um papel fundamental na determinação do hiperplano
ótimo, cujo vetor ortogonal w será descrito como uma combinação linear dos vetores de
treinamento associados.
Sendo x1 um ponto de H1, então <w, x1> + b = +1. Sendo x2 um ponto de H2,
então <w, x2> + b = -1. Computando a diferença das duas expressões temos:
<w, x1 – x2> = 2.
Finalmente projetando no vetor w normal ao hiperplano temos:
<w, x1-x2> / ||w|| = 2 / ||w||.
De uma outra forma poderíamos considerar o valor da margem como a soma das
duas semidistâncias dos pontos até o hiperplano H. Neste caso teríamos:
|<w, x1> + b| / ||w|| + |<w, x2> + b|/||w|| = 2/||w||.
Neste ponto, podemos reescrever o problema de determinação do hiperplano
ótima na sua forma mais conhecida, ou seja:
Max γ
Sujeito a:
<w, xi> + b ≥ 1 se yi = 1, i = 1,..., m
<w, xi> + b ≤ -1 se yi = -1, i = 1,..., m
Que pode ser reescrito na forma:
Max 2/||w||
Sujeito a:
yi . <w, xi> + b ≥ 1, i = 1, ..., m
Segundo VAPNIK(1998), a dimensão VC (h) de um classificador linear é
limitada superiormente conforme a expressão: h ≤ Min{||w||2.R2,d} +1, considerando R
o raio da menor esfera que engloba todo o conjunto de treinamento no espaço associado
de dimensão d. Como veremos mais tarde, este espaço pode ser associado ao espaço de
características. Portanto, ao optarmos pela escolha de um classificador que apresente a
103
menor dimensão VC, é suficiente minizarmos o valor de ||w||2 . Neste caso o problema
primal fica definido como:
Min ½.||w||2
Sujeito a:
yi . <w, xi> + b ≥ , para i = 1, ..., m
Trata-se portanto de um problema de otimização quadrática. Na sessão seguinte,
veremos a sua formulação matemática na forma langrangeana e na forma de Wolfe, bem
como a sua representação em uma topologia de rede Perceptron conhecida como
representação dependente dos dados.
O cálculo do raio da menor esfera que engloba os dados de treinamento, é obtida
através da solução do seguinte problema:
Min R2
Sujeito a:
|| xi – C||2 ≤ R2, para i=1,...,m,
considerando C o centro desconhecido da esfera.
Para aplicar o princípio da minimização do risco estrutural (SRM) na definição
do hiperplano separador, Vapnik introduziu uma restrição na formação dos hiperplanos
separadores de modo a determinar um conjunto de hiperplanos com dimensões VC
variáveis, possibilitando a escolha do hiperplano canônico de menor dimensão VC.
Caso não haja restrição na formação dos hiperplanos canônicos, ou seja, a
escolha dos parâmetros w e b sejam totalmente livres, a dimensão VC do problema,
como já vimos, é equivalente a d+1, sendo d a dimensão do espaço associado.
Entretanto, considerando a norma quadrática de cada vetor w, limitada superiormente
por um valor A, ou seja ||w|| ≤ A, temos a dimensão VC h da classe dos hiperplanos
separadores limitada por: h ≤ Min {A2.R2,n} +1.
Podemos dizer que a normalização e estabelecimento de um limite na norma de
w, faz com que a menor distância de um ponto a um hiperplano canônico seja limitada a
1/A, considerando que a menor distância de um ponto ao hiperplano normalizado é igual
a 1/||w||. Portanto, a classe de hiperplanos separadores fica reduzida ao conjunto de
104
hiperplanos que guardam distâncias de no mínimo 1/A de todos os pontos pertencentes
ao conjunto de treinamento. Geometricamente, em R2 , podemos definir este conjunto de
hiperplanos, construindo uma margem de segurança, ou seja, um cículo de raio 1/A ao
redor de cada ponto, conforme mostra a Figura IV-3.
Figura IV-3 – Restrição do espaço de hipóteses (hiperplanos).
Uma outra interpretação do princípio relacionado a minimização do risco
estrutural pode ser feita, segundo BURGES(1998), analizando-se uma classe de
classificadores relacionados ao posicionamento e ao diâmetro da esfera de raio R em Rd
, conforme a Figura IV-4. Seja D o diâmetro da esfera e M o valor da distância
perpendicular entre dois hiperplanos paralelos que estabelecem a margem.
Considere um partilhamento de pontos de modo que os pontos de uma classe
estejam posicionados na parte superior da esfera e acima da margem, os pontos da
classe contrária na parte inferior da esfera e abaixo da margem. A dimensão VC desta
classe de classificadores pode ser controlada pelo menor valor da margem M
relacionado ao maior valor que o diâmetro da esfera pode assumir.
Para um D constante, ou seja D = 2, o menor valor da margem seria igual a 3/2,
determinando uma dimensão VC igual a 3, ou seja, são partilhados três pontos, como
mostra a figura . Caso a margem fosse menor que 3/2, teríamos um conjunto de
treinamento formado por quatro pontos, não sendo possível o seu partilhamento em R2 .
Para um valor de margem 3/2 < M < 2, a dimensão VC seria igual a 2, e, finalmente,
para M ≥2, teríamos a dimensão VC igual a 1, estabelecendo, portanto, um conjunto de
hipóteses aninhadas segundo o valor da dimensão.
105
Figura IV-4 – Classificadores de mínima margem e máximo diâmetro
A partir dete resultado, VAPNIK (1995) formulou o seguinte teorema para um
espaço de dimensão arbitrária:
Teorema 4.1: “ Para um conjunto de dados em Rd, a dimensão VC h da classe
de classificadores de mínima margem Mmin e máximo diâmetro Dmax é limitada
superiormente por: Min {D2max/M2
min, d} + 1.”
Considerando Mmin = 2/||w|| e D = 2.R, temos o mesmo limite estabelecido
anteriormente, ou seja: h ≤ Min{||w||2.R2,d} +1
4.2 - Formulação matemática lagrangeana: Para obtermos a formulação lagrangeana, é suficiente a introdução de multiplicadores
de lagrange αi ≥ 0, relaxando as restrições de classificação do problema primal, e
substituirmos o valor de ||w||2 pelo produto interno wT.w. Ou seja:
( ) ( ) ∑∑=
+=
+−=m
ii
m
ibixwiyiwTwbwL
11,
21,, ααα
A função lagrangeana deve ser minimizada em relação as variáveis primais w e
b e maximizada em relação a variável dual α, determinando como solução um ponto de
cela. Este ponto pode ser determinado através da maximização de uma função
estritamente dual na qual os parâmetros w e b são eliminados.
106
Esta formulação , determinada forma dual de Wolfe, é obtida substituindo na
expressão os parâmetros primais calculados de modo a satisfazer as condições de
otimalidade de primeira ordem. Ou seja, tomamos o gradiente da função lagrangeana,
computando as derivadas parciais, em relação a w e b e igualamos a zero, definindo as
equações:
00
0
1
1
=⇒=∂∂
=⇒=∂∂
∑
∑
=
=
m
iii
m
iiii
ybL
xywwL
α
α
Substituindo w na função lagrangeana, temos o seguinte problema na forma dual
de Wolfe:
( )( )
mii
m
iiiy
m
i
m
jjxixjyiyji
m
iiLMax
,,1 ,0
01
1 1,
21
1
L=≥
==
= =−
==
∑
∑ ∑∑
α
α
αααα
Solucionando este problema, para as variáveis duais αi*, temos:
ixiym
iiw ∑
==
1
** α para 0* >iα ,
determinando a função de decisão:
( )
+= bxwxg *ϕ , onde ϕ é uma função sinal.
Observe que a equação do hiperplano separador é definida somente em função
dos pontos ou vetores suportes, que nesse caso estão associados aos multiplicadores,
αi*, cujos valores são diferentes de zero.
As restrições de igualdade da formulação dual, ou seja, a condição de que
01
==∑m
iiiy α , estão relacionadas a determinação do parâmetro b, ou seja, do bias, da
107
função discriminante. A sua omissão, força a passagem do hiperplano separador pela
origem, anulando dessa forma o valor do bias associado.
A solução ótima, sendo um ponto de cela, deve atender as seguintes condições
de otimalidade, também denominadas condições de Karush-Kuhn-Tucker (KKT),
relacionadas respectivamente a viabilidade do problema primal, viabilidade do
problema dual e condição de complementaridade, na forma:
( )
( )( ) mibiwxiyi
mii
mibiwxiy
,,1 01,,1 0
,,1 01
L
L
L
==−+
=≥
=≥−+
α
α
A equação relacionada à condição de complementaridade, permite o calculo do
parâmetro b, ou seja, do bias do discriminante. É interessante observar que esta
condição associa a idéia de vetores suportes aos pontos ou vetores que se situam sobre
os hiperplanos H1 e H2. Neste sentido os pontos do conjunto de treinamento situados
fora dos hiperplanos, têm multiplicadores associados com valores nulos, não
influenciando, portanto, na solução do problema, ou seja, na determinação do
hiperplano separador ótimo.
4.3- Representação dependente dos dados: Se analisarmos a função objetiva do problema na forma dual de Wolfe, podemos
observar a existência de um produto interno entre todos os pares de pontos do conjunto
de treinamento definindo uma forma de métrica ou medida de similaridade. O modelo
Adatron, desenvolvido por ANLAUF e BIEHL (1989), define uma forma de
representação dependente dos dados para a obtenção do Perceptron de ótima
estabilidade, baseando-se nestes produtos. A partir desta formulação, que pode ser
descrita por um modelo Perceptron, os autores obtiveram um algoritmo de treinamento
que é equivalente a solução no problema de otimização na forma dual de Wolfe,
utilizando-se de um método de primeira ordem, ou seja, das informações do gradiente
da função em relação ao parâmetro α.
Esta representação, modelada em uma rede Perceptron, ao qual chamaremos de
Perceptron SVM dual, pode ser descrita conforme a figura:
108
Figura IV-5 – Perceptron SVM Dual.
A fórmula de treinamento dos pesos, proposta por Anluf e Biehl em seu
algoritmo Adatron, consiste no computo do gradiente da função dual de Wolfe em
relação ao parâmetro α. Neste caso, para a introdução do bias no modelo, é necessário
reescrever essa função em sua forma relaxada, ou seja:
( )
0
,21,
11 11
≥
−−= ∑∑∑∑== ==
i
m
iii
m
i
m
jjijiji
m
ii yxxyyL
α
αλαααλα
Neste sentido, atualiza-se o vetor α na forma:
ii
Lα
ηα∂∂
=∆ ,
para uma taxa de aprendizagem η, observando o fato de que, as variáveis αi , tem
sempre que serem maiores ou iguais a zero.
Considerando: i
m
jjijji
i
yxxyyL .,11
λαα
−−=∂∂ ∑
=
,podemos atualizar o vetor α,
na forma:
( )[ ]ixgi −=∆ 1ηα ,
onde:
( )
+= ∑
=
λα jij
m
jjii xxyyxg ,
1
ou ( ) ( )ixfiyixg = , sendo:
109
( ) λα += ∑=
jij
m
jji xxyxf ,
1
considerando o parâmetro λ o bias do modelo, o valor f(xi) como o valor computado
pela rede para o vetor de entrada xi e yi a saída desejada associada.
4.4 – Perceptron SVM dual:
4.4.1 – Classificador geométrico: Para um melhor entendimento da representação dependente dos dados no treinamento
de discriminantes definidos por hiperplanos separadores vamos apresentar um algoritmo
simples de reconhecimento de padrões, sugerido no livro de ALEX SMOLA e
BERNHARD SCHÖLKOPF (2002) relacionado ao Exemplo 4.1. Ao final deste
exemplo, será possível estabelecermos uma topologia de rede para um classificador
SVM, considerando a representação dependente dos dados, resultando em um modelo
de Perceptron dual que tem como objetivo maior a maximização da margem.
Exemplo 4.1: A idéia inicial é construir um classificador para um problema de
dicotomia linear em R2, obedecendo a regra de que um novo vetor x deve ter sua classe
atribuída em função de sua localização em relação ao centro mais próximo.
Esta solução deriva uma interessante construção geométrica que pode ser
observada na Figura IV-6.
Figura IV-6 – Problema de reconhecimento de padrões em R2
110
Definindo os centros:
c+ = (1 / m+). ∑ i xi | yi = +1
c- = (1 / m-). ∑ i xi | yi = -1
Podemos definir um discriminante para a classificação de um vetor x tomando a
função sinal do produto interno do vetor diferença d = (x – c), onde c é definido como a
média dos centros, pelo vetor w = (c+ - c-), definido como a diferença dos centros, ou
seja:
g(x) = φ( <d,w> )
= φ( < (x – ( c+ + c-) / 2) , (c+ - c-) > )
= φ( < x, c+> - <x, c-> + b), onde b = ½ (||c-||2 - ||c+||2),
sendo φ a função sinal.
É fácil percebermos que se o vetor x formar um ângulo com o vetor w maior que
90º o mesmo se encontrará mais próximo do centro c- . Caso este ângulo seja menor que
90º o mesmo se encontrará mais próximo do centro c+. Na prática, este discriminante
pode ser considerado como a construção de um hiperplano ortogonal ao vetor w que tem
a mesma direção da reta que une os dois centros, semelhante ao classificador Bayesiano
para o caso de matrizes de covariância iguais e na forma diagonal. Obviamente, se os
centros tiverem a mesma distância da origem, o valor do bias b se igual a zero.
Neste sentido, podemos dizer que neste classificador não é considerada a
influência da dispersão ou da variância dos pontos, o que não acontece nos
classificadores Bayesianos e no discriminante de Fisher.
Retornando a representação dependente dos dados podemos eliminar da função
discriminante, os centros das classes, substituindo os vetores c+ e c- pelas suas
respectivas expressões, ou seja:
g(x) = φ (1/m+ . (∑ i | yi = +1 <x, xi> - 1/m - ∑ i | y = -1 <x, xi> + b),
considerando:
b = ½.(1/m -2.(∑ {(i,j) | yi = yj = -1} <xi, xj> - 1/m+2.∑ {(i,j) | yi = yj = +1}
<xi, xj>),
111
Se associarmos uma função de densidade de probabilidades aos produtos
internos das expressões, podemos redefinir o nosso classificador como um caso especial
de classificação Bayesiana, mais precisamente, a adoção do critério ML, pelo fato de
desconsiderarmos a existência das probabilidades a priori.
Podemos, também, construir uma aproximação para as duas distribuições de
probabilidade utilizando uma estimativa não paramétrica de densidade de classes
baseada na técnica conhecida como Parzen Windows, ou seja, definindo:
P+(x) = 1/m+.∑ i | yi = +1 K(x,xi)
P-(x) = 1/m -.∑ i | yi = -1 K(x,xi) ,
sendo K uma função kernel que descreve uma medida de similaridade entre os pontos. É
importante ressaltar que este é o melhor classificador que pode ser obtido sem uma
informação a priori das probabilidades das duas classes.
Geometricamente, podemos dizer que este classificador mede a distância dos
vetores de entrada x até o hiperplano definido pelo vetor w. Isso pode ser constatado
considerando o produto interno dos vetores w e d como uma medida complementar a
distancia do vetor x ao hiperplano. Nesse sentido, podemos fazer uma analogia deste
classificador com uma máquina de vetores suportes, através do uso de uma
representação dependente dos dados e da substituição e da utilização do hiperplano
separador ótimo, que maximiza a margem entre os vetores suporte, como discriminante.
4.4.2 – Estratégias de aprendizado: Seja a função computada pela rede dual do Perceptron associada a representação
dependente dos dados, na forma:
f(xi) = ∑j αjyj<xi, xj> + λ, para j = 1,...,m
Ou, considerando a separação das classes:
f(xi) = ∑ j | yj = +1 αj<xi, xj> - ∑ j | yj = -1 αj <xi, xj> + (λ+ + λ - ) , para j
= 1,...,m
112
Com a correção dos pesos dada pela fórmula:
( )[ ]ixgi −=∆ 1ηα ,
sendo:
g(xi) = yif(xi)
A estratégia de aprendizado do Perceptron SVM dual tem a mesma relação com
o classificador apresentado anteriormente, ou seja, ambos tem uma representação
dependente dos dados e determinam a distância de um vetor de entrada x até o
hiperplano no sentido de estabelecerem um processo de correção. A diferença
fundamental é que este novo hiperplano é um hiperplano adaptativo definido em função
dos vetores suportes associados aos respectivos multiplicadores. No classificador
anterior o hiperplano foi definido previamente, em função do posicionamento dos
centros das classes.
Também, é importante ressaltarmos que a fórmula de correção dos pesos tem o
mesmo significado da fórmula de correção do algoritmo Perceptron. Ou seja:
Se αi ≠ 0 significa que o vetor associado é um vetor suporte. Portanto, o valor de
g(xi) = 1, significando que não ocorrerá correção do hiperplano e o ponto permanecerá
na margem. De outra forma, se αi = 0 significa que o vetor associado não é um vetor
suporte. Neste caso, temos duas situações a considerar:
A primeira é quando g(xi) > 1 indicando que o valor de αi é diminuído. Neste
caso, o vetor associado é um vetor que não esta forçando a margem, pois está
posicionado de forma correta em relação ao hiperplano. Portanto, o seu valor deve ser
diminuído para que o mesmo atinja o valor zero e não seja um vetor suporte.
A segunda é quando o g(xi) < 1 que implica que o valor de αi é aumentado.
Neste caso, o vetor associado é um vetor que esta forçando a margem, pois está
posicionado dentro da margem ou de forma incorreta em relação ao hiperplano.
Portanto seu valor deve ser aumentado para que o mesmo passe a ser um vetor suporte.
113
Podemos observar, entretanto, que existe uma diferença fundamental na forma
de correção do algoritmo Adatron em relação a correção do algoritmo Perceptron. No
algoritmo Adatron, a exemplo das redes RBF, é estabelecido uma métrica como medida
de similaridade dos dados. De fato, se introduzirmos uma métrica relacionada a norma
quadrática ou distancia mahalanobiana dos vetores, teremos um classificador
equivalente a um classificador Bayesiano ou uma rede RBF.
No modelo Perceptron, a correção dos pesos tem como base uma minimização
dos erros de classificação, não se importando com o posicionamento do hiperplano
separador. Também no algoritmo Adatron, a correção dos pesos é no sentido de
posicionar o hiperplano de modo a estabelecer uma margem máxima entre os pontos
definidos como vetores suportes. No modelo Perceptron, a correção dos pesos, como já
dissemos, é no sentido de corrigir os erros de classificação.
Finalmente, no algoritmo Adatron e, em todas as máquinas de vetores suporte a
exemplo do Perceptron dual, a solução do problema ocorre no plano dual com a
identificação dos vetores suporte através do cálculo dos multiplicadores. O
posicionamento do hiperplano é uma conseqüência da solução deste problema. No
modelo Perceptron a solução do problema ocorre no plano primal, sendo objetivo
principal a computação explicita do vetor w. Achamos que esta abordagem alternativa
das máquinas de vetores suporte, ela é conseqüência principalmente da nova forma de
representação dependente dos dados.
Em problemas de dicotomias lineares, podem acontecer casos de separabilidade
não linear mais suaves, onde alguns pontos do conjunto de treinamento se
posicionariam entre os hiperplanos H1 e H2, sem, no entanto, ocorrerem erros de
classificação. Este problema será tratado com a introdução de uma constante de erro nas
restrições de classificação definindo uma nova forma de maquina de vetores suporte,
denominada de Soft Margin.
4.5- SVM com Soft Margin Na utilização de um hiperplano ótimo como separador podem ocorrer problemas onde o
conjunto de pontos não seja perfeitamente linearmente separável. Neste caso pode
114
existir alguma forma de overlap entre as classes, provocando uma violação das
restrições de classificação do sistema.
A forma mais usual de corrigir este problema consiste na introdução de
variáveis de folga não negativas, ou de relaxação das restrições, que permitirão que o
conjunto de treinamento seja separado linearmente com um número mínimo de erros
relacionado ao controle da capacidade do classificador.
4.5.1 – Flexibilização da margem: Seja a introdução das variáveis de folga ou de relaxação iε = 1, ... l onde 0≥iε .
Devemos minimizar o funcional de erro:
∑i єiσ , i = 1,...,l
Sujeito as restrições de classificação na forma relaxada:
ii bwx ε−≥+ 1 para 1+=iy
1−≤+ ii bwx ε para 1−=iy ,
permitindo, desta forma, segundo a Figura IV-7, que alguns pontos ultrapassem a
barreira dos hiperplanos segundo os valores de iε .
Claramente, os valores de iε estão associados aos erros de treinamento. Se o
valor de єi estiver contido no intervalo, 0 < єi < 1, os pontos associados ultrapassam a
margem de segurança, sem, no entanto, ocorrerem erros de classificação. Por outro
lado, se єi > 1, então o vetor associado αi está sendo classificado na classe contrária,
ocorrendo um erro de classificação.
Se os vetores associados aos erros de classificação puderem ser separados do
restante do conjunto de treinamento, então os dados remanescentes poderão ser
treinados de forma a definir um hiperplano separador ótimo. Este problema pode ser
tratado de maneira formal através da minimização de um funcional que inclui uma
medida de capacidade do classificador, associado a maximização da margem, e uma
medida de penalização dos erros de treinamento. Considerando σ = 1, temos:
Min ½ wt . w + C.φ (∑iєi), para i=1,...,l
115
Sujeito a:
ii bwx ε−≥+ 1 para 1+=iy
1−≤+ ii bwx ε para 1−=iy ,
0≥iε ,
onde o parâmetro C é uma constante positiva que controla a penalização do erro e o
funcional φ deve ser uma função monotona convexa com φ (0) = 0.
Figura IV-7 – SVM com soft margin
4.5.2 – Norma L1: Considerando φ (u) = uk e k = 1 temos a primeira forma de solução do classificador
com margem soft relacionada a norma linear ou normal L1:
∑ ⋅ + ⋅ єi C w w Min t 2 1
Sujeito a:
( ) 01 ≥−++⋅⋅ ii bxwyi ε
0≥iε i: 1 .. l
Introduzindo os multiplicadores α e µ , temos:
( ) ∑∑∑∑∑ −−++−+ iiiiiiiiit bwxyCwwMin εµεαααε
21
ou
116
( ) ( )
0021
≥≥
−−+++− ∑∑∑
µα
µαεαα
i
CbwxywwMin iiiiiiit
Tomando-se o gradiente da função lagrangeana em relação a w, b e є, e
igualando a zero de modo a satisfazer as condições de otimalidade de primeira ordem,
temos:
00 =−⇒=∂∂ ∑ iii xywwL
α
00 =⇒=∂∂
ii ybL
α
00 =−−⇒=∂∂
iii
CLµα
ε
Substituindo o valor de w na expressão da função lagrangeana e introduzindo as
demais equações como restrições do problema, anulamos a dependência da função
objetiva em relação aos parâmetros w, b e є, estabelecendo novamente o problema na
forma dual de Wolfe, ou seja:
( )( ) ∑∑∑ −=i j
jijijii xxyyLMax ,21
αααα
Sujeito a:
∑yiαi = 0
C - αi - µi = 0
µi >= 0
αi >= 0.
Considerando µi = C - αi e µi ≥ 0, temos: αi ≤ C, possibilitando rescrever o
problema na forma:
( )( ) ∑∑∑ −=i j
jijijii xxyyLMax ,21
αααα
Sujeito a:
∑yiαi = 0
0 ≤ αi ≤ C
117
Interpretação das condições de otimalidade: Definindo, novamente, as condições de Karush-Kuhn-Tucker (KKT), temos:
( ) 01 ≥−++⋅⋅ ii bxwyi ε i: 1 .. l
µi, αi >= 0 , i de 1 ... m
( )( )0
01=
=−++
ii
iiii bwxyεµ
εα
Dessa forma, pode ser feita a seguinte análise de viabilidade considerando,
agora, uma flexibilização na classificação dos dados:
1º caso: O vetor esta fora das margens.
Se 00 =⇒=⇒= iii C εµα
derivando:
( ) 01 ≥−+ bwxy ii
2º caso: O vetor ultrapassa as margens.
Se Ci =α => µi = 0 => єi >= 0
derivando:
( ) 01 ≤−+ bwxy ii .
3º caso: O vetor está sobre a margem.
Se Ci << α0 => µi > 0 => єi = 0
derivando:
( ) 1=+ bwxy ii
A seguir fazemos algumas observações relacionadas a análise da viabilidade
apresentada:
1ª - Se αi > C e, consequentemente єi > 1, então ocorre uma desclassificação do
vetor associado. Portanto, quanto maior o valor de C maior será a relaxação das
restrições de classificação e menor será a medida de margem, reduzindo o poder de
generalização do classificador. Esta analise condiz com a teoriza de generalização de
0≥iε
118
Vapnik no sentido de que modelos de menor capacidade generalizam melhor do que
modelos de maior capacidade. Observe que no caso das maquinas de vetores suporte a
capacidade do modelo esta relacionada ao valor do parâmetro C.
2ª - É interessante observarmos, também, o comportamento do erro medido pela
distância do ponto ou vetor ao hiperplano, em relação a variação dos parâmetros αi.
Definindo o erro do iésimo vetor como:
iii ybwxE −+= , representado, em módulo, pela equação:
iii EyR = ,
podemos concluir:
Se 00 ≥⇒= ii Rα
Se 00 ≅⇒<< ii RCα
Se 0≤⇒= ii RCα
3ª - Podemos notar, também, que o hiperplano separador é definido somente em
função dos vetores que estão posicionados sobre as margens, ou seja, aqueles vetores
para os quais 0 < αi < C.
4.5.3 – Norma L2: O desenvolvimento de um classificador de Soft Margin pode ser feito, também,
considerando a utilização de uma norma L2, para definição do funcional de erro, ou seja,
φ (u) = u2, derivando a solução do seguinte problema, para a função lagrangeana obtida
pela introdução dos multiplicadores α e µ a sua forma primal:
( ) ∑∑∑∑∑ −−++−+ iiiiiiiiit bwxyCwwMin εµεαααε 2
21
Tomando-se o gradiente desta função em relação a w, b e є, e igualando a zero
de modo a satisfazer as condições de otimalidade de primeira ordem, temos:
119
CCL
ybL
xywwL
iiiiii
i
ii
iii
2020
0
0
µαεµαε
ε
α
α
+=⇒=−−⇒=
∂∂
⇒=∂∂
=⇒=∂∂
∑
∑
Considerando a equação µiєi = 0, obtida das condições KKT, podemos
considerar єi = (αi / 2C) para µi = 0. Substituindo os valores de w, єi e µi na expressão da
função lagrangeana e introduzindo como restrições as equações restantes relacionadas
as condições de otimalidade, temos:
Max ( )C
xxyyL i
i jjijijii 2
,21 2∑∑∑∑ −−=
ααααα
Sujeito a:
∑αiyi = 0
αi >= 0
FazendoC21
−=λ ,e substituindo o produto interno dos vetores por uma função
kernel K(xi, xj), podemos rescrever o problema na forma:
Max ( ) ( ) ∑∑∑∑ −−= 2,21
ii j
jijijii xxKyyL αλαααα
ou
Max ( ) ( )∑∑∑ ′−=i j
jijijii xxKyyL ,21
αααα
onde:
( ) ( ) λ+=′ jiji xxKxxK ,, para j = i
( ) ( )jiji xxKxxK ,, =′ para ij ≠
Como podemos observar, para a solução do problema de Soft Margin, é
suficiente a introdução de uma pequena constante positiva λ na diagonal da matriz
Kernel. Vale ressaltar que essa constante tem uma relação com o parâmetro C de
regularização.
120
Em muitos problemas reais, existe o desbalanceamento entre a quantidade de
dados em cada uma das classes. Também em alguns casos a ocorrência de certo tipo de
erro, em relação a determinada classe, pode acarretar uma conseqüência mais séria
quando comparado aos erros decorrentes de uma desclassificação relacionada a classe
contrária. Neste caso é possível realizar uma penalização do erro em diferentes classes,
introduzindo dois valores diferentes ao parâmetro de controle C e λ.
Esta nova abordagem é tratada como o problema de Soft Margin assimétrico.
Em relação a norma L1 teríamos:
0 ≤ αi ≤ C+ , para yi = +1 e
0 ≤ αi ≤ C- , para yi = -1.
Em relação a norma L2 teríamos:
K(xi, xi) = K(xi, xi) + λ+, para yi = +1 e
K(xi, xi) = K(xi, xi) + λ - , para yi = -1
4.5.4 – Controle da capacidade de generalização: Para o controle da capacidade de generalização de um classificador devemos observar o
comportamento de dois fatores, a exemplo do dilema bias-variância , que são,
respectivamente, o erro de treinamento ou risco empírico e a capacidade ou
complexidade do classificador medida pela sua dimensão VC. Na solução do
classificador SVM sem soft margin, quando os dados são linearmente separáveis,
procuramos obter o classificador que possui a menor dimensão VC e que satisfaça as
restrições de classificação reduzindo o erro de treinamento a zero, satisfazendo, desta
forma, a razão de Occam.
Entretanto, mesmo nos problemas onde os dados são linearmente separáveis, é
possível a obtenção de um melhor controle da capacidade de generalização introduzindo
na função objetiva do classificador um funcional relacionado ao erro de treinamento.
Neste sentido, desenvolveram os classificadores SVM de soft margin, nos quais o
parâmetro de controle C ou λ exercem um papel importante na relação entre a
freqüência de erros e a complexidade do modelo.
121
Desta forma, podemos construir um classificador com boa capacidade de
generalização, mesmo em problemas onde não é possível uma separação linear dos
dados, seja no espaço de entrada ou no espaço de características com a utilização de
funções kernel, minimizando o risco esperado em uma forma análoga a utilização de
um funcional de regularização no problema de aproximação de funções.
Uma heurística muito utilizada para a determinação do parâmetro C consiste em
iterativamente diminuir o valor de C abaixo do valor do maior multiplicador e realizar o
treinamento da rede, submetendo, posteriormente, a mesma a um conjunto de validação.
Os valores do erro, computados para cada hipótese de treinamento em função do
parâmetro C, tem a forma de uma parábolda com um ponto de mínimo. A utilização de
valores de C muito baixos emboram reduza a complexidade das hipóteses, não se
justifica, pois ocorre uma restrição na classe de funções, tornando a função de decisão
do modelo muito simples e acarretando um maior erro de aproximação.
VAPNIK(1998) apresenta um resultado simples, mais importante no sentido de
associar a capacidade de generalização de um classificador SVM em termos do número
de vetores suportes. Neste sentido, é admitido um limite superior na expectativa da
probabilidade de erro, que independe da dimensão do espaço de entrada, mas somente,
da razão entre o número de vetores suportes e o tamanho do conjunto de treinamento,
dado pelo parâmetro m, ou seja:
E[Pr(erro)] = E[número de vetores suportes]/ m ,
indicando que um número menor de vetores suporte possibilita uma melhor
generalização.
Este resultado pode ser compreendido de forma bem intuitiva através da seguinte
analise extraída de BURGES (1998). Seja a probabilidade de erro computada para um
conjunto de treinamento de tamanho m-1. Podemos definir o seu valor esperado como
uma média de m experimentos. Em cada experimento, promove-se a retirada de um
exemplo, realiza-se o treinamento do classificador, e, em seguida, o teste sobre este
exemplo. Neste caso, podem ocorre duas hipóteses.
122
Na primeira, o exemplo retirado não é um ponto de vetor suporte, portanto, a
forma e posição do classificador não se modificam, ou seja, não afetam o hiperplano
separador mantendo constante a taxa de erro. Na segunda, o exemplo retirado é um
ponto de vetor suporte. No pior caso, este ponto pode se tornar um erro de classificação
quando testado, aumentando, desta forma, a taxa de erro do classificador.
Portanto, é razoável admitir que a sua capacidade de generalização seja
inversamente proporcional a quantidade de vetores suportes e diretamente proporcional
ao tamanho do conjunto de treinamento.
Muitas vezes, entretanto, este resultado não se confirma. Existem inúmeros
exemplos de treinamento nos quais o desempenho do classificador se reduz com a
diminuição do número de vetores suportes.
Através de uma explanação geométrica, é possível demonstrar que os
classificadores baseados em SVM, nem sempre produzem discriminantes com a mesma
qualidade dos classificadores Bayesianos. Seja, portanto, um problema de classificação
binária associado a um conjunto de treinamento formado por m pares (xi,yi), para o
qual normalizamos o vetor w, ||w|| = 1, e fixamos o valor do bias igual a zero, b = 0,
forçando, desta forma a passagem do hiperplano separador pela origem.
Seja f a função discriminante associada. Podemos constatar que o espaço de
versões H, é formado pelo conjunto de hipóteses, descritas como: H = {w | yi.f(xi) > 0;
i=1,...,m, ||w|| = 1}. Pode ser demonstrado que a solução SVM coincide com o centro
de Tchebycheff da maior esfera contida em H. Entretanto, nem sempre este ponto
coincide com o ponto relacionado ao ponto de Bayes.
Para solucionar este problema têm sido apresentados novos algoritmos de SVM
que procuram uma aproximação com o ponto de Bayes. Este algoritmos desenvolvidos
por HERBRICH, GRAEPEL e CAMPBELL (2001) são chamados de Máquinas de
pontos Bayesianos.
123
4.6 - Analogia Mecânica: Os trabalhos de BURGES (1998) e SCHÖLKOPF (2000) fazem uma analogia da
estrutura do problema de otimização de um classificador SVM e sua respectiva solução,
com as condições impostas pelas equações de equilíbrio mecânico.
Considerando um problema nos quais os pontos ou vetores estão dispostos em
R2, cada vetor suporte xi exerce uma força equivalente ao valor do multiplicador αi no
sentido do valor do sinal iy na direção do vetor w, ou seja, perpendicular ao hiperplano.
Portanto, podemos considerar que o somatório de forças se anula, ou seja:
∑ = 0forças
ou, de forma análoga, considerando wyF iii
)α= , obtêm-se:
∑=
=N
iii wy
1
0)α ,
onde w) representa o vetor unitário de direção w.
Podemos considerar que o equilíbrio desse sistema de forças, determina a
posição, ou bias do hiperplano.
Também, podemos verificar que o somatório dos momentos se anula, ou seja:
∑ = 0torques
ou, de forma análoga, considerando que 0=∑ ixFi , temos:
( ) 0==∑ wwwyx iii))α ,
onde ∑=
=N
iiii xyw
1
α , sendo que ix representa os vetores suporte e wyii)α as forças
associadas.
De fato: ( ) 0=== ∑∑ www
wwyxwyx
iiii
iiii αα ) .
124
Podemos considerar que o equilíbrio do sistema de torques, determina a direção
(vetor w) do hiperplano.
Para o caso do problema de Soft Margin podemos considerar a introdução da
restrição αi ≤ C como a imposição de um limite superior no modulo das maiores forças
que podem ser exercidas sobre o hiperplano.
Esta analogia mecânica, é interessante no sentido de demonstrar que os vetores
de treinamento associados aos maiores valores de α tem maior influência no
posicionamento final do hiperplano separador, justificando, de alguma forma, a
denominação dos vetores suportes.
4.7 – SVM e Multi-classificação: Para a utilização de classificadores SVM em problemas de multi-classificação, devemos
considerar o treinamento de um conjunto de hiperplanos separadores formando uma
função de decisão mais complexa. Este processo pode ser desenvolvido de duas formas
diferentes, que apresentam, entretanto, resultados equivalentes.
A primeira consiste, como ocorre implicitamente no treinamento do Perceptron
de múltiplas camadas, consiste no método um contra o resto, ou seja, para cada classe
do problema, treinamos um classificador considerando como positivos os exemplos da
classe e negativos os demais. Temos, portanto, a geração de n hiperplanos separadores,
conforme a Figura IV-8, sendo n o número de classes existentes.
Neste caso, a função de decisão rotula como classe de um novo exemplo aquela
associada ao hiperplano que esteja mais afastado do vetor, no sentido de garantir uma
maior generalização. Considerando g(x) a função que computa a distância de um ponto
ao hiperplano associado, e c(x) a função que rotula a classe, temos:
c(x) = Arg Max i {gi(x)}, onde gi(x) = wix + bi , sendo wi = ∑j(αj)i.yj.φ(xj), j∈SV.
125
Observe que, desta forma, são realizados n treinamentos, cada um contendo todo
o conjunto de exemplos. Para testarmos a pertinência de um novo exemplo computamos
n distâncias e realizamos n-1 comparações.
Figura IV-8 – SVM multiclassificação: um contra todos
A segunda alternativa consiste em treinarmos uma classe contra a outra,
considerando somente os exemplos de treinamento associados as respectivas classes. No
entanto, são realizados Cn,2 ou n.(n-1)/2 treinamentos, com a geração de n.(n-1)/2, ou
seja, um número quadrático de hiperplanos separadores na forma gi,j(x) para i≠j. Neste
caso, a função de decisão envolve a formação de uma árvore binária de decisão
contendo n vértices terminais relativos as n classes e 1 + 2 + ...+ n-1 = n.(n-1)/2
vértices internos, correspondentes a confrontação de todos os pares de hiperplanos
obtidos.
A topologia desta árvore pode ser observada na Figura IV-9, para um problema
envolvendo quatro classes. A existência de ciclos não descaracteriza o processo de
decisão na forma de uma árvore decisória, sendo, o custo de classificação de um novo
exemplo, equivalente a realização de n-1 comparações, cada uma envolvendo a
avaliação de uma função de decisão do tipo φ(gi,j(x)), que estabelecem um caminho da
raiz até um vértice terminal associado a classe vencedora.
126
Figura IV-9 – Árvore de decisão para problema de multiclassificação.
127
Capítulo V – Classificadores Kernel O desenvolvimento de classificadores kernel tem três motivos principais. O primeiro
está relacionado a solução de problemas não linearmente separáveis por hiperplanos
separadores em um espaço de mais alta dimensão, denominado de espaço de
características F. O segundo está relacionado a necessidade de se extrair propriedades e
relacionamentos de conjunto de dados altamente estruturados como seqüências, grafos,
árvores, etc, e que não tem, a princípio, uma forma vetorial numérica apropriada. O
terceiro, e menos divulgado, está relacionado a estimava de funções de densidade de
probabilidade em modelos não paramétricos de aprendizagem.
A utilização de funções kernel na solução de problemas de reconhecimento de
padrões, foi feita, inicialmente, por AIZERMAN, BRAVERMAN e ROZONOER
(1964) que introduziram estas funções em classificadores Perceptrons de forma a
tornarem possível a sua utilização na solução de problemas não linearmente separáveis.
No contexto dos classificadores SVM, a utilização de funções kernel foi proposta no
trabalho apresentado por BOSER, GUYON e VAPNIK (1992).
Ultimamente, um grande número de algoritmos de aprendizagem tem utilizado a
estrutura de Kernel destacando-se os processos gaussianos como as funções de base
radial, RBF kernels, CAMPBELL (2000), na análise de componentes principais, KPCA
, SCHOLKOPF, SMOLA e MULLER (1996), em Discriminante de FISHER, KFD,
MIKA, RATSCH, WESTON SCHOLKOPF e MULLER (1999), nos modelos de
Perceptron de larga margem, Kernel Adatron, FRIESS, CRISTIANINI e CAMPBELL
(1998), no Perceptron de votação, FREUND e SCHAPIRE (1998) em máquinas de
pontos de Bayes, HERBRICH, GRAEPEL e CAMPBELL (2001), e, também, nos
processos de boosting como o algoritmo AdaBoost, FREUND e SCHAPIRE (1997).
Quanto ao desenvolvimento de kernels para dados estruturados podemos
destacar o trabalho de JAAKKOLA e HAUSSLER (1998) no desenvolvimento de
kernels a partir de modelos como modelos de Markov ou HMM , com aplicação em
bioinformática na análise de seqüências de proteínas ou moléculas de RNA e DNA.
128
Também, devemos destacar o desenvolvimento de kernels a partir da análise da
sintaxe da representação dos dados. Neste caso, destacamos os modelos baseados no
cálculo de similaridades aplicados a strings proposto por LODHI, SHAWE-TAYLOR,
CRISTIANINI e WATKINS (2001), todos utilizados, principalmente, em problemas de
categorização de textos.
Observa-se, recentemente, o desenvolvimento de kernels baseados em estruturas
de árvores, grafos e gramáticas, com aplicação em problemas de classificação
associados ao reconhecimento de linguagens mais complexas como a linguagem
natural, e estruturas secundárias de proteínas.
A utilização pioneira de funções kernel, e, talvez, a justificativa deste nome,
parece estra relacionada ao trabalho de PARZEN (1962) que desenvolveu uma técnica
não paramétrica para a estimativa de funções de densidade de probabilidade,
denominada janelas de Parzen ou Parzen windows. Neste trabalho, Parzen introduziu
uma classe de funções, denominadas, também, de funções potenciais, cujo principal
objetivo era o de aproximar um conjunto de pontos de determinado espaço de entrada,
ou seja, uma função de densidade, em uma expansão ou base de funções suaves.
Neste trabalho, daremos ênfase ao estudo e desenvolvimento de kernels para a
solução de problemas não linearmente separáveis, no contexto, sobretudo, dos
classificadores baseados em SVM e Perceptron. Quanto ao projeto de funções kernel,
para a extração de similaridades de dados estruturados, daremos ênfase ao
desenvolvimento de soluções relacionadas a cadeias de caracteres ou strings aplicados a
problemas de classificação de textos e seqüências biológicas. Para melhor compreensão
dos classificadores kernel vamos apresentar, inicialmente, alguns conceitos básicos
relacionados às funções kernel e ao espaço de características.
5.1 – Funções Kernel No estudo de funções kernel, para a solução de problemas não linearmente separáveis, é
de fundamental importância termos em mente que a função a ser escolhida será aquela
que dará o formato do discriminante no espaço de entrada do problema. Assim, se o
problema requer uma função discriminante quadrática, seja uma hipérbole ou elipse,
129
para a sua solução, devemos utilizar uma função kernel polinomial, que posibilitará a
utilização de uma representação linear, deste discriminante, no espaço de características.
5.1.1 - Espaço e Funções de Características Quando o conjunto de dados não é linearmente separável aplicamos uma transformação
não-linear do espaço de entrada original, em um espaço de mais alta dimensão,
denominado espaço de características. Esta transformação pode ser obtida através do
uso de várias funções de mapeamento como exemplo: polinomiais, logísticas,
gaussianas, etc. Após esta transformação, os dados são separados de forma linear no
espaço de características através da construção de um hiperplano separador por um tipo
de classificador como as máquinas SVM, conforme o exemplo da Figura V-1, que
mostra uma projeção de pontos de um espaço de entrada R2 para um espaço de
características R3.
Figura V-1 – Espaço de entrada e espaço de características
A arquitetura básica de uma máquina kernel, CAMPBELL (2000), consiste na
escolha de uma função kernel que é responsável pela realização da transformação não-
linear, seguida de um combinador linear de saída, a exemplo das redes RBF, segundo a
Figura V-2, que mostra a topologia de um classificador kernel generalizado para
múltiplas saídas. A utilização de máquinas kernel, nas quais se incluem as máquinas de
vetores suportes, é motivada, principalmente, pelo teorema de Cover sobre a
separabilidade de padrões. Como já vimos, no primeiro capítulo, COVER (1965) afirma
que um problema complexo de classificação de dados não linearmente separável tem
uma alta chance de ser linearmente separável em um espaço de alta dimensão,
130
considerando uma função de mapeamento denominada função característica. Nesta nova
ótica, projetando os dados para um espaço de maior dimensão, obtemos um conjunto de
grupamentos, ou clusters, dos dados, esparsamente distribuídos e mais facilmente
separáveis.
Figura V-2 - Classificador kernel com múltiplas saídas
De forma simplificada, podemos resumir a utilização de funções kernel
apresentando o seguinte problema: Seja um conjunto de pontos ou dados pertencentes
ao espaço euclidiano RD, definido como espaço de entrada, seja F um espaço de mais
alta dimensão definido como espaço de características, sendo uma generalização do
espaço euclidiano. Definindo uma função de mapeamento φ:RD → F, x → φ(x),
podemos estabelecer uma função kernel, K | K(x,xi) = <φ(x).φ(xi)>, na forma de um
produto interno do mapeamento de dois vetores associados a função característica φ,
sendo x e xi ∈ RD.
É importante ressaltar que o algoritmo de treinamento de um classificador
kernel como uma máquina de vetores suportes, depende, somente, do produto interno
dos vetores no espaço de entrada, seguido da avaliação da função kernel K, afim de
determinar uma superfície de decisão linear ou hiperplano separador no espaço de
características. Este processo, denominado kernel trick, está descrito na topologia de
rede apresentada na Figura V-3.
131
Figura V-3 – Função Kernel e funções características.
Portanto, ao projetarmos os pontos no espaço de características, através do
mapeamento obtido pela função φ, necessitamos definir, somente, a função kernel , não
necessitando avaliar a função φ explicitamente e nem mesmo conhece-la. Utilizando a
função K no algoritmo de treinamento obtemos, da mesma forma, uma superfície de
decisão linear no espaço de características F, a qual corresponde a uma superfície de
decisão não linear no espaço de entrada.
Basicamente, aplicamos o mesmo algoritmo de treinamento no espaço F, para
um conjunto de treinamento formado por: {(φ(x1),y1), (φ(x2),y2), ..., (φ(xm),ym)}. Para
melhor entedimento deste processo vamos utilizar um exemplo descrito em MULLER,
MIKA, RATSCH, TSUDAT e SCHOLKOPF (2001).
Exemplo 5.1: Sejam x,y ∈ R2. Definindo uma função kernel K como polinomial
quadrática, temos K(x,y) = (x.y)2. Portanto, deve haver um espaço F de mais alta
dimensão e uma função de mapeamento φ, que viabilizem a definição deste kernel. De
fato, para um espaço tridimensional, ou seja F=R3, podemos determinar uma função de
mapeamento ou monomial de segunda ordem φ(x) = φ(x1,x2) = (x12,√2.x1.x2, x2
2) que
garante a existência da função kernel. Para tanto, temos:
φ:R2 → R3 (F),
(x1,x2) → φ(x1,x2) = (x12,√2.x1.x2, x2
2)
132
Observando a Figura V-1, adaptada a este exemplo, podemos constatar que os
pontos projetados no espaço de características permitem uma separabilbidade linear, ao
contrário do espaço de entrada, que exige um elipsóide como superfície separadora.
Veremos agora, como estes valores podem ser computados diretamente, com o uso da
função kernel K, não necessitando avaliar, explicitamente, a função φ.
Para tanto, é necessário a avaliação de produtos internos relacionados a
função de mapeamento no espaço de características, ou seja:
<φ(x),φ(y)> = (x12,√2.x1.x2, x2
2).(y12,√2.y1.y2, y2
2) T
= ( (x1,x2).(y1,y2)T)2
= (<x,y>)2
= K(x,y).
Portanto, o produto interno dos vetores no espaço de características pode ser
substituído pela avaliação da função kernel tendo como argumento o produto interno
dos vetores no espaço de entrada.
Entretanto, nem todas as funções podem ser utilizadas como kernel, ou seja, nem
todas as funções garantem uma transformação na forma:
K : RD x RD → R , tal que φ:RD → F e K(x,y) = <φ(x),φ(y)>, x,y ∈ RD.
Também, a unicidade da função φ e do espaço F, não são garantidos para um
determinado kernel. Neste exemplo, para F = R4, podemos definir, também, um
mapeamento alternativo na forma φ(x) = (x12, x1.x2,x2.x1,x2
2).
5.1.2 – Problema XOR: Exemplo 5.2: Seja, agora a solução do problema XOR utilizando um
classificador SVM com um kernel polinomial na forma K(x,xi) = (x.xi)2 . Considere o
seguinte conjunto de treinamento formado por quatro pontos em R2 associados as
respectivas saídas desejadas, yi.
1: (+1,+1) → +1
2: (-1,-1) → +1
3: (+1,-1) → -1
4: (-1,+1) → -1
133
Tomando uma função característica na forma: φ(x1,x2) = (x12,√2.x1.x2, x2
2),
temos os seguintes mapeamentos no espaço de características F, tridimensional:
1: (+1,+1) → (+1,+√2,+1)
2: (-1,-1) → (+1,+√2,+1)
3: (+1,-1) → (+1,-√2,+1)
4: (-1,+1) → (+1,-√2,+1).
A nova disposição dos pontos pode ser visualizada na figura. Observe que agora
é possível construir no espaço F = R3 um hiperplano separador.
Para tanto, devemos computar a função kernel para cada produto interno dos
vetores de entrada. Considerando K(x,xi) = (x.xi)2, temos a seguinte matriz K de
valores:
4 4 0 0
K = 4 4 0 0
0 0 4 4
0 0 4 4
Neste instante, é importante reformularmos a função objetiva do classificador
SVM, na forma dual de Wolfe, utilizando o produto interno das funções características,
ou seja:
Max ∑iαi - ½.∑i∑jαi.αj.yi.yj.<φ(xi),φ(xj)>
Sujeito a:
∑iαi..yi = 0,
0 ≤ αi ≤ C.
Substituindo o produto interno das funções características pela função kernel K,
temos:
Max ∑iαi - ½.∑i∑jαi.αj.yi.yj.K(xi,xj)
Sujeito a:
∑iαi..yi = 0,
0 ≤ αi ≤ C.
134
Considerando o conjunto de variáveis duais α1, α2, α3 e α4, associadas a cada
amostra do conjunto de treinamento, e, substituindo na função objetiva a matriz K e os
valores desejados yi, temos o seguinte problema de otimização quadrática:
Max α1 + α2 + α3 + α4 - ½.( 4.α12 + 4.α2
2 + 4.α32 + 4.α4
2 + 8.α1.α2 + 8.α3.α4)
Sujeito a:
α1 + α2 = α3 + α4,
α1, α2, α3, α4 ≥ 0.
Otimizando a função objetiva em relação as variáveis αi, temos as seguintes
equações relacionadas as condições de otimalidade de primeira ordem:
4.(.α1 + α2 ) = 1 e 4.(.α3 + α4 ) = 1, fornecendo como solução: α1 = α2 = .α3 = α4 = 1/8.
Para determinarmos o hiperplano separador no espaço F, devemos computar o
vetor w na forma:
w = ∑i αi.yi.φ(xi),
ou seja:
w = 1/8.[ (+1,+√2,+1)T + (+1,+√2,+1)T - (+1,-√2,+1)T- (+1,-√2,+1)T ]
w = (0, +√2/2,0)T.
Considerando o bias b = 0, temos como discriminante um hiperplano equivalente
ao plano das coordenadas z1 e z3. Observe que o valor da margem é dado pelo produto
interno wT.φ(xi), sendo igual a 1 para os pontos associados a saída +1, e igual a -1 para
os pontos associados a saída -1.
A função de classificação no espaço de entrada é definida pela função de
decisão:
z(x) = φ (wT.φ(x)) ,
sendo igual a:
z(x) = φ ((0, +√2/2,0).(x12,√2.x1.x2, x2
2)T)
= φ (x1.x2)
De fato, para os pontos onde x1 = x2, temos a saída +1, e para os pontos onde
x1 ≠ x2, temos a saída -1. A função discriminante, f(x) = x1.x2, define em R2 a equação
135
de uma hipérbole. A sua representação, bem como a equação do hiperplano no espaço
de características, pode ser visualizada na Figura V-4.
Figura V-4 – SVM Kernel e o problema XOR.
5.2 - Condições de Mercer e universalidade: Obviamente, a primeira condição a ser estabelecida para que uma função seja um kernel
é a sua simetria, derivada da condição de simetria do produto interno, ou seja:
K(x,y) = K(y,x)
Também, a mesma deve satisfazer a inequação de Cauchy-Schwartz, ou seja:
K2(x,y) ≤ K(x,x).K(y,y).
A condição de existência de um kernel para um par {F, φ} foi estabelecida por
Mercer (1909), que determinou as condições de necessidade e suficiência para que uma
função simétrica K(x,y) seja um kernel. Esta condição está associada ao fato de que a
função deve ser positiva definida. Segundo Mercer, existe um mapeamento e uma
expansão:
K(x,y) = ∑iλi.ψi(x).ψi(y),
sendo λi ∈ R, se e somente se, para alguma função g(x) com norma L2 finita no espaço
de entrada, ou seja ∫ g(x)2dx é finita, tivermos:
( ) ( ) ( ) 0., >∫ ∫ dydxygxgyxk
136
Portanto, existe um conjunto de funções ψi, tal que:
∫ k(x,y).ψi(x)dx = λi.ψi(x)
Neste caso, podemos definir a função característica como:
φ(x) = {√ λ1. ψ1(x), ...,√ λn. ψn(x),...},
fornecendo:
K(x,y) = φ(x)T.φ(y) = ∑iλi.ψi(x).ψi(y).
A garantia de que uma função seja, também, uma função kernel, pode ser
expressa de outra forma em um teorema apresentado em CAMPBELL(2000):
Teorema 5.1: “Faça K(x,y) ser uma função real e simétrica para um espaço
finito de entrada, então a mesma é uma função kernel se e somente se a matriz K
formada por componentes k(xi,xj) é positiva semi-definida.
GENTON (2001), apresenta a seguinte condição relacionado a necessidade da
função K ser positiva definida:
“Para um conjunto de vetores x1,x2,...,xm, e para um conjunto de escalares
λ1,λ2,..,λm, a função K deve satisfazer:
∑ i ∑ jλi.λj.K(xi,xj) ≥ 0
AIZERMAN, BRAVERMAN e ROZONOER (1964), consideram uma
convolução do produto interno no espaço de características funções que tem a forma:
K(x,y) = ℮ -|x-y|/σ , que receberam o nome de funções potenciais. Entretanto, a
convolução do produto interno de funções no espaço de características pode ser dada
por outras funções que obedecem a condição de Mercer, como exemplo, as funções
polinomiais de grau d, sob a forma:
K(x,y) = (x.y + 1)d.
Seja o problema de otimização quadrática associado a um classificador SVM
com função kernel K, reescrito na forma matricial como:
Max Λ.l – ½. ΛT.D. Λ
137
Sujeito a:
ΛT.Y = 0,
0 ≤ Λ ≤ C,
considerando o vetor Λ = (α1, α2,..., αm) o vetor de multiplicadores e D uma matriz
simétrica, mxm, semi-positiva definida, na forma D = [di,j], onde di,j = yi.yj.K(xi,xj).
A utilização de funções kernel que não atendem as condições de Mercer podem
tornar a matriz D indefinida, para alguma instância do conjunto de treinamento, não
garantindo, neste caso, a solução do problema de otimização na sua forma dual.
É interessante observarmos que, a utilização de diferentes tipos de funções
kernel, tornam um classificador kernel, em especial um classificador SVM, uma
máquina universal. Como exemplo, podemos citar as redes RBF com funções
discriminantes na forma:
f(x) = sinal(∑i αi. exp(||x-xi||2/σ2)),
que podem ser implementadas por funções kernel do tipo potencial. A topologia desta
rede, também chamada de SVM com kernel RBF pode ser mostrada na Figura V-5. A
diferença principal em relação a uma rede RBF tradicional e que, neste caso, os centros
das funções de base gaussianas estão associados aos multiplicadores αi, sendo
escolhidos automaticamente pelo algoritmo de aprendizado.
Figura V-5 – Classificador SVM com kernel gaussiano.
138
Na Figura V-6 apresentamos um problema de classificação binária em R2, não
linearmente separável, resolvido com a utilização de uma classificador SVM com kernel
gaussiano.
Figura V-6 – Exemplo de classificação com SVM e kernel gaussiano
A seguir são descritos os principais tipos de kernels utilizados nos projetos de
classificadores:
Produto interno: K(x,xi) = <x,xi>, utilizado no Perceptron de margem.
Produto interno normalizado: K(x,xi) = <x,xi>/ √<x,x>.<xi,xi>, utilizado em
algumas variantes do Perceptron
Gaussiano: K(x,xi) = exp( ||x-xi||2/σ2), utilizado nas redes RBF.
Polinomial de grau: K(x,xi) = (<x.xi> + θ)d, utilizado em aproximações polinomiais
Sigmoidal: K(x,xi) = Tanh(k.xT.xi + b), utilizado em Perceptron de uma camada
interna ou redes de duas camadas
Multiquadrático: K(x,xi) = 1/ √ ||x-xi||2 – c2, utilizado em redes de regularização.
Multidimensional Spline: K(x,xi) = Πk Kk(xk,xik), utilizado em aproximação de
funções.
Multiplicativo Anova: K(x,xi) = (∑k exp(-γ.(xk – xik)2)))d, utilizando em modelos de
regressão.
139
Vale observar que dos modelos apresentados, o kernel sigmoidal é o único que
não atende as condições estabelecidas por Mercer.
5.3 - Classes e propriedades de funções kernel Nesta seção descreveremos as principais propriedades das funções kernel, bem como as
principais classes de funções utilizadas, obtidas do trabalho de GENTON (2001).
Também, será mostrada a dimensão VC das funções kernel polinomias e gaussianas
RBF.
5.3.1 - Propriedades de funções Kernel A primeira propriedade das funções kernel se refere a uma combinação linear positiva,
ou seja: se K1 e K2 são dois kernels e a1 e a2 dois números reais positivos, então:
K(x,y) = a1.K1(x,y) + a2.K2(x,y), também é um kernel.
A segunda garante que a multiplicação de dois kernels também é um kernel, ou
seja: K(x,y) = K1(x,y).K2(x,y) é um kernel.
A terceira garante que um polinômio e uma função exponencial avaliados em
um kernel também são kernels, ou seja:
K(x,y) = pn (K1(x,y)) é um kernel,
K(x,y) = exp(K1(x,y)) é um kernel.
A quarta garante que se g for uma função real, então:
K(x,y) = g(x).g(y) é um kernel.
A quinta garante que se A for uma matriz positiva definida, então:
K(x,y) = xT.A.y é um kernel.
A sexta, e última propriedade, garante que se h for uma função real com valor
mínimo em 0, então:
K(x,y) = ¼.[h(x+y) – h(x-y)] é um kernel.
Particularmente, para h(x) = xT.x, obtemos que a função produto interno, ou seja:
140
K(x,y) = ¼.[(x+y)T.(x+y) – (x-y)T.(x-y)] = xT.y é um kernel.
5.3.2 – Classes de funções Kernel Quanto as classes de funções kernel, podemos ter a classe de funções estacionárias e
não estacionárias. Uma classe de kernels é dito estacionária quando são invariantes a
uma translação, ou seja: K(x,y) = KS(x-y). Neste caso, a avaliação do kernel depende da
diferença dos dois vetores e não dos vetores propriamente ditos.
Quando um kernel estacionário depende da norma quadrática relativa a distância
entre os dois vetores e não do vetor diferença relacionado a norma linear, o kernel é
chamado de isotrópico ou homogêneo, ou seja: K(x,y) = KI(||x-y||). Alguns exemplos
de kernels estacionários e isotrópicos podem ser mostrados na Figura V-7, sendo as suas
equações apresentadas na tabela . Podemos destacar os kernels circular, esférico,
quadrático racional, exponencial, gaussiano e na forma de onda.
141
Figura V-7 – Funções kernel estacionárias
Uma classe de kernel é dita não estacionária quando a sua avaliação depende
explicitamente dos dois vetores. As formas mais comuns de kernels não estacionários
são os polinomiais de grau d, ou seja: KN(x,y) = (xT.y)d. Um caso particular de kernels
não estacionários são aqueles formados pelo produto de dois kernels estacionários, ou
seja: KN(x,y) = KS(x).KS(y).
Vale destacar, finalmente, a classe de kernels redutíveis. Estes kernels são não
estacionários mas redutíveis a estacionários por uma transformação não linear.
5.3.3 – Dimensão VC de funções Kernel É possível estabelecermos o valor da dimensão VC para alguns tipos de classificadores
kernel. Em geral, a dimensão VC relacionada ao espaço de características tem valores
muito elevados, as vezes infinito.
Inicialmente, vamos considerar que a dimensão VC de um kernel que satisfaça
as condições de Mercer em um espaço de características é equivalente a dimensão do
espaço de características mais um, ou seja: h = dF + 1. Trata-se, portanto, do mesmo
valor relacionado a classe de classificadores lineares em problemas linearmente
separáveis. Vejamos a seguir dois exemplos:
Para classificadores que utilizam funções kernel não estacionárias polinomiais
homogêneos de grau d, na forma (x.y)d, em um espaço de entrada de dimensão n, é
mostrado que a dimensão do espaço de características é igual a (n + d - 1)! / d!.(n -1)! .
Portanto, a dimensão VC será igual a este valor mais um.
Exemplo 5.3: Seja uma expansão polinomial de segunda ordem desenvolvida
para um ponto em R2. Portanto, n=2 e d=2, derivando o seguinte mapeamento::
φ2(x) = φ2 (x1,x2)
= (x12, x2
2, x1.x2, x2.x1)
= (x12, x2
2,√2.x1.x2)
142
Observe que, neste caso, a cardinalidade do espaço de características F pode ser
reduzida para três.
Esta redução, de uma unidade, se deve a necessidade de compensar a
ocorrência de repetições, ou seja, de mesmos monomiais na expressão. Isto é feito
multiplicando-se a respectiva entrada ou monomial pela raiz quadrada do número de
ocorrências. Entretanto, em ambos os casos, temos:
φ2(x). φ2(y) = K(x,y) = (x.y)2
Como exemplo da alta dimensionalidade do espaço de características podemos
considerar um problema de classificação de padrões, extraído de SMOLA e
SCHOLKOPF (2001).
Exemplo 5.4: Seja um conjunto de imagens representadas por matrizes de
16x16 pixels para uma aproximação polinomial com d=5. Neste caso, a dimensão do
espaço de características seria igual a 1010.
Para polinômios de grau d, na forma (x.y + 1)d , teríamos, para n=2 e d=2, uma
expansão definida por:
φ2(x) = φ2 (x1,x2)
= (1,√2.x1,√2.x2, x12, x2
2, √2.x1.x2),
determinando, portanto, uma dimensão ainda maior para o espaço de características.
Espaço de características de dimensão infinita: Como dissemos, existem alguns classificadores kernel que possuem dimensão
VC infinita. Esta é uma característica da classe de funções kernel estacionárias
homogêneas como os kernels gaussianos RBF. Inicialmente, para provarmos estes
resultados vamos apresentar um teorema obtido de BURGES (1998) relacionado a
dimensão VC de classificadores lineares.
Teorema 5.2: “ Considere um conjunto de m pontos em Rn. Escolha um dos pontos
como origem. Então, os m pontos serão linearmente separáveis em todas as dicotomias
143
se e somente se os vetores posição dos m-1 pontos remanescentes forem linearmente
dependentes.”
Como conseqüência deste teorema podemos garantir que a dimensão VC da
classe de classificadores lineares em Rn , é exatamente n+1, visto que, o maior número
de vetores linearmente independentes em Rn é igual a n.
Desta forma, podemos enunciar o teorema relacionado a dimensão VC infinita
de uma classe de funções kernel estacionárias:
Teorema 5.3: “ A classe de funções kernels para os quais K(x,y) → 0 quando
||x-y|| → ∞ e K(x,x) é O(1) tem dimensão VC infinita.”
Como prova podemos considerar que a matriz kernel K pode ser construída
possuindo todos os elementos da diagonal principal iguais a O(1) e os demais elementos
arbitrariamente pequenos, escolhendo-se um conjunto de treinamento adequado.
Portanto, a matriz K possui posto ou rank total, significando que o conjunto de
vetores, cujos produtos internos formaram K no espaço de características F, são
linearmente independentes. Desta forma, pelo teorema anterior, podemos assegurar que
todos os pontos poderão ser separados linearmente em todas as suas combinações no
espaço F. Sendo este argumento válido para qualquer conjunto finito de pontos
podemos considerar a dimensão VC do classificador infinita.
Apesar do resultado deste teorema poder ser extendido aos classificadores com
kernels gaussianos, BURGES (1998), apresentou uma prova alternativa baseada na
construção de um classificador SVM com kenel RBF. Inicialmente, devemos relembrar
que o conceito de dimensão VC está associado ao maior número de pontos que podem
ser separados linearmente, em todas dicotomias, por classificadores lineares ou
hiperplanos. Para o caso de classificadores kernel este partilhamento dos pontos se dará
no espaço de características.
Se considerarmos uma rede SVM-RBF com um número de bases ou centros das
funções gaussianas extremamente elevado, isto é possível tomando um valor para a
variância σ desprezível em relação a distância entre os pontos, teremos na solução do
144
problema SVM na forma dual um conjunto de vetores suporte associados a cada ponto
do conjunto de treinamento e, conseqüentemente, a cada centro de uma base radial.
Neste caso, como todos os pontos são vetores suportes, não haverá erro de
treinamento e o conjunto de dados será classificado corretamente no espaço de
características. Como a quantidade de pontos do conjunto de treinamento e de seus
respectivos rótulos podem ser escolhidos de forma arbitrária, podemos concluir que a
dimensão VC destes classificadores é, também, infinita.
Conseqüentemente, a partir deste resultado, percebemos que uma escolha
adequada da variância das redes SVM-RBF é de fundamental importância para o
controle da capacidade de generalização.
5.4 - Projeto de funções kernel Nesta seção veremos um pouco da importância da utilização das funções kernel no
projeto de classificadores. De certa forma, podemos considerar o projeto de um bom
kernel, que se adapta ao problema, tão ou mais importante que o projeto do próprio
classificador no que diz respeito ao seu algoritmo de aprendizagem. Acreditamos que
diferentes tipos de kernel representem diferentes hipóteses ou formas de encapsular o
conhecimento necessário a solução do problema, determinando uma forte relação entre
a sua técnica de projeto e o conhecimento que possa ser extraído das propriedades dos
dados.
Neste sentido, podemos destacar dois tipos principais de abordagens no projeto
de funções kernel, a primeira relacionada a utilização de um modelo que descreve as
propriedades do conjunto de dados chamado de espaço de instâncias. Neste caso,
destacam-se os modelos generativos probabilísticos e os modelos baseados em
transformações. A segunda, está relacionada a compreensão da sintaxe dos dados, ou
seja, a sua estrutura de representação. Neste caso, destacam-se os processos de
convolução e a exploração de similaridades em strings, árvores, grafos, autômatos e
gramáticas, pois tratam-se das formas mais utilizadas na representação de dados
estruturados.
145
5.4.1 – Validação de funções kernel: Verificamos, anteriormente, que as condições mais importante a serem obedecidas por
uma função kernel foram estabelecidas por Mercer. De fato, um kernel não é um kernel
se não atender estas condições, relacionadas a representação de um produto interno
entre funções no espaço de características. Entretanto, a função kernel ser positiva
definida não é, a princípio, uma condição totalmente suficiente para que tenhamos um
bom kernel. A escolha ou projeto de um bom kernel esta associada, também, a outras
características que veremos a seguir.
A primeira se refere a sua completude. Dizemos que um kernel é completo se o
mesmo utiliza toda a informação necessária para a representação dos conceitos
categóricos relacionados a descrição dos dados. Seja a função c(x) a função que
descreve o valor da classe a qual está associado o objeto x. Ou seja, c(x) =1 se e
somente se x pertencer a classe associada C e c(x) = 0, caso contrário.
Então, um kernel válido é completo se, para cada par de exemplos do espaço
de instâncias
kc(x,.) = kc(y,.) implica em c(x) = c(y).
A segunda se refere a sua corretude estando, portanto, associada ao tipo de
classificador ou algoritmo de aprendizagem utilizado. Para uma máquina de vetor
suporte sabemos que uma função kernel é correta se, para qualquer exemplo do espaço
de instâncias:
g(x) = ∑i αi.K(xi,x) ≥ θ implica em c(x) = 1, e
g(x) = ∑i αi.K(xi,x) < θ implica em c(x) = 0.
A terceira se refere a capacidade de generalização do kernel. Requer, portanto,
que exemplos que tenham a mesma classe em comum, estejam situados próximos no
espaço de características, permitindo, desta forma, uma boa discriminação. Também,
está associada a escolha de um algoritmo de aprendizagem e a hipótese apropriada.
Pode ser definida em termos da teoria de aprendizagem PAC se garantirmos um limite
no número de erros de classificação para dados de um conjunto de validação.
146
5.4.2 – Kernel baseados em modelos generativos: Um modelo representa alguma forma de conhecimento que traduz o relacionamento que
ocorre no espaço de instâncias. Por exemplo, enquanto em um grafo as arestas
representam relações de adjacência entre os vértices ou elementos, o grafo como um
todo contém informações sobre todo os espaço.
Nos modelos generativos, de uma forma geral, seus parâmetros são
determinados no sentido de predizerem corretamente determinada classe ou hipótese
derivando, na maioria dos casos, um modelo de probabilidade, que necessita, para a sua
determinação do conhecimento de informações a priori da hipótese sob julgamento.
De forma contrária, os métodos discriminantes são formulados considerando-se
os vários tipos de classificação ou hipóteses, e aprendem, desta maneira, a discriminar
os dados.
Entre os modelos generativos estatísticos mais utilizados destacam-se as cadeias
de Markov ou modelos HMM. Destacam-se, também, as distribuições de probabilidade
utilizadas nos classificadores Bayesianos.
O desenvolvimento de funções kernel com base em modelos generativos
consiste em determinarmos um conjunto de parâmetros estatísticos do modelo
generativo e utilizálos, posteriormente, na construção de um kernel para funções
discriminantes.
A seguir, descrevemos um modelo generativo simples, descrito por
JAAKKOLA, DIEKHANS e HAUSSLER(2000) e aplicado a análise de seqüências
biológicas. Este modelo leva em conta o logaritmo da probabilidade a posteriori dos
dados pertencerem as hipóteses, ou seja, definimos a função:
L (x) = log [P(x|H1).P(H1)/P(x|H0).P(H0)]
= log [P(x|H1)/P(x|H0)] + log [ P(H1)/P(H0)]
= log P(x|H1) – log P(x|H0) + b,
147
onde P(x|H1) se refere a probabilidade condicional do dado pertencer a hipótese e
P(x|H2) a probabilidade condicional da hipótese nula, ou seja, do dado não pertencer a
hipótese.
Podemos reescrever este discriminante na forma de uma função kernel,
relacionada a uma métrica entre os dados, ou seja:
L(x) = ∑ i: xi ∈ H1 λi K(x,xi) - ∑ i: xi ∈ H0 λi K(x,xi).
Os parâmetros livres nesta função representam os coeficientes positivos λi , que
devem ser computados por algum algoritmo de treinamento. Eles representam a
importância particular de cada exemplo no processo de classificação. O kernel K(x,xi)
expressa uma medida de similaridade ou métrica entre os exemplos. De fato, se
considerarmos como kernel uma função gaussiana , e tomarmos λi = 1/m+ para xi ∈ H1
e λi = 1/m- para xi ∈ H0, teremos uma implementação do critério de Bayes.
Os valores de λi podem ser computados de modo a minimizar uma função de
erro. Considerando que a função de decisão tem a forma:
L(xi) ≥ 1, implicando em xi ∈ H1 e
L(xi) ≤ -1, implicado em xi ∈ H0
Podemos determinar os valores de λi, resolvendo o seguinte problema de
otimização:
Min J(λ) = ∑ i: xi ∈ H1 λi.(2-L(xi)) + ∑
i: xi ∈ H0 λi.(2 + L(xi))
Sujeito a:
0 ≤ λi ≤ 1
A solução deste problema, obtida do gradiente da função em relação aos
parâmetros λi , consiste em atualizar os parâmetros segundo as expressões:
λi = f{ (1 – L(xi) + λi.K(xi,xi))/K(xi,xi) }, para xi ∈ H1,
= f{ (1 + L(xi) + λi.K(xi,xi))/K(xi,xi) }, para xi ∈ H0,
onde f(z) = 0 se z ≤ 0,
= z se 0 < z < 1,
= 1 se z ≥ 1.
148
JAAKKOLA e HAUSSLER (1998) introduziram uma nova função kernel
baseada em um modelo HMM, denominado de Fisher Kernel. A idéia principal deste
kernel é a utilização de informações relacionadas ao vetor gradiente do logaritmo das
probabilidades relacionadas aos parâmetros do modelo estatístico obtido das cadeias
HMM, como características para a formação de um discriminante.
Os autores julgam que esta informação é mais importante do que as informações
obtidas da diferença das probabilidades a posteriori dos exemplos. Isto se deve ao fato
de que o gradiente do logaritmo das probabilidades dos parâmetros de um modelo
generativo descrevem melhor como estes parâmetros contribuem para o processo de
geração de exemplos particulares.
Considerando, o vetor gradiente Ux, chamado de Fisher score, para um conjunto
de parâmetros θ, associado a um modelo generativo de probabilidade P, temos:
Ux = ∇ θ log P(x|H1,θ).
A partir dos vetores Ux, os autores definem dois tipos de kernel relacionados,
respectivamente a norma L1 e L2:
K(x,xi) = UxT.F-1.Ux e
K(x,xi) = ½.(Ux – Uxi)T.F-1.½.(Ux – Uxi), sendo K’(x,xi) = ℮ -K(x,xi)
A matriz F é conhecida como matriz de informação de Fisher, ou a matriz de
covariância entre os vetores, podendo, para o primeiro kernel ser desconsiderada. O
segundo kernel, utilizado no contexto de uma máquina de vetor suporte, deriva um
modelo denominado, segundo Jaakkola e Haussler, de SVM-Fisher.
5.4.3 – Kernel baseados em sintaxes: O desenvolvimento de funções kernel baseando-se na sintaxe dos dados tem como
motivação a extração de informações a partir da exploração da estrutura dos dados, ou
seja, a forma como os mesmos são representados no espaço de instâncias.Como
exemplo do projeto de um kernel que depende da estrutura dos dados podemos
149
descrever o problema relacionado ao computo da similaridade de duas palavras, strings
ou seqüências de caracteres.
A idéia trivial é contar todas as possíveis ocorrências de subseqüências similares
de determinado tamanho k que possam acontecer nas duas palavras. Caso estas
subseqüências não possuam espaçamento, ou seja, ocorram de forma contínua, isto pode
ser feito diretamente, formando-se um vetor de características para cada palavra,
contendo todas as subseqüências de tamanho k. Em seguida, realiza-se uma comparação
entre estes dois vetores determinando todas as ocorrências de substrings comuns. O
número de subseqüências similares será definido como o valor do kernel, refletindo o
valor do produto interno dos vetores de características.
Este cálculo pode ser feito diretamente, em tempo linear, se ordenarmos os
vetores de características e utilizarmos um procedimento de match. A realização
explícita do mapeamento e do produto interno dos vetores não é tão problemática, pois
a dimensão do espaço de características é exatamente igual a dimensão do espaço de
entrada. De fato, não é possível extrairmos de uma palavra de tamanho n mais do que n
subpalavras contínuas de tamanho fixo. Ou seja, é possível extrairmos n subpalavras de
tamanho um, n-1 subpalavras de tamanho dois e, assim, sucessivamente, até a própria
palavra de tamanho n.
Spectrum kernel e árvore de sufixos: LESLIE, ESKIN e NOBLE (2002) apresentam uma proposta de kernel,
denominada k-spectrum kernel, aplicada a análise de seqüências biológicas, que tem
como base, também, a contagem de todas subseqüências contínuas de tamanho k.
Segundo os autores, os modelos generativos são de pouca eficiência computacional para
problemas envolvendo grandes seqüências, pois a avaliação do kernel requer
informações de um modelo HMM, cuja computação requer a utilização de um algoritmo
de programação dinâmica para o emparelhamento de seqüências com complexidade de
ordem quadrática.
Para um problema que possui como conjunto de símbolos um alfabeto de
cardinalidade l , ou seja | ∑ | = l, o kernel k-spectrum define um mapeamento em um
espaço de características F de dimensão lk . Como exemplo, podemos citar as cadeias de
150
DNA representadas em sua forma primária por seqüências de quatro nucleotídeos,
compostos, respectivamente, pelos símbolos A (adenina), C (citosina), G (guanina) e
T (timina). Para subseqüências de tamanho dois, k = 2, teremos um espaço de
características de dimensão 42 = 16.
A função característica estabelecida para o modelo pode ser definida, em função
de seus componentes, na forma:
φk(x) = [φa(x)], a ∈ ∑k,
considerando todas as subseqüências, representadas por ‘a’, de comprimento k, que
ocorrem no alfabeto ∑*.
A função φa(x), na sua forma mais geral, mede a quantidade de ocorrências da
subseqüência ‘a’ na seqüência x. Em uma forma mais simples, a função φa(x) assume a
forma de uma função de decisão booleana associada a ocorrência ou não da
subseqüência ‘a’ na seqüência s.
Uma vez definida a função característica, o kernel é computado de duas formas,
como um simples produto interno:
Kk(x,y) = <φk(x), φk(y)>
ou na forma normalizada:
K’k(x,y) = Kk(x,y)/ √ Kk(x,x). Kk(y,y).
Para a avaliação do kernel os autores empregam uma árvore de sufixos, que,
segundo UKKONEN (1995), pode ser construída em tempo linear O(n), em relação ao
tamanho das seqüências. Após a construção da árvore, é feito um caminhamento
transversal na mesma, computando-se o produto interno dos vetores característicos,
cujos valores, relacionados as ocorrências das subseqüências de tamanho k, estão
armazenados nas folhas das árvores em número de (k.n). Portanto, para a avaliação do
kernel, não ocorre a necessidade de se construir os vetores característicos
explicitamente. A complexidade final do processo é de ordem O(k.n).
151
Kernel com gap ou penalidade: LODHI, SHAWE-TAYLOR e CRISTIANINI (2001), propuseram uma forma
alternativa de kernel sobre strings, que foi utilizada na classificação de textos. Neste
estudo os autores admitem a formação de substrings não necessariamente contínuos,
introduzindo, para tanto, uma potência associada a um fator de redução λ, λ ∈ (0..1),
computada em função do tamanho da substring e de seu posicionamento em relação ao
string que está sendo mapeado.
O exemplo a seguir, descreve com clareza o processo de avaliação deste novo
kernel.
Exemplo 5.4: Considere a existência de três strings: ‘cat’, ‘cart’ e ‘car’.
Para a ocorrência de substrings de tamanho 2, temos o seguinte mapeamento
das funções características, representado pela Tabela V-1.
ca t r t r t
φ(cat) 2 3 2
φ(car) 2 3 2
φ(cart) 2 4 3 3 2 2
Tabela V-1 – Ocorrências de substrings de tamanho 2
O valor do kernel é computado considerando o produto interno dos vetores φ, ou
seja:
K(car,cat) = φ(cat).φ(car) = λ2.λ2 = λ4
Podemos, também, computar o kernel normalizado na forma: K’(car,cat) = K(car,car) / √ K(car,cat).K(cat,cat) = λ4/(2. λ4 + λ6) = 1/(2 + λ2)
152
Esta técnica, entretanto, quando aplicada para valores de k > 4, pode se mostrar
bastante ineficiente, mesmo para strings de tamanhos moderados.
Se quisermos expressar a similaridade de uma forma mais rigorosa, devemos
considerar a comparação entre todas as subseqüências possíveis, variando o seu
tamanho, através da introdução de gaps. Neste caso, a dimensão do espaço de
características aumenta ainda mais de tamanho, tornando a avaliação do kernel pelo
produto dos vetores de características impraticável. A seguir, mostraremos um exemplo.
Exemplo 5.5: Considere a existência de duas substrings ‘car’ e ‘cart’, e a
ocorrência de substrings de tamanhos variáveis segundo a Tabela V-2.
a t t
c
at
φ(cat) 2 2 3
λ3
φ(cart) 2 3 4
λ4
Tabela V-2 – Ocorrências de substrings de tamanho variável
Portanto:
K(cat,cart) = 3.λ2 + λ4 + λ5 + 2. λ7.
Formalmente, o computo desta função kernel pode ser descrito na forma:
Seja ∑* um alfabeto contendo todas as palavras ou strings s de tamanho
variável. Seja , também, ∑n um alfabeto contendo somente strings de tamanho n. Então
∑* = U ∑n, n = 1,...,∞. Podemos definir o espaço de características Fn = R |∑n |,
considerando todas as ocorrências de similaridade para substrings de tamanho n.
Deixe s ∈ ∑* , ser uma string de tamanho finito dado por |s|. Considere s
formada por uma seqüência de símbolos s1s2s3...s|s|. Para um conjunto de índices ‘i’
deixe s[i] ser uma formação ou uma substring de n símbolos de s, com comprimento
153
l[i]. Podemos computar cada componente do vetor de características φ(s) aplicado a
string s, na forma:
φu(s) = ∑i λl[i], para cada possível substring u = s[i].
Como exemplo, temos o cálculo do vetor de características para a string ‘cat’,
considerando a ocorrência de substrings de tamanho 2:
φ(cat) = [φca(cat) φct(cat) φat(cat)] = [λ2, λ3, λ2].
Portanto, a função kernel entre dois strings s, t ∈ ∑* é equivalente ao produto
escalar <φ(s),φ(s) > para todas as substrings u ∈ ∑n de tamanho n, ou seja:
Kn(s,t) = ∑u φu(s).φu(t) = ∑u∑i ∑j λ l[i] + l[j], para u = s[i] e u = s[j].
Uma forma eficiente de computação deste kernel é proposta no trabalho de
LODHI, SHAWE-TAYLOR e CRISTIANINI(2001) através do uso de uma técnica de
programação dinâmica. O processo de desenvolvimento de funções kernel sobre strings
pode ser extendido para outras estruturas de representação como árvores e grafos. Neste
caso, devemos desenvolver procedimentos eficientes para a contagem de subarvores
similares em duas árvores, e , conseqüentemente, de subgrafos em grafos.
5.5 – Kernel e estimativa de densidade: A importância de um kernel no projeto de um classificador pode ser verificada na
descrição de um exemplo extraída de livro de HERBRICH (2002).
Exemplo 5.6: Seja a aprendizagens de conceitos relacionados ao
reconhecimento de um conjunto de números de um dígito, ou seja: 0,1,2,3,4,5,6,7,8,9,
escritos manualmente. Os dados de um conjunto de treinamento, podem ser
representados por um conjunto de vetores onde cada vetor possui um número fixo de
componentes representando o conjunto de pixels de uma imagem, segundo.
Caso a imagem tenha uma representação matricial de 16x16, teremos, conforme
mostra a Figura V-8, 256 componentes para cada vetor do conjunto de treinamento. A
seguir, mostraremos como este problema pode ser resolvida como uma forma de
154
estimativa de densidade, primeiramente, com as regras de similaridade baseadas no
conceito de vizinhança e, posteriormente, com a utilização de funções kernel.
Figura V-8 – Extração de características
5.5.1 - Regra NN ou kNN: Uma solução simples para este problema seria definirmos uma medida de similaridade
entre os vetores, como exemplo a norma L2 e um esquema de comparação, na forma:
Para cada vetor xi do conjunto de treinamento computar:
||x-xi|| = √ ∑j ( xj – xi j)2.
A princípio, poderíamos atribuir como classe de uma amostra aquele valor
associado do conjunto de treinamento, que mais se assimilar com a amostra apresentada,
denominado de vizinho mais próximo, ou simplesmente NN, no sentido de representar a
menor distância entre os vetores. Trata-se, entretanto, de um algoritmo de classificação
supervisionado e não paramétrico, relacionado a estimativa de densidades, que, no
entanto, não aprende uma hipótese ou um conceito das classes. Ou seja:
x ∈ Cl se l = Arg { Min i ||x-xi|| }
Para melhorarmos a performance desta técnica poderíamos extender o processo
comparativo aos k vizinhos mais próximos, ou kNN, e rotularmos a amostra com a
classe majoritária. A estimativa de densidade relacionada ao método kNN consiste em
estabelecer uma concentração de pontos fixa, neste caso igual a k, em torno de um
155
volume variável representado por V(x). Considerando m o total de exemplos, uma
estimativa de densidade da classe relacionada a x seria:
p(x) ≈ k/(m.V(x).
Neste sentido, as áreas de baixa densidade correponderiam a valores de volumes
maiores e as áreas de alta densidade corresponderiam a valores de volumes menores. Os
volumes podem ser determinados a partir dos raios das hiperesferas que contenham os k
pontos relacionados as respectivas classes, sendo os valores dos raios expressos pela
distância euclidiana. Alternativamente, pode ser adotada como métrica a distância
mahalanobiana, definindo um conjunto de hiperelipsóides.
Pode ser mostrado, DUDA e HART (1973), que a probabilidade de erro de
classificação relacionado a escolha do vizinho mais próximo é limitada superiormente
pelo dobro da probabilidade do erro de Bayes, quando o número de exemplos ou
amostras tende para infinito, ou seja:
Se a quantidade de amostras tende para infinito, m → ∞, então:
PBayes < PNN < 2.PBayes,
considerando:
PNN = (2 – m/(m-1).PBayes
A performance assintótica do método kNN é melhor, sendo definida como:
PBayes < PkNN < PBayes + √ 2.PNN/k.
Apesar deste algoritmo ser bastante simples e apresentar bons resultados
práticos, o mesmo apresenta dois problemas principais. Estes problemas estão
relacionados primeiramente, a pobre representação de similaridade computada pela
distância euclidiana. De fato, podemos ter dígitos relacionados a classes diferentes que
apresentam uma pequena distância euclidiana entre as suas imagens. Em segundo lugar,
está relacionado a complexidade em tempo e espaço. O algoritmo requer que o conjunto
de treinamento esteja sempre armazenado na memória e, para cada amostra submetida,
seja computada a distância euclidiana em relação a todo conjunto. Para conjuntos de
treinamento contendo algums milhares de dados isto se torna proibitivo.
156
5.5.2 - Mapeamento kernel: A solução para os problemas apresentados anteriormente, consiste na utilização de um
mapeamento dos dados em um espaço de características de forma a obter uma maior
expressividade na representação da similaridade dos dados. Isto envolve, como
sabemos, o projeto de um kernel. Posteriormente, devemos desenvolver um algoritmo
de aprendizagem, ou um classificador, na forma de um discriminante linear, de modo
que a avaliação de cada amostra seja feita em tempo constante. Evidentemente, cada
classe deverá possuir seu discriminante na forma:
f i(x) = ∑j wj.φ(xj),
onde w representa o vetor de coeficientes do discriminante, e φ a função de mapeamento
ou de característica.
A classificação de uma nova amostra deve ser feita tomando-se como classe o
argumento do maior valor dos discriminantes, ou seja:
x ∈ Cl se l = Arg { Max i f i(x) }.
Esta solução, também, pode ser empregada, quando utilizamos discriminantes
projetados para problemas de classificação binária, como as máquinas de vetores
suportes. Neste caso, realizamos o treinamento de um conjunto de hipóteses na forma de
um contra o resto, gerando um hiperplano separador para cada classe. Assim, a função
de decisão atribuíra como classe o argumento associado a maior distância da amostra
aos hiperplanos separadores.
Esta nova abordagem representa a estimativa da função de densidade das classes
como uma expansão da função a ser aproximada f em termos de um conjunto de
funções projetivas φ, tendo uma forte relação com a técnica de estimativa não
paramétrica das janelas de Parzen.
5.5.3 - Janelas de Parzen: As janelas de Parzem podem, inicialmente, serem explicadas com maior facilidade
considerando a aproximação de uma função f contínua em R1. Seja a divisão do espaço
de entrada, correspondente ao eixo da variável x , em um número fixo de sucessivos
157
intervalos de comprimento h , e a anotação da quantidade de ocorrências dos valores, ou
pontos, dentro de cada intervalo. Caso estes somatórios sejam normalizados, temos
uma estimativa da função de densidade de probabilidade, denominada p, relacionada a
função f, na forma clássica de um histograma, ou tabela de freqüências. Caso o
tamanho do intervalo h tenda para zero, temos:
∫x p(x)dx = 1
Definimos a taxa de frequência, ou a estimativa do valor da probabilidade
associada a um respectivo intervalo, como:
p ≈ ki/m ,
sendo m o número total de amostras e ki a quantidade de pontos existentes no iésimo
intervalo de comprimento h.
Claramente, se m tender para infinito, temos uma aproximação contínua da
verdadeira função de densidade de probabilidade, ou pdf. Dentro de cada intervalo,
podemos estimar uma probabilidade constante, em função do valor de h, e de seu valor
central xm, como:
p(x) = p(xm) = (1/h).(ki/m), para todo x tal que: |x - xm| < h/2
Se considerarmos um espaço de entrada de D dimensões, podemos dividir o
espaço de amostras em hipercubos de tamanho ou comprimento de aresta h e volume
hD. Seja o conjunto de amostras formado pelos vetores x1, x2, ... , xm. Definimos a
função Λ(x) na forma:
Λ (xi) = 1 se |xij| ≤ ½
= 0 se |xij| > ½
onde o índice j, j = 1, ..., D, se refere as componentes dos vetores.
Podemos interpretar esta função como uma função de decisão que define a
pertinência do ponto a um hipercubo, centrado na origem, de aresta h. Neste sentido,
podemos reescrever a equação de estimativa da probabilidade, de uma amostra x, na
forma:
p(x) = (1/hl).(1/m.∑i Λ((xi – x)/h)), para i=1, ..., m
158
Esta equação está baseada na verificação da pertinência do conjunto de vetores
ao hipercubo de aresta h com centro em x. O somatório é equivalente ao valor de ki, ou
seja, a quantidade de pontos ou vetores que pertencem ao iésimo hipercubo associado ao
respectivo centro x. É fácil verificarmos, analiticamente, que o valor de |(xi – x)/h| =
½, corresponde aos pontos situados nos vértices do hipercubo, ou seja, aqueles que
estão mais afastados dos respectivos centros.
Também, é interessante observarmos que o estimador baseado nas janelas de
Parzen, trabalha com um volume fixo, relacionado ao parâmetro h e ao centro x, para
um número de pontos variável, ao contrário do estimador KNN, que trabalha com um
número de pontos ou vizinhos fixos, relacionado ao parâmetro k e ao centro x, para um
volume variável.
A aproximação da verdadeira função de densidade pela base de funções Λ
descontínuas, fornece uma aproximação discreta, que tem como principal aspecto
negativo o problema relacionado ao curso da dimensionalidade. Neste sentido,
PARZEN (1962) generalizou a equação de estimativa da probabilidade, introduzindo
um conjunto de funções φ, contínuas e suaves, denominadas de funções kernel ou
funções potenciais, que satiszazem as seguintes propriedades:
φ(x) ≥ 0 e ∫ φ(x)dx = 1,
resultando em uma aproximação contínua para a verdadeira pdf. Um exemplo comum
de função potencial é a função gaussiana, relacionada, como já vimos, as redes RBF e
aos classificadores Bayesianos.
O valor médio, ou valor esperado, da estimativa da probabilidade pode ser,
definido na forma:
E[p(x)] = (1/hl).(1/m.∑i E[φ((xi – x)/h)]), para i=1, ..., m,
podendo ser reescrito considerando a variação contínua de x como:
E[p(x)] = ∫ x’ (1/hl).φ((xi – x)/h) p(x’) dx’ ,
159
sendo independente da quantidade de amostras m.
Para valores fixos de m, podemos observar que quanto menor o valor de h,
maior será a variância e menor será o bias ou erro, relacionados a aproximação da
função, derivando um modelo de maior complexidade. De outra forma, quanto maior o
valor de h, menor será a variância e maior será o bias ou erro, derivando um modelo de
baiza complexidade.
Para valores fixos de h, a variância e o erro decrescem com o aumento de m, ou
seja, do número de amostras. Entretanto, a variação dos valores de m, tem uma relação
com o curso da dimensionalidade, ou seja, se uma aproximação em R1, para
determinada acurácia, requer m1 pontos, em R2 esta mesma aproximação irá requerer
m12 pontos e, assim, sucessivamente.
5.5.4 - Aprendizagem dos parâmetros: O objetivo do algoritmo de aprendizagem é computar ou aprender o vetor w, para um
dado conjunto de treinamento. A solução trivial é a minimização do erro esperado,
adotando-se o princípio do risco estrutural. Se considerarmos uma expansão linear do
vetor w no espaço de características, podemos resolver o problema de aprendizagem no
plano dual com a introdução do conjunto de multiplicadores αi , associados a cada
exemplo do conjunto de treinamento, ou seja, definimos:
w = ∑i αi.φ(xi)
Substituindo o valor de w na expressão da função discriminante, obtemos a
função de decisão relacionada ao produto interno das funções φ no espaço de
características:
f(x) = ∑i αi.∑j.φj(xj).φj(x)
= ∑i αi.K(x,xi)
Observe que a função discriminante f se aplica, agora, a um problema de
classificação binária, podendo ser extendida, como vimos, a problemas de multi-
classificação. Neste caso, a função de decisão final, que descreve a classe a qual
pertence a amostra, será dada por:
160
c(x) = sinal( ∑i c(xi).αi.K(x,xi) ),
onde c(x) = 1 se x∈ C1 e c(x) = -1 se x ∈ C2
A função kernel K deve representar, como vimos, alguma medida de
similaridade entre os dados. Em um problema de reconhecimento de imagens, podemos
definir como função característica, uma função que estabeleça uma correlação entre
todos os componentes do vetor imagen, ou seja:
φ(x) = {x1.x1, ...,x1.xn,...,xn.x1,...,xn.xn)
Esta função, como vimos, trata-se de uma expansão polinomial homogênea de
segunda ordem, ou seja o d = 2, sendo o seu produto interno representado pelo kernel
polinomial:
K(x,y) = (x.y)2
Observe que esta expansão possibilita a repetição de monomiais, o que parece
ser importante na classificação de imagens. Para n = 4, considerando d = 2, teremos um
espaço de características de dimensão 16, ou seja n2 , maior que a dimensão 10, ou seja,
( n+1)!/2.(n-1)!, resultante de uma expansão que elimina-se os monomiais redundantes.
Neste caso, existirá sempre uma repetição para cada par (xi,xj) sendo i ≠ j , sendo
o número total de repetições igual a Cn,2.
Poderíamos, de outra forma, considerar a utilização de um kernel não
estacionário, relacionado a distância euclidiana entre os pontos no espaço de
características ou norma L2. Neste caso teríamos:
K(x,y) = ||φ(x)-φ(y)||2 = K(x,x) – 2.K(x,y) + K(y,y)
Ou seja, computamos o valor do novo kernel avaliando somente kernels
associados a norma L1, que possuem como argumento o produto interno dos vetores no
espaço de entrada.
5.6 – Funções kernel em discriminantes: A utilização de funções kernel em discriminantes, classificadores ou regressores, tem se
mostrado como uma das mais poderosas técnicas no desenvolvimento de algoritmos de
aprendizagem, aumentando o poder dos mesmos, seja quanto a possibilidade de resolver
161
problemas linearmente separáveis, ou, de outra forma, tornando mais expressiva a
representação dos dados, através da realização de um mapeamento no espaço de
características.
Acreditamos, portanto, que o poder de generalização das máquinas kernel seja
superior ao poder dos classificadores lineares. Entretanto, tal afirmação é de difícil
comprovação, envolvendo a análise da dimensão VC no espaço de características, o
que, quase sempre, é uma tarefa extremamente complexa, podendo apresentar, muitas
vezes, resultados contraditórios, como as redes SVM-RBF, que possuem um bom poder
de generalização apesar de sua dimensão VC ser infinita.
Nesta seção vamos mostrar alguns exemplos, relacionados a introdução de
funções kernel em discriminantes. Daremos ênfase a introdução de funções kernel no
algoritmo Perceptron e em sua variante, o Perceptron de votação. A introdução de
funções kernel em classificadores SVM é extremamente natural, dado a ocorrência do
produto interno dos dados na forma dual de Wolfe, e será, tratada com maior
profundidade no capítulo seguinte onde será descrito um método computacional
relacionado ao algoritmo Kernel Adatron.
5.6.1 – Kernel em Perceptron A introdução de funções kernel no modelo Perceptron pode ser analisada de duas
formas. A primeira extremamente simples, considera a utilização de funções kernel no
algoritmo de aprendizagem do Perceptron dual, conforme mostra a Figura V-9. Neste
caso, é suficiente substituirmos o produto interno dos dados na forma <xj,xi> pelo
kernel K(xj,xi). Assim, a função de decisão toma a forma:
f(xi) = ∑j αj.yj.K(xj,xi)
É importante observar que a matriz kernel K, pode ser computada a priori, e ser
armazenada durante a fase de aprendizagem do algoritmo.
162
Figura V-9 – Kernel Perceptron Dual
A segunda forma de utilizarmos a função kernel, seria se optarmos pelo
algoritmo de treinamento do Perceptron na sua forma primal. Para tanto, vamos analizar
a introdução de funções kernel no Perceptron de votação segundo o que foi exposto por
FREUND e SCHAPIRE (1998).
Observando a descrição do algoritmo, seção 3.1.6, não verificamos a existência
explícita de um produto interno dos dados. Entretanto, como observado por Freund e
Schapire, o vetor w, pode ser computado iterativamente, na iteração ‘k’, na forma:
(w)k= ∑j (yi.xi)j, para cada iteração j, j = 1,...,k-1.
Portanto, considerando esta forma de expressar o vetor, podemos computar o
produto interno (w)k.x, a cada iteração, na forma:
(w)k.x = ∑j (yi.xi)j.x, j = 1, ..., k-1
= ∑j (yij.<xij.x>, j = 1, ..., k-1
= ∑j (yij.K(xij.x), j = 1, ..., k-1.
Armazenando de forma apropriada os valores do produto interno (w)k.x, bem
como do vetor (w)k , a cada iteração, concluímos que o algoritmo requer somente k
avaliações da função kernel, sendo k o número de erros que venham a ocorre durante o
processo de treinamento .
163
Capítulo VI – SVM: Técnicas e Soluções Neste capítulo, iremos abordar algumas das principais técnicas utilizadas para o
treinamento de máquinas de vetores suportes, ou seja, aplicadas a solução do problema
de otimização quadrática na forma dual de Wolfe:
Max Λ.l – ½. ΛT.H. Λ
Sujeito a:
ΛT.Y = 0,
0 ≤ Λ ≤ C,
considerando o vetor Λ = (α1, α2,..., αm) o vetor de multiplicadores e H a matriz
Hessiana simétrica, mxm, positiva semi-definida, na forma:
H = [hi,j], onde hi,j = yi.yj.K(xi,xj).
Se a matriz H, for positiva definida, a função objetiva do problema tem a forma
estritamente convexa e a sua solução ótima global relativa a um ponto de máximo que
satisfaça as condições de KKT é única podendo ser obtida segundo FLETCHER (1987)
por algum método de otimização quadrática convexa.
Entretanto mesmo se a matriz Hessiana for positiva semi-definida a solução
obtida pode ser global e única. No caso mais geral, a solução não será única se dado
alguma solução Λ, escolhemos um Λ´ que pertence ao espaço nulo da Hessiana, sendo o
Λ´ ortogonal ao vetor unitário, derivando uma solução Λ + Λ´ também ótima. Porém, a
solução encontrada será sempre uma solução ótima gobal em contraste as Redes Neurais
Artificiais, onde muitas soluções de mínimos locais poderão existir.
A elaboração de um método para a solução do problema de otimização
quadrática relacionado ao treinamento de uma SVM depende, essencialmente, de três
fatores. Em primeiro lugar, como devemos considerar as informações utilizadas da
função objetiva do problema, ou seja: informações de primeira ordem, informações de
segunda ordem, informações de segunda ordem aproximadas ou informações de
segunda ordem truncadas. Em segundo lugar, se o método de treinamento relacionado a
técnica de otimização, deve ser implementado de forma iterativa ou online, ou através
de soluções analíticas. Finalmente, em terceito lugar, se a solução do problema será
feita no espaço de variáveis primais ou duais.
164
Também, existe uma abordagem alternativa, que considera a possibilidade de
resolvermos um problema de programação linear através da utilização de uma norma L1
no lugar da norna L2 para o vetor w relacionada a maximização da margem.
A dificuldade maior na solução do problema de programação quadrática
associado a SVM, esta no tamanho da matriz Hessiana, que é quadrática em relação ao
tamanho do conjunto de treinamento, e na sua forma extremamente densa, não
permitindo a utilização de técnicas eficientes de fatorização no computo de sua inversa.
Entretanto, devemos considerar que na solução ótima do problema, somente
alguns pontos ou vetores participam do conjunto ativo possibilitando dessa forma o
emprego de técnicas de otimização baseados na redução de variáveis e em métodos de
decomposição que utilizam um sub-conjunto de trabalho a cada iteração.
Atualmente, existem várias técnicas e métodos de otimização, aplicados ao
treinamento de uma SVM. Neste trabalho, optamos por descrever um conjunto de
métodos, que, de certa forma, utilizam-se de uma análise apropriada dos fatores
mencionados, desenvolvendo assim, determinadas estratégias específicas.
O primeiro, tradicionalmente mais utilizado, esta relacionado ao uso de
estratégias de conjunto de trabalho, sendo considerado um método de decomposição.
Utiliza um solver de otimização não linear, que retem a cada iteração um sub-conjunto
de variáveis, associados a pedaços do conjunto de treinamento, para a formação da
matriz Hessiana. Esta técnica foi empregada por OSUNA, FREUND e GIROSI (1997)
no problema de reconhecimento de imagens deformáveis ou faces.
O segundo, desenvolvido recentemente por JOHN C. PLATT (1998), pode ser
considerado como uma técnica de decomposição na sua forma mais extrema. Neste
caso, os sub-problemas de programação quadrática envolvem a cada iteração somente
dois multiplicadores, podendo ser solucionados de forma analítica sem a necessidade de
um solver de otimização não linear. Recebeu o nome de Otimização Seqüencial Mínima
(SMO), sendo implementado em nosso trabalho.
165
O terceiro, e último, desenvolvido por FRIESS, CRISTIANINI e CAMPBELL
(1998), é uma técnica simples bastante eficiente conhecida como Kernel Adatron. Foi
desenvolvido com a introdução de funções Kernel no algoritmo Adatron, ANLAUF e
BIEHL (1989). É, como já vimos, um método de otimização online que utiliza somente
informações de primeira ordem da função objetiva do problema. A sua formulação
clássica, descrita por CAMPBELL e CRISTIANINI (1998), utiliza a base do algoritmo
Adatron realizando porém uma análise mais detalhada da avaliação do bias da equação
do hiperplano. Esta formulação foi implementada também em nosso trabalho, que
considerou ainda a implementação de uma variante do método relacionada ao algoritmo
Minover, KINZEL (1990).
6.1 - Estratégias de Conjunto de Trabalho ou Decomposição No trabalho desenvolvido por OSUNA, FREUND e GIROSI (1997), voltado ao
problema de reconhecimento de imagens deformáveis, como faces e expressões faciais,
foram utilizados vários pacotes de otimização não linear para o treinamento de um
classificador SVM. Entre eles, pacote MINOS 5.4 que implementa um método de
segunda ordem baseado em uma técnica de redução do grandiente. O pacote CPLEX,
para a solução da rotina de programação linear utilizadas no método primal de direções
viáveis de Zoutendijk, e finalmente, um solver que implementa o método do gradiente
conjugado adaptado a ao problema de programação quadrática de grande porte com
variáveis canalizadas desenvolvido por Moré e Toraldo(1991).
Em seus experimentos computacionais o método que, indiscutivelmente,
apresentou melhores reultados foi o método desenvolvido por MURTAGH e
SAUNDERS (1978) voltado a solução de problemas de programação linear com um
grande número de restrições lineares, e que derivou o pacote de otimização MINOS.
Neste sentido, achamos conveniente, neste trabalho fazermos uma descrição
deste método quando aplicado ao treinamento de uma máquina SVM, bem como
descrever os principais aspectos, relativos a sua aplicação a classificadores SVM,
levantados no trabalho de Osuna, Freund e Girosi.
166
6.1.1 – Decomposição de variáveis: O algoritmo em questão foi desenvolvido por Murtagh e Saunders com o intuito de
facilitar a solução de problemas de programação linear de alta dimensão, onde a função
objetiva é não linear, existe um grande número de restrições lineares e a solução contém
em geral um número reduzido de variáveis não lineares.
O conceito de variáveis não lineares fica melhor entendido se considerarmos a
solução de um problema de programalção linear pelo método simplex e o seu grau de
liberdade, para uma matriz de restrições Amxn. Neste caso, a solução terá somente m
componentes na base Bmxm, denominadas básicas, com valores diferentes de zero. As
demais n-m componentes do vetor solução, relativas a matriz Nm,n-m, terão seus valores
iguais a zero, sendo chamadas de não básicas.
Em função deste resultado, o método estabelece um processo de busca ou
caminhamento, considerando somente os vértices do politopo convexo que delimita a
região viável do problema, movendo sempre em relação a uma componente do vetor
relacionada a variável que ingressa na base, para um determinado passo, limitado a
região de viabilidade, relativo a variável que deixa a base, estabelecendo, a cada
iteração, uma mudança de base que sempre melhora a função objetiva.
O método proposto por Murtagh e Sauders é, na prática, uma extensão do
método revisado do simplex, permitindo, entretanto, um maior grau de liberdade na
solução do problema. Para tanto, os autores criaram um terceiro conjunto de
componentes ou variáveis, chamadas de super-básicas, que são as variáveis
responsáveis pela não linearidade da solução. Na essência o método implementa todo o
processo de cálculo do simplex revisado associado a um procedimento de fatorização
quasi-Newton e ao cômputo do gradiente reduzido para o tratamento da não linearidade.
A estratégia de solução sugerida pelo método tem uma forte relação com o
método de gradiente reduzido de WOLFE (1962), com o método de redução de
variáveis de MCCORMICK (1970) e com as estratégias de conjunto ativo
desenvolvidadas por GILL, MURRAY e WRIGHT (1981), onde associam os conceitos
de conjunto de trabalho e técnicas de projeção.
167
6.1.2 - Formulação do Método: Seja o problema de otimização não linear definido na forma:
Minimizar f(x)
Sujeito a:
Amxn.x = b,
l ≤ x ≤ u,
sendo a função f uma função não linear, possivelmente quadrática, um sistema linear de
restrições relativamente densas e um conjunto de restrições de canalização.
Considere, inicialmente, a partição do conjunto de variáveis em três grupos,
divididos em ‘m’ variáveis básicas, ´s´ variáveis super-básicas e ‘n-m-s’ não básicas,
derivando o seguinte sistema de restrições:
A.x = [B | S | N].[xB, xS, xN]T = b
Obviamente, s ≤ t, sendo t o número de variáveis não lineares da solução.
A divisão das variáveis nestes três grupos tem por objetivo, manter sempre um
conjunto de variáveis básicas, xB, que serão responsáveis pela viabilidade primal da
solução, ou seja B.xB = b, implicando em A.x = b. Manter um grande conjunto de
variáveis não básicas com seus valores associados aos limites superiores e inferiores e,
finalmente, manter um número de variáveis super-básicas, que serão responsáveis pelo
aumento do grau de liberdade da solução, permitindo que a mesma contenha mais
componentes que o número de variáveis básicas.
Considerando a expansão da função f quadrática em uma série de Taylor:
f(x + ∆x) = f(x) + g(x)T. ∆x + ½.∆xT.G(x + γ.∆x).∆x,
onde g(x) corresponde ao gradiente da função no ponto x, e G(x + γ.∆x) a matriz
Hessiana avaliada em algum ponto entre x e x + ∆x, para 0 < γ < 1.
Podemos considerar o ponto x + ∆x, um ponto estacionário, se:
168
1 - 000
=
∆∆∆
N
S
B
xxx
INSB ,
ou seja, o ponto permanece na superfície dada pela interseção das restrições ativas.
2 -
=
∆∆∆
+
λµ
INSB
xxx
Gggg
T
T
T
N
S
B
N
S
B
00
ou seja, o gradiente de f em x + ∆x e ortogonal a superfície da s restrições ativas,
podendo, portanto ser expresso como uma combinação linear, expresso pelos
multiplicadores de Lagrange μ e λ, do conjuto de restrições.
Observe que a segunda propriedade poderia ser obtida determinando a patir do
gradiente da função lagrangeana. Obviamente, o vetor μ se refere as restrições de
igualdade do sistema, e o vetor λ as restrições de canalização. De um mdo geral x + ∆x
pode não ser um ponto estacionário, entretanto, devemos utulizar as propriedades acima
para determinarmos uma direção viável de descida.
Destas propriedades podemos derivar, as seguintes equações:
1 - ∆xN = 0
2 - ∆xB = -W. ∆xS, onde W = B-1.S
3 - ∆x = [-W, I, 0]T. ∆xS
4 - BT.μ = gB + [I, 0, 0].G.[-W, I, 0]T.∆xS
5 – λ = gN – NT. μ + [-W, I, 0].G.[-W, I, 0]T.∆xS
6 - [-W, I, 0].G.[-W, I, 0]T.∆xS = -h,
onde h = [-W, I, 0].g = gS – WT.gB
= gS – ST.(B)-1BT.μ = gs – ST.μ
Nas equações 5 e 6, caso ||∆xS|| = 0, teríamos as equações do método simplex
revisado relativo a o cáluclo dos multiplicadores π e o cálculo dos custos mínimos
relativos ou custos reduzidos para determinarmos a variável que deveria ingressar na
base.
169
A equação 7 pode ser interpretada como a realização de um passo de Newton na
direção daa variáveis independentes ∆xS, considerando h = [-W, I, 0].g um vetor de
gradiente reduzido e [-W, I, 0].G.[-W, I, 0]T a correspondente matriz Hessiana
reduzida.
6.1.3 – Algoritmo gradiente reduzido: O algoritmo de gradient reduzido, em alto nível, relacionado ao cômputo de uma
direção de descida p, pode ser descrito como:
Algoritmo gradiente reduzido; Início Enquanto as condições de um ponto estacionário não forem satisfeitas Faça Compute o vetor gradiente reduzido gA = ZT.g; Construa uma aproximação para a matriz Hessiana reduzida GA ≈ ZT.G.Z; Obtenha uma solução aproximada para o sistema ZT.G.Z.pA = -ZT.g, resolvendo o sistema GA.pA = - gA; Compute a direção de busca p = Z.pA; Execute uma busca linear para determinar o próximo ponto, ou seja: f(x + α*.p) = Min α f(x + α.p); Fim_Enquanto; Fim.
Para a implementação do algoritmo MINOS, Murtagh e Saunders sugerem que a
matriz Z , definida como [-W, I, 0]T = [-B-1.S, I, 0]T, seja representada por uma
fatorização LU da matriz B, acrescido da matriz S, e que a matriz Hessiana reduzida
ZT.G.Z seja mantida como uma fatorização R.RT, onde R é uma matriz triangular
superior, em um esquema semelhante a fatorização de Cholesky, o que permite resolver
o sistema p = Z.pA, determinando uma direção viável de descida, e o gradiente reduzido
h = gA = ZT.g.
Se em alguma iteração um variável básica ou super básica atinge um de seus
limites, então a variável é feita não básica. Caso a variável seja uma variável básica,
então uma variável super básica é transformada em básica de forma a manter a
integralidade da base e a viabilidade do sistema. Neste caso, as matrizes N, B, S, L, U e
R devem ser modificadas e o gradiente reduzido deve ser recomputado para refletir a
troca. Caso a variável seja uma variável super básica, o conjunto associado é reduzido,
e as matrizes N, S e R são modificadas de modo a refletirem as mudanças.
170
O conjunto de variáveis não básicas é testado a cada iteração, sendo a de maior
valor do multiplicador introduzida no conjunto de variáveis super básicas. Neste caso
as matrizes N, S e R são atualizadas. É permitido, também, uma técnica de multiple
price onde é permitido o ingresso simultâneo de várias variáveis não básicas que
violem as condições de KKT no conjunto de variáveis super básicas.
6.1.4 – Aplicação a SVM: O problema relacionado ao treinamento de uma SVM por ser um problema de
programação quadrática com uma função convexa, e possuir um grande número de
restrições de canalização, associado aos multplicadores αi, possui uma estrutura bem
favorável a utilizazação do método de otimização proposto por Murtagh e Saunders.
Entretanto, aparecem dois problemas principais. O primeiro está relacionado a
existência de somente uma restrição de igualdade relativa ao sistema A.x = b, o que
torna inviável a utilização do método. Para resolver este problema OSUNA, FREUND e
GIROSI (1997) propõe a seguinte formulação alternativa para o problema SVM:
Max f (Λ,Ω) = Λ.l – ½. ΛT. Ω
Sujeito a:
ΛT.Y = 0
H. Λ = Ω
0 ≤ Λ ≤ C.
O segundo está relacionado ao grande número de variáveis αi que podem estar
envolvidas no processo de otimização. Em algumas aplicações práticas este número
pode chegar a ordem de 50000, tornando impraticável a utilização de qualquer método
que trate o vetor de multiplicadores Λ como um todo.
Além das operações que envolvem a matriz Hessiana, a reformulação do
problema SVM, proposta anteriormente, aumenta consideravelmente o número de
restrições de igualdade do sistema , tornando a matriz B de variáveis básicas de ordem
equivalente ao número de exemplos do conjunto de treinamento acrescido de um
unidade, relativa a restrição de balanceamento dos multiplicadores αi.
171
Neste sentido, OSUNA, FREUND e GIROSI (1997) propuseram a partição do
conjunto de multiplicadores em dois subconjuntos, originando, portanto, a sua estratégia
de decomposição, descrita a seguir.
O primeiro subconjunto é formado por um número reduzido, porém arbitrário de
exemplos do conjunto de treinamento, de tamanho suficiente para conter todos os
vetores suportes, definindo um conjunto de trabalho que será utilizado na solução do
problema. Tal estratégia é estimulada, principalmente, pelo fato de somente um número
reduzido de pontos se tornarem vetores suportes na solução ótima do problema.
Uma vez resolvido o problema de otimização, associado ao conjunto de
trabalho, o algoritmo testa se todos os exemplos fora do conjunto de treinamento estão
satisfazendo as condições de otimalidade. Este processo é implementando verificando
se para algum exemplo de índice ‘i’:
g(xi).yi < 1, sendo g(xi) = ∑j αj.yj.K(xi,xj), para j=1,...,m,
com o multiplicador associado αi, ingressando no conjunto de trabalho, no lugar de
algum multiplicador αj que tenha valor zero.
Este processo garante, segundo os autores, a melhora da função objetiva a cada
sub-problema de otimização resolvido. Como sugestões finais os autores reportam a
necessidade de serem desenvolvidas estratégias mais eficientes relacionadas, sobretudo,
a escolha e mofificação do conjunto de trabalho a cada iteração, a qual chamam de
estratégias de pivoteamento. Também, destacam a necesidade de implementação de um
solver de otimização mais eficiente desenvolvido especificamente para o problema
SVM.
Apesar da utilização de um método de segunda ordem associado a uma
estratégia de decomposição não ser objeto de implementação em nosso trabalho,
achamos que a estratégia de decomposição do algoritmo MINOS pode ser bem
aproveitada na solução de um problema SVM. A nossa percepção decorre do fato de
que, durante o processo de otimização, um número muito grande de variáveis ou
multiplicadores, permenecem sempre com valores iguais a zero, e, portanto, estariam
172
sempre relacionadas ao conjunto de variáveis não básicas do algoritmo MINOS
reduzindo, desta forma , o esforço computacional. Entretanto, para que este algoritmo
fosse, realmente, eficiente para problemas de grande porte, teríamos que determinar a
priori, uma base B, de dimensão compatível com o número de vetores suporte do
problema.
Tal processo, como já vimos, envolve a introdução na formulação do problema
SVM de um grupo de restrições de igualdade. Ao que parece, a utilização de alguma
estratégia que garantisse a viabilidade de uma solução primal básica, como a solução de
um problema primal restrito, considerando um grupo de variáveis superbásicas
independentes, poderia ser o ponto de partida para a elaboração de uma técnica baseada
em decomposição, realmente promissora.
6.1.5 – Chunking: O método denominado chunking é uma forma de decomposição do problema SVM em
subproblemas de otimização quadrática, apresentado, originalmente, por VAPNIK,
(1982), levando em conta a esparsidade do vetor de multiplicadores αi* na solução. Este
método se diferencia do processo de decomposição apresentado anteriormente pelo fato
de construir conjuntos de trabalhos de tamanhos variáveis.
Inicialmente, é criado um conjunto de trabalho com todos os multiplicadores de
valores não limitados para um discriminante inicial. Em seguida, adiciona-se, a cada
iteração, um conjunto de multiplicadores que tenham violado as condições de
otimalidade. Ao final do processo teremos no conjunto de treinamento, havendo
memória suficiente, todos os multiplicadores associados aos vetores suportes.
Uma eficiente implementação do método chunking, que considera também a
possibilidade de utilização de um conjunto de trabalho de tamanho fixo com uma
estratégia de pivoteamento, associado a um pacote de otimizadores, incluíndo o MINOS
e LOQO (método de pontos interiores para a solução de problemas de programação
quadrática), foi realizada pelo departamento de ciência da computação da Royal
Holloway University of London, αi, por SAUNDERS, STITSON, WESTON,
BOTTOU, SCHOLKOPF e SMOLA (1998).
173
6.2 - Otimização Seqüencial Mínima (SMO):Teoria e Implementação Nesta seção, será apresentado uma descrição detalhada do algoritmo de Platt conhecido
como SMO. Inicialmente vamos apresentar o problema relacionado ao treinamento de
uma SVM com uma introdução de funções Kernel, na forma K(x,y) = φ(x) . φ(y), ou
seja:
Max ∑iαi - ½.∑i∑jαi.αj.yi.yj.<φ(xi),φ(xj)>
Sujeito a:
∑iαi..yi = 0,
0 ≤ αi ≤ C.
Ou
Max ∑iαi - ½.∑i∑jαi.αj.yi.yj.K(xi, xj)
Sujeito a:
∑iαi..yi = 0,
0 ≤ αi ≤ C.
6.2.1 – Escolha das variáveis: O procedimento SMO envolve um loop iterativo onde a cada iteração são escolhidos um
par de variáveis duais, α1 e α2, para a solução analítica de um subproblema de
otimização quadrática na sua forma mínima.
Na Figura VI-1 podemos observar as três estratégias mais comuns de
decomposição relacionadas a escolha de subconjuntos de trabalho asssociados ao
conjunto de multiplicadores αi. No primeiro caso temos o método chunking
apresentando um conjunto de trabalho de tamanho variável que cresce
progressivamente. No segundo caso temos a estratégia de decomposição na sua forma
mais simples, consistindo na determinanção de um conjunto de trabalho de tamanho
fixo. Finalmente, temos a estratégia de decomposição na sua forma mais extrema,
empregada pela técnica SMO, que consiste em sucessivas escolhas de dois
multipicadores.
174
Figura VI-1 – Estratégias na determinação do conjunto de trabalho
Como visto por OSUNA, FREUND e GIROSI (1997), a solução ótima de um
subproblema pode ser alterada implicando em uma melhora da função objetiva caso a
variável que ingresse no conjunto ativo esteja violando uma condição KKT. Neste caso,
devemos sempre, na escolha das duas variáveis, optar primeiramente por uma que esteja
violando as condições de otimalidade.
Para tanto, será feita a seguinte análise, relacionada a uma reinterpretação das
condições KKT:
yi . (wxi – b) - 1 ≥ 0
= yi . (wxi – b) – yi2 ≥ 0
= yi . (wxi – yi – b) ≥ 0
= yi . (Fi – b) ≥ 0,
sendo:
Fi = wxi – yi.
Relembrando, temos que o erro Ei = wxi + b – yi, temos: Ei = Fi + b. Portanto
podemos reescrever a condição KKT relacionada a complementaridade na forma:
175
Se αi = 0 então yi.Ei ≥ 0, significando que o ponto está fora das margens.
Se 0 < αi < C então yi.Ei ≈ 0, significando que o ponto está sobre uma margem.
Se αi = C então yi.Ei ≤ 0, significando que o ponto está dentro da margem.
Neste sentido, devemos escolher como primeira variável aquele multiplicador αi
que esta presente em uma margem, 0 < αi < C, e que não satisfaça a condição
associada, portanto o yi . Ei > є, para uma determinada constante de erro. Geralmente
escolhemos є = 0.001.
A escolha da primeira variável implica obviamente na escolha da segunda
variável em função da primeira. Entretanto caso a solução do subproblema associado
não realize algum progresso, o algoritmo reconsidera a escolha da primeira variável,
consierando todas as possibilidades e não somente aqueles pontos que se encontram na
margem.
A escolha da segunda variável é feita em função da escolha da primeira variável.
Platt sugere que a escolha seja feita no sentido de maximizar a expressão: |E2 – E1|,
associando o erro E2 a primeira escolha (variável α2), maximizando desta forma o passo
relacionado a solução do subproblema. Caso E2 seja positivo o algoritmo escolhe como
segunda variável, variável α1, um exemplo associado ao menor erro E1. Caso o E2 seja
negativo o algoritmo escolhe para segunda variável, um exemplo associado ao maior
erro E1.
Na escolha da segunda variável é implementada a seguinte hierarquia de
escolhas:
Inicialmente o algoritmo testa para todos os exemplos na margem ou não
limitados o exemplo que maximize a expressão: |E2 – E1|.
Caso não ocorra melhora da função, o algoritmo testa seqüencialmente, a partir
de um ponto aleatório, todo o conjunto de exemplos na margem ou não limitados, até
que um deles proporcione uma melhora na função.
Caso ainda não tenha sido obtida esta melhora, o algoritmo finalmente testa
seqüencialmente, a partir de um ponto aleatório, todo o conjunto de exemplos limitados,
até que um deles proporcione uma melhora na função.
176
Se esta melhora for obtida, o conjunto retorna com sucesso a escolha da primeira
variável considerando somente as variáveis não limitadas, a fim de obter um novo
subproblema. Caso contrário o algoritmo retorna com fracasso e tenta, novamente, a
escolha da primeira variável considerando todo o conjunto de treinamento.
O algoritmo mantem um vetor de cache relacionado aos valores dos erros Ei.
Desta forma antes de ser computado um erro, é verificado se o mesmo já esta
armazenado na memória. A atualização do vetor de cache é feito ao final de cada
iteração.
6.2.2 – Solução do subproblema de otimização: Como já mencionado, é possível a solução analítica do subproblema de otimização
envolvendo somente duas variáveis. Para tanto vamos, primeiramente, reescrever a
função objetiva na forma dual de Wolfe e as respectivas restrições em função das
variáveis escolhidas α1 e α2:
( ) ( ) ( ) ( ) ctevyvyxxKxxKxxKsL −−−−−−+= 2221112222
2111212121 ,
21,
21,. ααααααααα
onde: 21 yys =
∑≠
=2,1
),(j
jijji xxkyv α
Sujeito a:
∑≠
−=+2,1
2211i
ii yyy ααα
CC
≤≤
≤≤
2
1
00
α
α
É interessante observar que este problema possue uma solução que pode ser
facilmente construída em R2, observando que, as restrições de canalização ou limite
delimitam uma região viável a um quadrado enquanto que a restrição de igualdade
define a equação de uma reta, portanto a escolha dos multiplicadores pertencerá a algum
ponto da reta, visto como uma linha diagonal, observando a região delimitada, conforme
mostrado na Figura VI-2.
177
A utilização de dois multiplicadores é necessária visto que a utilização de
somente um multiplicador não permitiria a satisfação da restrição de igualdade a cada
passo.
Figura VI-2 – Solução analítica do sub-problema quadrático
O método de solução consiste em computar o valor da primeira variável
considerando o gradiente da função objetiva e determinando um máximo ao longo da
direção da reta relativa a restrição de igualdade observando a região viável delimitada
pelo quadrado.
Em seguida a segunda variável é determinada em função do valor da primeira,
para tanto vamos inicialmente estabelecer uma relação entre estas variáveis.
Definindo:
∑≠
=−2,1i
ii y γα ,
temos:
,
2121
2121
γαα
γαα
=−⇒≠
=+⇒=
yyyy
resultando em: tt s 21 αγα −= .
178
Considerando o fato de que antes da atualização: tt yy 2211 ααγ += = tt s 21 αα + ,
fornecendo:
( )tttt s 21
21
11 αααα −+= −−
A obtenção da primeira variável (α2) é feita computando-se o gradiente da
função objetiva.
Inicialmente, devemos expressar a função objetiva somente em relação a
variável α2, considerando α1 = γ – sα2. Tomando a função kernel K(xi, xj) = Kij, e
realizando a substituição de α1, podemos reescrever a função na forma:
( ) ( ) ( )
( ) ctevyvsy
sKsKsKsL
+−−
−−−−−−+−=
222121
22122222
221122 .
21
21
ααγ
ααγααγααγα
Considerando 2211122 KKK −−=η e introduzindo os valores dos erros
111 ybwxE −+= e 222 ybwxE −+= , podemos, após uma seqüência de operações
algébricas, chegar na expressão:
( )( ) cteEEyL ttt +−−+= −−−2
12
12
112
222
1αηαηα
Computando as derivadas de primeira e segunda ordem da função em relação a
α2 temos:
( ) 12
12
1122
2
−−− −−+= ttt EEyddL
ηαηαα
,
ηα
=2
2
2
dLd .
Fazendo 02
=αddL , temos:
( )η
αα1
21
12122
−−− −
+=tt
tt EEy.
179
Para que α2 seja um ponto estacionário é necessário que η ≤ 0. De fato esta
condição é satisfeita, visto que:
η = 2K12 – K11 – K22 = -(x2 –x1)T.(x2 – x1) = - ||x2 - x1||2 ≤ 0.
Caso η < 0 a equação de atualização de α2 fornece um ponto de máximo
irrestrito ao longo da reta γ = α1 + sα2. Portanto para mantermos a viabilidade do novo
ponto devemos observar as restrições de limite 0 ≤ α2 ≤ C, ou seja:
Se s = 1 então α1 + α2 = γ, sendo γ = α1t + sα2
t, temos:
Caso γ ≥ C então Max(α2) = C e Min(α2) = γ – C
Caso y < C então Max(α2) = γ e Min(α2) = 0
Se s = -1 então α1 – α2 = γ, temos:
Caso γ ≥ 0 então Min(α2) = 0 e Max(α2) = -γ
Caso y < 0 então Min(α2) = -γ e Max(α2) = C
É comum essas equações serem estabelecidas em função de dois limites, sendo o
limite inferior L e o limite superior H. Neste caso, para s = 1, fazemos:
L = Max {0, γ – C} e H = Min {C, γ}
De outra forma, para s = -1, fazemos:
L = Max {0, -γ} e H = Min {C, C + α2 – α1},
Obtendo, portanto, as novas equações de fixação:
α2 = L se α2 < L, e α2 = H se α2 > H.
Estas condições de limitação no valor de α2, denominadas clipped, podem ser
melhor compreendidas geometricamente observando a Figura VI-2.
Caso η = 0 necessitamos avaliar a função objetiva, ou seja, o valor da reta no
final dos dois pontos referentes aos valores de α2 = L ou α2 = H, tomando para α2 o
valor que fornece o máximo da função. Em outras palavras, computamos:
( ) ( )( ) cteEEyL tttobj +−−+= −−−
21
21
21
12222 ..
21
αηαηαα ,
180
para α2 = L e α2 = H, e definimos:
( ){ }αα LMaxArgt 2 = .
6.2.3 – Atualização de parâmetros e cache: Ao final de cada iteração devemos atualizar ou computar os seguintes parâmetros, o
vetor w, o vertor de erro E, considerando os erros dos multiplicadores αi não limitados e
que não se envolveram no processo de otimização e o bias b da equação do hiperplano.
Convem observar que todo multiplicador não limitado envolvido no processo de
otimização tem seu valor de erro igualado a zero.
O armazenamento do vetor de erros na memória, reduz o esforço computacional
na solução do subproblema de otimização. Neste sentido, sempre que for necessário a
utilização de seus valores, verificamos primeiramente se o mesmo já não se encontra
calculado. Caso não esteja, é feita a sua avaliação online.
Primeiramente, para o vetor w, temos:
( ) ( ) 21
22211
1111 .. xyxyww ttt −−− −+−+= αααα
Em seguida, para o vetor de erro E, temos:
( ) ( ) ( ) ( ) bbxxKyxxKyEE tk
tk
ttkk −+−+−+= −−−− 1
21
22211
1111 ,, αααα
Finalmente, para o bias b, temos:
( ) ( ) ( ) ( ) 121
122211
111111 ,, −−− +−+−+= ttt bxxKyxxKyEb αααα
( ) ( ) ( ) ( ) 122
122221
111122 ,, −−− +−+−+= ttt bxxKyxxKyEb αααα
221 bb
b+
=
6.2.4 – Cálculo da função Kernel: Os valores da função Kernel K(x,y) são computados na fase inicial do algoritmo e
armazenados em uma matriz K, de dimensão mxm sendo m o número de exemplos do
conjunto de treinamento. Caso o valor de m seja muito elevado é necessário a avaliação
online dos valores da função Kernel demandando um maior custo computacional.
181
Em nossa implementação, foram introduzidos dois tipos de funções. A primeira
se refere ao Kernel produto interno, ou seja:
K(x,y) = <x,y>,
e sua forma normalizada:
K’(x,y) = K(x,y) / (√K(x,x) . K(y,y)).
A segunda se refere ao Kernel gaussiano RBF, ou seja:
K(x,y) = exp( ||x-y||2/σ2),
para determinados valores da variância σ2.
6.2.5 – Algoritmo SMO: A seguir, apresentamos uma descrição em alto nível do algoritmo SMO seguindo a
metodologia de calculo vista anteriormente. Foram considerados quatro módulos
principais, sendo: o primeiro módulo relacionado ao loop principal que controla a
chama dos módulos auxiliares e o processo de convergência; o segundo relacionado a
escolha da primeira variável α2; o terceiro relacionado a escolha da segunda variável α1
e, finalmente, o quarto módulo relacionado a solução do subproblema de otimização e
atualização dos parâmetros e cachê.
Neste momento não vimos necessidade de detalhar os módulos relativos a
entrada e saída de dados, bem como o cálculo das funções kernel.
182
Algoritmo SMO; Início Para i ß 1 .. m Faça αi ß 0; b ß 0; Fim_Para; mudança ß 0; loop ß 0; Enquanto ((mudança = 1) ou (loop = 1)) Faça mudança ß 0; Se Loop Então Para i ß 1 até m Faça Se (Escolheα2(i) = 1) Então mudança ß 1; Fim_Se; Fim_Para Senão Para i Є Suporte Faça Se (Escolhaα2(i) = 1) Então mudança ß 1; Fim_Se Fim_Para Fim_Se; Se (loop = 1) Então loop ß 0 Senão_Se mudança = 0 Então loop ß 1; Fim_Se Fim_Enquanto Fim; Procedure Escolhaα2(α2): inteiro; Início (* escolha do α2 que viola KKT *) y2 ß target(x2); E2 ß w.x2 + b – y2; r2 ß E2.y2; Se ((r2 > tolerância(+) e α2 > 0) ou (r2 < -tolerância(-) e α2 < C)) Então Se (existe 0 < αi < C) Então Escolheα1(α1, α2, E2); Se (Step(α1, α2) = 1) Então Retorna 1; Fim_Se; Fim_Se; Para todo i fora da margem, iniciando de um ponto aleatório Faça Se (Step(αi, α2) = 1) Então Retorna 1;
183
Fim_Se; Fim_Para; Para todo i na margem, iniciando de um ponto aleatório Faça Se (Step(αi, α2) = 1) Então Retorna 1; Fim_Se; Fim_Para; Fim; Procedure Escolheα1(var α1, α2, E2): inteiro; Início Se E2 > 0 Então ( ){ }{ }iiii
yxwEMinArg −=≠
.112α
α
Senão ( ){ }{ }iiii
yxwEMaxArg −=≠
.112α
α ;
Fim_Se; Fim; Procedure Step(α1, α2): inteiro; Início Se α1 = α2 Então Retorna 0 Senão y1 ß target(α1);
y2 ß target(α2); E1 ß (w.x1 + b – y1); E2 ß (w.x2 + b – y2); s ß y1 . y2;
(* Computar L e H *) Se (s = -1) Então
L ß Max {0, α2old – α1
old}; H ß Min {C, C+ α2
old – α1old }
Senão L ß Max {0, α2
old + α1old – C };
H ß Min {C, α2old + α1
old }; Fim_Se;
Se (L = H) Então
Retorna 0 (* fracasso *) Fim_Se;
(* Computa η considerando a matriz kernel Ki,j = Kernel(xi, xj) *)
η ß 2.K1,2 – K1,1 – K2,2;
184
(* Computa novo α2 *)
Se (η < 0) Então α2 ß α2
old – (y2 . E1 – E2) / μ;
Se α2 < L Então α2 ß L Senão_Se (α2 > H) Então α2 ß H; Fim_Se
Senão (*η ≥ 0 *) L1 ß Lobj(α2 = L); L2 ß Lobj(α2 = H); (* Definindo Lobj(α) = (1/2) .η.(α2)2 + (y2 . (E1 – E2) – η.α2) . α2 *) Se (L1 > L2 + eps) Então α2 ß L Senão_Se (L1 < L2 – eps) Então α2 = H Senão α2 ß α2
old
Fim_Se Fim_Se;
(* Ajuste α2 *) Se (α2 < erro) Então
α2 ß 0 Senão_Se (α2 > C – erro) Então
α2 ß C Fim_Se
Se (|α2 – α2
old| < eps . (α2 + α2old + eps)) Então
Retorna 0 Fim_Se;
(* Computa α1 *) α1 ß α1
old + s.(α2old – α2);
(* Atualizações *)
b1 ß E1 + y1 . (α1 – α1
old) . K1,1 + y2 . (α2 – α2old) K1,2 + bold;
b2 ß E2 + y1 . (α1 – α1old) . K1,2 + y2 . (α2 – α2
old) K2,2 + bold;
b ß (b1+ b2) / 2;
w ß wold + y1.(α1 – α1old).x1 + y2.(α2 – α2
old).x2;
185
E1 ß E1
old + (y1.(α1 – α1old).K1,1 + y2.(α2 – α2
old).K2,1) + ∆b; E2 ß E2
old + (y1.(α1 – α1old).K1,2 + y2.(α2 – α2
old).K2,2) + ∆b;
Retorna 1; Fim_Se
Fim;
6.2.6 – Aplicação a um problema de separabilidade linear: Seja o conjunto de pontos em R2 rotulados pelas respectivas classes, conforme o
conjunto de treinamento apresentado pela Tabela VI-1, cuja solução é representada
graficamente pela Figura VI-3.
J X1 X2 Classe
0 -0.50 0.35 -1
1 -0.75 0.85 -1
2 -0.60 0.65 -1
3 -0.50 0.75 -1
4 0.50 0.00 1
5 -0.30 -0.20 1
6 0.30 0.10 1
7 -0.10 0.10 1
Tabela VI-1 – Conjunto de treinamento
Figura VI-3 – Representação gráfica da solução SVM
186
Os seguintes resultados foram apresentados pelo algoritmo SMO, utilizando
como kernel o produto interno dos dados:
Número de iterações: 29.
Valores dos multiplicadores e da função objetiva a cada solução de um subproblema:
Alpha1: ( 4) = 1.78174 - Alpha2: ( 0) = 1.78174 - Função: 1.78174 Alpha1: ( 0) = 5.57931 - Alpha2: ( 5) = 3.79757 - Função: 4.25143 Alpha1: ( 4) = 0.00000 - Alpha2: ( 7) = 1.78174 - Função: 6.86409 Alpha1: ( 7) = 5.27653 - Alpha2: ( 0) = 9.07410 - Função: 8.22285 Alpha1: ( 0) = 7.76516 - Alpha2: ( 5) = 2.48863 - Função: 8.51626 Alpha1: ( 0) = 9.04469 - Alpha2: ( 7) = 6.55606 - Função: 8.69840 Alpha1: ( 0) = 8.23214 - Alpha2: ( 5) = 1.67608 - Função: 8.81146 Alpha1: ( 0) = 9.02643 - Alpha2: ( 7) = 7.35035 - Função: 8.88165 Alpha1: ( 0) = 8.52203 - Alpha2: ( 5) = 1.17167 - Função: 8.92522 Alpha1: ( 0) = 9.01509 - Alpha2: ( 7) = 7.84342 - Função: 8.95227 Alpha1: ( 0) = 8.70198 - Alpha2: ( 5) = 0.85856 - Função: 8.96906 Alpha1: ( 0) = 9.00806 - Alpha2: ( 7) = 8.14950 - Função: 8.97948 Alpha1: ( 0) = 8.81369 - Alpha2: ( 5) = 0.66419 - Função: 8.98595 Alpha1: ( 0) = 9.00369 - Alpha2: ( 7) = 8.33950 - Função: 8.98997 Alpha1: ( 0) = 8.88303 - Alpha2: ( 5) = 0.54353 - Função: 8.99246 Alpha1: ( 0) = 9.00098 - Alpha2: ( 7) = 8.45745 - Função: 8.99401 Alpha1: ( 0) = 8.92608 - Alpha2: ( 5) = 0.46863 - Função: 8.99497 Alpha1: ( 0) = 8.99929 - Alpha2: ( 7) = 8.53067 - Função: 8.99556 Alpha1: ( 0) = 8.95280 - Alpha2: ( 5) = 0.42213 - Função: 8.99593 Alpha1: ( 0) = 8.99825 - Alpha2: ( 7) = 8.57612 - Função: 8.99616 Alpha1: ( 0) = 8.96939 - Alpha2: ( 5) = 0.39327 - Função: 8.99631 Alpha1: ( 0) = 8.99760 - Alpha2: ( 7) = 8.60433 - Função: 8.99639 Alpha1: ( 0) = 8.97968 - Alpha2: ( 5) = 0.37535 - Função: 8.99645 Alpha1: ( 0) = 8.99720 - Alpha2: ( 7) = 8.62185 - Função: 8.99648 Alpha1: ( 0) = 8.98608 - Alpha2: ( 5) = 0.36423 - Função: 8.99651 Alpha1: ( 0) = 8.99695 - Alpha2: ( 7) = 8.63272 - Função: 8.99652 Alpha1: ( 0) = 8.99004 - Alpha2: ( 5) = 0.35732 - Função: 8.99653 Alpha1: ( 0) = 8.99679 - Alpha2: ( 7) = 8.63947 - Função: 8.99653 Alpha1: ( 0) = 8.99251 - Alpha2: ( 5) = 0.35304 - Função: 8.99653 Parâmetros de erro: Erro analítico: 0.0009322146 Erro do balanceamento ( ∑αi.yi): 0 Valores finais dos multiplicadores: 8.99653974915623, 0, 0, 0, 0, 0.346020836468166, 0, 8.65051891268806 Vetores suportes: 0, 5, 7
187
Parâmetros do discriminante: Bias (λ): 1.58824 Vetor w: (3.23420, -2.81757) Verificação da classificação (valor computado, valor desejado): 0 (-1, -1) 1 (-1, -1) 2 (-1, -1) 3 (-1, -1) 4 ( 1, 1) 5 ( 1, 1) 6 ( 1, 1) 7 ( 1, 1) Erros de classificação encontrados: 0
6.3 – Métodos Online: Teoria e Implementação Como já visto anteriormente, no método dos mínimos quadrados médios, e mínimos
quadrados recursivo é possível implementar um processo iterativo que atualiza o vetor
de multiplicadores do problema SVM na forma dual de Wolfe, tendo como base a
avaliação em cada ponto do gradiente da função lagrangeana.
Neste sentido, para cada novo exemplo apresentado, seu coeficiente ou
multiplicador associado é atualizado, no sentido de satisfazer a sua própria condição de
otimalidade. Tecnicamente, esses métodos são chamados de online contrapondo as
soluções analíticas nos problemas de otimização.
Para a solução do problema relacionado ao Perceptron de máxima margem,
foram propostos, como já vimos, dois procedimentos da mecânica estatística
denominados respectivamente Adatron e Minover.
A implementação destes métodos é bem simples, pois não utilizam informações
da matriz Hessiana, sendo a sua convergência em relação a solução ótima garantida com
uma taxa exponencial ANLAUF e BIEHL (1989) para o algoritmo Adatron ou
polinomial KINZEL (1990) para o algoritmo Minover.
6.3.1 – Algoritmo Kernel Adatron: Este algoritmo proposto por FRIESS, CRISTIANINI e CAMPBELL (1998) é,
basicamente, uma extensão do algoritmo Adatron com a introdução de funções kernel
em substituição ao produto interno dos vetores de treinamento. Se considerarmos uma
implementação sem bias e sem Soft Margin do modelo, temos que maximizar a função
188
lagrangeana em relação ao conjunto de multiplocadores αi. Ou seja, resolvemos o
problema SVM na forma:
Max ( ) ( )∑∑∑= ==
−=m
i
m
jjijiji
m
ii xxKyyL
1 11,
21
αααα
Sujeito a:
0
01
≥
=∑=
i
m
iiiy
α
α
A função de decisão, deste modelo sem bias, é equivalente a função de decisão
do Perceptron dual, podendo ser escrita como:
( ) ( )∑=
=m
jjijji xxKyxf
1,α ,
( ) ( )iii xfyxg = ,
z (xi) = sinal(g(xi)).
A medida de correção de cada variável αi é baseada na direção do gradiente da
função lagrangeana L, para um determinado passo, estabelecido por uma constante de
aprendizagen n, portanto:
( )i
iiLLPα
ηηα∂∂
=∇=∆ ,
onde:
( )∑=
−=∂∂ m
jjijji
i
xxKyyL1
,1 αα
,
implicando em:
( )[ ]ixgi −=∆ 1ηα .
Para evitar que os multiplicadores tenham valores negativos, a atualização da de
cada variável αi é feita considerando a equação:
0 se 11 >∆+∆+= −−i
tii
ti
ti ααααα ,
0 se 0 1 ≤∆+= −i
ti
ti ααα .
189
Os autores não estabelecem, a princípio, para o Kernel Adatron, um critério de
parada baseado no valor da margem ou na verificação das condições de otimalidade. É
estabelecido, simplesmente, um número máximo de épocas na execução do algoritmo,
onde cada época corresponde a uma passagem de todo conjunto de treinamento.
As variáveis αi são inicializadas com valor um. Por não estar incluído na
formulação dual, ao final de cada época, o algoritmo aproxima um valor para o bias do
modelo, com base nas restrições do problema primal, na forma:
( )( ) ( )( )2
ii xfMaxxfMinb
−+ −−=
Neste sentido, o hiperplano é posicionado na metade da distância que liga os
dois pontos de classes contrárias que mais se aproximam mutuamente do hiperplano
separador, mantendo a máxima margem de segurança em relação as duas classes.
Observe que o valor do bias está relacionado ao tamanho de uma semimargem,
devendo, portanto, convergir para um valor próximo de um. Este valor, segundo
CAMPBELL, FRIESS e CRISTIANINI (1998), pode ser introduzido no algoritmo,
como critério de parada.
Ao final do processo, a equação do hiperplano separador, no espaço de
características será dada por:
( ) ( )
+= ∑
∈SVjjjj bxxKyxz ,sinal α
6.3.2 – Variantes do Kernel Adatron: A seguir, descrevemos as principais variantes relacionadas a implementações do
algoritmo Adatron.
Primeira variante: PRÍNCIPE, EULIANO e LEFEBVRE (2000), propõem pequenas mudanças,
que podem ser aplicadas ao algoritmo Kernel Adatron, visto anteriormente. Apesar
destas mudanças terem sido desenvolvidas para o algoritmo Adatron, podemos estendê-
las, facilmente, com o uso de funções kernel.
190
A primeira se refere a introdução de um critério de parada relacionado ao
posicionamento dos pontos em relação a margem. A segunda, se refere a uma
atualização online do bias. Desta forma, a cada iteração, o algoritmo computa o valor de
M = Mini g(xi), como a menor distância de todos os ponto em relação as respectivas
margens, interrompendo o processo de treinamento quando este valor se aproximar de
zero, para uma determinada constante de erro є.
Nesta variante, os autores propõem a incorporação do valor do bias ao valor da
função computada pela rede, ou seja:
( ) ( ) bxxKyxfm
jjijji += ∑
=1,α
A atualização online do bias b, considerando seu valor inicial igual a zero, é
feita computando-se, para cada exemplo xi, a seguinte equação:
0 se . 11 >∆+∆+= −−i
tiii
tt ybb ααα
0 se 11 ≤∆+= −−i
ti
tt bb αα .
Este procedimento, de inclusão e atualização do bias, pode ser interpretado,
segundo FRIESS (1998), como a introdução de um termo igual a b2/2 na função
objetiva. Este raciocício é possível considerando uma modificação da restrição de
igualdade do problema para:
21
bym
iii =∑
=
α .
Realizando a relaxação desta restrição para um multiplicador λ = b, temos que
solucionar o seguinte problema:
( ) ( )0
2 ,
21,
11 11
≥
−−−= ∑∑∑∑
== ==
i
m
iii
m
i
m
jjijiji
m
ii
bybxxKyyLMax
α
ααααλα
191
Esta formulação se justifica pela inclusão do termo b2/2 na função lagrangeana
relaxada original, ou seja, utilizando a relaxação da restrição 01
=∑=
m
iiiy α . De fato, se
considerarmos:
( ) ( )2
,21,
2
11 11
bybxxKyyLm
iii
m
i
m
jjijiji
m
ii +
−−= ∑∑∑∑
== ==
ααααλα ,
obtemos:
( ) ( )
−−−= ∑∑∑∑
== == 2 ,
21,
11 11
bybxxKyyLm
iii
m
i
m
jjijiji
m
ii ααααλα .
Tomando o gradiente em relação a αi temos:
( ) i
m
jjijji
i
ybxxKyyL .,11
−−=∂∂ ∑
=
αα
Derivando:
( )[ ]ixgi −=∆ 1ηα ,
onde:
( ) ( )
+= ∑
=
bxxKyyxg jij
m
jjii ,
1
α ou ( ) ( )iii xfyxg = ,
fornecendo:
( ) bxxKyxf jij
m
jji += ∑
=
,)(1α .
Tomando o gradiente em relação ao parâmetro b temos:
bybL m
jjj +−=
∂∂ ∑
=1α , o que implica em by
m
jjj =∑
=1α , justificando a sua fórmula de
atualização.
Friess, entretanto, propõe uma atualização alternativa para o bias b, que
considera a existência do parâmetro de regularização C, através da equação:
bt = bt-1 + yi. αi , se 0 < αi + ∆αi ≤ C,
bt = bt-1 - yi. αi , se αi + ∆αi < 0,
bt = bt-1 + yi.(C- αi) , se αi + ∆αi > C.
192
A atualização dos multiplicadores αi é baseada no gradiente da função
lagrangeana, a exemplo de como é feito no algoritmo original do Adatron. Porém, é
sugerida uma pequena modificação no estabelecimento dos valores de αi, a variável
permanece com o valor anterior, quando a mudança provoca valores negativos, ou seja:
0 se 11 >∆+∆+= −−i
tii
ti
ti ααααα
0 se 11 ≤∆+= −−i
ti
ti
ti αααα
Se considerarmos a atualização dos parâmetros, segundo o modelo de
aprendizagem do Perceptron, teríamos a correção dos valores condicionada a ocorrência
de erros. Portanto, se a saída da rede produzi-se um valor diferente do valor desejável,
ou seja, se φ(f(xi)) ≠ yi , atualizaríamos os parâmetros na forma:
xiti
ti .1 ηαα += − ,
xibb tt .1 η+= − .
Segunda variante: CAMPBELL e CRISTIANINI (1998) propuseram algumas modificações no algoritmo
Kernel Adatron relacionadas a avaliação do bias, bem como a introdução do parâmetro
de regularização C, que controla a capacidade de generalização do classificador.
Para a avaliação online do bias considera-se a relaxação da restrição:
01
=∑=
m
iiiy α ,
com a introdução de um multiplicador λ. Portanto, o problema SVM toma a forma:
( ) ( )C
yxxKyyLMax
i
m
iii
m
i
m
jjijiji
m
ii
≤≤
−−= ∑∑∑∑== ==
α
αλαααλα
0
,21,
11 11
Computando o gradiente da função em relação a variável αi , temos:
( ) i
m
jjijji
i
yxxKyyL .,11
λαα
−−=∂∂ ∑
=
.
Derivando:
( )[ ]ixgi −=∆ 1ηα ,
193
onde:
( ) ( )
+= ∑
=
λα jij
m
jjii xxKyyxg ,
1
ou ( ) ( )iii xfyxg = ,
considerando o parâmetro λ o bias do modelo, e o valor ( ) ( ) λα += ∑=
jij
m
jji xxKyxf ,
1
como o valor computado pela rede para o vetor de entrada xi e yi a saída desejada
associada.
Na atualização dos multiplicadores considera-se, também, a existência dos
limites superiores em função do parâmetro de regularização C. Portanto, para cada
exemplo, computa-se:
Citii
ti
ti ≤∆+<∆+= −− ααααα 11 0 se
CC iti
ti >∆+= − ααα 1 se
0 se 0 1 ≤∆+= −i
ti
ti ααα
Na atualização do vetor bias, os autores consideram um processo iterativo de
ajustamento com base no gradiente da função lagrangeana L em relação ao parâmetro λ,
ou seja, considerando:
∑=
=∂∂ m
iiiyL
1
αλ
,
atualizamos o bias λ, ao final de cada época, segundo a equação:
∑ −− −= iti
tt ya 11 νλλ ,
onde 0 < υ < 1, representa o parâmetro que delimita o passo de atualização.
Para uma maior estabilidade do processo, os autores propõe uma forma de
correção alternativa do parâmetro λ utilizando o método da secante, neste caso
computa-se, ao final de cada época, a equação:
−−
−=−−
−−−−
21
2111
tt
ttttt
www λλ
λλ , onde ∑=j
jtj
t yw α ,
considerando, inicialmente, µλ =0 e µλ −=1 .
A função de decisão final é dada por:
194
( ) ( )
+= ∑
∈SVjjjj xxKyxz λα ,sinal
6.3.3 – Algoritmo Kerneltron: GENOV, CHAKRABATTY e CAUWENBERGHS (2002) propõem uma interessante
implementação do algoritmo SVM para classificação binária em uma arquitetura VLSI
maciçamente paralela denominada Kerneltron, aplicada a problemas de reconhecimento
de imagens de vídeo em tempo real.
O algoritmo de aprendizado proposto pode, também, ser considerado uma
variante do algoritmo Kernel Adatron. Tratando-se de uma implementação em hardware
com certo grau de paralelismo, as modificações realizadas foram feitas no sentido de
simplificar os cálculos matriciais e diminuir a complexidade do loop de processamento
com a introdução de uma estratégia de conjunto de trabalho.
Algoritmo de treinamento: Em relação à atualização dos parâmetros, os autores propõem as seguintes
alterações:
1 – A atualização dos multiplicadores αi é feita utilizando-se uma normalização
da direção do gradiente, através da divisão de seu valor pela matriz kernel K, em
substituição a taxa de aprendizagem η. Ou seja, considerando:
( ) ( ) ( )iiii
m
jjijji
i
xfyxgryxxKyyL .1.,11
−==−−=∂∂ ∑
=
λαα
.
A utilização de um fator de normalização tem uma forte relação com a escolha a
taxa de aprendizagem η. Modificando a variável αi em relação a direção do gradiente
temos:
( )( )iii
i xfyL .1. −=∂∂
=∆ ηα
ηα .
O efeito dessa modificação no valor da função lagrangeana pode ser descrito
como:
( ) ( )iii LLL ααα −∆+=∆ = ( ) 2.
2,1
iii xxK
αη
∆
− .
195
Portanto, para uma variação positiva da função, ou seja, ∆L > 0, temos:
( ) 2,.0 << ii xxKη .
Para o caso especial de um Kernel Gaussiano, onde K(xi,xi) = 1, temos a
seguinte variação permitida para a taxa de aprendizagem: 0 < η < 2. Portanto, a taxa de
aprendizagem ótima pode ser obtida otimizando a expressão ∆L em relação ao
parâmetro η.
Substituindo o valor de ∆αi na expressão ∆L temos:
( ) ( )( )22
1.2,
iiii xfy
xxKL −
−=∆
ηη .
Computando a derivada de ∆L em relação a η temos:
( )ηη ii xxKL ,1−=
∂∆∂ ,
o que implica em:
η* = 1 / K(xi,xi).
Para o kernel Gaussiano, a taxa de aprendizagem ótima é um. Entretanto, se
considerarmos a existência de um kernel polinomial de grau d, a variação permitida
para a taxa de aprendizagem deve ser verificada para cada amostra xi do conjunto de
treinamento, ou seja:
0 < ηi < 2 / K(xi,xi), sendo K(xi,xi) = (||xi|| + 1)d.
Neste caso, o valor da taxa ótima passa a ser dependente de cada amostra xi do
conjunto de treinamento. Portanto:
( )di
ix 1
1*
+=η
Considerando o valor da taxa, η = 1/ K(xi,xi), temos a seguinte expressão
normalizada relativa ao valor da correção do algoritmo Kerneltron:
( )( )ii
ii xxK
xgr,
=α .
196
Sendo o conjunto de multiplicadores αi atualizados segundo a equação:
αi = 0, se gr(i) < 0,
αi = C, se gr(i) > C.K(xi, xi),
αi = ( )( )ii
i
xxKxgr,
, se 0 < gr(i) < C.K(xi,xi).
Se optarmos pela utilização de uma função kernel auto normalizável, ou seja,
K(xi,xi) = 1, como o Kernel Gaussiano, podemos reduzir o o valor da correção,
simplesmente, ao valor do gradiente, observando os limites das variáveis. .
A função de saída da rede, f(xi), também é computada de forma diferente,
considerando um esquema de atualização das variáveis αi na forma triangular, ou seja:
( ) ( ) ., λα += ∑< ij
jijj xxKyxif .
Neste sentido podemos demonstrar a correção sugerida para o multiplicador αi
quando 0 < gr(i) < C.K(xi,xi), ou seja, o seu valor é computado segundo a condição de
primeira ordem estabelecida para a função langrangeana.
Considerando 0=∂∂
i
Lα
, temos a seguinte expressão: :
( ) 0.,11
=−− ∑=
i
N
jjijji yxxKyy λα ,
a qual pode ser reescrita em função da variável αi na forma:
( ) ( ) 0.,,1 =−−− ∑≠
iij
jijjiiiiii yxxKyyxxKyy λαα .
Considerando a atualização na forma triangular temos:
( ) ( ) 0.,1, =−−+− ∑<
iij
jijjiiiiii yxxKyyxxKyy λαα ,
o que implica em:
197
αi . K(xi,xi) = gr(xi) ou αi = ( )( )ii
i
xxKxgr,
.
Observe que esta nova fórmula impõe uma restrição de sequenciamento na
interdependência das variáveis. Ou seja, considerá-se na atualização de um
multiplicador αi somente aqueles multiplicadores αj já atualizados.
Para que o processo de atualização seja equivalente ao esquema iterativo online,
é proposto por CAUWENBERGHS e POGGIO (2001) uma forma de ajustamento dos
multiplicadores prévios αj, j < i , denominada de Aprendizado Incremental, após a
atualização de cada multiplicador αi. Entretanto, os autores optaram por um processo de
aprendizagem online em sua forma mais simples, puramente seqüencial, eliminando o
ajustamento dos multiplicadores prévios.
2 – A atualização do bias b, seguindo a variante anterior, é função de todos os
multiplicadores, sendo feita ao final de cada época, portanto:
bbb tt ∆+= −1 ,
onde:
∑≤
=∆ij
jji yb αµ ,
definindo 0≥iµ como parâmetro relacionado a minimização da medida de discrepância
relacionadas as condições remanescentes de otimalidade dos exemplos não selecionados
(j > i).
Arquitetura online: Em relação a implementação paralela, ou autores propõe a utilização de uma
técnica de conjunto de trabalho. Inicialmente são escolhidos m multiplicadores relativos
ao número de processos paralelos disponíveis, que não satisfaçam as condições de
KKT. No processo de treinamento online, para cada exemplo apresentado xc, é
computado o valor de saída da rede f(xc) para um conjunto de multiplicadores:
αi, i = 1, ..., m.
Se o valor de gr(xc) é negativo, então o valor do multiplicador é feito igual a zero
e o exemplo é descartado, ou seja, não é um vetor suporte. Caso contrário, se o valor de
198
gr(xc) é positivo, o exemplo se torna um vetor suporte sendo introduzido no conjunto de
processos no lugar de outro multiplicador, segundo uma diciplina de atendimento que
pode ser implementada como uma fila, na forma first-in first-out.
6.3.4 – Algoritmo KPSD: Em nosso trabalho desenvolvemos e implementamos um método online para a solução
do problema SVM. O algoritmo tem como objetivo a determinação do hiperplano
separador ótimo no espaço dual das variáveis, estabelecendo um Perceptron de larga
margem.
O algoritmo de aprendizagem é baseado no cômputo do gradiente da função
lagrangeana, em relação a cada multiplicador, ou seja, determina-se i
Lα∂
∂, associado a
uma taxa de aprendizagem η.
Consideramos a utilização de funções kernel, a adoção do parâmetro C como um
parâmetro de regularização no estilo Soft Margin, a utilização de um bias computado de
forma iterativa e, por fim, a utilização do conjunto de multiplicadores diferentes de
zero, formando o conjunto SV, no cômputo da função f discriminante.
Por enquanto, ainda não implementamos alguma estratégia de decomposição do
problema, baseada na formação de conjuntos ativos segundo Vishwanathan, SMOLA e
MURTY (2003) ou em conjuntos de trabalho, como visto anteriormente. O loop
principal do algoritmo, como veremos, testa todo os exemplos do conjunto de
treinamento, a exemplo do algoritmo Perceptron, determinando uma época no processo
de aprendizagem.
Topologia de rede: A principal diferença em relação ao algoritmo Kernel Adatron está na forma de
atualização dos multiplicadores.
Os métodos online, apresentados anteriormente, atualizam todos os
multiplicadores a cada época, ou seja, a cada passagem do conjunto de treinamento. Em
199
uma forma de aprendizado caracterizada como online nos treinamentos das redes
neurais artificiais. Estes métodos seguem a forma de correção do algoritmo Adatron.
Em nossa implementação, optamos pela correção de um único multiplicador a
cada época, em uma forma de aprendizado caracterizada como batch, associada a
escolha de um vencedor, como ocorre no processo de aprendizado competitivo.
Escolhemos para atualizar sempre aquele multiplicador associado ao maior valor da
correção. Ou seja, atualizamos αk sendo k = Arg Mini { i
Lα∂
∂ }, mantendo inalterados os
valores dos demais multiplicadores. Este método segue a forma de correção do
algoritmo MinOver, que apesar de apresentar uma menor taxa de convergência, em
relação ao algoritmo Adatron, produz resultados são mais estáveis, como veremos em
algumas aplicações.
Como funções kernel implementamos a função produto interno para a solução de
problemas linearmente separáveis, e a função de Gauss para a solução de problemas no
espaço de características. A matriz kernel, caso haja memória suficiente, é computada
na fase inicial do algoritmo, no sentido de tornar mais eficiente a avaliação da função f.
A estrutura do processamento pode ser representada pela topologia de rede do
Perceptron de máxima margem, descrita na Figura VI-4, a qual chamaremos de Kernel
Perceptron SVM Dual (KPSD).
Esta topologia fornece a seguinte função discriminante ou equação do
hiperplano:
( ) ( ) λα += ∑=
m
jjijji xxKyxf
1, .
De outra forma, esta equação pode ser reescrita considerando os valores de iα
não associados a vetores suporte iguais a zero, resultando em:
( ) ( ) λα += ∑∈SVj
jijji xxKyxf ,
( ) ( )iii xfyxg = ,
determinando a seguinte função de decisão:
200
( ) ( )( )ii xgxz ϕ=
Figura VI-4 – Topologia de rede do algoritmo KSPD
Base teórica e formulação:
Para um problema SVM na forma:
( ) ( )C
yxxKyyLMax
i
m
iii
m
i
m
jjijiji
m
ii
≤≤
−−= ∑∑∑∑== ==
α
αλαααλα
0
,21,
11 11
computamos a derivada parcial em relação a cada multiplicador αi:
( ) i
m
jjijji
i
yxxKyyL .,11
λαα
−−=∂∂ ∑
=
.
Tomando o valor máximo:
( )kkk
xfyL−=
∂∂ 1α
, sendo
∂∂
=i
iLMaxArgkα
,
atualizamos o multiplicador vencedor αk com base na expressão:
( )[ ]kk xg−=∆ 1ηα ,
sendo o novo valor de αk dado por:
0 se 0 1 ≤∆+= −k
tk
tk ααα
Cktkk
tk
tk <∆+<∆+= −− ααααα 11 0 se
CC ktk
tk ≥∆+= − ααα 1 se
201
Na atualização do vetor bias, utilizamos um processo iterativo de ajustamento
com base no gradiente da função lagrangeana L em relação ao parâmetro λ, ou seja,
considerando:
∑=
=∂∂ m
iiiyL
1
αλ
,
atualizamos o bias λ, ao final de cada época, em função do único multiplicador
modificado, segundo a equação:
0 se 11 >∆+∆+= −−k
tkkk
tt y αααλλ ,
0 se 11 ≤∆+∆−= −−k
tkkk
tt y αααλλ .
O critério de parada é definido pelo cálculo da semimargem, cujo valor deve
convergir para o valor unitário, ou seja, ao final de cada época computamos:
( )( ) ( )( )( )ii xfMaxxfMin −+ −=21
γ ,
e comparamos seu valor ao intervalo:
1 – є < γ < 1 + є,
para uma constante de erro є.
O algoritmo, por atualizar somente um multiplicador a cada época, converge,
segundo KINZEL (1990), a uma taxa polinomial.
Condições de otimalidade: A satisfação das condições de KKT, resultando na obtenção da máxima margem, pode
ser analisada da seguinte forma:
Se 0 < αi < C e yi . f(xi) ≈ 1, então não ocorre correção do multiplicador e o
ponto associado permanece na margem como um vetor suporte, atendendo a condição
de KKT.
Se 0 < αi < C e yi . f(xi) > 1 ou yi . f(xi) < 1, então o valor do multiplicador é
alterado, ou seja, diminuído ou aumentado, no sentido de satisfazer a condição de KKT.
202
Se αi = 0 e yi . f(xi) > 1, então o valor de αi é diminuído, porém as restrições de
canalização fazem com que o valor de αi permaneça zero. Desta forma, o ponto
associado continua fora da margem.
Se αi = 0 e 0 < yi . f(xi) < 1, então o valor de αi é aumentado, descolando-se do
valor zero, e o ponto associado se torna um vetor suporte.
Se αi = C e yi . f(xi) > 1, então o valor de αi é diminuído e o ponto desloca-se de
dentro da margem tornando-se um vetor suporte.
Finalmente, se αi = C e 0 < yi . f(xi) < 1, então o valor de αi é aumentado, porém
as restrições de canalização fazem com que o valor de αi permanece igual a C. Desta
forma o ponto associado continua dentro a margem.
Implementação: A seguir, é apresentada uma descrição em alto nível do método desenvolvido:
Algoritmo KPSD;
Entrada: Conjunto de treinamento D formado por pares (xi, yi) de cardinalidade m; Parâmetro de regularização C; Tipo de kernel, se Gaussiano a variância σ2; Taxa de aprendizagem η; Constante de erro є; Número máximo de iterações imax; Início Inicializar o conjunto de multiplicadores, variáveis αi, com 0; Inicializar o bias λ com 0; Inicializar a margem γ com 0; Inicializar t com 1;
SV ß D; (* conjunto de vetores suportes *) Computar a matriz kernel K;
Enquanto (γ < 1-є) ou (γ > 1-є) ou (t < imax) Faça Para i ß 1 até m Faça f(i) ß λ; Para todo j Є SV Faça f(i) ß f(i) + αj . yj . K(i, j); Fim_Para; Fim_Para; k ß Arg Max i {f(i)};
[ ]kk ykf )(1−←∆ ηα ;
203
0 se 0 1 ≤∆+= −k
tk
tk ααα
Cktkk
tk
tk <∆+<∆+= −− ααααα 11 0 se
CC ktk
tk ≥∆+= − ααα 1 se
0 se 11 >∆+∆+= −−
ktkkk
tt y αααλλ ; 0 se 11 ≤∆+∆−= −−
ktkkk
tt y αααλλ ;
( )( ) ( )( )( )ii xfMaxxfMin −+ −=21
γ ,
Atualiza o conjunto SV; t ß t + 1;
Fim_Enquanto; Fim; Saida: Equação do discriminante na forma:
( ) ( ) λα += ∑∈SVj
jijji xxKyxf , ;
ou, a função de decisão na forma: ( ) ( ))( iii xfyxz ϕ=
Fim.
6.3.5 – Aplicação a um problema de separabilidade linear: Seja, novamente, o conjunto de pontos em R2 rotulados pelas respectivas classes,
conforme o conjunto de treinamento apresentado pela Tabela 6.1, cuja solução é
representada graficamente pela Figura VI-3.
Os seguintes resultados foram apresentados pelo algoritmo KSPD, utilizando
como kernel o produto interno dos dados:
Número de iterações: 56. Valores dos multiplicadores e da função objetiva a cada solução de um subproblema: 01 - indice: 00, alpha: 1.00000, função: 0.81375 02 - indice: 07, alpha: 2.08500, função: 3.03250 03 - indice: 00, alpha: 2.88972, função: 3.88810 04 - indice: 05, alpha: 2.01505, função: 6.06305 05 - indice: 00, alpha: 4.36206, função: 6.04506 06 - indice: 07, alpha: 3.65593, função: 8.07661 07 - indice: 00, alpha: 5.51808, função: 7.65095 08 - indice: 07, alpha: 4.87879, função: 9.31837
204
09 - indice: 00, alpha: 6.41426, função: 8.73898 10 - indice: 07, alpha: 5.82669, função: 10.08312 11 - indice: 00, alpha: 7.10891, função: 9.48418 12 - indice: 07, alpha: 6.56143, função: 10.55706 13 - indice: 00, alpha: 7.64734, função: 10.00279 14 - indice: 07, alpha: 7.13093, função: 10.85302 15 - indice: 00, alpha: 8.06468, função: 10.36931 16 - indice: 07, alpha: 7.57236, função: 11.03954 17 - indice: 00, alpha: 8.38817, função: 10.63211 18 - indice: 07, alpha: 7.91452, função: 11.15833 19 - indice: 00, alpha: 8.63891, função: 10.82300 20 - indice: 07, alpha: 8.17973, função: 11.23493 21 - indice: 00, alpha: 8.83327, função: 10.96329 22 - indice: 07, alpha: 8.38530, função: 11.28501 23 - indice: 00, alpha: 8.98391, função: 11.06740 24 - indice: 07, alpha: 8.54463, função: 11.31823 25 - indice: 00, alpha: 9.10068, função: 11.14532 26 - indice: 07, alpha: 8.66814, função: 11.34062 27 - indice: 00, alpha: 9.19119, função: 11.20406 28 - indice: 07, alpha: 8.76387, função: 11.35596 29 - indice: 00, alpha: 9.26134, função: 11.24858 30 - indice: 07, alpha: 8.83807, função: 11.36664 31 - indice: 00, alpha: 9.31572, função: 11.28249 32 - indice: 07, alpha: 8.89559, função: 11.37419 33 - indice: 00, alpha: 9.35787, função: 11.30841 34 - indice: 07, alpha: 8.94017, função: 11.37960 35 - indice: 00, alpha: 9.39054, função: 11.32828 36 - indice: 07, alpha: 8.97472, função: 11.38353 37 - indice: 00, alpha: 9.41586, função: 11.34356 38 - indice: 07, alpha: 9.00151, função: 11.38642 39 - indice: 00, alpha: 9.43549, função: 11.35532 40 - indice: 07, alpha: 9.02227, função: 11.38857 41 - indice: 00, alpha: 9.45070, função: 11.36439 42 - indice: 07, alpha: 9.03836, função: 11.39018 43 - indice: 00, alpha: 9.46249, função: 11.37139 44 - indice: 07, alpha: 9.05083, função: 11.39139 45 - indice: 00, alpha: 9.47163, função: 11.37680 46 - indice: 07, alpha: 9.06050, função: 11.39231 47 - indice: 00, alpha: 9.47872, função: 11.38098 48 - indice: 07, alpha: 9.06800, função: 11.39300 49 - indice: 00, alpha: 9.48421, função: 11.38422 50 - indice: 07, alpha: 9.07380, função: 11.39354 51 - indice: 00, alpha: 9.48847, função: 11.38672 52 - indice: 07, alpha: 9.07831, função: 11.39395 53 - indice: 00, alpha: 9.49177, função: 11.38866 54 - indice: 07, alpha: 9.08180, função: 11.39426 55 - indice: 00, alpha: 9.49432, função: 11.39016 56 - indice: 07, alpha: 9.08450, função: 11.39451
205
Valores finais dos multiplicadores: 9.4943240433521, 0, 0, 0, 0, 2.015053, 0, 9.0845021146708 Valor da margem: 0.99912 Erro do balanceamento ( ∑αi.yi): 1.60523 Vetores suportes: 0, 5, 7 Parâmetros do discriminante: Bias (λ): 1.6052310713187 Vetor w: (3.23420, -2.81757) Verificação da classificação (valor computado, valor desejado): 0 (-1, -1) 1 (-1, -1) 2 (-1, -1) 3 (-1, -1) 4 ( 1, 1) 5 ( 1, 1) 6 ( 1, 1) 7 ( 1, 1) Erros de classificação encontrados: 0
6.3.6– Aplicação a um problema de separabilidade não linear: Seja, o conjunto de pontos em R2 rotulados pelas respectivas classes, conforme o
conjunto de treinamento apresentado pela Figura VI-5, relativa ao problema da espiral,
cuja solução é representada graficamente pela Figura VI-6.
Os seguintes resultados foram apresentados pelo algoritmo KSPD, utilizando
como kernel a função gaussiana com variância, σ2 = 1.
206
Figura VI-5 – Conjunto de treinamento do problema da espiral
Figura VI-6 – Resultado ou saída do problema da espiral no espaço R2
Número de iterações: 1117
Valor da margem: 0.99023 Valores finais dos multiplicadores por coluna: 5.80506451337935, 5.8267163036783, 5.28022972990265, 5.30198180544489, 5.25877335841315, 5.18228381448206, 5.17164612306615, 5.14049955561841, 5.20451500793366, 5.22752579537461, 5.31856058282231, 5.29777799434517, 5.10846559488367, 5.16321480752085, 4.80077143323621, 4.7630945671566, 10.2134347508999, 10.1835019856655, 9.09109916146138, 9.01926395899883, 8.80669769821402, 9.00614329596096, 8.7225652142203,
8.80299261440322, 8.95262728954816, 8.88756662157275, 9.15328415759339, 9.19767806786215, 8.81219707814084, 8.67261500850803, 7.95649204007794, 8.04780121032812, 11.5894123038632, 11.602581802377, 9.71681330132417, 9.89093058596493, 9.86870089229787, 9.46892403901416, 9.52701281020935, 9.38624665843238, 9.75037083332838, 9.87736571988437, 10.4617579003186, 10.3669988823645, 9.46742346479951, 9.73824677365956,
8.66512405964225, 8.49609018278723, 10.6453461864085, 10.6530432100418, 8.27900868077415, 7.89630704831563, 7.7884246188356, 8.57588435831932, 7.7778815703852, 7.92515296355148, 8.70495748635095, 8.47458314887472, 9.86846298165874, 10.056059733653, 8.62675667540521, 8.10622510784177, 7.17223567760734, 7.51095635343429, 8.39628098342235, 8.25163948481195, 4.16387014741845, 5.0939930800481, 6.38150038943159,
4.64512498674996, 4.55078717850895, 4.77023351448339, 5.80727281555953, 6.08277187674109, 9.63098916706752, 9.43039708899495, 4.89013843684198, 5.51689540182834, 6.133784923955, 5.94666463922111, 4.34919970619186, 4.21669374601583, 1.77111625570764, 0, 0, 4.10176539865815, 2.16502549441128, 0, 0, 0, 15.1275067292381, 15.127202488316,
207
Vetores suportes: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 85, 86, 90, 91 Parâmetros do discriminante: Bias (λ): 0.00395
Equação do classificador: ( )( ) ( )
+= ∑
∈
λαϕϕSVj
jijjiii xxKyyxfy ,.
Erro do balanceamento ( ∑αi.yi): 0.00395 Verificação da classificação (valor computado, valor desejado): 0 ( 1, 1) 1 (-1, -1) 2 ( 1, 1) 3 (-1, -1) 4 ( 1, 1) 5 (-1, -1) 6 ( 1, 1) 7 (-1, -1) 8 ( 1, 1) 9 (-1, -1) 10 ( 1, 1) 11 (-1, -1) 12 ( 1, 1) 13 (-1, -1) 14 ( 1, 1) 15 (-1, -1) 16 ( 1, 1) 17 (-1, -1) 18 ( 1, 1) 19 (-1, -1) 20 ( 1, 1) 21 (-1, -1) 22 ( 1, 1)
23 (-1, -1) 24 ( 1, 1) 25 (-1, -1) 26 ( 1, 1) 27 (-1, -1) 28 ( 1, 1) 29 (-1, -1) 30 ( 1, 1) 31 (-1, -1) 32 ( 1, 1) 33 (-1, -1) 34 ( 1, 1) 35 (-1, -1) 36 ( 1, 1) 37 (-1, -1) 38 ( 1, 1) 39 (-1, -1) 40 ( 1, 1) 41 (-1, -1) 42 ( 1, 1) 43 (-1, -1) 44 ( 1, 1) 45 (-1, -1)
46 ( 1, 1) 47 (-1, -1) 48 ( 1, 1) 49 (-1, -1) 50 ( 1, 1) 51 (-1, -1) 52 ( 1, 1) 53 (-1, -1) 54 ( 1, 1) 55 (-1, -1) 56 ( 1, 1) 57 (-1, -1) 58 ( 1, 1) 59 (-1, -1) 60 ( 1, 1) 61 (-1, -1) 62 ( 1, 1) 63 (-1, -1) 64 ( 1, 1) 65 (-1, -1) 66 ( 1, 1) 67 (-1, -1) 68 ( 1, 1)
69 (-1, -1) 70 ( 1, 1) 71 (-1, -1) 72 ( 1, 1) 73 (-1, -1) 74 ( 1, 1) 75 (-1, -1) 76 ( 1, 1) 77 (-1, -1) 78 ( 1, 1) 79 (-1, -1) 80 ( 1, 1) 81 (-1, -1) 82 ( 1, 1) 83 (-1, -1) 84 ( 1, 1) 85 (-1, -1) 86 ( 1, 1) 87 (-1, -1) 88 ( 1, 1) 89 (-1, -1) 90 ( 1, 1) 91 (-1, -1)
Erros encontrados: 0
208
Capítulo VII – Considerações Finais e Sugestões Futuras O desenvolvimento de classificadores kernel e, em particular, das máquinas de vetores
suportes, representaram um grande avanço, e, até mesmo, uma mudança de perspectiva,
no campo da aprendizagem de máquinas, no contexto, sobretudo, do aprendizado
supervisionado.
Vários problemas de classificação, como exemplo, o reconhecimento de padrões
complexos de estrutura não rígida ou de formações variáveis como a escrita, fala e
objetos deformáveis, envolvendo os processos de categorização e generalização do ser
humano, passaram a ser resolvidos com maior eficiência, atingindo níveis de
performance bem acentuados, comparado ao processo decisório de especialistas.
A aplicação destes algoritmos de aprendizagem, não se resumem, entretanto, a
simulação dos processos de percepção. Um grande número de problemas da vida real
pode ser resolvido com a utilização destas técnicas.
As mais importantes aplicações incluem a previsão de séries temporais com a
utilização de dados financeiros e do clima; tomada de decisão em diagnósticos médicos
e análise de dados provenientes de experimentos de microarray; controle, navegação e
visão na robótica; controle de processos em plantas industrias; processamento de sinais;
reconhecimento de expressões faciais; análise de seqüências biológicas; mineração de
dados relacionados a comercialização, estoques e lucratividade de empresas tornando
mais inteligente o processo decisório; mineração de textos na Web; reconhecimento de
imagens provenientes de dados de satélite auxiliando o planejamento de ações e a
monitoração de problemas relacionados ao meio ambiente, entre outras.
Neste trabalho, procuramos apresentar toda a teoria necessária ao
desenvolvimento de classificadores baseados no uso de máquinas de vetores suportes e
de funções kernel. Inicialmente, em seu primeiro capítulo, mostramos a teoria de
generalização desenvolvida por Vapnik e Chervonenkis, também conhecida como a
teoria de aprendizagem estatística que desenvolveu um novo paradigma no projeto de
classificadores denominado princípio do risco estrutural.
209
Também, achamos importante o desenvolvimento de um capítulo que tratasse da
teoria de decisão bayesiana e da construção de regressores a partir do método dos
mínimos quadrados. Consideramos estas duas técnicas, tradicionalmente utilizadas na
comunidade estatística na análise multivariada de dados, de grande importância no
estudo do reconhecimento de padrões.
Dando continuidade, no terceiro capítulo, abordamos o desenvolvimento dos
hiperplanos separadores definindo uma classe de modelos lineares para a solução dos
problemas de classificação. Destacamos o desenvolvimento do modelo perceptron na
sua forma original proposta por Rosenblat, bem como na sua forma dual, abrindo
espaço para a definição do perceptron de máxima margem a partir de uma representação
dependente dos dados.
Em seguida, descrevemos todo o desenvolvimento das máquinas de vetores
suportes, embasado na teoria de programação não linear, incluindo a utilização de uma
margem flexível, chamada de Soft-Margin, que permite a efetiva realização do controle
da capacidade do modelo e de seu poder de generalização tornando possível a
implementação do princípio de Minimização do Risco Estrutural.
Também, mostramos como é possível a utilização das máquinas de vetores
suportes em problemas de multiclassificação apresentando as duas abordagens
convencionais mais utilizadas.
Considerando a classe de hipóteses formadas por hiperplanos ou funções
lineares incompatíveis com a solução de problemas não linearmente separáveis
descrevemos, no quinto capítulo, como este problema pode ser resolvido de maneira
eficiente com a utilização de funções Kernel. Também, mostramos como as funções
Kernel podem ser utilizadas na detecção de similaridades em dados estruturados
descrevendo algumas aplicações no reconhecimento de seqüências de símbolos ou
caracteres.
Finalmente, no sexto capítulo, mostramos as principais técnicas e respectivas
implementações utilizadas na solução do problema SVM. Particularmente, demos maior
ênfase na explicação e desenvolvimento dos métodos que não utilizam um solver de
programação não linear. Neste sentido, implementamos uma versão do algoritmo de
210
Otimização Seqüencial de John Platt, também conhecido como algoritmo SMO e uma
versão do algoritmo Adatron de ANLAUF e Biehl, ambos com a utilização de funções
Kernel.
Como contribuição ao tema, implementamos uma nova versão do algoritmo
Adatron, denominada KPDS, que utiliza uma forma mais estável, porém com uma
menor taxa de convergência, de correção dos multiplicadores, com base no gradiente da
função lagrangeana. Achamos, pelos testes realizados, que este algoritmo apresenta uma
robustez superior ao algoritmo SMO.
Como sugestões para trabalhos futuros, recomendamos um maior
aprofundamento no estudo dos seguintes tópicos:
• Implementação paralela do algoritmo KPDS.
• Estudo e projeto de funções Kernel aplicado a problemas da área de
bioinformática.
• Estudo e implementação do uso de vetores suporte e funções Kernel em
problemas relacionados ao paradigma de aprendizado não
supervisionado, como exemplo, estimativa de densidade, análise de
cluster, análise de componentes principais e análises de componentes
independentes.
Finalizando, queríamos ressaltar que este trabalho, embora iniciado com uma
visão simplista do problema de aprendizado, representou um grande esforço no sentido
de elucidar importantes questões teóricas e práticas no entendimento e no
desenvolvimento das máquinas de vetores suportes e dos classificadores kernel.
211
Referências Bibliográficas
AIZERMAN, M. A.; BRAVERMAN, E. M.; ROZONOER, L. I. The probability problem of pattern recognition learning and the method of potential functions. Automation and Remote Control n.25 p. 1175-1190. 1964.
AKAIKE, H. A. New Look At The Statistical Model Identification. IEEE Trans. On Auto. Control. n.19 p.716-723. 1974.
ANLAUF, J. K.; BIEHL, M. The Adatron: Na Adaptative Perceptron Algorithm. Europhys. LETT. n.10 p.687-692. 1989.
BELLMAN, R. Dynamic program. Princeton. Princeton University Press. 1957.
BISHOP, C. M. Neural Networks For Pattern Recognition. Oxford. Clarendon Press. 1995.
BLOCK, H. D. The perceptron: A model for brain functioning. Reviews of Modern Physics n. 34 p.123-135.
BOSER, B. E.; GUYON, I. M.; VAPNIK, V. N. A training algorithm for optimal margin classifiers. In Proceedings of the Annual Conference on Computational Learning Theory. Pittsburgh. ACM Press. p.144-152. 1992.
BROOMHEAD, D. S.; LOWE, D. Multivariable functional interpolation and adaptive networks. Complex Systems n.2 p.321-355. 1988.
BURGES, C. J. C. A Tutorial On Support Vector Machines For Pattern Recognition. Data Mining And Knowledge Discovery 2 (2). p.121-167. 1998.
CAMPBELL, C.; CRISTIANINI, N. Simple Learning Algorithms For Training Support Vector Machines. Technical Report. Dept. Of Engineering Mathematics. University Of Bristol. Uk. 1998.
CAMPBELL, C. Na Introduction To Kernel Methods. In Radial Basis Function Networks: Design And Applications. R. J. Howlett e L. C. Jain Eds. Springer-verlag. Berlin. 2000.
CAUWENBERGHS, G.; POGGIO, T. Incremental and Decremental Support Vector Machine Learning. In Adv. Neural Information Processing Systems. IEEE. MIT Press. 2001.
CORTES, C.; VAPNIK, V. Support Vector Networks. Machine Learning 20. p.273-297. 1995.
COVER, T. M. Geometrical and Statistical properties of Systems of Linear inequalities with applications in pattern recognition. IEEE Transactions on Electronic Computers, vol. EC-14. p.326-334. 1965.
212
CYBENKO, G. Approximation by superpositions of a sigmoidal function. Mathematics of Control. Signals and Systems 2. p.304-314. 1989.
DUDA, R.O.; HART, P. E. Pattern Classification and Scene Analysis. John Wily. Nova York. 1973.
FISHER, R. A. The use of multiple measurements in taxonomic problems. Annals of Eugenics 7 p.179-188. 1936.
FLETCHER, R. Practical Methods of Optimization. John Wiley and Sons. 1987.
FREUND, Y.; SCHAPIRE, R. E. Large Margin Classification Using The Perceptron Algorithm. In Proc. Of The Eleventh Annual Conference On Computational Learning Theory. 1998.
FREUND, Y.; SCHAPIRE, R.E. A Decision-Theoretic Generalization of On-line Learning and an Application to Boosting. Journal of Computer and Systems Sciences. n.55 p.119-139. 1997.
FRIESS, T-T; CRISTIANINI, N.; CAMPBELL, C. The Kernel-adatron Algorithm: A Fast And Simple Learning Procedure For Support Vector Machines. In Machine Leraning Proc. Of The 15th Conf. San Francisco. Morgan Kauffman Pub. 1998.
FRIESS, T-T. Support Vector Neural Networks: The Kernel Adatron with Bias and Soft Margin. In Tech. Report. Dept. of Automatic Control and Systems Engineering. University of Sheffield. 1998.
FUKUNAGA, K. Statistical Pattern Recognition. Academic Press. Boston. 1990.
FUNAHASHI, K. On the approximate realization of continuous mappings by neural networks. Neural Networks 2 (3). p.183-192. 1989.
GENOV, R.; CHAKRABARTTY, S.; CAUWENBERGHS, G. Silicon Support Vector Machine with Online Learning. International Journal of Pattern Recognition and Artificial Intelligence. 2002.
GENTON, M. G. Classes of Kernels for Machine Learning: A Statistics Perspective. Journal of Machine Learning Research 2. p.299-312. 2001.
GILL, P. E.; MURRAY, W.; WRIGHT, M. H. Practical Optimization. Academic Press. 1981.
HELMBOLD, D. P.; WARMUTH, M. K. On weak learning. Journal of Computer and System Sciences. n.50 p.551-573. 1995.
HERBRICH R.; GRAEPEL, T.; CAMPBELL, C. Bayes point machines. Journal of Machine Learning Research 1. p.245-279. 2001.
HERBRICH, R. Learning Kernel Classifiers - Theory And Algorithm. Mit Press. 2002.
213
JAAKKOLA, T.; HAUSSLER, D. Exploiting generative models in discriminative classifiers. In Advances in Neural Information Processing Systems 11. Morgan Kaffmann Publishers. 1998.
JAAKKOLA, T.; DIEKHANS, M.; HAUSSLER D. A Discriminative Framework for Detecting Remote Protein Homologies. Jornal of Computational Biology. 2000.
KECMAN, V. Learning And Soft Computing With Suppot Vector Machines. Neural Networks. Mit Press. 2001.
KINZEL, W. Statistical Mechanics of the Perceptron with Maximal Stability. Lecture Notes In Physics. Springer Verlarg n.368 p.175-188. 1990.
KOHONEN, T. Self-organized formation of topologically correct feature maps. Biological Cybernetics n.43 p.59-69. 1982.
KOLMOGOROV, A. N. On the representation of continuous functions of several variables by superposition of continuous functions of one variable and addition. Doklady Akademiia Nauk URSS 114 (5) p.953-956. 1957.
LESLIE, C.; ESKIN, E.; NOBLE, W. S. The Spectrum Kernel: A String Kernel for SVM Protein Classification. Proceedings of the Pacific Biocomputing Symposium. 2002.
LODHI, H.; SHAWE-TAYLOR, J.; CRISTIANINI, N.; WATKINS, C. Text Classification using String Kernels. In Neural Information Processing Systems n.13 p.563-569. MIT Press. 2001.
MCCORMICK, G. P. The Variable Reduction Method for Nonlinear Programming. Management Science n.17 p.146-160. 1970.
MCCULLOCH, W.; PITTS, W. A logical calculus of the ideas immanent in nervous activity. Bulletin of Mathematical Biophysics n.5 p.115-133. 1943.
MERCER, J. Functions of positive and negative type and their connection with theory of integral equations. Philosophical Transactions of the Royal Society. London A 209. p.415-446. 1909.
MIKA, S.; RATSCH, G.; WESTON, J.; SCHOLKOPF, B.; MULLER, K. Fisher discriminant analysis with kernels. IEEE. Neural Networks for Signal Processing IX. p.41-48. 1999.
MINSKY, M.L.; PAPERT, S. A. Perceptrons. Cambridge. MA. MIT Press. 1969.
MOODY J.; DARKEN, C. J. Fast Learning in Networks of Locally Tuned Processing Units. Neural Computation 1 (2). p.281-294. 1989.
MORÉ, J.; TORALDO, G. On the Solution of Large Quadratic Programming Problems with Bound Constraints. SIAM Journal of Optimization 1(1). p.93-113. 1991.
214
MULLER, K. R.; MIKA, S.; RTASCH, G.; TSUDAT, K.; SCHOLKOPF, B. An Introduction to Kernel-Based Learning Algorithms. IEEE Transactions on Neural Networks n.12 p.181-201. 2001.
MURTAGH, B. A.; SAUNDERS, M. A. Large-scale linearly constrained optimization. Mathematical Programming n.14 p.41-72. 1978.
NILSSON, N. J. Learning Machines. New York. McGraw-Hill. 1965.
NOVIKOFF, A. B. On convergence proofs for perceptrons. In Proceedings of the Symposium on the Mathematical Theory of Automata. p.615-622. Brooklyn. NY. 1962.
OPPER, M. Learning Times of Neural Networks: Exact Soluction for a Perceptron Algorithm. Physical Review A 38. 1988.
OSUNA, E. E.; FREUND, R.; GIROSI, F. Support Vector Machines: Training And Applications. A. I. Memo N. 1602. Cbcl. Ail. Massachusetts Institute Of Technology. 1997.
PARK, J.; SANDBERG, I. W. Universal Approximation using radial basis function networks. Neural Computation 3 (2). p.246-257. 1991.
PARZEN, E. On estimation of a probability density functions and mode. Annals of Mathematical Statistics. n.33 p.1065-1076. 1962.
PLATT, J. C. Sequencial Minimal Optimization: A Fast Algorithm For Training Support Vector Machines. Technical Report N. Msr-tr-98-14. Microsoft Research. Seattle. 1998.
POGGIO, T.; GIROSI, F. Networks for approximation and learning. Proc. IEEE. 78. 1990.
POWELL, M. J. D. Radial basis functions for multivariable interpolation: a review. In Algorithms for approximation. Ed. J. C. Mason e M. G. Cox p.143-167. Oxford. Clarendon Press. 1987.
PRINCIPE; EULIANO ; LEFEBVRE. Neural And Adaptative Systems. John Wiley & Sons Inc. 2000.
RISSANEN, J. Modeling by Shortest Data Description. Automatica. n.14 p.465-471. 1978.
RISSANEN, J. Stochastic Complexity in Statistical Inquiry. World Scientific. 1989.
ROSENBLATT, F. The Perceptron: A probabilistic model for information storage and organization in the brain. Psychological Review n.65 p.386-408. 1958.
RUMELHART, D. E.; HINTON, G. E.; WILLIAMS, R. J. Leaning representations of back-propagation erros. Nature, Vol. 323. p.533-536. 1986.
215
SAUNDERS, C.; STITSON, M. O.; WESTON, J.; BOTTOU, L.; SCHOLKOPF, B.; SMOLA, A. Suport Vector Machine Reference Manual. Department of Computer Science. Royal Holloway. 1998.
SCHÖLKOPF, B. Statistical Learning And Kernel Methods. Technical Report N. Msr-tr-2000-23. Microsoft Research. 2000.
SEARLE, J. R. Minds, Brains, And Programs. In The Behavioral And Brain Sciences. Vol 3. Cambridge University Press. 1980.
SMOLA, A.; SCHOLKOPF, B. Learning With Kernels. Mit Press. 2001.
TIKHONOV, A.; ARSENIN, V. Solution of Ill. Posed Problems. Winston. 1977.
UKKONEN, E. Online Construction of Suffix-trees. Algorithmica 14 (3). 1995.
VALIANT, L. A Theory of the Learnable. Communications of ACM. 27(11) p.1134-1142. 1984.
VAPNIK, V. N.; CHERVONENKIS, A. Y. On the uniform convergence of relative frequencies of events to their probabilities. Theory of probability and its applications 16 (2) p.264-280. 1971.
VAPNIK, V. N. Estimation of Dependences Based on Empirical Data. Springer Verlarg. 1982.
VAPNIK, V. Statistical Learning Theory. John Wiley & Sons Inc. 1998.
VISHWANATHAN, S. V. N.; SMOLA, A. J.; MURTY, M. N. Simple SVM. In Proceedings of the 12 International Conference on Machine Learning. Washington. 2003.
VON DER MALSBURG, C. Self-organization of orientation sensitive cells in the striate cortex. Ky bernetick. n.14 p.85-100. 1973.
WALLACE, C. S; BOULTON, D. M. An information measure for classification. Computer Journal. 1968.
WIDROW, B.; HOFF JR., M. E. Adaptative Switching Circuits. In Ire Western Electric Show And Convention Record. Pt. 4. p.96-104. 1960.
WIDROW, B.; STEARNS, S. D. Adaptive Signal Processing. Englewood Cliffs. New Jersey. 1985.
WOLFE, P. The Reduced-Gradient Method. RAND Corporation. 1962.
ZADEH, L. A. Soft computing and fuzzy logic. IEEE Software. Nov. p.48-56. 1994.