Función de pérdida de clasificación de pérdida por pares (Serie 2)

Siguiendo la introducción de los indicadores de clasificación en el artículo anterior sobre la recopilación de indicadores de clasificación (Serie 1) , continuaremos clasificando la función de pérdida en la clasificación.

La pérdida de clasificación se utiliza en muchos campos y tareas de redes neuronales (como redes siamesas o redes tripletes), por lo que tiene tantos nombres como pérdida contrastiva, pérdida de margen, pérdida de bisagra o pérdida triple.

1.Función de pérdida de clasificación: aprendizaje de métricas

Las funciones de pérdida como la pérdida de entropía cruzada o la pérdida de error de Squear medio están diseñadas para predecir directamente una etiqueta o un valor, mientras que el propósito de la pérdida de clasificación es predecir la distancia relativa entre muestras de entrada. Estas tareas suelen denominarse aprendizaje métrico.

Las funciones de pérdida de clasificación son muy flexibles con respecto a los datos de entrenamiento: solo necesitamos conocer las puntuaciones de similitud entre los datos para usarlas. Esta puntuación de similitud puede ser bidimensional (similar/disimilar). Por ejemplo, imagine un conjunto de datos de reconocimiento facial en el que sabemos qué imágenes de rostros pertenecen a la misma persona (similares) y cuáles no (disimilares). Usando la función de pérdida de clasificación, podemos entrenar una red CNN para inferir si dos imágenes faciales pertenecen a la misma persona.

Para usar la función de pérdida de clasificación, primero necesitamos definir un extractor de características, que puede extraer incrustaciones que caracterizan las muestras de 2 o 3 muestras; luego definimos una función que puede medir su similitud, como la distancia de Euler; finalmente, cuando Al entrenar un extractor de características, bajo la condición de muestras similares, las incrustaciones generadas estarán cerca entre sí, mientras que para muestras diferentes, la distancia entre ellas será mayor.

No nos importan los valores correspondientes a las incrustaciones, solo su distancia. Sin embargo, se ha demostrado que este método de entrenamiento produce representaciones poderosas para diferentes tareas.

2.Expresión de pérdidas de clasificación

Las Pérdidas de Ranking tienen diferentes nombres, pero en la mayoría de los escenarios su formulación es simple y constante. Hay dos formas que utilizamos para distinguir diferentes pérdidas de clasificación: datos de entrenamiento binarios (pérdida de clasificación por pares) o datos de entrenamiento tripletes (pérdida de clasificación triplete).

Ambos comparan la distancia entre representaciones de los datos de entrenamiento.

2.1.Pérdida de clasificación por pares

Insertar descripción de la imagen aquí
Esta configuración utilizará el conjunto de entrenamiento de pares de muestras positivas y pares de muestras negativas. Los pares de muestras positivas contienen muestras de anclaje xa x_aXuny muestra positiva xp x_pXpxp x_pXpxa x_aXunDe manera similar, el par de muestras negativas consta de la muestra ancla xa x_aXuny muestras negativas xn x_nXnorteCompuesto, en la métrica es lo mismo que xa x_aXunno es similar.

