【问题标题】:Using Weka for Game Playing使用 Weka 玩游戏
【发布时间】:2011-07-12 04:58:21
【问题描述】:

我正在做一个项目,我让神经网络(或其他算法)在扑克中互相玩。在每次输赢之后,我希望神经网络(或其他算法)根据损失的误差进行更新(这里如何计算并不重要)。

Weka 非常好,我不想重新发明轮子。然而,Weka 的 API 似乎主要设计用于从数据集进行训练。玩游戏不使用数据集。相反,网络播放,然后我希望它根据其损失进行自我更新。

是否可以使用 Weka API 在一个实例上更新网络而不是数据集,然后一遍又一遍地执行此操作?我在想这个对吗?

我还想实现的另一个想法是使用遗传算法来更新神经网络中的权重,而不是反向传播算法。据我所知,没有办法在 Weka 中手动指定神经网络的权重。当然,如果为此目的使用遗传算法,这一点至关重要。

请帮忙 :) 谢谢。

【问题讨论】:

    标签: machine-learning neural-network genetic-algorithm weka


    【解决方案1】:

    据我所知,Weka 不进行在线学习(这是您要问的)。

    对您的游戏使用competitive analysis 进行调查可能会更好。

    【讨论】:

      【解决方案2】:

      您可能不得不在这里重新发明轮子。我不认为这是浪费时间。

      我目前正在实现一个非常简单的学习分类器系统。我还建议研究这些算法。网上有一个实现,但我还是更喜欢自己写代码。

      【讨论】:

        【解决方案3】:

        通常,weka 学习算法是批量学习算法。你需要的是增量分类器。

        来自weka docs

        大多数分类器需要先查看所有数据才能进行训练,例如 J48 或 SMO。但也有一些方案可以增量方式进行训练,而不仅仅是批处理模式。所有实现 weka.classifiers.UpdateableClassifier 接口的分类器都能够以这种方式处理数据。

        参见UpdateableClassifier 分类器实现它的接口。

        你也可以看看MOA Massive Online Analysis工具,它与weka密切相关,由于在线学习的限制,它的所有分类器都是增量的。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-04-17
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多