Kurs
AI klasy 10: Uczenie głębokie i multimodalna AI
Buduj i trenuj sieci neuronowe w PyTorch dla obrazów, tekstu i dźwięku.
Rób lekcje po kolei. Na końcu umiesz obliczyć wyjście neuronu, porównać aktywacje i napisać przejście w przód w NumPy. Umiesz wybrać stratę, wyjaśnić spadek gradientu i propagację wsteczną oraz napisać pełną pętlę treningu i testu w PyTorch. Umiesz wytrenować CNN, żeby klasyfikowała obrazy, wytrenować klasyfikator sentymentu, żeby odróżniał pozytywne recenzje od negatywnych, wyjaśnić, jak atencja waży inne tokeny, i klasyfikować krótkie klipy dźwięku. Umiesz zmniejszać przeuczenie, dostroić model wstępnie wytrenowany do nowych klas, grupować błędy i znajdować ich przyczynę oraz przedstawić monitor dzikich zwierząt na obrazach niewidzianych wcześniej.
Jak używać tych lekcji
- Zacznij od lekcji oznaczonej Zrób to. Idź dalej, gdy potrafisz sam zrobić wiersz pod tytułem.
- Najpierw zagraj w Gry. Potem zrób Quiz. 8 z 10 dobrych, żeby zaliczyć. Karty pracy są na papierze. Odpowiedzi są na dole.
- Każda lekcja opiera się na poprzedniej. Zapisuj każdą sesję treningu: ustawienia, krzywą straty i wynik testu.
- Lekcje z kodem używają Pythona i PyTorch w darmowym notesie online z GPU. Wystarczą małe modele i małe zbiory danych. Używaj tylko otwartych zbiorów, których wolno ci używać, i nigdy nie trenuj na zdjęciach ludzi bez ich zgody.
Każda lekcja ma gry, quiz i karty pracy.
0 z 36
Podstawy sieci neuronowych
- 1NeuronyObliczaj wyjście neuronu z wejść, wag i obciążenia.
- Zapisz sumę ważoną plus obciążenie.
- Oblicz ją ręcznie dla 3 wejść.
- Oblicz ją w kodzie iloczynem skalarnym.
- 2AktywacjePorównuj aktywacje ReLU, sigmoid i softmax.
- Narysuj każdą aktywację.
- Wyjaśnij, dlaczego sieć potrzebuje nieliniowej aktywacji.
- Użyj softmax, żeby zamienić wyniki na prawdopodobieństwa.
- 3Warstwy i sieciUkładaj warstwy w sieć.
- Zapisz warstwę jako mnożenie macierzy.
- Śledź kształt danych w każdej warstwie.
- Policz parametry sieci.
- 4Mała siećNapisz przejście w przód w NumPy dla małej sieci.
- Zbuduj sieć o 2 warstwach w NumPy.
- Przepuść przez nią grupę wejść.
- Sprawdź kształt wyjścia.
Trenowanie sieci neuronowych
- 5StrataWybierz stratę do zadania i oblicz ją.
- Użyj błędu średniokwadratowego do regresji.
- Użyj entropii krzyżowej do klasyfikacji.
- Powiedz, co znaczy spadająca strata.
- 6Spadek gradientuWyjaśniaj, jak gradienty przesuwają wagi w dół.
- Znajdź nachylenie krzywej straty.
- Rób kroki ze współczynnikiem uczenia.
- Zobacz, co się dzieje, gdy współczynnik jest za duży albo za mały.
- 7Propagacja wstecznaŚledź, jak błąd płynie wstecz przez sieć w propagacji wstecznej.
- Użyj reguły łańcuchowej na małej sieci.
- Oblicz jeden gradient ręcznie.
- Sprawdź go różniczkowaniem automatycznym.
- 8Trenuj siećTrenuj małą sieć i narysuj stratę.
- Trenuj minipartiami.
- Narysuj stratę treningu i stratę walidacji.
- Zatrzymaj się, gdy strata walidacji przestaje się poprawiać.
Szkielety uczenia głębokiego
- 9TensoryTwórz i zmieniaj kształt tensorów PyTorch.
- Utwórz tensory i sprawdź ich kształt oraz typ.
- Zmień kształt, ułóż w stos i wytnij.
- Przenieś tensory na GPU.
- 10ModułyZbuduj model z modułów torch.nn.
- Utwórz podklasę nn.Module.
- Użyj warstw Linear i aktywacji.
- Wypisz model i liczbę parametrów.
- 11OptymalizatoryTrenuj optymalizatorami SGD i Adam.
- Użyj zero_grad, backward i step.
- Porównaj SGD i Adama na jednym zadaniu.
- Użyj harmonogramu współczynnika uczenia.
- 12Skrypt treninguNapisz pełną pętlę treningu i testu.
- Wczytaj dane przez DataLoader.
- Trenuj, waliduj i testuj.
- Zapisz najlepszy model.
Widzenie komputerowe
- 13Obrazy jako tensoryWczytuj obrazy jako tensory i normalizuj je.
- Wczytaj obraz jako kanały, wysokość i szerokość.
- Zmień rozmiar i znormalizuj.
- Pokaż grupę jako siatkę.
- 14SplotyWyjaśniaj, jak filtr splotu znajduje krawędzie.
- Przesuń ręcznie filtr 3×3 po obrazie.
- Zastosuj filtry krawędzi w kodzie.
- Wyjaśnij stride, padding i pooling.
- 15CNNZbuduj konwolucyjną sieć neuronową, czyli CNN.
- Ułóż warstwy splotu, aktywacji i poolingu.
- Spłaszcz i dodaj głowę klasyfikatora.
- Śledź kształty przez sieć.
- 16Klasyfikator obrazówTrenuj CNN, żeby klasyfikowała obrazy.
- Trenuj na małym zbiorze obrazów.
- Podaj dokładność testu.
- Pokaż obrazy, które klasyfikator pomylił.
Przetwarzanie języka naturalnego
- 17TokenizacjaZamień tekst na tokeny i ID przez tokenizację.
- Porównaj tokeny słów i tokeny podsłów.
- Zbuduj słownik.
- Dopełniaj sekwencje do tej samej długości.
- 18EmbeddingiWyjaśniaj, jak embeddingi ustawiają podobne słowa blisko siebie.
- Użyj warstwy embeddingów.
- Znajdź słowa najbliższe danemu słowu.
- Narysuj embeddingi w 2 wymiarach.
- 19Modele tekstuZbuduj model tekstu, który czyta ciąg tokenów.
- Uśrednij embeddingi do jednego wektora.
- Użyj prostej warstwy rekurencyjnej.
- Porównaj oba.
- 20Klasyfikator sentymentuTrenuj klasyfikator sentymentu, żeby odróżniał pozytywne recenzje od negatywnych.
- Trenuj na zbiorze recenzji.
- Podaj dokładność, precyzję i czułość.
- Znajdź recenzje, które oszukują model, na przykład sarkazm.
Transformery
- 21AtencjaWyjaśniaj, jak atencja waży inne tokeny.
- Wyjaśnij query, key i value.
- Oblicz wagi atencji dla krótkiego zdania.
- Powiedz, dlaczego atencja pomaga przy znaczeniu na dużą odległość.
- 22Bloki transformeraNazywaj części bloku transformera.
- Nazwij multi-head attention, feed-forward i warstwy normalizacji.
- Wyjaśnij połączenia rezydualne.
- Wyjaśnij kodowania pozycji.
- 23Modele wstępnie wytrenowaneUżyj wstępnie wytrenowanego transformera do zadania.
- Wczytaj model wstępnie wytrenowany i tokenizer.
- Klasyfikuj nim tekst.
- Porównaj go ze swoim klasyfikatorem sentymentu.
- 24Mapy atencjiCzytaj wizualizację mapy atencji.
- Narysuj wagi atencji jako mapę ciepła.
- Znajdź, na które słowa token zwraca uwagę.
- Powiedz, dlaczego atencja nie jest pełnym wyjaśnieniem.
Dźwięk i multimodalna AI
- 25Dźwięk jako daneZamień dźwięk na przebieg fali i spektrogram.
- Wczytaj dźwięk i narysuj przebieg fali.
- Wyjaśnij częstotliwość próbkowania.
- Zrób spektrogram.
- 26Klasyfikator dźwiękuKlasyfikuj krótkie klipy dźwięku.
- Traktuj spektrogramy jak obrazy.
- Wytrenuj na nich CNN.
- Testuj z szumem tła.
- 27Wejścia multimodalneWyjaśniaj, jak model łączy multimodalne wejścia obrazu i tekstu.
- Wyjaśnij osobne enkodery dla każdego wejścia.
- Wyjaśnij wspólną przestrzeń embeddingów.
- Nazwij 3 aplikacje multimodalne.
- 28Obraz i tekstDopasuj obrazy do podpisów tekstowych modelem wstępnie wytrenowanym.
- Osadź obrazy i podpisy.
- Uszereguj podpisy dla każdego obrazu.
- Szukaj obrazów zapytaniem tekstowym.
Ulepszanie modelu
- 29RegularyzacjaZmniejszaj przeuczenie regularyzacją: dropoutem i zanikiem wag.
- Dodaj dropout.
- Dodaj zanik wag.
- Porównaj krzywe walidacji.
- 30Augmentacja danychDodaj augmentację danych: odbite i wykadrowane obrazy do zbioru treningowego.
- Zastosuj odbicia, kadrowanie i zmiany koloru.
- Rób augmentację danych tylko na zbiorze treningowym.
- Zmierz zmianę dokładności testu.
- 31Uczenie transferoweDostrój model wstępnie wytrenowany do nowych klas przez uczenie transferowe.
- Zamroź warstwy wstępnie wytrenowane.
- Wymień głowę i wytrenuj ją.
- Odmroź i dostrój małym współczynnikiem uczenia.
- 32Analiza błędówGrupuj błędy i znajdź ich przyczynę.
- Czytaj macierz pomyłek dla wielu klas.
- Podziel błędy na grupy.
- Wybierz poprawkę dla największej grupy.
Projekt uczenia głębokiego
- 33Dane o dzikich zwierzętachWybierz i podziel otwarty zbiór obrazów dzikich zwierząt.
- Wybierz otwarty zbiór fotopułapek albo dzikich zwierząt.
- Wybierz od 5 do 10 gatunków.
- Podziel według miejsca, żeby test był uczciwy.
- 34Dostrój modelDostrój klasyfikator obrazów do klas dzikich zwierząt.
- Dostrój model wstępnie wytrenowany.
- Śledź dokładność walidacji.
- Zapisz najlepszy checkpoint.
- 35Interfejs demoZbuduj interfejs demo, który pokazuje przewidywania na wgranych obrazach.
- Przyjmij wgrany obraz.
- Pokaż 3 najlepsze gatunki i ich wyniki.
- Pokaż „nie wiem”, gdy pewność jest niska.
- 36Inteligentny monitor dzikich zwierzątPrzedstaw dokładność monitora dzikich zwierząt na obrazach niewidzianych wcześniej i główne błędy.
- Podaj dokładność na obrazach niewidzianych wcześniej.
- Pokaż główne błędy i ich przyczyny.
- Powiedz, co zmieniłbyś dalej.