¿Por qué decimos que las redes neuronales simples no pueden manejar la entrada de longitud variable?

“¿Qué hay de rellenar las entradas con ceros y normalizarlas a la misma longitud antes de entrenar redes neuronales?”

Eso es exactamente lo que significa. No se requiere relleno cuando está utilizando un RNN. Una red feedforward puede usarse para predecir secuencias, de hecho, en ParallelDots, nuestro El clasificador de comercio electrónico ParallelDots es una red de avance que intenta clasificar una secuencia (una breve descripción del producto del sitio de comercio electrónico en una categoría de comercio electrónico). Esto incluso ayuda a evitar problemas RNN como la desaparición / explosión de gradientes muchas veces.

Sin embargo, no es una bala de plata, hay muchos problemas diferentes involucrados incluso aquí. Una memoria acolchada es ineficiente en cuanto a memoria si las secuencias tienen longitudes muy diferentes. Piense en cuántos ceros adicionales se llenarían en el conjunto de datos si la longitud media posible de la secuencia es x y la varianza es x / 2 Si solo quieres que se entrenen las secuencias de longitudes, ni siquiera se entrenará, ya que tendrás demasiados parámetros para aprender (el número de parámetros se basa en la secuencia más grande posible independientemente de cómo se vea una secuencia normal) . Incluso en el clasificador de comercio electrónico mencionado anteriormente, tenemos que recortar la longitud máxima de la secuencia de entrenamiento a 8. Por suerte, las descripciones breves de comercio electrónico son casi del mismo tamaño la mayoría de las veces.

Para tamaños de secuencia muy diferentes (por ejemplo, clasificación de párrafos, etc.), generalmente utilizamos nuestros algoritmos basados ​​en LSTM en ParallelDots

Aunque esta podría no ser la única razón, sin duda es muy importante al elegir una estructura de red, los RNN son más generales ya que nos permiten operar sobre secuencias. Debería leer La irrazonable efectividad de las redes neuronales recurrentes.

Para algunos problemas puede ser absurdo rellenar con ceros en otros, puede que no sea así. Usar RNN puede parecer más lógico, particularmente en el caso de datos secuenciales. También se puede usar RNN incluso si no tenemos datos secuenciales, siempre podemos elegir procesar nuestra entrada secuencialmente (más sobre esto en el enlace del artículo del blog).

Los modelos como las redes bayesianas también manejan bien las entradas variables si está interesado. Nuevamente lea la investigación relacionada con el tema … pero no se limite allí. Al igual que Muktabh mencionó, la red feedforward puede funcionar bien en la clasificación de secuencias. También he usado una red FF para clasificar algunos segmentos de clip de voz en la categoría de idioma. Para mi conjunto de datos en particular, parece funcionar bien a pesar de que me han dicho que las variantes RNN o LSTM pueden funcionar mejor (pueden muy bien, pero por ahora creo que mi red es suficiente teniendo en cuenta todas las demás consideraciones). Sin embargo, tenga cuidado al validar sus resultados.