人工神经网络

3

我想知道人工神经网络是否可以应用于离散值输入?我知道它们可以应用于连续值输入,但它们能否应用于离散值输入?此外,对于离散值输入,它们的表现会好吗?


关于https://dev59.com/ZHA75IYBdhLWcg3w3NBe的相关内容 - Don Reba
如果所有输入都是离散的,那么您只有有限数量的输入组合。如果这个数量不是非常大,甚至可以在不使用人工神经网络的情况下计算出最佳输出。 - Andre Holzner
4个回答

2

是的,人工神经网络可以应用于具有离散值输入变量的数据。在最常用的神经网络体系结构(数值型)中,离散输入通常由一系列虚拟变量表示,就像统计回归一样。与回归一样,需要比虚拟变量的不同值少一个。还有其他方法,但这是最直接的方法。


0

我回答这个问题有点晚,但希望能对某些人有所帮助。

假设你有一个分类输出变量,例如3个不同的类别(0、1和2),

输出

0
2
1
2
1
0

然后变成

1, 0, 0
0, 0, 1
0, 1, 0
0, 0, 1
0, 1, 0
1, 0, 0

一个可能的神经网络输出结果是:
0.2, 0.3, 0.5  (winner is categ 2) 
0.05, 0.9, 0.05  (winner is categ 1)
... 

在这种情况下,您的NN将具有3个输出节点,因此取最大值。 为了改进这一点,使用熵作为误差度量和输出层上的softmax激活,以使输出总和为1。


0

嗯,好问题让我来回答吧!

首先,让我直接回答你的问题是肯定的!

这个答案涉及到考虑网络本身的使用和实现的几个方面。

然后让我解释一下为什么:

  • 最简单的方法是像往常一样对输入进行归一化处理,这是神经网络的第一法则,然后让神经网络计算任务,一旦你得到输出,就将归一化反转以获得原始范围但仍连续的输出,要想获得离散值,只需考虑输出的整数部分。这很容易,它有效并且很好,完成了!一个好的结果只取决于你为网络设计的拓扑结构。

作为额外的加分项,你可以考虑在层之间使用“step”传递函数,而不是“tan-sigmoid”,以增强和模拟一种数字化,强制输出只能是0或1。但你还应该重新考虑起始归一化以及使用调整良好的阈值。

NB:这个小技巧并不是真正必要的,但可能会带来一些次要的好处;也许在开发的第二阶段测试一下,看看有什么不同。

PS:我想建议一些关于你的问题的事情;如果你聪明的话,考虑在你的学习算法中使用一些模糊逻辑。

祝好!


为什么这个答案没有解释为什么会被负评? - dwjohnston

-1
神经网络的目的是通过插值样本来近似复杂函数。因此,它们往往不适用于离散数据,除非该数据可以通过阈值化连续函数来表示。根据您的问题,可能会有更有效的学习方法。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接