Supongamos que tengo un conjunto de señales en el dominio del tiempo sin absolutamente ninguna etiqueta . Quiero agruparlos en 2 o 3 clases. Los codificadores automáticos son redes sin supervisión que aprenden a comprimir las entradas. Entonces dado una entradapesas y sesgos y y salida , podemos encontrar las siguientes relaciones:
Entonces sería una forma comprimida de y La reconstrucción de este último. Hasta aquí todo bien.
Lo que no entiendo es cómo se podría usar esto para la agrupación (si hay alguna forma de hacerlo). Por ejemplo, en la primera figura de este documento , hay un diagrama de bloques que no estoy seguro de entender. Utiliza elcomo las entradas a la red de alimentación, pero no se menciona cómo se entrena esa red. No sé si hay algo que estoy ignorando o si el papel está incompleto. Además, este tutorial al final muestra los pesos aprendidos por el codificador automático, y parecen ser núcleos que una CNN aprendería a clasificar imágenes. Entonces ... Supongo que los pesos del codificador automático se pueden usar de alguna manera en una red de avance para la clasificación, pero no estoy seguro de cómo.
Mis dudas son:
- Si es una señal de longitud en el dominio del tiempo (es decir ), lata ¿solo ser un vector también? En otras palabras, ¿tendría sentido paraser una matriz con una de sus dimensiones mayor que? Creo que no lo haría, pero solo quiero comprobarlo.
- ¿Cuál de estas cantidades sería la entrada a un clasificador? Por ejemplo, si quiero usar un MLP clásico que tiene tantas unidades de salida como clases en las que quiero clasificar las señales, ¿qué debo poner en la entrada de esta red totalmente conectada (,, alguna otra cosa)?
- ¿Cómo puedo usar los pesos y sesgos aprendidos en este MLP? Recuerde que asumimos que no hay etiquetas disponibles, por lo que es imposible capacitar a la red. Creo que el aprendido y debería ser útil de alguna manera en la red totalmente conectada, pero no veo cómo usarlos.
Observación: tenga en cuenta que usé un MLP como ejemplo porque es la arquitectura más básica, pero la pregunta se aplica a cualquier otra red neuronal que pueda usarse para clasificar las señales en el dominio del tiempo.
Antes de preguntar '¿cómo se puede usar el codificador automático para agrupar datos?' primero debemos preguntarnos '¿Pueden los autoencoders agrupar datos?'
Dado que un autoencoder aprende a recrear los puntos de datos del espacio latente. Si suponemos que el codificador automático mapea el espacio latente de una "manera continua", los puntos de datos que son del mismo grupo deben mapearse juntos. Por lo tanto, de alguna manera, el codificador agrupará puntos similares "juntos", los agrupará "juntos". Hemos visto en la literatura que los codificadores automáticos no pueden mantener esta suposición de continuidad en el espacio latente.
Pero para nuestro beneficio, los autoencoders variacionales funcionan exactamente de esta manera. Los codificadores variacionales aprenden las asignaciones de espacio latente con las dos propiedades principales: continuidad, integridad1.
Por lo tanto, usar una lata de codificación de autoencoders puede ser suficiente. Sin embargo, se ha trabajado para improvisar / aprender el agrupamiento explícitamente. El algoritmo propuesto por Xie et al. (2016) 2 es un ejemplo que "refina iterativamente los clústeres con una distribución de destino auxiliar derivada de una asignación actual de clúster blando".
fuente