La agrupación de K-means en características especialmente de bajo nivel es bastante poco confiable cuando se trata de encontrar significado entre los clústeres. Por ejemplo, si obtiene un conjunto aleatorio de [math] n [/ math] parches de [math] k [/ math] -faces, donde [math] n> k [/ math] y ejecuta [math] k [/ matemática] significa que tendrá centroides [matemática] k [/ matemática] bien, pero cada uno no contendrá específicamente solo un tipo de parches faciales. La medida de distancia euclidiana no tiene una noción de clase, solo se basa en una medida de disimilitud de componentes vectoriales ingenua y, por lo tanto, los grupos formados solo están relacionados en el espacio euclidiano y no en el espacio de “clase”.
Para rectificar eso, podemos proyectar las caras a través de una red neuronal convolucional (convNet) y extraer las representaciones vectoriales de alto nivel de la última capa conv y agruparlas usando k-means. Dado que los vectores son de alto nivel, tienen una señal de ruido de alta calidad, lo que implica que la agrupación de medios k basada en la medida de distancia euclidiana básica puede encontrar grupos de alta calidad significativos.
Para encontrar la clase de dichos grupos, simplemente puede hacer lo siguiente:
- ¿Por qué se utilizan imágenes en escala de grises para el análisis de componentes principales?
- ¿En qué problemas sería buena / mala una máquina neural de Turing?
- Cómo hacer clustering de tipos de datos mixtos en Python
- ¿Qué son los estados espurios en las redes Hopfield?
- ¿Cómo encuentro y uso información en el diseño de máquinas?
Para cada vector en el conjunto fuente, encuentre el grupo más cercano entre los k-grupos. Luego acumule un voto a favor de la clase de ese vector fuente para ese grupo ganador particular. Dado que al final cada centroide obtendrá múltiples etiquetas de clase pero con diferentes recuentos de votos, podemos resolver eso simplemente asignando la etiqueta con la mayoría de los votos como la clase final de ese grupo.
Recuerde que la calidad de las clases de clúster resultantes dependerá de la calidad de los vectores de origen. Por lo tanto, aprovechar las funciones de alto nivel de convNet puede generar clústeres de mayor calidad.
Espero que esto ayude.