O aprendizado profundo é ruim para ajustar funções não lineares simples fora do escopo do treinamento?
Estou tentando criar um modelo simples baseado em aprendizado profundo para prevery=x**2
Mas parece que o aprendizado profundo não é capaz de aprender a função geral fora do escopo de seu conjunto de treinamento.
ntuitivamente, posso pensar que a rede neural pode não ser capaz de ajustar y = x ** 2, pois não há multiplicação envolvida entre as entrada
Observe que não estou perguntando como criar um modelo para caberx**2
. Eu já consegui isso. Quero saber as respostas para as seguintes perguntas:
Caminho para completar o notebook:https: //github.com/krishansubudhi/MyPracticeProjects/blob/master/KerasBasic-nonlinear.ipyn
training input:
x = np.random.random((10000,1))*1000-500
y = x**2
x_train= x
código de treinamento
def getSequentialModel():
model = Sequential()
model.add(layers.Dense(8, kernel_regularizer=regularizers.l2(0.001), activation='relu', input_shape = (1,)))
model.add(layers.Dense(1))
print(model.summary())
return model
def runmodel(model):
model.compile(optimizer=optimizers.rmsprop(lr=0.01),loss='mse')
from keras.callbacks import EarlyStopping
early_stopping_monitor = EarlyStopping(patience=5)
h = model.fit(x_train,y,validation_split=0.2,
epochs= 300,
batch_size=32,
verbose=False,
callbacks=[early_stopping_monitor])
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
dense_18 (Dense) (None, 8) 16
_________________________________________________________________
dense_19 (Dense) (None, 1) 9
=================================================================
Total params: 25
Trainable params: 25
Non-trainable params: 0
_________________________________________________________________
valiação no conjunto de testes aleatóri
aprendizado profundo neste exemplo não é bom em prever uma função não linear simples. Mas bom em prever valores no espaço de amostra dos dados de treinament