Naprawdę interesują mnie sztuczne sieci neuronowe, ale szukam miejsca, od którego mógłbym zacząć.
Jakie zasoby są dostępne i jaki jest dobry projekt początkowy?
neural-network
cbrulak
źródło
źródło
Odpowiedzi:
Oto kilka przykładów programowania w sieciach neuronowych. http://www.codeproject.com/KB/recipes/neural_dot_net.aspx
możesz zacząć czytać tutaj: http://web.archive.org/web/20071025010456/http://www.geocities.com/CapeCanaveral/Lab/3765/neural.html
Ze swojej strony odwiedziłem kurs na ten temat i przeczytałem trochę literatury.
źródło
Przede wszystkim porzuć wszelkie wyobrażenia, że sztuczne sieci neuronowe mają coś wspólnego z mózgiem, poza przemijającym podobieństwem do sieci neuronów biologicznych. Uczenie się biologii nie pomoże w efektywnym stosowaniu sieci neuronowych; nauka algebry liniowej, rachunku różniczkowego i teorii prawdopodobieństwa będzie. Powinieneś przynajmniej zapoznać się z ideą różniczkowania podstawowego funkcji, regułą łańcuchową, pochodnymi cząstkowymi (gradient, jakobian i hesjan) oraz zrozumieć mnożenie i diagonalizację macierzy.
W rzeczywistości to, co robisz, gdy trenujesz sieć, to optymalizacja dużej, wielowymiarowej funkcji (minimalizacja miary błędu w odniesieniu do każdej z wag w sieci), więc badanie technik nieliniowej optymalizacji numerycznej może okazać się pouczające. Jest to szeroko badany problem z dużą bazą literaturową poza sieciami neuronowymi, aw Internecie dostępnych jest wiele notatek z wykładów z optymalizacji numerycznej. Na początek większość ludzi stosuje proste zejście gradientowe , ale może to być znacznie wolniejsze i mniej skuteczne niż bardziej zniuansowane metody, takie jak
Po zapoznaniu się z podstawowymi pomysłami możesz zacząć eksperymentować z różnymi funkcjami „zgniatania” w warstwie ukrytej, dodając różne rodzaje uregulowań i różne poprawki, aby przyspieszyć naukę. WidziećPełną listę „najlepszych praktyk” można tym dokumencie .
Jedną z najlepszych książek na ten temat jest Neural Networks for Pattern Recognition Chrisa Bishopa . Na tym etapie jest dość stary, ale nadal jest doskonałym źródłem informacji i często można znaleźć używane kopie w Internecie za około 30 USD. Rozdział dotyczący sieci neuronowych w jego nowszej książce „ Rozpoznawanie wzorców i uczenie maszynowe” jest również dość obszerny. Aby uzyskać szczególnie dobry samouczek dotyczący implementacji, zapoznać poświęconym implementacji zobacz ten na CodeProject.com, który implementuje sprytny rodzaj sieci zwanej siecią konwolucyjną, która ogranicza łączność w taki sposób, aby była bardzo dobra w nauce klasyfikowania wzorców wizualnych.
Maszyny wektorów pomocniczych i inne metody jądra stały się dość popularne, ponieważ można je zastosować, nie wiedząc, do diabła, co robimy i często uzyskuje się akceptowalne wyniki. Z drugiej strony sieci neuronowe są ogromnymi problemami optymalizacyjnymi, które wymagają starannego dostrojenia, chociaż nadal są preferowane w przypadku wielu problemów, szczególnie problemów na dużą skalę w dziedzinach takich jak widzenie komputerowe.
źródło
Gorąco polecam tę doskonałą serię autorstwa Anoopa Madhusudanana w Code Project .
W łatwy do zrozumienia sposób przeprowadzi Cię przez podstawy, aby zrozumieć, jak działają, i pokaże, jak wykorzystać swoją
brainnet
bibliotekę do stworzenia własnej.źródło
Sieci neuronowe są obecnie w pewnym sensie zdeklasowane. Maszyny wektorów pomocniczych i metody jądra są lepsze w przypadku większej liczby klas problemów niż propagacja wsteczna. Sieci neuronowe i algorytmy genetyczne pobudzają wyobraźnię ludzi, którzy niewiele wiedzą o współczesnym uczeniu maszynowym, ale nie są na najwyższym poziomie.
Jeśli chcesz dowiedzieć się więcej o sztucznej inteligencji i uczeniu maszynowym, polecam przeczytanie książki Petera Norviga Artificial Intelligence: A Modern Approach . To szeroki przegląd sztucznej inteligencji i wielu nowoczesnych technologii. Omawia również historię i starsze techniki, a także zapewnia pełniejsze podstawy sztucznej inteligencji i uczenia maszynowego.
Sieci neuronowe są jednak dość łatwe. Zwłaszcza jeśli użyjesz algorytmu genetycznego do określenia wag, a nie właściwej wstecznej propagacji.
źródło
I drugi DWF „s zalecenie Neural Networks Pattern Recognition Chris Bishop. Chociaż może nie jest to tekst początkowy. Norvig lub samouczek online (z kodem w Matlabie!) Byłby prawdopodobnie łagodniejszym wprowadzeniem.
Dobrym projektem początkowym byłby OCR (optyczne rozpoznawanie znaków). Możesz skanować strony tekstu i przepuszczać każdy znak przez sieć w celu przeprowadzenia klasyfikacji. (Oczywiście najpierw musiałbyś przeszkolić sieć!).
źródło
Książka Raula Rojasa to bardzo dobry początek (jest również bezpłatna). Również trzecia edycja książki Haykina , choć obszerna, jest bardzo dobrze wyjaśniona.
źródło
Mogę polecić, od czego nie zaczynać. Kupiłem Wprowadzenie do sieci neuronowych autorstwa Kevina Gurneya, które ma dobre recenzje na temat Amazona i twierdzi, że jest „bardzo przystępnym wprowadzeniem do jednego z najważniejszych zagadnień kognitywnych i informatycznych”. Osobiście nie polecałbym tej książki na początek. Rozumiem tylko około 10%, ale może to tylko ja (angielski nie jest moim językiem ojczystym). Przyjrzę się innym opcjom z tego wątku.
źródło
http://www.ai-junkie.com/ann/evolved/nnt1.html jest jasnym wprowadzeniem do wielowarstwowego perceptronu, chociaż nie opisuje algorytmu wstecznej propagacji
możesz również zajrzeć na generation5.org, która zawiera wiele artykułów o sztucznej inteligencji w ogóle i kilka świetnych tekstów o sieci neuronowej
źródło
Jeśli nie masz nic przeciwko wydawaniu pieniędzy, Podręcznik teorii mózgu i sieci neuronowych jest bardzo dobry. Zawiera 287 artykułów obejmujących badania w wielu dyscyplinach. Rozpoczyna się wprowadzeniem i teorią, a następnie podkreśla ścieżki przez artykuły, aby jak najlepiej uwzględnić Twoje zainteresowania.
Jeśli chodzi o pierwszy projekt, mapy Kohonena są interesujące ze względu na kategoryzację : znajdź ukryte relacje w swojej kolekcji muzyki, zbuduj inteligentnego robota lub rozwiąż nagrodę Netflix .
źródło
Myślę, że dobrym punktem wyjścia zawsze byłaby Wikipedia . Znajdziesz tam przydatne linki do dokumentacji i projektów, które również wykorzystują sieci neuronowe.
źródło
Dwie książki, które były używane podczas moich studiów:
Kurs wprowadzający: Wprowadzenie do technik neuronowych autorstwa Igora Aleksandra i Helen Morton.
Kurs zaawansowany: Neurocomputing prowadzony przez Roberta Hecht-Nielsena
źródło
Uważam, że Fausett Fundamentals of Neural Networks jest prostym i łatwym do zdobycia podręcznikiem wprowadzającym.
źródło
Wydaje mi się, że podręcznik „Computational Intelligence” jest niezwykle pomocny.
źródło
Programming Collective Intelligence omawia to w kontekście algorytmów wyszukiwania i rankingu. Również w dostępnym tutaj kodzie (w rozdziale 4) koncepcje omówione w książce są zilustrowane na przykładzie Pythona.
źródło
Zgadzam się z innymi ludźmi, którzy powiedzieli, że studiowanie biologii nie jest dobrym punktem wyjścia ... ponieważ jest wiele nieistotnych informacji z biologii. Nie musisz rozumieć, jak działa neuron, aby odtworzyć jego funkcjonalność - wystarczy symulować jego działanie. Polecam "How To Create A Mind" Raya Kurzweila - wchodzi w aspekt biologii, który jest istotny dla modeli obliczeniowych (tworzenie symulowanego neuronu poprzez łączenie kilku wejść i odpalanie po osiągnięciu progu), ale ignoruje nieistotne rzeczy, takie jak jak neuron w rzeczywistości dodaje dane wejściowe do skóry. (Na przykład użyjesz + i nierówności do porównania z progiem)
Powinienem również zwrócić uwagę, że książka nie jest tak naprawdę o „tworzeniu umysłu” - skupia się tylko na heirarchicznym rozpoznawaniu wzorców / korze nowej. Wydaje mi się, że ogólny temat poruszany jest od lat 80. XX wieku, więc istnieje wiele starszych książek, które prawdopodobnie zawierają nieco przestarzałe formy tych samych informacji. Czytałem starsze dokumenty, w których stwierdzono, że na przykład system wizyjny jest wielowarstwowym rozpoznawaniem wzorców. Twierdzi, że dotyczy to całej kory nowej. Potraktuj też jego „przewidywania” z przymrużeniem oka - jego szacunki dotyczące sprzętu są prawdopodobnie dość dokładne, ale myślę, że nie docenia, jak skomplikowane mogą być proste zadania (np. Prowadzenie samochodu). To prawda, widział duży postęp (i był częścią tego), ale nadal uważam, że jest zbyt optymistyczny. Istnieje duża różnica między samochodami AI, które mogą z powodzeniem przejechać milę w 90% przypadków, w porównaniu z 99,9 +%, które może zrobić człowiek. Nie spodziewam się, że jakakolwiek sztuczna inteligencja będzie naprawdę prowadziła mnie przez co najmniej 20 lat ... (nie liczę samochodów BMW torowych, które muszą być `` trenowane '' na prawdziwym torze, ponieważ tak naprawdę nie grają gra)
Jeśli masz już podstawowe pojęcie o tym, czym jest sztuczna inteligencja i jak można ją modelować, możesz przejść do czegoś bardziej technicznego.
źródło
Jeśli chcesz szybko dowiedzieć się o zastosowaniach niektórych koncepcji sieci neuronowych w prawdziwym symulatorze, jest świetna książka online (obecnie wiki) zatytułowana „Computational Cognitive Neuroscience” pod adresem http://grey.colorado.edu/CompCogNeuro/index. php / CCNBook / Main
Książka jest używana w szkołach jako podręcznik i prowadzi przez wiele różnych obszarów mózgu, od pojedynczych neuronów po funkcje wykonawcze wyższego rzędu.
Ponadto każda sekcja jest wzbogacona o „projekty” prac domowych, które są już niedostępne. Wystarczy pobrać, postępować zgodnie z instrukcjami i zasymulować wszystko, o czym mówił rozdział. Oprogramowanie, którego używają, Emergent, jest trochę skomplikowane, ale niesamowicie solidne: wydaje mi się, że jest to produkt ponad 10 lat pracy.
Przeszedłem przez to na studiach licencjackich w zeszłym semestrze i było świetnie. Przeprowadzi Cię przez wszystko krok po kroku
źródło