help='explicit regularization penalty', default=0) parser.add_argument('--NTK_depth', type=int, default=3, help='depth of Fully Connected ReLU NTK') args = parser.parse_args() d = args.input_dim lamb = args.lamb depth = args.NTK_depth kmax = 30 degens = np.array([gegenbauer.degeneracy(d, k) for k in range(kmax)]) spectrum = compute_NTK_spectrum.get_effective_spectrum([depth], kmax, d, ker='NTK')[0, :] s = [i for i in spectrum if i > 0] P = 50 P_teach = 300 P_vals = np.logspace(0.25, 3, num=15).astype('int') num_repeats = 50 all_errs = np.zeros((len(P_vals), kmax)) all_mc = np.zeros(len(P_vals)) std_errs = np.zeros((len(P_vals), kmax)) std_MC = np.zeros(len(P_vals)) for i in range(len(P_vals)): P = P_vals[i] all_errs[i, :], all_mc[i], std_errs[i, :], std_MC[i] = generalization(
parser = argparse.ArgumentParser() parser.add_argument('--input_dim', type=int, default= 30, help='data input dimension') parser.add_argument('--M', type=int, help='number of hidden units', default = 500) args = parser.parse_args() d = args.input_dim M = args.M kmax = 25 degens = np.array( [gegenbauer.degeneracy(d,k) for k in range(kmax)] ) theory_spectrum = compute_NTK_spectrum.get_effective_spectrum([1], kmax, d, ker = 'NTK')[0,:] ak2 = gegenbauer.calculate_activation_coeffs(kmax,d)**2 bk2 = gegenbauer.calculate_activation_coeffs(kmax,d,nonlinearity='step')**2 spec_emp = np.zeros(kmax) for i in range(kmax-1): if i==0: spec_emp[i] = ak2[i] + bk2[i+1] * 1/(d) elif i==1: spec_emp[i] = ak2[i] + bk2[0] + bk2[i+1] * (i+1)/(2*i+d) + (i+d-3)/(2*i+d-4) * bk2[i-1] else: spec_emp[i] = ak2[i] + bk2[i+1] * (i+1)/(2*i+d) + bk2[i-1] * (i+d-3)/(2*i+d-4) print(spec_emp) plt.loglog(spec_emp, 'o', label = 'sample on sphere')