From 7e8d314c0fb8e82730e24da153e8b73c3af4ecd6 Mon Sep 17 00:00:00 2001 From: YurenHao0426 Date: Wed, 22 Jul 2026 02:13:33 -0500 Subject: results: freeze predictor timescale choice --- sdil/core.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'sdil/core.py') diff --git a/sdil/core.py b/sdil/core.py index cece194..8b3f923 100644 --- a/sdil/core.py +++ b/sdil/core.py @@ -18,7 +18,7 @@ For hidden layer l: Three learning rules, all local (no weight transport, no reverse-mode graph): dW_l = eta * (r_l ⊙ phi'(u_l)) h_{l-1}^T (three-factor: pre * gain * innovation) - dP_l = eta_P * (a_l - P_l h_l) h_l^T (slow; only on neutral periods) eta_P << eta + dP_l = eta_P * (a_l - P_l h_l) h_l^T (identified only on neutral periods) dA_l = eta_A * (q_l - r_l) c_l^T (on perturbation trials; q_l = causal node-pert estimate) q_l is a node-perturbation estimate of the causal descent direction @@ -513,9 +513,9 @@ def sdil_step(net, x, y, y_onehot, cfg, step, prev_error=None): dA = (qs[l] - r_list[l]).t() @ c / B # (n_l, n_classes) net.A[l] += cfg.eta_A * dA - # ================= predictor P (slow) ============================= - # KEY timescale-separation condition. P must learn the soma->apical - # coupling WITHOUT absorbing the teaching signal. On "neutral periods" + # ================= predictor P (neutral) ========================== + # KEY identification condition. P must learn the soma->apical coupling + # WITHOUT absorbing the teaching signal. On "neutral periods" # the apical compartment carries only the soma-predictable nuisance drive # (top-down teaching c is absent), so we fit P to the c=0 apical. This # makes P -> nuisance map (rho*Bnuis) and leaves the innovation intact. -- cgit v1.2.3