¿Cómo se utiliza el algoritmo de maximización de expectativas en el aprendizaje automático?

Estás leyendo la publicación: ¿Cómo se utiliza el algoritmo de maximización de expectativas en el aprendizaje automático?

El algoritmo de maximización de expectativas (EM) es un algoritmo elegante que maximiza la función de probabilidad para problemas con variables latentes u ocultas. A partir del nombre en sí, se puede entender principalmente que hace dos cosas, una es la expectativa y la otra es la maximización. Este artículo ayudaría a comprender las matemáticas detrás del algoritmo EM con una implementación. Los siguientes son los temas a tratar.

Tabla de contenido

  1. ¿Cuál es la variable latente?
  2. Algoritmo de maximización de expectativas
  3. Modelo de mezcla gaussiana (GMM)
  4. ¿Cómo utiliza GMM la maximización de expectativas?

Tratemos de entender cómo la combinación de expectativa y maximización ayuda a decidir el número de grupos que se formarán, pero antes de eso necesitamos entender el concepto de la variable latente.

¿Cuál es la variable latente?

Una variable latente es una variable aleatoria que no se puede observar ni en el entrenamiento ni en la fase de prueba. Estas variables no se pueden medir en una escala cuantitativa. Hay dos razones para usar variables latentes:

  1. Los valores que faltan en el conjunto de datos podrían completarse con todos los intercambios y trucos, pero aún así inducirán una incertidumbre que dificultará cualquier modelo probabilístico extraído de aquí.
  2. Cuantificar la incertidumbre en las predicciones.

La variable latente es la causalidad directa de todos los parámetros. Ahora el modelo final es mucho más sencillo de trabajar y tiene la misma eficiencia sin reducir la flexibilidad del modelo. Hay un inconveniente de las variables latentes: es más difícil entrenar estos modelos.

🔥 Recomendado:  Un tutorial sobre la creación de modelos de detección de objetos personalizados con detecto

¿Está buscando un repositorio completo de bibliotecas de Python utilizadas en ciencia de datos, echa un vistazo aquí.

Algoritmo de maximización de expectativas

La forma general de distribución de probabilidad surge de las variables observadas para las variables que no son directamente observables, también conocidas como variables latentes, el algoritmo de maximización de expectativas se usa para predecir sus valores usando los valores de la otra variable observada. Este algoritmo es el componente básico de muchos algoritmos de agrupación en clústeres no supervisados ​​en el campo del aprendizaje automático. Este algoritmo tiene dos pasos computacionales principales que son expectativa y maximización:

  1. La expectativa es asignar cada punto de datos a un grupo de manera probabilística. En este caso, el algoritmo calcula la probabilidad de cada grupo.
  2. Mediante la maximización, se actualizan los parámetros para cada conglomerado, es decir, para proporcionar una matriz de covarianza, varianza y media ponderada para los puntos del conglomerado.

Funcionamiento del algoritmo EM

A continuación se indica una idea de alto nivel del funcionamiento del algoritmo EM.

  • Hay algunos datos X y se encontró que hay datos no observados (latentes).
  • Tener inicialmente un modelo con parámetros.
  • Ahora calculamos la estimación de probabilidad logarítmica para estos parámetros. Específicamente, el logaritmo de la probabilidad de observar los datos y asignaciones específicas de las variables latentes dados los parámetros.
  • Ahora el modelo calcula la distribución condicional dado un conjunto de parámetros.
  • En consecuencia, calculando el log-verosimilitud. Este es el logaritmo de la probabilidad de observar nuestros datos dados los parámetros (sin asumir una asignación para las variables latentes).
🔥 Recomendado:  Cómo cambiar el número de líneas en la dirección de la calle en Magento 2

Entonces, teníamos una comprensión de la funcionalidad del algoritmo EM, pero para la implementación de este algoritmo en Python, necesitamos comprender el modelo que usa este algoritmo para formar grupos. Hablemos del modelo de mezcla gaussiana.

Modelo de mezcla gaussiana

El modelo de mezcla gaussiana es un concepto importante en el aprendizaje automático que utiliza el concepto de maximización de expectativas. Una mezcla gaussiana se compone de varias gaussianas, cada una representada por ‘k’, que es el subconjunto del número de grupos que se formarán. Para cada ‘k’ gaussiana en la mezcla están presentes los siguientes parámetros:

  • Una media de los datos que define el centro del clúster.
  • La covarianza define el ancho del grupo.
  • La probabilidad de mezcla de la función gaussiana determina el tamaño de la función (grande o pequeña).

El gráfico anterior explica la distribución gaussiana de los datos que tienen una media de 4 y una varianza de 0,25. Esto podría concluirse como la distribución normal. Usando un proceso iterativo, el modelo concluye el número final del grupo con la ayuda de estos parámetros, lo que determina la estabilidad del grupo.

¿Cómo utiliza GMM la maximización de expectativas?

Implementemos el concepto de maximización de expectativas en Python.

Importar bibliotecas necesarias

importar numpy como np importar pandas como pd importar matplotlib.pyplot como plt importar plotly.express como px importar seaborn como sns de sklearn.mixture importar GaussianMixture importar advertencias advertencias.filterwarnings(‘ignorar’)

Leer y analizar los datos.

Usando los famosos datos del vino para esta implementación.

df=pd.read_csv(“/content/drive/MyDrive/Datasets/winequality-red.csv”) df.head()

Trazar una distribución

fig = px.histogram(df, x=”azúcar residual”, y=”dióxido de azufre total”, color=”calidad”,marginal=”caja”, hover_data=df.columns) fig.show()

🔥 Recomendado:  El fenómeno ChatGPT y su impacto en el ecosistema de IA conversacional

Esta gráfica ayuda a comprender la distribución de la variable dependiente sobre la variable independiente.

Montaje del GMM

X=df.drop([‘quality’],eje=1) y=gl[‘quality’]
modelo = GaussianMixture(n_components=6, init_params=”kmeans”) model.fit(X) y_pred=model.predict(X) model.score(X) -0.7380311409986876

La función de puntuación devuelve la probabilidad logarítmica, cuanto más baja, mejor. El es negativo porque es el producto de la densidad evaluada en las observaciones y la densidad toma valores menores que uno, por lo que su logaritmo será negativo. Ignorar lo negativo y centrarse en la magnitud que es 0,73 indica que el modelo es bueno y que el número de conglomerados debería ser 6.

Veredicto Final

El algoritmo de maximización de expectativas representa la idea de calcular las variables latentes tomando los parámetros como fijos y conocidos. El algoritmo es intrínsecamente rápido porque no depende de los gradientes de cálculo. Con una implementación práctica de este concepto en este artículo, podríamos comprender el algoritmo de maximización de expectativas en el aprendizaje automático.

Referencias