神经网络 - 二进制与离散/连续输入

机器算法验证 神经网络
2022-02-16 04:04:10

是否有任何充分的理由让二进制值 (0/1) 优于离散或连续的归一化值,例如 (1;3),作为所有输入节点(有或没有反向传播)的前馈网络的输入?

当然,我只是在谈论可以转换为任何一种形式的输入;例如,当您有一个可以取多个值的变量时,要么直接将它们作为一个输入节点的值提供,要么为每个离散值形成一个二进制节点。并且假设所有输入节点的可能值范围都是相同的。有关这两种可能性的示例,请参见图片。

在研究这个话题时,我找不到任何冷酷的事实;在我看来,这 - 或多或少 - 最终总是“反复试验”。当然,每个离散输入值的二进制节点意味着更多的输入层节点(因此更多的隐藏层节点),但它真的会比在一个节点中具有相同的值产生更好的输出分类吗?隐藏层?

您是否同意这只是“试试看”,还是您对此有其他看法? 可能性一:直接输入可能的值 {1;3} 可能性二:获取每个输入值一个二元节点

3个回答

是否将输入变量转换为二进制取决于输入变量。您可以将神经网络输入视为一种“强度”:即,输入变量的值越大,表示该输入变量的强度越大。毕竟,假设网络只有一个输入,网络的给定隐藏节点将学习一些功能f(wx+b). 在哪里f是传递函数(例如 sigmoid)和x输入变量。

此设置对分类变量没有意义。如果类别由数字表示,则应用该功能没有意义f(wx+b)给他们。例如,假设您的输入变量代表动物,绵羊=1 和牛=2。将羊乘以是没有意义的w并添加b对它来说,牛总是比羊大也没有意义。在这种情况下,您应该将离散编码转换为二进制 1-of-k编码。

对于实值变量,只需将它们保留为实值(但归一化输入)。例如,假设您有两个输入变量,一个是动物,一个是动物的温度。您会将动物转换为 1-of-k, 在哪里k=动物的数量,你会保持原样的温度。

是的,有。想象一下,您的目标是构建一个二元分类器。然后,您将问题建模为估计伯努利分布,其中,给定特征向量,结果属于一类或相反。这种神经网络的输出是条件概率。如果大于 0.5,则将其与一个类相关联,否则与另一个类相关联。

为了得到很好的定义,输出必须介于 0 和 1 之间,因此您选择标签为 0 和 1,并最小化交叉熵,

E=y(x)t(1y(x))1t
在哪里y(x)是您的网络的输出,并且t是训练样本的目标值。因此,您需要t{0,1}.

我在解决问题时也面临同样的困境。我没有尝试这两种架构,但我的看法是,如果输入变量是离散的,那么神经网络的输出函数将具有脉冲函数的特性,神经网络擅长对脉冲函数进行建模。事实上,任何函数都可以用神经网络建模,其精度取决于神经网络的复杂性。唯一的区别是,在第一个架构中,您增加了输入的数量,因此您在第一个隐藏层的节点中有更多的权重来模拟脉冲函数,但是对于第二个架构,与第一个架构相比,您需要更多的隐藏层节点数获得相同的性能。