Czego muszę się uczyć do uczenia maszynowego?

9

Począwszy od ubiegłego roku studiowałem różne przedmioty, aby zrozumieć niektóre z najważniejszych tez uczenia maszynowego

S. Hochreiter i J. Schmidhuber. (1997). Długotrwała pamięć krótkotrwała . Obliczenia neuronowe, 9 (8), 1735-1780.

Jednak z uwagi na fakt, że nie mam żadnego wykształcenia matematycznego, zacząłem uczyć się takich przedmiotów

  • Rachunek różniczkowy
  • Rachunek wielowymiarowy
  • Analizy matematyczne
  • Algebra liniowa
  • Równania różniczkowe
  • Real Anaylsis (teoria miary)
  • Podstawowe prawdopodobieństwo i statystyka
  • Statystyka matematyczna

W tej chwili nie mogę powiedzieć, że skończyłem rygorystycznie studiować te przedmioty, ale wiem, z czym chcą poradzić sobie powyższe. Chodzi o to, że nie wiem, co muszę teraz zrobić. Istnieje wiele przedmiotów, które uczenie maszynowe wykorzystuje do rozwiązywania wielu problemów i nie wiem, jak je właściwie wykorzystać.

Na przykład uczenie się przez wzmacnianie jest obecnie jednym z najpopularniejszych tematów, w którym setki tysięcy badaczy prowadzą obecnie badania, aby dokonać przełomu w przekleństwie wymiarowości. Ale jako przyszły pracownik, który będzie pracował w firmach IT, zadanie na biurku nie byłoby czymś, czego się spodziewałem.

Czy ważne jest posiadanie własnej wiedzy specjalistycznej do pracy w terenie? Jeśli tak, to jakie przedmioty muszę teraz uczyć?

Dla Twojej wygody chcę dowiedzieć się więcej o procesie Markowa i procesie decyzyjnym Markowa.

Siły Wiatru
źródło
1
Powiedziałbym, że jeśli zrozumiałeś wszystko w tym dokumencie LSTM, to mniej więcej masz już wszystkie „warunki wstępne”, aby kontynuować swoją karierę w ML. Oczywiście znajdziesz nowe koncepcje (każdy je zna) na swój sposób, ale będziesz w stanie sobie z nimi poradzić (przeprowadzając własne badania). Procesy Markowa i MDP nie są tak naprawdę wielką sprawą, jeśli rozumiesz dokument LSTM.
nbro

Odpowiedzi:

4

Jako student studiów magisterskich w zakresie sztucznej inteligencji zdecydowanie radzę zapoznać się z podstawami uczenia maszynowego.

Aby to zrobić, możesz zdobyć dobrą książkę ( Machine Learning , Tom Mitchell, McGraw Hill, 1997) do samodzielnej teorii i praktyki, próbując kilku konkursów Kaggle .

Zasugerowałem książkę Mitchella, ponieważ jest on ekspertem w tej dziedzinie, a wiele kursów uczenia maszynowego korzysta z jego książki. Możesz również śledzić jego wideolekcje online

Na Kaggle można znaleźć wiele przydatnych samouczków (zwanych jako Notatniki), aby rozpocząć pracę z dostępnymi zestawami danych. Kilka samouczków na temat Titanic Challenge tutaj

Catalin Copil
źródło
5

W rzeczywistości nie potrzebujesz rygorystycznego badania tych przedmiotów, aby wdrożyć algorytmy uczenia maszynowego. Teorię prawdopodobieństwa należy rygorystycznie traktować w uczeniu maszynowym. Bardzo dobrą serię wykładów teorii prawdopodobieństwa można znaleźć tutaj:

Wprowadzenie do prawdopodobieństwa - nauka o niepewności

Ponadto wystarczyłby podstawowy kurs rachunku różniczkowego, w przypadku podstawowych wdrożeń tak naprawdę nie wymaga się zrozumienia rachunku wysokopoziomowego, chyba że chce się stworzyć dostosowane schematy aktualizacji masy lub sieci neuronowe z czymś nowym. Ale aby uzyskać intuicję na temat rachunku różniczkowego, sprawdź Khan Academy: Rachunek różniczkowy

