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))
 
コード例 #2
0
 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))
 
コード例 #3
0
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)
コード例 #4
0
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)
コード例 #5
0
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)
コード例 #6
0
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)
コード例 #7
0
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):