NeuralNetworkAPI

NeuralNetworkAPI

Wtyczka Bukkit umożliwiająca dodanie sieci neuronowych do Minecrafta.

0 polubień • 0 pobrań
Dostępne pliki
6
Obsługiwane wersje
7
Najnowszy plik
04.02.2018

 https://media-elerium.cursecdn.com/attachments/218/863/neuralnetworkapibannar.pngNeuralNetworkAPI


Wtyczka Bukkit do dodawania sieci neuronowych do Minecrafta.

 

  Jak korzystać (Podstawowa demonstracja)

  •  Na początek użyj `/nn cnn` lub `/nn createNewNN`, aby zobaczyć listę wszystkich typów sieci neuronowych. Polecałbym wybrać `LogicalOR`, aby zacząć.
  • Następnie użyj `/nn startlearning`, aby rozpocząć trenowanie sieci NN.
  • Prawie od razu po wysłaniu tej komendy użyj `/nn stoplearning`, aby zakończyć trenowanie. W ciągu kilku sekund od wysłania tych dwóch poleceń bot przejdzie przez tysiące scenariuszy i powinien być w 100% dokładny. (Dla innych NN możesz sprawdzić dokładność, przeglądając konsolę.)
  • Aby to przetestować, użyj `/nn test`, aby przetestować dwa wejścia, prawda lub fałsz. (np. `/nn test true false`)
  • Dla LogicalOR powinno wyświetlać true, jeśli pierwsze i/lub drugie wejście jest prawdziwe.

 

Dla nie-developerów


Ta wtyczka nie zapewnia nic samodzielnie poza kilkoma demonstracjami tego, co to API potrafi osiągnąć. Jeśli nie planujesz tworzyć własnej wtyczki NeuralNetwork lub używać innej wtyczki, która korzysta z tego API, ta wtyczka może być dla Ciebie bezużyteczna.

 Dla twórców wtyczek


Są pewne rzeczy, które powinieneś wiedzieć, zanim spróbujesz stworzyć nowy typ sieci neuronowej

  •  Pakiet `example` podaje szereg przykładów tworzenia sieci neuronowych. Sieci neuronowe z bramkami logicznymi powinny być najłatwiejsze do zrozumienia.
  • Domyślnie wszystkie NN, które dziedziczą po NNBaseEntity, automatycznie implementują ConfigurationSerializable. Jednak, aby Bukkit mógł ładować te wartości z konfiguracji, będziesz musiał utworzyć nowy konstruktor klasy w następujący sposób:
    public CustomNeuralNetwork(Map<String,Object> map){
    super(map);
    } 

...i pozwól klasie ConfigurationSerialization zarejestrować obiekt w metodach onEnable lub onLoad w klasie głównej, jak poniżej:

public void onEnable(){
ConfigurationSerialization.registerClass(CustomNeuralNetwork.class);
}
  • Po tym będziesz mógł zapisywać i odczytywać `NNBaseEntity` z konfiguracji. Pamiętaj, nie można zapisać instancji `NeuralNetwork` do konfiguracji.
  •  Najlepiej, żadna inna część twojej wtyczki nie powinna bezpośrednio odwoływać się do twojego niestandardowego obiektu sieci neuronowej. Zamiast tego wszystkie wywołania do tego obiektu powinny być wykonywane za pomocą obiektu NeuralNetwork.
  •  Dla najlepszych rezultatów, wywołuj `DeepReinformentUtil.instantaneousReinforce` tylko wtedy, gdy NN zawiódł w jakikolwiek sposób. Wywoływanie go w przypadku, gdy zwrócił prawidłową wartość, zazwyczaj powoduje, że zapomina to, czego mógł już się nauczyć.
  •  To API jest wciąż w rozwoju. Niektóre aspekty tej wtyczki mogą się zmienić w przyszłych aktualizacjach. Regularnie sprawdzaj stronę GitHub w poszukiwaniu aktualizacji i upewnij się, że projekt zawsze odnosi się do najnowszej wersji.
  •  Podczas trenowania swojej sieci neuronowej, jeśli nie chcesz, aby konsola zapełniała się komunikatami debug, użyj `NeuralNetwork#setBroadcasting(false);`, aby wyłączyć debugowanie konsoli.
  •  Jeśli Twoja AI nie zwraca wartości, których oczekujesz, lub chcesz wiedzieć, co twoja sieć NN „myśli” na podstawie wejścia, możesz otworzyć grapher, aby mieć wizualizację tego, co się dzieje. Użyj `NeuralNetwork#openGrapher();` aby otworzyć instancję graphera. Gdy skończysz, możesz użyć `NeuralNetwork#closeGrapher();` aby prawidłowo zamknąć okno.
  •  Dodanie większej liczby ukrytych warstw do twojej sieci neuronowej zwiększa złożoność wzorców, które potrafi się nauczyć.
  •  W pewnych przypadkach posiadanie BiasNeuron może zwiększyć lub zmniejszyć zdolność sieci do uczenia. W sytuacjach, gdy pewne wyjścia są potrzebne, jeśli nie ma wejść (XNOR, NAND, odwrócone, na przykład), lepiej mieć co najmniej 1 neuron bias w wejściach.
  •  Posiadanie BiasNeurons w ukrytych warstwach może, a może nie pomagać w niektórych sytuacjach.

 

 Jak to działa


