machine-learning neural-network mathematical-optimization deep-learning objective-function

machine learning - Cómo interpretar "pérdida" y "precisión" para un modelo de aprendizaje automático



machine-learning neural-network (3)

@Aadnan Solo para aclarar los conjuntos de datos de Entrenamiento / Validación / Prueba: El conjunto de entrenamiento se utiliza para realizar el entrenamiento inicial del modelo, inicializando los pesos de la red neuronal.

El conjunto de validación se usa después de que la red neuronal ha sido entrenada. Se utiliza para ajustar los hiperparámetros de la red y comparar cómo los cambios en ellos afectan la precisión predictiva del modelo. Mientras que se puede pensar que el conjunto de entrenamiento se usa para construir los pesos de puerta de la red neuronal, el conjunto de validación permite un ajuste fino de los parámetros o la arquitectura del modelo de red neuronal. Es útil ya que permite la comparación repetible de estos diferentes parámetros / arquitecturas con los mismos datos y pesos de redes, para observar cómo los cambios de parámetros / arquitectura afectan el poder predictivo de la red.

Luego, el conjunto de prueba se usa solo para probar la precisión predictiva de la red neuronal entrenada en datos no vistos previamente, después del entrenamiento y la selección de parámetros / arquitectura con los conjuntos de datos de entrenamiento y validación.

Cuando entrené mi red neuronal con Theano o Tensorflow, informarán una variable llamada "pérdida" por época.

¿Cómo debo interpretar esta variable? Una pérdida mayor es mejor o peor, o ¿qué significa para el rendimiento final (precisión) de mi red neuronal?


Cuanto menor sea la pérdida, mejor será un modelo (a menos que el modelo se haya ajustado demasiado a los datos de entrenamiento). La pérdida se calcula en el entrenamiento y la validación y su interacción es qué tan bien le está yendo al modelo en estos dos conjuntos. A diferencia de la precisión, la pérdida no es un porcentaje. Es un resumen de los errores cometidos para cada ejemplo en conjuntos de entrenamiento o validación.

En el caso de las redes neuronales, la pérdida suele ser una probabilidad logarítmica negativa y una suma residual de cuadrados para la clasificación y la regresión, respectivamente. Entonces, naturalmente, el objetivo principal en un modelo de aprendizaje es reducir (minimizar) el valor de la función de pérdida con respecto a los parámetros del modelo cambiando los valores del vector de peso a través de diferentes métodos de optimización, como la retropropagación en las redes neuronales.

El valor de pérdida implica qué tan bien o mal se comporta cierto modelo después de cada iteración de optimización. Idealmente, uno esperaría la reducción de la pérdida después de cada o varias iteraciones.

La precisión de un modelo generalmente se determina después de que los parámetros del modelo se aprenden y arreglan y no se lleva a cabo el aprendizaje. Luego, las muestras de prueba se envían al modelo y se registra el número de errores (pérdida cero-uno) que comete el modelo, después de la comparación con los objetivos verdaderos. Luego se calcula el porcentaje de clasificación errónea.

Por ejemplo, si el número de muestras de prueba es 1000 y el modelo clasifica 952 de ellas correctamente, entonces la precisión del modelo es 95.2%.

También hay algunas sutilezas al tiempo que reduce el valor de pérdida. Por ejemplo, puede encontrarse con el problema del over-fitting en el que el modelo "memoriza" los ejemplos de entrenamiento y se vuelve ineficaz para el conjunto de pruebas. El sobreajuste también ocurre en casos en los que no emplea una regularization , tiene un modelo muy complejo (el número de parámetros libres W es grande) o el número de puntos de datos N es muy bajo.


Son dos métricas diferentes para evaluar el rendimiento de su modelo que generalmente se utiliza en diferentes fases.

La pérdida se usa a menudo en el proceso de entrenamiento para encontrar los "mejores" valores de parámetros para su modelo (por ejemplo, pesos en la red neuronal). Es lo que intenta optimizar en la capacitación actualizando los pesos.

La precisión es más desde una perspectiva aplicada. Una vez que encuentre los parámetros optimizados anteriores, utilice estas métricas para evaluar la precisión de la predicción de su modelo en comparación con los datos reales.

Usemos un ejemplo de clasificación de juguetes. Desea predecir el género a partir del peso y la estatura. Tienes 3 datos, son los siguientes: (0 significa hombre, 1 representa mujer)

y1 = 0, x1_w = 50kg, x2_h = 160cm;

y2 = 0, x2_w = 60kg, x2_h = 170cm;

y3 = 1, x3_w = 55kg, x3_h = 175cm;

Utiliza un modelo de regresión logística simple que es y = 1 / (1 + exp- (b1 * x_w + b2 * x_h))

¿Cómo encuentras b1 y b2? Primero define una pérdida y utiliza el método de optimización para minimizar la pérdida de forma iterativa actualizando b1 y b2.

En nuestro ejemplo, una pérdida típica para este problema de clasificación binaria puede ser: (se debe agregar un signo menos delante del signo de suma)

No sabemos qué deberían ser b1 y b2. Hagamos una suposición aleatoria digamos b1 = 0.1 y b2 = -0.03. Entonces, ¿cuál es nuestra pérdida ahora?

entonces la pérdida es

Luego, su algoritmo de aprendizaje (p. Ej., Descenso de gradiente) encontrará una manera de actualizar b1 y b2 para disminuir la pérdida.

¿Qué pasa si b1 = 0.1 y b2 = -0.03 es el b1 y b2 final (salida del descenso del gradiente), cuál es la precisión ahora?

Supongamos que y_hat> = 0.5, decidimos que nuestra predicción es femenina (1). de lo contrario sería 0. Por lo tanto, nuestro algoritmo predice y1 = 1, y2 = 1 e y3 = 1. ¿Cuál es nuestra precisión? Hacemos predicciones incorrectas en y1 e y2 y hacemos una correcta en y3. Entonces ahora nuestra precisión es 1/3 = 33.33%

PD: En share , se dice que la retropropagación es un método de optimización en NN. Creo que se trataría como una forma de encontrar gradiente para pesos en NN. El método de optimización común en NN son GradientDescent y Adam.