非图像非NLP任务的深度学习?


12

到目前为止,在计算机视觉或自然语言处理中有许多有趣的深度学习应用。

在其他更传统的领域中情况如何?例如,我有传统的社会人口统计学变量以及可能的大量实验室测量结果,并且希望预测某种疾病。如果我有很多观察,这将是深度学习应用程序吗?我认为如何在这里构建网络,我认为所有花哨的层(卷积层等)都没有必要?只是使它更深?

在我的特定数据集上,我尝试了一些常见的机器学习算法,例如随机森林,gbm等,但在准确性方面存在混合结果。我在图像识别方面的深度学习经验有限。


1
您可能最好看另一种方法,例如XGBoost,具体取决于“大量观察”。您能否阐明您的目标是专门尝试深度学习方法还是获得最佳准确性?
尼尔·斯莱特

@NeilSlater我的目标是与xgboost之类的既定方法相比,达到更高的准确性,如果在这种情况下可以做到
spore234

1
可能,但是根据我的经验,除非您确实有很多数据,否则不太可能。
尼尔·斯莱特

Matlab提供有关“深度学习技巧和窍门”的文档。我有同样的问题,该页面提供了非常有用的指南以及良好的示例。例如,您可能需要使用深度学习对序列/时间序列进行分类/回归。
Sami Navesi

Answers:


10

是的,您可以使用深度学习技术来处理非图像数据。但是,在信号处理和相关任务之外,其他模型类与神经网络的竞争仍然非常激烈。

要对非信号/非序列数据使用深度学习方法,通常使用简单的前馈多层网络。不需要卷积层或池化层。最好的架构需要通过交叉验证来探索,并且发现很耗时,因为深度NN需要大量的计算才能进行训练。

以我的经验,尝试在Kaggle比赛中使用较深的(-ish,通常〜5层)神经网络:

  • 辍学对于正则化和提高准确性仍然非常有效

  • 输入归一化-通常表示0,标准偏差1,非常重要

  • 隐藏层激活功能可以有所作为。尽管ReLU减少了梯度消失的一些问题,但以我的经验,它对非信号数据的鲁棒性较差,您将需要其他形式。如果只有几层,则S型或tanh仍然可以正常工作。否则,请检查泄漏的ReLU,PReLU,ELU和其他ReLU变体,以尝试用“死”神经元修补其问题。

  • 利用针对深度学习而设计的优化器,例如Adam,Adagrad或RMSProp

  • 使用适合深度学习的权重初始化方法,例如Glorot。

  • 考虑使用批处理规范化层。我没有很多经验,但是我已经看到其他人在这种方法上做得很好。

尽管如此,与之相比,XGBoost可以通过最少的调整和培训工作常规轻松地击败深层NN(当然取决于问题和所拥有的数据)。如果精确度对您来说至关重要,则尽管(但不能保证)准确性,但深度神经网络和其他模型(如XGBoost)的集成可能会比其中任何一个性能更好。


1

网络可以适合于分类目的。为此,您需要能够定义一个训练集和一个测试集,以表示将要求网络在生产中对数据进行分类的数据。这决定了您是否可以获得不良的,合理的或良好的网络。

我认为“深度学习”一词具有误导性:网络无法学习,您只能对其进行培训。

假设您可以创建训练和测试集,则可以使用高级

  • 多层:如果您的数据没有顺序并且结构具有固定位置。

  • 递归网络:如果数据顺序对于分类很重要

  • 卷积:如果您的数据具有类似于图像的结构,但没有固定位置。

获得良好的设置(例如层数)需要反复试验。这是一种黑魔法。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.