我经常听说深度学习模型(即深度神经网络)在网络本身内自动执行特征工程。这与传统的统计和机器学习模型形成对比,其中特征工程通常在训练模型之前完成:
显然,神经网络在训练阶段执行的操作相当于“寻找有意义的变量组合,从而在训练数据上产生更好的性能结果”。我听说这在某种程度上类似于主成分分析(PCA)和内核方法,因为这些方法将许多不同的现有特征组合成具有“更有意义的表示”的新特征。
例如,在“深度学习书”(https://www.deeplearningbook.org/contents/intro.html)中,我读到了深度神经网络“自动执行特征工程”的能力:
“深度学习通过引入以其他更简单的表示表示的表示来解决表示学习中的这个核心问题。深度学习使计算机能够从更简单的概念中构建复杂的概念。 ”
然而,最后——我仍然不明白神经网络在训练阶段(即梯度下降、权重更新、反向传播)如何“自动执行(某种程度的)特征工程”。
神经网络究竟是如何“自动”做到这一点的?
谢谢!
注意:我听说 NN 被称为通用函数逼近器(即通用逼近定理)。因此,对于给定的数据集 - 应该存在特定的神经网络架构(即特定数量/值的权重、层和激活函数的选择),这将导致您的目标函数被充分逼近 - 然而,组合搜索空间由于使用梯度下降训练网络需要时间,因此对于大数据来说恢复该网络可能非常困难。因此,“自动特征工程”是间接的,由于通用逼近定理,可能会发生也可能不会发生。