11

Robię projekt sieci neuronowej jako mój ostatni rok studiów licencjackich. Idea projektu: bardzo prosty robot z 2 silnikami i dwoma czujnikami ir i czujników będzie przechodzić przez środowisko za pomocą sieci neuronowej znajdującej się w komputerze. Głównym wymaganiem jest obserwowanie możliwie odpowiedniego GUI procesu uczenia się i procesu ewolucji sieci neuronowej. (Głównym celem jest obserwacja sieci neuronowej i jej zmiany, aby nie napędzać robota). Robot będzie komunikował się z komputerem za pomocą komunikacji szeregowej we wcześniejszych etapach projektu, a następnie użyje sieci WLAN ..Opinia o odpowiednim języku programowania dla mózgu neuronowego robota?

Moje pytanie brzmi, jaki jest najlepszy język, który może zostać użyty do implementacji komponentów w komputerze (sieć neuronowa). Rzeczy, które należy uznać to: Łatwość wdrożenia sieci neuronowej, Wydajność (Chociaż zadaniem robota wydaje się prosta, obserwując sieć neuronowa jest ewolucja potęgę obejmować trochę matematyki również zmieniających się GUI), Łatwość łączenia się sprzęt (Serial i WLAN)

Do tej pory brałem pod uwagę JAVA i C#. Proszę również o twoją opinię ... Proszę podać swoją opinię na temat projektu i aspektów moich rozważań przy wyborze języka. inne słowa ... na co jeszcze powinienem zaglądać przed podjęciem decyzji)

Dziękuję.

Odpowiedz

15

(Głównym celem jest obserwować Neural Network, a jej zmiany nie do napędzania robota).

Sieć neuronowa jest jednym z rodzajów uczniów, których forma nie jest łatwa (w ogóle) zrozumiała dla ludzi. Wizualizacja sieci i jej wag nie będzie naprawdę interesująca ani korzystna. Będziesz lepiej oszczędzać stan sieci neuronowej w różnych punktach podczas treningu - na początku, w środku i na końcu, powiedzmy - a następnie demonstrując zachowanie robota we wszystkich trzech. Mam nadzieję, że pokazując, że wraz z postępem szkolenia poprawiła się wydajność (niezależnie od wybranej przez ciebie metryki obiektywnej). Możesz chcieć pokazać wykresy pokazujące ocenę "wydajności" robota po interwałach N - w końcu powinieneś osiągnąć asymptotę lub nawet zacząć obserwować spadek wydajności, ponieważ szkolenie staje się odpowiedzialnością. (Przynajmniej, to co bym chciał zobaczyć, czy ja przeglądając swój projekt w środowisku akademickim.)

Moje pytanie brzmi: co jest najlepszym język, który może być używany do realizacji komponentów w komputer (Sieć neuronowa

SSN może być napisany w dowolnym języku. Używaj języka jesteś najbardziej komfortowo, a przynajmniej inny język jest „kompatybilna” z aktualnym ustawieniu. (np jeśli masz już robota rozmawiającego z komputerem z systemem Windows przez połączenie szeregowe przy użyciu C#, to dlaczego nie użyć tej istniejącej konfiguracji jako podstawy dla twojego projektu? już jesteś w połowie wykończony!). Jeśli to Java lub C#, a następnie przejdź do niego. Nie ma powodu, dla którego powinieneś potrzebować nauczyć się nowego języka. W rzeczywistości, polecam , a nie uczenie się nowego języka dla twojego projektu. Zdecydowanie wolisz spędzać czas pracując nad swoim interesującym problemem, niż próbując odgadnąć zakurzone zakątki jakiegoś nowego języka.

2

Zgodziłbym się z Kudłatym, że wizualne przedstawienie kompleksu sieciowego wystarczającego do napędzenia robota prawdopodobnie nie będzie ciekawym widokiem.

Czy spojrzałeś na podobne istniejące projekty? Niektóre szybkie badania google pokazały The Zero Dimension - próbę wizualizacji niektórych aspektów uczenia się ANN w 3D. Oto ich video demo. Prawdopodobnie jest ich więcej - zapewne dadzą ci wgląd w to, co robisz i czego nie chcesz się skoncentrować.

Oto article na wizualizacji struktury ANN (ponownie, tylko na pierwszej, na której natknąłem się). Jak widzisz, wizualizacja nie jest zbyt wnikliwa.

Mówiąc o języku - wybierz ten, który najbardziej Ci odpowiada. Lub wybierz ten, który chcesz poprawić swoje doświadczenia - jeśli masz nastawienie i czas na naukę podczas tego projektu.
Należy jednak pamiętać o jednej rzeczy: uczenie się SSN jest zadaniem wymagającym obliczeń, a osiągnięcie rozsądnej wydajności w językach "wyższego poziomu", takich jak C# czy Java, będzie prawdopodobnie trudniejsze niż w językach "niższego poziomu", takich jak C++.

Proponuję także rozważyć użycie istniejących bibliotek do pracy z NN. Kilka lat temu użyłem pakietu STATISTICA Neural Networks (kosztuje trochę pieniędzy), jak sądzę, jest też kilka bibliotek open source.
Wdrażanie dobrego algorytmu uczenia się ANN jest prawidłowe i wydajne, więc możesz chcieć zastosować istniejącą implementację i skupić się na części GUI/wizualizacji.

1

Polecam przy użyciu C# z biblioteki neuronalnej sieci neuron. Myślę, że da ci wszystko, czego potrzebujesz:

1

Rozważ Matlab/Labview. Ta kombinacja bardzo ułatwia wizualizację działania programu i wykreślanie stanów wewnętrznych.

Powiązane problemy