对于输入节点的给定输入,输出节点有多个正确值。在训练集中,有时输入会产生特定的输出,而有时输入会产生完全不同(但同样有效)的输出。
神经网络还能“找出”一种模式吗?根据我对反向传播的了解,似乎不同的正确答案会阻止它正常运行。如果是这样,有什么解决方案吗?
我不需要神经网络来预测所有可能的正确解决方案,但我确实需要它来输出正确的解决方案。
对于输入节点的给定输入,输出节点有多个正确值。在训练集中,有时输入会产生特定的输出,而有时输入会产生完全不同(但同样有效)的输出。
神经网络还能“找出”一种模式吗?根据我对反向传播的了解,似乎不同的正确答案会阻止它正常运行。如果是这样,有什么解决方案吗?
我不需要神经网络来预测所有可能的正确解决方案,但我确实需要它来输出正确的解决方案。
神经网络原则上可以处理这个问题。实际上,我相信它们是完成这项任务的最佳模型之一。问题是它是否正确建模。
假设您正在研究回归问题并最小化平方和,即
这里,是我们相对于参数最小化的损失函数我们的神经网络,我们用它来找到一个近似值的.
对于像这样的模棱两可的数据,这个损失函数会导致什么结果和? 它将使函数预测预测两者的平均值。
这个属性不仅适用于神经网络,也适用于线性回归、随机森林、梯度提升机等——基本上每个模型都使用平方误差进行训练。
现在调查平方误差的来源是有意义的,这样我们就可以对其进行调整。我在别处解释过平方误差源于高斯假设的对数似然:. 高斯是单模态的,这意味着这个假设是模型中的核心错误。如果输出不明确,则需要具有多种模式的输出模型。
最常用的一种是混合密度网络,它假设输出实际上是高斯的混合,例如
这里,和都是神经网络的不同输出单元。训练是通过区分对数似然和反向传播来完成的。
不过还有很多其他方法:
也许RNN可以解决这个“顺序无关紧要”的问题。
考虑一下斯坦福和谷歌已经成功实施的图像字幕任务。现在考虑一个图像可能有多个同样正确的解决方案,“狗玩猫”或“猫玩狗”。我相信使用 RNN(循环神经网络)吐出文本是解决这个问题的关键,因为 RNN 知道如果它已经说“狗玩”,下一个词应该是“猫”,反之亦然“猫玩”-> 狗。http://cs.stanford.edu/people/karpathy/cvpr2015.pdf
首先,在数据不明确的情况下,反向传播没有理由“失败”。这就是为什么。神经网络通过将线性函数与非线性激活函数组合来产生真正高度非线性的函数来工作。神经网络的模型类就是这个类的函数。粗略地说,神经网络产生如下函数:在每个阶段,都要决定要创建多少变量(特征)。每个新变量都是通过将非线性激活函数与先前变量的任意线性组合组合而成的。这意味着创建了 (n+1)*(m) 个常量。每个新变量都是前一阶段的 n 个变量加上一个常数的某种未知线性组合。
希望根据一些损失函数最小化实际观察和预测之间的差异在哪里是模型创建的所有参数,即所有线性函数的未知系数集。因此损失函数是参数集的函数并且希望相对于“theta”最小化 L
在bayerj讨论的情况下,该损失函数是. 我遍历所有观察结果的地方。该模型(仅在理论上!!!!)通过查找参数进行拟合最小化这个高度非线性和非凸函数。
一般来说,这是不可能的。可以做的是找到函数的局部最小值作为一个函数. 局部最小值可以通过各种方法计算,包括梯度下降,在神经网络的上下文中称为“反向传播”。因此,y 是多值的没有任何含糊之处。那是因为人们对求解方程组感兴趣为了. 没有不一致,因为它将每个变量集及其结果视为常量。
我将以一个小实验和一个更大的思想实验结束。一个普通的最小二乘模型是一个神经网络的简单情况,其中激活是线性的,只有一层和一个输出。想象一个由以下组成的数据集我从 0 跑到 10,000。如果我添加一个新的观察我们有模棱两可的数据点 (0,noise) 和 (0,10) 。然而,其他 9,999 个观测值偏向于数据点 (0,noise),并且模型将反映比 5 = (0+10)/2 更接近零的值。
更大的思想实验。想象一下,有人正在尝试使用具有收入数据和贷款收入比 (LTI) 的神经网络来发现贷款违约的概率。假设有 1000 名不违约的人和 150 名违约的人参加培训。现在添加示例 1151 一个具有无默认人群前 1% 特征的人,但将他分配给默认结果。例如#1151先生可能刚刚发现他一生的真爱是赌博而不是每天上班。该模型仍然别无选择,只能将他定性为 default = 0。本质上,如果查看前 150 人的损失函数将几乎相同。添加混合仍然会有一个损失函数,主要由前 150 个示例的行为决定。它不能平均。
如果您有多个输出为了可能的正确答案。我发现以下错误函数最多可用于 4 个预期答案:
在哪里是预期结果,它是正确答案的随机之一。
请注意,错误是对所有人那无处可去