0

我是机器学习和人工智能的新手,最近开始接触 NN。

已经在这里获得了一些关于 stackoverflow 的信息,但我目前不了解整个收集到的信息的逻辑。

让我们取 4 个标称(但不是序数)值 [A、B、C、D] 和 2 个已经标准化的数值 [0.35, 0.55] - 所以 2 个输入神经元,一个用于标称,一个用于数值。我主要在 NN 文献中看到您必须使用 4 个输入神经元进行编码。但我不需要它来预测那些名义上的。如果我将它与专家系统和规则一起使用,我只有一个输出神经元最多代表一种关系。

例如,如果我将它们归一化为 [0.2, 0.4, 0.6, 0.8],NN 不能区分它们吗?对于 NN,它只是一个数字,不是吗?

天真的方法和思维:

A with 0.35 numerical leads to ideal 1.
B with 0.55 numerical leads to ideal 0.
C with 0.35 numerical leads to ideal 0.
D with 0.55 numerical leads to ideal 1.

我对这种方法的思考方式是否有错误?

附加信息(编辑):这些标称值包含在决策中(如果使用统计工具通过结合数值来衡量,则意义重大),取决于它们是否为真。我知道它们可以被编码为二进制,但标称值的列表有点大。

其他示例:

验血 1 的症状 A 导致诊断 X(理想) 验血 1 的症状 B 导致诊断 Y(理想)

实际上使用了专家系统。症状是标称值,但结合验血值可以得到诊断。最后的主要问题是:我必须以二进制方式对症状进行编码还是可以用数字替换症状?如果我不能用数字代替它,为什么二进制表示是使用 NN 的唯一方法?

4

1 回答 1

0

输入

从理论上讲,如何对输入进行编码并不重要。只要不同的样本将由输入空间中的不同点表示,就可以用一条线将它们分开——输入层(如果它是线性的)正在做什么——它线性地组合输入。然而,数据在输入空间中的布局方式会对学习过程中的收敛时间产生巨大影响。一种简单的查看方式是:想象一组线穿过 2D 空间中的原点。如果您的数据分散在原点周围,那么这些行中的一些很可能会将数据分成几部分,并且需要很少的“移动”,特别是如果数据是线性可分的。另一方面,如果您的输入数据密集且远离原点,那么大多数初始输入识别线将不会 甚至“命中”数据。因此,需要大量的权重更新才能到达数据,并且需要大量的精确步骤才能将其“切割”成初始类别。

输出

如果您有类别,那么将它们编码为二进制非常重要。假设您有三个类别ABC。如果你用两个三个神经元将它们编码为1;0;00;1;0然后0;0;1在学习期间以及后来的噪声数据中,关于哪个网络“不确定”的点最终会0.5;0.0;0.5在输出层上结束。这是有道理的,如果它在概念上确实介于Aand之间C,但肯定不是B。如果你选择一个输出神经元 end encode A,as ,Band ,那么对于同样的情况,网络会给出一个介于和之间的平均输入,这给了你!所以答案是“肯定C123132B”——明显错了!

参考: ftp: //ftp.sas.com/pub/neural/FAQ.html

于 2013-10-02T08:39:39.643 回答