Para pares de muestras positivas, el objetivo es aprender su representación de modo que la distancia entre ellas sea ddCuanto menor sea d , mejor; para pares de muestras negativos, se requiere que la distancia entre muestras exceda un margen demmm . La pérdida de clasificación por pares requiere que la distancia expresada entre pares de muestras positivas sea 0, mientras que la distancia entre pares de muestras negativas debe exceder un margen. Usamosra r_arunrp r_prpy rn r_nrnortepara representar las expresiones de muestras ancla, muestras positivas y muestras negativas respectivamente, ddd es un infinitesimal, infinitesimal:
L = { d ( ra , rp ) si P positivo P airmax ( 0 , m − d ( ra , rn ) ) si N negativo P aire L = \left\{\begin{ . Matrix } & d ( r_a , r_p ) & & if & Par positivo \ \ & max ( 0 , m - d ( r_a , r_n )) & & if & Par negativo \ end { matriz } \ rightl={ re ( run,rp)máximo ( 0 , _metrore ( run,rnorte) )si _yo fPar positivo _ _ _ _ _ _ _ _Par negativo _ _ _ _ _ _ _ _ _

Para pares de muestras positivas, la pérdida es 0 solo cuando no hay distancia entre las representaciones de los dos elementos producidos por la red, y la pérdida aumenta con la distancia.

Para un par de muestras negativo, cuando la distancia entre las representaciones de los dos elementos excede el margen mmCuando m , la pérdida es 0. Sin embargo, cuando la distancia es inferior ammm , la pérdida es un valor positivo. En este momento, los parámetros de la red se actualizarán para ajustar la expresión de estos elementos. Cuandora r_aruny rn r_nrnorteCuando la distancia es 0, la pérdida alcanza el valor máximo mmm . La función del margen es que cuando las representaciones generadas por los pares de muestras negativas están lo suficientemente lejos, no se desperdiciará energía en expandir esta distancia, por lo que el entrenamiento adicional puede centrarse en muestras más difíciles.

Supongamos r 0 r_0r0y r 1 r_1r1es la representación de la muestra, yyCuando y es 0, representa un par de muestras negativo, y cuando es 1, representa un par de muestras positivas. La distancia está representada por la distancia de Euler. También podemos escribir Pérdida como:
L (ra, rp, rn) = yd ( ra , rp ) + ( 1 − y ) max ( 0 , m − d ( ra , rn ) ) L(r_a,r_p,r_n) = yd(r_a,r_p) + (1-y)max(0, md (r_a,r_n))L ( run,rp,rnorte)=la d ( run,rp)+( 1y ) máx ( 0 , _metrore ( run,rnorte))

2.2.Pérdida de clasificación del triplete

Insertar descripción de la imagen aquí

El modelo funciona mejor cuando se entrena utilizando triplete en lugar de binario. Trillizos triplete por muestra de anclaje xa x_aXun, muestra positiva xp x_pXpy muestras negativas xn x_nXnortecomposición. El objetivo del modelo es la distancia d (ra, rn) d(r_a, r_n) expresada entre la muestra ancla y la muestra negativa.re ( run,rnorte) que la distancia d ( ra , rp )expresada entre la muestra ancla y la muestra positivare ( run,rp) mayor en un margenmmm . Podemos escribir así:L ( ra , rp , rn ) = max ( 0 , m + d ( ra , rp ) − d ( ra , rn ) ) L(r_a,r_p,r_n) = max(0,m + d (r_a,r_p) - d(r_a,r_n))L ( run,rp,rnorte)=máximo ( 0 , _metro+re ( run,rp)re ( run,rnorte))

Analicemos las tres situaciones de esta pérdida:

Trillizos fáciles: d (ra, rn) > d (ra, rp) + md(r_a,r_n) > d(r_a,r_p) + mre ( run,rnorte)>re ( run,rp)+m , en relación con la distancia entre las muestras positivas y las muestras de anclaje, la distancia entre las muestras negativas y las muestras de anclaje es lo suficientemente grande. En este momento, la pérdida es 0 y no es necesario actualizar los parámetros de la red.
Tripletes duros:d ( ra , rn ) < d ( ra , rp ) d(r_a,r_n) < d(r_a,r_p)re ( run,rnorte)<re ( run,rp) . La distancia entre la muestra negativa y la muestra ancla es más cercana que la distancia entre la muestra positiva y la muestra ancla, en este momento la pérdida es positiva y es menor quemmm大。
Trillizos semiduros:d ( ra , rp ) < d ( ra , rn ) < d ( ra , rp ) + md(r_a,r_p) < d(r_a,r_n) < d(r_a,r_p) + metrore ( run,rp)<re ( run,rnorte)<re ( run,rp)+m . La distancia entre la muestra ancla y la muestra negativa es mayor que la muestra positiva, pero no excede el margenmmm , por lo que la pérdida sigue siendo positiva (pero menor quemmmetro)。

2.3 Selección de muestras negativas

Un paso importante en el entrenamiento de Triplet Ranking Loss es la selección de muestras negativas. La estrategia de seleccionar muestras negativas afectará directamente el efecto del modelo. Obviamente, las muestras negativas de Easy Triplets deben evitarse porque su pérdida es 0.

La primera estrategia es utilizar muestreo de tripletes fuera de línea, lo que significa que los trillizos se preparan antes del entrenamiento. El otro es el muestreo de tripletes en línea, que define tripletes en cada lote de entrenamiento. La eficiencia del entrenamiento de este método es relativamente alta.

La mejor solución de selección de muestras negativas depende en gran medida de la tarea en sí. Para obtener más información sobre este aspecto, puede consultar este blog.

Introducción a la pérdida de triplete del aprendizaje profundo: aprendizaje de similitudes de imágenes detalladas con clasificación profunda y FaceNet: una incrustación unificada para el reconocimiento facial y la agrupación.
Este github contiene visualizaciones interesantes de pérdida de entropía cruzada, pérdida de clasificación por pares y pérdida de clasificación de triplete, todas las cuales Basado en el conjunto de datos MINST.

3. Otros nombres para la pérdida de clasificación

La pérdida de clasificación presentada anteriormente es básicamente la misma en muchas aplicaciones diferentes o solo tiene cambios menores. Sin embargo, suelen utilizar nombres diferentes, lo que puede causar confusión, te explico:

Pérdida de clasificación: este nombre proviene del campo de la recuperación de información, donde queremos entrenar un modelo para clasificar objetos en un orden específico.
Pérdida de margen: El nombre proviene del hecho de que sus pérdidas utilizan un margen para medir la distancia entre representaciones de muestra.
Pérdida contrastiva: Contrastiva significa que estas pérdidas se calculan comparando las representaciones de dos o más puntos de datos. Este nombre se usa a menudo para la pérdida de clasificación por pares, pero nunca lo he visto usado en Trillizos.
Pérdida de triplete: cuando se utiliza el entrenamiento de triplete, a menudo se usa como el nombre de Pérdida.
Pérdida de bisagra: también conocida como objetivo de maximizar el margen, a menudo se utiliza para entrenar SVM para la clasificación. Tiene un mecanismo similar, optimizando hasta el valor del margen. Es por eso que aparece a menudo en las pérdidas de clasificación.

4.Redes siamesas y tripletes.

Las redes siamesas y tripletes corresponden a pérdida de clasificación por pares y pérdida de clasificación triplete, respectivamente. En estos modelos, las redes utilizadas para calcular representaciones de muestras de pares o tripletes generalmente comparten parámetros (por ejemplo, usando la misma CNN).

4.1.Red siamesa

La red siamesa consta de dos CNN con los mismos parámetros compartidos (los parámetros de las dos CNN son los mismos). Cada CNN procesa una imagen, genera representaciones de las dos imágenes y luego calcula la distancia entre las dos representaciones. Finalmente, utiliza Pérdida de clasificación por pares para entrenar la red. Imágenes similares producen representaciones con una distancia pequeña, mientras que imágenes diferentes producen una distancia mayor.

Suponiendo que [fórmula] es una red CNN, podemos escribir la pérdida de clasificación por pares como:
L ( x 0 , x 1 , y ) = y ∥ f ( x 0 ) − f ( x 1 ) ∥ + ( 1 − y ) max ( 0 , m − ∥ f ( x 0 ) − f ( x 1 ) ∥ ) L(x_0,x_1,y) = y\left \| f(x_0) - f(x_1) \right \| + (1- y ) máx(0,m - \left \| f(x_0) - f(x_1) \right \|)L ( x0,X1,y )=yf ( x0)f ( x1) +( 1y ) máx ( 0 , _metrof ( x0)f ( x1) )

4.2.Red triplete

La idea es consistente con la red siamesa, pero la red Triplet tiene 3 ramas (3 CNN con parámetros compartidos), la entrada del modelo es 1 muestra positiva, 1 muestra negativa y la muestra de anclaje correspondiente, y la pérdida de clasificación de Triplet se utiliza para entrenarlo. . Para imágenes ancla, el modelo puede aprender las diferencias entre imágenes similares y diferentes al mismo tiempo.

En la red Triplet, dado que la misma [fórmula] CNN produce una representación de 3 elementos, podemos escribir la pérdida de clasificación del Triplet como:
L (xa, xp, xn) = max (0, m + ∥ f (xa) − f ( xp ) ∥ − ∥ f ( xa ) − f ( xn ) ∥ ) L(x_a,x_p,x_n) = max(0,m + \left \| f(x_a)-f(x_p) \right \| - \izquierda \| f(x_a) - f(x_n) \right \|)L ( xun,Xp,Xnorte)=máximo ( 0 , _metro+f ( xun)f ( xp) f ( xun)f ( xnorte) )

5. Otras formas de pérdida por pares

RankNet y LambdaRank: una breve discusión sobre los algoritmos RankNet y LambdaRank en Learning to Rank

6. Utilice la pérdida de clasificación para la recuperación multimodal

En mi investigación, utilicé Triplet Ranking Loss para lograr una recuperación multimodal de texto e imágenes. El conjunto de datos de entrenamiento consta de imágenes marcadas con texto y el objetivo de entrenamiento del modelo es mapear las incrustaciones de texto e imágenes en el mismo espacio vectorial. Para lograr esto, primero entrene las incrustaciones de texto por separado y corrija los parámetros entrenados. Las incrustaciones de texto utilizan algoritmos como Word2Vec o Glove. A continuación, entrene una CNN para asignar los vectores de imagen al mismo espacio vectorial. La idea es permitir que el modelo aprenda a incrustar una imagen y su título asociado en el mismo punto en un espacio vectorial multimodal.

La primera forma de hacer esto es entrenar una CNN para que prediga directamente la incrustación de la imagen en función de la pérdida de entropía cruzada. El efecto es bueno, pero descubrimos que usar Triplet Ranking Loss puede obtener mejores resultados.

La operación específica es la siguiente: primero arreglamos la incrustación de texto (GLove) y luego aprendemos la expresión de la imagen solo a través de CNN. Luego, asumimos que la muestra de anclaje [fórmula] es la imagen, la muestra positiva [fórmula] es el texto asociado con la imagen, y la muestra negativa [Fórmula] es el texto correspondiente a otra imagen de "muestra negativa". Para seleccionar texto de muestra negativo, exploramos estrategias de muestreo negativo no disponibles en Internet y finalmente seleccionamos la que está lejos del texto de muestra positivo en el espacio vectorial Glove. En este problema, dado que no se establece ninguna clasificación, este muestreo de tripletes es razonable. Considerando la diversidad de imágenes, la selección de tripletas es simple, pero hay que tener cuidado al muestrear negativos duros, porque el texto correspondiente a otra imagen también puede usarse para describir la imagen ancla.
Insertar descripción de la imagen aquí

En este ejemplo, solo entrenamos la expresión de la imagen, es decir, la red CNN, usando iii representa eliithi imágenes,f (i) f(i)f ( i ) representa CNN,tp t_ptptn t_ntnorteLas incrustaciones que representan expresiones de texto positivas y negativas en el espacio Glove, respectivamente, se pueden escribir como:

L ( i , tp , tn ) = max ( 0 , m + ∥ f ( i ) − tp ∥ − ∥ f ( i ) − tn ∥ ) L(i,t_p,t_n) = max(0,m + \left \| f(i)-t_p \right \| - \left \| f(i) - t_n \right \|)L ( yo ,tp,tnorte)=máximo ( 0 , _metro+f ( yo )tpf ( yo )tnorte )

Usamos este ejemplo para hacer algunas comparaciones cuantitativas entre la pérdida de clasificación triplete y la pérdida de entropía cruzada. No entraré en detalles aquí, pero puede obtener la misma información en este artículo (artículo, blog). Básicamente, utilizamos los datos de las redes sociales para recuperar imágenes de texto del modelo autosupervisado. Los resultados de la pérdida de clasificación triplete son mucho mejores que los de la pérdida de entropía cruzada.

Otro beneficio de usar la pérdida de clasificación triplete en lugar de la pérdida de entropía cruzada o la pérdida de error cuadrático medio para predecir incrustaciones de texto es que podemos corregir las incrustaciones de texto previamente entrenadas y usarlas como la verdad fundamental del modelo. Esto nos permite utilizar primero modelos como RNN y LSTM para procesar corpus de texto y luego entrenarlos junto con CNN para, en última instancia, obtener una mejor representación de los datos.
En COCO se utilizan métodos similares para entrenar sistemas de recuperación multimodal y sistemas de títulos, el enlace está aquí .

6. Capa de pérdida de clasificación en el marco de aprendizaje profundo

Link de referencia

Guess you like

Origin blog.csdn.net/u014665013/article/details/119859723