Examinar a arquitetura do DNC realmente mostra muitas semelhanças com o LSTM . Considere o diagrama no artigo do DeepMind ao qual você vinculou:
Compare isso com a arquitetura LSTM (crédito para ananth no SlideShare):
Existem alguns análogos próximos aqui:
- Bem como o LSTM, o DNC irá executar alguma conversão de entrada para vectores de estado de tamanho fixo ( h e c no LSTM)
- Da mesma forma, o DNC realizará alguma conversão desses vetores de estado de tamanho fixo em potencialmente arbitrariamente longos. saída (no LSTM, amostramos repetidamente nosso modelo até estarmos satisfeitos / o modelo indica que estamos concluídos)
- As portas de esquecer e de entrada do LSTM representam a gravação operação de no DNC ('esquecer' é essencialmente apenas zerar ou zerar parcialmente a memória)
- A porta de saída do LSTM representa a operação de leitura no DNC
No entanto, o DNC é definitivamente mais do que um LSTM. Obviamente, ele utiliza um estado maior que é discretizado (endereçável) em pedaços; isso permite que o gate do LSTM seja mais binário. Com isso, quero dizer que o estado não é necessariamente corroído por alguma fração a cada passo do tempo, enquanto no LSTM (com a função de ativação sigmóide) ele necessariamente é. Isso pode reduzir o problema do esquecimento catastrófico que você mencionou e, assim, aumentar sua escala.
O DNC também é inovador nos links que usa entre a memória. No entanto, isso pode ser uma melhoria mais marginal no LSTM do que parece se re-imaginarmos o LSTM com redes neurais completas para cada porta, em vez de apenas uma única camada com uma função de ativação (chamada de super-LSTM); Nesse caso, podemos realmente aprender qualquer relação entre dois slots na memória com uma rede suficientemente poderosa. Embora eu não conheça as especificidades dos links sugeridos pelo DeepMind, eles implicam no artigo que estão aprendendo tudo apenas retropropagando gradientes como uma rede neural comum. Portanto, qualquer relação que eles estejam codificando em seus links deve teoricamente ser aprendida por uma rede neural e, portanto, um 'super-LSTM' suficientemente poderoso deve ser capaz de capturá-lo.
Com tudo isso dito , é comum o aprendizado profundo que dois modelos com a mesma capacidade teórica de expressividade têm um desempenho muito diferente na prática. Por exemplo, considere que uma rede recorrente pode ser representada como uma enorme rede de feed-forward se apenas a desenrolarmos. Da mesma forma, a rede convolucional não é melhor do que uma rede neural de baunilha, porque possui alguma capacidade extra de expressividade; de fato, são as restrições impostas a seus pesos que o tornam mais eficaz. Assim, comparar a expressividade de dois modelos não é necessariamente uma comparação justa de seu desempenho na prática, nem uma projeção precisa de quão bem eles serão dimensionados.
Uma pergunta que tenho sobre o DNC é o que acontece quando fica sem memória. Quando um computador clássico fica sem memória e outro bloco de memória é solicitado, os programas começam a falhar (na melhor das hipóteses). Estou curioso para ver como o DeepMind planeja resolver isso. Suponho que ele contará com alguma canibalização inteligente de memória atualmente em uso. Em certo sentido, os computadores atualmente fazem isso quando um sistema operacional solicita que os aplicativos liberem memória não crítica se a pressão da memória atingir um determinado limite.