首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于Keras的变长信号LSTM多标签分类

基于Keras的变长信号LSTM多标签分类
EN

Stack Overflow用户
提问于 2018-01-02 14:51:17
回答 1查看 1.8K关注 0票数 3

我最近开始从事心电信号分类的工作,在不同的班级。它基本上是多标签分类任务(总计4类)。我对深度学习,LSTM和Keras都很陌生,这就是为什么我在一些事情上感到困惑的原因。

  1. 我正在考虑把归一化的原始信号作为网络的输入,这是一个好方法吗?
  2. 由于心电信号的长度是可变的(从9000到18000个样本),通常分类器需要固定的变量输入,所以我也需要了解训练输入的形状。在LSTM情况下,我如何处理这种类型的输入。
  3. 最后,对于这种冗长的输入,应该使用什么结构的深层LSTM网络,以及我应该使用多少层。

耽误您时间,实在对不起。问候

EN

回答 1

Stack Overflow用户

发布于 2018-01-02 17:22:44

我正在考虑把归一化的原始信号作为网络的输入,这是一个好方法吗?

是的,,这是一个很好的方法。实际上,对于深度学习算法来说,将您的输入标准化或重新标度是相当标准的。

这通常有助于您的模型更快地收敛,因为现在您处于较小的范围内(即:-1,1),而不是从原始输入(例如0,1000)中获得更大的未规范化范围。它还帮助您获得更好、更精确的结果,因为它有助于解决诸如消失梯度之类的问题,以及更好地适应现代激活和优化器功能。

由于心电信号的长度是可变的(从9000到18000个样本),通常分类器需要固定的变量输入,所以我也需要了解训练输入的形状。在LSTM情况下,我如何处理这种类型的输入。

这部分真的很重要。您是正确的,LSTM期望接收具有固定形状的输入,这是您事先知道的(实际上,任何深度学习层都需要固定的形状输入)。在关于递归层的角蛋白文档中也解释了这一点,他们说:

输入形状 具有形状的三维张量(batch_size,timesteps,input_dim)

正如我们所看到的,它希望您的数据具有许多timesteps以及每个时间步骤上的维度(批处理大小通常为1)。为了举例说明,假设输入数据由如下的元素组成:[[1,4],[2,3],[3,2],[4,1]]。然后,使用batch_size为1,,数据的形状将是(1,4,2)。因为您有4个时间步骤,每个步骤都有两个特性。

因此,底线,,你必须确保你预处理你的数据,使它有一个固定的形状,然后你可以传递到你的LSTM层。,你将不得不自己找出,因为你比我们更了解你的数据和问题。

也许您可以修复从您的信号中获得的样本,丢弃一些,并保留其他信号,这样每个信号都具有相同的长度(如果您说您的信号在9k到18k之间,选择9000可能是合理的选择,丢弃来自其他信号的样本)。您甚至可以对您的数据进行一些其他的转换,您可以从9000到18000的输入映射到一个固定的大小。

最后,对于这种冗长的输入,应该使用什么结构的深层LSTM网络,以及我应该使用多少层。

这是一个非常广泛的,没有一个独特的答案。这将取决于问题的性质,而先验地确定这些参数并不是那么简单。

我建议您首先从一个简单的模型开始,然后递增地添加层和块(神经元),直到您对结果感到满意为止。

首先尝试一个隐藏层,训练和测试您的模型并检查您的性能。然后,您可以添加更多的块,看看性能是否有所提高。您也可以添加更多的层,并检查相同的,直到您满意。

这是一种创建深度学习模型的好方法,因为您将在保持网络尽可能精简的同时达到您想要的结果,这反过来有助于您的执行时间和复杂性。祝你的编码好运,希望你能找到有用的东西。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48063076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档