Sieci neuronowe zaczynają od trzech podstawowych komponentów, tablicy sensorycznej, obiektu AI i obiektu Controler.

  • Tablica sensoryczna określa wejścia. Mogą to być booleany, reprezentujące prawdę lub fałsz, lub liczby, które reprezentują możliwe stany wejścia.
  • Sztuczna inteligencja (AI) konwertuje wejścia na wyjścia. Poprzez serię neuronów, każdy z własnymi wartościami i progami, informacje są przekazywane od wejścia do wyjścia w zależności od tego, jak NN został wytrenowany.
  •  Kontroler to sposób, w jaki konwertujesz wyjścia na dane, które możesz wykorzystać. Na przykład, kontroler może konwertować wyjścia na boolean, określając, czy AI wykryło przekleństwo dla filtra przekleństw, lub określając sumę dwóch całkowitych. 

GithubPage:


https://github.com/ZombieStriker/NeuralNetworkAPI

 

Ta wtyczka zbiera statystyki przy użyciu bStats:

Statystyki bStats zbierają jedynie informacje dotyczące architektury twojego systemu, wersji serwera i wersji wtyczki. Jeśli naprawdę nie chcesz, aby którakolwiek z tych informacji była wysyłana, możesz wyłączyć bStats, przechodząc do konfiguracji i ustawiając: "enableStats" na false.

Opis projektu pochodzi z CurseForge i został udostępniony po polsku. Szczegóły konfiguracji, zależności oraz aktualne komunikaty autora sprawdź na w źródłowym katalogu CurseForge.

Stabilne NeuralNetworkAPI V1.0.6
NeuralNetworkAPI.jar 04.02.2018 183 KB
Stabilne NeuralNetworkAPI V1.0.4
NeuralNetworkAPI V1.0.4.jar 05.11.2017 259 KB
Stabilne NeuralNetworkAPI V1.0.3
NeuralNetworkAPI V1.0.3.jar 30.10.2017 258 KB
Stabilne NeuralNetworkAPI V1.0.2
NeuralNetworkAPI V1.0.2.jar 29.10.2017 256 KB
Stabilne NeuralNetworkAPI V1.0.1
NeuralNetworkAPI V1.0.1.jar 27.10.2017 256 KB
Stabilne NeuralNetworkAPI V1.0.0
NeuralNetworkAPI V1.0.0.jar 20.10.2017 255 KB
Przed instalacją

Jak bezpiecznie sprawdzić ten plugin

Wybierz zgodny plik

Oznaczenia wersji pochodzą z metadanych autora. Dobierz również właściwe oprogramowanie serwera i Javę.

Zachowaj kopię

Przed pierwszym startem skopiuj świat, konfigurację oraz dane pozostałych pluginów.

Przeczytaj log

Po uruchomieniu sprawdź brakujące zależności i pierwszy błąd związany z nazwą pluginu.

Zobacz pełną instrukcję instalacji