# Mecanisme de gating

A les xarxes neuronals, el mecanisme de gating és un motiu arquitectònic per controlar el flux de senyals d'activació i gradient. S'utilitzen de manera més destacada en xarxes neuronals recurrents (RNN), però també han trobat aplicacions en altres arquitectures.

## RNN

Els mecanismes de gating són la peça central de la memòria a llarg termini (LSTM). Es van proposar per mitigar el problema del gradient de desaparició que sovint es troben els RNN habituals.
Una unitat LSTM conté tres portes:
* Una porta d'entrada, que controla el flux de nova informació a la cel·la de memòria
* Una porta d'oblit, que controla quanta informació es conserva del pas de temps anterior
* Una porta de sortida, que controla quanta informació es passa a la capa següent.
Les equacions per a LSTM són:
${\begin{aligned}\mathbf {I} _{t}&=\sigma (\mathbf {X} _{t}\mathbf {W} _{xi}+\mathbf {H} _{t-1}\mathbf {W} _{hi}+\mathbf {b} _{i})\\\mathbf {F} _{t}&=\sigma (\mathbf {X} _{t}\mathbf {W} _{xf}+\mathbf {H} _{t-1}\mathbf {W} _{hf}+\mathbf {b} _{f})\\\mathbf {O} _{t}&=\sigma (\mathbf {X} _{t}\mathbf {W} _{xo}+\mathbf {H} _{t-1}\mathbf {W} _{ho}+\mathbf {b} _{o})\\{\tilde {\mathbf {C} }}_{t}&=\tanh(\mathbf {X} _{t}\mathbf {W} _{xc}+\mathbf {H} _{t-1}\mathbf {W} _{hc}+\mathbf {b} _{c})\\\mathbf {C} _{t}&=\mathbf {F} _{t}\odot \mathbf {C} _{t-1}+\mathbf {I} _{t}\odot {\tilde {\mathbf {C} }}_{t}\\\mathbf {H} _{t}&=\mathbf {O} _{t}\odot \tanh(\mathbf {C} _{t})\end{aligned}}$
Aquí, $\odot$ representa la multiplicació per elements.
* Arquitectura LSTM, amb portes
La unitat recurrent gated (GRU) simplifica el LSTM. En comparació amb el LSTM, el GRU només té dues portes: una porta de restabliment i una porta d'actualització. GRU també fusiona l'estat de la cel·la i l'estat ocult. La porta de restabliment correspon aproximadament a la porta d'oblit, i la porta d'actualització correspon aproximadament a la porta d'entrada. S'elimina la porta de sortida.
Hi ha diverses variants de GRU. Una variant concreta té aquestes equacions:
${\begin{aligned}\mathbf {R} _{t}&=\sigma (\mathbf {X} _{t}\mathbf {W} _{xr}+\mathbf {H} _{t-1}\mathbf {W} _{hr}+\mathbf {b} _{r})\\\mathbf {Z} _{t}&=\sigma (\mathbf {X} _{t}\mathbf {W} _{xz}+\mathbf {H} _{t-1}\mathbf {W} _{hz}+\mathbf {b} _{z})\\{\tilde {\mathbf {H} }}_{t}&=\tanh(\mathbf {X} _{t}\mathbf {W} _{xh}+(\mathbf {R} _{t}\odot \mathbf {H} _{t-1})\mathbf {W} _{hh}+\mathbf {b} _{h})\\\mathbf {H} _{t}&=\mathbf {Z} _{t}\odot \mathbf {H} _{t-1}+(1-\mathbf {Z} _{t})\odot {\tilde {\mathbf {H} }}_{t}\end{aligned}}$
* Arquitectura de la Unitat Recurrent Gated, amb portes

## Unitat lineal tancada

Gated Linear Units (GLU) adapten el mecanisme de gating per utilitzar-lo en xarxes neuronals d'alimentació anticipada, sovint dins d'arquitectures basades en transformadors. Es defineixen com:
$\mathrm {GLU} (a,b)=a\odot \sigma (b)$on
$a,b$ són la primera i la segona entrada, respectivament. $\sigma$ representa la funció d'activació del sigmoide.
Substituint $\sigma$ amb altres funcions d'activació condueix a variants de GLU:
${\begin{aligned}\mathrm {ReGLU} (a,b)&=a\odot {\text{ReLU}}(b)\\\mathrm {GEGLU} (a,b)&=a\odot {\text{GELU}}(b)\\\mathrm {SwiGLU} (a,b,\beta )&=a\odot {\text{Swish}}_{\beta }(b)\end{aligned}}$
on ReLU, GELU i Swish són funcions d'activació diferents (vegeu aquesta taula per a les definicions).
En els models de transformadors, aquestes unitats de porta s'utilitzen sovint en els mòduls d'alimentació anticipada. Per a una entrada vectorial única, això resulta en:
${\begin{aligned}\operatorname {GLU} (x,W,V,b,c)&=\sigma (xW+b)\odot (xV+c)\\\operatorname {Bilinear} (x,W,V,b,c)&=(xW+b)\odot (xV+c)\\\operatorname {ReGLU} (x,W,V,b,c)&=\max(0,xW+b)\odot (xV+c)\\\operatorname {GEGLU} (x,W,V,b,c)&=\operatorname {GELU} (xW+b)\odot (xV+c)\\\operatorname {SwiGLU} (x,W,V,b,c,\beta )&=\operatorname {Swish} _{\beta }(xW+b)\odot (xV+c)\end{aligned}}$
El mecanisme de gating s'utilitza a les xarxes d'autopistes, que es van dissenyar desenrotllant un LSTM.
Channel gating utilitza una porta per controlar el flux d'informació a través de diferents canals dins d'una xarxa neuronal convolucional (CNN).

## Referències

* ↑ «Gating Mechanisms in Neural Networks» (en anglès). [Consulta: 31 gener 2025].
* ↑ Sepp Hochreiter; Jürgen Schmidhuber Neural Computation, 9, 8, 1997, pàg. 1735–1780. DOI: 10.1162/neco.1997.9.8.1735. PMID: 9377276.
* ↑ Zhang, Aston. «10.1. Long Short-Term Memory (LSTM)». A: Dive into deep learning (en anglès). Cambridge New York Port Melbourne New Delhi Singapore: Cambridge University Press, 2024. ISBN 978-1-009-38943-3.
* ↑ Cho, Kyunghyun; van Merrienboer, Bart; Bahdanau, DZmitry; Bougares, Fethi; Schwenk, Holger Association for Computational Linguistics, 2014. arXiv: 1406.1078.
* ↑ Zhang, Aston. «10.2. Gated Recurrent Units (GRU)». A: Dive into deep learning (en anglès). Cambridge New York Port Melbourne New Delhi Singapore: Cambridge University Press, 2024. ISBN 978-1-009-38943-3.
* ↑ Dauphin, Yann N.; Fan, Angela; Auli, Michael; Grangier, David (en anglès) Proceedings of the 34th International Conference on Machine Learning, 17-07-2017, pàg. 933–941. arXiv: 1612.08083.
* ↑ Hua, Weizhe; Zhou, Yuan; De Sa, Christopher M; Zhang, Zhiru; Suh, G. Edward Advances in Neural Information Processing Systems, 32, 2019. arXiv: 1805.12549.