Funciones de pérdida en Machine Learning
Funciones de pérdida en Machine Learning y optimizaciones
Las máquinas aprenden mediante una función de pérdida. Es un método para evaluar qué tan bien un algoritmo específico modela los datos otorgados.
Si las predicciones se desvían demasiado de los resultados reales, la función de pérdida en Machine Learning arrojaría un número muy grande. Poco a poco, con la ayuda de alguna función de optimización, la función de pérdida en Machine Learning aprende a reducir el error en la predicción.
En este artículo analizaremos varias funciones de pérdida y sus aplicaciones en el dominio de Machine Learning / aprendizaje profundo.
No existe una función de pérdida para todos los algoritmos en Machine Learning. La elección de una función de pérdida para un problema específico, como el tipo de algoritmo de Machine Learning elegido, la facilidad de cálculo de las derivadas y, en cierta medida, el porcentaje de valores atípicos en el conjunto de datos son diversos.
En general, las funciones de pérdida pueden clasificarse en dos categorías principales dependiendo del tipo de tarea de aprendizaje con la que estamos tratando: Pérdidas por regresión y Pérdidas por clasificación.
Pérdidas por clasificación
En la clasificación, estamos tratando de predecir el resultado del conjunto de valores categóricos finitos, es decir, dado un gran conjunto de datos de dígitos escritos a mano, categorizándolos en uno de 0-9 dígitos.
Pérdidas por regresión
La regresión, por otro lado, trata de predecir un valor continuo, por ejemplo, el área del piso , el número de habitaciones, el tamaño de las habitaciones, predecir el precio de la habitación.
Funciones de pérdida en Machine Learning
Pérdidas de regresión
Error cuadrático medio / Pérdida cuadrática / Pérdida L2
Fórmula matemática :
Como su nombre indica, el error cuadrático medio se mide como el promedio de la diferencia al cuadrado entre las predicciones y las observaciones reales. Solo le preocupa la magnitud promedio del error, independientemente de su dirección.
Sin embargo, debido a la cuadratura, las predicciones que están muy lejos de los valores reales son penalizadas fuertemente en comparación con las predicciones menos desviadas.
Además podemos decir que MSE tiene buenas propiedades matemáticas que hacen que sea más fácil calcular gradientes.
import numpy as np y_hat = np.array ([0.000, 0.166, 0.333]) y_true = np.array ([0.000, 0.254, 0.998]) def rmse (predictions, targets): differences = predictions - targets differences_squared = differences ** 2 mean_of_differences_squared = differences_squared.mean () rmse_val = np.sqrt (mean_of_differences_squared) return rmse_val print("d es:" + str (["%.8f" % elem for elem in y_hat])) print ("p es:" + str (["%.8f" % elem for elem in y_true])) rmse_val = rmse (y_hat, y_true) print ("error rms es:" + str (rmse_val))
Error Absoluto Medio / Pérdida L1
Fórmula matemática :
El error absoluto medio por otro lado, se mide como el promedio de la suma de las diferencias absolutas entre las predicciones y las observaciones reales.
Al igual que MSE (error cuadrático medio), también mide la magnitud del error sin considerar su dirección.
A diferencia de MSE (error cuadrático medio), MAE (error absoluto medio) necesita herramientas más complicadas, como la programación lineal para calcular los gradientes. Además, MAE es más robusto para los valores atípicos, ya que no utiliza cuadrado.