我正在写一个基于tensorflow的深度学习线性回归算法来预测未来的股票价格。我目前面临的问题是,在整个学习过程中,预测保持不变。我尝试过不同的学习率,我有足够的数据。我该如何解决这个问题?
# model definition
model = tf.keras.Sequential([
tf.keras.layers.Dense(10, activation='linear', input_shape=(7,), kernel_regularizer='l2'), # input shape required
tf.keras.layers.Dense(40, activation="linear", kernel_regularizer='l2'),
tf.keras.layers.Dense(50, activation="relu", kernel_regularizer='l2'),
tf.keras.layers.Dense(1, activation="linear", kernel_regularizer='l2')
])
# learning rate control
initial_learning_rate = 0.5
lr_schedule = tf.keras.optimizers.schedules.ExponentialDecay(
initial_learning_rate,
decay_steps=40000,
decay_rate=0.05,
staircase=True)
# loss calculation
loss_fn = tf.keras.losses.MeanAbsoluteError()
# model
model.compile(optimizer=tf.keras.optimizers.SGD(learning_rate=lr_schedule, clipnorm=1),
loss=loss_fn,
metrics=['accuracy'])
如果你不能"学习",这几乎肯定是你的学习速度。任何东西。试试小到1e-5,然后从这里开始。
因为这是你的回归问题,所以在第三层使用activation='linear'
。而且你的学习率似乎很高。使用1e^-4