[Aprendizaje automático] DLC de función de pérdida

1. El concepto de función de pérdida

        Loss Function (Función de pérdida) es una fórmula utilizada para evaluar la brecha entre los resultados previstos\hat{y} y los resultados reales , indicando la dirección para la optimización del modelo. En el proceso de optimización del modelo, generalmente se expresa como: oyL(y_i,f(x_i;\theta))L(y_i,\hat{y_i})

        A diferencia de la función de costo (Cost Function) para todo el conjunto de entrenamiento , la función de pérdida suele ser solo para una sola muestra de entrenamiento . Se puede resumir como Una función de pérdida es parte de una función de costo . (la función de pérdida es parte de la función de costo)

2. Funciones de pérdida comunes y sus explicaciones detalladas

        1. Pérdida de error cuadrático medio

                La función de pérdida del error cuadrático medio (MSE) se usa generalmente para tareas de regresión , también conocida como pérdida L2

                        J_{MSE}=\frac{1}{N}\sum(y_i-\hat{y_i})^2

                        Al utilizar la función de pérdida del error cuadrático medio, se puede considerar que el error entre la salida del modelo y el valor real obedece a una distribución gaussiana

        2. Pérdida de error absoluta media

                Pérdida de error absoluta media (MAE), también conocida como pérdida L1

                        J_{MAE}=\frac{1}{N}\sum|y_i-\hat{y_i}|

                        Cuando se utiliza la función de pérdida de error absoluta media, se puede considerar que el error entre la salida del modelo y el valor real obedece a la distribución de Laplace

        3.Pérdida de Huber

                También conocido como Smooth L1 Loss , la derivada de L1 Loss en el punto 0 no es única, lo que puede afectar la convergencia; mientras que Smooth L1 Loss usa una función cuadrada cerca del punto 0 para suavizarla.

                        Suave L_1 = 0.5x^2,|x|<1

                                           =|x|-0.5, x<-1||x>1

        La diferencia entre MAE y MSE

                ①La velocidad de convergencia de L2 Loss es más rápida que la de L1 Loss, y L2 Loss se usa generalmente en la mayoría de los casos

                ②El crecimiento de L1 Loss es relativamente lento (crecimiento lineal con error, no crecimiento cuadrático), es decir, no es sensible a valores atípicos; para problemas de regresión de predicción de borde (como RCNN más rápido), los cambios de gradiente son más pequeños y es mas dificil correr volar

        4. Función de pérdida de entropía cruzada

                La pérdida de entropía cruzada, generalmente aplicada a problemas de clasificación , se puede dividir en clasificación binaria y clasificación múltiple

                4.1 Dos clasificaciones

                        Para la clasificación binaria, generalmente usamos la función sigmoidea para comprimir el modelo a (0,1), y la salida del modelo es una probabilidad.Para una entrada dada x_i, las probabilidades de ser un ejemplo positivo y un ejemplo negativo son:

                                p(y_i=1|x_i)=\hat{y_i}

                                p(y_i=0|x_i)=1-\hat{y_i}

                        La combinación de estas dos fórmulas da:p(y_i|x_i)=(\sombrero{y_i})^{y_i}(1-\sombrero{y_i})^{1-y_i}

                        Suponiendo que los puntos de datos son independientes entre sí, la distribución de probabilidad se puede expresar como:L(x,y)=\prod (\sombrero{y_i}^{y_i})(1-\sombrero{y_i})^{1-\sombrero{y_i}}

                        Tomando el logaritmo de la probabilidad y agregando un signo negativo para minimizar la probabilidad logarítmica negativa, se puede obtener la forma de la función de pérdida cruzada

                                J_{CE}=-\sum y_i log(\hat{y_i})+(1-y_i)log(1-\hat{y_i})

                 4.2 Multicategoría

                        La idea de la clasificación múltiple es similar a la clasificación binaria, el y_ivalor un vector one-hot, la función utilizada para la compresión se cambia a softmax , el rango de salida de todas las dimensiones se comprime a (0,1) y la suma es 1, que se puede expresar como:p(y_i|x_i)=\prod (\hat{y}^k_i)^{y_i^k}

                         Tomando el logaritmo de la probabilidad y agregando un signo negativo para minimizar la probabilidad logarítmica negativa, se puede obtener la forma de la función de pérdida cruzada

                                J_{CE}=-\sum y_i^{c_i}log(y_i^{\hat{(c_i)}})

                4.3 Pérdida Focal

                        Focal Loss se basa en la función de pérdida de entropía cruzada y se utiliza para resolver los siguientes problemas en la función de pérdida de entropía cruzada tradicional:

                                ① Demasiadas muestras negativas (ejemplo negativo) hacen que se sobrescriba la pérdida de la muestra positiva (ejemplo positivo)

                                ②Hay demasiadas muestras fáciles (ejemplo fácil) que hacen que domine la dirección de convergencia de un determinado lote

                        La pérdida focal se puede expresar como:

                                        FL(p_t)=-\alpha_t(1-p_t)^\gamma log(p_t)

                                donde \alpha_ty γ se utilizan para resolver el problema del desequilibrio de muestra positivo y negativo y el desequilibrio de muestra fácil y difícil respectivamente

                        Tomando la clasificación binaria como ejemplo, amplíela

                                        p_t=p,y=1

                                             =1-p, de lo contrario

                                4.3.1 un

                                        Se utiliza para resolver el problema de desequilibrio entre muestras positivas y negativas ; clasificar diferentes valores de peso para muestras positivas y negativas α [0,1]

                                        \alpha_t=\alfa,y=1

                                             =1-\alfa, de lo contrario

                                        El valor de α a menudo debe ajustarse de acuerdo con la conclusión (0,25 en el documento Faster RCNN)

                                4.3.2c

                                        Se utiliza para resolver el problema de las muestras difíciles y fáciles desequilibradas ; deje que cada muestra se multiplique (1-p_t)^\gamma, porque la puntuación de las muestras simples  putageneralmente es cercana a 1, entonces su (1-p_t)^\gammavalor será menor, lo que puede suprimir el peso de las muestras simples

3. Implementación de Pérdida Focal

        Tomando YOLO V4 como ejemplo, la función de pérdida de YOLO V4 consta de tres partes: loc ( pérdida de regresión ), conf ( pérdida de confianza objetivo ) y cls ( pérdida de categoría ), entre las cuales la pérdida de confianza objetivo debe distinguirse entre positiva y muestras negativas. Se puede manejar de la siguiente manera.

        ① Probabilidad de extracción p

conf = torch.sigmoid(prediction[..., 4])

        ② Equilibre las muestras positivas y negativas, configure el parámetro α

torch.where(obj_mask, torch.ones_like(conf) * self.alpha, torch.ones_like(conf) * (1 - self.alpha))

        ③ Equilibrar muestras difíciles y fáciles, establecer parámetros γ

torch.where(obj_mask, torch.ones_like(conf) - conf, conf) ** self.gamma

        ④ Vuelva a multiplicar la pérdida de entropía cruzada

ratio       = torch.where(obj_mask, torch.ones_like(conf) * self.alpha, torch.ones_like(conf) * (1 - self.alpha)) * torch.where(obj_mask, torch.ones_like(conf) - conf, conf) ** self.gamma
loss_conf   = torch.mean((self.BCELoss(conf, obj_mask.type_as(conf)) * ratio)[noobj_mask.bool() | obj_mask])

Supongo que te gusta

Origin blog.csdn.net/weixin_37878740/article/details/128770572
Recomendado
Clasificación