3

谁能向我解释如何做更复杂的数据集,比如团队统计数据、天气、骰子、复数类型

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

如果有人可以在 python 中提供示例,那将是一个很大的帮助

4

4 回答 4

3

您必须将输入和输出编码为可以由神经网络单元表示的东西。(例如,如果您的单位范围在 [-1, 1] 内,则 1 表示“x 具有特定属性 p”-1 表示“x 不具有属性 p”)

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

此外,针对不同任务(反向传播、博尔兹曼机、自组织图)有许多“神经网络”算法和学习规则。

于 2009-07-30T09:32:33.793 回答
2

您的特征必须分解为可以表示为实数的部分。神经网络的神奇之处在于它是一个黑盒子,在训练期间将建立正确的关联(使用内部权重)


输入

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

  • 天气:[今天的温度,今天的湿度,昨天的温度,昨天的湿度......]今天的温度和今天的湿度之间的关联是在内部建立的
  • 球队数据:[平均身高,平均体重,最大身高,最高分,...]
  • Dice:不确定我是否理解这一点,您的意思是如何编码离散值?*
  • 复数:[a, ai ,b, bi ,...]

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


输出

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

  • 天气:[明天有可能下雨,明天的温度,...] **
  • 球队统计:[获胜机会,获胜机会超过20,...]
  • 复数:[x, xi ,...]

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


当然,这个问题是否真的可以由神经网络建模是另一个问题。

于 2009-07-30T15:46:57.213 回答
0

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

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

于 2009-07-30T13:26:16.170 回答
0

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

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

编码的另一个方面是您必须根据数据量来评估输入和隐藏单元的数量。由于课程 ff 维数问题,与数据相关的单元过多可能会导致较差的近似值。在某些情况下,您可能会以某种方式聚合一些输入数据以避免该问题,或者使用某种缩减机制作为 PCA。

于 2013-12-19T13:41:09.000 回答