神经网络如何在连续时间下工作?

人工智能 神经网络 机器学习 无监督学习 环境
2021-11-06 11:37:59

我有一个接收输入并产生输出的 ANN 模型。输出是与环境交互并相应更​​改输入的动作。网络有一个期望的环境状态,无论如何,它决定期望的响应并在此基础上训练网络。

目前,网络在离散时间工作。我怎样才能使这个网络以连续的方式工作?如果过去或现在有关于连续 AI 的任何研究,您能否提供一些资源和链接?

更具体地说,系统从当前环境状态开始,例如[1 1 1],然后产生一个输出。在当前系统中,下一步将系统的最终状态作为输入,例如,[1 2 2]但我们知道这样的事情不会发生在物理世界中,系统会从[1 1 1]到,例如,,[1 1 2]然后到[1 2 2],而这个中间步骤是离散时间人工智能无法弄清楚的。

我正在研究的案例是自动驾驶推车的模拟,其中模型无法考虑诸如“您可以转动方向盘的最大速度”之类的微妙事物。我不想将这些复杂性添加到模型中,因为如果模型是完美的,那么结果是确定性的,不需要人工智能。我希望 AI 能够在连续时间内根据系统的当前状态在每个步骤中做出决定。

2个回答

顺便说一句,您已经解释了上面的内容,这似乎更像是您的代码问题,而不是与环境有关的问题。术语离散和连续用于定义外部环境的行为方式,而不是您的代码如何采取措施。这些是《人工智能:一种现代方法》一书中的一些内容:

离散/连续的区别适用于环境状态、处理时间的方式以及代理的感知和行为。例如,国际象棋环境具有有限数量的不同状态(不包括时钟)。国际象棋也有一组离散的感知和行动。出租车驾驶是一个连续状态和连续时间问题:出租车和其他车辆的速度和位置扫过一系列连续值,并且随着时间的推移平滑。出租车驾驶动作也是连续的(转向角度等)。严格来说,来自数码相机的输入是离散的,但通常被视为代表连续变化的强度和位置。

因此,连续或离散不应该作为代码问题来讨论。基本上,环境是什么。您对设备的关注与代码有关。我会建议你将代码上传到 git 上并请人们改进它。

我希望这有帮助!

我认为转换[1 1 1][1 2 2]不需要中间步骤。执行器可以同时工作,而不必相互等待完成工作。我什至必须指出,如果您的下一个输出是[1 2 2],那么在遵循轨迹的情况下执行[1 1 2]是非常错误的(如果是您的情况)。所以,我猜你的例子中的中间步骤是[1 1.5 1.5]. 想想线分割。当你分割一条线时,你仍然有你的斜率,你不会创建“台阶”。因此,您在基于神经网络的控制器中遵循的正是您需要的模式。您的问题可能是控制器的闭环频率。更好的神经网络性能导致更快的响应,然后更好的驱动。