Uczenie maszynowe (ML) to jedna z najszybciej (jeśli nie najszybciej) rozwijających się dziedzin technologii. Coraz więcej osób chce uczyć się uczenia maszynowego, a dostępnych jest mnóstwo zasobów, które mogą Cię zdezorientować, jeśli jesteś nowy w tej dziedzinie.

Najczęściej uczę się języka angielskiego samodzielnie i przeprowadziłem wiele badań, aby znaleźć najlepsze zasoby do nauki. Jak miałbym nauczyć się uczenia maszynowego, gdybym miał szansę nauczyć się go od nowa w 2023 roku?

Ludzie uczą się inaczej. Dlatego ten artykuł nie jest przewodnikiem po nauce ML, którym każdy powinien się kierować, ale sposobem, w jaki chcę ponownie wejść w tę dziedzinę. Być może dobrze będzie, jeśli poznasz moją przeszłość, aby wiedzieć, czy moja rekomendacja Ci odpowiada.

Moje tło

Nie jestem ekspertem ML. Jestem studentem studiów licencjackich na National University of Singapore na kierunku inżynieria komputerowa.

Wcześniej pracowałem jako stażysta ML Engineer w startupie w Singapurze, a także zapewniłem sobie stażystę Data Science w innym startupie w Paryżu (mam czas na regularne pisanie, ponieważ wiza jest w toku 😬).

Po raz pierwszy zetknąłem się z ML podczas przerwy zimowej na pierwszym roku studiów, biorąc udział w specjalizacji Coursera Deep Learning prowadzonej przez Andrew Ng, jednego z najpopularniejszych pionierów sztucznej inteligencji. Przed przystąpieniem do kursu MOOC miałem przyzwoitą wiedzę z rachunku różniczkowego, algebry liniowej, statystyki i programowania w C i Pythonie.

Zatem ten artykuł będzie dla Ciebie najbardziej odpowiedni, jeśli masz takie samo doświadczenie jak ja w czasach, gdy po raz pierwszy uczyłem się ML. Innymi słowy:

  • Nie podjąłem żadnej ważnej sprawy ani nie przeczytałem żadnych szczegółowych książek na temat ML
  • Naucz się kodować w Pythonie: poza bardzo podstawowymi rzeczami powinieneś znać pewne koncepcje programowania obiektowego (jak projektować klasy, jak implementować dziedziczenie w Pythonie)
  • Znasz w pewnym stopniu główne biblioteki naukowe Pythona: numpy, pandas i matplotlib
  • Posiadaj podstawową wiedzę matematyczną, zwłaszcza algebrę liniową (nie szkodzi, jeśli nie wiesz, ale zrozumienie operacji na wektorach i macierzach pomoże ci zrozumieć podstawowe mechanizmy algorytmów ML). Jeśli chcesz nauczyć się algebry liniowej, sprawdź MIT 18.06 nauczany przez profesora Gilberta Stranga, prawdopodobnie najlepszy kurs algebry liniowej w historii.

Następujące książki i kursy nie są wymienione w kolejności. Możesz uczyć się ich w dowolnej kolejności lub uczyć się ich wielu jednocześnie. Całkowicie dobrze jest pominąć niektóre, ponieważ nauczenie się ich wszystkich zajmie Ci dużo czasu.

Wprowadzenie CS50 do sztucznej inteligencji w języku Python

CS50 nie trzeba już przedstawiać. To stacjonarny i internetowy kurs wprowadzający z informatyki prowadzony przez profesora Davida J. Malana na Uniwersytecie Harvarda. Oprócz oryginalnego kursu CS50 oferuje również inne ścieżki edukacyjne. Jednym z nich jest „Sztuczna inteligencja, czyli CS50 AI”.

Czekaj, co? Czy powinniśmy uczyć się ML zamiast AI?

Masz rację. Ten kurs nie dotyczy konkretnie uczenia maszynowego, ale szeroki przegląd różnych tematów związanych ze sztuczną inteligencją pomoże Ci na dłuższą metę.

CS50 AI obejmuje różnorodne koncepcje i algorytmy leżące u podstaw współczesnej sztucznej inteligencji. Najlepszą rzeczą w tym kursie jest to, że będziesz miał szansę ubrudzić sobie ręce. Musisz wykonywać 1–2 projekty tygodniowo i łącznie przez 7 tygodni, podczas których będziesz wdrażać określone algorytmy/koncepcje nauczane na wykładzie, aby zbudować silniki do gier, narzędzie do rozwiązywania krzyżówek lub model klasyfikacji obrazów.

Rozwiązanie wszystkich projektów zajęło mi trochę czasu, ale było warto.

A kurs jest całkowicie bezpłatny. Aby uzyskać certyfikat Edx, musisz zapłacić, ale cała zawartość jest dostępna na stronie internetowej CS50.

Specjalizacja Andrew Ng w zakresie uczenia maszynowego (Coursera)

