Machine learning 如何澄清机器学习使用的模型层?

Machine learning 如何澄清机器学习使用的模型层?,machine-learning,deep-learning,deeplearning4j,Machine Learning,Deep Learning,Deeplearning4j,我们目前正在用Deeplearning4j做一个机器学习的小实验 我们在时间序列中测量了不同设备的电压,我知道这些设备相互依赖。 我们设法用1和0标记大量的数据 我们的问题是找出模型层的用法 对我们来说,这似乎是经验,它被用于人和例子似乎是随机的 我们目前正在使用LSTM和RNN 但我们如何澄清是否有更好的模式 我们想看看模型是否能够通过我们没有注意到的预测找出一些依赖关系。实现这一点的最佳方法是首先查看您的数据以及您希望从中获得什么。然后你应该从建立一条基线开始。使用你熟悉的最简单的建模技术,

我们目前正在用Deeplearning4j做一个机器学习的小实验

我们在时间序列中测量了不同设备的电压,我知道这些设备相互依赖。 我们设法用1和0标记大量的数据

我们的问题是找出模型层的用法

对我们来说,这似乎是经验,它被用于人和例子似乎是随机的

我们目前正在使用LSTM和RNN

但我们如何澄清是否有更好的模式


我们想看看模型是否能够通过我们没有注意到的预测找出一些依赖关系。

实现这一点的最佳方法是首先查看您的数据以及您希望从中获得什么。然后你应该从建立一条基线开始。使用你熟悉的最简单的建模技术,这样你就什么都有了

在您的情况下,似乎每个时间步都有一个标签。所以,您可以对每个时间步单独使用简单的线性回归,以了解如果不合并任何序列信息,您将得到什么。任何快速工作的东西都是这一步的最佳选择

一旦你有了这个基线,你就可以开始考虑构建一个超越这个基线的深度学习模型

对于时间序列数据,目前在DL4J中有两种选择,要么使用像LSTM这样的循环层,要么使用随时间变化的卷积

如果您希望在每个时间步都有一个输出,那么循环层可能更适合您。如果在读取整个序列后只想得到一个结果,卷积方法通常效果最好

要选择这些层的宽度,以及应该使用多少层,您需要进行一些实验

您想要实现的第一件事是构建一个模型,该模型可以过度适合您的数据子集。因此,您首先只需要一遍又一遍地传递一批示例。如果模型不能在上面过度拟合,则可以使层更宽。如果层开始变得太宽,您可以在顶部添加另一层

如果您使用deeplearning4j ui模块,它将告诉您模型当前有多少个参数。它们通常应该少于您拥有的全部示例的数量,否则您就有可能过度拟合完整的数据集

一旦您可以训练模型,使其过度适合数据的一小部分,您就可以开始使用所有数据对其进行训练

在这一点上,你可以开始寻找更好的超参数,看看你能在多大程度上超越你的基线