ktos wie jak zaczac z takimi sieciami? w jaki sposob sie to wszystko konfiguruje itp. Co musialbym zrobic, aby zaczac trenowac taka siec, zeby grala w tetrisa na przyklad?
@1392c309a2da8ca65641315bf7dc62f2: @KapitanSoS: Zacząć z sieciami jest bardzo prosto. Schody się robią gdy masz jakieś wymagania co do celu który sieć ma osiągnąć :P Na youtube pod filmikiem jest link do githuba z tym projektem.
@StaraSzopa: Do perfekcji wystarczyłoby użyć algorytmu deterministycznego. Perfekcja byłaby prostsza do osiągnięcia w tym wypadku. Jednakże algorytm deterministyczny leży w przypadku problemu typu NP-hard. Leży - w znaczeniu ogranicza się do metody brute-force / backtracking i pokrewnych, przy czym ilość kroków algorytmu jest tak absurdalnie duża, że nikt nie doczeka się rozwiązania.
Tymczasem Snake jest daleki od NP-hard. Prawdopodobnie nawet backtracking nie jest niezbędny do rozwiązania. Ale tylko strzelam.
@the_revenant: Jeśli jako perfekcję określamy po prostu maksymalny wynik to nie potrzeba nawet inputów do takiego algorytmu wystarczy w kółko przejeżdżać po takiej trasie która w każdym okrążeniu przejeżdża po każdym polu dokładnie raz kompletnie ignorując gdzie faktycznie punkt się pojawia bo i tak prędzej czy później po nim przejedziemy, a uderzymy w siebie tylko kiedy plansza będzie kompletnie pełna. Problem był by tylko gdyby plansza miała nieparzystą zarówno wysokość
Naaaajs. Trzeba było użyć uczenia ze wzmocnieniem, zamiast algorytmu genetycznego. Wtedy miałbyś jedną sieć uczącą się na podstawie doświadczeń, a nie pseudolosową sieć wybraną na podstawie selekcji naturalnej. W tym momencie, to nawet nie jest uczenie się ¯\_(ツ)_/¯ Osiągnąłbyś lepsze rezultaty w krótszym czasie i dużo prościej byłoby tę sieć masterować. . Co nie zmienia faktu, że zaprezentowany efekt też jest spoko. Tak trzymaj.
@h3lloya: autor filmu zrobił program, który generuje ileś osobników (osobnikiem jest sieć z losowymi wagami połączeń między neuronami). Osobniki te są testowane na planszy. Jeżeli osobnik zje owoc, to program nalicza mu punkt. Jak program przepuści przez ten "tor przeszkód" tych N osobników, to wybiera z nich np. połowe najlepszych i krzyżuje ze sobą (np. połowa wag z jednego osobnika, połowa z drugiego), czyli tworzy sie zbiór nowych osobników (sieci
To jest jakiś śmiech na sali. 20 lat temu grało się z botami w quaka, ktore również uczyły się w czasie rzeczywistym. Dzisiaj, gdy kompy są pierdyliard razy szybsze, mam się podniecać, że jakiś student nauczył komputer grać w węża? Bycz pliz. wszyscy spadacie na psy ze swoimi skillami.
To jest jakiś śmiech na sali. 20 lat temu grało się z botami w quaka, ktore również uczyły się w czasie rzeczywistym.
@Jacolex: Tak, tylko boty w quake uczyły się bardzo prostymi algorytmami i były przystosowane jedynie do jednego prostego zadania. Sieci neuronowe to trochę zupełnie inny sposób podejścia do rozwiązywania problemu.
Boty w quake działały bo ktoś je tak zaprogramował od początku do samego końca. W przypadku sieci neuronowych
@Jacolex: Widzę, że jesteś dumny ze swojego projektu. Ale może wyjaśnisz z czego? Z tego, że sieci neuronowej użyłeś w snake'u? Przerost formy nad treścią. Ale przed kolegami będziesz szpanował jakiego to ty (specjalnie z małej litery) masz snake'a. Może byś lepiej wykorzystał sieci neuronowe
@kebab-case: Nie wiem co napisał OP ale czy nie pomyliłeś przypadkiem tetrisa ze wężem? Bo ja z jakiegoś powodu nałogowo mylę tetrisa z wężem i z pongiem. Myślę o jednym a piszę nazwę innego.
@MateriaBarionowa: Sztuczna inteligencja to 100% matematyka. Możesz to wykonać w dowolnym języku programowania, a najlepiej sięgnąć po taki gdzie jest dużo bibliotek i nie trzeba wszystkiego robić od 0. Ja na uczelni pisałem sieć neuronową trainbpa w Matlabie, natomiast nie specjalnie interesuje mnie to zagadnienie. Komercyjnie najwięcej pisze się chyba w Pythonie. Główne zastosowanie to Business Intelligence, czyli analiza dużych zbiorów danych. Zawsze gdy słyszę od kogoś, że zrobił coś
@blizzarder: Taka prawda, ludzie myślą że tu jakieś cuda-niewidy się dzieją, a to tak naprawdę duuuuuuży if/then/else z wagami, który bruteforcem sobie je dopasowuje, aby jak najdłużej ciągnąć symulację. To takie Twierdzenie o nieskończonej liczbie małp, tyle że tu masz określoną liczbę neuronów (No ale nie piszą Hamleta tylko mają do wyboru 4 opcje, w oparciu o kilka warunków xD).
Komentarze (89)
najlepsze
źródło: comment_eXe28BIu353vX4cUKPAMFRGd0OCspO3e.jpg
PobierzBORZE.
Nie mam nic przeciwko tłumaczeniu memów, ale róbcie to chociaż jako tako.
źródło: comment_9gUXF6QGpsvIIVqs3p89jt7e0L9C3SCr.jpg
Pobierzźródło: comment_GBv6LHTgWTuApBZZO2HDpZCKdOdFLR7J.gif
PobierzCo musialbym zrobic, aby zaczac trenowac taka siec, zeby grala w tetrisa na przyklad?
Na youtube pod filmikiem jest link do githuba z tym projektem.
https://www.tensorflow.org/
Takie coś znalazłem. Sam dziś sprawdzę czy amator może się tym bawić :)
Do perfekcji wystarczyłoby użyć algorytmu deterministycznego. Perfekcja byłaby prostsza do osiągnięcia w tym wypadku. Jednakże algorytm deterministyczny leży w przypadku problemu typu NP-hard. Leży - w znaczeniu ogranicza się do metody brute-force / backtracking i pokrewnych, przy czym ilość kroków algorytmu jest tak absurdalnie duża, że nikt nie doczeka się rozwiązania.
Tymczasem Snake jest daleki od NP-hard. Prawdopodobnie nawet backtracking nie jest niezbędny do rozwiązania. Ale tylko strzelam.
Trzeba było użyć uczenia ze wzmocnieniem, zamiast algorytmu genetycznego. Wtedy miałbyś jedną sieć uczącą się na podstawie doświadczeń, a nie pseudolosową sieć wybraną na podstawie selekcji naturalnej.
W tym momencie, to nawet nie jest uczenie się ¯\_(ツ)_/¯
Osiągnąłbyś lepsze rezultaty w krótszym czasie i dużo prościej byłoby tę sieć masterować.
.
Co nie zmienia faktu, że zaprezentowany efekt też jest spoko. Tak trzymaj.
@Jacolex: Tak, tylko boty w quake uczyły się bardzo prostymi algorytmami i były przystosowane jedynie do jednego prostego zadania. Sieci neuronowe to trochę zupełnie inny sposób podejścia do rozwiązywania problemu.
Boty w quake działały bo ktoś je tak zaprogramował od początku do samego końca. W przypadku sieci neuronowych
źródło: comment_DRnXTCdO2Tn0uXoIQiNJNpUM4ekQN1Da.jpg
PobierzKomentarz usunięty przez moderatora
@kebab-case: Nie wiem co napisał OP ale czy nie pomyliłeś przypadkiem tetrisa ze wężem? Bo ja z jakiegoś powodu nałogowo mylę tetrisa z wężem i z pongiem. Myślę o jednym a piszę nazwę innego.
źródło: comment_tgnJAYs3Bj5BQ257k0fN1Cz1RMZKoNv5.jpg
Pobierz