¿Cuál es el mejor algoritmo para extraer características de las imágenes y luego pasarlas a una red neuronal para su clasificación?

Utiliza un autoencoder. Aquí hay una imagen simple de lo mismo.


En la red anterior, alimenta la imagen de entrada y luego intenta predecir lo mismo. Internamente, lo que está sucediendo es simple. Está extrayendo características en la primera capa oculta que es básicamente los componentes principales de la imagen de entrada de entrada. Luego, luego se envían a la segunda capa oculta (con dos unidades arriba) que extraen características de la salida de la capa anterior (lo que significa extraer características de los componentes principales).

La razón por la cual hay una tercera capa oculta es poder volver sobre la ruta de regreso a la entrada para que los componentes principales sean lo más precisos posible.

Una vez hecho esto, puede tomar la salida de la tercera capa oculta y luego alimentarla a una red neuronal completamente conectada con unidades logísticas para hacer una predicción.

Un paso adelante es corromper la imagen de entrada (eliminando al azar una fracción de sus píxeles) para evitar el sobreajuste. La red anterior sin corrupción puede sobreajustar debido a una gran cantidad de parámetros.

Existen muchas técnicas de extracción de características como: –

  1. 2D-PCA, que es computacionalmente más rápido y requiere menos funciones que la PCA tradicional.
  2. Los mapas autoorganizados también se utilizan para la extracción de características y la reducción de dimensionalidad.
  3. Transformada Wavelet

La selección de técnicas de extracción de características depende del conjunto de datos. Es por eso que ahora se utiliza y se experimenta con la arquitectura de aprendizaje profundo . La red lo hace todo.

Además de la respuesta de Amr Abdullatif, puede probar el módulo cuda-convnet y leer el documento correspondiente. Esto debería ofrecer una mejor idea para diseñar su estrategia.

Esencialmente, en lugar de usar ImageNet como conjunto de datos, puede usar sus propias imágenes (supongo que también sería interesante ver cómo funciona la red con ImageNet como conjunto de datos).

Simplemente use ese papel como plantilla para diseñar su propio enfoque.

Una forma de pensar en la red neuronal es considerar la última capa como un clasificador de regresión logística , y luego las capas ocultas pueden considerarse como “selectores de características” automáticos . Esto elimina el trabajo de elegir manualmente el número correcto y la potencia de las características de entrada. Por lo tanto, el NN se convierte en un selector automático de características de potencia y puede encontrar cualquier relación lineal o no lineal o servir como un clasificador de conjuntos arbitrariamente complejos ** (esto, solo se supone, que hay suficientes capas y conexiones ocultas para representar la complejidad de el modelo que necesita aprender). Al final, se espera que un NN que funcione bien no solo aprenda “la relación” entre la entrada y las salidas, sino que nos esforcemos por una abstracción o un modelo que generalice bien.
Como regla general, la red neuronal no puede aprender nada que un ser humano razonablemente inteligente no podría aprender teóricamente con el tiempo suficiente de los mismos datos.