Muy bien, hablemos primero de lo que es la probabilidad. La verosimilitud es la probabilidad de ver ciertos datos cuando el modelo es fijo (fijo significa que es para un modelo particular o el modelo que tenemos ahora mismo después de entrenarlo para un número particular de épocas). Consideremos el modelo desde una perspectiva generativa. Para cualquier modelo aleatorio, representa/resume alguna distribución de datos con su parámetro. Ahora usted puede pensar en el modelo como cualquier modelo sofisticado de aprendizaje automático como la red neuronal con millones de parámetros, o incluso un modelo muy simple con 2 parámetros (media y desviación estándar) que es en su caso. Todo lo que hace es resumir algunos puntos de muestra y de esta manera, nuestro objetivo es obtener una aproximación de la población (lo más cerca posible) de donde se recogen las propias muestras.
Ahora piensa que estás entrenando tu modelo (en este caso una Distribución Gaussiana) para representar un conjunto particular de datos, de tal manera que no necesitas recordar todos los miles de puntos de datos, pero puedes capturar su comportamiento con estos dos parámetros (media y desviación estándar) de tu modelo. Ahora, ¿cuál debería ser nuestro objetivo? Afinar el parámetro de tal manera que represente nuestros puntos de muestra actuales, ¿verdad? En otras palabras, queremos afinarlo de tal manera que, este modelo/distribución se acerque lo más posible a la distribución desconocida de la cual esos puntos son incluso muestreados. En otras palabras, si tomamos muestras de nuestro modelo gaussiano, debería ser muy probable encontrar puntos que estén muy cerca del punto en el que este modelo está entrenado. Pero la cuestión es cómo medir que su modelo es capaz de producir puntos similares a sus datos de entrenamiento. Aquí es donde entra en juego la MLE (Estimación de Máxima Verosimilitud).
Ahora bien, es muy lógico que no nos interese que el modelo aprenda un único punto, sino que queremos que aprenda un conjunto de puntos (conjunto de datos de entrenamiento). Por lo tanto, tenemos que medir la distribución de probabilidad conjunta de todo el conjunto de datos (condición sobre el modelo , o podemos decir con respecto al modelo ). Pero ahora piense, hay infinitas posibilidades de valores, para un punto individual la probabilidad es muy baja (considerada como 0 en casos continuos). Aparte de esto, la probabilidad siempre se encuentra entre [0, 1]. Por lo tanto, para cada uno de los puntos, la probabilidad no es superior a 1. Por lo tanto, si se multiplican todos juntos para encontrar la probabilidad conjunta (con respecto al modelo), entonces básicamente se están multiplicando demasiados números que no son más que 1. Lo que conducirá a un desbordamiento matemático en nuestras máquinas de computación. Nótese que, no es una limitación de las matemáticas, sino que es la limitación del dispositivo donde lo calcularemos. Nuestros dispositivos informáticos trabajan con una precisión de coma flotante limitada. Por lo tanto, es muy probable que al multiplicar un número tan pequeño el resultado sea 0. Esto no es lo que queremos, ¿verdad? Esto no es lo que queremos, ¿verdad? Además, multiplicar es una operación pesada. Así que, como remedio, tomamos el logaritmo de la probabilidad e intentamos maximizarlo, de forma que nuestro modelo sea cada vez más capaz de imitar los datos de entrenamiento.
Como el logaritmo es una función monotónicamente creciente (es decir, si aumenta el valor, el logaritmo de ese valor también aumentará). Por lo tanto, como sólo necesitamos comparar para encontrar la mejor probabilidad, no nos importa cuál es su valor real, lo único que nos importa es si el logaritmo de la probabilidad es creciente o no. Matemáticamente, lo siguiente es a menudo inviable de realizar computacionalmente: $$p(X\mid\Theta)=\prod_{i=1}^Np(x_i\mid\Theta)$$ Así que hacemos lo siguiente: $$\ln p(X\mid\Theta)=\sum_{i=1}^N\ln p(x_i\mid\Theta)$$
¿Qué es? No es más que tu modelo (sus parámetros: media y desviación típica).