Wystarczy podstawowa idea Algebry Liniowej, aby wizualizować rzeczy i uzyskać intuicję. Akademia Khan ma świetny kurs na ten temat, sugeruję, aby to sprawdzić: algebra liniowa

Ponieważ dla języków programowania Machine Learning lub NEural Nets najlepiej wdrożyć w Pythonie lub R, ponieważ wizualizacja danych i programowanie w nich jest dość łatwe.

Najważniejsze w implementacji sieci neuronowych i uczenia maszynowego jest praktyka, im więcej ćwiczysz, tym lepiej. Otrzymasz również intuicję na temat tego, co robisz podczas ćwiczeń. Tylko czytanie teorii i rozumienie pojęć nie pomoże. Musisz to wdrożyć w prawdziwym życiu. Jeśli chodzi o książkę, możesz zobaczyć moją odpowiedź tutaj:

Sprawdzone źródła teorii AI / narzędzia / aplikacje dla doświadczonego programisty nowego w tej dziedzinie?

DuttaA
źródło
3

Uważam, że modele statystyczne są bardzo pomocne. Jednak same statystyki nie wystarczą, potrzebujesz również solidnego tła w teorii prawdopodobieństwa.

Rozbłysk słoneczny
źródło
1

najpierw naucz się podstaw Pythona. Zacznij od twierdzenia Baye'a, a następnie przejdź do 1) funkcji gęstości prawdopodobieństwa 2) funkcji gęstości skumulowanej 3) funkcji ciągłych 4) centralnego twierdzenia o granicy.

syam
źródło
Poza tym, czy uważasz, że ważna jest nauka teorii prawdopodobieństwa absolwenta, aby zobaczyć tezę zaawansowanego uczenia maszynowego? Załóżmy również, że znam wszystkie powyższe kwestie (nie chcę być niegrzeczny, ale, szczerze mówiąc, wiem, jaka jest różnica między ciągłością a jednolitością ciągłości, pdf, cdf, mgf itp.) uważasz, że ważne jest, aby nauczyć się procesu markowa, aby stworzyć program na poziomie produkcji?
Windforces
1

Po pierwsze, krótkie omówienie mnie. Byłem studentem medycyny, który ukończył studia licencjackie z tytułem biofizyki. Po ciężkiej pracy i mądrym podejmowaniu decyzji jestem teraz inżynierem oprogramowania AI / ML z tytułem magistra informatyki (specjalizacja Machine Learning).

Czy ważne jest posiadanie własnej wiedzy specjalistycznej do pracy w terenie?

Tak, absolutnie, ale niekoniecznie w kontekście zawodowym. Nie musisz być zatrudniony jako inżynier oprogramowania do uczenia maszynowego, ale musisz wykazać się biegłością w tej dziedzinie. Co jest świetnym przejściem do drugiej części twojego pytania ...

Jeśli tak, to jakie przedmioty muszę teraz uczyć?

To nie jest jeden temat, na który powinieneś się skupić. Uczenie maszynowe jest kombinacją wielu różnych dziedzin i skoncentrowanie się na jednym z nich przed zanurzeniem się w bardziej szczegółową praktykę nie byłoby zbyt skuteczne. Zamiast tego samouczki i ćwiczenia to nazwa gry.

  • 3Blue1Brown na Youtube daje świetne tutoriale, szczególnie na temat sieci neuronowych
  • Khan Academy jest darem niebios, jeśli chodzi o samouczki matematyczne. Powiedziałbym, że najlepiej zacząć od algebry liniowej i prawdopodobieństwa / statystyki. Ale ostatecznie stosuje się również rachunek różniczkowy i równania różniczkowe.
  • Udacity to świetna strona z samouczkami, która oferuje nawet programy „nanodegree”, aby dać ci więcej doświadczenia w sztucznej inteligencji i uczeniu maszynowym. Jest darmowy, jeśli chcesz tylko oglądać filmy.
  • OpenAIGym to świetne miejsce do ćwiczenia Reinforcement Learning
  • Kaggle ma świetne samouczki na temat uczenia maszynowego, a ich konkursy stanowią doskonałą praktykę w nauczaniu nadzorowanym / bez nadzoru.

Uzupełnij swój rozwój teoretyczny i matematyczny o praktyczny rozwój i praktykę, aby osiągnąć najlepsze wyniki. Wspominasz o szczególnym skupieniu się na MDP, z którymi tutoriale Udacity i OpenAIGym byłyby świetną praktyką.

