降维技术在深度学习中有用吗?

机器算法验证 神经网络 主成分分析 降维 特纳
2022-04-20 20:14:15

我一直致力于机器学习,并注意到大多数时候,PCA 和 t-SNE 等降维技术用于机器学习。但是,我很少注意到有人为深度学习项目做这件事。在深度学习中不使用降维技术有什么具体原因吗?

3个回答

t -SNE

两个明显的原因不常用作为降维方法的原因是它是不确定的,并且不能以一致的方式应用于测试集数据。请参阅:是否存在 PCA 比 t-SNE 更适合的情况?

主成分分析

第一的,本质上不是一种降维方法。这是一种创建相同大小的新矩阵的方法,以去相关的基础表示。截断PCA 降低了该矩阵的秩,因此它的维数减少了。

其次,即使你不使用 PCA 来降低维度,它仍然很有用。在“批量标准化:通过减少内部协变量偏移来加速深度网络训练”中,Sergey Ioffe 和 Christian Szegedy 建议白化变换在优化步骤中很有帮助。

众所周知(LeCun et al., 1998b; Wiesler & Ney, 2011)如果输入被白化,网络训练收敛速度更快——即,线性变换为具有零均值和单位方差,并且去相关。

显然,PCA 产生去相关向量,减去均值并按标准差重新缩放即可获得其余部分。该引文表明,对输入数据进行预白化可能会大大提高您的模型的训练时间。

显然,美白是否对任何特定模型有帮助是特定于问题的。一种非常常见的深度学习应用程序是. 这些网络往往不使用白化转换,因为到正交基的转换会以一种对您使用的任何网络实际上可能没有用的方式改变图像。我不知道 PCA 改进了用于图像分类的现代深度神经网络的示例,但这可能是由于我的知识有限;我相信有人会发布最近的在评论中使用 PCA 的论文。

此外,图像的截断 PCA显然会以某种方式扭曲图像,变形量取决于您保留的 PC 数量。

另一方面,使用截断 PCA进行降维的一个重要原因是当您的数据排名不足时。手工制作的特征向量(例如前馈网络中使用的特征向量)通常具有一定量的冗余。将所有这些功能呈现给您的网络会不必要地增加参数的数量,因此删除它们会更有效。

常识

如果我们从更广泛的维度来看待降维,我们仍然可以使用常识来降低数据的维度。

考虑 MNIST 任务。数字占据图像的中心。如果你看整个数据集,你会发现每张图像的外围都有一些像素总是白色的。如果您修剪每个图像以排除这些始终为白色的像素,那么您在减少所需的计算能力方面迈出了重要的一步,因为所有这些像素现在都被有效地“跳过”了。“始终为白色”的像素对网络没有有用的信息,因为像素值在所有样本中都是恒定的,因此您不会丢失任何区分信息。

补充@Sycorax 的好答案(+1):

请记住,“深度学习”的优势之一是深度神经网络能够执行自动特征提取和封装非线性关系(例如通过卷积(ConvNNets)、递归(RNNs)等)。将要使用的数据的高度浓缩版本作为深度神经网络的输入将有点超出使用深度神经网络的目标。网络将不得不“解压缩”数据,只是为了尝试再次在内部重新组合它们以达到其全部预测能力。

但是,我很少注意到有人为深度学习项目做这件事。在深度学习中不使用降维技术有什么具体原因吗?

这取决于这些项目的目标。

例如,对于处理表示学习的项目/论文,这很常见:

另一方面,如果你有一个受监督的问题并且你主要对某些指标感兴趣,那么你不太可能倾向于网络实际学习的特征。