Podstawy matematyczne dla sieci neuronowych

11

Nie jestem pewien, czy jest to odpowiednie dla tej witryny, ale rozpoczynam studia magisterskie z informatyki (BS w matematyce stosowanej) i chcę uzyskać solidne doświadczenie w uczeniu maszynowym (najprawdopodobniej zamierzam doktorat). Jednym z moich sub-zainteresowań są sieci neuronowe.

Jakie jest dobre podłoże matematyczne dla ANN? Podobnie jak w innych obszarach uczenia maszynowego, zakładam, że algebra liniowa jest ważna, ale jakie inne obszary matematyki są ważne?

Planuję czytać Sieci neuronowe: Systematyczne wprowadzenie lub Sieci neuronowe do rozpoznawania wzorców . Czy ktoś ma jakieś uwagi lub alternatywne rekomendacje?

Steve P.
źródło

Odpowiedzi:

10

Drugie odniesienie, które podajesz, jest, moim zdaniem, wciąż najlepszą książką na temat NN, nawet jeśli może być nieco przestarzałe i nie zajmuje się nowszymi rozwiązaniami, takimi jak głębokie architektury. Zrozumiesz podstawy i poznasz wszystkie podstawowe pojęcia związane z uczeniem maszynowym.

Jeśli przejrzysz książkę, będziesz potrzebować algebry liniowej, rachunku wielowymiarowego i podstawowych pojęć statystycznych (prawdopodobieństwa warunkowe, twierdzenie Bayesa i znajomość rozkładów dwumianowych). W niektórych punktach dotyczy rachunku wariacyjnego. Dodatek dotyczący rachunku zmian powinien wystarczyć.

jpmuc
źródło
Właśnie z tym skończyłem po wielu zaleceniach, byłem po prostu bardzo niezdecydowany, ponieważ książka Bishopa o uczeniu maszynowym, choć przez niektórych zapowiadana, ma być bardzo trudna do nauczenia się, jeśli jeszcze jej nie znasz .
Steve P.
5

Składnik matematyczny prawdopodobnie obejmowałby co najmniej zaawansowaną algebrę, trygon, algebrę liniową i rachunek różniczkowy.

Ale pomyśl także nieszablonowo. Niezbędne są również dobre umiejętności programistyczne, w tym solidne podstawy algorytmów (Coursera ma dwa kursy na temat algorytmów) i biegłość w MatLab, Octave lub R (oraz w elastycznym języku programowania, takim jak Java, C / C ++ lub Python). Wspominam o nich w odpowiedzi na twoje pytanie, ponieważ moim zdaniem są to bardziej umiejętności „matematyki stosowanej” - i są fundamentalne w tłumaczeniu teorii i implementacji stosowanych.

Brałem udział w wielu kursach Coursera związanych z uczeniem maszynowym (i zgadzam się z jednym innym plakatem, że Machine Learning Prof. Ng jest fantastyczny) i NN. Kilka miesięcy temu Coursera zorganizowała kurs sieci neuronowych (nie jestem pewien, czy nadal jest dostępny) przez University of Toronto i Geoffrey Hinton. Świetny kurs i wymagane: znajomość rachunku różniczkowego, biegłości w Octave (klon typu MatLab typu open source), dobry projekt algorytmiczny (dla skalowalności) i algebra liniowa.

Możesz także (choć nie matematyka per se) pomyśleć o takich tematach, jak przetwarzanie języka naturalnego (w celu wyodrębnienia cech itp.), Wyszukiwanie informacji, statystyki / teoria prawdopodobieństwa, a także inne obszary uczenia maszynowego (aby uzyskać więcej teorii). Najnowsze teksty, takie jak Podstawy uczenia maszynowego (Mohri) lub Wprowadzenie do uczenia maszynowego (Alpaydin), mogą być pomocne w pokonywaniu złożoności teorii do implementacji (moim zdaniem może to być trudny skok) - i oba teksty są bardzo matematyczne, zwłaszcza Fundacje.

Ponownie myślę, że wszystkie odnoszą się do matematyki i NN, ale w szerszym znaczeniu.

SaB
źródło
Dzięki. Ukończyłem matematykę stosowaną jako licencjat (i mam duże doświadczenie w programowaniu), więc mam to wszystko, z wyjątkiem rygorystycznego kursu algebry abstrakcyjnej, którego sam uczę ... Skończyłem z Neural Networks for Pattern Uznanie autorstwa Bishopa. Wszystkim zainteresowanym gorąco polecam ...
Steve P.
2

Bardzo dobrą książką (niezbyt wprowadzającą, ale nie zakładającą wcześniejszej wiedzy na temat sieci neuronowych) jest Brian Ripley: „Rozpoznawanie wzorców i sieci neuronowe”, które, jak powiedziałbym, zawierają wiele z jego wstępów. Z BS w stosowanej matematyce powinieneś być przygotowany.

kjetil b halvorsen
źródło
2

GŁÓWNY temat to statystyki

rachunek różniczkowy

numeryczna algebra liniowa (macierze rzadkie itp.) Optymalizacja numeryczna (opadanie gradientu itp., programowanie kwadratowe)

możesz przeczytać o procesach gaussowskich i wymaganej tam matematyce, spróbuj wykonać pewne klasy przetwarzania obrazu / przetwarzania języka naturalnego

seanv507
źródło
Jesienią biorę kurs NLP.
Steve P.,