¿Cuáles son las desventajas o desventajas de usar autoencoders para la extracción de características?

Los codificadores automáticos pueden ser excelentes para la extracción de características. Un codificador automático puramente lineal, si converge a los óptimos globales, en realidad convergerá a la representación PCA de sus datos. En ese sentido, los codificadores automáticos se utilizan para la extracción de características mucho más de lo que la gente cree.

Usted pidió desventajas, así que me enfocaré en eso.

Tienes que entrenar un autoencoder. Esa es una gran cantidad de datos, tiempo de procesamiento, ajuste de hiperparámetros y validación del modelo incluso antes de comenzar a construir el modelo real.

Un autoencoder aprende a representar eficientemente una variedad en la que se encuentran los datos de entrenamiento. Si sus datos de entrenamiento no son representativos de sus datos de prueba, entonces termina ocultando información en lugar de aclararla. Estoy trabajando en ese problema ahora mismo. Quería usar un codificador automático, pero en realidad disminuiría el rendimiento.

Un autoencoder aprende a capturar tanta información como sea posible en lugar de tanta información relevante como sea posible. Eso significa que si la información más relevante para su problema constituye solo una pequeña parte (en magnitud) de la entrada, el autoencoder puede perder gran parte de ella.

El uso de un codificador automático también destruye cualquier interpretación que su modelo pueda haber tenido. Eso puede o no ser importante para usted.

Editar: Otro punto acerca de que el autoencoder no puede determinar qué información es relevante.

Suponga que planea usar una red neuronal para su modelo y un codificador automático para reducir la dimensionalidad. Primero, el autoencoder reduce la dimensionalidad mientras mantiene la mayor cantidad de información posible. Luego, el modelo de red neuronal extrae tanta información relevante como sea posible. El resultado es esencialmente el aprendizaje por transferencia. Es lo mismo que si tomas las capas de codificación del codificador automático y pones el modelo en la parte superior. Sin embargo, el problema es que las capas de codificación intentan preservar la cantidad de información en lugar de la calidad de la información. En su lugar, podría entrenar una red desde cero con la misma arquitectura que la estructura combinada y esperar mejores resultados (con la convergencia adecuada).

Sus foros son correctos porque los codificadores automáticos son geniales. Solo enumero los inconvenientes, no las ventajas.

Un inconveniente obvio es que su autoencoder puede no funcionar. Siempre puede darle el promedio del conjunto de entrada, o siempre reconstruir el conjunto de entrada exactamente, o combinar esos dos defectos de manera disimulada. O puede funcionar perfectamente en el conjunto de entrenamiento, pero puede fallar miserablemente fuera de la muestra. Pero supongo que está preguntando acerca de los inconvenientes de un codificador automático que parece funcionar, uno que asigna las entradas a un espacio de características de dimensión significativamente menor, y las reconstruye con un error mucho menor que el que se logra con modelos estadísticos simples; y eso funciona bien fuera de la muestra.

Un inconveniente en comparación con el análisis estadístico es que puede perderse importantes conocimientos teóricos. Esto no es tanto un inconveniente como la otra cara de la ventaja de que el autoencoder recoge relaciones valiosas que nunca le ocurrirían a un humano, ya sea por preconceptos humanos o porque son demasiado complicados para que los humanos procesen.

En relación con esto, es más probable que las ideas del análisis estadístico sean útiles en otras aplicaciones, mientras que los codificadores automáticos generalmente tienen que ser rediseñados y reentrenados para cada aplicación.

También relacionado con esto, el desarrollo de un modelo estadístico requiere un esfuerzo para comprender los datos, el autoencoder lo omite, pero comprender los datos sigue siendo crucial. Eso no es realmente un inconveniente del autoencoder, pero no te obliga a hacer algo que es esencial que hagas.

El último “relacionado con esto” es un codificador automático que puede permitirle evitar la limpieza de los datos correctamente. La limpieza de datos puede proporcionar información importante, y la limpieza humana puede dar mejores resultados que la autocodificación. El autoencoder técnicamente podría hacer un mejor trabajo en los datos sucios, pero podría ser aún mejor limpiar los datos.

Otro inconveniente es que puede eliminar la información importante en los datos de entrada. El algoritmo de autoencoder requiere una función objetivo para evaluar la precisión de los datos de entrada codificados / decodificados. En la mayoría de las aplicaciones no es posible representar el verdadero objetivo, y se utiliza algún proxy simple como la suma de errores al cuadrado. Eso puede resultar ortogonal a (o al menos desviarse en un gran ángulo) de lo que realmente desea saber sobre los datos. Esto también puede suceder con el análisis estadístico, pero es menos probable, porque la intuición sobre la importancia puede incrustarse en cada paso del análisis (posiblemente alguien podría hacer esto en un algoritmo de autocodificación, pero nunca lo he visto hecho, y no lo haga). No sé cómo haría para establecer las funciones objetivo intermedias).

El autoencoder podría ser más sensible a los errores de entrada diferentes de los del conjunto de entrenamiento, o a los cambios en las relaciones subyacentes que un humano notaría. Por ejemplo, suponga que una variable de entrada cambia de estar en porcentaje a un decimal (entonces lo que solía ser un 10 ahora es un 0.1). Eso podría causar errores masivos en un autoencoder, y podría tener que volver a entrenar desde cero. Sería más probable que un humano vea dónde está el problema en un modelo estadístico y haga la corrección fácil. O si se fija un tipo de cambio flotante, es más probable que estropee el codificador automático que un modelo estadístico.

Creo que el mayor inconveniente potencial es que pierdes mucho tiempo en algo que agrega más complejidad que valor al resultado final. Puede haber un esquema de codificación simple que obtenga el 90% del valor del autoencoder con un espacio de características de diez dimensiones, mientras que el autoencoder le brinda una mejor reconstrucción con ocho dimensiones. Pero las diez dimensiones son intuitivas y lo suficientemente buenas, mientras que las ocho dimensiones son ininterpretables y no mejoran significativamente los resultados prácticos finales.