Wszystkie lekcje

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

  1. 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.
  2. 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.
  3. 3Warstwy i sieciUkładaj warstwy w sieć.
    • Zapisz warstwę jako mnożenie macierzy.
    • Śledź kształt danych w każdej warstwie.
    • Policz parametry sieci.
  4. 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

  1. 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.
  2. 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.
  3. 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.
  4. 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

  1. 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.
  2. 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.
  3. 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.
  4. 12Skrypt treninguNapisz pełną pętlę treningu i testu.
    • Wczytaj dane przez DataLoader.
    • Trenuj, waliduj i testuj.
    • Zapisz najlepszy model.

Widzenie komputerowe

  1. 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ę.
  2. 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.
  3. 15CNNZbuduj konwolucyjną sieć neuronową, czyli CNN.
    • Ułóż warstwy splotu, aktywacji i poolingu.
    • Spłaszcz i dodaj głowę klasyfikatora.
    • Śledź kształty przez sieć.
  4. 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

  1. 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.
  2. 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.
  3. 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.
  4. 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

  1. 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ść.
  2. 22Bloki transformeraNazywaj części bloku transformera.
    • Nazwij multi-head attention, feed-forward i warstwy normalizacji.
    • Wyjaśnij połączenia rezydualne.
    • Wyjaśnij kodowania pozycji.
  3. 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.
  4. 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

  1. 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.
  2. 26Klasyfikator dźwiękuKlasyfikuj krótkie klipy dźwięku.
    • Traktuj spektrogramy jak obrazy.
    • Wytrenuj na nich CNN.
    • Testuj z szumem tła.
  3. 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.
  4. 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

  1. 29RegularyzacjaZmniejszaj przeuczenie regularyzacją: dropoutem i zanikiem wag.
    • Dodaj dropout.
    • Dodaj zanik wag.
    • Porównaj krzywe walidacji.
  2. 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.
  3. 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.
  4. 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

  1. 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.
  2. 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.
  3. 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.
  4. 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.