1. 1
Máquina De Vectores De Soporte (SVM)
José Martin Sánchez Cardoso
Código: 084951132019
Juan Jairo Vélez
Código: 084951202019
Karen Romero Vaquiro
Código: 084951092019
Mauricio Moya Garzón
Código: 084950952019
Septiembre 2019.
Tutor: Ángel Alberto Vargas Cano
Universidad del Tolima
Ingeniería de Sistemas
Minería de Datos
Grupo 1
2. 2
TABLA DE CONTENIDO
INTRODUCCIÓN .................................................................................................... 3
OBJETIVOS ............................................................................................................ 5
OBJETIVO GENERAL ......................................................................................... 5
OBJETIVO ESPECIFICO..................................................................................... 5
MÁQUINA DE VECTORES DE SOPORTE (SVM) ................................................. 6
HISTORIA............................................................................................................ 8
CLASIFICACIÓN ÓPTIMA CON MÁQUINAS DE VECTORES DE SOPORTE... 9
¿Por qué se llaman Máquinas de Vectores de Soporte?.................................. 9
REGULARIZACIÓN ........................................................................................... 10
EL TRUCO DEL KERNEL EN SVM................................................................... 11
IDEA BÁSICA .................................................................................................... 12
Elección de la frontera de decisión ................................................................. 13
Ejemplos: ....................................................................................................... 14
Soft margin: Errores de entrenamiento........................................................... 16
Función Kernel................................................................................................ 17
Tipos de funciones Kernel (Núcleo)................................................................ 18
MÁQUINA DE SOPORTE VECTORIAL PARA CLASIFICACIÓN ..................... 19
Tipos de Máquinas de Soporte Vectorial para la clasificación........................ 19
MÁQUINA DE SOPORTE VECTORIAL PARA REGRESIÓN ........................... 19
Tipos de Máquinas de Soporte Vectorial para la regresión ............................ 20
SVM MULTICLASE............................................................................................ 20
APLICACIONES DE LAS MÁQUINAS DE VECTORES DE SOPORTE............ 21
CONCLUSIONES ................................................................................................. 23
BIBLIOGRAFIA ..................................................................................................... 24
3. 3
INTRODUCCIÓN
Actualmente la inteligencia artificial ha tomado una gran fuerza y aceptación a
nivel tanto industrial como residencial, debido a que muchas de sus aplicaciones
ayudan o apoyan al ser humano en sus actividades diarias tanto las cotidianas
como laborales; algunas aplicaciones de la inteligencia artificial son : Lingüística
computacional, Minería de datos (Data Mining), Industriales, Medicina, Mundos
virtuales, Procesamiento (Natural Language Processing), Robótica, Mecatrónica,
Sistemas de apoyo a la decisión, Videojuegos, Prototipos informáticos y Análisis
de sistemas dinámicos, entre otros.
Basada en algoritmos de computación, lógica y matemática ; es una herramienta
tan densa y útil, que ha sido clasificada en varios campos, por ejemplo las
machine learning o (máquinas de aprendizaje) las cuales son una rama de la
inteligencia artificial, y tienen como objeto el desarrollo de técnicas y procesos que
permitan que una computadora o un algoritmo computacional sea capaz de
aprender ; dicho de otra manera que sea capaz de generalizar una idea a partir de
ejemplos que le son suministrados; y así lograr predecir, clasificar y pronosticar; el
comportamiento de un sistema.
En 1959, Arthur L. Samuel define el aprendizaje de máquina como un "campo de
estudio que da a las computadoras la capacidad de aprender sin ser programada
de forma explícita"; su entrenamiento con bases de datos y ejemplos adecuados,
ayuda a la máquina de aprendizaje a ser más precisa y eficiente en su labor, son
sumamente utilices debido a su capacidad de aprendizaje; lo cual genera que en
ocasiones encuentre soluciones que no se habían programado en el sistema, es
decir que el sistema de datos puede ser variable y aun así, si la máquina de
aprendizaje tuvo un buen entrenamiento será capaz de analizar, predecir y
solucionar el problema que se le presente.
Son tan variadas y versátiles sus aplicaciones que lo encontramos incluso en el
simple hecho de ver una película online, como es el caso de la plataforma virtual
Netflix la cual utiliza el aprendizaje automático para dar a sus usuarios
4. 4
sugerencias de las películas que posiblemente le interesen, basándose en las
programadas anteriormente.
Otra de las aplicaciones más renombras del aprendizaje automático, son los
automóviles no tripulados de google, los cuales basan parte de su funcionamiento
en esta rama de la inteligencia artificial.
Entre las distintas clasificaciones de máquinas de aprendizaje se encuentra,
Máquinas de vectores de soporte, esto son otro tipo de algoritmo de machine
learning supervisado aplicable a problemas de regresión y clasificación, aunque se
usa más comúnmente como modelo de clasificación. Las máquinas de vector
soporte suponen una generalización de un clasificador simple
denominado maximal margin classifier. Sin embargo, este clasificador no puede
aplicarse a sets de datos donde las clases de la variable respuesta no son
separables mediante un límite lineal. Una extensión del mismo, el support vector
classifier es aplicable en un mayor rango de casos. El support vector
machine supone una extensión más del support vector classifier para casos
con límites no lineales entre clases (clasificación binaria o de más clases).
5. 5
OBJETIVOS
OBJETIVO GENERAL
Comprender la definición Máquina de Vectores de Soporte, abarcando desde
los aspectos de modelo matemático, tipos, gráficos, ejemplos, etc. Además
explicando de manera general sus distintas aplicaciones, en especial en el
mundo del data mining.
OBJETIVO ESPECIFICO
Comprender la descripción e historia de Máquina de Vectores de
Soporte.
Ofrecer un preámbulo a los lectores sobre Máquina de Vectores de
Soporte.
Observar como la Máquina de Vectores de Soporte puede ser una
alternativa a las Redes Neuronales
6. 6
MÁQUINA DE VECTORES DE SOPORTE (SVM)
Una máquina de vectores de soporte (SVM) es un algoritmo de aprendizaje
supervisado que se puede emplear para clasificación binaria o regresión. Las
máquinas de vectores de soporte son muy populares en aplicaciones como el
procesamiento del lenguaje natural, el habla, el reconocimiento de imágenes y
la visión artificial.
Estos métodos están propiamente relacionados con problemas de clasificación y
regresión. Dado un conjunto de ejemplos de entrenamiento (de muestras)
podemos etiquetar las clases y entrenar una SVM para construir un modelo que
prediga la clase de una nueva muestra. Intuitivamente, una SVM es un modelo
que representa a los puntos de muestra en el espacio, separando las clases a 2
espacios lo más amplios posibles mediante un hiperplano de separación definido
como el vector entre los 2 puntos, de las 2 clases, más cercanos al que se llama
vector soporte. Cuando las nuevas muestras se ponen en correspondencia con
dicho modelo, en función de los espacios a los que pertenezcan, pueden ser
clasificadas a una o la otra clase.
Una máquina de vectores de soporte construye un hiperplano óptimo en forma de
superficie de decisión, de modo que el margen de separación entre las dos clases
en los datos se amplía al máximo. Los vectores de soporte hacen referencia a un
pequeño subconjunto de las observaciones de entrenamiento que se utilizan como
soporte para la ubicación óptima de la superficie de decisión.
El entrenamiento de una máquina de vectores de soporte consta de dos fases:
1. Transformar los predictores (datos de entrada) en un espacio de
características altamente dimensional. En esta fase es suficiente con
especificar el kernel; los datos nunca se transforman explícitamente al espacio
de características. Este proceso se conoce comúnmente como el truco kernel.
7. 7
2. Resolver un problema de optimización cuadrática que se ajuste a un
hiperplano óptimo para clasificar las características transformadas en dos
clases. El número de características transformadas está determinado por el
número de vectores de soporte.
Para construir la superficie de decisión solo se requieren los vectores de soporte
seleccionados de los datos de entrenamiento. Una vez entrenados, el resto de los
datos de entrenamiento son irrelevantes.
Entre los kernels populares que se emplean con las máquinas SVM se incluyen:
Tipo de SVM Kernel Mercer Descripción
Función de
base radial
(RBF)
o gaussiana
K(x1,x2)=exp(−∥x1−x2∥22σ2)K(x1,x2)=exp(−‖x
1−x2‖22σ2)
Aprendizaje de una
sola clase; σσes la
anchura del kernel
Lineal K(x1,x2)=xT1x2K(x1,x2)=x1Tx2 Aprendizaje de dos
clases
Polinómica K(x1,x2)=(xT1x2+1)ρK(x1,x2)=(x1Tx2+1)ρ ρρ es el orden del
polinomio
Sigmoid K(x1,x2)=tanh(β0xT1x2+β1)K(x1,x2)=tanh(β0x
1Tx2+β1)
Es un kernel
Mercer solo para
determinados
valores β0β0 y β1β
1
8. 8
HISTORIA
En épocas históricas, donde los intentos resultaban prematuros en relación a la
tecnología disponible, podemos considerar que el camino hacia la construcción de
máquinas inteligentes comienza en la Segunda Guerra Mundial, con el diseño de
ordenadores analógicos ideados para controlar cañones antiaéreos o para la
navegación. A partir de 1937 comienza el desarrollo de las primeras
computadoras como la Máquina de Turing hasta llegar a 1957 donde A. Newell, H.
Simon y J. Shaw presentaron el primer programa capaz de razonar sobre temas
arbitrarios. Hacia 1960 John McCarthy, acuña el término de inteligencia artificial,
para definir los métodos algorítmicos capaces de simular el pensamiento humano
en los ordenadores.
Entre los métodos teóricos más utilizados están las Redes Neuronales Artificiales
(RNA). Las RNA se han integrado dentro de los métodos ya clásicos del análisis
de las relaciones cuantitativas entre la estructura y la actividad biológica u otras
propiedades. Constituyen una de las áreas de la inteligencia artificial que ha
despertado mayor interés en los últimos años. La razón principal es que
potencialmente son capaces de resolver problemas cuya solución por otros
métodos convencionales resulta extremadamente difícil dada su capacidad de
aprender. Estos modelos de aprendizaje se clasifican en: Híbridos, Supervisados,
No Supervisados y Reforzados. Dentro de los Supervisados se encuentra la
técnica: Máquinas de Soporte Vectorial (MSV). Las MSV son un paradigma aparte
de la Redes Neuronales, pero a pesar de tener similitudes están mejor
fundamentadas en la teoría y tienen mucho mejor capacidad de generalización.
En la actualidad, las Máquinas de Soporte Vectorial pueden ser utilizadas para
resolver problemas tanto de clasificación como de regresión. Algunas de las
aplicaciones de clasificación o reconocimiento de patrones son: reconocimiento de
firmas, reconocimiento de imágenes como rostros y categorización de textos. Por
9. 9
otro lado, las aplicaciones de regresión incluyen predicción de series de tiempo y
problemas de inversión en general.
CLASIFICACIÓN ÓPTIMA CON MÁQUINAS DE VECTORES DE SOPORTE
La línea que mejor distingue las zona de los puntos azules de la zona de los
puntos rojos es la línea que maximiza el margen entre ambos. Las máquinas de
vectores de soporte son una técnica de machine learning que encuentra la mejor
separación posible entre clases. Con dos dimensiones es fácil entender lo que
está haciendo. Normalmente, los problemas de aprendizaje automático tienen
muchísimas dimensiones. Así que en vez de encontrar la línea óptima, el SVM
encuentra el hiperplano que maximiza el margen de separación entre clases.
¿Por qué se llaman Máquinas de Vectores de Soporte?
Se llama «máquina» en español por la parte de «machine» learning. Los vectores
de soporte son los puntos que definen el margen máximo de separación del
hiperplano que separa las clases. Se llaman vectores, en lugar de puntos, porque
estos «puntos» tienen tantos elementos como dimensiones tenga nuestro espacio
10. 10
de entrada. Es decir, estos puntos multi-dimensionales se representan con con
vector de n dimensiones.
REGULARIZACIÓN
Es bastante frecuente que los datos tenga ruido, que no estén etiquetados
perfectamente, o que el problema sea tan difícil que para unos pocos puntos, sea
muy complicado clasificarlos correctamente. Para estos casos, podemos decirle al
SVM (Support Vector Machine), que preferimos que generalice bien para la
mayoría de los casos, aunque algunos pocos casos del conjunto de entrenamiento
no estén perfectamente clasificados. Recuerda que lo que normalmente vamos
buscando es la construcción de modelos de aprendizaje automático
que generalicen bien. Para controlar la cantidad de regularización, podemos usar
el hiper-parámetro C, que hace las veces del inverso del alfa que vimos en
las regularizaciones Ridge, Lasso y ElasticNet.
11. 11
EL TRUCO DEL KERNEL EN SVM
Hay veces en las que no hay forma de encontrar una hiperplano que permita
separar dos clases. En estos casos decimos que las clases no son linealmente
separables. Para resolver este problema podemos usar el truco del kernel.
El truco del kernel consiste en inventar una dimensión nueva en la que podamos
encontrar un hiperplano para separar las clases. En la siguiente figura vemos
cómo al añadir una dimensión nueva, podemos separar fácilmente las dos clases
con una superficie de decisión.
12. 12
IDEA BÁSICA
Dado un conjunto de puntos, subconjunto de un conjunto mayor (espacio), en el
que cada uno de ellos pertenece a una de dos posibles categorías, un algoritmo
basado en SVM construye un modelo capaz de predecir si un punto nuevo (cuya
categoría desconocemos) pertenece a una categoría o a la otra.
Como en la mayoría de los métodos de clasificación supervisada, los datos de
entrada (los puntos) son vistos como un vector p-dimensional (una lista
ordenada de p números).
La SVM busca un hiperplano que separe de forma óptima a los puntos de una
clase de la de otra, que eventualmente han podido ser previamente proyectados a
un espacio de dimensionalidad superior.
En ese concepto de "separación óptima" es donde reside la característica
fundamental de las SVM: este tipo de algoritmos buscan el hiperplano que tenga la
máxima distancia (margen) con los puntos que estén más cerca de él mismo. Por
eso también a veces se les conoce a las SVM como clasificadores de margen
máximo. De esta forma, los puntos del vector que son etiquetados con una
categoría estarán a un lado del hiperplano y los casos que se encuentren en la
otra categoría estarán al otro lado.
Los algoritmos SVM pertenecen a la familia de los clasificadores lineales. También
pueden ser considerados un caso especial de la regularización de Tikhonov.
En la literatura de los SVMs, se llama atributo a la variable predictora
y característica a un atributo transformado que es usado para definir el hiperplano.
La elección de la representación más adecuada del universo estudiado, se realiza
mediante un proceso denominado selección de características.
Al vector formado por los puntos más cercanos al hiperplano se le llama vector de
soporte.
13. 13
Los modelos basados en SVMs están estrechamente relacionados con las redes
neuronales. Usando una función kernel, resultan un método de entrenamiento
alternativo para clasificadores polinomiales, funciones de base
radial y perceptrón multicapa.
Elección de la frontera de decisión
Considermos un problema de clasificación linealmente separable; Son posibles
muchas fronteras de decisión. ¿Son todas igual de buenas?
Como vemos, existe un número infinito de posibles hiperplanos (líneas) que
realicen la clasificación pero, ¿cuál es la mejor y cómo la definimos?
Para ello debemos:
Maximizar el margen m
Calcular la distancia entre el orígen y la línea, que se calcula así:
w^t x = k ; x= k/w*t
14. 14
Ejemplos:
Veamos dos ejemplos en los que partimos de un montón de datos sin clasificar y
los clasificamos, aplicando algún algoritmo SVM, en 2 grupos o bandos:
15. 15
Donde:
Input space : el espacio de los xi (o donde están los datos originalmente).
Feature space : el espacio de los φ(xi) (o el espacio de los datos después
de aplicar una transformación).
Pasos:
Generar/elegir la línea frontera o de decisión que divida el plano o el espacio.
Transformar Xi a un espacio de dimensión superior mediante una función φ.
¿Por qué transformar?: A menudo el problema se vuelve más sencillo.
16. 16
Problema derivado de la transformación: calcular en el espacio transformado
muchas veces es computacionalmente costoso, ya que es posible que se aumente
la dimensionalidad:
o Solución: Usar kernels
Soft margin: Errores de entrenamiento
Idealmente, el modelo basado en SVM debería producir un hiperplano que separe
completamente los datos del universo estudiado en dos categorías.
Sin embargo, una separación perfecta no siempre es posible y, si lo es, el
resultado del modelo no puede ser generalizado para otros datos. Esto se conoce
como sobreajuste (overfitting).
Con el fin de permitir cierta flexibilidad, los SVM manejan un parámetro C que
controla la compensación entre errores de entrenamiento y los márgenes rígidos,
creando así un margen blando (soft margin) que permita algunos errores en la
clasificación a la vez que los penaliza.
17. 17
Función Kernel
a manera más simple de realizar la separación es mediante una línea recta, un
plano recto o un hiperplano N-dimensional.
Desafortunadamente los universos a estudiar no se suelen presentar en casos
idílicos de dos dimensiones como en el ejemplo anterior, sino que un algoritmo
SVM debe tratar con a) más de dos variables predictoras, b) curvas no lineales de
separación, c) casos donde los conjuntos de datos no pueden ser completamente
separados, d) clasificaciones en más de dos categorías.
Debido a las limitaciones computacionales de las máquinas de aprendizaje lineal,
éstas no pueden ser utilizadas en la mayoría de las aplicaciones del mundo real.
La representación por medio de funciones Kernel ofrece una solución a este
problema, proyectando la información a un espacio de características de mayor
dimensión el cual aumenta la capacidad computacional de la máquinas de
aprendizaje lineal. Es decir, mapearemos el espacio de entradas X a un nuevo
espacio de características de mayor dimensionalidad (Hilbert):
F = {φ(x)|x ∈ X}
x = {x1, x2, · · ·, xn} → φ(x) = {φ1(x), φ2(x), · · ·, φn(x)}
18. 18
Tipos de funciones Kernel (Núcleo)
Polinomial-homogénea: K(xi, xj) = (xi·xj)n
Perceptron: K(xi, xj)= || xi-xj ||
Función de base radial Gaussiana: separado por un hiperplano en el espacio
transformado.
K(xi, xj)=exp(-(xi-xj)2
/2(sigma)2
)
19. 19
Sigmoid: K(xi, xj)=tanh(xi· xj−θ)
MÁQUINA DE SOPORTE VECTORIAL PARA CLASIFICACIÓN
Entre las aplicaciones más relevantes de las MSV se encuentra la Clasificación, el
problema de la clasificación puede reducirse a examinar dos clases sin pérdida de
generalidad. La tarea es encontrar un clasificador que funcione bien en datos
futuros, es decir que generalice bien la clasificación.
Tipos de Máquinas de Soporte Vectorial para la clasificación
Dentro de las máquinas de soporte vectorial para la clasificación se encuentran:
C_SVC.
nu-SVC.
one_class.
MÁQUINA DE SOPORTE VECTORIAL PARA REGRESIÓN
Las MSV se desarrollaron inicialmente para solucionar problemas de clasificación,
pero se han ampliado para problemas de regresión. Los resultados finales a los
que se puede arribar luego del empleo de las MSV pueden ser cualitativos o
cuantitativos, para el análisis cuantitativo se emplean MSV para regresión. Dicho
método es una extensión del anteriormente explicado donde se incluyen los
estimadores de rangos. El empleo de estos determinan los valores que tienen
ruido dentro de la predicción a través de funciones de pérdida, donde los primeros
20. 20
pasos en este sentido se dieron por Tuckey quien demostró que, en situaciones
reales, se desconoce el modelo del ruido y dista de las distribuciones supuestas. A
raíz de esto, Huber crea el concepto de estimadores robustos los cuales están
determinados por funciones de pérdida. En la actualidad, las más utilizadas son:
las funciones de pérdida cuadrática y lineal, y la de Huber, entre otras. En este
tipo de técnicas, su estructura se determina sobre la base del conjunto de
entrenamiento necesitándose pocos parámetros para el mismo. Dicho
entrenamiento se reduce a la solución de un problema de optimización que se
reduce a un problema de programación cuadrática. Al mismo tiempo, el uso de las
funciones Kernels muestra una gran eficiencia en el resultado de la predicción.
La idea básica de SVR consiste en realizar un mapeo de los datos de
entrenamiento x ∈ X, a un espacio de mayor dimensión F a través de un mapeo no
lineal φ: X → F, donde podemos realizar una regresión lineal.
Tipos de Máquinas de Soporte Vectorial para la regresión
Epsilon_SVR.
NU_SVR.
SVM MULTICLASE
Hay dos filosofías básicas para resolver el problema de querer clasificar los datos
en más de dos categorías:
a) cada categoría es dividida en otras y todas son combinadas.
b) se construyen k(k-1) / 2 modelos donde k es el número de categorías.
COMPARATIVA SVM VS ANN
La siguiente tabla muestra una comparativa entre las redes neuronales artificiales
y los algoritmos SVM.
21. 21
APLICACIONES DE LAS MÁQUINAS DE VECTORES DE SOPORTE
Las máquinas de vectores de soporte eran muy utilizadas antes de la era del
aprendizaje profundo. Para muchas aplicaciones se prefería el uso de SVM en
lugar de redes neuronales. La razón era que las matemáticas de los SVM se
entiende muy bien y la propiedad de obtener el margen de separación máximo era
muy atractivo. Las redes neuronales podrían realizar clasificación de forma
equivocada como hemos visto en los ejemplos anteriores.
Algunos casos de éxito de las máquinas de vectores de soporte son:
reconocimiento óptico de caracteres
detección de caras para que las cámaras digitales enfoquen correctamente
filtros de spam para correo electrónico
reconocimiento de imágenes a bordo de satélites (saber qué partes de una
imagen tienen nubes, tierra, agua, hielo, etc.)
Actualmente, las redes neuronales profundas tienen una mayor capacidad de
aprendizaje y generalización que los SVM.
23. 23
CONCLUSIONES
Una lección aprendida en las SVM: un algoritmo lineal en el espacio de
características es equivalente a un algoritmo no lineal en el espacio de entrada.
Algoritmos clásicos pueden ser generalizados a su versión no lineal yendo al
espacio de características.
El kernel de análisis de componente principal, el kernel de análisis de
componente independiente, el kernel de análisis de correlación canónico, el
kernel k-means, las SVM en 1D son algunos ejemplos.
Las SVM son una buena alternativa a las redes neuronales.
Dos conceptos claves de SVM: maximizar el margen y el truco del kernel.
Muchas investigaciones se encuentran activas alrededor de áreas relacionadas
con SVM