用于分类的多层反向传播神经网络

数据挖掘 神经网络
2021-10-05 11:55:03

有人可以解释一下,如果我制作多个输出(例如 8 个),如何使用 MLBP 神经网络对 MNIST 等数据进行分类,我的意思是如果我只使用一个输出,我可以轻松地对数据进行分类,但如果我使用超过一,我应该选择哪个输出?

2个回答

假设您需要在 K 个类别中对某些内容进行分类,其中 K > 2。在这种情况下,我最常使用的设置是一种热编码。您将有 K 个输出列,并且在训练集中,您将所有值设置为 0,但具有类别索引的值可能为 1 除外。因此,对于每个训练数据集实例,您将拥有所有输出值0 或 1,每个实例的所有输出总和为 1。

这看起来像一个概率,这让我想起了一种经常用来连接一些被建模为概率的输出的技术。这称为 softmax 函数,更多详细信息请参见Wikipedia这将允许您对输出值施加一些约束(它基本上是一个逻辑函数泛化),以便将输出值建模为概率。

最后,无论有没有 softmax,您都可以使用输出作为判别函数来选择正确的类别。

最后一个想法是避免以连接的方式对变量进行编码。例如,您可以拥有类别索引的二进制表示。这将导致学习者在一些任意的输出之间建立人为的联系。一种热编码的优点是对标签的索引方式是中性的。

在这种情况下使用的算法称为一对多分类或多类分类器。

在您的情况下,您必须学习一门课程,例如数字 1 ,将其标记为正数,并将其余七门课程合并为一门负数课程。神经网络将输出这种情况是第 1 类与其他类的概率。

之后,您必须将另一个类指定为正类,例如第 2 类,将所有其他类指定为一个大的负类,并再次从网络中获得预测概率。

在对所有八个类别重复此过程后,将每个案例分配给从神经网络输出的所有类别中概率最大的类别。