Dwa lata temu, zacząłem uczyć się uczenia maszynowego online na własną rękę. Dzieliłem się moją podróżą poprzez YouTube i mojego bloga. Nie miałem pojęcia, co robię. Nigdy wcześniej nie kodowałem, ale zdecydowałem, że chcę się nauczyć uczenia maszynowego.
Kiedy ludzie znajdują moją pracę, czasami sięgają po nią i zadają pytania. Nie mam wszystkich odpowiedzi, ale odpowiadam na tyle, na ile mogę. Najczęstsze pytanie, jakie dostaję, to „od czego zacząć?”. Kolejnym najczęstszym pytaniem jest „ile matematyki muszę znać?”
Odpowiedziałem na garść tych pytań dziś rano.
Ktoś powiedział mi, że zaczął uczyć się Pythona i chciał się dostać do uczenia maszynowego, ale nie wiedział, co robić dalej.
Uczyłem się Pythona, co powinienem zrobić dalej?
Złożyłem kilka kroków w odpowiedzi i kopiuję je tutaj. Możesz uznać je za szorstki zarys, aby przejść od niewiedzy, jak kodować do bycia praktykiem uczenia maszynowego.
Mój styl uczenia się to najpierw kod. Najpierw uruchom kod i naucz się teorii, matematyki, statystyki i prawdopodobieństwa, kiedy będziesz tego potrzebował, a nie wcześniej.
Pamiętaj, jeśli zaczynasz uczyć się uczenia maszynowego, może to być zniechęcające. Jest tego bardzo dużo. Nie spiesz się. Zapisz ten artykuł w zakładkach, abyś mógł się do niego odwoływać w miarę postępów.
Jestem uprzedzony do używania Pythona, ponieważ to jest to, od czego zacząłem i nadal używam. Możesz użyć czegoś innego, ale te kroki będą dotyczyły Pythona.
W mailu napisano, że zrobili już trochę Pythona. Ale ten krok jest dla kogoś, kto jest zupełnie nowy, jak również. Spędź kilka miesięcy ucząc się kodu Pythona w tym samym czasie, co różne koncepcje uczenia maszynowego. Będziesz potrzebował ich obu.
Podczas nauki kodu Pythona, ćwicz używanie narzędzi data science, takich jak Jupyter i Anaconda. Spędź kilka godzin majstrując przy nich, do czego służą i dlaczego powinieneś ich używać.
Źródła do nauki
- Elementy AI – przegląd głównych koncepcji sztucznej inteligencji i uczenia maszynowego.
- 6-krokowy przewodnik po projektach uczenia maszynowego – przegląd wielu praktycznych kroków, które możesz podjąć, aby zacząć używać uczenia maszynowego do rozwiązywania różnych problemów biznesowych.
- Python for Everybody na Coursera – naucz się Pythona od podstaw.
- Learn Python by freeCodeCamp – wszystkie główne koncepcje Pythona w jednym filmie.
- Anaconda Tutorial by Corey Schafer – naucz się Anacondy (czego będziesz używał do konfiguracji swojego komputera do nauki danych i uczenia maszynowego) w jednym filmie.
- Jupyter Notebook for Beginners Tutorial by Dataquest – rozpocznij pracę z Jupyter Notebooks w jednym artykule.
- Jupyter Notebook Tutorial by Corey Schafer – naucz się jak używać Jupyter Notebooks w jednym filmie.
Naucz się analizy danych, manipulacji & wizualizacji z Pandas, NumPy Matplotlib
Gdy już masz trochę umiejętności Pythona, będziesz chciał się nauczyć jak pracować z danymi i manipulować nimi.
Aby to zrobić, powinieneś zapoznać się z pandas, NumPy i Matplotlib.
Pandas pomoże Ci pracować z ramkami danych, są to tabele informacji, takie jak w pliku Excel. Pomyśl o wierszach i kolumnach. Ten rodzaj danych nazywany jest danymi strukturalnymi.
NumPy pomoże Ci wykonywać operacje numeryczne na danych. Uczenie maszynowe zamienia wszystko, co przychodzi ci do głowy, w liczby, a następnie znajduje wzorce w tych liczbach.
Matplotlib pomoże ci stworzyć wykresy i wizualizacje twoich danych. Zrozumienie stosu liczb w tabeli może być trudne dla ludzi. Dużo bardziej wolimy zobaczyć wykres z linią przechodzącą przez niego. Robienie wizualizacji jest ważną częścią komunikowania swoich odkryć.
Źródła do nauki
- Applied Data Science with Python na Coursera – zacznij dostosowywać swoje umiejętności Pythona do nauki o danych.
- pandas w 10 minut – szybki przegląd biblioteki pandas i niektóre z jej najbardziej użytecznych funkcji.
- Python Pandas Tutorial by Codebasics – seria filmów na YouTube przedstawiająca wszystkie najważniejsze możliwości biblioteki pandas.
- NumPy Tutorial by freeCodeCamp – naucz się NumPy w jednym filmie na YouTube.
- Matplotlib Tutorial by Sentdex – seria filmów na YouTube przedstawiająca wszystkie najbardziej przydatne funkcje Matplotlib.
Naucz się uczenia maszynowego z scikit-learn
Mając już umiejętności manipulacji i wizualizacji danych, czas znaleźć w nich wzorce.
Scikit-learn jest biblioteką Pythona z wbudowanymi wieloma pomocnymi algorytmami uczenia maszynowego gotowymi do użycia.
Wyposażona jest również w wiele innych pomocnych funkcji, które pozwalają sprawdzić, jak dobrze nauczył się twój algorytm uczenia.
Skup się na nauce, jakie są rodzaje problemów z uczeniem maszynowym, takie jak klasyfikacja i regresja, oraz jakie algorytmy są dla nich najlepsze. Nie chodzi o zrozumienie każdego algorytmu od podstaw, naucz się najpierw jak je stosować.
Źródła do nauki
- Machine Learning in Python with scikit-learn by Data School – playlista na YouTube, która uczy wszystkich głównych funkcjonalności scikit-learn.
- A Gentle Introduction to Exploratory Data Analysis by Daniel Bourke – połącz to, czego nauczyłeś się w powyższych dwóch krokach w projekt. Zawiera kod i wideo, które pomogą ci wystartować w pierwszym konkursie Kaggle.
- Daniel Formosso’s exploratory data analysis notebook with scikit-learn – bardziej dogłębna wersja powyższego zasobu, zawierająca kompletny projekt wykorzystujący powyższe.
Naucz się głębokiego uczenia sieci neuronowych
Głębokie uczenie i sieci neuronowe działają najlepiej na danych bez dużej struktury.
Dataframe mają strukturę, obrazy, filmy, pliki audio i tekst w języku naturalnym mają strukturę, ale nie tak bardzo.
Tidbit: W większości przypadków będziesz chciał użyć zespołu drzew decyzyjnych (Random Forests lub algorytm taki jak XGBoost) dla danych strukturalnych i będziesz chciał użyć głębokiego uczenia lub uczenia transferowego (biorąc wstępnie wytrenowaną sieć neuronową i używając jej na swoim problemie) dla danych niestrukturalnych.
Możesz rozpocząć notatkę z małymi ciekawostkami takimi jak to dla siebie i zbierać je w miarę postępów.
Źródła do nauki
- deeplearning.ai autorstwa Andrew Ng na Coursera – głębokie uczenie się prowadzone przez jednego z najlepszych w biznesie.
- Kursy głębokiego uczenia się fast.ai prowadzone przez Jeremy’ego Howarda – praktyczne podejście do głębokiego uczenia się prowadzone przez jednego z najlepszych praktyków w branży.
Extra curriculum & książki
Po drodze byłoby idealnie, gdybyś ćwiczył to, czego się uczysz, z małymi własnymi projektami. Nie muszą to być wyszukane rzeczy zmieniające świat, ale coś, o czym można powiedzieć „Zrobiłem to z X”. A następnie podziel się swoją pracą poprzez Github lub wpis na blogu. Github służy do pokazania kodu, post na blogu służy do pokazania, jak można komunikować swoją pracę. Powinieneś dążyć do opublikowania jednego z nich dla każdego projektu.
Najlepszym sposobem na ubieganie się o pracę jest zrobienie już rzeczy, których ona wymaga. Dzielenie się swoją pracą to świetny sposób, aby pokazać potencjalnemu przyszłemu pracodawcy, do czego jesteś zdolny.
Po zapoznaniu się z niektórymi z różnych frameworków do uczenia maszynowego i głębokiego uczenia się, możesz spróbować ugruntować swoją wiedzę, budując je od podstaw. Nie zawsze będziesz musiał to robić w produkcji lub w roli uczenia maszynowego, ale wiedza o tym, jak rzeczy działają od wewnątrz, pomoże ci budować na własnej pracy.
Źródła do nauki
- Jak rozpocząć własne projekty uczenia maszynowego autorstwa Daniela Bourke – rozpoczęcie własnych projektów może być trudne, ten artykuł daje ci kilka wskazówek.
- fast.ai deep learning from the foundations by Jeremy Howard – po przejściu z góry na dół, ten kurs pomoże Ci wypełnić luki od dołu do góry.
- Grokking Deep Learning autorstwa Andrew Traska – ta książka nauczy cię, jak budować sieci neuronowe od podstaw i dlaczego powinieneś wiedzieć, jak to zrobić.
- Te książki pomogą ci nauczyć się uczenia maszynowego autorstwa Daniela Bourke – wideo na YouTube przechodzące przez niektóre z najlepszych książek na temat uczenia maszynowego.
Jak długo na każdy krok?
Możesz spędzić 6 miesięcy lub więcej na każdym z nich. Nie spiesz się. Nauka nowych rzeczy wymaga czasu. Główną umiejętnością, którą budujesz jako data scientist lub inżynier uczenia maszynowego, jest to, jak zadawać dobre pytania danych, a następnie używać narzędzi, aby spróbować znaleźć odpowiedzi.
Niektóre dni będziesz czuł się tak, jakbyś się niczego nie uczył. Nawet cofając się. Zignoruj to. Nie porównuj swoich postępów z dnia na dzień. Porównuj swoje postępy rok do roku.
Gdzie mogę się nauczyć tych umiejętności?
Powyżej wymieniłem kilka zasobów, wszystkie są dostępne online i większość z nich jest darmowa, ale jest ich o wiele więcej.
DataCamp to świetne miejsce, aby zrobić większość z nich. W przeciwnym razie, moja baza danych zasobów uczenia maszynowego i sztucznej inteligencji zawiera dobre archiwum darmowych i płatnych materiałów edukacyjnych.
Pamiętaj, częścią bycia naukowcem danych lub inżynierem uczenia maszynowego jest rozwiązywanie problemów. Potraktuj swoje pierwsze zadanie jako dowiedzenie się więcej o każdym z kroków tutaj i stworzenie własnego programu nauczania, który pomoże Ci się ich nauczyć.
Jeśli chcesz wiedzieć, jak wygląda przykładowy, samodzielnie prowadzony program nauczania uczenia maszynowego, sprawdź mój Self-Created AI Masters Degree. To jest to, czego użyłem, aby przejść od zerowego kodowania do bycia inżynierem uczenia maszynowego w ciągu 9 miesięcy. Nie jest idealny, ale jest mój, dlatego zadziałał.
Co ze statystyką? Co z matematyką? Co z prawdopodobieństwem?
Nauczysz się tych rzeczy po drodze. Zacznij najpierw od kodu. Spraw, aby wszystko działało. Próba nauczenia się wszystkich statystyk, całej matematyki, całego prawdopodobieństwa przed uruchomieniem kodu jest jak próba zagotowania oceanu. To cię powstrzyma.
Żadna ze statystyk, matematyka i prawdopodobieństwo nie mają znaczenia, jeśli twój kod nie działa. Zrób coś działającego, a następnie użyj swoich umiejętności badawczych, aby dowiedzieć się, czy jest to poprawne.
Co z certyfikatami?
Certyfikaty są miłe, ale nie jesteś po nich. Nie popełniaj błędu, który ja popełniłem i nie myśl, że więcej certyfikatów równa się więcej umiejętności. Tak nie jest.