Использование Weka для игры
Я делаю проект, в котором у меня есть нейронные сети (или другие алгоритмы), играющие друг с другом в покер. После каждого выигрыша или проигрыша я хочу, чтобы нейронная сеть (или другой алгоритм) обновлялась в ответ на ошибку проигрыша (как это вычисляется, здесь неважно).
Ука очень милая, и я не хочу изобретать велосипед. Однако API Weka, по-видимому, в первую очередь предназначен для обучения из набора данных. В игре не используется набор данных. Скорее сеть играет, а потом я хочу, чтобы она обновлялась сама в зависимости от потери.
Можно ли использовать Weka API для обновления сети вместо набора данных, но в одном случае, и делать это снова и снова? Я думаю об этом, верно?
Другая идея, которую я также хочу реализовать, - это использовать генетический алгоритм для обновления весов в нейронной сети вместо алгоритма обратного распространения. Насколько я могу судить, в Weka нет способа вручную указать вес нейронной сети. Это, конечно, жизненно важно, если для этого используется генетический алгоритм.
Пожалуйста, помогите:) Спасибо.
3 ответа
Обычно алгоритмы обучения weka являются алгоритмами пакетного обучения. Что вам нужно, это инкрементный классификатор.
Из Weka Docs
Большинству классификаторов необходимо просмотреть все данные, прежде чем их можно будет обучить, например, J48 или SMO. Но есть также схемы, которые можно обучать поэтапно, а не только в пакетном режиме. Все классификаторы, реализующие интерфейс weka.classifiers.UpdateableClassifier, способны обрабатывать данные таким образом.
См. Интерфейс UpdateableClassifier, в котором его реализуют классификаторы.
Также вы можете посмотреть инструмент MOA Massive Online Analysis, тесно связанный с weka, и все его классификаторы являются инкрементными из-за ограничений онлайн-обучения.
Насколько я могу судить, Weka не занимается онлайн-обучением (о чем вы спрашиваете).
Возможно, было бы лучше исследовать, используя конкурентный анализ для вашей игры.
Возможно, вам придется изобретать велосипед здесь. Я не думаю, что это плохое использование времени.
В настоящее время я внедряю систему классификаторов обучения, которая довольно проста. Я бы также посоветовал изучить такие алгоритмы. В Интернете есть реализация, но я все еще предпочитаю кодировать свою собственную.