我有一个矩形数值数据集,我正在对其应用多层感知器。我取得了成功,但我现在正在寻找可以应用的其他架构。
大部分深度学习似乎都适用于结构松散的数据——序列、文本、图像——每个人都在使用各种有趣的模型时获得了很多乐趣……至少当他们遇到适合这些模型的问题时。
基本的行/列数据集呢?除了调整基本 MLP 的层之外,还有哪些规范模型可用于此类数据?
我有一个矩形数值数据集,我正在对其应用多层感知器。我取得了成功,但我现在正在寻找可以应用的其他架构。
大部分深度学习似乎都适用于结构松散的数据——序列、文本、图像——每个人都在使用各种有趣的模型时获得了很多乐趣……至少当他们遇到适合这些模型的问题时。
基本的行/列数据集呢?除了调整基本 MLP 的层之外,还有哪些规范模型可用于此类数据?
花哨的深度学习架构主要通过利用数据中的结构来工作。我想到了置换不变性或等变性、时间结构和空间结构。也许某些功能基于一组相同的对象?大多数好处来自共享权重和学习共享表示。另一个潜在的好处是输出的灵活性,尽管这与您的情况不太相关。如果您在另一个具有相同特征的任务上有更多标记数据,您可以在该任务上预训练一个更大的模型,然后在当前任务上微调该网络。其余的如果不举一些例子就很难说。
给定 35 个数字特征和 3 个类,也许首先尝试使用 SVM 或随机森林的变体来处理数据——这些都不是深度学习,但它们速度快,非常适合基准测试/故障排除:
SVM:@Media 提到了线性支持向量机,但如果您的数据不是线性可分的,那么您还可以使用非线性内核或软边距分类器:http ://scikit-learn.org/stable/modules/svm.html
随机森林:一种将决策树与您的数据相匹配的集成方法,有大量变体(装袋、增强): https ://www.stat.berkeley.edu/~breiman/RandomForests/cc_home.htm
如果您已经这样做了,您可以使用受限的 Boltzmann 机器来构建数据的生成模型,或者使用无监督算法(如自动编码器或自组织映射)来降低数据的维度,然后将其用作输入到您的 MLP/SVM/softmax 分类器。
Restricted Boltzmann Machines:这里对工作流程的简要描述如何使用 RBM 进行分类?以及有关 Hinton 培训的更多详细信息:https ://www.cs.toronto.edu/~hinton/absps/guideTR.pdf
自组织地图:关于什么的好页面:http ://www.ai-junkie.com/ann/som/som1.html 并在 tensorflow 中实现:https ://codesachin.wordpress.com/2015/11/28 /self-organizing-maps-with-googles-tensorflow/当然你可以选择你的输出结构。
还有其他选择,但在构建完整的 CNN 等之前,可能值得找出更快、更具解释性的算法会得到什么样的结果。