- Isso está correto?
Sim, os diagramas parecem corretos para mim. O principal para entender os dois diagramas é que as entradas e saídas de uma célula LSTM são vetores.
Os círculos no primeiro diagrama representam o conceito de que a camada contém vários neurônios artificiais individuais e isso pode fazer você supor que o segundo diagrama é uma imagem de um desses neurônios. Pode-se argumentar que existem vários "neurônios" ou subcamadas com funções diferentes dentro de uma célula, porque existem vários lugares nos quais os cálculos da formaf( Wx +b)ocorrer, desempenhando papéis ligeiramente diferentes. Eu acho que o termo "célula" é usado para se referir a essa arquitetura de neurônios. Como uma mão curta quando digo "neurônio", costumo pensar no estágio de saída da camada oculta.
No entanto, no segundo diagrama, todas as operações mostradas funcionam com vetores. Mais importante ainda, as setas da esquerda para a direita no segundo diagrama representam vetores de estado oculto do timestep ao timestep de toda a camada . Portanto, cada neurônio da célula é conectado de forma recorrente a todos os outros neurônios da célula - duas vezes como acontece em um LSTM, porque os LSTMs têm um estado interno da célula e uma saída da camada.
- Cada unidade na célula é independente das outras? Ou eles compartilham informações?
Para corresponder à sua descrição dos diagramas, vamos definir uma "unidade" como uma coleção de um de cada tipo de neurônio / porta usado para formar a célula, que em teoria poderia ser conectado para formar uma camada de células LSTM funcionais com uma única estado da célula escalar e valor de saída.
Essas unidades são independentes, pois cada uma possui seus próprios parâmetros de peso. Não há parâmetros compartilhados para as conexões entre a entrada e as unidades ou para as conexões recursivas que encaminham o estado de uma etapa para outra. Nesse sentido, as unidades não compartilham informações.
No entanto, as conexões significam que, em cada etapa, dados de entrada e estado oculto, além da saída da última saída de todas as outras unidades da célula, são combinados, usados nos cálculos. Qualquer unidade de célula pode basear seu novo estado interno mais sua saída nos valores de todas as outras saídas e estados internos de outras unidades na célula. Nesse sentido, as unidades compartilham informações. Acho que, com a sua pergunta, provavelmente é com esse segundo problema que você se preocupa, pois o segundo diagrama faz você pensar em um diagrama de fiação para um único neurônio, mas, como explicado acima, esse não é o caso.
- Imagine que eu tenho a seguinte configuração: Número de amostras = 1000 Número de intervalos de tempo = 10 Número de recursos = 5 Nesse caso, cada unidade de uma célula terá como entrada um vetor de tamanho 5, certo?
Quase. Cada neurônio dentro da célula recebe uma entrada de 5 dex, além de uma entrada da saída da camada oculta, h. Portanto, se no seu caso o tamanho da célula LSTM fosse 10, cada neurônio levaria um vetor combinado de 15. Além disso, um segundo vetor de estado celular é mantido, não rotulado em seu diagrama. Isso não é usado diretamente como entrada para nenhum neurônio (isto é, componentes do formuláriof( Wx +b)), mas interage com os outros valores e pode ser alterado por meio dos vários portões. No seu segundo diagrama, é a seta superior indo da esquerda para a direita.
Mas qual será o tamanho da saída para uma unidade? 1?
A célula como um todo terá a saída de qualquer tamanho que você criou na camada. É isso que o diagrama número 2 tenta mostrar. No entanto, usando nossa definição de trabalho de "unidade", a saída de cada unidade será de dois valores escalares - a saída da camada oculta e o estado da célula - que farão parte de seus respectivos vetores mostrados nos diagramas.