我应该允许 NN 推断输入的关系吗?

人工智能 神经网络 深度学习
2021-11-09 03:01:31

这个问题假设一个连续的深度神经网络

给定一些特征 [X1, X2, ... Xn],我试图预测一些值 Y。

我可用的原始数据包含 featureX1和 feature X2假设我知道基于两个特征Y比率,即X1 / X2.

我是否应该添加一个新功能,在数学上定义为两个功能的比率?我无法找到任何开始描述这种必要性或警告的文献。

我本能地担心以下几点:

  • 由于特征集中的重复信息,过度拟合和过度正则化的需要
  • 特征数量呈指数增长,因为可能需要定义每个特征之间的比率

但是,我也认识到某些关系不可能由深度神经网络定义(即逻辑门、指数关系等),那么这种“关系定义”什么时候是必要的呢?例如,如果已知存在指数关系?

3个回答

您指的是机器学习过程中的第一步,也是非常重要的一步,称为数据预处理参考这篇文章,在数据预处理内部有许多处理特征的小过程:特征提取特征选择特征聚合特征编码等等。

从原始特征中创建新特征的想法并不新鲜,而是机器学习中一个众所周知的概念,称为特征提取假设您决定创建新的X1/X2特征并将其添加到原始特征集中X1,X2, 因为你完全确定它对,那么这是一个非常合理的特征提取示例。

参考上面关于特征提取的文章,注意现在越来越多的共识是,当使用深度神经网络时,网络的第一个隐藏层可以用于自动特征提取,而无需手动将新特征添加到原始数据中。一组功能。这个前提源于深度神经网络本质上是非线性函数逼近器,因此第一个隐藏层可以逼近您手动执行的任何特征提取。

您可以理解,为了进行自动特征提取,您可能需要更多的隐藏层和每层中的更多神经元,以增加模型的计算能力。还有一个缺点是你不能确定第一个隐藏层中发生了什么,如果它正在按照你想要的方式进行特征提取。

在您的情况下,我的建议是手动添加X1/X2在一组功能中,如果您只添加一个这样的分数或少数. 此外,如果您完全确定这些分数和. 另一方面,如果您要添加多个这样的分数,那么将它们全部添加是没有意义的。很难完全确定所有分数都对. 由于输入层上有很多特征,它也会耗尽内存空间。在这种情况下,我建议您跳过手动特征提取,增加隐藏层的数量并让网络自动发挥作用。

理想的建议是将原始数据提供给神经网络,让神经网络进行自己的推理

考虑到你有专业知识X1/X2有影响,这里是新功能(X1/X2) 被称为派生特征

但是,很少有优点可以帮助您考虑使用派生功能,例如X1/X2在你的情况下

  • 作为选择 X1/X2 作为重要特性的领域专家或 SME,您可以理想地加速训练过程
  • 当您的 CPU 时间不足时非常有利
  • 大多数神经网络计算通过激活函数馈送的总和,估计比率或乘法需要大量神经元,特别是如果X1/X2是一个重要的特点
  • 您可以使用特征修剪技术来消除冗余特征
  • 神经网络的一个主要缺点通常被认为是一个黑盒模型,它是神经网络的近似值,没有给出函数 f 形式的任何见解。使用特征选择算法来减少特征空间。
  • 模型中的大量参数也增加了过度拟合网络的风险。但是,您可以通过良好的正则化方法克服这一点。当数据有限时,您还可以使用特征修剪来避免过度拟合。

我在医学领域找到了一篇文献,该文献处理基于专业知识的派生特征,准确地确定了所需的状态。

用于区分不同麻醉状态的基于深度神经网络的心率变异性衍生特征

在时域和频域中结合四个 HRV 衍生特征和深度神经网络可以准确地区分不同的麻醉状态。

模型和目标函数一起玩。如果您可以有一个目标函数以某种方式排除您脑海中的这种关系,那么该模型可以专注于学习基于其他信息进行预测。然后你已经训练了模型,但是如果你的下游任务最后应该考虑到这一点,你可以手动添加这个关系并在最后应用你脑海中的关系。这是我的哲学答案,但问题是你想如何实现它?‌‌‌‌‌‌‌‌‌‌这取决于项目的细节,这种方法可能不可行,但我想你的担忧是真实的。该模型倾向于学习通往答案的最短路径,如果你为它提供它,它就会使用它。如果我是你,我可能会尝试首先对特征进行规范化,以便它们具有相似的效果。我不