nsims = 50 cost_fun = lambda s1, s2: (B1*s1-x)**2 + (z+B2*s2 - B2*(B1*s1-y)**2)**2 #perturb_rate = 0.01 # Proportion of points that are perturbations # # 1% = 10 Hz. Only half of these are spikes, so the injected noise rate is 5Hz mvals = [0.0025, 0.005, 0.01, 0.015] M = len(mvals) # Filename for results params_lif = ParamsLIF(sigma = sigma, tau = tau, mu = mu, c = c) lif = LIF(params_lif, t = tsim) lif.x = 0 t_filter = np.linspace(0, 1, 2000) exp_filter = np.exp(-t_filter/tau_s) exp_filter = exp_filter/np.sum(exp_filter) ds = exp_filter[0] wvals = np.linspace(wmin, wmax, Wn) beta_rd = np.zeros((Wn, Wn, n, T, nsims)) beta_rd_mean = np.zeros((Wn, Wn, n, T, nsims)) beta_rd_true = np.zeros((Wn, Wn, n, T, nsims)) beta_fd_true = np.zeros((Wn, Wn, n, T, nsims)) beta_sp = np.zeros((Wn, Wn, n, T, M, nsims))
x = .01 y = 0.1 z = 0 nsims = 50 cost_fun = lambda s1, s2: (B1*s1-x)**2 + (z+B2*s2 - B2*(B1*s1-y)**2)**2 #perturb_rate = 0.01 # Proportion of points that are perturbations # # 1% = 10 Hz. Only half of these are spikes, so the injected noise rate is 5Hz mvals = [0.0025, 0.005, 0.01, 0.015] M = len(mvals) params_lif = ParamsLIF(sigma = sigma, tau = tau, mu = mu, c = c) lif = LIF(params_lif, t = tsim) lif.x = x_input t_filter = np.linspace(0, 1, 2000) exp_filter = np.exp(-t_filter/tau_s) exp_filter = exp_filter/np.sum(exp_filter) ds = exp_filter[0] wvals = np.linspace(wmin, wmax, Wn) beta_rd = np.zeros((Wn, Wn, n, T, nsims)) beta_rd_mean = np.zeros((Wn, Wn, n, T, nsims)) beta_rd_true = np.zeros((Wn, Wn, n, T, nsims)) beta_fd_true = np.zeros((Wn, Wn, n, T, nsims)) beta_sp = np.zeros((Wn, Wn, n, T, M, nsims))
import numpy as np from lib.lif import LIF, ParamsLIF from lib.causal import causaleffect #Set x = 0, sigma = 10 #wvals = 2..20 sigma = 10 mu = 1 tau = 1 t = 500 params = ParamsLIF(sigma = sigma, mu = mu, tau = tau) lif = LIF(params, t = t) lif.x = 0 #Simulate for a range of $W$ values. N = 19 nsims = 1 wmax = 20 n = params.n deltaT = 50 #Play with different c values cvals = [0.01, 0.25, 0.5, 0.75, 0.99] for c in cvals: print("Running simulations for c = %f"%c) outfile = './sweeps/param_w_N_%d_nsims_%d_c_%f_deltaT_counterfactual_simulations.npz'%(N, nsims, c) params.c = c lif.setup(params) lif.x = 0 wvals = np.linspace(2, wmax, N)
cvals = np.array([0.01, 0.25, 0.5, 0.75, 0.99]) pvals = np.linspace(0.02, 1, 10) tau_s = 0.020 dt = 0.001 t = 50 alpha1 = -30 alpha2 = 20 x = 2 DeltaT = 50 params = ParamsLIF() params_orig = ParamsLIF() lif = LIF(params, t=t) t_filter = np.linspace(0, 0.150, 150) exp_filter = np.exp(-t_filter / tau_s) exp_filter = exp_filter / np.sum(exp_filter) ds = exp_filter[0] #c (correlation between noise inputs) beta_rd_c = np.zeros((len(cvals), nsims, len(pvals), params.n)) beta_fd_c = np.zeros((len(cvals), nsims, params.n)) beta_bp_c = np.zeros((len(cvals), nsims, params.n)) beta_rd_c_linear = np.zeros((len(cvals), nsims, len(pvals), params.n)) beta_fd_c_linear = np.zeros((len(cvals), nsims, params.n)) m_beta_bp_c = np.zeros(params.n)
import numpy as np from lib.lif import LIF, ParamsLIF from lib.causal import causaleffect params = ParamsLIF() lif = LIF(params) #Simulate for a range of $W$ values. N = 10 nsims = 500 wvals = np.linspace(1, 10, N) beta_rd_w = np.zeros((N, N, nsims, params.n)) beta_fd_w = np.zeros((N, N, nsims, params.n)) beta_bp_w = np.zeros((N, N, nsims, params.n)) lif.setup(params) p = 0.03 for i, w0 in enumerate(wvals): for j, w1 in enumerate(wvals): print("Running %d simulations with w0=%f, w1=%f" % (nsims, w0, w1)) lif.W = np.array([w0, w1]) for k in range(nsims): (v, h, Cost, betas) = lif.simulate() beta_rd_w[i, j, k, :] = causaleffect(v, Cost, p, params) beta_fd_w[i, j, k, :] = causaleffect(v, Cost, 1, params) beta_bp_w[i, j, k, :] = betas #Save output outfile = './sweeps/param_w_N_%d_nsims_%d_default.npz' % (N, nsims)
M = len(mvals) # Filename for results fn_out = './sweeps/learningbeta_fixedx_sweepw_banana_perturbation.npz' #Cost function params B1 = 2 B2 = 7 x = .05 y = 0.15 z = -0.2 params = ParamsLSM(q=q, p=1, t=t) lsm = LSM(params) params_lif = ParamsLIF() lif = LIF(params_lif, t=t) t_filter = np.linspace(0, 0.15, 150) exp_filter = np.exp(-t_filter / tau_s) exp_filter = exp_filter / np.sum(exp_filter) ds = exp_filter[0] wvals = np.linspace(1, wmax, Wn) beta_rd = np.zeros((Wn, Wn, n, N)) beta_rd_true = np.zeros((Wn, Wn, n, N)) beta_fd_true = np.zeros((Wn, Wn, n, N)) beta_sp = np.zeros((Wn, Wn, n, N, M)) for i, w0 in enumerate(wvals): print("W0=%d" % w0) for j, w1 in enumerate(wvals):