Sutikku Opublikowano 22 Sierpnia 2014 Udostępnij Opublikowano 22 Sierpnia 2014 Pierwszy raz o sztucznej sieci neuronowej usłyszałem (w sumie zobaczyłem) w tym filmiku Temat mnie trochę zaciekawił, trochę poczytałem, trochę pooglądałem. Naprawdę ciekawa sprawa. W opisie tamtego filmiku, jest link który jakoś obrazuje, w jaki sposób wygląda w tym algorytmie sieć neuronowa. Tutaj. Podejrzewam, że coś podobnego można stworzyć w Game Makerze. Więc ten temat założyłem, w celu wysłuchania czyjegoś zdania na ten temat, a może nawet ktoś chciałby się podzielić pomysłem, jak by to miało wyglądać? I czy jeśli ktoś to ogarnia, byłby tak miły trochę to wyjaśnić? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 22 Sierpnia 2014 Udostępnij Opublikowano 22 Sierpnia 2014 Lepiej, do Quake 2 stworzono boty, które uczą się w ten sposób grać. http://homepages.paradise.net.nz/nickamy/n...about.htm#about Kiedyś na tym grałem sporo czasu i faktycznie po paru tygodniach grania z nimi miałem coraz większe problemy ich pokonać. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Amaterasu Opublikowano 22 Sierpnia 2014 Udostępnij Opublikowano 22 Sierpnia 2014 Zrobilem kiedyś perceptron, który sprawdza, czy na obrazku jest litera 'L'. Tutaj Perceptron to model neuronu, ma kilka/set wejść i jedno wyjście. Żeby się nauczył czegoś, trzeba mu dać przykłady, na które znasz odpowiedź. Potem, gdy neuron się już nauczy, możesz mu pokazywać nowe litery, a on rozpozna, czy to litera 'L', czy nie. Jeśli nie rozpozna, to po prostu poprawi swoje 'rozumienie' o literze 'L' i będzie lepiej zgadywać kolejne litery. Sieci neuronowe to teoretycznie potężne narzędzie, pozwalające komputerowi robić rzeczy, które do tej pory były zarezerwowane dla człowieka (czytanie, rozpoznawanie mowy, obrazów itp.) Jest sieć, która nauczyła się grać w Civilizations IV, inna bezbłędnie odczytuje kody reCaptcha. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Fervi_ Opublikowano 22 Sierpnia 2014 Udostępnij Opublikowano 22 Sierpnia 2014 Sieci neuronowe miałem w szkole - nudy Przynajmniej na razie, oczywiście bawić się możesz (nawet chyba coś było w GM) Fervi Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 22 Sierpnia 2014 Udostępnij Opublikowano 22 Sierpnia 2014 Też miałem na studiach sieci ale tam była tylko zabawa programikiem zgadującym pismo. I wyjaśnienie jak to mniej więcej działa i faktycznie było to nudne ale taka jest specyfika nauczania w szkołach :P Zakładam że jakbyś sam się nauczył i wykorzystał to do napisania jakiegoś bota to miałbyś niesamowity ubaw. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sutikku Opublikowano 22 Sierpnia 2014 Autor Udostępnij Opublikowano 22 Sierpnia 2014 Wow, Amaterasu dzięki za perceptron! Aż miło analizować kod, naprawdę ;D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 22 Sierpnia 2014 Udostępnij Opublikowano 22 Sierpnia 2014 o fajne Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sutikku Opublikowano 22 Sierpnia 2014 Autor Udostępnij Opublikowano 22 Sierpnia 2014 Kurcze pomimo wszystkiego trudno mi to zrozumieć. Czy to wygląda mniej więcej tak? Idę prosto-zginąłem. Przed chwilą zginąłem idąc prosto. Idę w lewo. O udało mi się. Będę szedł w lewo. Wiem, że napisane językiem jak dla idioty, ale dobrze to staram się zrozumieć? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Fervi_ Opublikowano 22 Sierpnia 2014 Udostępnij Opublikowano 22 Sierpnia 2014 Musisz poczytać o różnych problemach z SI (Komiwojażer, Plecakowy na przykład) Fervi Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sutikku Opublikowano 22 Sierpnia 2014 Autor Udostępnij Opublikowano 22 Sierpnia 2014 Hmmm, poczytałem o tym i niby coś tam zrozumiałem (akurat tego z plecakiem to nie). Jednak w sumie to za dużo mi to nie dało (oprócz wiedzy czym jest problem Komiwojażera). EDIT; Hmm, ten link: . Kolejna próba zrozumienia tego niesamowitego czegoś. Od samochodu wychodzi 9 lin. Jest też 9 wejść. Jeżeli linia jest blisko ściany wysyła wiadomość, ona idzie dalej od wejścia. Jeśli jest dużo sygnałów to wiadomości idą dalej i wtedy już dzieje się akcja np. skręt w prawo. Tak? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 22 Sierpnia 2014 Udostępnij Opublikowano 22 Sierpnia 2014 Linie nie wysyłają boola czy jest blisko ściany tylko znormalizowaną jej długość. Znormalizowaną czyli taką, która mieści się w zakresie 0 do 1. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sutikku Opublikowano 22 Sierpnia 2014 Autor Udostępnij Opublikowano 22 Sierpnia 2014 Czyli jestem blisko dojścia do tego jak to MNIEJ WIĘCEJ, działa tak? To uszczęśliwiająca wiadomość :) To auto ma 2 zielone kropki, to są wyjścia, tak? Czyli ostatecznie wszystko jest wysyłane do tych wyjść? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 22 Sierpnia 2014 Udostępnij Opublikowano 22 Sierpnia 2014 Według mnie jedno wyjście odpowiada za kontrolę gazu a drugie za odchylenie kierownicy ale nie jestem pewny. A tak widać, ten zielony na górze to kierownica a gaz to ten na dole. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sutikku Opublikowano 22 Sierpnia 2014 Autor Udostępnij Opublikowano 22 Sierpnia 2014 Skoro już jesteśmy przy tym filmiku, to jak by mógł wyglądać kod, na to aby takie linie dochodziły do ścian? Tzn. bo na początku pomyślałem, że może po prostu idą do najbliższego punktu ściany, ale nie dość, że wszystkie by szły do jednej i tej samej, to jeszcze, troszkę dziwne by to było. One są stałe, i tylko się sprawdza jak duża część wychodzi poza ściany? Na przykład połowa linii jest poza ścianą, więc wejście to 0.5. Z tym, że też nie mam pojęcia jak takie sprawdzanie by wyglądało. Bo naszła mnie chęć zrobienia czegoś podobnego. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 22 Sierpnia 2014 Udostępnij Opublikowano 22 Sierpnia 2014 Akurat narysowanie takich lini w GM to żaden problem zobacz artykuł "wyszukiwanie binarne" w komentarzach jest przykład jak zastosować to do rysowania cieni ze źródła światła. https://gmclan.org/index.php?czytajart=74 To podobne jest zagadnienie, ja to wykorzystuję często do zrobienia strzelania. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Madness Opublikowano 22 Sierpnia 2014 Udostępnij Opublikowano 22 Sierpnia 2014 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sutikku Opublikowano 22 Sierpnia 2014 Autor Udostępnij Opublikowano 22 Sierpnia 2014 Chyba muszę przejrzeć wszystkie artykuły napisane na GMCLAN'ie, bo widzę, że dużo się można nauczyć. Czy jest jeszcze jakiś ciekawy algorytm, który przy takich sieciach neuronowych byłby przydatny? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Amaterasu Opublikowano 22 Sierpnia 2014 Udostępnij Opublikowano 22 Sierpnia 2014 Niezbędna jest wiedza na temat uczenia sieci neuronowych - bez tego są one bezużyteczne. Są trzy typy uczenia, każdy wymaga innego algorytmu do modyfikowania wag neuronów. W dodatku przy sieciach wielowarstwowych dochodzi algorytm propagacji wstecznej, który w ogóle jest kosmosem i nawet ja jeszcze nie całkiem ogarniam, jak on dokładnie działa. Na początek spróbuj zbudować pojedynczy perceptron, później weź się za bardziej skomplikowane rzeczy. Oczywiście rozumiem, że algorytmy genetyczne masz już przerobione : P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sutikku Opublikowano 22 Sierpnia 2014 Autor Udostępnij Opublikowano 22 Sierpnia 2014 Staram się uczyć analizując perceptron który zrobiłeś tylko nie mogę zrozumieć pewnej pętli w skrypcie SpriteToGrid GML for(i = 0; i < 32; i += 1) { for(j = 0; j < 32; j += 1) { ds_grid_set(global.netgrid,i,j,(surface_getpixel(global.surf,i,j)) != c_white) } } Do czego ona służy, co ona robi? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Amaterasu Opublikowano 22 Sierpnia 2014 Udostępnij Opublikowano 22 Sierpnia 2014 Ten surface (surf) jest tłumaczony na wejście perceptronu (netgrid). Jeśli dany piksel nie jest koloru białego, ustawia dane wejście perceptronu na 1, wpp na 0. Wyobraź sobie ten perceptron jako drzewko, którego liściami jest surface na jednej płaszczyźnie, a pniem jest wyjście perceptronu. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sutikku Opublikowano 22 Sierpnia 2014 Autor Udostępnij Opublikowano 22 Sierpnia 2014 A jeśli chodzi o to: GML for(i = 0; i < 32; i += 1) { for(j = 0; j < 32; j += 1) { sum += ds_grid_get(global.netgrid,i,j)*ds_grid_get(global.wetgrid,i,j) //suma wazona } } Tutaj dodaje do sumy, obliczenie czy jest to literka L? Z tym, że nie od razu tylko po pikselu? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 22 Sierpnia 2014 Udostępnij Opublikowano 22 Sierpnia 2014 Boję się co z ciebie wyrośnie jak w tym wieku ogarniasz takie rzeczy xD Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Amaterasu Opublikowano 22 Sierpnia 2014 Udostępnij Opublikowano 22 Sierpnia 2014 Jeżeli ta suma przekroczy pewną wartość ustaloną przez funkcję aktywacji, perceptron uzna, że obrazek reprezentuje literę L. Suma jest ważona, czyli im ważniejsze wejście wg perceptronu, tym większy wkład w rozpoznawanie litery ma to wejście. Możesz zobaczyć to na tym szarym obrazku obok wejścia - w pewnym sensie, jest to wyobrażenie litery L wg perceptronu. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sutikku Opublikowano 22 Sierpnia 2014 Autor Udostępnij Opublikowano 22 Sierpnia 2014 Przyjmijmy, że mamy pole 9x9. A jego pole wygląda tak: 1-0-0 1-0-0 Wspaniała literka L! 1-1-0 Perceptron wie, że jest to literka L, bo już się nauczył. Jeśli potem pokaże pole 1-0-0 1-0-0 1-1-1 To nie wykryje, dopóki mu nie powiem, że jest to L? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Amaterasu Opublikowano 22 Sierpnia 2014 Udostępnij Opublikowano 22 Sierpnia 2014 EDIT: nie doczytałem EDIT2: perceptron powinien domyślić się, że to też jest litera L. Jeżeli powiesz mu, że to rzeczywiście litera L, to nic się nie zmieni, jednakże jeśli perceptron dowie się (od uczącego), że popełnił błąd, poprawi swoje wagi wg algorytmu. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sutikku Opublikowano 22 Sierpnia 2014 Autor Udostępnij Opublikowano 22 Sierpnia 2014 Tak w ogóle, jakie jeszcze mogą być ciekawe zastosowania perceptronu? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Amaterasu Opublikowano 22 Sierpnia 2014 Udostępnij Opublikowano 22 Sierpnia 2014 Myślę, że byłby całkiem dobry do przewidywania pogody, dajesz mu na wejście dane nt pogody z ostatnich 30 dni, a ten domyśli się, jaka pogoda będzie jutro. Choć nie sądzę, żeby jego dokładność była zniewalająca. Pojedyncze perceptrony można łączyć w sieci. Możesz np. zrobić 32 perceptrony, każdy będzie rozpoznawał inny znak. Funkcję aktywacji stosujesz wtedy tylko do sprawdzania, czy wg danego perceptronu rysunek przedstawia odpowiadający perceptronowi znak, do samego sprawdzania, jaki jest to znak wg sieci funkcja aktywacji jest zbędna - perceptron z największą sumą wyjściową wygrywa. Jeśli jakieś perceptrony pomylą się w rozpoznawaniu litery, poprawiasz tylko te błędne perceptrony, pozostałe pozostawiasz w spokoju. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 22 Sierpnia 2014 Udostępnij Opublikowano 22 Sierpnia 2014 Znalazłem osom artykuł http://software.com.pl/sieci-neuronowe-w-grach/ po przeczytaniu, mniej więcej wiem o co chodzi autorowi i się nieźle tym zaciekawiłem. Zacznę to głębiej analizować i może stworzę sobie coś prostego w GM jak mi się uda. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sutikku Opublikowano 23 Sierpnia 2014 Autor Udostępnij Opublikowano 23 Sierpnia 2014 Ja na początku chciałem stworzyć uczące się mrówki ale musiałoby być dużo wyjść, więc na razie zrobię coś łatwiejszego. Na przykład jest sobie snajper. I trzeba go nauczyć kiedy ma strzelać, a kiedy nie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 23 Sierpnia 2014 Udostępnij Opublikowano 23 Sierpnia 2014 No zrobić taki symulator życia mrówek to było by coś :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się