Jeśli jesteś zainteresowany dyplomem magisterskim, nie mogę wystarczająco polecić magisterskich studiów magisterskich Online Computer Science w Georgia Tech ( OMSCS ). Jest to świetna edukacja i (kiedy zapisałem się w 2015 roku) nie wymagałem GRE i kosztowałem tylko około 8000,00 $

SeeDerekEngineer
źródło
-1

Naucz się uczenia maszynowego w 3 miesiące

To jest program „Naucz się uczenia maszynowego za 3 miesiące” tego filmu autorstwa Siraja Ravala na Youtube

1. miesiąc

Algebra liniowa 1. tygodnia

https://www.youtube.com/watch?v=kjBOesZCoqc&index=1&list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab https://ocw.mit.edu/courses/mathematics/18-06-linear-algebra-spring-2010/

Tydzień 2 Rachunek całkowy

https://www.youtube.com/playlist?list=PLZHQObOWTQDMsr9K-rj53DwVRMYO3t5Yr

Prawdopodobieństwo 3 tygodnia

https://www.edx.org/course/introduction-probability-science-mitx-6-041x-2

Algorytmy tygodnia 4

https://www.edx.org/course/algorithm-design-analysis-pennx-sd3x

2. miesiąc

Tydzień 1

Dowiedz się python dla nauki danych

https://www.youtube.com/watch?v=T5pRlIbr6gg&list=PL2-dafEMk2A6QKz1mrk1uIGfHkC1zZ6UU

Matematyka inteligencji

https://www.youtube.com/watch?v=xRJCOz3AfYY&list=PL2-dafEMk2A7mu0bSksCGMJEmeddU_H4D

Wprowadzenie do Tensorflow

https://www.youtube.com/watch?v=2FmcHiLCwTU&list=PL2-dafEMk2A7EEME489DsI468AB0wQsMV

Tydzień 2

Wprowadzenie do ML (Udacity) https://eu.udacity.com/course/intro-to-machine-learning--ud120

Tydzień 3-4

Pomysły ML Project https://github.com/NirantK/awesome-project-ideas

Miesiąc 3 (głębokie uczenie się)

Tydzień 1

Wprowadzenie do głębokiego uczenia się https://www.youtube.com/watch?v=vOppzHpvTiQ&list=PL2-dafEMk2A7YdKv4XfKpfbTH5z6rEEj3

Tydzień 2

Głębokie uczenie się przez Fast.AI http://course.fast.ai/

Tydzień 3-4

Ponownie zaimplementuj projekty DL z mojego github https://github.com/llSourcell?tab=repositories


Dodatkowe zasoby:
- Osoby w ML do śledzenia na Twitterze

Ligade Maheshwar
źródło
1
Tak, mogę ci powiedzieć, dlaczego zanegowałem tę odpowiedź. 1) Nie sądzę, że możesz nauczyć się uczenia maszynowego w ciągu 3 miesięcy, studiując również warunki wstępne. 2) Każdy ma swoje tempo w nauce, więc ograniczenie nauki do 3 miesięcy nie jest dobrym pomysłem. 3) Łącząc ludzi z innymi źródłami, nie wyjaśniając dlaczego.
nbro
Nie możemy być zawodowcem PRO, ale przynajmniej Nuance, aby coś zrobić i zająć się konkurencją ML. Jeśli umieszczę link, wspomniałem tam, co otrzymacie z tego linku. Również każdy ma własne tempo nauki. Zgadzam się również z tym punktem, ale w ciągu tych trzech miesięcy możesz ubrudzić sobie ręce. To bardzo ogólna odpowiedź, biorąc pod uwagę, że nikt nie wie nic, ale chcą po prostu zacząć i zyskać pewność siebie, po czym mogą zacząć kopać głębiej.
Maheshwar Ligade
@nbro Jeśli zgadzam się z twoją tezą, każdy ma własne tempo uczenia się, wtedy przynajmniej kilka osób może skorzystać z tej odpowiedzi
Maheshwar Ligade
Ta odpowiedź dotyczy bardziej inżynierów, a nie badaczy i naukowców
Maheshwar Ligade