0

C++ 如何实时处理人工神经网络的多个输入?

我假设这没有使用尖峰神经网络,而是一个更传统的网络(即只是一个基本的神经网络,如此处所述)

http://www.ai-junkie.com/ann/evolved/nnt1.html

这在实时世界中可能吗?我在想一个人必须单独处理每个输入(这总是会导致相同的输出,因此会出现困境),或者每个时间阈值累积一定数量的输入,然后一次处理它们......

再说一次,有人对同一输入的多个实例做了什么?处理两次?

我问这个是因为我在看神经机器人,我相信它使用了一个普通的神经网络,但我试图在深入研究之前先了解 ANN,并且不确定 ANN 在处理目标输出之前如何处理多个输入( s)。

4

1 回答 1

0

你的问题不是很清楚,但我会尽力回答。:)

您可以看到 ANN(人工神经网络),例如自适应滤波器的特殊情况。

一般 AF 示意图

有三个主要要素:

  1. 输入序列x(n) 。
  2. 参数变量过滤器。在这种情况下,过滤器是 ANN,参数是神经元权重。
  3. 一种更新算法,根据所需的实际输出之间的误差更新过滤器参数。在 ANN 中,最常用的更新算法是反向传播算法

在ANN中有两个步骤:

  • 训练步骤。这是困难的部分。你从随机神经元权重开始。您有一系列输入及其所需的输出,并在更新算法开启的情况下运行 ANN。当误差低于某个阈值时,您可以说您的 ANN 已经过训练。这一步通常是离线完成的(不是实时的)。

  • 执行步骤。你有训练有素的 ANN。现在只需将输入按顺序放入其中并使用输出。这通常是一个快速的操作,并且可以实时完成(如果这是您的意思)。

现在..“一次多个输入”是什么意思?首先,标准计算机一次只能执行非常少量的操作,标准 PC 有 4/8 个内核,因此一次可以执行几乎 4-8 个操作。这个数字对于每个现实世界的 ANN 应用来说都太低了。

你说:

有人如何处理相同输入的多个实例?处理两次?

答案是肯定的。“执行步骤”是如此之快,以至于没有理由不这样做。在“训练步骤”中,可以在训练开始之前删除重复的输入(因为训练输入是先验已知的)。所以这没有问题。:)

于 2013-01-10T12:54:26.087 回答