¿Cómo pueden las redes neuronales lidiar con diferentes tamaños de entrada?


42

Por lo que puedo decir, las redes neuronales tienen un número fijo de neuronas en la capa de entrada.

Si las redes neuronales se usan en un contexto como PNL, las oraciones o bloques de texto de diferentes tamaños se alimentan a una red. ¿Cómo se concilia el tamaño de entrada variable con el tamaño fijo de la capa de entrada de la red? En otras palabras, ¿cómo se hace que dicha red sea lo suficientemente flexible como para manejar una entrada que puede ser desde una palabra hasta varias páginas de texto?

Si mi suposición de un número fijo de neuronas de entrada es incorrecta y se agregan / eliminan nuevas neuronas de entrada de la red para que coincidan con el tamaño de entrada, no veo cómo se pueden entrenar.

Doy el ejemplo de PNL, pero muchos problemas tienen un tamaño de entrada inherentemente impredecible. Estoy interesado en el enfoque general para lidiar con esto.

Para las imágenes, está claro que puede subir / bajar la muestra a un tamaño fijo, pero, para el texto, esto parece ser un enfoque imposible ya que agregar / eliminar texto cambia el significado de la entrada original.


¿Puedes aclarar lo que quieres decir con reducción de muestreo a un tamaño fijo? ¿Cómo se hace la disminución de resolución?
Charlie Parker

Respuestas:


36

Tres posibilidades vienen a la mente.

Lo más fácil es el relleno cero . Básicamente, toma un tamaño de entrada bastante grande y simplemente agrega ceros si su entrada concreta es demasiado pequeña. Por supuesto, esto es bastante limitado y ciertamente no es útil si su entrada varía desde unas pocas palabras hasta textos completos.

Los NN recurrentes (RNN) son un NN muy natural para elegir si tiene textos de diferentes tamaños como entrada. Introduce palabras como vectores de palabras (o incrustaciones) solo una tras otra y se supone que el estado interno del RNN codifica el significado de la cadena completa de palabras. Este es uno de los documentos anteriores.

Otra posibilidad es usar NN recursivos . Esto es básicamente una forma de preprocesamiento en el que un texto se reduce de forma recursiva a un número menor de vectores de palabras hasta que solo quede uno: su entrada, que se supone que codifica todo el texto. Esto tiene mucho sentido desde el punto de vista lingüístico si su entrada consiste en oraciones (que pueden variar mucho en tamaño), porque las oraciones están estructuradas de manera recursiva. Por ejemplo, la palabra vector para "el hombre" debe ser similar a la palabra vector para "el hombre que confundió a su esposa con un sombrero", porque las frases nominales actúan como sustantivos, etc. A menudo, puede usar información lingüística para guiar tu recursividad en la oración. Si quieres ir más allá del artículo de Wikipedia, este es probablemente un buen comienzo .


1
¿Cuál es la diferencia entre lo que llamaron "NN recursivos" y RNN? R es para recursivo ... Además, algunas citas y punteros serían útiles.
Eric Platon

3
R es para recurrente. Recurrente significa agregar entradas linealmente al mismo NN una y otra vez. Recursivo significa ingresar los datos a lo largo de una estructura de árbol.
BlindKungFuMaster

@BlindKungFuMaster 0 relleno con máscara para MLP ¿es bueno y no afecta gravemente la precisión?
DINA TAKLIT

12

Otros ya mencionaron:

  • relleno cero
  • RNN
  • NN recursiva

entonces agregaré otra posibilidad: usar convoluciones diferentes números de veces dependiendo del tamaño de la entrada. Aquí hay un excelente libro que respalda este enfoque:

Considere una colección de imágenes, donde cada imagen tiene un ancho y una altura diferentes. No está claro cómo modelar tales entradas con una matriz de peso de tamaño fijo. La convolución es fácil de aplicar; el núcleo simplemente se aplica un número diferente de veces dependiendo del tamaño de la entrada, y la salida de la operación de convolución se escala en consecuencia.

Tomado de la página 360. Puede leerlo más para ver otros enfoques.


1
Se me ocurre que este enfoque solo funcionará si 1) la relación de aspecto (AR) de todas las imágenes de entrada es la misma, 2) cambia la escala de todas las imágenes a un AR determinado, o 3) las imágenes de almohadilla cero para forzar un dado AR.
Matt Wenham el

@Salvador Dali, ¿el relleno "0" con máscara puede ser una buena solución para MLP?
DINA TAKLIT

No puedo encontrar el texto que cita en su respuesta en el libro. ¿Tal vez estuvo presente originalmente y se ha eliminado más tarde? La página 354 actualmente tiene un párrafo que comienza de manera similar, pero nunca usa un número variable de capas (sino un tamaño de salida variable).
jochen

7

En PNL tiene un orden inherente de las entradas, por lo que los RNN son una opción natural.

Para entradas de tamaño variable donde no hay un orden particular entre las entradas, se pueden diseñar redes que:

  1. use una repetición de la misma subred para cada uno de los grupos de entradas (es decir, con pesos compartidos). Esta subred repetida aprende una representación de los (grupos de) entradas.
  2. use una operación en la representación de las entradas que tenga la misma simetría que las entradas. Para datos invariables de orden, promediar las representaciones de las redes de entrada es una opción posible.
  3. use una red de salida para minimizar la función de pérdida en la salida en función de la combinación de las representaciones de la entrada.

La estructura tiene el siguiente aspecto:

estructura de red

Se han utilizado redes similares para aprender las relaciones entre objetos ( arxiv: 1702.05068 ).

Aquí se proporciona un ejemplo simple de cómo aprender la varianza muestral de un conjunto de valores de tamaño variable (descargo de responsabilidad: soy el autor del artículo vinculado).

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.