我不知道该如何表达这个问题,请耐心听我说..
假设我正在开发一个用于评估田径赛跑者的神经网络。我向神经网络提供关于跑者的信息,例如获胜百分比、距离上次比赛的天数等。
我的问题是 – 在这种评估跑者的情况下,我可以给网络输入像比赛天气这样的信息吗?例如,我给网络输入1.00表示炎热,2.00表示寒冷,3.00表示适宜..?
我问这个问题的理由是:神经网络的输出值越大,跑者的评分就越高。因此,输入的获胜百分比越高,评分就越高。如果我给神经网络输入一些数值较大并不一定意味着跑者更好的信息,网络能理解并使用/解释这些输入吗?
如果这个问题讲不清楚,请告诉我!
回答:
神经网络可以正确地模拟无关输入(通过分配低权重)和与期望输出成反比的输入(通过分配负权重)。神经网络在处理连续变化的输入时表现更好,因此你给出的1.00表示炎热,2.00表示寒冷,3.00表示适宜..
的例子并不理想:更好的做法是0.00表示炎热,1.00表示适宜,2.00表示凉爽
。
在像国家代码这样的情况下,如果没有真正的连续关系,从收敛的角度来看,最好的编码方式是使用一组布尔属性(例如isArgentina, isAustralia, ..., isZambia
)。即使没有这样做,神经网络也应该能够模拟离散值的输入(即,如果国家是相关的,并且你将它们编码为数字,最终神经网络应该能够收敛到87(肯尼亚)与高表现相关
)。在这种情况下,可能需要更多的隐藏节点或更长的训练时间。
神经网络的目的是用于简单统计分析困难的情况,因此我不同意另一个答案中所说的你应该预先判断数据的观点。