Pérdida de bisagra con clasificador uno contra todos

9

Actualmente estoy mirando la forma primaria sin restricciones del clasificador uno contra todos

i=1NIk=1,kyiNKL(1+wkxiwyixi)

dónde

NI es el número de instancias, es el número de clases, es el número de características, es una matriz de datos , es un vector de etiquetas de clase, es una donde corresponde Para los pesos del hiperplano que divide una clase del resto, es una función de pérdida arbitraria.
N F X N K × N F y W N K × N I LNK
NF
XNK×NF
y
WNK×NI
L

Tengo entendido que el funcional anterior intenta encontrar un hiperplano para cada clase que maximice la distancia entre las muestras dentro de la clase asociada a todas las demás muestras. Si los hiperplanos están posicionados correctamente, entonces siempre debe ser negativo, siempre debe ser positivo y nuestra función de pérdida debe volver justamente bajo.w y i x iwkxiwyixi

Estoy tratando de implementar esto usando la pérdida de bisagra que creo que en este caso terminará siendo

max(0,1+wkxiwyixi ).

Sin embargo, en lo anterior no podríamos terminar con una situación en la que los hiperplanos clasifiquen todas las muestras como pertenecientes a cada clase. Por ejemplo, si estamos viendo el hiperplano separando la clase 1 de todas las demás clases, siempre que entonces la pérdida incurrida será 0 a pesar de que se clasifica como la clase incorrecta.1+wkxi<wyixixi

¿Dónde me he equivocado? ¿O no importa si es negativo o positivo siempre que termine con una puntuación más alta? Tengo la sensación de que mi uso de la función de bisagra como he descrito aquí es incorrecto, pero mi uso de Google hoy en día solo ha generado más confusión.wkxiwyixi

En una nota relacionada, ¿por qué hay un 1 en el funcional anterior? Creo que tendría poco impacto.

brcs
fuente

Respuestas:

2

Tu publicación parece ser en su mayoría correcta.

La forma en que se configuran los clasificadores lineales multiclase es que un ejemplo, , se clasifica por el hiperplano que proporciona la puntuación más alta: . No importa si estos puntajes son positivos o negativos.xargmaxkwkx

Si la pérdida de la bisagra para un ejemplo particular es cero, entonces esto significa que el ejemplo está clasificado correctamente. Para ver esto, la pérdida de la bisagra será cero cuando . Esta es una condición más fuerte que , lo que indicaría que el ejemplo que estaba correctamente clasificado como .1+wkxi<wyixikwkxi<wyixikiyi

El 1 en la pérdida de la bisagra está relacionado con el "margen" del clasificador.

La pérdida de la bisagra alienta a los puntajes de la clase correcta, no solo a ser más altos que los puntajes de todas las otras clases, , sino a ser más altos que estos puntajes por un factor aditivo.wyixiwkxi

Podemos usar el valor 1 para el margen porque la distancia de un punto desde un hiperplano se escala por la magnitud de los pesos lineales: es la distancia de desde el hiperplano con vector normal . Dado que los pesos son los mismos para todos los puntos del conjunto de datos, solo importa que el factor de escala — 1 — sea el mismo para todos los puntos de datos.w|w|xxw

Además, puede hacer que las cosas sean más fáciles de entender si parametriza la función de pérdida como . Actualmente tiene las funciones de pérdida en función del margen lineal, y este no es necesariamente el caso.L(x,y;w)

usuario1149913
fuente
Bienvenido al sitio. Puede usar aquí. Para que se procese correctamente, simplemente envuélvalo en signos de dólar únicos para matemática en línea (al igual que en un documento ) y signos de dólar dobles para matemática de visualización. Mire el historial de revisiones si necesita más ayuda. LATEXLATEX
cardenal
Además, supongo que es posible que haya tenido la intención de usar en \cdotlugar de \dot. Si es así, continúe y realice esas ediciones. Salud. :)
cardenal
0

Le falta el resultado / etiqueta binaria (que puede tomar el valor de +1 y -1 para una clase dada) en la función de pérdida: max (0, 1 - y * (w * x)) (vea los detalles a continuación).

En general, creo que la especificación anterior (tanto la notación como la función de pérdida) complica demasiado uno contra todos; en cambio, uno podría tomar una clase particular, construir + 1 / -1 resultado y así como la matriz de datos correspondiente X (con columnas Nf y filas Ni) y el vector de parámetros w para esa clase, y escriba la función de pérdida de bisagra correspondiente para un clasificador binario clásico para esa clase: suma (max (0, 1 - y * (w * x))) donde la suma está sobre todas las instancias de datos, x es una fila de X que corresponde a una instancia particular. Uno necesita "1" en la función de pérdida de bisagra (ya que y * (w * x)> = 1 corresponde a la predicción correcta del modelo en lo que respecta a la función de pérdida).

Yevgeny
fuente