¿Cómo se utilizan las redes neuronales cuando el número de entradas puede ser variable?


Todos los ejemplos que he visto de redes neuronales son para un conjunto fijo de entradas que funciona bien para imágenes y datos de longitud fija. ¿Cómo se manejan datos de longitud variable como oraciones, consultas o código fuente? ¿Hay alguna manera de codificar datos de longitud variable en entradas de longitud fija y aún así obtener las propiedades de generalización de las redes neuronales?

Author: Pang, 2009-11-19

6 answers

Normalmente extraería entidades de los datos y las alimentaría a la red. No es recomendable tomar solo algunos datos y alimentar a la red. En la práctica, el preprocesamiento y la elección de las características correctas decidirán sobre su éxito y el rendimiento de la red neuronal. Desafortunadamente, en mi Humilde opinión se necesita experiencia para desarrollar un sentido para eso y no es nada que uno pueda aprender de un libro.

Resumiendo: "Basura entra, basura sale"

 28
Author: f3lix,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-11-19 21:49:07

He estado allí, y me enfrenté a este problema. El ANN fue hecho para la longitud de vector de característica fija, y también lo son muchos otros clasificadores como KNN, SVM, Bayesian, etc. es decir, la capa de entrada debe estar bien definida y no variada, esto es un problema de diseño. Sin embargo, algunos investigadores optan por agregar ceros para llenar el vacío que falta, personalmente creo que esto no es una buena solución porque esos ceros (valores irreales) afectarán los pesos a los que converge la red. además, podría haber una señal real que termina con ceros.

ANN no es el único clasificador, hay más y aún mejor, como el bosque aleatorio. este clasificador se considera el mejor entre los investigadores, utiliza un pequeño número de características aleatorias, creando cientos de árboles de decisión utilizando bootstrapping un embolsado, esto podría funcionar bien, el número de las características elegidas normalmente el sqrt del tamaño del vector de características. esas características son aleatorias. cada árbol de decisión converge a una solución, utilizando reglas de mayoría la clase más probable será elegida entonces.

Otra solución es usar el DTW de deformación de tiempo dinámico, o incluso mejor usar modelos ocultos de Markov HMM.

Otra solución es la interpolación, interpolar (compensar los valores faltantes a lo largo de la señal pequeña) todas las señales pequeñas que tienen el mismo tamaño que la señal máxima, los métodos de interpolación incluyen y no se limitan a promediación, B-spline, cúbico.....

Otra solución es utilizar el método de extracción de características para las mejores características (las más distintivas), esta vez las hacen de tamaño fijo, esos métodos incluyen PCA, LDA, etc.

Otra solución es utilizar la selección de características (normalmente después de la extracción de características) una forma fácil de seleccionar las mejores características que dan la mejor precisión.

Eso es todo por ahora, si ninguno de los que trabajaron para usted, por favor póngase en contacto conmigo.

 28
Author: Ahmad Hassanat,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-11 20:12:43

Algunos problemas podrían ser resueltos por una red neuronal recurrente. Por ejemplo, es bueno para calcular la paridad sobre una secuencia de entradas.

La red neuronal recurrente para calcular la paridad tendría solo una característica de entrada. Los bits podrían ser alimentados en él con el tiempo. Su salida también se devuelve a la capa oculta. Eso permite aprender la paridad con solo dos unidades ocultas.

Una red neuronal de dos capas normal de feed-forward requeriría 2 * * sequence_length oculto unidades para representar la paridad. Esta limitación se aplica a para cualquier arquitectura con solo 2 capas (por ejemplo, SVM).

 18
Author: Ivo Danihelka,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-04-22 18:51:32

Supongo que una forma de hacerlo es agregar un componente temporal a la entrada (red neuronal recurrente) y transmitir la entrada a la red un trozo a la vez (básicamente creando el equivalente de red neuronal de un lexer y parser) esto permitiría que la entrada sea bastante grande, pero tendría la desventaja de que no necesariamente habría un símbolo de parada para separar diferentes secuencias de entrada entre sí (el equivalente de un período en sentancias)

 2
Author: Jeremy E,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-04-22 17:14:28

Para usar una red neuronal en imágenes de diferentes tamaños, las imágenes en sí a menudo se recortan y se escalan hacia arriba o hacia abajo para adaptarse mejor a la entrada de la red. Sé que realmente no responde a su pregunta, pero tal vez algo similar sería posible con otros tipos de entrada, utilizando algún tipo de función de transformación en la entrada?

 1
Author: fallaciousreasoning,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-12-08 03:28:37

No estoy del todo seguro, pero diría que use el número máximo de entradas (por ejemplo, para palabras, digamos que ninguna palabra tendrá más de 45 caracteres (la palabra más larga que se encuentra en un diccionario según wikipedia), y si se encuentra una palabra más corta, establezca las otras entradas en un carácter de espacio en blanco.

O con datos binarios, póngalo en 0. el único problema con este enfoque es si una entrada llena de caracteres de espacio en blanco/ceros/lo que sea choca con una entrada de longitud completa válida (no tanto un problema con palabras como con números).

 0
Author: Zenon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-11-19 21:07:01