¿Por qué las celdas LSTM tienen dos puertas de escritura?

En un LSTM, donde el control de los gradientes y el flujo de información es de suma importancia, literalmente todo está cerrado. Escribir es especial en el sentido de que necesita dos flujos de información: uno que proporcione lo que hay que escribir y otro que controle la cantidad que vamos a utilizar.

En la foto que cargó, la puerta [math] i_ {t} [/ math] representa la puerta de entrada , que básicamente bloquea la cantidad del nuevo estado de celda que vamos a dejar entrar al estado de celda anterior. Por otro lado, [math] \ widetilde {C_ {t}} [/ math] es el nuevo estado de celda que queremos agregar. Entonces, en realidad, no hay dos puertas de escritura . Solo [math] i_ {t} [/ math] es una puerta.

Esencialmente, una escritura debe dividirse en dos partes para que tenga sentido, necesitamos saber qué escribir y cuánto queremos cambiar lo que ya tenemos. Imagine que tiene algunos datos realmente importantes almacenados en el estado de su celda, y desea protegerlos para que no sean modificados por [math] \ widetilde {C_ {t}} [/ math]. Con un sistema de escritura de dos partes, esto es fácil, simplemente multiplicamos [math] \ widetilde {C_ {t}} [/ math] por un vector de todos los ceros ([math] i_ {t} [/ math]), y nada se agrega a nuestro estado celular original.

Esto también explica la motivación para usar sigmoide en la puerta de entrada, y tanh para [math] \ widetilde {C_ {t}} [/ math]: sigmoid en la puerta de entrada aplastará sus salidas entre 0 y 1 (no puede deje que una cantidad negativa de algo atraviese una puerta, deje pasar una cantidad positiva, pero no necesariamente entera, de algo a través de una puerta), y tanh permitirá salidas negativas de [math] \ widetilde {C_ {t}} [/ math] porque en realidad representa datos (potencialmente significativos) que se agregarán a los datos antiguos, donde los números negativos pueden contribuir a la información.