„Specjalizacja uczenia maszynowego” to rozszerzona wersja kursu Coursera Machine Learning, który był jednym z najpopularniejszych zajęć ML online prowadzonych pierwotnie na Uniwersytecie Stanforda przez Andrew Ng i składający się z 3 kursów:

  • Nadzorowane uczenie maszynowe: regresja i klasyfikacja
  • Zaawansowane algorytmy uczenia się
  • Uczenie się bez nadzoru, rekomendacje, uczenie się przez wzmacnianie

W trakcie tej specjalizacji poznasz podstawy ML i sposoby tworzenia aplikacji AI w świecie rzeczywistym. W porównaniu z innymi wymienionymi tutaj zasobami, ta specjalizacja jest nieco obciążona teorią, ale pomoże ci nie tylko dowiedzieć się, jak działają algorytmy, ale także dlaczego są implementowane w ten sposób.

Jedną z rzeczy, które szczególnie podobają mi się w tej specjalizacji, są opcjonalne laboratoria. Chociaż są one opcjonalne i nawet jeśli na nie spojrzysz, nie ma zbyt wielu rzeczy do zrobienia. Poświęć jednak trochę czasu na zapoznanie się z kodem źródłowym tych laboratoriów. Są dla mnie niezwykle przydatne.

Ponieważ jest on hostowany na platformie Coursera, dostęp do większości treści można uzyskać w trybie audytu. Jeśli chcesz mieć pełny dostęp i ukończyć kursy, aby uzyskać certyfikat, ale nie masz pieniędzy, aby za to zapłacić, dostępna jest również pomoc finansowa.

Praktyczne głębokie uczenie się dla programistów autorstwa fast.ai

Praktyczne głębokie uczenie się dla programistów, prowadzone przez Jeremy’ego Howarda, byłego prezesa Kaggle i współzałożyciela fast.ai, to praktyczne wprowadzenie do stosowania głębokiego uczenia się i uczenia maszynowego do rozwiązywania praktycznych problemów.

Kurs oparty jest na książceDeep Learning for Coders with fastai & Pytorch, która jest bezpłatnie dostępna online w formie „Notatników Jupyter”.

Bez wchodzenia w teorię, Deep Learning for Coders wprowadza Cię w najnowocześniejsze modele i uczy, jak trenować modele za pomocą najnowszych technik głębokiego uczenia się.

Przy dobrym poziomie abstrakcji dowiesz się nie tylko, jak trenować, ale także jak wdrażać i przekształcać modele w aplikacje internetowe, jak poprawić dokładność, szybkość i niezawodność modeli oraz jakie są etyczne implikacje podczas pracy w tej dziedzinie.

Jak skomentował Peter Norvig, dyrektor ds. badań w Google, „w książce przedstawiono najpierw przykłady, a jedynie teorię w kontekście konkretnych przykładów. Dla większości ludzi jest to najlepszy sposób na naukę” i „jedno z najlepszych źródeł, dzięki którym programista może zdobyć biegłość w głębokim uczeniu się”.

Praktyczne uczenie maszynowe za pomocą Scikit-Learn, Keras i TensorFlow — Aurélien Géron

Jeśli nie masz czasu na przeczytanie wielu książek lub zapisanie się na wiele kursów online, mam dla Ciebie następującą radę: przeczytaj przykłady zawarte w tej książce i postępuj zgodnie z nimi. Dla mnie jest to najlepsze praktyczne wprowadzenie do ML.

Praktyczne uczenie maszynowe”, napisane przez Aurélien Géron, który wcześniej kierował zespołem zajmującym się klasyfikacją wideo w YouTube, opisuje szeroką gamę technik, od prostej regresji liniowej po skomplikowane generatywne sieci kontradyktoryjne lub transformatory.

Książka rozpoczyna się od ogólnego wyjaśnienia danej dziedziny. Następnie przedstawia ustrukturyzowany sposób rozwiązywania większości problemów, z którymi się spotkasz, poprzez realizację kompleksowego projektu. W pozostałej części książki opisano bardziej szczegółowo różne metody uczenia się i modele rozwiązywania różnych problemów. Nauczy Cię również, jak szkolić i wdrażać modele na dużą skalę przy użyciu najnowszych technologii.

Trzecie wydanie książki ukazało się w 2022 roku i zawierało wiele aktualizacji w porównaniu do poprzednich wydań. Jeśli więc dopiero zaczynasz przygodę z ML, natychmiast sięgnij po egzemplarz tej książki.

Chociaż wyżej wymienione zasoby obejmowały prawie wszystko, co musisz wiedzieć, aby zająć się tą dziedziną, większość tematów jest po prostu tworzona powierzchownie.

Jeśli chcesz zgłębić konkretny temat, taki jak widzenie komputerowe, przetwarzanie języka naturalnego lub MLOps, będziesz musiał znaleźć inne zasoby dla tych obszarów.

A ponieważ nowe odkrycia w dziedzinie ML są publikowane co miesiąc lub nadal znajdują się w laboratoriach badawczych, bardzo ważne jest, aby być na bieżąco, czytając artykuły lub zagłębiając się w kody źródłowe. Zajrzyj na paperswithcode.com, aby zapoznać się z trendami i najnowocześniejszymi badaniami nad ML oraz kodem do ich wdrożenia.

Napiszę więcej.