我是机器学习和AI的新手,最近刚开始使用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.
我对这种方法的思考方式是否存在错误?
其他信息(编辑): 这些名义值包含在决策中(如果使用统计工具通过结合数值来衡量,则取决于它们),取决于它们是否为真。我知道它们可以编码为二进制,但名义值列表稍微大一些。
其他例子:
症状A血液检查1导致诊断X(理想) 血液检查1的症状B导致诊断Y(理想)
实际上使用了专家系统。症状是名义值,但结合血液检测值可以得到诊断。最后的主要问题是:我是否必须以二进制方式编码症状,还是可以用数字代替症状?如果我不能用数字替换它,为什么二进制表示是使用NN的唯一方法?
答案 0 :(得分:0)
<强> INPUTS 强>
从理论上讲,如何对输入进行编码并不重要。只要不同的样本将由输入空间中的不同点表示,就可以用一条线将它们分开 - 并且输入层(如果它是线性的)正在做什么 - 它线性地组合输入。但是,数据在输入空间中的布局方式会对学习过程中的收敛时间产生巨大影响。一个看待这个的简单方法是:想象一组在2D空间中穿过原点的线。如果您的数据散布在原点周围,那么这些行中的一些可能会将数据分成几部分,并且几乎不需要“移动”,特别是如果数据是线性可分的。另一方面,如果您的输入数据密集且远离原点,那么大多数初始输入识别线甚至不会“击中”数据。因此,需要进行大量的权重更新才能获得数据,并需要大量精确的步骤将其“切割”为初始类别。
<强> OUTPUTS 强>
如果您有类别,那么将它们编码为二进制非常重要。想象一下,您有三个类别:A
,B
和C
。如果您使用两个三个神经元(1;0;0
,0;1;0
和0;0;1
对它们进行编码,那么在学习期间以及稍后的噪声数据中,关于哪个网络“不确定”的点可能最终为{{{ 1}}在输出层上。这是有道理的,如果它在概念上属于0.5;0.0;0.5
和A
之间,但肯定不是C
。如果您选择一个输出神经元末端编码B
,A
和B
为C
,1
和2
,那么相同网络会给出3
和1
之间平均值的输入,这会给你3
!所以答案是“绝对2
” - 显然是错误的!