为什么在神经网络中使用派生特征?

机器算法验证 机器学习 神经网络
2022-01-18 13:54:46

例如,一个人想要预测房价,并且有两个输入特征是房子的长度和宽度。有时,还包括“派生”多项式输入特征,例如面积,即长度 * 宽度。

1) 包含派生特征有什么意义?神经网络不应该在训练期间学习长度、宽度和价格之间的联系吗?为什么第三个特征区域不是多余的?

此外,有时我还看到人们对输入特征运行遗传选择算法以减少其数量。

2)如果输入特征都包含有用的信息,那么减少输入特征的意义何在?神经网络不应该根据其重要性为每个输入特征分配适当的权重吗?运行遗传选择算法有什么意义?

2个回答

1):包含派生特征是将专家知识注入训练过程的一种方式,从而加速训练过程。例如,我在研究中经常与物理学家合作。当我构建优化模型时,他们会给我 3 或 4 个参数,但他们通常也知道应该出现在方程中的某些形式。例如,我可能会得到变量nl, 但专家知道n*l很重要。通过将它作为一个特征包含在内,我为模型节省了额外的精力来找出n*l很重要。诚然,有时领域专家是错误的,但根据我的经验,他们通常知道他们在说什么。

2):我知道这有两个原因。首先,如果您提供了数千个特征(这在现实世界的数据中经常发生),并且训练的 CPU 时间很短(这也是常见的情况),您可以使用许多不同的特征选择算法来缩减特征空间提前。对此的原则性方法通常使用信息论措施来选择具有最高预测能力的特征。其次,即使你有能力对所有数据和所有特征进行训练,神经网络也经常被批评为“黑盒”模型。提前减少特征空间有助于缓解这个问题。例如,查看 NN 的用户无法轻易判断 0.01 的权重是否意味着“0,但优化过程并没有完全到达那里”或“

1)大多数神经网络不能进行乘法运算;他们只能计算总和(然后通过激活函数单独馈送)。相反,如果它们很重要,他们必须估计这些乘法,这需要大量的神经元,特别是如果这些因素可以跨越大范围。

如果事实证明房屋面积实际上是一个重要特征,那么如果您向网络提供面积,您将有助于网络,因为它可以使用它所需要的神经元来估​​计宽度和长度的乘积做其他事情。

因此,包括多项式特征在某些情况下可能对网络有益,但在其他情况下没有显着影响。此外,多项式特征只是可能对网络有帮助的一种派生特征。另一种可能有用的派生特征是例如输入变量的对数(认为它们是正数),网络也必须估计才能获得这些对数。

一个想法是允许网络在数字之间执行更多的运算,而不仅仅是加法,以使其能够有效地计算多项式特征本身之类的东西,但目前尚不清楚这将如何工作。一种看起来做类似事情的架构是sum-product network

2)除了John提到的计算成本外,增加模型中的参数数量(当您引入更多输入时不可避免地会发生这种情况)也会增加网络过度拟合的风险,尤其是在您的训练数据很少的情况下。

但是,如果使用良好的正则化方法,这可以减少很多问题。(Dropout 似乎对此非常有效)理论上,使用足够好的正则化方法,过度拟合根本不应该成为问题。正如 Hinton 所指出的,一个人的大脑中有大约 10^14 个突触(对应于神经网络中的连接),但只活了大约 10^9 秒,但我们似乎仍然能够概括得很好。很明显,使用正确的算法可以调整许多参数只是一个优势。