_np.asarray() raises TypeError on CuPy arrays; np.asnumpy() handles both. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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