Quantas células LSTM devo usar?

12

Existem regras práticas (ou regras reais) referentes à quantidade mínima, máxima e "razoável" de células LSTM que devo usar? Especificamente, estou relacionado ao BasicLSTMCell da TensorFlow e à num_unitspropriedade.

Suponha que eu tenha um problema de classificação definido por:

t - number of time steps
n - length of input vector in each time step
m - length of output vector (number of classes)
i - number of training examples

É verdade, por exemplo, que o número de exemplos de treinamento deve ser maior que:

4*((n+1)*m + m*m)*c

onde cestá o número de células? Baseei- me no seguinte: Como calcular o número de parâmetros de uma rede LSTM? Pelo que entendi, isso deve fornecer o número total de parâmetros, que deve ser menor que o número de exemplos de treinamento.

Comunidade
fonte
11
Eu daria uma olhada neste artigo que aborda bem o tópico de comparar modelos seqüenciais de aprendizado profundo e ajuste de hiperparâmetros: arxiv.org/pdf/1503.04069.pdf Em resumo, eles sugerem o óbvio, que aumenta o número de blocos LSTM por oculto A camada melhora o desempenho, mas apresenta retornos decrescentes e aumenta o tempo de treinamento.
CubeBot88

Respostas:

4

O número mínimo de exemplos de treinamento é o que você tem lá em cima:

4(nm+n2)

Para obter mais informações, consulte este artigo: Consulte este link se precisar de ajuda visual: Número de parâmetros em um modelo LSTM

O número de unidades em cada camada da pilha pode variar. Por exemplo, no translate.py do Tensorflow, ele pode ser configurado para 1024, 512 ou praticamente qualquer número. A melhor faixa pode ser encontrada através da validação cruzada. Mas eu vi o número de 1000 e 500 de unidades em cada camada da pilha. Eu pessoalmente testei com números menores também.

Todos
fonte