NeuralNetworkAPI — это плагин для Bukkit, который позволяет добавлять нейронные сети в Minecraft. Он предоставляет API для создания, обучения и тестирования нейросетей, а также включает несколько демонстрационных примеров.
Использование (базовая демонстрация)
- Используйте /nn cnn или /nn createNewNN для просмотра списка типов нейросетей. Рекомендуется начать с LogicalOR.
- Используйте /nn startlearning для начала обучения.
- Почти сразу после этого используйте /nn stoplearning для остановки обучения. За секунды нейросеть пройдёт тысячи сценариев и достигнет 100% точности.
- Для тестирования используйте /nn test true false (замените true/false на нужные значения). Для LogicalOR результат будет true, если хотя бы один из входов true.
Для не-разработчиков
Этот плагин сам по себе не предоставляет никакого функционала, кроме демонстрации возможностей API. Если вы не планируете разрабатывать свои нейросети или использовать другой плагин, основанный на этом API, то плагин может быть вам бесполезен.
Для разработчиков плагинов
- Пакет example содержит примеры создания нейросетей. Логические элементы — самые простые для понимания.
- Все нейросети, наследующие NNBaseEntity, автоматически реализуют ConfigurationSerializable. Для загрузки из конфига создайте конструктор: public CustomNeuralNetwork(Map<String,Object> map){ super(map); } и зарегистрируйте класс в onEnable или onLoad: ConfigurationSerialization.registerClass(CustomNeuralNetwork.class);
- Не сохраняйте экземпляр NeuralNetwork напрямую в конфиг, используйте NNBaseEntity.
- Избегайте прямых ссылок на ваш кастомный объект нейросети; все вызовы должны идти через NeuralNetwork.
- Для лучших результатов вызывайте DeepReinformentUtil.instantaneousReinforce только при неудаче нейросети.
- API всё ещё в разработке; следите за обновлениями на GitHub.
- Чтобы отключить отладочные сообщения в консоли, используйте NeuralNetwork#setBroadcasting(false);.
- Для визуализации работы нейросети используйте NeuralNetwork#openGrapher(); и NeuralNetwork#closeGrapher();.
- Добавление скрытых слоёв увеличивает сложность обучаемых паттернов.
- Наличие BiasNeuron может улучшить обучение в некоторых случаях (например, XNOR, NAND).
Как это работает
Нейросети состоят из трёх компонентов: сенсорный массив (входы), AI (преобразует входы в выходы через нейроны) и контроллер (преобразует выходы в полезные данные).
GitHub: https://github.com/ZombieStriker/NeuralNetworkAPI
Плагин собирает статистику через bStats. Вы можете отключить это в конфиге: enableStats: false.
