感知器的局限性

数据挖掘 机器学习 神经网络
2022-02-21 09:00:51

如果允许您手动选择特征并且使用足够多的特征,那么您几乎可以做任何事情。对于二进制输入向量,我们可以为成倍增加的二进制向量中的每一个设置一个单独的特征单元,因此我们可以使任何可能二进制输入向量的判别。这种类型的查表不会泛化。但是一旦确定了手工编码的特征,感知器可以学习的内容就会受到很大的限制。

这是 Hinton 在他的神经网络课程中解释的,但我没有得到二进制输入示例,为什么它是一个查表类型的问题,为什么它不会泛化?他所说的手工生成的特征是什么意思?我知道感知器无法对非线性数据进行分类,但我无法将其与他的幻灯片(幻灯片 26)联系起来。如果有人用适当的例子解释这一点,那就太好了。

2个回答

幻灯片解释了适用于任何线性模型的限制。例如,它同样适用于线性回归。

他所说的手工生成的特征是什么意思?

这意味着通过分析问题生成的任何特征。例如,如果您想对建筑物进行分类,您可能需要它的高度和宽度。手动生成的特征可能是决定将高度乘以宽度以获得建筑面积,因为它看起来很适合解决问题。

我没有得到二进制输入示例,为什么它是一个查表类型的问题,为什么它不会泛化?

查表解决方案只是这种方法的逻辑极端。如果您有一个非常复杂的分类,并且您的原始特征不直接相关(作为目标的线性倍数),您可以对它们进行非常具体的操作,从而为每个输入示例提供正确的答案。本质上,这与用正确答案标记训练数据中的每个示例相同,从概念上讲,它具有input: desired output与每个示例一个条目的表格相同的结构。

事实上,这可能会泛化,但只能与精心设计的功能一样好。在实践中,当你有一个复杂的问题和样本数据只能部分解释你的目标变量时(即在大多数数据科学场景中),然后生成派生特征,直到你找到一些解释数据与过度拟合密切相关的特征。

从您的评论中:

在他的视频讲座中,他说:“例如,假设我们有二进制输入向量。我们创建一个单独的特征单元,由这些二进制输入向量中的一个激活。我们需要成倍增加的特征单元。但现在我们可以二进制输入向量的任何可能歧视。因此,对于二进制输入向量,如果您愿意制作足够的特征单元,则没有限制。1.有什么特点?2.我们为什么要创建这个功能?为什么添加指数这样的特征我们可以区分这些向量?

这是 Geoffrey Hinton 描述的方案的一个示例。假设您有 4 个二进制特征,与一个目标值相关联,并查看以下数据:

data 0 1 1 0 -> class 1
data 1 1 1 0 -> class 2 
data 0 1 0 1 -> class 1
data 1 1 1 0 -> class 2
data 0 1 1 1 -> class 2
data 0 1 0 0 -> class 1

通过制作如下特征,可以让感知器预测正确的输出值:

data 0 1 1 0 -> features 1 0 0 0 0 -> class 1
data 1 1 1 0 -> features 0 1 0 0 0 -> class 2
data 0 1 0 1 -> features 0 0 1 0 0 -> class 1
data 1 1 1 0 -> features 0 1 0 0 0 -> class 2
data 0 1 1 1 -> features 0 0 0 1 0 -> class 2
data 0 1 0 0 -> features 0 0 0 0 1 -> class 1

每个唯一的原始数据集都分配了一个新的单热编码类别。很明显,最终如果你有n原始功能,您需要2n此类派生类别 - 这是与n.

像这样工作,不可能进行泛化,因为任何你没有转化为派生特征并学习到正确值的模式都不会对感知器产生任何影响,它只会被编码为全零。然而,它会学习很好地拟合训练数据,它可以将每个唯一向量与等于训练输出的权重相关联——这实际上是一种查表。

这个描述的全部意义在于表明“修复”感知器的手工特征并不是一个好的策略。即使它们可以用于训练数据,最终你还是会自欺欺人。

为什么查表不能泛化?

泛化意味着你找到适用于看不见的情况的规则。例如,假设我有一个函数f:RR我给你(输入,输出)对 (0, 1), (1, 2), (3, 4), (3.141, 4.141)。

如果你通过查表来学习,你就会确切地知道这 4 个元组。但如果我问你什么f(5)就是,你有问题。因为您没有找到一般规则/模式,而只是简单地记住了数据。

另一个例子:想象你有n数据点(x,y)你决定用一个多项式来拟合它。如你所知,你可以适应任何n点(x的成对不同)到多项式n1. 但如果你这样做,即使是最轻微的噪音或不同的基础模型也会导致你的预测大错特错,因为你的多项式会像疯了一样反弹。

他所说的手工生成的特征是什么意思?

如果你有一个向量n数字(x1,,xn)作为输入,您可能会决定成对乘法x3x42有助于分类过程。因此,您添加xn+1=x3x42. 这是一个手工生成的功能。相反,神经网络学习输入的非线性组合。