Cálculo de los parámetros de la función logística
El objetivo principal es el cálculo de los parámetros de la función logística para que sea la mejor estimación de las etiquetas de las muestras en el conjunto de datos. Resumiendolo mucho, primero tenemos que mirar la función de costo y ver cuál es la relación entre la función de coste y los parámetros
1. Búsqueda de la función de costo
Normalmente hay una ecuación general para calcular el costo que es la diferencia entre los valores reales de «
valor predicho de nuestro modelo y valor real del campo objetivo». Normalmente se usa el cuadrado de esa diferencia para evitar resultados negativos, y, por simplificar, la mitad de ese valor se considera como la función de coste:
Ahora, podemos escribir la función de costo para todas las muestras de nuestro conjunto de datos como la suma promedio de las funciones de coste de todos los casos. También se le llama error cuadrado medio (Mean Squared Error), y, como es una función de un parámetro vector θ, se muestra como J(θ).
Para encontrar los mejores pesos o parámetros que minimizan esta función de coste deberíamos calcular el punto mínimo de esta función. Este punto mínimo se calcula utilizando la derivada, pero no hay una manera fácil de encontrarla para el punto mínimo global. La solución es encontrar otra función de coste en su lugar, una que tenga el mismo comportamiento pero sea más fácil para encontrar su punto mínimo.
2. Minimización de la función de costo
Para la minimización de la función de costo utilizamos un enfoque de optimización. Existen diferentes enfoques de optimización, pero vamos a utilizar uno de los más famosos y efectivos: el descenso gradual. Es un enfoque iterativo para encontrar el mínimo de la una función utilizando su derivada, así que con ella vamos a buscar el mínimo de la función de costo y así cambiar los valores de los parámetros, para minimizar el error.
Se podría seleccionar valores de parámetros aleatorios que ubican un punto en el tazón y mientras que el valor del costo baje, podemos dar un paso más. También puede observarse que cuanto más empinada sea la pendiente, más lejos del punto mínimo estaremos, por lo que podremos elegir nuevos valores más lejos que los anteriores. Haciendo esto sucesivas veces y a medida que nos acercamos al punto más bajo, la pendiente disminuye, por lo que podemos dar pasos más pequeños hasta llegar a una superficie plana.
Para asegurarnos que descendemos, y qué los pasos son suficientemente grandes se debería calcular el gradiente de la función de coste en el punto estudiado. La derivada parcial de
Esta ecuación devuelve la pendiente de ese punto, y deberíamos actualizar el parámetro en la dirección opuesta a la pendiente. Un vector de todas estas pendientes es el vector de gradiente:
Podemos usar este vector para cambiar o actualizar todos los parámetros, tomando los valores anteriores de los parámetros y restando la derivada de Error. Esto resulta en los nuevos parámetros para
En resumen, podemos decir simplemente que el descenso en pendiente es como dar pasos en la dirección actual de la pendiente, y el ritmo de aprendizaje es como la duración del paso que das. Así que, estos serían nuestros nuevos parámetros. Fíjate que es una operación iterativa y, en cada iteración, actualizamos los parámetros y minimizamos el coste, hasta que el algoritmo converge en un mínimo aceptable.
Recapitulando:
- Paso 1. Inicializamos los parámetros con valores aleatorios.
- Paso 2. Alimentamos la función de costes con la función y calcular el costo. Esperamos una alta tasa de error ya que los parámetros se establecen al azar.
- Paso 3. Calculamos el gradiente del coste teniendo en cuenta que tenemos que usar una derivada parcial. Entonces, para calcular el vector de gradiente, necesitamos todos los datos de entrenamiento para alimentar la ecuación para cada parámetro. Por supuesto, esta es una parte costosa del algoritmo pero hay algunas soluciones para esto.
- Paso 4. Las ponderaciones se actualizan con nuevos valores de parámetros.
- Paso 5. Aquí volvemos al paso 2 y volvemos a alimentar la función de costes, que tiene nuevos parámetros. Esperamos menos errores a medida que vamos bajando por la superficie de los errores. Continuamos este ciclo hasta que alcanzamos un valor corto de costo, o un número limitado de iteraciones.
- Paso 6. Los parámetros deben ser encontrados después de algunas iteraciones. Esto significa que el modelo está listo y podemos usarlo para predecir la probabilidad de que una observación pertenezca o no a una categoría.
Resulta obvio que todos estos pasos pueden realizarse mediante programas y sus librerias, puedes ver un ejemplo en este artículo: Regresión logística en Python
Ir al artículo anterior de la serie: Regresión lineal Vs. regresión logística
Ir al artículo siguiente de la serie: Máquinas de soporte de vectores