我正在处理一个大型数据集(大约 50K 观察 x 11K 特征),我想降低维度。这最终将用于多类分类,所以我想提取对分离数据有用的特征。到目前为止,我已经尝试过 PCA(在线性 SVM 中表现良好,总体准确率约为 70%)、LDA(以约 96% 的非常高的训练准确率执行,但测试准确率约为 61%)和自动编码器(3层密集编码器,分别具有 13000 - 1000 - 136 个单元,其性能与 PCA 大致相同)。我被要求在这个问题中尝试深度信念网络(受限玻尔兹曼机堆栈)。
到目前为止,我预见到两个挑战。首先,我可以使用可以使用的 GPU,但我没有看到神经网络社区的主要参与者(例如 TensorFlow/Keras、PyTorch)对 DBN 的许多实现,这意味着这需要在 CPU 上实现,提出了第二个挑战。其次,实现这一点需要大量内存并且速度会非常慢。这提出了我的问题:在 Python(或 R)中是否有任何 DBN 自动编码器的实现是可信的,并且最好是利用 GPU?如果不是,在 Python 中构建 DBN 的首选方法是什么?我应该使用sklearn吗?