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


14

是否有充分的理由选择二进制值(0/1)而不是离散或连续的规范化值(例如(1; 3))作为所有输入节点(带有或不带有反向传播)的前馈网络的输入?

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

在研究此主题时,我找不到关于此的冷酷事实。在我看来,或多或少地,这最终总是“试错”。当然,每个离散输入值的二进制节点意味着更多的输入层节点(因此也意味着更多的隐藏层节点),但是与一个节点中具有相同值的情况相比,它确实会产生更好的输出分类,并且具有合适的阈值函数。隐藏层?

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

Answers:


11

是否将输入变量转换为二进制取决于输入变量。您可能认为神经网络输入代表一种“强度”:即,输入变量的值越大,表示该输入变量的强度就越大。毕竟,假设网络只有一个输入,则网络的给定隐藏节点将要学习一些函数。其中是传递函数(例如S型信号),是输入变量。f(wx+b)fx

此设置对于分类变量没有意义。如果类别用数字表示,则将函数应用于它们是没有意义的。例如,假设您的输入变量代表一只动物,并且绵羊= 1,母牛= 2。将绵羊乘以并加上毫无意义,牛的幅度总是大于绵羊。在这种情况下,您应该将离散编码转换为二进制的1-of-编码。f(wx+b)wbk

对于实值变量,只需将其保留为实值(但对输入进行归一化)。例如,您有两个输入变量,一个是动物,另一个是动物的温度。您可以将动物转换为 1-of- ,其中 =动物的数量,并且保持温度不变。kk


简而言之,您指向变量的标度:公制,序数和标称。好吧,我认为很明显,标称比例不能“计算”或由函数表示。关于真实值,像您一样,我倾向于认为,由于过渡更为顺畅,真实值可能比“分类”真实值“更好”,但是我对此找不到任何确凿的证据。在我看来,又是另一种“试错”的情况。
cirko '16

4

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

为了得到良好定义,输出必须在0到1之间,因此您选择的标签为0到1,并最小化交叉熵,即 ,其中是网络的输出,是训练样本的目标值。因此,您需要。

E=y(x)t(1y(x))1t
y(x)tt{0,1}

我知道标准化输入比可变范围的输入值更可取,因为它更类似于网络应该产生的二进制输出。但是在我的问题中,我想引用某个范围的归一化离散值,即,如果输入可以在一个范围内,则所有节点都应具有相同范围,即被归一化。在那种情况下,为每个离散值使用二进制节点仍然是可取的吗?(我现在编辑了这个问题以满足这个先决条件)
cirko

1

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.