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(
Пример #2
0
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')