最快的无监督特征学习算法是什么?

机器算法验证 无监督学习 自动编码器 受限玻尔兹曼机
2022-03-28 05:12:46

我看了几个无监督的特征学习算法。它们中的大多数(受限玻尔兹曼机和稀疏自动编码器)即使在像MNIST这样的小型数据集上也有很长的训练时间。我想知道是否有类似的算法可以在更短的时间内训练出来?

看起来很有希望的类似算法可能是稀疏过滤和重建成本 ICA (RICA)。可能还有更多吗?

其中一些算法的另一个问题是:它们中的大多数需要使用 L-BFGS 等算法进行批量训练。在在线环境中,如果不缓存一批训练实例,很可能很难训练它们。有替代品吗?文献中有什么吗?我什么也找不到。

2个回答

K-means 非常快,PCA 也是如此。如果您使用稀疏 SVD 库(例如 R 的irlba 包),您可以在大型数据集上快速逼近 PCA。

我认为在线(也称为顺序)k-means 有一些非常快的算法。

要考虑的一件事是 MDA,即边缘化去噪自动编码器。它的训练速度比 SdA 快几个数量级,可能是您正在寻找的解决方案。[1][2] 我个人对后一篇论文更感兴趣,因为学习非线性表示在具有高度非线性结构的领域中很重要。就我而言,面部图像。

使用随机梯度下降的算法的“在线”设置只是将小批量大小设置为 1,即计算梯度并在每个新样本之后采取一步。很明显,在在线学习的情况下,标准的“批量”梯度下降永远不会更新它的权重。(批量梯度下降仅在查看数据集中的所有示例后才更新其权重。)实际小批量大小将根据您正在运行的硬件而变化。您甚至可能会发现,由于数据带宽很可能是最重要的问题,CPU 的性能可能比 GPU 更好——至少在 nvlink 出现之前是这样。

Yoshua Bengio 对在在线环境中训练网络意味着什么有一些有趣的想法(每个新的训练样本在时间步出现,只被看到一次,然后再也见不到)。他建议,*“在独立同分布 (iid) 数据的简化情况下,在线学习器对其泛化误差执行随机梯度下降。”[3] 希望很清楚,大多数在线数据集不是独立同分布的,它们通常表现出时间相关性。(我当然不想长时间观看 iid 流的图像。^^)xtt

  1. http://arxiv.org/abs/1206.4683

  2. http://arxiv.org/abs/1206.4683

  3. http://arxiv.org/abs/1206.5533