Artificial intelligence 如何处理人工神经网络中的不确定性/缺失数据?

Artificial intelligence 如何处理人工神经网络中的不确定性/缺失数据?,artificial-intelligence,neural-network,Artificial Intelligence,Neural Network,背景: 我正在尝试使用前馈人工神经网络为视频游戏创建人工智能,我遇到了一个问题,我的一些输入功能依赖于其他输入功能的存在或价值 我能想到的最基本、最简单的例子是: 特征1是玩家数量(范围2…5) 功能2到?是每个玩家的分数(范围>=0) 通知ANN分数所需的特征数量取决于玩家数量 问题是:如何将这种动态知识输入表示为ANN 我已经考虑过的事情: 只是不使用这些特性,或者将它们整合到静态输入中。 也就是说,用球员得分的总和来代替。我严重怀疑这是否适用于我的问题,这将导致丢失太多信息,并且ANN将无

背景:

我正在尝试使用前馈人工神经网络为视频游戏创建人工智能,我遇到了一个问题,我的一些输入功能依赖于其他输入功能的存在或价值

我能想到的最基本、最简单的例子是:

特征1是玩家数量(范围2…5) 功能2到?是每个玩家的分数(范围>=0)

通知ANN分数所需的特征数量取决于玩家数量

问题是:如何将这种动态知识输入表示为ANN

我已经考虑过的事情:

  • 只是不使用这些特性,或者将它们整合到静态输入中。 也就是说,用球员得分的总和来代替。我严重怀疑这是否适用于我的问题,这将导致丢失太多信息,并且ANN将无法很好地执行

  • 为不存在的输入传入错误值(例如-1)或默认值(例如0) 我不确定这会有多好,理论上,人工神经网络可以很容易地从这个输入中学习,并对函数进行适当的建模。在实践中,我担心大量不存在的输入会给ANN带来问题。例如,如果参与者的范围为2-10,如果只有2个参与者,80%的输入数据将不存在,并将向ANN引入奇怪的偏差,从而导致较差的性能

  • 在不存在输入的情况下,在适当的训练集上传递平均值 同样,不存在的输入量也是一个问题,我担心这会给离散值输入带来奇怪的问题

  • 那么,我在问这个问题,有没有人有我可以考虑的其他解决方案?有没有标准或常用的方法来处理这个问题


    我知道这对SO来说是一个相当利基且复杂的问题,但我对“如何修复此代码?”和“如何在PHP/Javascript中执行此操作?”感到厌倦了。问题:p,谢谢各位。

    听起来好像有多个数据集(针对每个玩家数量)彼此并不兼容。从5人游戏中学到的经验真的适用于2人游戏吗?尝试简化问题,例如#1,然后查看程序的执行情况。在人工智能中,荒谬的简化有时会给你很大的吸引力,比如垃圾邮件过滤器

    试着考虑以下模型:

    <席(例如X1)是一个变量数可以存在的输入之一。可以有n个(x1到xn)。让y为其余的输入

    在第一个隐藏层上,将x1和y传递给第一个c节点,将x1、x2和y传递给下一个c节点,将x1、x2、x3和y传递给下一个c节点,依此类推。这假设x1和x3在没有x2的情况下不能同时处于活动状态。如果需要,模型必须适当更改

    网络的其余部分是一个标准的前馈网络,所有节点都连接到下一层的所有节点,或者以您选择的方式连接

    当您有w个活动输入时,禁用除第w组c节点外的所有节点(将其从该输入集的训练中完全排除,在计算其输出到的节点的值时不包括它们,不更新其输入或输出的权重)。这将允许大部分网络进行训练,但对于第一个隐藏层,仅适用于该数量输入的部分

    我建议选择c,使得c*n(第一隐藏层中的节点数量)大于(或等于)第二隐藏层中的节点数量(并且对于中等规模的网络,c至少为10(进入100也可以),并且我还建议该网络至少有2个其他隐藏层(总共3个,不包括输入和输出)。这不是来自经验,而是我的直觉告诉我的

    这种工作依赖于不同数量的输入之间的某种(可能是不可定义的)相似性,如果根本不存在这种相似性,则可能无法很好地工作。这也可能需要为每个数量的输入提供相当多的训练数据

    如果您尝试过,请让我/我们知道它是否有效

    如果你对人工智能的讨论感兴趣,我建议你加入一些专门讨论人工智能的小组,有些小组非常活跃,讨论也很有趣。在人工智能方面,stackoverflow似乎没有什么进展,或者我们应该努力改变这一点,或者两者兼而有之

    更新:

    以下是一些体面的人工智能LinkedIn团体的名单(除非他们最近改变了政策,否则加入应该很容易):

    • “人工智能研究人员、教员+专业人员”

    • “人工智能应用”

    • “人工神经网络”

    • “AGI-人工通用智能”

    • “应用人工智能”(目前进展不大,仍在处理一些垃圾邮件,但情况正在好转)

    • “文本分析”(如果您对此感兴趣)


    我投了赞成票,因为这是一件值得思考的有趣事情。在理想情况下,我希望为每个球员训练不同的网络,但问题在于训练数据的收集。对于2-5名球员来说,4个不同的数据集并不是很糟糕,但可以说最多有30-40名球员以及所有球员突然间,你只有2-3%的数据可以训练每个网络,这是假设没有边界情况下很难收集数据(可能有40个玩家的游戏是难以置信的罕见),这是公平的。然后我建议使用#2。这基本上是给每个数据集相同数量的维度。例如,比较(x,y)和(a,b,c)