【发布时间】:2018-10-05 07:55:43
【问题描述】:
我有一个项目,我正在使用表格数据对梯度提升树进行回归。我想看看对我的数据使用去噪自动编码器是否可以更好地表示我的原始数据并提高我的原始 GBT 分数。灵感来自流行的 Kaggle 获胜者here.
AFAIK 对于提取 DAE 的激活,我有两个主要选择 - 创建瓶颈结构并采用单个中间层激活或连接每个层的激活作为表示。
假设我想要下面 3x 512 节点层的所有层激活:
inputs = Input(shape=(31,))
encoded = Dense(512, activation='relu')(inputs)
encoded = Dense(512, activation='relu')(encoded)
decoded = Dense(512, activation='relu')(encoded)
decoded = Dense(31, activation='linear')(decoded)
autoencoder = Model(inputs, decoded)
autoencoder.compile(optimizer='Adam', loss='mse')
history = autoencoder.fit(x_train_noisy, x_train_clean,
epochs=100,
batch_size=128,
shuffle=True,
validation_data=(x_test_noisy, x_test_clean),
callbacks=[reduce_lr])
我的问题是:
接受上述激活将为我提供 x_train 的新表示,对吗?我应该为 x_test 重复这个过程吗?我需要两者来训练我的 GBT 模型。
如何进行推理?每个新数据点都需要“转换”成这种新的表示格式。我如何使用 Keras 做到这一点?
在这种情况下,我真的需要将
validation_data=提供给.fit吗?
【问题讨论】:
标签: machine-learning deep-learning keras autoencoder