感知器训练算法的输入可以有不同的类型吗?

Could the inputs of the Perceptron training algorithm be had different types?

Perceptron 训练算法中的输入必须是同一类型吗?

即一个输入可以是布尔类型而另一个输入可以是整数类型吗?

这取决于您使用哪个库来构建它。一般来说,所有的神经网络只有一种类型的输入——小数。从理论的角度来看,没有其他任何支持。所有库在幕后所做的是将任何其他数据类型转换为十进制输入。字符串通过字典、布尔值转换为 0 和 1(或 -1 和 1)等

他们不能随意。看计算步骤和终止条件(收敛准则):

Update:
y[j](t) = f[w(t) ⋅ x[j] ] 
        = f[w[0](t) x[j,0] + w[1](t) x[j,1] + ⋯ + w[n](t) x[j,n] ]

Convergence:
error = sum(abs(d[j] - y[j](t) )for all j) 
error / j_max < epsilon

这要求您至少有一个部分排序的数据类型,其中定义了与您的权重类型的点积(通常与权重类型相乘并在产品类型上加法),用于误差计算的减法,以及一些有效的收敛值 epsilon.

我强烈建议您坚持使用真实(浮动或双倍)权重。如果您对这些操作非常正式,那么您的输入 可能 是另一种类型,但在实践中它有点棘手:您可以在输入和权重向量上定义点积吗?对于字符串输入,什么是

"hello" ⋅ [0.66, 0.21, -1.13]

更一般地说,如何将评估向量存储在感知器中,然后衡量它与输入的匹配程度?你如何调整反向传播中的向量?

如果你能管理这些,你就能处理你的输入类型。

就个人而言,我建议您坚持第一个建议:如果可以,将您的输入映射到数字。