【问题标题】:How to convert my floating number to feed my Neural Network?如何将我的浮点数转换为我的神经网络?
【发布时间】:2011-05-23 19:21:51
【问题描述】:

我一直在阅读一些关于神经元、感知器和多层感知器概念的在线教程。现在,我想在我自己的例子中实现这个概念。我想做的是在我的网络中实现以下简单算法:

假设我们有 4 个浮点数 minus1plus1minus2plus2

if (minus2>plus2) and (minus1<plus1) then return 1
else if (minus2<plus2) and (minus1>plus1) then return -1
else return 0

但这是我的担忧:

  1. 如何为我的网络提供以下数字:63.8990、-165.177、1.33001 或 0.98401?

  2. 我应该如何选择输入的数量,因为我有 4 个数字,但我不知道我应该只使用 4 个输入还是先将所有内容转换为位,然后根据相关的数字选择输入的数量位?

  3. 考虑到 3 种类型的输出 (1,-1,0),我是否应该在输出层中需要 3 个神经元,每个神经元代表一种特定类型的答案,或者我应该训练网络分别学习每种答案(第一个网络为 1,第二个网络为 -1,最后一个网络为 0)?

提前感谢大家的阅读,非常感谢您的帮助

斯蒂芬

【问题讨论】:

    标签: algorithm artificial-intelligence neural-network perceptron backpropagation


    【解决方案1】:

    这个问题有点含糊。我将其解释为:

    您正在尝试使用神经网络实现函数 f(m1, p1, m2, p2)(由 if 子句给出的定义)。

    对于(1),您需要考虑您如何表示网络,这受您使用的网络类型的影响。

    对于 (2),要训练网络,您需要使用真值(即 m1, p1, m2, p2, and f(m1, p1, m2, p2) 的实例)。

    对于 (3),您实际上并没有 3 个类型的输出。相反,您有 3 个可能的输出。当然,可以训练 3 个网络在特定输出为答案时做出响应,但您也可以(使用适当类型的网络)使用具有一个输出的网络实现相同的效果。

    【讨论】:

    • 对于 (3),您可以拥有 1 个网络,其中 3 个输出节点标记为 (1,-1,0),并采用“赢家通吃”策略来决定网络的响应。
    • 同意。理论上等价于多一层是静态的并具有传递函数。
    【解决方案2】:

    1) 我不确定你使用什么样的数字来提供你的 NN(神经网络 [或感知器])是否重要。也就是说,您可以让 4 个输入节点接受有符号浮点数(或有符号十进制,如果可用)这样您就可以让所有输入都接受相同类型的数据进行处理。由于您将输入乘以加权值,因此您很可能会在 NN 中得到浮点数或十进制值。

    2) 我通常会说,由于您有 4 个数据点,因此 NN 的 4 个输入是一个很好的起点!

    3) 至于输出,完全有可能对整个 NN 有一个输出节点。要使用这种设计,需要一个阈值函数,它从 NN 获取最终输出并将其转换为可用值。在您的示例中,我建议将低于 -0.5 的任何输出归为 -1,将 -0.5 和 +0.5 之间的任何输出归为 0,将任何高于 +0.5 的输出归为 1。

    例如

    Value           | Output
    ----------------|----------
    < -0.5          | -1
    -0.5 < x < +0.5 | 0
    x > +0.5        | +1 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-15
      • 1970-01-01
      • 2019-03-05
      • 2021-02-22
      • 1970-01-01
      • 1970-01-01
      • 2019-12-07
      • 2020-08-11
      相关资源
      最近更新 更多