人工神经网络
Posted
技术标签:
【中文标题】人工神经网络【英文标题】:Artificial neural networks 【发布时间】:2011-11-19 09:22:37 【问题描述】:我想知道是否可以应用于离散值输入?我知道它们可以应用于连续值输入,但它们可以应用于离散值输入吗?此外,对于离散值输入是否会表现良好?
【问题讨论】:
与***.com/questions/3066353/…相关 如果所有输入都是离散的,那么您只有有限数量的输入组合。如果这个数字不是很大,你甚至可以在完全不使用的情况下计算出最佳输出。 【参考方案1】:好吧,好问题让我说!
首先让我直接回答你的问题!
答案意味着要考虑有关网络本身的使用和实施的几个方面。
让我解释一下原因:
最简单的方法是像往常一样规范化输入,这是 NN 的第一条经验法则, 而不是让神经网络计算任务,一旦你有了输出,反转归一化以获得原始范围内的输出但仍然是连续的,要返回离散值,只需考虑输出的整数部分。这很容易,它可以工作并且很好,完成!好的结果取决于您为网络设计的拓扑。作为一个优点,您可以考虑在层之间使用“step”传递函数,而不是“tan-sigmoid”,以加强和模拟一种强制输出仅为 0 或 1 的数字化。但您应该还要重新考虑开始标准化以及使用经过良好调整的阈值。
注意:后一种技巧并不是真正必要的,但可能会带来一些次要的好处;也许在您的开发的第二阶段对其进行测试并查看差异。
PS:请允许我提出一些适用于您的问题的建议;如果您很聪明,请考虑在您的学习算法中使用一些模糊逻辑;-)
干杯!
【讨论】:
为什么这个答案投了反对票,没有评论解释原因?【参考方案2】:神经网络的目的是通过插值样本来逼近复杂的函数。因此,它们往往不适合离散数据,除非该数据可以通过对连续函数进行阈值化来表示。根据您的问题,可能会有更有效的学习方法。
【讨论】:
【参考方案3】:是的,人工神经网络可以应用于具有离散值输入变量的数据。在最常用的神经网络架构(数值型)中,离散输入通常由一系列虚拟变量表示,就像在统计回归中一样。此外,与回归一样,需要比不同值虚拟变量的数量少一个。还有其他方法,但这是最直接的。
【讨论】:
【参考方案4】:我在这个问题上迟到了,但这可能会对某人有所帮助。
假设您有一个分类输出变量,例如 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
一个可能的NN输出结果是
0.2, 0.3, 0.5 (winner is categ 2)
0.05, 0.9, 0.05 (winner is categ 1)
...
那么在这种情况下,您的 NN hill 有 3 个输出节点,因此取最大值。 为了改善这一点,在输出层使用熵作为误差度量和 softmax 激活,使输出总和为 1。
【讨论】:
以上是关于人工神经网络的主要内容,如果未能解决你的问题,请参考以下文章
[人工智能-深度学习-5]:人工神经元数学模型激活函数人工神经网络