24 votos

¿Por qué las redes neuronales necesitan selección/ingeniería de características?

Especialmente en el contexto de las competiciones de kaggle, he observado que el rendimiento de los modelos depende de la selección/ingeniería de las características. Si bien puedo entender perfectamente por qué es así cuando se trata de los algoritmos de ML más convencionales / de la vieja escuela, no veo por qué este sería el caso cuando se utilizan redes neuronales profundas.

Citando el libro Deep Learning:

El aprendizaje profundo resuelve este problema central en el aprendizaje de representaciones introduciendo representaciones que se expresan en términos de otras representaciones más simples. El aprendizaje profundo permite al ordenador construir conceptos complejos a partir de conceptos más simples.

Por eso siempre he pensado que si "la información está en los datos", una red neuronal suficientemente profunda y bien parametrizada captaría las características adecuadas si se le dedicara suficiente tiempo de entrenamiento.

28voto

user777 Puntos 10934
  • ¿Y si la red "suficientemente profunda" es demasiado grande, ya sea porque el entrenamiento del modelo es demasiado caro (¡las tarifas de AWS se acumulan!) o porque hay que desplegar la red en un entorno con recursos limitados?

  • Cómo puedes saberlo, a priori que la red está bien parametrizada? Puede ser necesario experimentar mucho para encontrar una red que funcione bien.

  • ¿Y si los datos con los que trabaja no son "amigables" para los métodos de análisis estándar, como una cadena binaria compuesta por miles o millones de bits, en la que cada secuencia tiene una longitud diferente?

  • ¿Y si le interesan los datos a nivel de usuario, pero se ve obligado a trabajar con una base de datos que sólo recoge datos a nivel de transacción?

  • Supongamos que sus datos tienen la forma de números enteros como $12, 32, 486, 7$ y su tarea es predecir la suma de los dígitos, por lo que el objetivo en este ejemplo es $3, 5, 18, 7$ . Es muy sencillo parsear cada dígito en una matriz y luego sumar la matriz ("ingeniería de características"), pero por lo demás es todo un reto.

Nos gustaría vivir en un mundo en el que el análisis de datos fuera "llave en mano", pero este tipo de soluciones suelen existir sólo en casos especiales. Se ha trabajado mucho en el desarrollo de CNN profundas para la clasificación de imágenes; los trabajos anteriores tenían un paso que transformaba cada imagen en un vector de longitud fija.

La ingeniería de rasgos permite al profesional transformar directamente los conocimientos sobre el problema en un vector de longitud fija susceptible de redes feed-forward. La selección de características puede resolver el problema de incluir tantas características irrelevantes que se pierde cualquier señal, así como reducir drásticamente el número de parámetros del modelo.

9voto

Josh Pearce Puntos 2288

Las palabras clave son antecedentes y escala . Como ejemplo sencillo, imagine que intenta predecir la edad de una persona a partir de una fotografía. Con un conjunto de datos de imágenes y edades, podrías entrenar un modelo de aprendizaje profundo para hacer las predicciones. Esto es objetivamente muy ineficiente porque el 90% de la imagen es inútil, y sólo la región con la persona es realmente útil. En concreto, la cara de la persona, su cuerpo y quizá su ropa.

Por otro lado, podría utilizar una red de detección de objetos preentrenada para extraer primero los cuadros delimitadores de la persona, recortar la imagen y pasarla después por la red. Este proceso mejorará significativamente la precisión del modelo por varias razones:

1) Todos los recursos de la red (es decir, los pesos) pueden centrarse en la tarea real de predecir la edad, en lugar de tener que encontrar primero a la persona. Esto es especialmente importante porque la cara de la persona contiene características útiles. De lo contrario, los rasgos más finos que se necesitan pueden perderse en las primeras capas. En teoría, una red lo suficientemente grande podría resolver este problema, pero sería terriblemente ineficaz. La imagen recortada también es considerablemente más regular que la imagen original. Mientras que la imagen original tiene un montón de ruido, es discutible que las discrepancias en la imagen recortada estén mucho más correlacionadas con el objetivo.

2) La imagen recortada se puede normalizar para que tenga la misma escala . Esto ayuda a la segunda red a tratar los problemas de escala, ya que en la imagen original las personas pueden estar cerca o lejos. Normalizar la escala de antemano garantiza que en la imagen recortada haya una persona que ocupe toda la imagen recortada (a pesar de estar pixelada si está lejos). Para ver cómo esto puede ayudar a la escala, un cuerpo recortado que es la mitad de ancho y alto que la imagen original tiene 4 veces menos píxeles para procesar, y por lo tanto la misma red aplicada a esta imagen tendría 4 veces el campo receptivo de la red original en cada capa.

Por ejemplo, en el concurso de pulmón kaggle, un tema común en el las mejores soluciones era algún tipo de preprocesamiento de las imágenes pulmonares que las recortaba al máximo y aislaba los componentes de cada pulmón. Esto es especialmente importante en las imágenes en 3D, ya que el efecto es cúbico: al eliminar el 20% de cada dimensión, ¡te deshaces de casi la mitad de los píxeles!

6voto

Cecios0 Puntos 1

Mi intuición sobre este fenómeno está relacionada con la complejidad del modelo que hay que aprender. En efecto, una red neuronal profunda puede aproximar cualquier función en teoría pero la dimensión del espacio de parámetros puede ser muy grande, de millones. Así que, en realidad encontrar una buena red neuronal es realmente difícil. Me gusta pensar en la ingeniería de características como una forma de dar ventaja al algoritmo, proporcionándole información adicional sobre la representación de los datos que es suficientemente buena en cierto sentido. Por supuesto, esto no es una explicación formal, esta pregunta podría ser realmente difícil de responder con rigor científico.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X