我正在尝试构建一个过度拟合随机游走路径的神经网络。所以,到目前为止,我无法获得我们粉碎/过度拟合的神经网络。我想知道我应该探索哪些参数,或者我应该遵循哪些指导方针来完成这个(奇怪的)任务。
代码:
from keras.models import Sequential
from keras.layers import Dense
from keras.optimizers import SGD,Adam
from keras import regularizers
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
import random
import math
model=Sequential()
num_units=100
model.add(Dense(num_units,input_shape=(1,),activation='tanh'))
model.add(Dense(num_units,activation='tanh'))
model.add(Dense(num_units,activation='tanh'))
model.add(Dense(num_units,activation='tanh'))
model.add(Dense(1, activation='tanh')) #output layer 1 unit
model.compile(Adam(),'mean_squared_error',metrics=['mse'])
num_of_steps=3000;
step_size=0.01
x_all=list(range(0,num_of_steps))
##########################random walk functino
random_walk=[0]
for i in x_all[1:]:
f=np.random.uniform(0,1,1)
if f<0.5:
random_walk.append(random_walk[i-1]+step_size)
else:
random_walk.append(random_walk[i-1]-step_size)
########################
x1=list(range(1,1000,2))
x2=list(range(2,1000,2))
y1=[random_walk[x] for x in x1]
y2=[random_walk[x] for x in x2]
model.fit(x1,y1,epochs=2500,verbose=1)
fit1=model.predict(x1)
fit2=model.predict(x2)
plt.plot(x1,y1,'k')
plt.plot(x2, y2, 'r')
plt.scatter(x1, fit1, facecolors='none', edgecolors='g') #plt.plot(x_value,sample,'bo')
plt.scatter(x2, fit2, facecolors='none', edgecolors='b') #plt.plot(x_value,sample,'bo')
这是我得到的结果的一个例子:
我想得到一个更好的拟合(我的样本数据:x1,y1)。
