Diferencia entre muestras, pasos de tiempo y características en la red neuronal

17

Estoy leyendo el siguiente blog sobre la red neuronal LSTM: http://machinelearningmastery.com/understanding-stateful-lstm-recurrent-neural-networks-python-keras/

El autor da nueva forma al vector de entrada X como [muestras, pasos de tiempo, características] para diferentes configuraciones de LSTM.

El autor escribe

De hecho, las secuencias de letras son pasos de tiempo de una característica en lugar de un paso de tiempo de características separadas. Hemos dado más contexto a la red, pero no más secuencia como se esperaba

¿Qué significa esto?

Vipul Jain
fuente

Respuestas:

16

Encontré esto justo debajo de [samples, time_steps, features] que te interesan.

X = numpy.reshape(dataX, (len(dataX), seq_length, 1))

Muestras: esta es la len (dataX), o la cantidad de puntos de datos que tiene.

Pasos de tiempo: esto equivale a la cantidad de pasos de tiempo que ejecuta su red neuronal recurrente. Si desea que su red tenga memoria de 60 caracteres, este número debe ser 60.

Características: esta es la cantidad de características en cada paso de tiempo. Si está procesando imágenes, esta es la cantidad de píxeles. En este caso, parece tener 1 función por paso de tiempo.

Joonatan Samuel
fuente
1
¿Puede explicar la diferencia entre: X = numpy.reshape (dataX, (len (dataX), 3, 1)) y X = numpy.reshape (dataX, (len (dataX), 1, 3)) ¿Cómo afecta esto? el lstm?
Vipul Jain
1
(len (dataX), 3, 1) ejecuta LSTM durante 3 iteraciones, ingresando un vector de entrada de forma (1,). (len (dataX), 1, 3) ejecuta LSTM para 1 iteración. Lo que significa que es inútil incluso tener conexiones recurrentes ya que no puede haber retroalimentación de las iteraciones anteriores. En este caso, la forma de entrada a RNN tiene forma (3,)
Joonatan Samuel
"(len (dataX), 3, 1) ejecuta LSTM durante 3 iteraciones" no usamos epoch para eso. ¿significa lo mismo que epoch = 3?
Vipul Jain
1
Una época en la traducción aproximada significa que hemos entrenado una vez en cada punto de datos en nuestro conjunto de datos. Durante el entrenamiento, haber examinado los ejemplos de len (dataX) cuenta como 1 época. Sin embargo, los RNN toman datos secuencialmente. En cada ejemplo de entrenamiento, debe alimentar sus datos a través de múltiples iteraciones. Por ejemplo, tengo una palabra "auto" y en cada iteración le doy una letra, le dejo completar el cálculo y luego le doy la siguiente letra. Para completar el procesamiento de la palabra "auto" necesita 3 iteraciones para procesar la palabra completa letra por letra.
Joonatan Samuel
@JoonatanSamuel hola, sé que ha pasado mucho tiempo, pero tengo muchos problemas para entender el mismo tema. Su respuesta es muy clara, pero todavía estoy un poco confundido. Imagine que teníamos una serie temporal que describía las ventas de cada mes durante varios años (por ejemplo). Imagine len (data) = 3000, data.shape = (3000,1) por ejemplo, entonces tenemos 3000 meses registrados. Predecir la siguiente : si quiero usar N observación previa para predecir la siguiente (¡solo la siguiente!), ¿Cuál debería ser la forma de los datos de entrada a LSTM? Por ejemplo, si quisiéramos usar t-n,..., t-2, t-1para predecir t.
Euler_Salter
0

Es un poco tarde pero por si acaso;
Una muestra puede referirse a ejemplos de capacitación individual. Una variable "batch_size" es, por tanto, el recuento de muestras que envió a la red neuronal. Es decir, cuántos ejemplos diferentes alimentas a la vez a la red neuronal.

TimeSteps son señales de tiempo. Es cuánto tiempo dura cada una de sus muestras. Por ejemplo, una muestra puede contener pasos de 128 veces, donde cada paso de tiempo podría ser una trigésima de segundo para el procesamiento de la señal. En el procesamiento del lenguaje natural (PNL), un paso de tiempo puede estar asociado con un carácter, una palabra o una oración, dependiendo de la configuración.

Las características son simplemente el número de dimensiones que alimentamos en cada paso de tiempo. Por ejemplo, en PNL, una palabra podría estar representada por 300 características usando word2vec. En el caso del procesamiento de señales, imaginemos que su señal es 3D. Es decir, tiene una señal X, Y y Z, como las medidas de un acelerómetro en cada eje. Esto significa que tendría 3 características enviadas en cada paso de tiempo para cada muestra.

Por Guillaume

Verde
fuente
0

Mi respuesta con un ejemplo: ["hola, esto es xyz", "cómo estás", "gran hombre ..."]

en este caso "[muestras, pasos de tiempo, características]" significa:

  • muestra: 3 porque hay 3 elementos en la lista
  • pasos de tiempo: aquí puede tomar max_length = 4 length ("hola, esto es xyz") = 4; longitud ("cómo estás") = 4; length ("great man ...") = 2 (después de eliminar la puntuación "."). La razón de decir que esto es un paso de tiempo es, en el primer elemento "hola, esto es xyz" ==> t0 ("hola"), t1 ("esto"), t2 ("es") y t3 ("xyz")
  • características: el tamaño de incrustación para cada palabra. por ejemplo, "hola": matriz 50D, "esto": matriz 50D, etc.
tintin
fuente