1

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

假设我们有 4 个浮点数minus1, plus1, minus2,plus2

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 表示最后一个)?

预先感谢大家的阅读,非常感谢您的帮助

斯蒂芬妮

4

2 回答 2

1

问题有点模糊。我将其解释为:

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

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

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

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

于 2010-12-11T01:21:28.530 回答
1

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

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

3) 至于输出,完全有可能为整个神经网络提供一个输出节点。要使用这种设计,需要一个阈值函数,它从 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 
于 2011-01-06T17:52:51.317 回答