声明:深度神经网络“自动”执行特征选择和特征工程?

人工智能 神经网络
2021-11-08 21:24:21

我经常听说深度学习模型(即深度神经网络)在网络本身内自动执行特征工程。这与传统的统计和机器学习模型形成对比,其中特征工程通常在训练模型之前完成:

在此处输入图像描述

显然,神经网络在训练阶段执行的操作相当于“寻找有意义的变量组合,从而在训练数据上产生更好的性能结果”。我听说这在某种程度上类似于主成分分析(PCA)和内核方法,因为这些方法将许多不同的现有特征组合成具有“更有意义的表示”的新特征。

例如,在“深度学习书”(https://www.deeplearningbook.org/contents/intro.html)中,我读到了深度神经网络“自动执行特征工程”的能力:

深度学习通过引入以其他更简单的表示表示的表示来解决表示学习中的这个核心问题。深度学习使计算机能够从更简单的概念中构建复杂的概念。

然而,最后——我仍然不明白神经网络在训练阶段(即梯度下降、权重更新、反向传播)如何“自动执行(某种程度的)特征工程”。

神经网络究竟是如何“自动”做到这一点的?

谢谢!

注意:我听说 NN 被称为通用函数逼近器(即通用逼近定理)。因此,对于给定的数据集 - 应该存在特定的神经网络架构(即特定数量/值的权重、层和激活函数的选择),这将导致您的目标函数被充分逼近 - 然而,组合搜索空间由于使用梯度下降训练网络需要时间,因此对于大数据来说恢复该网络可能非常困难。因此,“自动特征工程”是间接的,由于通用逼近定理,可能会发生也可能不会发生。

1个回答

自动特征提取的最佳和最具启发性的示例可能来自受限玻尔兹曼机(RBM)。由于它们的架构以最简单的形式由一个可见层和一个相同大小的隐藏层组成,它们使我们能够非常容易地可视化在训练期间学习的权重,即只需将它们重塑为与在训练期间输入的输入图像相同的大小训练。

您可以在下面看到这种权重可视化的示例,它是在经典的 MNIST(手写数字)数据集上学习的。要理解的重要一点是,暗像素和亮像素分别与小权重和大权重相关联。再次强调,每个图像都是一组权重,将输入图像的每个像素连接到单个隐藏节点(如第二张图所示)。

因此,每张图像都有效地向我们展示了 RBM 认为图像中重要的内容。当我们将图像输入 RBM 时,会应用第一个特征图,我们可以看到这个特征图回忆起类似 9(黑色)和 2(白色)的东西,因此 RBM 将以高激活响应类似于 2 的图像和类似于 9 的图像的激活非常低。

RBM 是如何决定这些特性很重要的?答案在于两个主要因素:

  • 训练算法
  • 数据分布

在这种情况下,训练算法是对比散度,一种无监督的基于能量的算法,当呈现相似的训练输入时最小化权重的能量,而当呈现不同的训练输入时试图最大化它们的能量。这种算法设计解释了为什么我们会看到像第一个这样的特征图。对比散度试图最小化包含 2 的所有输入图像的能量,同时还试图保持 2 和 9 彼此分离(就节点激活而言)。显然 2 和 9 有相似之处,如顶部曲线,因此模型需要学习特征映射,这些特征映射激活许多节点,这些节点连接到属于特定于一个类的特征的区域,如 2 的底部直线。不幸的是,这几乎是就我们可以分析“为什么模型正在学习某些东西”而言,这个社区中的线程),当然我们永远不会知道“究竟如何”,或者如果那一天会到来,那么我们将不再需要机器学习。

最后但同样重要的是,MNIST 数据集的一个众所周知的偏差是每个数字的中心位置。在数据的任何地方,您都不会在图像的边缘找到线条,实际上 RBM 也从未学会注意边缘。因此,无论选择何种训练算法,训练数据分布也总是会影响模型学习的内容(或者在这种情况下不学习)。

在 MNIST 数据集上学习的 Rbm 特征图 如何从经过训练的 RBM 中获取每个特征图