# RNN-RBM A Recurrent Temporal RBM in which the visible layer at each time step is `[h_{t-1} | x_t]` — the previous hidden state (context) concatenated with the current input. Training uses Contrastive Divergence on `[h_t | x_{t+1}]` to learn next-step prediction. ## Signal flow (UNROLL_DEPTH = 2) ``` x[0] x[1] x[2] x[3] │ │ │ │ ▼ ▼ ▼ ▼ ┌───────┐ ┌───────┐ ┌───────┐ ┌───────┐ 0 ──►│ ├─ h[0] ─►│ ├─ h[1] ─►│ ├─ h[2] ─►│ ├─ h[3] ─► │ W0 │ │ W1 │ │ W0 │ │ W1 │ └───────┘ └───────┘ └───────┘ └───────┘ t=0 t=1 t=2 t=3 vis[t] = [ h[t-1] | x[t] ] (context ‖ sensory → input to W) h[t] = sigmoid( W · vis[t] + b_h ) (new context → passed right) Training: CD on [ h[t] | x[t+1] ] to predict the next sensory from h[t] ``` ## Modes | `UNROLL_DEPTH` | Mode | Behaviour | |---|---|---| | 1 | shared weights | one entity reused at every time step; sequences may have any length | | N > 1 | unrolled | N entities rotate as `layer[t % N]`; each position learns its own W | With `UNROLL_DEPTH = 2` the two entities specialise for even and odd positions respectively, doubling parameter count while keeping inference identical to the shared case. ## Key parameters (`RNN-RBM.ipynb`) | Parameter | Default | Meaning | |---|---|---| | `SENSORY_SIZE` | 40 | vocabulary size (one-hot) | | `CONTEXT_SIZE` | 256 | hidden / context dimension | | `UNROLL_DEPTH` | 2 | number of alternating entities | | `NUM_EPOCHS` | 100 | training epochs | ## Papers https://proceedings.mlr.press/v5/sutskever09a.html — The Recurrent Temporal RBM (Sutskever, Hinton, Taylor 2009) https://arxiv.org/abs/1206.6392 — Modeling temporal dependencies with RNN-RBM (Boulanger-Lewandowski et al. 2012) --- # GRBM ## Paper https://medium.com/@rtdcunha/gaussian-bernoulli-restricted-boltzmann-machines-4a68b8765485 https://journals.plos.org/plosone/article/file?id=10.1371/journal.pone.0171015&type=printable ## Code https://github.com/DSL-Lab/GRBM/tree/main # CRBM ## Paper https://www.ee.nthu.edu.tw/hchen/pubs/iee2003.pdf # Regularization https://benihime91.github.io/blog/machinelearning/deeplearning/python3.x/tensorflow2.x/2020/10/08/adamW.html https://medium.com/analytics-vidhya/l1-vs-l2-regularization-which-is-better-d01068e6658c https://jamesmccaffreyblog.com/2019/05/09/the-difference-between-neural-network-l2-regularization-and-weight-decay