Examinar la arquitectura del DNC muestra muchas similitudes con el LSTM . Considere el diagrama en el artículo de DeepMind al que se vinculó:
Compare esto con la arquitectura LSTM (crédito a ananth en SlideShare):
Aquí hay algunos análogos cercanos:
- Al igual que el LSTM, el DNC realizará alguna conversión de entrada a vectores de estado de tamaño fijo ( h y c en el LSTM)
- Del mismo modo, el DNC realizará alguna conversión de estos vectores de estado de tamaño fijo a una salida potencialmente arbitrariamente alargada (en el LSTM tomamos muestras de nuestro modelo repetidamente hasta que estemos satisfechos / el modelo indica que hemos terminado)
- Las puertas de olvido y entrada del LSTM representan la operación de escritura en el DNC ('olvidar' es esencialmente solo poner a cero o parcialmente memoria a cero)
- La puerta de salida del LSTM representa la operación de lectura en el DNC
Sin embargo, el DNC es definitivamente más que un LSTM. Lo más obvio es que utiliza un estado más grande que está discretizado (direccionable) en trozos; esto le permite hacer que la puerta olvidada del LSTM sea más binaria. Con esto quiero decir que el estado no es necesariamente erosionado por alguna fracción en cada paso de tiempo, mientras que en el LSTM (con la función de activación sigmoidea) necesariamente lo es. Esto podría reducir el problema del olvido catastrófico que mencionó y, por lo tanto, escalar mejor.
El DNC también es novedoso en los enlaces que utiliza entre la memoria. Sin embargo, esto podría ser una mejora más marginal en el LSTM de lo que parece si re-imaginamos el LSTM con redes neuronales completas para cada puerta en lugar de una sola capa con una función de activación (llame a esto un super-LSTM); en este caso, podemos aprender cualquier relación entre dos ranuras en la memoria con una red lo suficientemente potente. Si bien no conozco los detalles de los enlaces que sugiere DeepMind, implican en el artículo que están aprendiendo todo simplemente propagando hacia atrás los gradientes como una red neuronal normal. Por lo tanto, cualquier relación que estén codificando en sus enlaces debería ser teóricamente aprendeble por una red neuronal, por lo que un 'super-LSTM' suficientemente poderoso debería ser capaz de capturarlo.
Dicho todo esto , a menudo ocurre en el aprendizaje profundo que dos modelos con la misma capacidad teórica de expresividad tienen un desempeño muy diferente en la práctica. Por ejemplo, considere que una red recurrente se puede representar como una gran red de retroalimentación si simplemente la desenrollamos. Del mismo modo, la red convolucional no es mejor que una red neuronal vainilla porque tiene una capacidad extra de expresividad; de hecho, son las restricciones impuestas a sus pesos lo que lo hace más efectivo. Por lo tanto, comparar la expresividad de dos modelos no es necesariamente una comparación justa de su desempeño en la práctica, ni una proyección precisa de qué tan bien se escalarán.
Una pregunta que tengo sobre el DNC es qué sucede cuando se queda sin memoria. Cuando una computadora clásica se queda sin memoria y se solicita otro bloque de memoria, los programas comienzan a fallar (en el mejor de los casos). Tengo curiosidad por ver cómo DeepMind planea abordar esto. Supongo que dependerá de una canibalización inteligente de la memoria actualmente en uso. En cierto sentido, las computadoras actualmente hacen esto cuando un sistema operativo solicita que las aplicaciones liberen memoria no crítica si la presión de la memoria alcanza un cierto umbral.