Symulacja ruchu drogowego i nauka sieci neuronowych.

Symulacja ruchu drogowego i nauka sieci neuronowych.
Bambo
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 779
0

Cześć, jestem programistą javy od kilku lat ale naszło mnie, żeby robić coś w kierunku sztucznych sieci neuronowych, uczenia maszynowego, algorytmów genetycznych, symulacji itd. Stwierdziłem, że czas się porozwijać bo ostatnio już trochę znudzony jestem javowaniem.

Mam taki pomysł, aby napisać sobie symulacje ruchu drogowego (dużo jeżdzę i korki mnie irytują), ale tak, aby auta najpierw nauczyć zasad ruchu drogowego i jeżdżenia.

Czy polecacie jakieś książki od czego najlepiej zacząć ? Jakieś artykuły ? Widziałem tu na forum jest coś o SN. I pewnie c++ najlepiej no nie ?

A1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 171
0

Na youtube można znalezc wiele ciekawych filmow o tej tematyce po angielsku. Z javy znalazłem tylko jeden projekt z uczeniem maszynowym na githubie, coś a'la "java snakes evolution", może znajdziesz. Ale raczej googluj albo oglądaj na yt filmy typu "Neural net explained" i sam probuj potem przełożyc to na jave.

TR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 731
0

Proponuję zacząć od tego: http://neuralnetworksanddeeplearning.com/
Znajdziesz dobrze opracowany opis prostych sieci neuronowych.

Kolejna sprawa - lepiej w Pythonie, jest od groma bibliotek choćby: https://www.tensorflow.org/ oraz https://openai.com/

Jeśli chcesz się pobawić w OCR to jest dobra biblioteka https://opencv.org/ - kiedyś rozwijana przez dużą korporację, ale korporacja wzięła ludzi z projektu pod swoje skrzydła, ale postanowili zostawić opencv jako projekt otwarty (nie pamiętam dokładnie czy był to Intel czy IBM)
W opencv znajdziesz porty z C++ na Javę/Python, jedyną wadą są ubytki w dokumentacji. Niewiele jest tam nt. samych sieci neuronowych, ale jest to spoko biblioteka, bo samo OCR jest tam oparte na tej samej zasadzie co sieci z pierwszego linka, i robi robotę.

FP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 132
0

Hej, to bardzo dobry kierunek. Nie zwiazany ani z jezykiem ani z bibliotekami. Odporny na mode i zawirowania krótkookresowe.

Jest dużo dobrych książek (nawet po PL ktore maja po 10-20 lat). Kursy to przewaznie postrzepiona wiedza, nie usystematyzowana. Jest ok jezeli chcsz liznąc, albo np cos drobnego sie dowiedziec.
Lubie art przeczytać jeżeli siedze w jakiejs wiedzy/branży. Można sobie art przeczytać jak uzyć jakiejs biblioteki aby cos zrobic. Ok.
Ale do nauki (jezeli chcesz poznac POD MASKA jak co dziala) nie polecam.

Zainteresowałem sie mocno na uczelnii, a potem w pracy zajmowałem sie logika rozmyta i takim wnioskowaniem, sposobami reprezentacji wiedzy, sieciami neuronowymi z roznymi modelami nauki, algorytmami genetycznymi, zagadnieniami klasyfikacji/klasteryzacji, redukcja wymiarow. Taka wiedza jest srednio popularna, ale znajac dosc latwo znalezc prace w roznych sektorach IT.
A jezeli okrasisz wiedze programowaniem jezykiem logicznym albo/lub funkcyjnym można przy naprawde, naprawde ciekawych projektach pracowac (nie jakies typowe CRUDY/RESTy).

Pawel

Ps. Nawet (stosunkowo) nieduze wlasne projekty, pokazujac na rekrutacji robia pozytywne wrażenie i ulatwiaja zmiane pracy / uzyskanie max z widelek.
Nie jakis "system" z kilkoma polaczeniami do bazy danych ;) z xml/json'em gdzie techniczni przegladaja kod z github patrzac jak nazywasz zmienne ;) czy i jak uzywasz IoC / AoP / wzorcow projektowych.

Bambo
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 779
0

Hej, dziękuję za odpowiedzi. Zacząłem czytać książki Ryszarda Tadeusiewicza. Uczenie z nauczycielem wydaje się całkiem zrozumiałe.

Jednak nie mogę znaleźć pewnej odpowiedzi. Otóż:

  • pierwszą sieć jaką chciałbym napisać dotyczy samochodu, który ma się nauczyć pokonywać tor. Np tak jak tu:

Chcę to również zrobić w unity, ale nie mogę nigdzie znaleźć na jakim rodzaju sieci działa coś takiego. No bo sieć z nauczycielem to nie jest raczej, samo-ucząca się również nie raczej z tego powodu, że przecież ona nie wykrywa żadnych konkretnych klas. Rozumiem, że każdemu samochodowi muszę dać 3 (lub 5) sensorów i one będą wejściami sieci, wyjścia to będą akcje na samochodzie : gaz, hamulec, lewo, prawo.

Ale ktoś mógłby dać wskazówki odnośnie tego jak to uczyć ?
Pozdrawiam.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.