# eta_0 = 7*10**-2 eta = 3 * 10**-2 reservoir_sizes = list(range(100, 1000 + 1, 100)) ortog_mean = np.zeros((len(reservoir_sizes), ORTHOPROCESS_ITERATIONS + 1)) ortog_std = np.zeros((len(reservoir_sizes), ORTHOPROCESS_ITERATIONS + 1)) for rsi, N in enumerate(reservoir_sizes): print(N) instances = np.zeros((INSTANCES, ORTHOPROCESS_ITERATIONS + 1)) for inst in range(INSTANCES): W = np.random.normal(0, 1, [N, N]) W = W * (rho / np.max(np.abs(np.linalg.eig(W)[0]))) WI = random.uniform(-tau, tau, N) instances[inst, 0] = orthogonality(W) # eta = eta_0 for it in range(ORTHOPROCESS_ITERATIONS): W = learn_orthogonal(W, eta) # W = learn_orthonormal(W, eta) instances[inst, it + 1] = orthogonality(W) # eta = eta * 0.9 ortog_mean[rsi, :] = np.mean(instances, axis=0) ortog_std[rsi, :] = np.std(instances, axis=0) np.save('ortog_mean', ortog_mean) np.save('ortog_std', ortog_std)
def measure_og(W): return orthogonality(W)
# eta_0 = 7*10**-2 eta = 3*10**-2 reservoir_sizes = list(range(100, 1000 + 1, 100)) ortog_mean = np.zeros((len(reservoir_sizes), ORTHOPROCESS_ITERATIONS + 1)) ortog_std = np.zeros((len(reservoir_sizes), ORTHOPROCESS_ITERATIONS + 1)) for rsi, N in enumerate(reservoir_sizes): print(N) instances = np.zeros((INSTANCES, ORTHOPROCESS_ITERATIONS + 1)) for inst in range(INSTANCES): W = np.random.normal(0, 1, [N, N]) W = W * (rho / np.max(np.abs(np.linalg.eig(W)[0]))) WI = random.uniform(-tau, tau, N) instances[inst, 0] = orthogonality(W) # eta = eta_0 for it in range(ORTHOPROCESS_ITERATIONS): W = learn_orthogonal(W, eta) # W = learn_orthonormal(W, eta) instances[inst, it + 1] = orthogonality(W) # eta = eta * 0.9 ortog_mean[rsi, :] = np.mean(instances, axis=0) ortog_std[rsi, :] = np.std(instances, axis=0) np.save('ortog_mean', ortog_mean) np.save('ortog_std', ortog_std)
orthoa_std = np.zeros(len(reservoir_sizes)) for rsi, N in enumerate(reservoir_sizes): print(N) mc_before = np.zeros(INSTANCES) mc_after = np.zeros(INSTANCES) ob = np.zeros(INSTANCES) oa = np.zeros(INSTANCES) for inst in range(INSTANCES): WI = np.random.uniform(-tau, tau, N) # W = np.random.normal(0, 1, [N, N]) # W = W * (rho / np.max(np.abs(np.linalg.eig(W)[0]))) W = random.normal(0, sigma, [N, N]) mc_before[inst], _ = measure_mc(W, WI) ob[inst] = orthogonality(W) W, WI = gs(W, WI, N) mc_after[inst], _ = measure_mc(W, WI) oa[inst] = orthogonality(W) mcb_mean[rsi] = np.average(mc_before) mcb_std[rsi] = np.std(mc_before) orthob_mean[rsi] = np.average(ob) orthob_std[rsi] = np.std(ob) mca_mean[rsi] = np.average(mc_after) mca_std[rsi] = np.std(mc_after) orthoa_mean[rsi] = np.average(oa) orthoa_std[rsi] = np.std(oa)