¿Cuál es el propósito de usar un parámetro de penalización [matemática] C [/ matemática] en SVM?

* A2A *

Como se discutió en la respuesta de Arun Iyer a ¿Cuál es el propósito de usar la variable de holgura en SVM ?, agregamos variables de holgura para relajar nuestras restricciones y permitir el caso cuando no podemos encontrar un hiperplano que separe las dos clases con precisión. Como se muestra, en la segunda optimización en el enlace anterior, C es un parámetro ajustable que es el coeficiente de la variable objetivo [math] \ xi [/ math] que mide la cantidad de error que está haciendo el clasificador. C controla efectivamente cuánto error está dispuesto a permitirse en los datos de capacitación.

Si le das una C grande, entonces el optimizador buscará un clasificador con un pequeño margen que funcione bien en todos los puntos de los datos de entrenamiento. Si proporciona una C pequeña, el optimizador buscará un clasificador con un margen mayor a expensas de clasificar erróneamente algunos de los puntos de entrenamiento.

Anexo: Para comprender mejor lo que hace C, debe saber algo sobre la minimización del riesgo estructural, desafortunadamente eso es demasiado para mí en una sola respuesta de quora. Si está interesado, puedo sugerir enlaces para el mismo.


Miscelánea sobre “C” y “Minimización del riesgo estructural”
(Siéntase libre de ignorar esto, ya que puede ser algo desorientador para alguien nuevo en el problema de SVM)

En esta respuesta de intercambio de pila [1], doy una forma algo más simple de entender cómo se deriva la optimización SVM. Sin embargo, hay otra forma de derivar SVM. Esto proviene de las ideas desarrolladas durante una década o dos sobre la minimización empírica del riesgo [2,3]. La literatura empírica de minimización de riesgos muestra que con una probabilidad muy alta dado cualquier clasificador w, el error que w comete en los “datos completos” (tanto de lo que sabemos como de lo que no sabemos) está limitado por encima del error que w hace en los datos de entrenamiento “conocidos” y la complejidad de la clase de funciones a las que pertenece w.

Para SVM, [math] \ xi [/ math] indica el error cometido por un clasificador dado en los datos de entrenamiento y [math] \ | w \ | [/ math] denota la complejidad de la clase a la que pertenece w. Entonces, SVM esencialmente está minimizando el límite superior del error verdadero en todos los datos al hacer [math] min \ | w \ | + C \ | \ xi \ | [/ matemáticas].

Sin embargo, el material en [2, 3] supone que se nos da una clase de función fija de la que elegimos un único clasificador. Vapnik, luego hizo una pregunta, ¿qué pasa si tenemos muchas clases de funciones y necesitamos elegir un clasificador que funcione mejor entre todas esas clases? Esto se convirtió en un tema de estudio llamado minimización del riesgo estructural [4]. Uno de los casos que se mostraron para los que se pudieron probar algunos resultados fue cuando las clases de función forman una secuencia anidada [4].

En un mundo de optimización ligeramente diferente, somos conscientes de tres formas diferentes de optimización generalizada regular para las que hemos dado nombres: Tikhonov, Morozov e Ivanov [5]. Lo que se sabe de estos formularios es que para un problema de optimización en un formulario, existe un problema de optimización en otro formulario y estos dos son problemas equivalentes.

Ahora, [matemáticas] min \ | w \ | + C \ | \ xi \ | [/ math] es un problema de optimización en forma Tikhonov, lo que significa que existe otro problema de optimización en forma Ivanov como [math] min \ | \ xi \ | [/ math], sujeto a: [ matemáticas] \ | w \ | \ leq B [/ matemáticas]. Hasta el momento, no conocemos una relación precisa entre B y C, pero están relacionados.

Ahora, si usa una secuencia de valores de B tal que [math] B = B_1 <B_2 <B_3 \ ldots [/ math] y si construimos clases de funciones [math] H_i = \ {w | \ | w \ | \ leq B_i \} [/ math], entonces obtenemos una secuencia de clases de funciones que están anidadas. Esencialmente, diferentes valores de C esencialmente resuelven el problema SVM con diferentes clases de funciones y estas clases de funciones están anidadas. Esto implica que cuando intentamos seleccionar la mejor C mediante validación cruzada, en realidad estamos realizando la minimización de riesgos estructurales, donde C está "de alguna manera" relacionada con la complejidad de la clase de función.

[1] Página en stackexchange.com
[2] Minimización empírica del riesgo
[3] Página en columbia.edu
[4] http://www.svms.org/srm/
[5] http://regularize.wordpress.com/…

Como en los detalles de la pregunta, las variables de holgura y el parámetro de penalización se introducen para permitir márgenes suaves. El propósito de un margen suave es permitir que ocurra la clasificación en el caso de distribuciones de clase superpuestas. El parámetro de penalización en realidad permite errores; La formulación original para un clasificador de margen máximo requiere distribuciones de clase separables y no permite errores en los puntos de entrenamiento.

Lo que realmente hace el parámetro de penalización es penalizar suavemente los puntos que están en el lado equivocado del límite de decisión. Al definir el clasificador, minimiza

[matemática] C \ sum \ limits_ {n = 1} ^ N \ xi_n + \ frac {1} {2} \ left \ vert \ left \ vert \ mathbf {w} \ right \ vert \ right \ vert ^ 2 [ /mates]

donde [math] \ mathbf {w} [/ math] corresponde al vector que define el límite de decisión y [math] \ xi_n> 1 [/ math] para puntos clasificados incorrectamente, [math] \ xi_n = 1 [/ math] para puntos en el límite de decisión y [math] \ xi_n = 0 [/ math] para puntos correctamente clasificados. [math] C [/ math] se define como mayor que 0, y corresponde más o menos a la inversa de un parámetro de regularización. Si deja que [math] C \ to \ infty [/ math], el clasificador se acercará al clasificador de margen máximo habitual que no permite errores. Establecer [matemáticas] C [/ matemáticas] en alto generalmente causará un sobreajuste.

Referencia:

C. Bishop, reconocimiento de patrones y aprendizaje automático , Springer, 2006

El parámetro C le dice a la optimización de SVM cuánto desea evitar clasificar mal cada ejemplo de entrenamiento. Para valores grandes de C, la optimización elegirá un hiperplano de menor margen si ese hiperplano hace un mejor trabajo al clasificar correctamente todos los puntos de entrenamiento. Por el contrario, un valor muy pequeño de C hará que el optimizador busque un hiperplano de separación de mayor margen, incluso si ese hiperplano clasifica erróneamente más puntos. Para valores muy pequeños de C, debe obtener ejemplos mal clasificados, a menudo incluso si sus datos de entrenamiento son linealmente separables.

Consulte: ¿Cuál es la influencia de C en SVM con núcleo lineal?

C es el costo de clasificar erróneamente algo. Cuanto mayor sea la C, más se ajustará el SVM al conjunto de entrenamiento y luego correrá el riesgo de sobreajustar.

Alto C = bajo sesgo, alta varianza.
Bajo C = alto sesgo, baja varianza