Jestem zupełnie nowy w sieciach neuronowych, ale bardzo zainteresowany ich zrozumieniem. Jednak nie jest łatwo zacząć.
Czy ktoś mógłby polecić dobrą książkę lub inny rodzaj zasobów? Czy jest coś, co musisz przeczytać?
Jestem wdzięczny za jakąkolwiek wskazówkę.
machine-learning
neural-networks
references
Claudio Albertin
źródło
źródło
Odpowiedzi:
Sieci neuronowe istnieją już od jakiegoś czasu i zmieniły się dramatycznie na przestrzeni lat. Jeśli tylko grzebiesz w Internecie, możesz odnieść wrażenie, że „sieć neuronowa” oznacza wielowarstwową sieć przesyłania z wyprzedzeniem, przeszkoloną w zakresie wstecznej propagacji. Lub możesz natknąć się na jeden z dziesiątek rzadko używanych, dziwnie nazwanych modeli i dojść do wniosku, że sieci neuronowe są bardziej zoo, niż projektem badawczym. Lub że są nowością. Lub...
Mógłbym kontynuować. Jeśli chcesz jasnego wyjaśnienia, posłuchałbym Geoffreya Hintona . Jest już od zawsze i (dlatego?) Wykonuje świetną robotę, łącząc wszystkie odmienne modele, nad którymi pracował, w spójną, intuicyjną (a czasem teoretyczną) narrację historyczną. Na jego stronie głównej znajdują się linki do wykładów Google Tech Talks i wykładów Videolectures.net ( między innymi w RBM i Deep Learning ).
Z tego, co widzę, oto historyczna i pedagogiczna mapa drogowa do zrozumienia sieci neuronowych, od ich powstania do najnowocześniejszych:
źródło
Gorąco polecam obejrzenie tych wykładów i wykorzystanie ich jako materiału do czytania . Wykłady te są na temat uczenia maszynowego w ogóle, Andrew Ng długo mówi o sieciach neuronowych i stara się, aby były dostępne dla początkujących.
źródło
Są to, moim zdaniem, bardzo dobre książki.
Książki mają pewne podobieństwa: obie mają około 500 stron i są dość stare, od 1995 roku. Niemniej jednak pozostają bardzo przydatne. Obie książki zaczynają od zera, wyjaśniając, czym są sieci neuronowe. Zapewniają jasne objaśnienia, dobre przykłady i dobre wykresy ułatwiające zrozumienie. Dokładnie wyjaśniają problemy szkolenia sieci neuronowych, w ich wielu kształtach i formach oraz co mogą, a czego nie mogą zrobić. Obie książki bardzo ładnie się uzupełniają, ponieważ jednej książki nie da się zrozumieć, jedna znajduje się w drugiej.
Rojas ma sekcję, która szczególnie mi się podoba, dotyczącą implementacji propagacji wstecznej na wielu warstwach w postaci macierzy. Ma także przyjemną sekcję o logice rozmytej i jedną o teorii złożoności. Ale potem Bishop ma wiele innych fajnych części.
Rojas jest, powiedziałbym, najbardziej dostępny. Bishop jest bardziej matematyczny i być może bardziej wyrafinowany. W obu książkach matematyka to głównie algebra liniowa i rachunek funkcji wielu zmiennych (pochodne cząstkowe i tak dalej). Bez znajomości tych tematów prawdopodobnie żadna z tych książek nie byłaby bardzo pouczająca.
Najpierw poleciłbym przeczytać Rojas.
Obie książki mają oczywiście wiele do powiedzenia na temat algorytmów, ale żadna z nich nie mówi o konkretnych implementacjach w kodzie.
Dla mnie te książki stanowią tło, które sprawiają, że kurs on-line (taki jak Hinton, na Coursera) jest zrozumiały. Książki obejmują także znacznie więcej gruntów i są o wiele bardziej szczegółowe niż można to zrobić w Internecie.
Mam nadzieję, że to pomoże i chętnie odpowiem na wszelkie pytania dotyczące książek.
źródło
Jak zauważyli inni, istnieje wiele (dobrych) zasobów online, a ja osobiście wykonałem niektóre z nich:
Chciałbym zwrócić uwagę na fakt, że te ekspozycje były w większości zgodne z klasycznym traktowaniem, w którym warstwy (suma i nieliniowość razem) są podstawowymi jednostkami. Bardziej popularne i bardziej elastyczne leczenie zaimplementowane w większości bibliotek, takich jak torch-nn i tensorflow, wykorzystuje teraz wykres obliczeniowy z automatycznym różnicowaniem w celu osiągnięcia wysokiej modułowości. Koncepcyjnie jest to prostsze i bardziej wyzwalające. Gorąco polecam doskonały kurs otwarty Stanford CS231n do tego leczenia.
Aby uzyskać rygorystyczne leczenie oparte na nauce, możesz skonsultować się z Neural Networks autorstwa Anthony'ego i Bartletta.
źródło
Jeśli chcesz leczenia z bardziej statystycznego punktu widzenia, spójrz na „Rozpoznawanie wzorców i sieci neuronowe” Briana Ripleya. Ta książka nie jest wprowadzająca i zakłada pewne podstawy statystyczne.
http://www.stats.ox.ac.uk/~ripley/PRbook/
źródło
Stworzyłem aplikację internetową, która wspiera proces uczenia się w dziedzinie sieci neuronowych.
https://blueneurons.ch/nn
Możesz bawić się ustawieniami (architektura, funkcje aktywacji, ustawienia treningu) i obserwować, jak ustawienia wpływają na prognozy. Wszystkie zestawy danych mają wstępnie skonfigurowane wartości, które można przyjąć. Możliwe jest również tworzenie własnych zestawów danych.
Instrukcje i objaśnienia do wdrożonych elementów:
Podręcznik użytkownika
źródło