Universidad Tecnica Federico Santa Marıa
Departamento de Informatica
Valparaıso – Chile
ALGORITMO TIPO SMO PARA LA AD-SVM
APLICADO A CLASIFICACION
MULTICATEGORIA
Tesis presentada como requerimiento parcial
para optar al grado academico de
MAGISTER EN CIENCIAS DE LA INGENIERIA
INFORMATICA
y al tıtulo profesional de
INGENIERO CIVIL EN INFORMATICA
por
Diego Candel Contardo
Comision Evaluadora:
Dr. Hector Allende O. (Guıa, UTFSM)
Dr. Max Chacon P. (UTFSM)
Dr. Marcelo Mendoza R. (USACH)
14 DE ENERO DE 2011
i
Universidad Tecnica Federico Santa Marıa
Departamento de Informatica
Valparaıso – Chile
TITULO DE LA TESIS:
ALGORITMO TIPO SMO PARA LA AD-SVM
APLICADO A CLASIFICACION MULTICATEGORIA
AUTOR:
DIEGO CANDEL CONTARDO
Tesis presentada como requerimiento parcial para optar al grado academi-
co de Magıster en Ciencias de la Ingenierıa Informatica y al tıtulo
profesional de Ingeniero Civil en Informatica de la Universidad Tecnica
Federico Santa Marıa.
Dr. Hector Allende O.Profesor Guıa
Dr. Max Chacon P.Profesor Correferente
Dr. Marcelo Mendoza R.Profesor Externo
14 de Enero de 2011.
Valparaıso, Chile.
ii
Observa, escucha, calla. Juzga poco, pregunta mucho.
– August von Platen-Hallermunde
iii
Agradecimientos
A aquellas personas que aprecio y respeto (lo sepan o no), y que me ayudaron
(directa o indirectamente) a concluir con esta importante etapa de mi vida, a todas
ellas les doy gracias.
Valparaıso, Chile Diego Candel Contardo
14 de Enero de 2011
iv
Resumen
Las SVMs (Support Vector Machines o Maquinas de Soporte Vectorial) son un
tipo de maquinas de aprendizaje que se idearon en un inicio para tratar problemas de
clasificacion binaria. En la actualidad, se han realizado extensiones de las SVMs para
abarcar problemas de clasificacion con mas de dos clases. Recientemente se ha creado
una nueva SVM multi-categorıa mono-objetivo, denominada AD-SVM (All Distances
SVM o SVM de Todas las Distancias) que trabaja con un numero de restricciones que
escala linealmente con el numero de ejemplos y clases del problema a tratar.
A pesar de la escalabilidad que posee la AD-SVM, a la fecha no se han realizado
experimentos acabados para comparar su rendimiento frente a otras tecnicas de clasi-
ficacion multi-categorıa. Esto se debe principalmente a que la maquina carece de un
algoritmo eficiente de entrenamiento, por lo cual su ejecucion es extremadamente lenta
y consume recursos de memoria que no son abarcables si el tamano del problema es
muy grande, haciendo inviable la realizacion de experimentos de gran volumen.
Esta tesis tiene como fin abordar los siguientes objetivos: 1) Disenar un algoritmo
de entrenamiento para la AD-SVM capaz de competir en tiempo de ejecucion con los
utilizados en otras maquinas de clasificacion multi-categorica; 2) Realizar un estudio
experimental para comparar el desempeno de la AD-SVM frente a otras tecnicas de
clasificacion multi-categorıa.
Palabras Claves: Machine Learning, Support Vector Machines, Sequential Mini-
mal Optimization, Multi-category Classification.
v
Abstract
SVMs (Support Vector Machines) are a type of Learning Machines that were first
conceived to solve binary classification problems. Currently, there exist extensions of
these machines that can solve classification problems with more than two classes. Re-
cently, a new type of multi-class mono-objective SVM has been implemented, the AD-
SVM (All Distances SVM) that works with a number of restrictions that scales linearly
in the number of classes and examples of a problem.
Despite the scalability of the AD-SVM, to this date no vast experimental work
has been done to compare the performance of the AD-SVM against other multi-
classification techniques. This is principally due to the lack of an efficient training
algorithm. Because of this, its training process is extremely slow and spends memory
resources that are not tractable if the size of the problem is considerably large, making
unfeasible to process experiments of great volume.
This thesis has as purpose to fulfill the following objectives: design a training al-
gorithm for the AD-SVM capable to compete in execution time with other training
algorithms used in other multi-classification machines; apply an experimental study
upon the AD-SVM to compare its performance against other multi-classification tech-
niques.
Keywords: Machine Learning, Support Vector Machines, Sequential Minimal Op-
timization, Multi-category Classification.
vi
Indice de Contenidos
Agradecimientos IV
Resumen V
Abstract VI
Indice de Contenidos VII
Indice de Tablas IX
Indice de Figuras X
Abreviaciones y Nomenclatura XII
1. Introduccion 1
1.1. Clasificacion y SVMs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. SVMs Multi-categorıa y AD-SVM . . . . . . . . . . . . . . . . . . . . . 2
1.3. Problematica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4. Estructura de la Tesis . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2. Estado del Arte 5
2.1. SVMs Binarias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.1. SVMs y Kernels . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.2. Soft SVMs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.1.3. ν-SVMs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.1.4. Interpretacion geometrica de las SVMs . . . . . . . . . . . . . . 13
2.2. SVMs Multi-categorıa . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2.1. SVMs Multi-objetivo . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2.2. SVMs Mono-objetivo . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2.3. AD-SVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3. Algoritmos de Entrenamiento . . . . . . . . . . . . . . . . . . . . . . . 23
2.3.1. Chunking y Algoritmos de Descomposicion . . . . . . . . . . . . 23
vii
2.3.2. Sequential Minimal Optimization . . . . . . . . . . . . . . . . . 24
2.3.3. Estructura de un SMO . . . . . . . . . . . . . . . . . . . . . . . 25
3. Propuesta 32
3.1. Objetivos de la Tesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2. Diseno del Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.2.1. Criterio de Termino: KKT-conditions para la AD-SVM . . . . . 34
3.2.2. Derivacion del Paso de Optimizacion . . . . . . . . . . . . . . . 37
3.2.3. Estrategias de Seleccion . . . . . . . . . . . . . . . . . . . . . . 41
3.2.4. Sistema de Actualizacion . . . . . . . . . . . . . . . . . . . . . . 44
3.2.5. Algoritmo SMO para la AD-SVM . . . . . . . . . . . . . . . . . 44
4. Experimentos y Resultados 46
4.1. Recursos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.2. Bases de Datos Utilizadas . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.3. Estrategias de Seleccion . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.4. Evaluacion de Propiedades . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.4.1. Comportamiento del Algoritmo v/s Tamano del Cache . . . . . 54
4.4.2. Comportamiento del Algoritmo v/s Tolerancia . . . . . . . . . . 56
4.4.3. Comportamiento del Algoritmo v/s Tamano del Problema . . . 60
4.5. Comparacion contra Tecnicas Actuales . . . . . . . . . . . . . . . . . . 63
4.5.1. Comparacion de Solvers: Generico v/s SMO . . . . . . . . . . . 63
4.5.2. Comparacion de Maquinas: MC-SVM v/s AD-SVM . . . . . . . 65
5. Conclusiones y Trabajo Futuro 69
5.1. Objetivos Cumplidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
5.2. Trabajo Futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
A. English Translation of Demonstrations and Algorithms 72
A.1. KKT-Conditions for the AD-SVM and Stopping Criteria . . . . . . . . 73
A.2. Analytic Solution for two Multipliers . . . . . . . . . . . . . . . . . . . 76
A.3. Selection Strategy to choose the Active Variables . . . . . . . . . . . . 80
A.4. Update System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
A.5. SMO Algorithm for the AD-SVM . . . . . . . . . . . . . . . . . . . . . 83
Bibliografıa 84
viii
Indice de Tablas
4.1. Conjuntos de datos Originales . . . . . . . . . . . . . . . . . . . . . . . 47
4.2. Conjuntos de datos Modificados . . . . . . . . . . . . . . . . . . . . . . 48
4.3. Muestreos de Conjuntos de datos, MNIST . . . . . . . . . . . . . . . . 49
4.4. Resultados experimentos sobre Estrategias de Seleccion (Keerthi v/s Chen) 52
4.5. Resultados experimentos QuadProg v/s SMO . . . . . . . . . . . . . . 63
4.6. Resultados experimentos MC-SVM v/s AD-SVM . . . . . . . . . . . . 66
ix
Indice de Figuras
2.1. Problema Binario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2. Margen Optimo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3. Truco de Kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.4. SVMs de Margen Suave . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.5. ν-SVMs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.6. Interpretacion geometrica de SVMs . . . . . . . . . . . . . . . . . . . . 14
2.7. SVMs Multi-objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.8. Enfoque multi-objetivo v/s mono-objetivo . . . . . . . . . . . . . . . . 19
2.9. All-Distances SVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.10. Algoritmos de entrenamiento para las SVMs . . . . . . . . . . . . . . . 25
4.1. Comparacion de Resultados Keerthi et al v/s Chen et al, Precision . . 51
4.2. Comparacion de Resultados Keerthi et al v/s Chen et al, Tiempo . . . 53
4.3. Resultados de Experimentos: Tiempo de Entrenamiento v/s Tamano del
Cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.4. Resultados de Experimentos: Tiempo de Entrenamiento v/s Tolerancia 57
4.5. Resultados de Experimentos: N◦de SVs v/s Tolerancia . . . . . . . . . 58
4.6. Resultados de Experimentos: Error de Clasificacion v/s Tolerancia . . . 59
4.7. Resultados de Experimentos: Tiempo de Entrenamiento v/s Tamano del
Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.8. Resultados de Experimentos: Error de Clasificacion v/s Tamano del Pro-
blema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.9. Resultados de Experimentos: Porcentage de Support Vectors v/s Ta-
mano del Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
x
4.10. Comparacion de Resultados QuadProg v/s SMO, Precision . . . . . . . 64
4.11. Comparacion de Resultados QuadProg v/s SMO, Tiempo . . . . . . . . 65
4.12. Comparacion de Resultados MC-SVM v/s AD-SVM, Kernel Calls . . . 67
4.13. Comparacion de Resultados MC-SVM v/s AD-SVM, Precision . . . . . 68
xi
Abreviaciones y Nomenclatura
αij Resultado del producto punto entre el vector etiqueta yi y el vector eti-
queta yj. El valor de αij es igual a K − 1 si ambos ejemplos pertenecen a
la misma clase. En cualquier otro caso, αij vale −1. Ver pagina 22.
αir Resultado del producto punto entre el vector etiqueta yi y el vector eti-
queta asociado a la clase r. El valor de αir es igual a K − 1 si el ejemplo i
pertenece a la clase r. En cualquier otro caso, αir vale −1. Ver pagina 23.
βups , β
lows Valores que permiten verificar si las condiciones KKT estan siendo violadas
o no. Cuando no son violadas, se tiene que βlows ≤ βup
s , ∀s ∈ {1, . . . , K},donde βup
s = mın {Fl : l ∈ Iups }, βlow
s = max{
Fl : l ∈ Ilows
}. Ver pagina 36.
0 Vector nulo de dimensionalidad acorde al espacio en cuestion. Ver pagina 5.
kij Producto de Kernel entre los ejemplos xi y xj multiplicado por el producto
punto entre los vectores etiquetas yi e yj, o sea kij = (yi · yj) kij = αijkij.
Ver pagina 22.
K (·, ·) Funcion de Kernel que equivale a calcular el producto punto de dos vec-
tores mapeados a un espacio de mayor dimensionalidad que el espacio
caracterıstico original. Ver pagina 9.
kij Producto de Kernel entre los ejemplos xi y xj, o sea kij = K (xi,xj). Ver
pagina 10.
u Vector de multiplicadores de Lagrange de dimensionalidad m involucrado
en la definicion del dual del problema de las SVMs. Ver pagina 8.
xii
vr Vector prototipo de la clase Cr. Se define como la combinacion convexa∑i∈Ir
uixi, en donde 0 ≤ ui ≤ 1, ∀i ∈ I y∑i∈Ir
ui = 1. Ver pagina 14.
w Vector normal al hiperplano separador involucrado en la formulacion de
una SVM binaria. Su dimensionalidad es n. Ver pagina 5.
wr Vector normal al hiperplano separador de la clase r involucrado en la for-
mulacion de la AD-SVM. Su dimensionalidad es n. Ver pagina 23.
xi Vector de caracterısticas del ejemplo i involucrado en el problema de cla-
sificacion. Su dimensionalidad es n. Ver pagina 5.
yi Vector etiqueta asociado al ejemplo i ∈ Ir en la definicion de una AD-SVM.
Es de dimensionalidad K. Todos sus elementos valen −1/K, excepto el
elemento numero r, el cual vale (K − 1)/K. Ver pagina 22.
Fl Gradiente de la funcion objetivo de la AD-SVM,1
4
∑i∈I
∑j∈I
uiujkij, con
respecto a ul. Fl =1
2
∑j∈I
ujklj. Ver pagina 35.
I0s, I
1s, I
2s Division de los ındices pertenecientes a la clase Cs en funcion de los valores
de los multiplicadores de Lagrange de cada ejemplo. Ver pagina 36.
Iups , I
lows Division de los ındices pertenecientes a la clase Cs realizado para deter-
minar si las condiciones KKT estan siendo violadas o no. Iups = I0
s ∪ I1s,
Ilows = I0
s ∪ I2s. Ver pagina 36.
µ Factor de regularizacion de una SVM con margen suave del tipo µ-SVM.
Puede adoptar valores dentro del dominio [1/ms, 1]. Ver pagina 17.
µ-SVM SVM binaria de margen suave. Utiliza el factor de regulacion µ en su
formulacion. Es equivalente a la ν-SVM. Ver pagina 16.
ν Factor de regulacion de una SVM con margen suave del tipo ν-SVM. Puede
adoptar valores dentro del dominio [0, νmax]. Ver pagina 12.
xiii
ν-SVM SVM binaria de margen suave. Utiliza el factor de regularizacion ν en su
formulacion. Ver pagina 12.
νmax Valor maximo que puede adoptar el factor de regulacion ν en un problema
dado. Esta definido como νmax = 2ms/m. Ver pagina 12.
ξi Variable de holgura del ejemplo i involucrada en la definicion del primal
de una SVM de margen suave. Ver pagina 11.
b Desplazamiento desde el origen del hiperplano separador involucrado en la
formulacion de una SVM binaria. Ver pagina 5.
br Desplazamiento desde el origen del hiperplano separador de la clase r in-
volucrado en la formulacion de la AD-SVM. Ver pagina 23.
C Factor de regulacion de una SVM con margen suave del tipo C-SVM.
Puede adoptar valores dentro del dominio [0,∞). Ver pagina 11.
C-SVM SVM binaria de margen suave. Utiliza el factor de regulacion C en su
formulacion. Ver pagina 11.
D(u) Formulacion del dual de una SVM en terminos de los multiplicadores de
Lagrange. Ver pagina 8.
Fl Gradiente de la funcion objetivo de la µ-SVM,1
4
∑i∈I
∑j∈I
uiujyiyjkij, con
respecto a ul. Fl =1
2
∑j∈I
ujylyjklj. Ver pagina 27.
Hr Envoltura convexa que envuelve los ejemplos de la clase Cr. Ver pagina 13.
I Conjunto de todos los ındices: I = {1, . . . ,m}. Ver pagina 6.
Ir Conjunto de todos los ındices de los ejemplos pertenecientes a la clase Cr:
Ir = {i ∈ Ir : xi ∈ Cr}. Ver pagina 14.
K Numero de clases involucrado en un problema de clasificacion multi-categorıa.
Ver pagina 21.
xiv
m Numero de ejemplos o puntos de entrenamiento en un problema de clasi-
ficacion. Ver pagina 5.
ms Tamano de la clase con menos ejemplos de entrenamiento del problema
(binario o multi-categorıa) que se quiere resolver. Ver pagina 12.
n Dimensionalidad (numero de dimensiones) del espacio caracterıstico del
problema de clasificacion. Ver pagina 5.
p Numero mınimo de ejemplos que deben participar en la combinacion con-
vexa de una clase (numero de multiplicadores de Lagrange que deben tener
un valor mayor que cero en una clase) al construir una µ-SVM. Su valor
es d1/µe. Ver pagina 15.
P{w,b} Formulacion del primal de una SVM en terminos del vector normal al
hiperplano y de su desplazamiento desde el origen. Ver pagina 7.
yi Etiqueta del ejemplo i que indica a que clase pertenece dicho ejemplo en
un problema de clasificacion binaria. Puede adoptar los valores −1 y +1.
Ver pagina 6.
LRU Least Recently Used Cache Strategy. Estrategia de almacenamiento de
cache que descarta los elementos menos recientemente utilizados cuando
ya no queda espacio para almacenar nuevos elementos. Ver pagina 44.
oao-SVM one against one SVM o SVM uno contra uno. SVM multi-categorıa multi-
objetivo que utiliza una SVM binaria por cada par de clases. Ver pagina 17.
oar-SVM one against the rest SVM o SVM uno contra el resto. SVM multi-categorıa
multi-objetivo que utiliza una SVM binaria por cada clase para separar
dicha clase del resto de los ejemplos. Ver pagina 17.
AD-SVM All-Distances SVM o SVM de Todas las Distancias. SVM multi-categorıa
mono-objetivo que se formula al encontrar los prototipos de las envolturas
convexas de cada clase que minimizan la suma de las distancias entre los
K(K − 1)/2 pares de clases del problema. Ver pagina 21.
xv
BSVs Boundary Support Vectors o Vectores de Soporte de la Frontera. Son aque-
llos vectores involucrados en la formulacion de las µ-SVMs que tienen un
multiplicador de Lagrange ui con valor igual a µ. Estos vectores se encuen-
tran dentro del margen generado por la SVM. Ver pagina 16.
KKT KKT-conditions, Karush-Kuhn-Tucker conditions, condiciones KKT o con-
diciones de Karush-Kuhn-Tucker. Son restricciones necesarias y suficientes
que se deben cumplir para encontrar la solucion optima de un problema
de optimizacion cuadratico convexo con restricciones de desigualdad. Ver
pagina 26.
MC-SVM Multi-category SVM o SVM Multi-categorıa. SVM multi-categorıa mono-
objetivo disenada por Crammer & Singer. Su formulacion se deriva de
reducir el error empırico de clasificacion explıcitamente. Ver pagina 19.
SMO Sequential Minimal Optimization u Optimizacion Secuencial Mınima. Es
una familia de solvers para entrenar SVMs que se caracterizan por optimi-
zar el valor de dos multiplicadores de Lagrange a la vez de forma analıtica.
Ver pagina 3.
SVM Support Vector Machine o Maquina de Soporte Vectorial. Tiene como fi-
nalidad clasificar elementos de dos distintas categorıas mediante el uso de
un hiperplano separador en un espacio caracterıstico. Utiliza los vectores
mas cercanos entre ambas clases para definir el hiperplano separador (estos
vienen a ser los vectores de soporte de la maquina). Ver pagina 2.
SVs Support Vectors o Vectores de Soporte. Son aquellos ejemplos involucrados
en la formulacion de la SVM que tienen un multiplicador de Lagrange ui
con valor mayor que cero. Ver pagina 8.
xvi
Capıtulo 1
Introduccion
1.1. Clasificacion y SVMs
En diversas areas de la informatica teorica y practica, la tarea de la clasificacion
emerge como un problema recurrente, ya sea para actividades cotidianas, como filtrado
automatico de correo spam, o para situaciones mas cruciales, como la identificacion de
tumores en el cuerpo de pacientes, pasando por usos practicos de biometrıa (reconoci-
miento retinal, de huellas digitales o facial), astrofısica (reconocimiento de exoplanetas),
clasificacion en textos (clasificacion de documentos o reconocimiento de sımbolos), en-
tre otros. En todos estos casos, se trata de identificar a que clase pertenece un elemento
dado a partir de sus caracterısticas medibles o categorizables.
Existen varios enfoques que abordan este tipo de problemas, siendo uno de ellos
las maquinas de aprendizaje con aprendizaje supervisado. La idea principal detras de
estas tecnicas es utilizar la informacion provista por un conjunto de datos (llamado
conjunto de entrenamiento) para generar funciones de decision capaces de clasificar
automaticamente cada dato en las distintas categorıas que contiene el problema. Los
ejemplos que contiene el conjunto de entrenamiento tienen la particularidad de que han
sido previamente etiquetados con la clase a la cual pertenecen, por lo que la maquina
de aprendizaje puede evaluar cuantos ejemplos clasifico bien y cuantos clasifico mal y
ası corregir la funcion de clasificacion para generar una mejor. Este proceso de verifi-
cacion y correccion en base a ejemplos etiquetados es el que denomina que la maquina
sea de aprendizaje supervisado.
1
Entre las maquinas de aprendizaje mas populares aplicadas a la clasificacion estan
las Support Vector Machines (abreviadas como SVMs) o Maquinas de Soporte Vec-
torial, las cuales basicamente funcionan mapeando las distintas caracterısticas de los
elementos que se desean clasificar a un espacio vectorial, en el cual trazan un hiper-
plano que separa los vectores de una clase de los del resto. Las SVMs son bastante
populares porque tienen un funcionamiento relativamente sencillo, asociado a una se-
rie de propiedades teoricas y practicas bastante atractivas [Vap95, HSS08], ademas de
que pueden ser modificadas con facilidad para abordar problemas con data que no es
separable linealmente o que contiene mucho ruido en sus datos.
1.2. SVMs Multi-categorıa y AD-SVM
Una de las limitaciones de las SVMs clasicas consiste en que estan pensadas sola-
mente para resolver problemas de 2 clases, mientras que en la practica no es raro en-
contrarse con problemas que tengan 3 o mas categorıas. Para sortear este impedimento,
a lo largo de los anos se han propuesto diversas alternativas para extender el uso de las
SVMs a problemas de 3 o mas clases, siguiendo 2 aristas principales: 1) Las estrategias
del tipo multi-objetivo, las cuales hacen uso de un conjunto de varias SVMs binarias;
2) Las estrategias del tipo mono-objetivo las cuales derivan una maquina similar a la
SVM que sea capaz de generar diversos hiperplanos de separacion simultaneamente.
A pesar de que las estrategias del tipo multi-objetivo implican la creacion de un
mayor numero de maquinas y un mayor numero de parametros que ajustar, su adopcion
ha sido mucho mayor que la de las mono-objetivo. Esto se debe a que la mayorıa de
las maquinas implementadas utilizando la segunda estrategia utilizan una cantidad
de restricciones mucho mayor, en comparacion a las que maneja una SVM binaria,
por lo cual, a pesar de ser una sola la maquina que se necesita entrenar para un
problema de K clases, en la practica su entrenamiento se demora mucho mas de lo
que tardan las multiples SVMs binarias, siendo el crecimiento de las mono-objetivo
del orden cuadratico O(K ∗ m) (donde m es el numero de ejemplos utilizados en el
entrenamiento), mientras que el de las multi-objetivo rodea el orden lineal O(m).
2
Esta diferencia en el numero de restricciones entre SVMs multi-objetivo y mono-
objetivo se ha visto reducida en los ultimos anos con la creacion de una nueva SVM
mono-objetivo, denominada All Distances SVM (AD-SVM) o SVM de la suma de
Todas las Distancias. La diferencia mayor entre la AD-SVM y las otras SVMs mono-
objetivo, es que la AD-SVM deriva su diseno desde un enfoque geometrico, en vez
de uno netamente regulador. Ası, mientras que el resto de las SVMs mono-objetivo se
preocupa de que cada ejemplo de entrenamiento se encuentre debidamente separado, la
AD-SVM se enfoca en separar correctamente las envolturas convexas que encapsulan a
cada clase, obviando de esta manera algunas restricciones que asume son redundantes,
rebajandolas a un valor dentro del orden de O(2m+K).
1.3. Problematica
En la actualidad, la AD-SVM existe como una propuesta teorica cuyas capacidades
todavıa no han sido probadas a cabalidad en la practica. Esto se debe a que no existe
un algoritmo de entrenamiento adecuado para entrenar a la AD-SVM. A la fecha,
solamente se han podido emplear algoritmos de programacion cuadratica genericos para
entrenar a la AD-SVM, los cuales son eficientes para resolver una gama bastante amplia
de problemas, pero a la hora de ser aplicados al entrenamiento de SVMs consumen una
cantidad de tiempo y recursos que se hacen inmanejables a medida que crece el tamano
del problema.
Debido a esto, los experimentos que se han llevado a cabo para probar las capaci-
dades de la AD-SVM son bastante pocos y de problemas considerablemente pequenos
(no mas de 500 ejemplos).
¿Pero como lo hacen las otras SVMs? Las SVMs binarias tradicionales utilizan
algoritmos del tipo Sequential Minimal Optimization (SMO, traducibles como optimi-
zacion secuencial mınima) o algoritmos tipo Fixed-Point (de punto fijo). Las SVMs
multi-objetivo simplemente reutilizan estos mismos algoritmos para entrenar las di-
versas SVMs binarias que usan, mientras que las SVMs mono-objetivo extienden o
modifican los mismos algoritmos para ajustarlos a las necesidades de sus maquinas
extendidas. Como la AD-SVM surge de una naturaleza distinta que las otras SVMs
3
mono-objetivo, sus algoritmos de entrenamiento no se pueden reutilizar directamente
para su propio funcionamiento. Pasa lo mismo con los algoritmos tradicionales de las
SVMs binarias, no son directamente aplicables al diseno de la AD-SVM.
De todo lo anterior, surge la problematica o necesidad de disenar un algoritmo de
entrenamiento, similar en desempeno al de las otras SVMs, para la AD-SVM.
1.4. Estructura de la Tesis
Esta tesis esta organizada de la siguiente manera: En el capıtulo 2 se describen el
diseno y funcionamiento de las SVMs tradicionales, las SVMs multi-categorıa multi-
objetivo y mono-objetivo, el diseno de la AD-SVM y los principales algoritmos de
entrenamiento de las SVMs tradicionales; En el capıtulo 3 se establecen las hipotesis
de la tesis, se propone el algoritmo de entrenamiento para la AD-SVM, derivando su
paso de optimizacion a partir de su modelo y disenando el algoritmo de entrenamiento;
En el capıtulo 4 se describen los experimentos realizados para evaluar distintas imple-
mentaciones del algoritmo, probar las cualidades del mismo, comparar su desempeno
con el algoritmo anteriormente utilizado para el entrenamiento de la AD-SVM y con-
trastar el desempeno de la AD-SVM entrenada con el algoritmo propuesto con respecto
a la maquina alternativa mono-objetivo, describiendo los resultados obtenidos en cada
caso; Finalmente en el capıtulo 5 se hace un analisis de los resultados obtenidos, se ve-
rifica si se han cumplido o refutado las hipotesis propuestas y se plantean conclusiones
acerca de la tesis.
4
Capıtulo 2
Estado del Arte
2.1. SVMs Binarias
Las SVMs Binarias [CV95] son Maquinas de Aprendizaje Supervisado enfocadas a
clasificar elementos que pueden pertenecer a una de dos categorıas, como se muestra
en la figura 2.1a. Dado que se tiene un conjunto de ejemplos, compuestos de una serie
de caracterısticas y una etiqueta que establece a cual de las dos clases pertenece cada
ejemplo, la idea principal detras de las SVMs es disponer a los ejemplos en un espacio
vectorial y trazar un hiperplano que deje a todos los elementos de una clase a un lado
del hiperplano y los pertenecientes a la otra clase, en el otro lado. Una descripcion
mas formal del metodo se puede describir de la siguiente manera: Supongase que se
dispone de un conjunto de ejemplos S = {x1,x2, . . . ,xm}, todos pertenecientes a un
espacio caracterıstico S ⊂ X ⊆ Rn, algunos de los cuales pertenecen a la clase C− y los
restantes, a la clase C+. El fin de la SVM Binaria consiste en construir un hiperplano
H = {x ∈ X : w · x + b = 0} con parametros w ∈ X \ {0}, b ∈ R, tal que se cumplan
dos condiciones:
1. Los ejemplos de la clase C− deben quedar a un lado del hiperplano (C− = {xi ∈X : w · xi + b < 0}), y los de la clase C+, en el otro lado del hiperplano (C+ =
{xi ∈ X : w · xi + b > 0});
2. El margen ρ del hiperplano, definido como dos veces la distancia desde el hiper-
plano hasta el (o los) ejemplo(s) mas cercano(s) a este, debe tener ancho maximo.
5
Matematicamente, ρ se puede definir como
ρ = arg max{w}2yj(w · xj + b)
‖w‖
sujeto a j = arg mın{i}2yi(w · xi + b)
‖w‖, ∀i ∈ I.
Donde yi ∈ {−1,+1} es la etiqueta que indica a que clase pertenece el ejemplo i y
donde I = {1, 2, . . . ,m} es el conjunto de ındices de todos los ejemplos del problema.
Si se normaliza w de tal forma que el producto punto de dicho vector con aquellos
ejemplos mas cercanos al hiperplano de igual a ±1 (el signo dependiendo de la clase),
entonces el margen se puede definir como ρ = 2/ ‖w‖.
(a) (b)
Figura 2.1 – Problema Binario: En 2.1a se muestra un problema de clasificacion binaria,
mientras que en 2.1b se presentan varias posibles soluciones de hiperplanos separadores
Notese que, descartando algunos pocos casos, cuando el problema es linealmente
separable (cuando efectivamente es posible trazar un hiperplano que separe correc-
tamente las dos clases), existen infinitos hiperplanos que pueden ser elegidos (en la
figura 2.1b se pueden apreciar algunas soluciones de ejemplo al problema mostrado en
la figura 2.1a). Es la segunda condicion la que acota la eleccion al hiperplano opti-
mo, como se muestra en la figura 2.2. Matematicamente, la formulacion del hiperplano
puede ser definida como:
6
(a) (b)
Figura 2.2 – Margen Optimo: En la figura 2.2a se muestra el hiperplano de mayor mar-
gen que separa correctamente ambas clases. En la figura 2.2b se muestran los elementos
involucrados en la formulacion matematica de dicho hiperplano.
P{w,b} : minimizar1
2‖w‖2 , (2.1.1)
sujeto a yi (w · xi + b) ≥ 1, ∀i ∈ I, (2.1.2)
Con este modelo, uno puede construir una funcion de decision para clasificar futuros
ejemplos:
f(x) = signo (w · x + b) . (2.1.3)
La funcion f(x) entregara entonces el signo de la clase a la que pertenece el nuevo
ejemplo x. En la figura 2.2b se puede apreciar que todos los vectores a la derecha del
hiperplano gris daran un valor −1 al ser evaluados por la funcion f(x), mientras que
los vectores a la izquierda daran un valor igual a +1.
Algunos autores proponen resolver este problema directamente en el primal [Cha07]
(es decir, abordando directamente P{w,b}), pero lo que habitualmente se hace es utilizar
la tecnica de los multiplicadores de Lagrange y resolver el problema en el dual [SS01].
Por medio de este metodo, el problema queda expresado como:
7
minimizar{u} D(u) =1
2
∑i∈I
∑j∈I
uiujyiyjxi · xTj −∑i∈I
ui, (2.1.4)
sujeto a ui ≥ 0, ∀i ∈ I, (2.1.5)∑i∈I
uiyi = 0. (2.1.6)
Aquellos vectores que tienen un multiplicador de Lagrange ui con valor mayor que
cero se denominan Support Vectors (SVs) o Vectores de Soporte Vectorial. Estos son
los que definen al hiperplano separador y los lımites de su margen. En la figura 2.2, los
SVs estan simbolizados como cırculos de relleno blanco. Como se puede intuır, los SVs
suelen componer una fraccion pequena del total de los ejemplos del problema.
2.1.1. SVMs y Kernels
En muchas ocasiones, los ejemplos que componen la data de entrada viven en un
espacio que no es linealmente separable, pero que guardan una estructura que perfecta-
mente podrıa soportar una frontera de otro tipo. En tales casos, lo que se puede hacer
es aplicar una transformacion Φ(·) a los ejemplos en el espacio de entrada la cual los
traslada a un espacio de mayor dimensionalidad (denominado espacio caracterıstico),
en los cuales un hiperplano separador sı sea capaz de dividir las dos clases implicadas
en el problema. Utilizando esta ideal, el primal se reformularıa de la siguiente forma:
P{w,b} : minimizar1
2‖w‖2 , (2.1.7)
sujeto a yi (w,Φ(xi) + b) ≥ 1, ∀i ∈ I. (2.1.8)
Si bien, esta estrategia es viable en la mayorıa de los casos, existe un metodo
alternativo, llamado Kernel Trick (Truco del Kernel) que es menos costoso y no tiene
que lidiar con el problema de espacios de alta o incluso infinita dimensionalidad. El
Kernel Trick consiste en utilizar una funcion de Kernel que calcula directamente el
producto interno entre dos vectores del espacio caracterıstico en un espacio de mayor
dimensionalidad, sin necesidad de realizar el mapeo a dicho espacio. Dicha funcion
8
Figura 2.3 – Truco de Kernel: El producto de Kernel resume en un paso lo que se tendrıa
que reproducir con una transformacion a un espacio vectorial de mayor dimensionalidad,
un producto punto en dicho espacio y una proyeccion posterior al espacio vectorial
original
de Kernel debe necesariamente ser una funcion simetrica positiva semi-definida [SS01,
HSS08]. En la figura 2.3 se ejemplifica graficamente la idea del Kernel Trick.
Para hacer uso de este metodo en las SVMs solo se debe realizar el reemplazo de los
producto puntos xi · xj por la funcion de Kernel deseada K (w,xi) en la formulacion
dual de la maquina:
minimizar{u} D(u) =1
2
∑i∈I
∑j∈I
uiujyiyjkij −∑i∈I
ui, (2.1.9)
sujeto a ui ≥ 0, ∀i ∈ I, (2.1.10)∑i∈I
uiyi = 0, (2.1.11)
9
donde kij = K (xi,xj) = Φ(xi) · Φ(xj). En adelante, se utilizara la funcion de Kernel
en reemplazo del producto punto, ya que, al ser el mismo producto punto un tipo de
Kernel, esta funcion es una forma mas general de abarcar todos los casos.
2.1.2. Soft SVMs
Hay situaciones en las que la naturaleza de los datos es intrınsecamente ruidosa, lo
que repercute en que los ejemplos de ambas clases se mezclen mucho en la frontera.
Si bien, el uso de Kernels puede lograr separar los vectores de ambas clases correcta-
mente, la capacidad de generalizacion de la maquina puede verse comprometida por el
problema de sobreaprendizaje [SS01]. En terminos practicos, esto significa que la SVM
entrenada es muy buena clasificando aquellos ejemplos con los que fue entrenada, pero
tiene una tasa de error muy alta clasificando nuevos patrones.
(a) (b)
Figura 2.4 – SVMs de Margen Suave: En 2.4a se muestra una SVM utilizando una
funcion de Kernel para clasificar correctamente todos los ejemplos de entrenamiento,
mientras que en 2.4b se presenta una SVM lineal de margen suave. Rodeados de naranjo
se muestran los ejemplos mal clasificados. La flecha indica un posible futuro punto a
clasificar.
En estos casos, es aconsejable sacrificar la correcta clasificacion de algunos cuantos
datos de entrenamiento con tal de lograr una mejor capacidad de la generalizacion de la
10
SVM frente a nuevos patrones. En este contexto entra en juego el concepto de Margen
Suave, el cual consiste en permitir un margen mas ancho que el optimo, permitiendo
que hayan vectores de ambas clases dentro de este o al lado incorrecto de la frontera.
La primera implementacion de SVM que utilizo este concepto fue la llamada C-SVM,
la cual tiene un factor de regularizacion C y variables de holgura ξi en la definicion de
su funcion objetivo:
P{w,b,ξ} : minimizar1
2‖w‖2 + C
∑i∈I
ξi, (2.1.12)
sujeto a yi (w · Φ (xi) + b) ≥ 1− ξi, ∀i ∈ I, (2.1.13)
ξi ≥ 0, ∀i ∈ I. (2.1.14)
La interpretacion del termino C puede entenderse como el grado de importancia
que la maquina tiene en clasificar bien cada uno de los vectores, versus la importancia
que tiene en lograr el margen mas ancho posible. Entre mayor sea el valor de C, mas
importancia le da a la clasificacion y menos al tamano del margen. Cuando C → ∞,
la C-SVM tiende a comportarse como una SVM Binaria clasica. Cuando C = 0, la
C-SVM genera su margen sin preocuparse en la clasificacion de los datos. El dual de
esta maquina deriva en el siguiente modelo:
minimizar{u} D(u) =1
2
∑i∈I
∑j∈I
uiujyiyjki,j −∑i∈I
ui, (2.1.15)
sujeto a 0 ≤ ui ≤ C, ∀i ∈ I, (2.1.16)∑i∈I
uiyi = 0. (2.1.17)
2.1.3. ν-SVMs
Si bien, la C-SVM logra franquear el problema del sobre-entrenamiento, elegir el
valor optimo de C se hace algo difıcil, ya que este no tiene una interpretacion directa de
cuanto error de clasificacion se tranza por que grado de generalizacion. En [SSWB00],
Scholkopf y Smola propusieron la ν-SVM, una modificacion de la C-SVM, la cual
reemplaza el termino C por ν, el cual tiene doble funcion: por un lado, establece
11
una cota superior del error de entrenamiento (fraccion de los ejemplos que son mal
clasificados), y por otro lado define una cota inferior de la fraccion de vectores que
deben estar en el margen. En la figura 2.5 se puede apreciar un ejemplo mostrando las
propiedades del parametro ν.
Figura 2.5 – ν-SVMs: En la figura se muestra un mismo problema separado de 8 formas
diferentes con margenes generados por ν-SVMs con distintos valores para ν. En el caso
de la SVM superior izquierda, se utilizo un valor ν = 0.1, mientras que en la inferior
derecha se utilizo ν = 0.8. La funcion de Kernel utilizada corresponde a la guassiana
K (xi,xj) = exp(−‖xi − xj‖2). Fuente: [SS01].
Si la funcion de Kernel usada por la ν-SVM es definida positiva, los valores que
puede adoptar ν estan acotados al dominio [0, νmax], en donde νmax = 2ms/m y donde
ms es el tamano de la clase con menos ejemplos de entrenamiento del problema. El
primal de la maquina es:
P{w′,b′,ξ′,ρ′} : minimizar1
2‖w′‖2 − νρ′ + 1
m
∑i∈I
ξ′i, (2.1.18)
sujeto a yi (w′ · Φ (xi) + b′) ≥ ρ′ − ξ′i, ∀i ∈ I, (2.1.19)
ξ′i ≥ 0, ∀i ∈ I, (2.1.20)
ρ′ ≥ 0. (2.1.21)
12
El parametro a optimizar ρ′ tiene una interpretacion geometrica, la cual consiste
en definir el margen 2ρ′/ ‖w′‖ que separarıa a las dos clases, suponiendo que todas las
variables ξ′i valieran 0. El dual de la ν-SVM queda definido como:
minimizar{u′} D(u′) =1
2
∑i∈I
∑j∈I
u′iu′jyiyjkij, (2.1.22)
sujeto a 0 ≤ u′i ≤1
m, ∀i ∈ I, (2.1.23)∑
i∈I
u′iyi = 0, (2.1.24)∑i∈I
u′i ≥ ν. (2.1.25)
En [CL01b], Chang y Lin demuestran que la restriccion (2.1.25) es redundante, y
explican que, de existir un optimo para el problema dado, este se encontrara en la
igualdad de la restriccion. Tomando esto en consideracion, el modelo queda como:
minimizar{u′} D(u′) =1
2
∑i∈I
∑j∈I
u′iu′jyiyjkij, (2.1.26)
sujeto a 0 ≤ u′i ≤1
m, ∀i ∈ I, (2.1.27)∑
i∈I
u′iyi = 0, (2.1.28)∑i∈I
u′i = ν. (2.1.29)
2.1.4. Interpretacion geometrica de las SVMs
Ademas de la vision tradicional de interpretar la SVM como un margen del hiper-
plano que separa a los ejemplos de las distintas clases, existe una forma alternativa de
abordar el problema, forma que resulta ser equivalente a la tradicional. Dicha forma,
comunmente denominada como vision geometrica de las SVMs [BB97, BB00, CB00],
consiste en considerar las envolturas convexas de ambas clases H− y H+, trazar el
segmento que une los puntos v− y v+ mas cercanos de dichas envolturas y situar el
hiperplano separador en la mitad del segmento.
13
(a) (b)
Figura 2.6 – Interpretacion geometrica de SVMs: En 2.6a se muestran las envolturas
convexas que rodean a ambas clases en el problema mostrado por la figura 2.1a. El
hiperplano que divide por la mitad al segmento que une los puntos mas cercanos entre
ambas envolturas coincide a aquel generado con una SVM binaria tradicional. En 2.6b
se muestra un caso en donde las envolturas convexas de las clases se sobreponen. En
este caso no tiene sentido trazar el segmento que une a estas envolturas, pero sı aquel
que separa a las envolturas convexas reducidas. El concepto de envolturas convexas es
similar al de margenes suaves mostrado en la figura 2.4b.
Los puntos v− y v+ que unen al segmento se denominan prototipos de las clases C−
y C−. Ambos son combinaciones convexas de sus respectivas envolturas, por lo cual se
pueden definir como una suma ponderada de los puntos que pertenecen a cada clase:
minimizar{u} D(u) = ‖v+ − v−‖ , (2.1.30)
sujeto a vr =∑i∈Ir
uixi, r ∈ {−,+} , (2.1.31)
∑i∈Ir
ui = 1, r ∈ {−,+} , (2.1.32)
0 ≤ ui ≤ 1, ∀i ∈ I. (2.1.33)
Donde Ir = {i ∈ Ir : xi ∈ Cr} es el conjunto de todos los ındices de los ejemplos
pertenecientes a la clase Cr.
14
En caso de que el ruido sea tal que los datos de una y otra clase se mezclen,
produciendo que las envolturas convexas se traslapen, la idea de buscar el segmento de
menor distancia que las une pierde sentido. En estos casos entra en juego la nocion
de envolturas reducidas: en vez de considerar la envoltura que abarca a todos los
puntos de una clase, la combinacion convexa se puede restringir para que se considere
una envoltura convexa que abarque solo una porcion de dichos datos. Esto se logra
restringiendo el valor al cual pueden optar los elementos ui de la combinacion a un
maximo de µ, donde p = d1/µe viene a ser el numero mınimo de ejemplos que deben
participar en la combinacion convexa de su clase con un valor de ui distinto de cero.
En la figura 2.6 se puede apreciar el concepto de envolturas convexas, la forma en que
definen el hiperplano separador y como se forman las envolturas convexas reducidas.
minimizar{u} D(u) =
∥∥∥∥∥∥∑i∈I+
uixi −∑i∈I−
uixi
∥∥∥∥∥∥ , (2.1.34)
sujeto a∑i∈Ir
ui = 1, r ∈ {−,+} , (2.1.35)
0 ≤ ui ≤ µ, ∀i ∈ I. (2.1.36)
Desarrollando un poco mas la funcion objetivo del modelo, esta puede expresarse
de la siguiente manera:
minimizar{u} D(u) =1
4
∑i∈I
∑j∈I
uiujyiyjkij, (2.1.37)
sujeto a∑i∈Ir
ui = 1, r ∈ {−,+} , (2.1.38)
0 ≤ ui ≤ µ, ∀i ∈ I. (2.1.39)
Notese que la restriccion (2.1.38) puede expresarse en dos restricciones similares
a las mostradas en (2.1.28) y (2.1.29) como se aprecia a continuacion con (2.1.41)
y (2.1.42):
15
minimizar{u} D(u) =1
4
∑i∈I
∑j∈I
uiujyiyjkij, (2.1.40)
sujeto a∑i∈I
uiyi = 0, (2.1.41)∑i∈I
ui = 2, (2.1.42)
0 ≤ ui ≤ µ, ∀i ∈ I. (2.1.43)
Bajo este contexto, aparece el concepto de Boundary Support Vectors (BSVs) o Vec-
tores de Soporte de la Frontera. Los BSVs vienen a ser todos aquellos vectores cuyo
multiplicador de Lagrange tiene un valor igual a µ. Estos vectores se encuentran dentro
del margen generado por la SVM. Este concepto tambien esta presente en la formula-
cion de las C-SVMs y las ν-SVMs.
En [CB00], Crisp y Burges establecen el primal de este modelo:
P{w,b,ξ,ρ} : minimizar1
2‖w‖2 − ρ+ µ
∑i∈I
ξi, (2.1.44)
sujeto a yi (w · Φ (xi) + b) ≥ ρ− ξi, ∀i ∈ I, (2.1.45)
ξi ≥ 0, ∀i ∈ I, (2.1.46)
ρ ≥ 0. (2.1.47)
Adicionalmente demuestran que, tanto el primal como el dual de la µ-SVM son
equivalentes a sus correspondientes modelos de la ν-SVM, mediante la siguiente trans-
formacion de variables:
µ =2
ν ·m, w =
w′
ν, b =
b′
ν, ρ =
ρ′
ν, ξi =
ξ′iν, ui = u′i ·m. (2.1.48)
Con esto, se puede apreciar que el factor de regularizacion µ puede adoptar valores
del dominio [1/ms, 1]. El valor inferior que puede adoptar µ tambien tiene una inter-
pretacion geometrica: si µ tuviera un valor menor que 1/ms, se estarıa exigiendo que
el numero mınimo de ejemplos que deben participar en la combinacion convexa de la
16
clase mas pequena sea p = d1/µe > ms, lo cual equivale a reducir su envoltura convexa
a un (hiper-)volumen menor que el de un punto en el espacio. La restriccion 2.1.38 no
se puede cumplir para la clase mas pequena bajo estas condiciones, lo que repercute
en un espacio de solucion nulo para el problema (no existe solucion factible).
2.2. SVMs Multi-categorıa
Como se ha visto hasta el momento, las SVMs en su forma original no son direc-
tamente aplicables a problemas de clasificacion con mas de 2 categorıas. Existen dos
enfoques que sirven para extender su funcionamiento a los problemas multi-clase:
El enfoque multi-objetivo: utilizar varias SVMs binarias en conjunto, o
El enfoque mono-objetivo: modificar la estructura de la SVM para que una sola
maquina sea capaz de separar mas de dos clases simultaneamente.
2.2.1. SVMs Multi-objetivo
El enfoque multi-objetivo es el mas utilizado al momento de extender las SVMs
a problemas multi-categorıa, siendo las implementaciones de Uno contra el Resto
(one against the rest o oar-SVM) y Uno contra Uno (one against one o oao-SVM)
sus exponentes mas conocidos. El metodo Uno contra el Resto consiste en implementar
un numero K de SVMs, en donde la r-esima SVM esta encargada de separar a los
elementos de la clase r del resto de los ejemplos. Por otro lado, el metodo Uno contra
Uno crea K(K − 1)/2 SVMs, una para cada par de clases. En la figura 2.7 se puede
apreciar un problema multi-categorıa resuelto por una oao-SVM y por una oar-SVM.
Si bien, la oao-SVM crea un mayor numero de SVMs binarias que la ovr-SVM, el
numero de ejemplos que tiene que abarcar cada una es una fraccion del total, mientras
que la oar-SVM tiene que entrenar con todos los datos del problema en cada una de las
SVMs que crea, por lo que el tiempo de entrenamiento que requiere la oao-SVM suele
ser en general menor que aquel requerido por la oar-SVM. Al momento de clasificar,
esto se invierte: en la mayorıa de los casos, tanto las SVMs creadas por la oar-SVM
como aquellas generadas por la oao-SVM tienen un numero de SVMs pequeno en
17
(a) (b)
Figura 2.7 – SVMs Multi-objetivo: En estas figuras se ve el uso de SVMs multi-objetivo
para separar un problema de 3 clases. En 2.7a se utiliza una SVM binaria para separar
cada par de clases (oao-SVM). En 2.7b se utiliza una SVM por clase para separarla del
resto de los ejemplos del problema (oar-SVM). Los colores de los margenes indican a
que clases esta asociado el hiperplano en cuestion. En el caso de la oar-SVM, el color
gris corresponde al resto de los ejemplos.
comparacion con el total de los datos, por lo que lo que determina la duracion de la
clasificacion es basicamente el numero de SVMs creadas y no el numero de datos del
problema. Ası, mientras que la oar-SVM tiene que realizar solo K evaluaciones, la
oao-SVM debe evaluar K(K − 1)/2 veces antes de determinar a que clase pertenece el
nuevo patron a clasificar.
2.2.2. SVMs Mono-objetivo
La idea de las SVMs mono-objetivo es extender la SVM binaria a una maquina que
sea capaz de clasificar simultaneamente a mas de 2 clases a la vez. Ası, en contraste con
las SVMs multi-objetivo, en el entrenamiento solo se necesita entrenar una maquina, y
en su uso como clasificadores, se suele realizar una evaluacion por cada clase (similar
al caso de la oar-SVM). En la figura 2.8 se puede apreciar la diferencia de esquemas.
Sin embargo, y a diferencia de las SVMs multi-objetivo, en donde pueden reutilizar
18
?
SVM 1,2
SVM 1,3
SVM 2,3
Clasificador Multi-objetivo
Entrada
Salida
Ensamblador
(a)
?
SVM 1,2
SVM 1,3
SVM 2,3
Clasificador Multi-objetivo
Entrada
Salida
Clasificador Mono-objetivo
?
V1
V3
V2
(b)
Figura 2.8 – Enfoque multi-objetivo v/s mono-objetivo: En estas figuras se esquema-
tizan la forma en que clasifican maquinas clasificadoras multi-categorıa del tipo multi-
objetivo (figura 2.8a) y mono-objetivo (figura 2.8b). Mientras que el esquema multi-
objetivo utiliza internamente un numero determinado de SVMs binarias para realizar su
clasificacion (y un sistema de ensamblaje para fusionar la salida de las distintas SVMs
en una sola), el esquema mono-objetivo consiste de una sola maquina capaz de clasificar
en mas de 2 clases a la vez.
directamente las SVMs binarias ya existentes, las SVMs monobjetivos deben disenar
una nueva maquina, la cual suele ser una derivacion mas compleja de una SVM tradicio-
nal y debe ser entrenada con un algoritmo especıfico para ella. Adicionalmente al tema
del diseno del solver, se debe agregar el hecho de que la mayorıa de las SVMs mono-
objetivo maneja un numero de restricciones que crece considerablemente con el tamano
del problema. Para ejemplificar este ultimo punto, tomaremos el caso de la SVM multi-
categorıa disenada por Crammer & Singer en [CS01] denominada MC-SVM, una de las
SVMs multi-categorıa mono-objetivo usadas en la actualidad. Tanto su formulacion co-
mo el codigo de su implementacion estan disponibles para el publico [Cra04]. Ademas,
su esquema ha servido de base para la implementacion de otras SVMs multi-categorıa,
como en la implementacion multi-Class de la SVM Light [Joa08]. Estas razones la hacen
un gran exponente de su tipo. Su formulacion del primal esta dada como:
19
P{W,ξ} : minimizar1
2β ‖W‖2
2 +∑i∈I
ξi, (2.2.1)
sujeto a wyi · Φ (xi) + δyi,r −wr · Φ (xi) ≥ 1− ξi, ∀i ∈ I,
∀r ∈ {1, ..., K} ∧ ξi ≥ 0, si yi = r, (2.2.2)
β > 0, δyi,r =
{1, si yi = r
0, en cualquier otro caso.(2.2.3)
Donde W viene a ser una matriz de K×m, wr es la r-esima fila de W, ‖W‖22 es la
norma l2 de la matriz, definida como ‖W‖22 =
K∑r=1
‖wr‖22 =
K∑r=1
∑i∈I
w2i,r, y donde wi,r
es el i-esimo elemento de wr. En este contexto, las etiquetas yi ya no tienen los valores
{−1,+1}, sino que adquieren la enumeracion de las clases (yi ∈ {1, . . . , K}).
El diseno de la MC-SVM se deriva de reducir el error empırico de clasificacion.
Como se puede apreciar, su estructura en el primal se asemeja al de la C-SVM, con
la diferencia de que la variable de regularizacion esta unida a la matriz en vez de a
las variables de holgura. Sin embargo, basta realizar un cambio de variable del tipo
C = β−1 para obtener una estructura similar. El dual de esta maquina esta dado por:
minimizar{u} D(u) =1
2
∑i∈I
∑j∈I
kij ·
[K∑r=1
(δyi,r − ui,r)(δyj ,r − uj,r)
]
−∑i∈I
K∑r=1
ui,rδyi,r, (2.2.4)
sujeto aK∑r=1
ui,r = 1,∀i ∈ I, (2.2.5)
0 ≤ ui,r ≤ 1, ∀i, r. (2.2.6)
Como se puede apreciar, para un problema con m ejemplos y K clases, el orden de
variables ui,r que debera manejar el algoritmo de entrenamiento es de Km. Esto, en
comparacion con la oao-SVM, en donde se necesitan un promedio de 2m restricciones,
es bastante considerable, en especial si el numero de clases es muy elevado.
20
2.2.3. AD-SVM
La AD-SVM (All-Distances SVM o SVM de Todas las Distancias) fue propuesta
en [NCA+09]. Es una SVM multi-clase de tipo mono-objetivo que deriva su modelo de
la vision geometrica descrita en la seccion 2.1.4. Basicamente, la idea de la AD-SVM
consiste en extender el concepto de encontrar la distancia menor entre dos envolturas
convexas a K envolturas, teniendo como objetivo minimizar la suma de las distancias
entre los K(K − 1)/2 pares de clases posibles:
minimizar{u} D(u) =K∑r=2
r−1∑s=1
‖vr − vs‖ , (2.2.7)
sujeto a vr =∑i∈Ir
uixi, r ∈ {1, 2, . . . , K} , (2.2.8)
∑i∈Ir
ui = 1, r ∈ {1, 2, . . . , K} , (2.2.9)
0 ≤ ui ≤ 1, ∀i ∈ I. (2.2.10)
(a) (b)
Figura 2.9 – All-Distances SVM: En estas figuras se muestra la formulacion de la
AD-SVM (figura 2.9a) y el esquema de clasificacion de nuevos patrones (figura 2.9b).
En la figura 2.9 se puede observar la formulacion de una AD-SVM aplicada a un
21
problema de tres clases y el esquema de clasificacion utilizado para categorizar futuros
patrones del problema.
Al igual que en la version binaria, este modelo puede ser trabajado un poco mas
para dejar expresada la funcion objetivo como una sumatoria ponderada de los ejemplos
del problema, y generalizar el producto punto por un producto de Kernel:
minimizar{u} D(u) =1
4uTKu =
1
4
∑i∈I
∑j∈I
uikijuj, (2.2.11)
sujeto a∑i∈Ir
ui = 1, r ∈ {1, 2, . . . , K} , (2.2.12)
0 ≤ ui ≤ µ, ∀i ∈ I, (2.2.13)
yi = [yi1, yi2, . . . , yiK ] , yis =
{(K − 1)/
√K, si i ∈ Is
−1/√K, en cualquier otro caso,
(2.2.14)
y sea i ∈ Ir y j ∈ Is, entonces:
αij = yi · yj =
{(K − 1), si s = r
−1, en cualquier otro caso.(2.2.15)
Donde K es una matriz de m×m formada por los elementos kij = (yi · yj) kij = αijkij.
Como se trata de una SVM multi-categorıa, a partir de los multiplicadores de Lagrange
se debe generar no solo un hiperplano, sino K hiperplanos, uno para separar a cada
clase Cr del resto de los ejemplos (muy similar a la oar-SVM). Los componentes de
cada hiperplano estan definidos como:
wr =1
K
∑i∈I
αiruixi, (2.2.16)
br =−1
K2
∑i∈I
∑j∈I
uiαirkijuj, (2.2.17)
ρr =1
K2
∑i∈I
∑j∈I
uiαirkijαjruj, (2.2.18)
donde αir =
{K − 1, si i ∈ Ir−1, si i /∈ Ir.
(2.2.19)
22
Y la funcion para determinar a que clase pertenecen nuevos ejemplos esta dada por:
f (x) = arg maxr
(1
K
∑i∈I
αiruiK (xi,x) + br − ρr
). (2.2.20)
2.3. Algoritmos de Entrenamiento
El entrenamiento de una SVM binaria se puede abordar como un problema de
optimizacion cuadratico con restricciones lineales de la forma min{u}uTQu + cTu, en
donde el vector c puede ser el vector nulo. Para el caso de la ν-SVM y de la µ-SVM,
el vector c es nulo. Para el caso de la C-SVM, no.
Normalmente, problemas de esta ındole pueden ser resueltos eficientemente con
algoritmos similares al metodo de Newton, tales como el propuesto en [CL96], los que
tienen un tiempo de ejecucion bastante expedito cuando la matriz Q no es muy densa.
Sin embargo, cuando la matriz Q es especialmente densa, calcular y almacenar sus
valores se hace cada vez mas inviable a medida que su tamano aumenta. Este es el caso
en el entrenamiento de las SVMs binarias, en donde Q tiene una dimensionalidad de
m ×m y cada celda corresponde al producto punto de dos ejemplos del problema. Si
bien Q es simetrica y solo es necesario calcular m(m + 1)/2 de los productos, la gran
mayorıa de estos no seran nulos, y el crecimiento de su tamano sera de todas formas
cuadratico en funcion del numero de ejemplos de entrenamiento m.
2.3.1. Chunking y Algoritmos de Descomposicion
Como se puede apreciar, el uso directo de metodos tradicionales consume rapi-
damente los recursos de almacenamiento e invierte bastante tiempo en computo. Sin
embargo, hay caracterısticas intrınsecas a la formulacion de las SVMs que se pueden
utilizar a favor para hacer mas eficiente su resolucion. Una de ellas es lo disperso que
suele ser el vector resultante u, que indica cuales de los ejemplos del problema son vec-
tores de soporte y en cuanto contribuyen a determinar el hiperplano separador. Como
suelen ser pocos los elementos de u que no son nulos (y como la fraccion de ejemplos
23
que son SVs tiende a ser constante a medida que el tamano del problema aumenta), se
hace necesario calcular solamente una cantidad reducida de columnas de Q que estan
relacionadas con dichos elementos, lo cual es una fraccion considerablemente pequena.
Con esto se puede asumir con bastante confianza que seran escasos los elementos
de u que estaran involucrados en la solucion final del problema, pero no se sabe cuales
de todos estos elementos son los que seran finalmente los vectores de soporte en dicha
solucion final. Ası, el inconveniente inicial de calcular y almacenar la matriz Q cambia
por el de encontrar los elementos de u que no son nulos en la solucion optima.
Uno de los metodos iniciales que se propusieron para encontrar los vectores de
soporte, denominado Chunking [BGV92], consistıa en trabajar inicialmente con una
fraccion B de los elementos de u, denominada conjunto de trabajo o Working Set.
Al final de una iteracion, luego de reajustar los elementos en B, aquellos que terminan
siendo nulos son descartados del conjunto de trabajo, mientras que otros M elementos
que violen las condiciones del problema son agregados al conjunto. Este ciclo se repite
hasta que no hayan mas elementos que violen las condiciones. Aunque el rendimiento
mejora usando esta estrategia, en la mayorıa de los casos, el numero de elementos que
salen del conjunto de trabajo es menor que los M elementos que ingresan, por lo que
B crece a un tamano que tampoco es tratable.
En [OFG97], Osuna et al propusieron que el numero de elementos que se adhirieran
a B en cada iteracion fuera el mismo que se sacasen del mismo, aun si todos los elemen-
tos en B son vectores de soporte. Esto asegura que los recursos de espacio no se vean
sobrepasados en ninguna iteracion. En este esquema, bajo ciertas circunstancias, se
puede asegurar la convergencia del entrenamiento al optimo. Osuna et al denominaron
este tipo de metodos “Algoritmos de Descomposicion”.
2.3.2. Sequential Minimal Optimization
En [Pla99], Platt propuso llevar el enfoque de Osuna al extremo, considerando
un tamano fijo para B de dos elementos a la vez. Aunque el numero de iteraciones
aumenta de forma considerable, el tiempo invertido en resolver cada iteracion se reduce
tambien drasticamente debido a que cada paso de optimizacion puede ser resuelto
analıticamente. A lo largo de los anos, diferentes aspectos de este metodo se han ido
24
perfeccionando por distintos autores. Entre ellos, cabe destacar mejoras en el criterio
de termino propuestas por Keerthi et al en [KSMB01] o en la seleccion de elementos en
cada iteracion propuesta por Fan et al en [FCL05]. En la figura 2.10 se muestra como
trabajan los distintos esquemas descritos hasta el momento.
Chunking
Osuna
SMO
Figura 2.10 – Algoritmos de entrenamiento para las SVMs: En la figura se muestran
3 tecnicas distintas para entrenar SVMs. Para cada tecnica, se muestran 3 iteraciones
de ejemplo. En cada iteracion, la lınea delgada simboliza la totalidad del conjunto de
entrenamiento, mientras que el area rectangular muestra cuales de los ejemplos tienen
asociados multiplicadores de Lagrange que seran optimizados en dicha iteracion (el con-
junto activo). Fuente: [Pla99].
2.3.3. Estructura de un SMO
La estructura general de un algoritmo SMO abarca los siguientes componentes:
un criterio de termino para determinar eficientemente cuando se ha llegado a una
solucion optima o cercana a la optima (dentro de un margen τ preestablecido); un
paso de optimizacion (usualmente) analıtico para calcular los nuevos valores de dos
multiplicadores de Lagrange; una estrategia de seleccion (heurıstica o no) para elegir
a los dos multiplicadores de Lagrange a ser optimizados; un sistema de actualizacion
que eficientemente actualice los valores involucrados en la seleccion y optimizacion
de los dos multiplicadores de Lagrange. Todos estos componentes son organizados y
utilizados en un algoritmo.
25
Criterio de Termino
Para obtener el criterio de termino, se suelen buscar las KKT-conditions (abrevia-
cion para “condiciones de Karush-Kuhn-Tucker”) del problema. Las KKT-conditions
son las condiciones necesarias que debe cumplir la solucion de un problema no lineal,
que contiene restricciones de desigualdad, para ser una solucion optima. Viene a ser
una extension del metodo de los multiplicadores de Lagrange (el cual solo cubre restric-
ciones de igualdad1). En general, si el Kernel que se utiliza en la definicion de la SVM
es positivo semi-definido, tanto la funcion objetivo a optimizar como sus restricciones
seran convexas, por lo que las KKT-conditions seran necesarias y suficientes para
determinar que se ha alcanzado la optimalidad [KG02].
Las KKT-conditions se definen con detalle en [Kar39, KT51, Lue84], y para las
SVMs binarias existe una bibliografıa extensa que explica como obtenerlas para los
distintos tipos de SVMs [PR98, CL01b, CFL06]. En la subseccion 3.2.1 explicaremos
como obtener las KKT-conditions especıficas para la AD-SVM. Por el momento, para
ejemplificar con un caso especıfico, simplemente afirmaremos que las KKT-conditions
de la µ-SVM nos permiten definir los siguientes subconjuntos de ındices [KG02]:
I0s = {l : 0 < ul < µ ∧ l ∈ Is} , (2.3.1)
I1s = {l : ul = 0 ∧ l ∈ Is} , (2.3.2)
I2s = {l : ul = µ ∧ l ∈ Is} , s ∈ {−1,+1} , (2.3.3)
los cuales, a su vez nos permiten definir las variables βups y βlow
s :
βups = mın
{Fl : l ∈ Iup
s = I0s ∪ I1
s
}, (2.3.4)
βlows = max
{Fl : l ∈ Ilow
s = I0s ∪ I2
s
}, s ∈ {−1,+1} , (2.3.5)
donde Fl =1
2
∑j∈I
ujylyjklj, (2.3.6)
1En la practica, los multiplicadores involucrados en la definicion del dual de las Soft-SVMs (tanto C-SVMs como ν-SVMs y µ-SVMs) tambien son multiplicadores KKT, sin embargo se suelen denominarcomo multiplicadores de Lagrange para no causar mayor distincion o confusion con los multiplicadoresusados en SVMs de margen duro. Aunque la nomenclatura es incorrecta, esta diferenciacion nossera util para distingir los multiplicadores utilizados en la definicion del dual de aquellos implicadosen el criterio de termino.
26
que por ultimo nos permiten definir nuestro criterio de termino:
βlows ≤ βup
s , ∀s ∈ {−1,+1} . (2.3.7)
Ası, si en un momento dado de nuestro entrenamiento vemos que la condicion dada
en (2.3.7) se cumple, sabremos que hemos llegado a una solucion optima y podremos
terminar el entrenamiento.
Paso de Optimizacion
Como lo hemos mencionado anteriormente, el paso de optimizacion es el pilar cen-
tral del SMO que lo hace tan eficiente. El proceso por el cual se define este paso
de optimizacion se puede encontrar en referencias tales como [Pla99]. En la subsec-
cion 3.2.2 describiremos en detalle el procedimiento que lleva a generar dicho paso de
optimizacion para la AD-SVM. Aquı, simplemente describiremos de manera informal el
proceso para la µ-SVM: Para obtener el paso de optimizacion, se suele definir la funcion
objetivo D(u) de la SVM en funcion de solo dos de sus multiplicadores de Lagrange, up
y uq (dejando todas las demas variables ui con valores fijos, o sea, constantes). Luego,
se despeja el valor de una de dichas dos variables, up, en funcion de la otra, uq. Ası,
tenemos toda nuestra funcion objetivo D definida en terminos de uq, D(uq). Derivamos
nuestra funcion objetivo con respecto a uq e igualamos esta derivada a cero, ∇qD = 0,
con lo cual podemos encontrar los puntos de inflexion de nuestra funcion. Sabemos
ademas que los puntos de inflexion corresponderan a un mınimo cuando la segunda
derivada, ∇2qD sea mayor que cero. Utilizando todos estos conceptos se puede generar
un algoritmo de Newton que permite definir el nuevo valor de uq, unewq en funcion de
su antiguo valor y de los productos de Kernel kqj calculados hasta el momento:
unewq = uold
q −Fq − Fp
kpp − 2kpq + kqq. (2.3.8)
Se debe verificar que unewq cumpla con las restricciones de frontera2, por lo que su valor
2Restricciones de frontera: unewq no puede valer menos que cero ni mas que µ debido a (2.1.39)
y tampoco puede valer mas que uoldq y uoldp sumados, porque de lo contrario unewp tendrıa un valor
negativo.
27
se debe truncar:
unew,clippedq =
L, si unew
q ≤ L
unewq , si L < unew
q < H
H, si unewq ≥ H
(2.3.9)
donde L = max {0, (ψ − µ)} ,
H = mın {ψ, µ} ,
ψ = uoldp + uold
q
Despues de esto, unewp se puede obtener facilmente:
unewp = ψ − unew,clipped
q . (2.3.10)
Estrategias de Seleccion
Desde que Platt propusiera el algoritmo SMO, han existido diferentes tecnicas que
describen como seleccionar los dos multiplicadores de Lagrange up y uq a ser optimi-
zados.
En un principio Platt propuso en [Pla99] una heurıstica que seleccionaba el par
de multiplicadores en dos pasos: en un primer ciclo, iba analizando todos los mul-
tiplicadores que no tuvieran valores extremos C o cero, verificando que no violaran
las KKT-conditions. Si se encontraba con un multiplicador up que violase las KKT-
conditions, este quedaba seleccionado como el primer ındice. En el segundo ciclo, la
heurıstica corrıa a traves de todos los demas multiplicadores buscando aquel multi-
plicador uq que generara la mayor diferencia de |Fp − Fq|. Si, durante el primer ciclo,
no se encontraba algun multiplicador que violara las KKT-conditions, entonces se pro-
cedıa a buscar en los multiplicadores con valores extremos. Si alguno de estos violaba
las KKT-conditions, se procedıa a realizar el segundo ciclo, pero ahora con todos los
ejemplos. Cuando ningun ındice violaba las KKT-conditions, entonces se habıa llegado
al optimo y el algoritmo terminaba.
Keerthi et al [KSMB01] demostraron que habıan ciertas falencias en el algoritmo de
Platt, en especial con la actualizacion del valor umbral β (utilizado en la identificacion
28
de multiplicadores que violaran las KKT-conditions) para ciertos casos en los que podıa
adquirir valores dentro del rango βup y βlow y la heurıstica propuesta simplemente elegıa(βup + βlow
)/2, lo cual podıa llevar a una convergencia prematura lejos del optimo.
Ellos expusieron una heurıstica alternativa: en vez de limitar el valor de β en estos casos,
propusieron mantener almacenados los valores actualizados de βup y βlow en cada paso
del algoritmo. Adicionalmente propusieron definir la eleccion del par de multiplicadores
de Lagrange de tal forma que sus valores Fl’s coincidiera con los valores betas, up :
Fp = βup y uq : Fq = βlow. Posteriormente, en [KG02] Keerthi et al demostraron la
convergencia de esta tecnica de forma generalizada y extendieron su uso a maquinas
del tipo ν-SVM y µ-SVM. Estas publicaciones trajeron consigo los conceptos de par
violador y par maximo violador. Estos conceptos tienen papeles importantes en la
demostracion de convergencia de las SVMs binarias [Lin01, Lin02]. En el contexto de
la µ-SVM, estos se definen como:
Definicion 2.3.1.Se dice que p, q ∈ Is corresponden a un Par Violador de la
clase s ∈ {−1,+1} si p ∈ Iups , q ∈ Ilow
s y Fp > Fq.
Definicion 2.3.2.
Se dice que p, q ∈ Is corresponden al Par Maximo Vio-
lador de la clase s ∈ {−1,+1} si Fp = βups , Fq = βlow
s y
Fp > Fq.
En [FCL05, CFL06], Chen et al explican que la tecnica propuesta por Keerthi et al
corresponde a seleccionar el par de multiplicadores de Lagrange a optimizar utilizando
la informacion de primer orden de la funcion objetivo de la SVM. En estas publicacio-
nes, adicionalmente proponen la idea de utilizar la informacion de segundo orden para
determinar que par de multiplicadores proveerıan una tasa mas alta de convergencia
que aquella obtenida solo con informacion de primer orden (esto se justifica debido a
que la funcion objetivo es efectivamente una funcion cuadratica). Sin embargo, Chen
et al muestran que, si bien esta tecnica alcanza mayores tasas de convergencia, invierte
en consecuencia un tiempo de computo muy alto para encontrar dicho par optimo,
necesitando un orden de O(m2) operaciones, lo cual no la hace una estrategia compe-
titiva con respecto a la estrategia de Keerthi et al, la cual solo requiere de un orden de
O(m) operaciones. Por esto, propusieron una heurıstica que perdıa eficiencia en cuanto
a convergencia, pero que ganaba en tiempo de ejecucion y de todas formas alcanzaba
mejores tasas de convergencia en general que la tecnica del par maximo violador. Dicha
29
tecnica consiste en seleccionar el primero de los dos ındices como βups (o βlow
s ) y elegir
el segundo en funcion de la informacion de segundo orden. Para el caso de la µ-SVM y
la clase s, se debe elegir el ındice p : Fp = βups . Luego se debe encontrar el ındice q tal
que:
q = arg maxt
{b2pt
2apt, t ∈ Ilow
s ∧ Ft > Fp
}(2.3.11)
donde apt = kpp − 2kpt + ktt, bpt = Ft − Fp (2.3.12)
Esto se realiza para ambas clases. Luego, de estos dos pares de ındices, {p, q}+ y {p, q}−,
se elige el que tiene el factor b2pq/apq con valor maximo.
Sistema de Actualizacion
Una vez alterado el valor de dos multiplicadores de Lagrange, up y uq, es necesario
calcular el valor de todos los valores Fl nuevamente para verificar si se ha obtenido
optimalidad y calcular los valores de w, b y ρ. Por otro lado, si no se ha alcanzado la
optimalidad todavıa, los Fl deben ser recalculados de todas formas para seleccionar el
siguiente par de multiplicadores a optimizar. Este calculo se puede realizar en base a
los valores de los nuevos y viejos up y uq:
F newl = F old
l +(unew,clippedp − uold
p
)· ypylkpl
2+(unew,clippedq − uold
q
)· yqylkql
2(2.3.13)
Estructura del Algoritmo
Un algoritmo SMO que utiliza todos estos componentes en general tiene una es-
tructura que se asemeja a la mostrada en el algoritmo 1:
Cabe mencionar que este es un algoritmo bastante generico y simplista. En la
practica, los algoritmos utilizados suelen estar separados en etapas o ciclos, internos
y externos. En el ciclo interno, se suele trabajar solamente con los multiplicadores
de Lagrange que actualmente tienen valores mayores que cero, mientras que en el
ciclo externo se revisan todos los multiplicadores para revisar si se ha alcanzado la
optimalidad general o para ver si hay multiplicadores actualmente con valor cero que
debieran tener un valor mayor.
30
Algoritmo 1 Ejemplo de Algoritmo SMO para la µ-SVM
1: Inicializar u satisfaciendo las restricciones (2.1.38) y (2.1.39).
2: Calcular Fl, ∀l ∈ I.
3: Encontrar βlows y βup
s para cada clase s ∈ {−1,+1}.4: Mientras βlow
s − βups > 2τ por lo menos para un s ∈ {−1,+1} , hacer
5: Para cada clase s ∈ {−1,+1} hacer
6: Seleccionar p : Fp = βups .
7: Seleccionar q = arg mınt
{−b2pt
2apt, t ∈ Ilow
s ∧ Ft > Fp
}.
8: fin Para
9: Elegir el par de multiplicadores de Lagrange, {up, uq}− o {up, uq}+, con mınimo
valor −b2pq
2apqentre ambas clases.
10: Calcular{unew,clippedp , unew,clipped
q
}.
11: Actualizar Fl, ∀l ∈ I.
12: Encontrar el nuevo βlows y el nuevo βup
s para cada clase.
13: fin Mientras
Otras tecnicas adicionales suelen utilizarse para mejorar aun mas el tiempo de ejecu-
cion del algoritmo. Entre estas se encuentran [Joa99]: el uso de caches para almacenar
los valores de productos de Kernel que mas habitualmente se requieren; el cooling de
la tolerancia para acelerar la convergencia del algoritmo en las primeras iteraciones del
entrenamiento; y el shrinking del set de entrenamiento, para descartar (en iteracio-
nes intermedias y finales del proceso) ejemplos del problema que muestran suficiente
evidencia como para asumir que no formaran parte de la solucion final del problema.
Adicionalmente a estas tecnicas, ultimamente se han empezado a emplear tecnicas es-
tadısticas de entrenamiento que independizan el numero de ejemplos necesarios para
entrenar a la SVM del tamano total que tiene el conjunto de entrenamiento [FGL+10],
permitiendo una mejor escalabilidad a costa de una pequena y controlada perdida en
precision.
31
Capıtulo 3
Propuesta
Como se menciono anteriormente, el problema principal de la AD-SVM es que no
cuenta con un algoritmo de entrenamiento apropiado que escale bien en tiempo de
entrenamiento y en recursos de memoria.
En la subseccion 2.2.3 se mostro la estructura de la AD-SVM, la cual es muy similar
al de la µ-SVM (ver subseccion 2.1.4). Si bien, no es posible utilizar directamente el
algoritmo SMO de la µ-SVM, la semejanza entre las maquinas invita a pensar que
es posible disenar un solver con caracterısticas y estructura parcidas a las del SMO
binario.
De ser posible la implementacion de dicho algoritmo, se estima que este serıa capaz
de hacer a la AD-SVM competitiva frente a otras maquinas de clasificacion multi-
categorıa (ya sean mono o multi-objetivo) en cuanto a tiempo de ejecucion y utilizacion
de recursos.
3.1. Objetivos de la Tesis
Los objetivos generales de este trabajo consisten en I) generar un solver (algoritmo
de entrenamiento) tipo SMO para la AD-SVM1 y II) en comparar el rendimiento de
dicho solver propuesto, en cuanto a tiempo de ejecucion y error de generalizacion, con
otras tecnicas para clasificacion multi-categorıas que se utilizan en la actualidad.
1Se han enumerado deliberadamente los objetivos de la tesis para hacer un seguimiento mas facilde su cobertura en la seccion 5.1.
32
Mas especıficamente, una vez implementado el algoritmo, se busca 1) probar dife-
rentes heurısticas para la seleccion de los multiplicadores de Lagrange del solver tipo
SMO a disenar y 2) evaluar su convergencia empırica, analizando para esto distintas
condiciones.
Tambien se desea que 3) la AD-SVM entrenada con el solver tipo SMO conside-
rablemente mas rapida que cuando se ejecuta con el solver utilizado actualmente, sin
perder en el proceso mucha precision en la clasificacion de los datos. Dicho algorit-
mo es una implementacion en C++ con interfaz a traves de MATLAB del algoritmo
descrito en [CL96]. A modo de referencia, el entrenamiento de la AD-SVM se demora
actualmente alrededor de 400 segundos para problemas que contienen 528 ejemplos de
10 caracterısticas cada uno en computadores con iguales caracterısticas a los descritos
en el punto 1 de la subseccion 4.1.
Con respecto al punto anterior, tambien se necesita que 4) el solver a disenar tenga
una escalabilidad en el uso de memoria mejor que el solver usado actualmente, el cual
es incapaz de abordar problemas con mas de 1000 elementos
Dentro del estudio comparativo descrito en el objetivo II, 5) se requiere implemen-
tar o reutilizar otras SVMs multi-categorıas que controlen el error de entrenamiento
explıcitamente (como la propuesta en [CS01]) para comparar sus desempenos con los
de la AD-SVM en problemas de benchmarks frecuentemente utilizados para este tipo
de maquinas [BM98].
3.2. Diseno del Algoritmo
Para generar un solver para la AD-SVM que sea similar en estructura y funcio-
namiento al SMO utilizado por las SVMs binarias, dicho solver debe cumplir con las
siguientes condiciones:
1. Debe tener un criterio de termino que permita verificar cuando el entrena-
miento ha llegado a la solucion optima (o cercana al optimo).
2. Debe existir un paso de optimizacion (posiblemente analıtico) capaz de modifi-
car eficientemente un subconjunto de variables ul en cada paso del entrenamiento.
33
3. Debe haber una estrategia de seleccion (heurıstica o exacta) que escoja el
subconjunto de variables ul a optimizar en cada paso, tal que la convergencia
hacia la solucion optima sea la maxima posible o muy cercana a dicho maximo.
4. Debe haber un sistema de actualizacion que actualice los valores involucrados
en la seleccion y optimizacion del subconjunto de variables optimizados al final
de cada paso de entrenamiento en un tiempo razonable.
Todos estos elementos finalmente deben ser organizados en un algoritmo que los
utilice para llevar a cabo el entrenamiento de la AD-SVM. En esta seccion se iran
presentando cada uno de estos elementos, con la derivacion que justifica su diseno.
3.2.1. Criterio de Termino: KKT-conditions para la AD-SVM
Como decıamos anteriormente en la subseccion 2.3.3, las KKT-conditions juegan un
papel importante en la determinacion del criterio de termino de un algoritmo tipo SMO.
Para encontrar las KKT-conditions de la AD-SVM necesitamos generar el Langragiano
de nuestra funcion objetivo D(u), el cual consiste de la misma funcion (2.2.11) menos
todas las restricciones de igualdad (2.2.12) y desigualdad (2.2.13), cada una de estas
multiplicada por una variable nueva:
L =1
4
∑i∈I
∑j∈I
uikijuj +∑i∈I
ηi (ui − µ)−∑i∈I
δiui −K∑r=1
βr
(∑i∈Ir
ui − 1
), (3.2.1)
donde las nuevas variables ηi ≥ 0, δi ≥ 0 y βr (para i ∈ {1, . . . ,m} y r ∈ {1, . . . , K})son los multiplicadores KKT2. Como la funcion objetivo es convexa, las KKT conditions
son necesarias y tambien suficientes para verificar optimalidad. Esto quiere decir que
u es la solucion de (2.2.11) si y solo si existen valores para los multiplicadores ηl ≥ 0,
2Notese que las variables asociadas a restricciones de desigualdad deben tener valores mayores oiguales a cero, mientras que los multiplicadores asociados a restricciones de igualdad pueden adquirircualquier valor real.
34
δl ≥ 0 y βs tal que, ∀l ∈ I y ∀s : l ∈ Is, tenemos:
∇lL =1
2
∑j∈I
ujklj + ηl − δl − βs = 0, (3.2.2)
sujeto a: 0 ≤ ul ≤ µ,∑i∈Is
ui = 1, (3.2.3)
ηl (ul − µ) = 0, δlul = 0, (3.2.4)
ηl ≥ 0, δl ≥ 0, βs ∈ R. (3.2.5)
La ecuacion (3.2.2) es la derivada de L con respecto al multiplicador de Lagrange ul.
Las dos condiciones en (3.2.3) son las restricciones del problema mostrado en (2.2.11)).
Las condiciones en (3.2.4) expresan la idea de que un multiplicador de Lagrange es
no-nulo solo cuando la restriccion que controla “empuja” o efectivamente restringe a la
solucion. Estas son usualmente llamadas condiciones de la brecha KKT desvaneciente.
Las condiciones en (3.2.5) provienen de la definicion de L. Notese que estas KKT
conditions implican que:
ul = 0 : ηl = 0, δl ≥ 0, Fl − βs ≥ 0,
ul = µ : ηl ≥ 0, δl = 0, Fl − βs ≤ 0,
0 < ul < µ : ηl = 0, δl = 0, Fl − βs = 0,
donde Fl =1
2
∑j∈I
ujklj.
El valor Fl puede ser visto como el gradiente de la funcion objetivo con respecto a
ul. Aquı usamos deliberadamente Fl para diferenciarlo de los valores Fl involucrados
en el algoritmo SMO de la µ-SVM. Ası, las KKT-conditions para la AD-SVM pueden
resumirse en:
ul = 0 ⇒ Fl − βs ≥ 0, (3.2.6)
ul = µ ⇒ Fl − βs ≤ 0, (3.2.7)
0 < ul < µ ⇒ Fl − βs = 0. (3.2.8)
Ahora podemos formar el siguiente subconjunto de ındices para cada clase s ∈ {1, · · · , K},
35
en funcion de los valores que van tomando los distintos ul a lo largo del entrenamiento:
I0s = {l : 0 < ul < µ ∧ l ∈ Is} , (3.2.9)
I1s = {l : ul = 0 ∧ l ∈ Is} , (3.2.10)
I2s = {l : ul = µ ∧ l ∈ Is} . (3.2.11)
Las KKT-conditions pueden ser convenientemente reescritas (siempre con el fin de
buscar formas eficientes para verificar optimalidad):
∃βs :
∀l ∈ Iups = I0
s ∪ I1s, Fl ≥ βs, (3.2.12)
∀l ∈ Ilows = I0
s ∪ I2s, Fl ≤ βs. (3.2.13)
Notese que, si todas las KKT-conditions son cumplidas, el menor valor Fl asociado al
subconjunto de ındices Iups sera mayor o por lo menos igual al mayor valor Fl asociado
al subconjunto de ındices Ilows , para toda clase s del problema. Siguiendo esta idea,
definimos:
βups = mın {Fl : l ∈ Iup
s } , (3.2.14)
βlows = max
{Fl : l ∈ Ilow
s
}. (3.2.15)
De esta forma, podemos afirmar que todas las KKT-conditions son satisfechas (verifi-
cando ası optimalidad) si y solo si [KSMB01]:
βlows ≤ βup
s , ∀s ∈ {1, . . . , K} . (3.2.16)
Tambien podemos normalizar estas desigualdades, para ası poder comparar entre las
distintas clases y ver cual es la que esta violando la condicion de termino en mayor
medida:
(βups − βlow
s )/βlows ≥ 0 , ∀s ∈ {1, . . . , K} . (3.2.17)
36
Como no siempre es posible alcanzar optimalidad (debido a limitantes de computo
aritmetico y otros problemas de orden numerico), se suele utilizar una tolerancia τ defi-
nida por el usuario [Pla99]. Si es bien definida, el uso de esta tolerancia puede permitir
una convergencia mas rapida a cambio de sacrificar una leve perdida en precision. De
esta forma, decimos que hemos logrado alcanzar una optimalidad τ -tolerante si:
βlows /βlow
s − τ ≤ βups /β
lows + τ, (3.2.18)
βlows /βlow
s ≤ βups /β
lows + 2τ, (3.2.19)
(βlows − βup
s )/βlows ≤ 2τ, ∀s. (3.2.20)
3.2.2. Derivacion del Paso de Optimizacion
Uno de los pilares del algoritmo SMO es su paso de optimizacion analıtico, el cual
permite resolver una gran cantidad de problemas pequenos en un tiempo reducido
de ejecucion. Para el paso analogo del solver de la AD-SVM, necesitamos derivar un
paso de optimizacion similar. Siguiendo la estrategia utilizada en los casos binarios,
derivaremos este paso solucionando el problema de optimizacion solamente para dos
de los multiplicadores de Lagrange, up y uq (que, como se vera mas adelante, deben
pertenecer a la misma clase), dejando al resto con su valor fijo (constante) en el proceso:
minimizar{up,uq} D(up, uq) =1
4
∑i,j∈I
uiujkij
=1
4u2pkpp +
1
4u2qkqq +
1
4upuqkpq +
1
4uqupkqp
+1
4
∑i∈I/{p,q}
uiupkip +1
4
∑j∈I/{p,q}
upujkpj
+1
4
∑i∈I/{p,q}
uiuqkiq +1
4
∑j∈I/{p,q}
uqujkqj +1
4
∑i,j∈I/{p,q}
uiujkij (3.2.21)
37
=1
4u2pkpp +
1
4u2qkqq +
1
2upuqkpq
+1
2up ·
∑j∈I/{p,q}
ujkpj +1
2uq ·
∑j∈I/{p,q}
ujkqj + Ψconst. (3.2.22)
sujeto a∑i∈Ij
ui = 1 ∀j, 0 ≤ ui ≤ µ ∀i
Realizar el paso de (3.2.21) a (3.2.22) es seguro debido a que las funciones de Kernel con
las que trabajamos cumplen con la igualdad K (xi,xj) = K (xj,xi). Las restricciones
tambien pueden ser reescritas en funcion de estos dos multiplicadores:
∑i∈Ir
ui = 1
⇐⇒ up + uq +∑
i∈Ir/{p,q}
ui = 1
⇐⇒ up + uq = 1−∑
i∈Ir/{p,q}
ui
⇐⇒ up + uq = ψ (3.2.23)
Notese que en (3.2.23) solamente se involucran los multiplicadores que pertenecen a
la misma clase que up y uq. Ademas, de forma implıcita se establece que up y uq
pertenecen a la misma clase. Esto se debe principalmente a la restriccion (2.2.12). Si,
por ejemplo, se eligieran los dos multiplicadores de forma que pertenecieran a distintas
clases y se modificaran sus valores, entonces para una de las clases, la sumatoria de
todos sus multiplicadores valdrıa menos que 1, mentras que en la otra clase valdrıa mas.
La unica forma de corregir este desbalance en un solo paso serıa alterar el valor de otros
dos multiplicadores en el mismo paso. Para este tipo de procedimiento se tendrıa que
realizar un paso de optimizacion que involucrarıa a 4 multiplicadores simultaneamente,
lo cual se escapa del contexto de este procedimiento.
Usando (3.2.23) podemos reemplazar todas las ocurrencias de up en (2.2.12) con
ψ − uq. Ası, toda la funcion objetivo puede ser computada solamente en terminos de
38
uq:
minimizar{uq} D(uq, ψ − uq) =1
4(ψ − uq)2 kpp +
1
4u2qkqq +
1
2(ψ − uq)uqkpq
+1
2(ψ − uq) ·
∑j∈I/{p,q}
ujkpj +1
2uq ·
∑i∈I/{p,q}
uikqi + Ψconst. (3.2.24)
Dada la naturaleza del problema, la optimalidad se alcanza si:
∂D(uq, ψ − uq)∂uq
= ∇qD = 0 ∧ ∂2D(uq, ψ − uq)∂u2
q
= ∇2qD > 0
Desarrollando ∇qD obtenemos:
∇qD =1
2
((−1) (ψ − uq) kpp + uqkqq + (ψ − uq) kpq − uqkpq
)− 1
2
∑j∈I/{p,q}
ujkpj +1
2
∑i∈I/{p,q}
uikqi + 0
=1
2
(uq(kpp − 2kpq + kqq
)− ψ
(kpp − kpq
))− 1
2
∑j∈I/{p,q}
ujkpj +1
2
∑i∈I/{p,q}
uikqi (3.2.25)
Y por su parte, ∇2qD queda:
∇2qD =
1
2
(kpp − 2kpq + kqq
)(3.2.26)
Reemplazando (3.2.26) en (3.2.25) y resolviendo para uq cuando ∇qD = 0, tenemos:
uq∇2qD−
1
2ψ(kpp − kpq
)− 1
2
∑j∈I/{p,q}
ujkpj +1
2
∑i∈I/{p,q}
uikqi = 0
uq∇2qD =
1
2ψ(kpp − kpq
)+
1
2
∑j∈I/{p,q}
ujkpj −1
2
∑i∈I/{p,q}
uikqi
unewq =
2−1
∇2qD
ψ (kpp − kpq)
+∑
j∈I/{p,q}
ujkpj −∑
i∈I/{p,q}
uikqi
(3.2.27)
En (3.2.27) introducimos el termino unewq para denotar el valor del multiplicador uq
despues del paso de optimizacion en curso. De aquı en adelante, tambien utilizaremos
uoldq para denotar el valor uq previo al paso de optimizacion. Ahora podemos sumar y
restar el antiguo valor de uq en el lado izquierdo de la ecuacion (3.2.27):
unewq =uold
q +2−1
∇2qD
ψ (kpp − kpq)
+∑
j∈I/{p,q}
ujkpj −∑
i∈I/{p,q}
uikqi
− uoldq (3.2.28)
39
Si solamente nos concentramos en el numerador de la fraccion de (3.2.28) y agregamos
el termino(−uold
q
)en este, obtenemos:
ψ(kpp − kpq
)+
∑j∈I/{p,q}
ujkpj −∑
i∈I/{p,q}
uikqi − 2uoldq ∇2
qD
= ψ(kpp − kpq
)+
∑j∈I/{p,q}
ujkpj −∑
i∈I/{p,q}
uikqi − uoldq
(kpp − 2kpq + kqq
)= − 2∇qD,
simplificando ası la ecuacion (3.2.28) a:
unewq = uold
q −∇qD
∇2qD
(3.2.29)
Esto concuerda con el metodo de Newton utilizado en optimizacion para la busqueda
de mınimos y maximos, lo cual puede ser relevante en analisis de convergencia. Ex-
pandiendo ψ = uoldp + uold
q en la ecuacion de 2∇qD, esta se puede desarrollar en mayor
profundidad para obtener una formulacion mas compacta y practica de (3.2.28):
2∇qD = uoldq
(kpp − 2kpq + kqq
)−(uoldp + uold
q
) (kpp − kpq
)−
∑j∈I/{p,q}
ujkpj +∑
i∈I/{p,q}
uikqi
=
uoldq kqq + uold
p kpq +∑
i∈I/{p,q}
uikqi
−
uoldp kpp + uold
q kpq +∑
j∈I/{p,q}
ujkpj
=∑i∈I
uikqi −∑j∈I
ujkpj = Fq − Fp
⇒ unewq = uold
q −Fq − Fp
kpp − 2kpq + kqq(3.2.30)
Ahora todos los valores necesarios para calcular unewq son facilmente distinguibles. Adi-
cionalmente, y como se vera en las proximas subsecciones, todos estos valores estaran
disponibles antes siquiera de calcular unewq debido a que estan involucrados en el proce-
so de seleccion. Al igual que con un SMO binario (ver ecuacion (2.3.9)), unewq necesita
40
ser truncado para cumplir con las restricciones de frontera impuestas por las restric-
ciones (2.2.12), (2.2.13) y (3.2.23):
unew,clippedq =
L, si unew
q ≤ L
unewq , si L < unew
q < H
H, si unewq ≥ H
(3.2.31)
donde L = max {0, (ψ − µ)} , (3.2.32)
H = mın {ψ, µ} . (3.2.33)
Despues de esto, unewp puede ser facilmente calculado:
unewp = ψ − unew,clipped
q (3.2.34)
3.2.3. Estrategias de Seleccion
Mientras no se haya llegado a la solucion (τ -tolerante) optima, el algoritmo se-
guira buscando en cada paso un par de multiplicadores de Lagrange que esten ac-
tualmente violando las KKT-conditions y optimizar sus valores para acercarnos al
optimo, hasta que ya no existan mas pares violadores. Como comentabamos en la
subseccion 2.3.3, lo ideal es elegir en cada paso el par de ındices que maximicen el
acercamiento de nuestra solucion actual al optimo. Es mas, si el par violador que se
selecciona en cada iteracion no cumple ciertas condiciones mınimas, la convergencia del
algoritmo no puede ser asegurada [CFL06].
Siguiendo la idea propuesta por Chen et al [FCL05, CFL06], trataremos de encon-
trar una pequena modificacion d para nuestro vector de multiplicadores de Lagrange
u que maximice la taza de convergencia de D(u) al optimo. Para esto, consideraremos
que nuestro nuevo vector unew = u + d producira una alteracion equivalente a una
aproximacion de segundo orden de nuestra funcion objetivo D(u):
D(unew) = D(u + d) = D(u) +∇D(u)Td + dT∇2D(u)d (3.2.35)
⇒ D(u + d)−D(u) = ∇D(u)Td + dT∇2D(u)d (3.2.36)
41
Dada la naturaleza de nuestro solver, el vector d debe cumplir con ciertas restricciones:
Primero, como estamos modificando solo dos ındices en cada paso, todos los elementos
de d deben valer cero, excepto por dos elementos, dp y dq; Segundo, como el nuevo
vector unew debe cumplir con la restriccion (2.2.12), tanto p como q deben ser ındices
pertenecientes a la misma clase y dp = −dq; Tercero, el nuevo vector unew tambien debe
preocuparse de la restriccion de frontera (2.2.13), pero como lo vimos en la seccion an-
terior, esta parte es cubierta por la etapa de truncamiento realizada en el paso descrito
en (3.2.31). O sea, el vector d nos indicara cual es el par de multiplicadores de Lagrange
ideal a ser optimizado, pero no nos dira en que cantidades deben ser modificados sus
valores. Con esto en mente, debemos solucionar el siguiente subproblema:
minimizar{d}D(d) = ∇D(u)Td + dT∇2D(u)d
= (Fpdp + Fqdq) +1
2
(d2pkpp + 2dpdqkpq + d2
qkqq)
(3.2.37)
sujeto a #|d : di 6= 0| = 2, (3.2.38)
y si dp 6= 0 ∧ dq 6= 0, p ∈ Ir, q ∈ Is
entonces dp = −dq ∧ r = s. (3.2.39)
Usando la igualdad dp = −dq para reemplazar a dp por −dq en (3.2.37), obtenemos
que:
D(dq,−dq) = (Fqdq − Fpdq) +1
2
(d2qkpp − 2d2
pkpq + d2qkqq
)= dq (Fq − Fp) +
1
2d2q
(kpp − 2kpq + kqq
),
∇dqD(dq,−dq) = (Fq − Fp) + dq(kpp − 2kpq + kqq
),
∇2dqD(dq,−dq) = kpp − 2kpq + kqq. (3.2.40)
Si estamos usando un Kernel positivo semi-definido y tenemos que los ejemplos xp
y xq no son iguales, sabemos entonces que (3.2.40) es estrictamente positivo. Ası, si
igualamos ∇dqD(dq,−dq) a cero y despejamos el valor de dq, entonces obtendremos el
42
valor en donde D(dq,−dq) es mınimo:
∇dqD(dq,−dq) = (Fq − Fp) + dq(kpp − 2kpq + kqq
)= 0
⇒ dq(kpp − 2kpq + kqq
)= − (Fq − Fp)
⇒ dq =− (Fq − Fp)(
kpp − 2kpq + kqq) (3.2.41)
∴ D(dq,−dq) =− (Fq − Fp)
2
2(kpp − 2kpq + kqq
) . (3.2.42)
Con esta informacion a nuestra disposicion, podemos buscar por cada clase el par {p, q}rque minimice (3.2.42) y quedarnos con el de la clase que tenga genere el menor valor. Sin
embargo, para esto tenemos que realizar una busqueda del orden deK∑r=1
mr · (mr − 1)
revisiones. Si consideramos un problema en donde todas las clases tienen el mismo
numero de elementos, tendrıamos K · (m/K) · (m/K − 1) = m · (m/K − 1), lo cual
es algo menor que las m(m − 1) revisiones que se deben hacer en el caso binario
de la C-SVM, pero esta operacion de todas formas tiene un crecimiento cuadratico
con respecto a m. Para evitar que esta revision aumente el tiempo de ejecucion del
algoritmo, aquı propondremos una heurıstica similar a la propuesta por Chen et al
en [FCL05, CFL06], la cual consiste en elegir p : Fp = βups y luego buscar q tal que:
q = arg mınt
{−b2pt
2apt, t ∈ Ilow
s ∧ Ft > Fp
}(3.2.43)
donde apt = kpp − 2kpt + ktt, bpt = Ft − Fp (3.2.44)
Con esto, reducimos el numero de revisiones aK∑r=1
mr, lo que para un problema de
clases balanceadas equivale a K · m/K = m. Notese que se puede llevar a cabo una
estrategia similar eligiendo p : Fp = βlows . Notese tambien que los terminos apt y bpt
son los mismos empleados en el calculo de los nuevos valores de los multiplicadores de
Lagrange en el paso (3.2.30), por lo que una vez encontrado el par {p, q}r a optimizar,
no es necesario recalcular estos valores.
En [FCL05, CFL06], Chen et al extendieron la aplicacion de esta estrategia de
seleccion para casos en los que se utilizan funciones de Kernel simetrico que no son ne-
cesariamente semi-definidos positivos, por lo que pueden generar valores para apt que
43
son menores que (o iguales a) cero. Para las SVMs binarias, demostraron que basta
reemplazar dicho valor por apt = ς, donde ς tiene un valor positivo considerablemente
pequeno (0 < ς � 1). Hemos probado esta estrategia en problemas que presentan
distintos ejemplos con identicas caracterısticas (o sea xp ≡ xt, lo que genera apt = 0),
encontrando la solucion optima sin inconvenientes, pero no hemos extendido la demos-
tracion formal para validar que dicha estrategia sirve en todos los casos demostrados
ya para las SVMs binarias.
3.2.4. Sistema de Actualizacion
Al igual que en el caso binario, una vez alterados los valores de los dos multiplica-
dores de Lagrange, up y uq, que se requerıan optimizar, se hace necesario actualizar los
valores Fl’s, ya sea para verificar si se ha llegado a la solucion optima (y para entonces
calcular los valores de los distintos wr, br y ρr necesarios en la clasificacion de nue-
vos patrones) o para continuar buscando nuevos multiplicadores que optimizar. Este
calculo se puede realizar en base a los nuevos y viejos valores de up y uq:
Fnewl = Fold
l +(unew,clippedp − uold
p
)· kpl
2+(unew,clippedq − uold
q
)· kql
2(3.2.45)
3.2.5. Algoritmo SMO para la AD-SVM
Teniendo todos los componentes de nuestro solver definidos, podemos ordenarlos
en un algoritmo iterativo para realizar el entrenamiento de la AD-SVM, como el que
se muestra en el algoritmo 2.
Hay que considerar que el algoritmo 2 es bastante general. El algoritmo que se
implemento para realizar los experimentos (disponible en [Can]) tiene un esquema al-
go mas complejo, que utiliza ciclos internos y externos similares a los propuestos por
Platt en [Pla99], descritos brevemente al final de la subseccion 2.3.3. Adicionalmente,
el algoritmo implementado tambien cuenta con un cache para almacenar productos de
Kernel ya calculados, que tiene un tamano definible por el usuario. Este cache sigue el
esquema LRU (Least Recently Used), el cual descarta los elementos que menos reciente-
mente se han utilizado cuando ya no queda espacio para almacenar nuevos elementos.
44
Algoritmo 2 Ejemplo de Algoritmo SMO para la AD-SVM
1: Inicializar u satisfaciendo las restricciones (2.2.12) y (2.2.13).
2: Calcular Ft, ∀t ∈ I.
3: Encontrar βlowr y βup
r para cada clase r ∈ {1, . . . , K}.4: Mientras (βlow
r − βupr )/βlow
r > 2τ por lo menos para un r ∈ {1, . . . , K} , hacer
5: Para cada clase r ∈ {1, . . . , K} hacer
6: Seleccionar i : Fi = βupr .
7: Seleccionar j = arg mınt
{− b2
it
2ait, t ∈ Ilow
r ∧ Ft > Fi
}.
8: fin Para
9: Elegir el par de multiplicadores de Lagrange {ui, uj}r con valor mınimo −b2ij
2aijentre todas las clases r ∈ {1, . . . , K}.
10: Calcular{unew,clippedi , unew,clipped
j
}.
11: Actualizar Ft, ∀t ∈ I.
12: Encontrar el nuevo βlowr y el nuevo βup
r para cada clase r ∈ {1, . . . , K}.13: fin Mientras
45
Capıtulo 4
Experimentos y Resultados
En este capıtulo se describen los experimentos realizados durante el desarrollo de
la tesis: que datos se utilizaron, de donde se obtuvieron o como fueron generados; en
que consistieron los experimentos, como se disenaron, con que proposito y que resulta-
dos se obtuvieron de ellos.
4.1. Recursos
Para los experimentos, se dispuso de dos equipos:
1. Un computador con 8 nucleos de 2.00GHz cada uno y con 20GB de memoria
RAM, con sistema operativo CentOS Linux 5.2 (kernel 2.6.18).
2. Un computador con 2 nucleos de 1.83GHz cada uno y con 2GB de memoria RAM,
con sistema operativo Arch Linux (kernel 2.6.35).
Para compilar los programas utilizados se empleo el compilador GCC version 4.5.1.
Para todos los experimentos se utilizo un solo procesador a la vez (no se utilizaron
algoritmos paralelos). Nunca se corrieron mas de 7 experimentos a la vez en el caso de
la primera maquina, ni mas de 1 experimento a la vez en el caso de la segunda, para no
sobrecargar los computadores y obtener tiempos de ejecucion mayores a los esperados.
Solamente en los experimentos descritos en la subseccion 4.5.1 se utilizo la segunda
maquina. En el resto de los experimentos, se utilizo la maquina de 8 nucleos.
46
4.2. Bases de Datos Utilizadas
A lo largo de los experimentos, se utilizaron conjuntos de datos de distintos pro-
blemas de clasificacion. La mayorıa de ellos se obtuvieron a partir de bases de datos
publicas, mientras que otros se generaron a partir de muestreos de algunos de los
conjuntos originales. La tabla 4.1 muestra una descripcion de los conjuntos de datos
originales utilizados.
Problema n m K (n×m) test
Iris 4 150 3 600 30
Wine 13 178 3 2314 36
Soybean small 35 47 4 1645 9
Waveform v.2 40 (no) 3 (no) (no)
Ecoli 8 336 9 2688 66
Glass 9 214 6 1926 (no)
Vowel 10 528 11 5280 462
Satimage 36 4435 6 159660 2000
USPS 256 7291 10 1866496 2007
Letter 16 16008 26 256128 3992
Shuttle 9 43500 7 391500 14500
MNIST 784 60000 10 3920000 10000
Tabla 4.1 – Conjuntos de datos Originales
Siguiendo la nomenclatura usada hasta el momento, n corresponde al numero de
caracterısticas que tienen los ejemplos de un problema dado, m viene a ser el numero
total de ejemplos de entrenamiento del problema, K es el numero de clases y test
corresponde al numero de ejemplos que tiene el conjunto de prueba con el que viene cada
problema. El valor (n×m) puede considerarse como el tamano del problema, y si bien
hay muchos mas factores que determinan que tan difıcil es resolver el entrenamiento
de un problema dado (como el desbalance de las clases, el ruido de los ejemplos o la
disposicion de los datos en el espacio caracterıstico), esta medida da una primera idea
de cual de los problemas podrıa tomar mas tiempo en ser resuelto.
47
Tanto el conjunto de datos USPS [Hul94] como el conjunto MNIST [BM98] fueron
obtenidos desde el sitio [CL01a] con los escalamientos provistos ahı.
Los conjuntos de datos Ecoli, Iris, Letter, Satimage, Shuttle, Soybean small, Vowel
y Wine fueron descargados desde el sitio [BM98]. A los datos de entrenamiento de
estos problemas se les realizo una normalizacion para que las medias y desviaciones
estandar de cada una de sus caracterısticas fuera de 0 y 1 respectivamente. Esta misma
normalizacion se le aplico a los conjuntos de prueba. Notese que la normalizacion
aplicada a los conjuntos de prueba podrıa generar medias y desviaciones estandar no
necesariamente iguales a 0 y 1.
El conjunto de datos Glass tambien fue obtenido desde el sitio [BM98]. Sin embargo,
su normalizacion se realizo en funcion de la moda de cada caracterıstica y no en funcion
de la media, para ası dejar una mayor cantidad de elementos en los vectores con valor
igual a cero. Como se puede apreciar en la tabla, este problema no tiene un conjunto
de datos de prueba por separado. A modo de sustituto para el conjunto de prueba, en
este caso se utilizo una validacion cruzada con separacion de 5 segmentos (80 % para
entrenamiento - 20 % para prueba) utilizando la totalidad del conjunto original1.
Problema n m K (n×m) test
Waveform41 40 300 3 12000 100
Shuttle small 9 5000 7 45000 9005
Letter small 16 5000 26 80000 3992
MNIST small 784 5000 10 3920000 10000
Tabla 4.2 – Conjuntos de datos Modificados usados en los experimentos
Como se vera mas adelante, no todos los conjuntos de datos listados en la tabla 4.1
son utilizados en los experimentos. Algunos de estos conjuntos de datos son usados para
generar otros mas pequenos a traves de muestreos. Especıficamente, estos conjuntos
son Shuttle, Letter y MNIST. En los casos de los problemas Shuttle y Letter, tanto
sus muestreos como sus conjuntos originales son utilizados. Sin embargo en el caso de
1Tanto en los conjuntos generados para esta validacion cruzada como para los generados en valida-ciones cruzadas de otros experimentos, se trato de mantener la misma proporcion entre los tamanosde las clases que se apreciaba en el conjunto original, dejando por lo menos un ejemplo por clase enlos conjuntos de entrenamiento cuando la proporcion requerıa menos de uno.
48
MNIST, solo su muestreo participan de los experimentos. En la tabla 4.2 se lista el
nombre de los muestreos realizados con una descripcion equivalente a la realizada en
la tabla 4.1. Los tres muestreos generados de esta manera mantienen los escalamientos
y las normalizaciones que se les realizaron a los conjuntos originales. No se aplicaron
tratamientos adicionales sobre estos.
En el caso del problema Waveform, no se trata de un conjunto de datos como
tal, sino de un generador de conjuntos (Waveform Database Generator - Version 2, el
cual tambien puede descargarse desde [BM98]). Este generador se utilizo para crear un
conjunto de datos de 300 ejemplos de entrenamiento y un conjunto de 100 ejemplos de
prueba. Los datos de los ejemplos de entrenamiento tambien fueron normalizados para
que sus medias y desviaciones estandar fueran iguales a 0 y 1. El conjunto de datos
generado esta listado en la tabla 4.2 como Waveform41.
Problema n m K (n×m) test
MNIST 0.54 % 784 323 10 253232 60
MNIST 0.95 % 784 567 10 444528 100
MNIST 1.01 % 784 606 10 475104 105
MNIST 1.68 % 784 1006 10 788704 171
MNIST 1.79 % 784 1074 10 842016 183
MNIST 3.18 % 784 1906 10 1494304 322
MNIST 2.98 % 784 1787 10 1401008 301
MNIST 5.28 % 784 3167 10 2482928 533
MNIST 5.64 % 784 3383 10 2652272 567
MNIST 9.38 % 784 5627 10 4411568 942
MNIST 10.01 % 784 6006 10 4708704 1004
MNIST 16.68 % 784 10007 10 7845488 1673
MNIST 17.80 % 784 10678 10 8371552 1783
MNIST 31.64 % 784 18982 10 14881888 3170
Tabla 4.3 – Muestreos de Conjuntos de datos provenientes del problema MNIST.
Como se vera en la subseccion 4.4.3, se realizaron experimentos para analizar el com-
portamiento del algoritmo propuesto a medida que el tamano del problema aumenta.
49
Para estos experimentos, los conjuntos de datos utilizados consisten en muestreos de
distintos tamanos del problema MNIST. En la tabla 4.3 se listan los distintos muestreos
generados.
4.3. Estrategias de Seleccion
Como se explico en las subsecciones 2.3.3 y 3.2.3, en la actualidad son dos las
principales tecnicas de seleccion que existen para elegir a los multiplicadores de La-
grange que son optimizados en cada paso. La primera (propuesta por Keerthi et al
en [KSMB01, KG02]), consiste en utilizar el par maximo violador como candidato en
cada paso. La segunda (propuesta por Chen et al en [FCL05, CFL06]) consiste en elegir
el par de multiplicadores utilizando la informacion de segundo orden provista por la
funcion objetivo.
Para decidir cual de las dos tecnicas es mas adecuada para entrenar a la AD-SVM, se
probo el desempeno de ambas en cuanto a precision de clasificacion sobre los conjuntos
de pruebas y tiempo de entrenamiento. Los conjuntos de datos utilizados para esto
fueron Iris, Wine, Soybean small, Waveform41, Ecoli, Vowel, Satimage, Shuttle small,
Letter small, MNIST small y USPS. Se empleo una funcion de Kernel Gaussiana de la
forma K(xj,xj) = e(−‖xi−xj‖2/σ2), con parametro σ.
Para los problemas Iris, Wine, Soybean small, Waveform41 y Ecoli se utilizaron los
valores de los parametros σ y µ provistos por la publicacion [NCA+09]. Para determinar
el valor optimo de los parametros σ y µ en los problemas Vowel, Satimage, Shuttle
small, Letter small, MNIST small y USPS, se realizo una busqueda grillada usando
validacion cruzada con separacion de 10 segmentos sobre el conjunto de prueba (90 %
para entrenamiento - 10 % para prueba) para los conjuntos Vowel, Satimage, Shuttle
small, Letter small y MNIST small y con separacion de 5 segmentos para el caso de la
USPS (80 % para entrenamiento - 20 % para prueba).
Los valores probados consisten en una grilla logarıtmica de base 2:
σ ∈{
2−4/2, 2−3/2, . . . , 29/2, 210/2}, (4.3.1)
µ ∈{
1, 2−(1·log2(ms)/14), . . . , 2−(13·log2(ms)/14), 2−(14·log2(ms)/14)}. (4.3.2)
50
Donde ms es el tamano de la clase mas pequena de entre todos los conjuntos de en-
trenamiento generados para las validaciones cruzadas de un mismo problema. Los po-
sibles valores de µ cubiertos obedecen a la observacion de que valores menores que
2−(14·log2(ms)/14) = 1/ms llevan a un problema de optimizacion irresoluble, mientras
que valores mayores que 1 no cambian el espacio resoluble del problema (la solucion a
la que se llega con cualquier valor µ > 1 sigue siendo la misma que aquella encontrada
con µ = 1).
0
20
40
60
80
100
iriswine
soybean−small
waveform41
ecolivowel
satimage
shuttle−small
letter−small
mnist−sm
all
usps
Porc
enta
ge d
e P
recis
ión
K=CK=C
K=C K=C
K=C
K<C
K<C
K<C
K>C K<C
K=C
Keerthi et alChen et al
Figura 4.1 – Comparacion de Resultados de los experimentos Keerthi et al v/s Chen
et al en cuanto a Precision de Clasificacion sobre el conjunto de prueba.
En todos los experimentos, la tolerancia utilizada fue de 0.001 y el tamano del
cache empleado fue el mismo para ambos algoritmos. Como en los problemas de menor
tamano el tiempo de ejecucion se hacıa muy corto, se utilizo la medida de Numero de
Kernel Calls2 (Llamadas de Kernel) para comparar los tiempos de entrenamiento. En
la tabla 4.4 se muestran los resultados de los experimentos.
Como se puede apreciar de la tabla de resultados 4.4 y del grafico 4.1, en la mayorıa
2El Numero de Kernel Calls cuenta cada vez que un producto kij es usado en el algoritmo, ya seasi se esta calculando en el momento o si se obtiene a partir del cache.
51
Problema E. Selec. σ & µ Prec. % NoKernel Calls Tiempo E.
Iris Keerthi σ = 0.7 100 7.23× 104 0.05 secs
ms = 8 Chen µ = 1 100 7.63× 104 0.05 secs
Wine Keerthi σ = 4 97.22 8.96× 104 0.08 secs
ms = 43 Chen µ = 1 97.22 8.90× 104 0.08 secs
Soybean small Keerthi σ = 300 100 4.77× 103 0.01 secs
ms = 374 Chen µ = 1 100 5.97× 103 0.01 secs
Waveform41 Keerthi σ = 40 82 3.81× 105 2.73 secs
ms = 5 Chen µ = 0.02 82 4.05× 105 2.83 secs
Ecoli Keerthi σ = 0.6 83.33 3.40× 105 0.34 secs
ms = 1 Chen µ = 0.4 83.33 4.74× 105 0.4 secs
Vowel Keerthi σ = 2 44.81 2.55× 106 1.91 secs
ms = 43 Chen µ = 0.068 44.81 2.91× 106 2.07 secs
Satimage Keerthi σ = 2.828 88.20 4.97× 107 77.16 secs
ms = 374 Chen µ = 0.034 88.30 4.27× 107 75.31 secs
Shuttle small Keerthi σ = 4 99.70 1.30× 107 21.31 secs
ms = 5 Chen µ = 0.224 99.71 3.14× 107 34.88 secs
Letter small Keerthi σ = 2.828 60.82 1.06× 108 153.79 secs
ms = 1 Chen µ = 1 60.82 1.15× 108 153.92 secs
MNIST small Keerthi σ = 32 93.57 7.72× 107 1258.7 secs
ms = 407 Chen µ = 0.032 93.55 7.82× 107 1276.08 secs
USPS Keerthi σ = 32 93.12 7.14× 107 749.03 secs
ms = 433 Chen µ = 0.272 93.21 1.08× 108 764.75 secs
Tabla 4.4 – Resultados de los experimentos sobre Estrategias de Seleccion, Keerthi v/s
Chen, donde Tiempo E. significa Tiempo de Entrenamiento
de los experimentos no hay una diferencia en el porcentaje de ejemplos correctamen-
te clasificados, y cuando la hay, esta diferencia es considerablemente baja. De todas
formas, hay cuatro casos en los que la estrategia de seleccion de Chen et al alcan-
za mejores resultados que la de Keerthi et al (Satimage, Shuttle small, Letter small,
USPS), mientras que hay solo una en la que el mejor resultado se lo lleva la estrategia
52
1000
10000
100000
1e+06
1e+07
1e+08
1e+09
iriswine
soybean-small
waveform41
ecolivowel
satimage
shuttle-small
letter-small
mnist-sm
all
usps
Kern
el Calls (
log)
Keerthi et alChen et al
Figura 4.2 – Comparacion de Resultados de los experimentos Keerthi et al v/s Chen
et al en cuanto a Tiempo de Entrenamiento.
de Keerthi (MNIST small).
En cuanto al numero de Kernel Calls, la situacion se invierte (ver tabla 4.4 y
grafico 4.2), siendo solamente dos casos (Wine, Satimage) en donde la estrategia de
Chen presenta menores llamadas, mientras que en todas las demas Keerthi obtiene
los mejores resultados. Tambien se debe senalar que estas diferencias en tiempo de
entrenamiento son relativamente bajas y la brecha no pareciera crecer en proporcion
con el tamano del problema.
A pesar de que las diferencias en tiempo y en precision son ambas relativamente
bajas entre las dos estrategias de seleccion, en este trabajo hemos decidido continuar
utilizando la estrategia de Chen et al, la cual presenta mejores resultados de clasificacion
a un bajo costo en tiempo de ejecucion, ademas de presentar mejores resultados en el
caso de las SVMs binarias, como se muetra en los trabajos [FCL05] y [CFL06].
53
4.4. Evaluacion de Propiedades
En esta seccion se muestran experimentos que exploran posibles escenarios en los
que tendrıa que funcionar el algoritmo: con alta o baja disponibilidad de recursos en
memoria (subseccion 4.4.1); bajo la necesidad de una precision permisiva o exigente
(subseccion 4.4.2); y con problemas de pequeno o gran tamano (subseccion 4.4.3). Se
analiza si el algoritmo converge bajo las distintas condiciones probadas y se observa
como cambia el tiempo de entrenamiento, la capacidad de generalizacion de la maquina
(que tan bien clasifica los ejemplos de los conjuntos de prueba) y otras propiedades en
funcion de los distintos factores examinados.
4.4.1. Comportamiento del Algoritmo v/s Tamano del Cache
Se realizaron una serie de experimentos para ver de que manera afecta el tamano
del cache en el tiempo de entrenamiento del algoritmo propuesto. Para todos los experi-
mentos se utilizo el conjunto de datos de entrenamiento MNIST 1.68 % (1006 ejemplos)
y el conjunto de datos de prueba MNIST 5.28 % (533 ejemplos). En todos ellos se em-
pleo el Kernel Gaussiano con los parametros optimos encontrados para el problema
MNIST small en los experimentos de la seccion 4.3 (σ = 32, µ = 0.032). Los porcen-
tajes de cache3 probados fueron 10 %, 20 %, 30 %, 40 %, 50 %, 60 %, 70 %, 80 %, 90 %
y 100 %. Para cada porcentaje de cache se realizaron cuatro experimentos con semillas
distintas (para el generador de numeros pseudoaleatorios utilizados en la inicializacion
del algoritmo) cada uno. De estos cuatro experimentos, uno tenıa la misma semilla
en todos los porcentajes probados, mientras los otros tenıan una semilla distinta para
cada caso. La tolerancia exigida en todos los experimentos fue de 0.001.
Los resultados de los tiempos de entrenamiento versus el porcentaje de cache uti-
lizado se muestran en el grafico 4.3. Como se puede apreciar del grafico, el tiempo de
entrenamiento pareciera descender de manera exponencial a medida que aumenta el
tamano del cache. De hecho, la lınea verde del grafico corresponde a la regresion
f(x) = a · ebx + c, con a = −118546, b = 0.319321, c = −a.
3Como porcentaje de cache se entiende el numero total de productos de Kernel que como maximose pueden llegar a almacenar en cache dividido por el numero total de productos de Kernel que existenpara el problema dado.
54
0
500
1000
1500
2000
2500
3000
3500
4000
10 20 30 40 50 60 70 80 90 100
Tie
mpo d
e E
ntr
enam
iento
(secs)
Porcentage de Caché
T. Entrenamiento v/s % de CachéRegresión T. Entrenamiento
Figura 4.3 – Resultados de Experimentos: Tiempo de Entrenamiento v/s Tamano del
Cache.
En donde x viene a ser el porcentaje de cache empleado y f(x) el tiempo total de
entrenamiento (en segundos) en funcion de dicho porcentaje. Tanto el numero de Kernel
Calls como el numero de Support Vectors vario levemente con todos los experimentos,
presentando una media de 5.76× 106 ± 9.40× 104 y 734.68± 1.14 respectivamente. El
error de entrenamiento y el error de prueba no variaron a lo largo de los experimentos,
siendo el primero de 0.60 % y el segundo de 12.38 %.
Un comportamiento esperable podrıa haber sido que, cuando el tamano del cache die-
ra a basto para cubrir los productos de Kernel involucrados en el calculo de los Fl’s de
todos los Support Vectors, el tiempo de entrenamiento serıa relativamente similar. Sin
embargo, como se puede ver en la grafica, la disminucion del tiempo de entrenamiento
es gradual, y no se estanca en un mınimo pasado un cierto porcentaje de cache. La
explicacion de esto puede ser que, en este caso, el porcentaje de Support Vectors es
relativamente alto (100 ∗ 734.68/1006 = 73 %). Debido a esto, el algoritmo de entrena-
miento debe buscar entre la totalidad de los ejemplos (o un porcentaje cercano al total)
55
para poder dar con todos los Support Vectors. Es posible que en problemas en don-
de el porcentaje final de Support Vectors sea menor podrıa darse un comportamiento
del tiempo de entrenamiento en funcion al tamano del cache como el anteriormente
mencionado.
4.4.2. Comportamiento del Algoritmo v/s Tolerancia
Se realizaron una serie de experimentos para ver de que manera afecta la tolerancia
exigida en el criterio de termino sobre el error de clasificacion en el conjunto de prueba y
sobre el tiempo de entrenamiento del algoritmo propuesto. Para todos los experimentos
se utilizo el conjunto de datos de entrenamiento MNIST 5.28 % (3167 ejemplos) y el
conjunto de datos de prueba MNIST 5.64 % (567 ejemplos). En todos ellos se empleo el
Kernel Gaussiano con los parametros optimos encontrados para el problema MNIST
small (σ = 32, µ =0.032). Las tolerancias probadas fueron 1, 0.5, 0.3, 0.2, 0.1, 0.05,
0.02, 0.01, 0.005, 0.002, 0.001, 0.0005 y 0.0001. En un principio, para cada tolerancia se
realizaron cuatro experimentos. Sin embargo, cuando se observo que las varianzas del
error de clasificacion variaban considerablemente para las tolerancias de la 1 a la 0.002,
se decidio realizar cuatro experimentos mas para estos diez valores. Se utilizaron las 8
semillas distintas, las cuales fueron reutilizadas para cada valor de tolerancia (excepto
en los tres valores mas exigentes, en los cuales se utilizaron solo 4 de las 8 semillas).
En todos los experimentos, el cache empleado cubrıa la totalidad de los productos de
Kernel almacenables para el problema.
Los resultados de los tiempos de entrenamiento versus la tolerancia exigida se mues-
tran en el grafico 4.4. Como se puede apreciar del grafico, el tiempo de entrenamiento
pareciera estancarse en extremos maximos y mınimos a medida que disminuye y au-
menta la tolerancia empleada, asemejandose la curva a una tangente hiperbolica. La
curva verde del grafico es el resultado de la regresion
f(x) = a · tanh(bx) + c, con a = −334.162, b = 6.957, c = 531.101.
En donde x viene a ser la tolerancia exigida y f(x) el tiempo total de entrenamiento
(en segundos) en funcion de dicha tolerancia.
56
150
200
250
300
350
400
450
500
550
0.0001 0.001 0.01 0.1 1
Tie
mpo d
e E
ntr
enam
iento
(secs)
Tolerancia (log)
T. Entrenamiento v/s ToleranciaRegresión T. Entrenamiento
Figura 4.4 – Resultados de Experimentos: Tiempo de Entrenamiento v/s Tolerancia.
Los resultados del numero de Support Vectors y de Boundary Support Vectors4
encontrados versus la tolerancia exigida se muestran en el grafico 4.5. Para poder
mostrar ambos valores en la misma grafica, los valores fueron escalados por los valores
maximos encontrados en cada caso (1483 para los SVs y 27 para los BSVs). Como se
puede ver en el grafico, el numero de SVs tiene un comportamiento similar al del tiempo
de entrenamiento, estancandose en un valor mınimo de 320 SVs cuando la tolerancia es
muy alta, y estancandose en un maximo de 1483 SVs cuando la tolerancia es cercana
a cero. La lınea verde del grafico es el resultado de la regresion
f(x) = a · tanh(bx) + c, con a = −334.162, b = 6.957, c = 531.101.
En donde x viene a ser la tolerancia exigida y f(x) el tiempo total de entrenamiento
(en segundos) en funcion de dicha tolerancia.
Por otro lado, el comportamiento de los BSVs es algo mas erratico, partiendo con
muy pocos (solo uno o cero BSVs), aumentando con alta varianza hasta un maximo de
27 BSVs en la tolerancia de 0.1 y disminuyendo luego en varianza y en numero hasta
4Los Boundary Support Vectors (BSVs) o Vectores de Soporte de la Frontera, son aquellos vectoresde soporte cuyo multiplicador de Lagrange tiene un valor igual a µ.
57
0
0.2
0.4
0.6
0.8
1
0.0001 0.001 0.01 0.1 1
Núm
ero
de S
Vs N
orm
alizado
Tolerancia (log)
(Nº SVs)/Max(Nº SVs)Regresión SVs Norm.
(Nº BSVs)/Max(Nº BSVs)Regresión BSVs Norm.
Figura 4.5 – Resultados de Experimentos: N◦de SVs v/s Tolerancia. En puntos rojos se
muestra el numero de SVs dividido por el maximo numero de SVs encontrados durante
los experimentos (1483), mientras que en puntos azules se muestra el numero de SVs de
frontera (BSVs) dividido por el maximo numero de BSVs encontrados (27).
un valor de 20 BSVs. La lınea azul de la grafica viene a ser el resultado de la regresion
f(x) = a · ebx(cx+ d) + g · ehx(ix+ j),
con a = − 0.16573, b = −57.5661, c = −1.26894, d = 1.37413,
g = − 2.86007 h = −7.51051, i = −0.189108, j = −4.12925.
Los resultados del error de clasificacion sobre el conjunto de prueba versus la tole-
rancia exigida se muestran en el grafico 4.6. Como se puede ver en el grafico, el error
de prueba pareciera aumentar exponencialmente a medida que aumenta la tolerancia
permitida. De hecho, la curva verde del grafico corresponde a la regresion
f(x) = a · ebx + c, con a = −98.5869, b = −0.202635, c = 104.471.
En donde x viene a ser la tolerancia exigida y f(x) el porcentaje de ejemplos de
prueba clasificados erroneamente en funcion de dicha tolerancia. Si se mira con detalle
58
5
10
15
20
25
30
35
0.0001 0.001 0.01 0.1 1
% E
rror
de C
lasific
ació
n
Tolerancia (log)
% Error de Prueba v/s ToleranciaRegresión % Err. Prueba
Figura 4.6 – Resultados de Experimentos: Error de Clasificacion v/s Tolerancia.
el grafico, se puede apreciar que los menores errores de clasificacion se logran con las
tolerancias 0.02 y 0.01 con un error de 5.996 %, mientras que el error de clasificacion al
que se llega a medida que la tolerancia tiende a cero es de 6.349 %. Esto se debe a que
con tolerancias no tan exigentes se alcanza un menor numero de Support Vectors, lo
cual puede llevar a una mejor capacidad de generalizacion de la maquina. Sin embargo,
tambien debe observarse que a menor tolerancia, mayor varianza entre los experimentos.
De todas formas, se puede apreciar que con una tolerancia relativamente baja de 0.1 ya
se obtienen errores de generalizacion entre un 7.7 % y un 6.0 %, lo cual habla bien de
la robustez al parametro de tolerancia en la maquina. Los niveles de tolerancia ideales
parecieran encontrarse entre el 0.01 y el 0.1, que generan niveles de error razonables
a escalas de tiempo menores. Sin embargo, si se prefiere tener resultados mas precisos
(aunque no necesariamente mas exactos), con una tolerancia de 0.001 ya se alcanzan
valores bajos en varianza tanto para el tiempo, para el numero de SVs, para el numero
de BSVs y para el error de clasificacion.
59
4.4.3. Comportamiento del Algoritmo v/s Tamano del Pro-
blema
Se realizaron una serie de experimentos para ver de que manera afecta el tamano del
problema sobre el tiempo de entrenamiento del algoritmo propuesto, el error de clasifi-
cacion y el porcentaje de Support Vectors. Para estos experimentos se utilizaron todos
los conjuntos de entrenamiento listados en la tabla 4.3. Para medir el de error de clasifi-
cacion sobre los ejemplos de prueba se utilizo solamente el conjunto de datos de prueba
MNIST 10.01 % (1004 ejemplos). En todos los experimentos se empleo el Kernel Gaus-
siano con los parametros optimos encontrados para el problema MNIST small (σ = 32,
µ =0.032). Para cada tamano de problema distinto se realizaron cuatro experimentos
con semillas distintas. Las semillas usadas fueron distintas para cada experimento. La
tolerancia exigida en todos los experimentos fue de 0.001. El cache utilizado cubrıa el
80 % de los productos totales de Kernel en cada experimento.
0
2000
4000
6000
8000
10000
12000
14000
16000
0 2000 4000 6000 8000 10000 12000 14000 16000 18000 20000
Tie
mpo d
e E
ntr
enam
iento
(secs)
Número de Ejemplos
T. Entrenamiento v/s Nº EjemplosRegresión T. Entrenamiento
Figura 4.7 – Resultados de Experimentos: Tiempo de Entrenamiento v/s Tamano del
Problema.
Los resultados de los tiempos de entrenamiento versus el tamano del problema se
60
muestran en el grafico 4.7. Como se puede apreciar del grafico, el tiempo de entre-
namiento pareciera escalar de forma cuadratica a medida que aumenta el tamano del
problema. Ası mismo, la lınea verde del grafico es el resultado de la regresion
f(x) = ax2 + bx+ c, con a = 3.50× 10−5, b = 0.106063, c = 26.3193.
En donde x viene a ser el tamano del problema (medido en numero de ejemplos) y
f(x) el tiempo total de entrenamiento (medido en segundos) en funcion del tamano.
4
6
8
10
12
14
16
18
20
22
0 2000 4000 6000 8000 10000 12000 14000 16000 18000 20000
% E
rror
de C
lasific
ació
n
Número de Ejemplos
% Error de Prueba v/s Nº EjemplosRegresión % Err. Prueba
Figura 4.8 – Resultados de Experimentos: Error de Clasificacion v/s Tamano del Pro-
blema.
Los resultados del error de clasificacion sobre el conjunto de prueba versus el tamano
del problema se muestran en el grafico 4.8. Como se puede notar en el grafico, el error
de clasificacion pareciera disminuir exponencialmente a medida que se dispone de un
mayor numero de ejemplos de entrenamiento. De hecho, la curva verde del grafico
corresponde a la regresion
f(x) = a · ebx + c · edx + h,
con a = 10.8202, b = −0.000551854,
c = 3a, d = 10b, h = 6.29141.
61
En donde x viene a ser el tamano del problema (medido en numero de ejemplos) y f(x)
el porcentaje de ejemplos de prueba clasificados erroneamente en funcion del tamano.
10
20
30
40
50
60
70
80
90
100
0 2000 4000 6000 8000 10000 12000 14000 16000 18000 20000
Porc
enta
ge d
e S
upport
Vecto
rs (
% S
Vs)
Número de Ejemplos
%SVs = 100*(Nº SVs)/(Nº Ejemplos)Regresión % SVs
Figura 4.9 – Resultados de Experimentos: Porcentage de Support Vectors v/s Tamano
del Problema.
Los resultados del porcentaje de Support Vectors sobre el total de ejemplos de en-
trenamiento versus el tamano del problema se muestran en el grafico 4.9. Como se
puede notar en el grafico, el porcentaje de Support Vectors parece disminuir exponen-
cialmente a medida que el tamano del problema aumenta. Sin embargo, una mejor
regresion de los resultados (a la cual corresponde la lınea verde del grafico) esta dada
por
f(x) =a
(b+ x)+ c, con a = 1.61× 105, b = 1591.35, c = 12.202.
En donde x viene a ser el tamano del problema (medido en numero de ejemplos) y
f(x) el porcentaje de Support Vectors en funcion del tamano.
62
4.5. Comparacion contra Tecnicas Actuales
4.5.1. Comparacion de Solvers: Generico v/s SMO
Para probar las mejoras en tiempo del solver SMO propuesto y verificar si exis-
te alguna perdida significativa en cuanto a desempeno de clasificacion debido a las
heurısticas implicadas en el algoritmo, se realizaron experimentos contrastando estos
rendimientos con los producidos usando el solver generico que se habıa estado emplean-
do hasta ahora para examinar las capacidades de la AD-SVM. El solver generico en
cuestion es una implementacion en C++ y MATLAB del algoritmo descrito en [CL96].
En MATLAB, puede accederse a este mediante la rutina quadprog(...) (denominada
en los resultados de tablas y graficos como QuadProg).
Debido a las limitantes en cuanto a tiempo de ejecucion y espacio en memoria de
QuadProg que se producen al resolver problemas con matrices densas, solamente se
probaron conjuntos de datos de tamano pequeno (Iris, Wine, Soybean small, Wave-
form41 y Ecoli). En todos los experimentos utilizo un Kernel Gaussiano con parametro
σ. Al igual que en los experimentos de la seccion 4.3, los valores para σ y µ usados
fueron obtenidos de [NCA+09]. Los resultados de los experimentos se muestran en la
tabla 4.5.
Problema Solver σ & µ Prec. % Tiempo E.
Iris QuadProg σ = 0.7 96.67 3.23 secs
ms = 8 SMO µ = 1 100 0.09 secs
Wine QuadProg σ = 4 97.22 5.55 secs
ms = 43 SMO µ = 1 97.22 0.15 secs
Soybean small QuadProg σ = 300 100 0.27 secs
ms = 374 SMO µ = 1 100 0.01 secs
Waveform41 QuadProg σ = 40 80 109.35 secs
ms = 5 SMO µ = 0.02 82 0.67 secs
Ecoli QuadProg σ = 0.6 81.82 4.35 secs
ms = 1 SMO µ = 0.4 83.33 0.75 secs
Tabla 4.5 – Resultados de los experimentos QuadProg v/s SMO
63
0
20
40
60
80
100
iriswine
soybean−small
waveform41
ecoli
Porc
enta
ge d
e P
recis
ión
96.67%97.22%
82.00% 81.82%
QuadProgSMO
Figura 4.10 – Comparacion de Resultados de los experimentos QuadProg v/s SMO en
cuanto a Precision de Clasificacion sobre el conjunto de prueba.
Como se aprecia de la tabla de resultados y del grafico 4.10, la diferencia entre
el desempeno de clasificacion de los dos solvers es bastante baja (no mayor que un
3.33 %), siendo el algoritmo SMO algo mas preciso en los 3 casos en los que no hubo
empate. Esto no se debe a una imprecision intrınseca del algoritmo descrito en [CL96],
sino mas bien a una terminacion prematura del algoritmo, terminacion implementada
de fabrica para evitar extensivos tiempos de ejecucion. Estos resultados muestran que
el solver SMO puede alcanzar los mismos niveles de precision (o por lo menos, niveles
muy similares) a los que alcanzarıa un solver teorico de precision absoluta aplicado a
la misma AD-SVM.
A pesar de que los resultados en cuanto a precision de clasificacion fueron bastante
similares, las diferencias en tiempo son notablemente altas. En el grafico 4.11 se muestra
en barras rojas el tiempo de entrenamiento ahorrado, el cual se calcula como:
% de T iempo Ahorrado =Tiempo QuadProg − Tiempo SMO
Tiempo QuadProg· 100.
Las barras verdes muestran cuantas veces el algoritmo SMO puede ser ejecutado en el
mismo periodo de tiempo que el solver QuadProg. Ambas comparaciones muestran la
64
0
20
40
60
80
100
iriswine
soybean−small
waveform41
ecoli
0
40
80
120
160
20097.21%
35.9x
97.30%
37x
96.30%
27x
99.39%
163.2x 82.76%
5.8x
Porcentage de Tiempo AhorradoTiempo QuadProg / Tiempo SMO
Figura 4.11 – Comparacion de Resultados de los experimentos QuadProg v/s SMO en
cuanto a Tiempo de Entrenamiento.
gran diferencia que hay en tiempos de ejecucion. Si bien, los tiempos de estos experi-
mentos son relativamente pequenos, se debe notar que los tiempos del solver QuadProg
son siempre por lo menos un orden de magnitud mas altos, y es esperable que esta di-
ferencia siga aumentando a medida que crezca el tamano del problema involucrado.
Como se menciono anteriormente, la principal causa de estas diferencias de tiempo se
debe al hecho de que el algoritmo QuadProg necesita calcular completamente la matriz
Hessiana para poder empezar su ejecucion, mientras que el solver SMO computa uni-
camente una fraccion de los productos de Kernel de dicha matriz, y solamente cuando
se necesitan.
4.5.2. Comparacion de Maquinas: MC-SVM v/s AD-SVM
Se realizaron experimentos para medir y comparar el desempeno en clasificacion y
tiempo de entrenamiento de la AD-SVM con el algoritmo SMO propuesto contra la
SVM multi-categorıa mono-objetivo propuesta en [CS01] (denominada como MC-SVM
en las tablas y graficas de resultados). Para poder comparar ambas maquinas de forma
65
independiente a optimizaciones de compilacion y de codigo, se utilizo el numero de
Kernel Calls para medir el tiempo de entrenamiento. Adicionalmente, no se hizo uso
del cooling de la tolerancia5 en ninguna de las dos maquinas.
Problema Maquina σ β & µ Prec. % NoKernel Calls
Glass MC-SVM 0.707 0.5 72.89 2.96× 106
ms = 8 AD-SVM 2.828 0.125 80.61 1.97× 105
Vowel MC-SVM 0.25 0.25 50.87 7.43× 105
ms = 43 AD-SVM 2 0.068 44.81 2.97× 106
Satimage MC-SVM 2 0.5 91.40 2.60× 109
ms = 374 AD-SVM 2.828 0.034 88.30 4.49× 107
Shuttle small MC-SVM 2 0.25 99.79 3.46× 108
ms = 5 AD-SVM 4 0.224 99.71 2.85× 107
Letter small MC-SVM 2.828 0.25 63.73 7.02× 1010
ms = 1 AD-SVM 2.828 1 60.82 1.19× 108
MNIST small MC-SVM 16 1 99.04 5.05× 108
ms = 407 AD-SVM 32 0.032 93.55 8.14× 107
USPS MC-SVM 5.657 0.5 95.37 5.48× 109
ms = 433 AD-SVM 32 0.272 93.21 1.22× 108
Letter MC-SVM 2.828 0.25 71.31 1.24× 1012
ms = 1 AD-SVM 2 1 65.66 8.43× 108
Shuttle MC-SVM 0.707 0.25 99.90 2.26× 109
ms = 5 AD-SVM 4 0.447 99.89 5.15× 108
Tabla 4.6 – Resultados de los experimentos MC-SVM v/s AD-SVM
En estos experimentos se probaron conjuntos de datos de tamanos variados (Glass,
Vowel, Satimage, Shuttle small, Letter small, MNIST small, USPS, Letter, Shuttle).
En todos los experimentos utilizo un Kernel Gaussiano con parametro σ. Al igual que
en los experimentos de la seccion 4.3, los valores para σ y µ usados fueron obtenidos
5El cooling de la tolerancia consiste en la iterativa refinacion de la tolerancia a traves del entrena-miento, partiendo desde una tolerancia relativamente permisiva hasta llegar a una de exigencia masestricta.
66
mediante una busqueda grillada y validada por un proceso de validacion cruzada. Para
los problemas de tamanos pequeno y mediano (Glass, Vowel, Satimage, Shuttle small,
Letter small, MNIST small) se utilizo una validacion cruzada de 10 segmentos (90 %
para entrenamiento - 10 % para prueba) mientras que para los problemas de gran
tamano (USPS, Letter, Shuttle) se realizo una validacion cruzada de 5 segmentos (80 %
para entrenamiento - 20 % para prueba). Los valores probados para σ y µ son los
mismos que se muestran en (4.3.1) y (4.3.2), mientras que los valores probados para
el parametro β de la MC-SVM fueron
β ∈{
2−2, 2−1, . . . , 211, 212}. (4.5.1)
Los resultados de los experimentos se muestran en la tabla 4.6 y en los graficos 4.12
y 4.13.
100000
1e+06
1e+07
1e+08
1e+09
1e+10
1e+11
1e+12
1e+13
glassvowel
satimage
shuttle-small
letter-small
mnist-sm
all
uspsletter
shuttle
Kern
el Calls (
log)
MC-SVMAD-SVM
Figura 4.12 – Comparacion de Resultados de los experimentos MC-SVM v/s AD-SVM
en cuanto a Kernel Calls (Numero de Llamadas de Kernel).
Como se puede notar del grafico 4.12, en la mayorıa de los casos, el numero de
Kernel Calls es mayor para la MC-SVM que para la AD-SVM, con una diferencia en
orden de magnitud de por lo menos 1, alcanzando diferencias de hasta 4 ordenes mas,
67
como en el caso del problema Letter. No queda claro si la diferencia en los tiempos
de entrenamiento escala lineal o cuadraticamente con el tamano del problema, pero
sı pareciera que dicha diferencia no es constante y varıa mucho de caso en caso.
0
20
40
60
80
100
glassvowel
satimage
shuttle−small
letter−small
mnist−sm
all
uspsletter
shuttle
Porc
enta
ge d
e P
recis
ión
MC−SVMAD−SVM
Figura 4.13 – Comparacion de Resultados de los experimentos MC-SVM v/s AD-SVM
en cuanto a Precision de Clasificacion sobre el conjunto de prueba.
En cuanto al desempeno de clasificacion, la situacion se invierte (ver grafico 4.13), y
es la MC-SVM la que exhibe una mejor precision al clasificar los ejemplos del conjunto
de prueba en casi todos los problemas. Debe notarse que esta diferencia en el error de
clasificacion es debido a las capacidades de la AD-SVM y no a limitaciones intrınsecas
del solver SMO propuesto (como se mostro en la seccion 4.5.1, un solver generico habrıa
obtenido similares desempenos para la AD-SVM). Estas diferencias en el desempeno
de clasificacion son esperadas, ya que la AD-SVM maneja un menor numero de res-
tricciones que la MC-SVM. Sin embargo, tambien debe notarse que la diferencia no es
superior al 6 %.
68
Capıtulo 5
Conclusiones y Trabajo Futuro
El algoritmo propuesto mostro empıricamente que convergıa bajo distintas condicio-
nes exploradas (tamano de cache, tolerancia exigida, tamano del problema y distintos
conjuntos de datos). Los resultados experimentales sugieren que, manteniendo el por-
centaje de cache utilizado y la tolerancia exigida, el tiempo de entrenamiento crece de
forma cuadratica con respecto al tamano del problema.
Tambien se observo que el tiempo de entrenamiento crece de manera exponencial a
medida que el tamano del cache disminuye, lo cual puede ser problematico para tratar
problemas de gran tamano en los que no se puede disponer de muchos recursos en
memoria. Sin embargo, los resultados tambien muestran que la proporcion de Support
Vectors encontrados disminuye a medida que el tamano del problema crece, por lo que,
en problemas de gran tamano podrıa no ser necesario un cache muy grande. El factor
principal de esta idea es que el algoritmo debe ser capaz de encontrar gran parte de
la totalidad de los Support Vectors en las primeras iteraciones del problema, para que
ası el comportamiento del algoritmo fuera similar al que tendrıa en condiciones donde
la totalidad de los productos de Kernel estuvieran almacenados en memoria.
Se contrastaron las capacidades del solver propuesto contra las del solver generico
que se estaba utilizando a la fecha, y se observo que no habıan mayores diferencias
en los errores de clasificacion, mientras que se observaba un gran ahorro en cuanto a
tiempos de entrenamiento.
Tambien se contrasto el desempeno de la AD-SVM contra el de la MC-SVM,
mostrandose que, a pesar de que la AD-SVM no superaba en clasificacion a la MC-SVM,
69
obtenıa resultados bastante cercanos con una cantidad de computo mucho menor.
5.1. Objetivos Cumplidos
Se diseno e implemento un algoritmo tipo SMO para entrenar a la AD-SVM [CNCA10]
(objetivo I).
Se probaron dos heurısticas distintas para la seleccion de los multiplicadores de
Lagrange, y las dos mostraron pequenas diferencias, tanto en tiempo de entre-
namiento como en la calidad de la clasificacion (ver seccion 4.3). Finalmente, se
opto por la heurıstica propuesta por Chen et al por ser mas precisa, a pesar de
que la de Keerthi et al era mas rapida (objetivo 1).
Se evaluo la convergencia empırica del solver tipo SMO propuesto, bajo distin-
tos esquemas de tolerancia, tamanos de cache, tamanos de problema y tipos de
problema. En todos ellos, el algoritmo finalizo llegando al optimo global o a una
vecindad del mismo (objetivo 2).
Se comparo el rendimiento del solver propuesto versus el del solver generico que
se estaba utilizado para entrenar a la AD-SVM. En cuanto a error de clasificacion
los algoritmos era bastante similares (ver grafico 4.10), mientras que en tiempo
de entrenamiento, el solver propuesto mostro mejoras de entre un 82.76 % hasta
un 99.39 %, lo cual corresponde a decir que el algoritmo propuesto es entre 5.8 a
163.2 veces mas rapido (ver grafico 4.11) (objetivo 3).
Se probo el desempeno en tiempo de entrenamiento del solver SMO propuesto
con conjuntos de datos entre 528 y 5000 ejemplos (Vowel, Satimage, Shuttle smal
y Letter smal) en una maquina que demoraba alrededor de 400 segundos para
resolver el problema Vowel con el algoritmo generico. En todos estos experimen-
tos, el tiempo de entrenamiento obtenido por el algoritmo propuesto fue menor
a los 160 segundos (ver tabla 4.4) y los recursos de memoria fueron suficientes
para ejecutar el algoritmo (objetivo 4).
70
Se contrasto el rendimiento de la AD-SVM contra el de la MC-SVM (ver sec-
cion 4.5.2). Los resultados demostraron que la AD-SVM obtiene errores de cla-
sificacion cercanos a los de la MC-SVM (con diferencias no mayores al 6 %) con
una cantidad de computo de 1 a 4 ordenes de magnitud mas rapidos (objetivos
II y 5).
Adicionalmente, un trabajo cientıfico fue generado a partir de esta tesis [CNCA10]
que ya ha sido aceptado en un congreso internacional [BC10].
5.2. Trabajo Futuro
A partir del trabajo realizado, se puede afirmar que el algoritmo SMO propuesto
y la AD-SVM son metodos competitivos a las alternativas que actualmente se utilizan
en clasificacion multi-categorıa. Esto motiva a profundizar el trabajo teorico sobre el
analisis de sus propiedades. Entre los temas que se pueden continuar esta el de extender
las demostraciones formales de convergencia del algoritmo SMO en el caso binario
(como las mostradas en [KG02, Lin01, Lin02]) para el caso de la AD-SVM. Lo mismo
se puede decir de la redefinicion del termino aij descrito al final de la subseccion 3.2.3
para manejar funciones de Kernel semi-definidas o indefinidas [FCL05, CFL06].
En cuanto al desempeno del algoritmo en sus tiempos de entrenamiento, todavıa
se pueden realizar mejoras, como la implementacion de tecnicas tales como cooling de
la tolerancia o shrinking dinamico del problema [Joa99]. Adicionalmente, se pueden
investigar formas de modificar la formulacion de la AD-SVM para poder utilizar tecni-
cas, tales como las propuestas en [TKCC05] y [FGL+10], que independizan el tiempo
de entrenamiento del tamano del problema.
En cuanto a las capacidades de la AD-SVM, se pueden proponer modificaciones a su
diseno para que contemple la posibilidad de manejar multiples prototipos por clases o
que sea capaz de ponderar la distancia entre ciertas clases (mas difıciles de diferenciar)
por sobre otras. Tambien se pueden seguir estrategias combinadas, en donde la AD-
SVM proporcione una solucion inicial para otra maquina, mas precisa pero mas lenta
(como la MC-SVM), y analizar si esta estrategia conjunta reduce el tiempo total que
tendrıa la maquina mas precisa, cuando esta ultima es entrenada desde cero.
71
Apendice A
English Translation of
Demonstrations and Algorithms
NOTE: additional changes, contributions and corrections will be made in this appen-
dix (and in the whole document) from now to January 2011, so please revisit this file
at http://alumnos.inf.utfsm.cl/~dcontard/tesis.pdf to see new updates.
The solver that we propose here for training the AD-SVM has a structure and a
working scheme similar to those of the SMO algorithm used to train binary SVMs.
Said solver thus has the following components:
1. It has a stopping criteria that allows verification of when the training has
reached the optimal solution (or a solution that is in the vicinity of the optimum).
2. It has an (analytic) optimization step capable of efficiently modifying a subset
of two variables ul in each step of the training process to further approach the
optimal solution.
3. It has a(n heuristic) selection strategy that chooses the subset of two variables
ul to be optimized in each step, such that the convergence rate towards the
optimum is maximal or near this maximum.
72
4. It has an update system that updates the values that are involved in the selec-
tion and optimization of the next subset of variables at the end of each optimi-
zation step in a reasonable amount of time.
All these components are organized in an algorithmic structure that uses them to
train the AD-SVM. Here, we will be presenting each one of these components, with the
derivations that justify their design.
A.1. KKT-Conditions for the AD-SVM and Stop-
ping Criteria
KKT-conditions [Kar39, KT51, Lue84] play an important roll in the determina-
tion of a stopping criteria for the binary SMO solver [PR98, CL01b, CFL06]. In this
section, we try to derive the KKT-conditions specific for the AD-SVM and try to
formulate a similar stopping criteria for this machine. Given the dual form of the AD-
SVM [NCA+09]:
minimize{u} D(u) =1
4uTKu =
1
4
∑i∈I
∑j∈I
uikijuj, (A.1.1)
subject to∑i∈Ir
ui = 1, r ∈ {1, 2, . . . , K} , (A.1.2)
0 ≤ ui ≤ µ, ∀i ∈ I, (A.1.3)
yi = [yi1, yi2, . . . , yiK ] , yis =
{(K − 1)/
√K, if i ∈ Is
−1/√K, in any other case,
(A.1.4)
and let i ∈ Ir and j ∈ Is, then:
αij = yi · yj =
{(K − 1), if s = r
−1, in any other case.(A.1.5)
Where K is a matrix of m ×m consisting of the elements kij = (yi · yj) kij = αijkij,
kij = K (xi,xj) is a Kernel product, I is the set of all indexes and Ir is the subset
of indexes belonging only to class Cr. We proceed to calculate the Lagrangian L of
73
D(u), this consisting of the same function (A.1.1) minus all the equality (A.1.2) and
inequality restrictions (A.1.3), each of these multiplied by a new variable:
L =1
4
∑i∈I
∑j∈I
uikijuj +∑i∈I
ηi (ui − µ)−∑i∈I
δiui −K∑r=1
βr
(∑i∈Ir
ui − 1
), (A.1.6)
where the new variables ηi ≥ 0, δi ≥ 0 and βr (for i ∈ {1, . . . ,m} and r ∈ {1, . . . , K})are the KKT multiplier1. Since the objective function is convex, this KKT condi-
tions are necessary and sufficient to verify optimality. This means that u is a solution
of (A.1.1) if and only if there exist values for the multipliers ηl ≥ 0, δl ≥ 0 y βs such
that, ∀l ∈ I and ∀s : l ∈ Is, we have:
∇lL =1
2
∑j∈I
ujklj + ηl − δl − βs = 0, (A.1.7)
subject to: 0 ≤ ul ≤ µ,∑i∈Is
ui = 1, (A.1.8)
ηl (ul − µ) = 0, δlul = 0, (A.1.9)
ηl ≥ 0, δl ≥ 0, βs ∈ R. (A.1.10)
Equation (A.1.7) is the derivative of L with respect to Lagrange multiplier ul. The
two conditions in (A.1.8) are the constraints of problem (A.1.1). Conditions in (A.1.9)
express the idea that a Lagrange multiplier is not-null only when the constraint it con-
trols pushes, i.e. effectively constraints the solution. They are usually called conditions
of vanishing KKT gap. Conditions in (A.1.10) are in the definition of L. Note now that
these KKT conditions imply:
ul = 0 : ηl = 0, δl ≥ 0, Fl − βs ≥ 0,
ul = µ : ηl ≥ 0, δl = 0, Fl − βs ≤ 0,
0 < ul < µ : ηl = 0, δl = 0, Fl − βs = 0,
where Fl =1
2
∑j∈I
ujklj.
The value Fl can be seen as the gradient of the objective function with respect to ul.
1Note that the variables associated to equality restrictions must have values grater or equal to zero,meanwhile the multiplier associated to inequality restrictions can have any given real value.
74
Thus, the KKT Conditions for the AD-SVM can be summarized as follow:
ul = 0 ⇒ Fl − βs ≥ 0, (A.1.11)
ul = µ ⇒ Fl − βs ≤ 0, (A.1.12)
0 < ul < µ ⇒ Fl − βs = 0. (A.1.13)
Now we can form the following subsets of indexes for each class r ∈ {1, · · · , K}, in
function of the values that take the different multipliers ul in the course of the training
process:
I0s = {l : 0 < ul < µ ∧ l ∈ Is} , (A.1.14)
I1s = {l : ul = 0 ∧ l ∈ Is} , (A.1.15)
I2s = {l : ul = µ ∧ l ∈ Is} . (A.1.16)
The KKT Conditions can be conveniently rewritten (we are looking for efficient ways
to check optimality) as:
∃βs :
∀l ∈ Iups = I0
s ∪ I1s, Fl ≥ βs, (A.1.17)
∀l ∈ Ilows = I0
s ∪ I2s, Fl ≤ βs. (A.1.18)
Note that, if all KKT-conditions are met, the lowest value Fl in the subset of indexes
Iups will be greater or at least equal to the greatest value Fl in the subset of indexes
Ilows , for all the class s of the problem. Following this thought, we define:
βups = min {Fl : l ∈ Iup
s } , (A.1.19)
βlows = max
{Fl : l ∈ Ilow
s
}. (A.1.20)
All the KKT Conditions (and so, all the optimality conditions) are satisfied if and only
if [KSMB01]:
βlows ≤ βup
s , ∀s ∈ {1, . . . , K} . (A.1.21)
We can normalize this inequalities, so we can compare among the different classes and
see which one is violating the stopping condition the most:
(βups − βlow
s )/βlows ≥ 0 , ∀s ∈ {1, . . . , K} . (A.1.22)
75
Since is not always possible to reach optimality (due to arithmetic-calculation limi-
tations and other numeric-related problems), a tolerance τ defined by the user is often
used [Pla99]. If well defined, the use of this tolerance can allow a fast convergence with
a small trade-off in precision loss. Now, we can say that we have reached a τ -tolerant
optimality if:
βlows /βlow
s − τ ≤ βups /β
lows + τ, (A.1.23)
βlows /βlow
s ≤ βups /β
lows + 2τ, (A.1.24)
(βlows − βup
s )/βlows ≤ 2τ, ∀s. (A.1.25)
A.2. Analytic Solution for two Multipliers
Here we derive the formulations to show how to calculate the new values for two
Lagrange multipliers up, uq ∈ Ir. We start from the objective function (A.1.1), leaving
fixed all the Lagrange multipliers different to up, uq:
minimize{up,uq} D(up, uq) =1
4
∑i,j∈I
uiujkij
=1
4u2pkpp +
1
4u2qkqq +
1
4upuqkpq +
1
4uqupkqp
+1
4
∑i∈I/{p,q}
uiupkip +1
4
∑j∈I/{p,q}
upujkpj
+1
4
∑i∈I/{p,q}
uiuqkiq +1
4
∑j∈I/{p,q}
uqujkqj +1
4
∑i,j∈I/{p,q}
uiujkij (A.2.1)
=1
4u2pkpp +
1
4u2qkqq +
1
2upuqkpq
+1
2up ·
∑j∈I/{p,q}
ujkpj +1
2uq ·
∑j∈I/{p,q}
ujkqj + Ψconst. (A.2.2)
subject to∑i∈Ij
ui = 1 ∀j, 0 ≤ ui ≤ µ ∀i
76
We can safely perform the step from (A.2.1) to (A.2.2) since the Kernel functions that
we are working with fulfill the equality K (xi,xj) = K (xj,xi). The restrictions can be
also rewritten in function of the two multipliers:
∑i∈Ir
ui = 1
⇐⇒ up + uq +∑
i∈Ir/{p,q}
ui = 1
⇐⇒ up + uq = 1−∑
i∈Ir/{p,q}
ui
⇐⇒ up + uq = ψ (A.2.3)
Note that in (A.2.3) only are involved multipliers that belong to the same class as up
and uq. Furthermore, in an implicit way is established that up y uq must belong to the
same class. This is due mainly to to restriction (A.1.2). If, for example, two multipliers
belonging to different classes were chosen and their values would be altered, then for
one of these classes, the sum of all its multipliers would be less than 1, meanwhile the
sum of the other class would be greater than 1. The only way to mend these imbalances
in the same optimization step would be by altering the value of two more multipliers
simultaneously. This kind of procedure would involve four multipliers at a time, which
escapes the context of this sort of algorithms.
Using (A.2.3) we can replace all the occurrences of up in (A.1.2) with ψ − uq. This
way, the entire objective function can be calculated solely in terms of uq:
minimize{uq} D(uq, ψ − uq) =1
4(ψ − uq)2 kpp +
1
4u2qkqq +
1
2(ψ − uq)uqkpq
+1
2(ψ − uq) ·
∑j∈I/{p,q}
ujkpj +1
2uq ·
∑i∈I/{p,q}
uikqi + Ψconst. (A.2.4)
Given the nature of the problem, optimality is achieved if:
∂D(uq, ψ − uq)∂uq
= ∇qD = 0 ∧ ∂2D(uq, ψ − uq)∂u2
q
= ∇2qD > 0
77
Deploying ∇qD we obtain:
∇qD =1
2
((−1) (ψ − uq) kpp + uqkqq + (ψ − uq) kpq − uqkpq
)− 1
2
∑j∈I/{p,q}
ujkpj +1
2
∑i∈I/{p,q}
uikqi + 0
=1
2
(uq(kpp − 2kpq + kqq
)− ψ
(kpp − kpq
))− 1
2
∑j∈I/{p,q}
ujkpj +1
2
∑i∈I/{p,q}
uikqi (A.2.5)
And ∇2qD can be stated as:
∇2qD =
1
2
(kpp − 2kpq + kqq
)(A.2.6)
Replacing (A.2.6) in (A.2.5) and solving for uq when ∇qD = 0, we have:
uq∇2qD−
1
2ψ(kpp − kpq
)− 1
2
∑j∈I/{p,q}
ujkpj +1
2
∑i∈I/{p,q}
uikqi = 0
uq∇2qD =
1
2ψ(kpp − kpq
)+
1
2
∑j∈I/{p,q}
ujkpj −1
2
∑i∈I/{p,q}
uikqi
unewq =
2−1
∇2qD
ψ (kpp − kpq)
+∑
j∈I/{p,q}
ujkpj −∑
i∈I/{p,q}
uikqi
(A.2.7)
For clarity we introduce unewq to denote the values of the variable uq after the current
optimization and uoldq to denote the previous values of uq . We can add and subtract
the old value of uq in the left side of equation (A.2.7):
unewq =uold
q +2−1
∇2qD
ψ (kpp − kpq)
+∑
j∈I/{p,q}
ujkpj −∑
i∈I/{p,q}
uikqi
− uoldq (A.2.8)
If we take the numerator of the fraction in (A.2.8) and insert(−uold
q
)in it, we obtain:
ψ(kpp − kpq
)+
∑j∈I/{p,q}
ujkpj −∑
i∈I/{p,q}
uikqi − 2uoldq ∇2
qD
= ψ(kpp − kpq
)+
∑j∈I/{p,q}
ujkpj −∑
i∈I/{p,q}
uikqi − uoldq
(kpp − 2kpq + kqq
)= − 2∇qD,
78
thus simplifying equation (A.2.8) to:
unewq = uold
q −∇qD
∇2qD
(A.2.9)
This fits with the Newton Method for optimization, which could be important in order
to analyze convergence. Expanding ψ = uoldp +uold
q , the equation of ∇qW can be further
developed to achieve a more compact formulation of (A.2.8):
2∇qD = uoldq
(kpp − 2kpq + kqq
)−(uoldp + uold
q
) (kpp − kpq
)−
∑j∈I/{p,q}
ujkpj +∑
i∈I/{p,q}
uikqi
=
uoldq kqq + uold
p kpq +∑
i∈I/{p,q}
uikqi
−
uoldp kpp + uold
q kpq +∑
j∈I/{p,q}
ujkpj
=∑i∈I
uikqi −∑j∈I
ujkpj = Fq − Fp
⇒ unewq = uold
q −Fq − Fp
kpp − 2kpq + kqq(A.2.10)
With this formulation, all values needed to calculate unewq are easily distinguishable.
Moreover, as it will be seen in next sections, all of them are already available prior to
the calculation of unewq because they were previously calculated in the selection process.
As with the Binary SMO [Pla99, KSMB01], the unewq has to be clipped to conform to
the bounding constraints imposed by the constraints (A.1.2), (A.1.3) and (A.2.3):
unew,clippedq =
L, si unew
q ≤ L
unewq , si L < unew
q < H
H, si unewq ≥ H
(A.2.11)
where L = max {0, (ψ − µ)} , (A.2.12)
H = min {ψ, µ} . (A.2.13)
After this, unewp can be easily calculated:
unewp = ψ − unew,clipped
q (A.2.14)
79
A.3. Selection Strategy to choose the Active Varia-
bles
The selection strategy to choose the Lagrange multipliers that are optimized in each
iteration of the SMO algorithm is really important in order to get a fast advance
towards the optimal solution of (A.1.1). Time complexity as well as space (memory)
complexity is also determined by the heuristics designed to select a good set of Lagrange
multipliers. More important, if the violating pair chosen in each iteration does not meet
certain conditions, the convergence of the algorithm cannot be assured [CFL06].
Following the idea proposed by Chen et al [FCL05, CFL06], we will try to find a
slight modification d for our vector of Lagrange multipliers u that should maximize
the convergence rate of D(u) towards the optimum. For this, we will consider that the
new vector unew = u + d will produce an alteration equivalent to an approximation of
second order of the objective function D(u):
D(unew) = D(u + d) = D(u) +∇D(u)Td + dT∇2D(u)d (A.3.1)
⇒ D(u + d)−D(u) = ∇D(u)Td + dT∇2D(u)d (A.3.2)
Given the nature of our solver, the vector d must meet certain restrictions: First, since
we are modifying only two indexes in each step, all elements of d must be zero, except
for two, dp and dq; Second, since the new vector unew must fulfill restriction (A.1.2),
both p and q must belong to the same class and dp = −dq; Third, the new vector unew
must also fulfill boundary restrictions (A.1.3), but as we see in the previous section,
this is cover in the clipping stage performed in the step described in (A.2.11). In other
words, vector d indicates which is the pair of ideal Lagrange multipliers to be optimized,
but it wont tell us in which amounts its values must be modified. With this in mind,
80
we must solve the following subproblem:
minimize{d}D(d) = ∇D(u)Td + dT∇2D(u)d
= (Fpdp + Fqdq) +1
2
(d2pkpp + 2dpdqkpq + d2
qkqq)
(A.3.3)
subject to #|d : di 6= 0| = 2, (A.3.4)
and if dp 6= 0 ∧ dq 6= 0, p ∈ Ir, q ∈ Is
then dp = −dq ∧ r = s. (A.3.5)
Using equality dp = −dq to replace dp with −dq in (A.3.3), we get:
D(dq,−dq) = (Fqdq − Fpdq) +1
2
(d2qkpp − 2d2
pkpq + d2qkqq
)= dq (Fq − Fp) +
1
2d2q
(kpp − 2kpq + kqq
),
∇dqD(dq,−dq) = (Fq − Fp) + dq(kpp − 2kpq + kqq
),
∇2dqD(dq,−dq) = kpp − 2kpq + kqq. (A.3.6)
If we are using a semi-definite positive Kernel and we have that examples xp and xq
are not equivalent, then we know that (A.3.6) is strictly positive. This way, if we match
∇dqD(dq,−dq) to zero and we find the value of dq, then we obtain the value in which
D(dq,−dq) is at a minimum:
∇dqD(dq,−dq) = (Fq − Fp) + dq(kpp − 2kpq + kqq
)= 0
⇒ dq(kpp − 2kpq + kqq
)= − (Fq − Fp)
⇒ dq =− (Fq − Fp)(
kpp − 2kpq + kqq) (A.3.7)
∴ D(dq,−dq) =− (Fq − Fp)
2
2(kpp − 2kpq + kqq
) . (A.3.8)
With this information at our disposition, we can search in each class the pair {p, q}rthat minimizes (A.3.8) and we can keep the one with the lowest value. Nevertheless,
for this we must perform a search with an order ofK∑r=1
mr · (mr − 1) checks. If we
consider a problem in which all classes have the same number of elements, we should
have K · (m/K) · (m/K − 1) = m · (m/K − 1), that is less than the m(m− 1) revisions
that must be done in the case of the C-SVM, but this operation has a quadratic growth
81
with respect to m. To avoid that this exhaustive search increases the algorithm runtime,
here we propose an heuristic similar to that proposed by Chen et al in [FCL05, CFL06],
this consisting in choosing p : Fp = βups and then searching q such that:
q = argmint
{−b2pt
2apt, t ∈ Ilow
s ∧ Ft > Fp
}(A.3.9)
where apt = kpp − 2kpt + ktt, bpt = Ft − Fp (A.3.10)
With this, we reduce the number of checks toK∑r=1
mr, which, for a problem with ba-
lanced classes, is equivalent to K · m/K = m. Note that a similar strategy can be
performed by choosing p : Fp = βlows . Note also that terms apt and bpt are the same
that those used in the calculation of the new values for the Lagrange multipliers in
step (A.2.10). Thus, once the pair to optimize {p, q}r is found, it is not necessary to
re-calculate these values.
In [FCL05, CFL06], Chen et al extended the application of this strategy for cases
in which a simetric Kernel that is not necessarily semi-definite positive is being used,
thus generating values of apt that are lower (or equal to) zero. For binary SVMs, they
proved that is enough to replace this value with apt = ς, were ς has a very small
positive value (0 < ς � 1). We have made tests of this extension in problems that
present different examples with identical characteristics (meaning that xp ≡ xt, which
generates apt = 0), finding the optimal solution without inconvenient, but we haven’t
proved the formal demonstration to validate said extension of the strategy in all the
cases that have been proved for binary SVMs.
A.4. Update System
Just as in the binary case, once the values of the two Lagrange multipliers to be
optimized, up and uq, are altered, the need to update the Fl’s values arises, let this be
to check if optimality has been reached or to continue in the search of new multipliers
to optimize. This calculation can be performed using the new and old values of up and
uq: up y uq:
Fnewl = Fold
l +(unew,clippedp − uold
p
)· kpl
2+(unew,clippedq − uold
q
)· kql
2(A.4.1)
82
A.5. SMO Algorithm for the AD-SVM
Having all the components of our solver defined, we can arrange them in an iterative
algorithm to perform the training process of the AD-SVM, as that shown in algorithm 3.
Algorithm 3 Example of SMO solver for the AD-SVM
1: Initialize u satisfying restrictions (A.1.2) and (A.1.3).
2: Calculate Ft, ∀t ∈ I.
3: Find βlowr and βup
r for each class r ∈ {1, . . . , K}.4: While (βlow
r − βupr )/βlow
r > 2τ for at least one class r ∈ {1, . . . , K} , do
5: For each class r ∈ {1, . . . , K} do
6: Select i : Fi = βupr .
7: Select j = arg mint
{− b2
it
2ait, t ∈ Ilow
r ∧ Ft > Fi
}.
8: end For
9: Choose the pair of Lagrange multipliers {ui, uj}r with minimal value −b2ij
2aijamong all classes r ∈ {1, . . . , K}.
10: Calculate{unew,clippedi , unew,clipped
j
}.
11: Update Ft, ∀t ∈ I.
12: Find new βlowr and new βup
r for each class r ∈ {1, . . . , K}.13: end While
It must be taken into account that algorithm 3 is very generic. The algorithm
implemented to perform the experiments in this work (available at [Can]) has a rather
more complex scheme, that utilizes internal and external loops similar to those proposed
by Platt in [Pla99]. Additionally to this, the implemented algorithm also counts with a
cache to store calculated Kernel products, that has a custom size defined by the user.
This cache follows the LRU (Least Recently Used) scheme, that discards elements that
least recently have been used when there is no more space to store new Kernel values.
83
Bibliografıa
[BB97] Kristin P. Bennett and Erin J. Bredensteiner. Geometry in Learning. Geo-metry at Work, 1997.
[BB00] Kristin P. Bennett and Erin J. Bredensteiner. Duality and Geometry inSVM Classifiers. Proc. 17th International Conf. on Machine Learning, pages57–64, 2000.
[BC10] Isabelle Bloch and Roberto M. Cesar, editors. Progress in Pattern Recog-nition, Image Analysis, Computer Vision, and Applications - 15th Iberoa-merican Congress on Pattern Recognition, CIARP 2010, Sao Paulo, Brazil,November 8-11, 2010. Proceedings, volume 6419 of Lecture Notes in Com-puter Science. Springer, 2010.
[BGV92] Bernhard E. Boser, Isabelle M. Guyon, and Vladimir N. Vapnik. A trainingalgorithm for optimal margin classifiers. In Proceedings of the 5th AnnualACM Workshop on Computational Learning Theory, pages 144–152. ACMPress, 1992.
[BM98] Cathy L. Blake and Christopher J. Merz. UCI repository of machine learningdatabases. http://mlr.cs.umass.edu/ml/index.html, 1998.
[Can] Diego Candel. Source code of the smo algorithm for the ad-svm. http:
//git.inf.utfsm.cl/?p=dcontard.git;a=summary.
[CB00] David J. Crisp and Christopher J. C. Burges. A Geometric Interpretationof ν-SVM Classifiers. Advances in Neural Information. Cambridge, USA:MIT, (12):244–250, 2000.
[CFL06] Pai-Hsuen Chen, Rong-En Fan, and Chih-Jen Lin. A study on SMO-typedecomposition methods for support vector machines. IEEE transactionson neural networks / a publication of the IEEE Neural Networks Council,17(4):893–908, July 2006.
[Cha07] Olivier Chapelle. Training a support vector machine in the primal. Neuralcomputation, 19(5):1155–78, May 2007.
84
[CL96] Thomas F. Coleman and Yuying Li. A reflective newton method for mi-nimizing a quadratic function subject to bounds on some of the variables.SIAM J. on Optimization, 6(4):1040–1058, 1996.
[CL01a] Chih-Chung Chang and Chih-Jen Lin. Libsvm data: Classification (multi-class). http://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/
multiclass.html, 2001.
[CL01b] Chih-Chung Chang and Chih-Jen Lin. Training ν-support vector classifiers:theory and algorithms. Neural computation, 13(9):2119–47, September 2001.
[CNCA10] Diego Candel, Ricardo Nanculef, Carlos Concha, and Hector Allende. A se-quential minimal optimization algorithm for the all-distances support vectormachine. In Bloch and Cesar [BC10], pages 484–491.
[Cra04] Koby Crammer. MCSVM 1.0: C code for multiclass svm. http://webee.
technion.ac.il/people/koby/code-index.html, 2004.
[CS01] Koby Crammer and Yoram Singer. On the algorithmic implementationof multiclass kernel-based vector machines. Journal of Machine LearningResearch, (2):265–292, 2001.
[CV95] Corinna Cortes and Vladimir Vapnik. Support-vector networks. MachineLearning, 20(3):273–297, 1995.
[FCL05] Rong-En Fan, Pai-Hsuen Chen, and Chih-Jen Lin. Working Set SelectionUsing Second Order Information for Training Support Vector Machines.Journal of Machine Learning Research, 6:1889–1918, 2005.
[FGL+10] Emanuele Frandi, Maria Grazia Gasparo, Stefano Lodi, Ricardo Nanculef,and Claudio Sartori. A new algorithm for training svms using approximateminimal enclosing balls. In Bloch and Cesar [BC10], pages 87–95.
[HSS08] Thomas Hofmann, Bernhard Scholkopf, and Alexander J. Smola. Kernelmethods in machine learning. Annals of Statistics, 36(3):1171–1220, 2008.
[Hul94] Jonathan J. Hull. A database for handwritten text recognition research.IEEE Trans. Pattern Anal. Mach. Intell., 16(5):550–554, 1994.
[Joa99] Thorsten Joachims. Making Large-Scale SVM Learning Practical. Advancesin Kernel Methods: Support Vector Learning, pages 169–184, 1999.
[Joa08] Thorsten Joachims. SVMmulticlass: Multi-class support vector machine.http://svmlight.joachims.org/svm_multiclass.html, 2008.
[Kar39] William Karush. Minima of functions of several variables with inequalitiesas side constraints. Master’s thesis, Dept. of Mathematics, Univ. of Chicago,1939.
85
[KG02] Selvaraj Sathiya Keerthi and Elmer G. Gilbert. Convergence of a Ge-neralized SMO Algorithm for SVM Classifier Design. Machine Learning,46(1):351–360, 2002.
[KSMB01] Selvaraj Sathiya Keerthi, Shirish K. Shevade, Karuturi R. Krishna Murthy,and Chiranjib Bhattacharyya. Improvements to Platt’s SMO Algorithm forSVM Classifier Design. Neural Computation, 13(3):637–649, 2001.
[KT51] Harold W. Kuhn and Albert W. Tucker. Nonlinear programming. In Proc.2nd Berkeley Symposium on Mathematical Statistics and Probabilistics, pa-ges 481–492, Berkeley, 1951. University of California Press.
[Lin01] Chih-Jen Lin. On the convergence of the decomposition method for supportvector machines. IEEE Transactions on Neural Networks, 12:1288–1298,2001.
[Lin02] Chih-Jen Lin. Asymptotic convergence of an smo algorithm without anyassumptions. IEEE Transactions on Neural Networks, 13:248–250, 2002.
[Lue84] David G. Luenberger. Linear and Nonlinear Programming. Addison-Wesley,Reading, MA, 1984.
[NCA+09] Ricardo Nanculef, Carlos Concha, Hector Allende, Diego Candel, and Clau-dio Moraga. Ad-svms: A light extension of svms for multicategory classi-fication. International Journal of Hybrid Intelligent Systems, 6(2):69–79,2009.
[OFG97] Edgar E. Osuna, Robert Freund, and Federico Girosi. Support vector ma-chines: Training and applications. Technical report, 1997.
[Pla99] John C. Platt. Fast training of support vector machines using sequentialminimal optimization. pages 185–208, 1999.
[PR98] John C. Platt and Microsoft Research. Sequential Minimal Optimization:A Fast Algorithm for Training Support Vector Machines. pages 1–21, 1998.
[SS01] Bernhard Scholkopf and Alexander J. Smola. Learning with Kernels: Sup-port Vector Machines, Regularization, Optimization, and Beyond. MITPress, Cambridge, MA, USA, 2001.
[SSWB00] Bernhard Scholkopf, Alex J. Smola, Robert C. Williamson, and Peter L.Bartlett. New support vector algorithms. Neural computation, 12(5):1207–45, May 2000.
[TKCC05] Ivor W. Tsang, James T. Kwok, Pak-Ming Cheung, and Nello Cristianini.Core vector machines: Fast svm training on very large data sets. Journalof Machine Learning Research, 6:363–392, 2005.
86
[Vap95] Vladimir N. Vapnik. The nature of statistical learning theory. Springer-Verlag, 1995.
87