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.
- ¿Serán los robots más inteligentes que los humanos?
- ¿Es la aplicación asesina de Duolingo realmente un corrector gramatical?
- ¿Por qué el suavizado aditivo también se denomina suavizado de Laplace?
- Cómo construir un motor de chatbot como wit.ai o chatfuel
- Quiero hacer una IA simple (inteligencia artificial), entonces, ¿qué lenguaje de programación debo aprender para hacer una IA simple?
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).