神经网络输入/输出

时间:2009-07-30 09:22:31

标签: python neural-network

任何人都可以向我解释如何处理更复杂的数据集,如团队统计数据,天气,骰子,复杂数字类型

我理解所有数学和一切如何工作我只是不知道如何输入更复杂的数据,然后如何读取它吐出的数据

如果有人可以在python中提供一个很大帮助的例子

4 个答案:

答案 0 :(得分:3)

您必须将输入和输出编码为可由神经网络单元表示的内容。 (例如1表示“x具有某个属性p”-1表示“x没有属性p”,如果单位的范围是[-1,1])

您对输入进行编码的方式以及解码输出的方式取决于您想要训练神经网络的方式。

此外,还有许多“神经网络”算法和不同任务的学习规则(反向传播,bolzman机器,自组织映射)。

答案 1 :(得分:2)

您的功能必须分解为可以表示为实数的部分。神经网络的神奇之处在于它是一个黑盒子,在训练期间会产生正确的关联(内部重量)


<强>输入

选择尽可能少的功能来准确描述情况,然后将每个功能分解为一组实值数字。

  • 天气:[今天的温度,今天的湿度,昨天的温度,昨天的湿度...] 今天的温度和今天的湿度之间的关联在内部进行
  • 团队统计:[ave height,ave weight,max height,top score,...]
  • 骰子:不确定我理解这个,你的意思是如何编码离散值?*
  • 复数:[a, ai ,b, bi ,...]

*离散值特征很棘手,但仍然可以编码为(0.0,1.0)。问题是他们没有提供渐变来学习阈值。


<强>输出

您决定输出的含义,然后以该格式对训练示例进行编码。输出值越少,训练越容易。

  • 天气:[明天下雨的机会,明天的临时,......] **
  • 团队统计:[获胜机会,获胜机会超过20,......]
  • 复数:[x, xi ,...]

**这里你的训练向量是:如果第二天下雨,则为1.0,如果没有,则为0.0


当然,问题是否可以通过神经网络实际建模是一个不同的问题。

答案 2 :(得分:0)

更复杂的数据通常意味着在输入和输出层添加更多神经元。

您可以为寄存器的每个“字段”提供信号,将其正确编码为每个输入神经元的实数值(标准化等),或者甚至可以进一步分解为位字段,分配饱和输入1或0对于神经元...对于输出,它取决于你如何训练神经网络,它将试图模仿训练集输出。

答案 3 :(得分:0)

您必须为问题所需的输入和输出添加单位数。如果要近似的未知函数取决于 n 参数,则您将有n个输入单位。输出单元的数量取决于功能的性质。对于具有n个实数参数的实际函数,您将有一个输出单元。

有些问题,例如在预测时间序列时,你将有m个输出单位用于函数的m个连续值。编码很重要,取决于选择的算法。例如,在前馈网络的反向传播中,如果可能的话,最好转换离散输入中的更多数量的特征,如分类任务。

编码的其他方面是您必须根据数据量来评估输入和隐藏单位的数量。由于过程ff维度问题,与数据相关的太多单元可能给出差的近似。在某些情况下,您可能以某种方式聚合某些输入数据以避免该问题或使用某种减少机制作为PCA。