Diferença entre amostras, etapas de tempo e recursos na rede neural

17

Estou passando pelo seguinte blog na rede neural LSTM: http://machinelearningmastery.com/understanding-stateful-lstm-recurrent-neural-networks-python-keras/

O autor reformula o vetor de entrada X como [amostras, etapas de tempo, recursos] para diferentes configurações de LSTMs.

O autor escreve

De fato, as seqüências de letras são etapas temporais de um recurso, em vez de um passo temporal de recursos separados. Demos mais contexto à rede, mas não mais sequência, como esperado

O que isto significa?

Vipul Jain
fonte

Respostas:

16

Encontrei isso logo abaixo dos [samples, time_steps, features] com os quais você está preocupado.

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

Amostras - Este é o len (dataX), ou a quantidade de pontos de dados que você possui.

Etapas de tempo - Isso é equivalente à quantidade de etapas de tempo em que você executa sua rede neural recorrente. Se você deseja que sua rede tenha memória de 60 caracteres, esse número deve ser 60.

Recursos - é a quantidade de recursos em todas as etapas. Se você estiver processando imagens, essa é a quantidade de pixels. Nesse caso, você parece ter um recurso por etapa de tempo.

Joonatan Samuel
fonte
1
você pode explicar a diferença entre: X = numpy.reshape (dataX, (len (dataX), 3, 1)) e X = numpy.reshape (dataX, (len (dataX), 1, 3)) Como isso afeta o lstm?
Vipul Jain
1
(len (dataX), 3, 1) executa o LSTM por 3 iterações, inserindo um vetor de entrada da forma (1,). (len (dataX), 1, 3) executa o LSTM para 1 iteração. O que significa que é totalmente inútil ter conexões recorrentes, pois não pode haver nenhum feedback das iterações anteriores. Nesse caso, a forma de entrada para RNN é de forma (3):
Joonatan Samuel 28/02
"(len (dataX), 3, 1) executa o LSTM por 3 iterações" não usamos a época para isso. significa o mesmo que época = 3?
Vipul Jain 28/02
1
Uma época na tradução aproximada significa que treinamos uma vez em todos os pontos de dados em nosso conjunto de dados. Durante o treinamento, analisar exemplos de len (dataX) conta como 1 época. No entanto, as RNNs recebem dados sequencialmente. Em todos os exemplos de treinamento, você precisa alimentar os dados em várias iterações. Por exemplo, eu tenho a palavra "carro" e, em cada iteração, alimento uma letra, deixo concluir a computação e, em seguida, a próxima letra. Para concluir o processamento da palavra "carro", são necessárias 3 iterações para processar a palavra inteira letra por letra.
Joonatan Samuel 28/02
@JoonatanSamuel oi, sei que já passou muito tempo, mas estou tendo muitos problemas para entender o mesmo tópico. Sua resposta é muito clara, mas ainda estou um pouco confusa. Imagine que tivemos uma série temporal descrevendo as vendas a cada mês por vários anos (digamos). Imagine len (data) = 3000, data.shape = (3000,1), por exemplo, para que tenhamos 3000 meses registrados. Preveja o seguinte : se eu quiser usar N observação anterior para prever a próxima (apenas a próxima!), Qual deve ser a forma dos dados de entrada no LSTM? Por exemplo, se quiséssemos usar t-n,..., t-2, t-1para prever t.
Euler_Salter
0

É um pouco tarde demais, mas por precaução;
Uma amostra pode se referir a exemplos de treinamento individuais. Uma variável "batch_size" é, portanto, a contagem de amostras enviadas para a rede neural. Ou seja, quantos exemplos diferentes você fornece de uma só vez para a rede neural.

TimeSteps são marcas de tempo. É quanto tempo cada uma de suas amostras é. Por exemplo, uma amostra pode conter etapas de 128 vezes, onde cada etapa pode ser um trigésimo de segundo para o processamento do sinal. No Processamento de linguagem natural (PNL), um intervalo de tempo pode ser associado a um caractere, uma palavra ou sentença, dependendo da configuração.

Os recursos são simplesmente o número de dimensões que alimentamos a cada etapa do tempo. Por exemplo, na PNL, uma palavra pode ser representada por 300 recursos usando o word2vec. No caso do processamento de sinal, vamos fingir que seu sinal é 3D. Ou seja, você tem um sinal X, Y e Z, como as medições de um acelerômetro em cada eixo. Isso significa que você teria três recursos enviados a cada etapa de cada amostra.

Por Guillaume

Verde
fonte