Existem redes neurais recorrentes e redes neurais recursivas. Ambos são geralmente indicados pela mesma sigla: RNN. Segundo a Wikipedia , o NN recorrente é de fato o NN recursivo, mas eu realmente não entendo a explicação.
Além disso, não acho o que é melhor (com exemplos ou mais) para o Processamento de linguagem natural. O fato é que, embora Socher use NN recursivo para PNL em seu tutorial , não consigo encontrar uma boa implementação de redes neurais recursivas e, quando pesquiso no Google, a maioria das respostas é sobre NN recorrente.
Além disso, existe outro DNN que se aplica melhor à PNL ou depende da tarefa da PNL? Redes de crenças profundas ou Autoencoders empilhados? (Parece que não encontro nenhum utilitário específico para ConvNets na PNL, e a maioria das implementações é com visão de máquina em mente).
Finalmente, eu realmente preferiria implementações DNN para C ++ (melhor ainda se tiver suporte a GPU) ou Scala (melhor se tiver suporte a Spark) em vez de Python ou Matlab / Octave.
Eu tentei o Deeplearning4j, mas está em constante desenvolvimento e a documentação está um pouco desatualizada e não consigo fazê-lo funcionar. Pena que tem a maneira de fazer as coisas da "caixa preta", muito parecido com o scikit-learn ou Weka, que é o que eu realmente quero.
fonte
Redes Neurais Recorrentes (RNN) basicamente se desdobram ao longo do tempo. É usado para entradas seqüenciais em que o fator tempo é o principal fator diferenciador entre os elementos da sequência. Por exemplo, aqui está uma rede neural recorrente usada para modelagem de linguagem que foi desenvolvida ao longo do tempo. Em cada etapa do tempo, além da entrada do usuário nessa etapa, ele também aceita a saída da camada oculta que foi calculada na etapa anterior.
Uma rede neural recursiva é mais como uma rede hierárquica em que não há realmente nenhum aspecto de tempo na sequência de entrada, mas a entrada deve ser processada hierarquicamente em forma de árvore. Aqui está um exemplo de como uma rede neural recursiva se parece. Ele mostra a maneira de aprender uma árvore de análise de uma sentença, recursivamente, obtendo a saída da operação executada em um pedaço menor do texto.
[ NOTA ]:
LSTM e GRU são dois tipos de RNNs estendidos com o gate forget, que são altamente comuns na PNL.
Fórmula de células LSTM:
fonte