2

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

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

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

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

请帮忙 :) 谢谢。

4

3 回答 3

3

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

来自weka 文档

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

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

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

于 2012-05-09T12:50:47.463 回答
0

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

对您的游戏使用竞争分析进行调查可能会更好。

于 2011-03-10T00:39:44.490 回答
-1

你可能不得不在这里重新发明轮子。我不认为这是对时间的不好利用。

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

于 2011-03-28T03:08:03.373 回答