E-book details

Deep learning dla programistów. Budowanie aplikacji AI za pomocą fastai i PyTorch

Deep learning dla programistów. Budowanie aplikacji AI za pomocą fastai i PyTorch

Jeremy Howard, Sylvain Gugger

Ebook

Uczenie głębokie zmienia oblicze wielu branż. Ta rewolucja już się zaczęła, jednak potencjał AI i sieci neuronowych jest znacznie większy. Korzystamy więc dziś z osiągnięć komputerowej analizy obrazu i języka naturalnego, wspierania badań naukowych czy budowania skutecznych strategii biznesowych - wchodzimy do świata, który do niedawna był dostępny głównie dla naukowców. W konsekwencji trudno o źródła wiedzy, które równocześnie byłyby przystępne dla zwykłych programistów i miały wysoką wartość merytoryczną. Problem polega na tym, że bez dogłębnego zrozumienia działania algorytmów uczenia głębokiego trudno tworzyć dobre aplikacje.

Oto praktyczny i przystępny przewodnik po koncepcjach uczenia głębokiego, napisany tak, aby ułatwić zrozumienie najnowszych technik w tej dziedzinie bez znajomości wyższej matematyki. Książka daje znakomite podstawy uczenia głębokiego, a następnie stopniowo wprowadza zagadnienia sposobu działania modeli, ich budowy i trenowania. Pokazano w niej również praktyczne techniki przekształcania modeli w działające aplikacje. Znalazło się tu mnóstwo wskazówek ułatwiających poprawianie dokładności, szybkości i niezawodności modeli. Nie zabrakło też informacji o najlepszych sposobach wdrażania od podstaw algorytmów uczenia głębokiego i stosowaniu ich w najnowocześniejszych rozwiązaniach.

W książce między innymi:

  • gruntownie i przystępnie omówione podstawy uczenia głębokiego
  • najnowsze techniki uczenia głębokiego i ich praktyczne zastosowanie
  • działanie modeli oraz zasady ich treningu
  • praktyczne tworzenie aplikacji korzystających z uczenia głębokiego
  • wdrażanie algorytmów uczenia głębokiego
  • etyczne implikacje AI

Uczenie głębokie? Dobrze zrozum, dobrze zastosuj!

  • Opinie o książce
  • Wstęp
    • Dla kogo jest przeznaczona ta książka?
    • Co musisz wiedzieć?
    • Czego się nauczysz dzięki tej książce?
  • Przedmowa
  • Część I. Uczenie głębokie w praktyce
  • Rozdział 1. Podróż po świecie uczenia głębokiego
    • Uczenie głębokie jest dla każdego
    • Sieci neuronowe krótka historia
    • Kim jesteśmy?
    • Jak zdobyć wiedzę o uczeniu głębokim?
      • Twoje projekty i Twój sposób myślenia
    • Oprogramowanie: PyTorch, fastai i Jupyter (i dlaczego nie ma to znaczenia)
    • Twój pierwszy model
      • Uzyskanie dostępu do serwera z procesorem graficznym i możliwością realizowania uczenia głębokiego
      • Uruchomienie pierwszego notatnika
      • Co to jest uczenie maszynowe?
      • Co to jest sieć neuronowa?
      • Trochę słownictwa związanego z uczeniem głębokim
      • Ograniczenia związane z uczeniem maszynowym
      • Jak działa nasz program do rozpoznawania obrazów
      • Czego nauczył się program do rozpoznawania obrazów?
      • Systemy do rozpoznawania obrazów mogą radzić sobie z zadaniami innymi niż analiza obrazów
      • Podsumowanie słownictwa
    • Uczenie głębokie to nie tylko klasyfikowanie obrazów
    • Zbiory walidacyjne i testowe
      • Użycie oceny w definiowaniu zbiorów testowych
    • Moment, w którym wybierasz swoją własną przygodę
    • Pytania
      • Dalsze badania
  • Rozdział 2. Od modelu do produkcji
    • Praktyczne zastosowanie uczenia głębokiego
      • Rozpoczęcie projektu
      • Stan uczenia głębokiego
        • Widzenie komputerowe
        • Dokumenty tekstowe (przetwarzanie języka naturalnego)
        • Łączenie tekstu z obrazami
        • Dane tabelaryczne
        • Systemy rekomendacji
        • Inne typy danych
      • Metoda układu napędowego
    • Gromadzenie danych
    • Od danych do obiektu DataLoaders
      • Generowanie sztucznych danych
    • Trenowanie modelu i używanie go do czyszczenia danych
    • Przekształcanie modelu w aplikację internetową
      • Korzystanie z modelu do wnioskowania
      • Tworzenie w notatniku aplikacji na podstawie modelu
      • Zamień notatnik w prawdziwą aplikację
      • Wdrażanie aplikacji
    • Jak uniknąć katastrofy
      • Nieprzewidziane konsekwencje i pętle sprzężenia zwrotnego
    • Zapisuj!
    • Pytania
      • Dalsze badania
  • Rozdział 3. Etyka danych
    • Kluczowe przykłady etyki danych
      • Błędy i regresja: wadliwy algorytm używany do świadczeń opieki zdrowotnej
      • Pętle sprzężenia zwrotnego: system rekomendacji YouTube
      • Uprzedzenie: wykładowca Latanya Sweeney aresztowana
      • Dlaczego ma to znaczenie?
    • Integracja uczenia maszynowego z projektowaniem produktu
    • Zagadnienia związane z etyką danych
      • Regres i odpowiedzialność
      • Pętle sprzężenia zwrotnego
      • Uprzedzenie
        • Uprzedzenie historyczne
        • Uprzedzenie pomiarowe
        • Uprzedzenie agregacyjne
        • Uprzedzenie reprezentacyjne
        • Rozwiązywanie problemów związanych z różnymi rodzajami uprzedzeń
      • Dezinformacja
    • Identyfikowanie i rozwiązywanie problemów etycznych
      • Przeanalizuj projekt, nad którym pracujesz
      • Procesy do zaimplementowania
        • Pryzmat etyczny
      • Potęga różnorodności
      • Uczciwość, odpowiedzialność i przejrzystość
    • Rola polityki
      • Skuteczność przepisów
      • Prawa i polityka
      • Samochody historyczny precedens
    • Wnioski
    • Pytania
      • Dalsze badania
    • Uczenie głębokie w praktyce to wszystko!
  • Część II. Zrozumienie aplikacji fastai
  • Rozdział 4. Jak to wygląda od środka trenowanie klasyfikatora cyfr
    • Piksele podstawa widzenia komputerowego
    • Podejście pierwsze: podobieństwo pikseli
      • Tablice NumPy i tensory PyTorch
    • Wyznaczanie wskaźników z wykorzystaniem rozgłaszania
    • Stochastyczny spadek wzdłuż gradientu
      • Wyznaczanie gradientów
      • Stopniowanie ze współczynnikiem uczenia
      • Kompleksowy przykład użycia stochastycznego spadku wzdłuż gradientu
        • Etap 1.: inicjalizacja parametrów
        • Etap 2.: obliczanie prognoz
        • Etap 3.: obliczanie straty
        • Etap 4.: obliczanie gradientów
        • Etap 5.: stopniowanie wag
        • Etap 6.: powtórzenie procesu
        • Etap 7.: koniec
      • Podsumowanie procesu stochastycznego spadku wzdłuż gradientu
    • Funkcja straty MNIST
      • Sigmoida
      • Stochastyczny spadek wzdłuż gradientu i minipaczki
    • Złożenie wszystkiego w całość
      • Tworzenie optymalizatora
    • Wprowadzanie nieliniowości
      • Bardziej rozbudowane modele
    • Podsumowanie słownictwa
    • Pytania
      • Dalsze badania
  • Rozdział 5. Klasyfikowanie obrazów
    • Od psów i kotów do ras zwierząt domowych
    • Dobór wstępny
      • Sprawdzanie i debugowanie obiektu DataBlock
    • Entropia krzyżowa
      • Przeglądanie aktywacji i etykiet
      • Softmax
      • Logarytm prawdopodobieństwa
      • Obliczanie logarytmu
    • Interpretacja modelu
    • Poprawianie modelu
      • Wyszukiwarka współczynnika uczenia
      • Odmrażanie i uczenie transferowe
      • Dyskryminatywne współczynniki uczenia
      • Wybór liczby epok
      • Bardziej złożone architektury
    • Podsumowanie
    • Pytania
      • Dalsze badania
  • Rozdział 6. Inne zagadnienia związane z widzeniem komputerowym
    • Klasyfikacja wieloetykietowa
      • Dane
      • Tworzenie obiektu DataBlock
      • Binarna entropia krzyżowa
    • Regresja
      • Gromadzenie danych
      • Trenowanie modelu
    • Podsumowanie
    • Pytania
      • Dalsze badania
  • Rozdział 7. Trenowanie supernowoczesnego modelu
    • Imagenette
    • Normalizacja
    • Progresywna zmiana rozmiaru
    • Wydłużenie czasu testu
    • Mixup
    • Wygładzanie etykiet
    • Podsumowanie
    • Pytania
      • Dalsze badania
  • Rozdział 8. Szczegółowa analiza filtrowania zespołowego
    • Pierwszy kontakt z danymi
    • Czynniki ukryte
    • Tworzenie obiektu DataLoaders
    • Filtrowanie zespołowe od podstaw
      • Wygaszanie wag
      • Tworzenie własnego modułu osadzania
    • Interpretacja osadzeń i przesunięć
      • Użycie aplikacji fastai.collab
      • Odległość osadzania
    • Uruchamianie modelu filtrowania zespołowego
    • Uczenie głębokie w filtrowaniu zespołowym
    • Podsumowanie
    • Pytania
      • Dalsze badania
  • Rozdział 9. Szczegółowa analiza modelowania tabelarycznego
    • Osadzenia skategoryzowane
    • Poza uczeniem głębokim
    • Zbiór danych
      • Konkursy Kaggle
      • Sprawdzenie danych
    • Drzewa decyzyjne
      • Obsługa dat
      • Użycie obiektów TabularPandas i TabularProc
      • Tworzenie drzewa decyzyjnego
      • Zmienne skategoryzowane
    • Lasy losowe
      • Tworzenie lasu losowego
      • Błąd out-of-bag
    • Interpretacja modelu
      • Wariancja drzewa dla pewności prognozy
      • Ważności cech
      • Usuwanie zmiennych o niskiej ważności
      • Usuwanie zbędnych cech
      • Częściowa zależność
      • Wyciek danych
      • Interpreter drzewa
    • Ekstrapolacja i sieci neuronowe
      • Problem ekstrapolacji
      • Wyszukiwanie danych spoza domeny
      • Użycie sieci neuronowej
    • Łączenie w zespoły
      • Wzmacnianie
      • Łączenie osadzeń z innymi metodami
    • Podsumowanie
    • Pytania
      • Dalsze badania
  • Rozdział 10. Szczegółowa analiza przetwarzania języka naturalnego rekurencyjne sieci neuronowe
    • Wstępne przetwarzanie tekstu
      • Tokenizacja
      • Tokenizacja słów przy użyciu biblioteki fastai
      • Tokenizacja podłańcuchów
      • Zamiana na liczby przy użyciu biblioteki fastai
      • Umieszczanie tekstu w paczkach dla modelu językowego
    • Trenowanie klasyfikatora tekstu
      • Użycie klasy DataBlock w modelu językowym
      • Dostrajanie modelu językowego
      • Zapisywanie i wczytywanie modeli
      • Generowanie tekstu
      • Tworzenie klasyfikatora DataLoaders
      • Dostrajanie klasyfikatora
    • Dezinformacja i modele językowe
    • Podsumowanie
    • Pytania
      • Dalsze badania
  • Rozdział 11. Przygotowywanie danych dla modeli za pomocą interfejsu API pośredniego poziomu z biblioteki fastai
    • Szczegółowa analiza warstwowego interfejsu programistycznego biblioteki fastai
      • Transformacje
      • Tworzenie własnej transformacji
      • Klasa Pipeline potoku transformacji
    • TfmdLists i Datasets kolekcje przekształcone
      • TfmdLists
      • Datasets
    • Zastosowanie interfejsu API pośredniego poziomu SiamesePair
    • Podsumowanie
    • Pytania
      • Dalsze badania
    • Zrozumienie aplikacji fastai podsumowanie
  • Część III. Podstawy uczenia głębokiego
  • Rozdział 12. Tworzenie od podstaw modelu językowego
    • Dane
    • Tworzenie od podstaw pierwszego modelu językowego
      • Obsługa modelu językowego w bibliotece PyTorch
      • Pierwsza rekurencyjna sieć neuronowa
    • Ulepszanie sieci RNN
      • Obsługa stanu sieci RNN
      • Tworzenie większej liczby sygnałów
    • Wielowarstwowe rekurencyjne sieci neuronowe
      • Model
      • Eksplodujące lub zanikające aktywacje
    • Architektura LSTM
      • Tworzenie modelu LSTM od podstaw
      • Trenowanie modelu językowego wykorzystującego architekturę LSTM
    • Regularyzacja modelu LSTM
      • Dropout
      • Regularyzacja aktywacji i czasowa regularyzacja aktywacji
      • Trening regularyzowanego modelu LSTM z wiązanymi wagami
    • Podsumowanie
    • Pytania
      • Dalsze badania
  • Rozdział 13. Konwolucyjne sieci neuronowe
    • Magia konwolucji
      • Odwzorowywanie jądra splotu
      • Konwolucje w bibliotece PyTorch
      • Kroki i dopełnienie
      • Zrozumienie równań konwolucji
    • Pierwsza konwolucyjna sieć neuronowa
      • Tworzenie konwolucyjnej sieci neuronowej
      • Zrozumienie arytmetyki konwolucji
      • Pola receptywne
      • Kilka uwag o Twitterze
    • Obrazy kolorowe
    • Ulepszanie stabilności trenowania
      • Prosty model bazowy
      • Zwiększenie wielkości paczki
      • Trenowanie jednocykliczne
      • Normalizacja wsadowa
    • Podsumowanie
    • Pytania
      • Dalsze badania
  • Rozdział 14. Sieci ResNet
    • Powrót do Imagenette
    • Tworzenie nowoczesnej konwolucyjnej sieci neuronowej ResNet
      • Pomijanie połączeń
      • Model sieci ResNet na poziomie światowym
      • Warstwy z wąskim gardłem
    • Podsumowanie
    • Pytania
      • Dalsze badania
  • Rozdział 15. Szczegółowa analiza architektur aplikacji
    • Widzenie komputerowe
      • Funkcja cnn_learner
      • Funkcja unet_learner
      • Model syjamski
    • Przetwarzanie języka naturalnego
    • Dane tabelaryczne
    • Podsumowanie
    • Pytania
      • Dalsze badania
  • Rozdział 16. Proces trenowania
    • Tworzenie modelu bazowego
    • Ogólny optymalizator
    • Momentum
    • RMSProp
    • Adam
    • Dwie metody wygaszania wag
    • Wywołania zwrotne
      • Tworzenie wywołania zwrotnego
      • Kolejność wywołań zwrotnych i wyjątki
    • Podsumowanie
    • Pytania
      • Dalsze badania
    • Podstawy uczenia głębokiego podsumowanie
  • Część IV. Uczenie głębokie od podstaw
  • Rozdział 17. Sieć neuronowa od podstaw
    • Tworzenie od podstaw warstwy sieci neuronowej
      • Modelowanie neuronu
      • Mnożenie macierzy od podstaw
      • Arytmetyka składowych
      • Rozgłaszanie
        • Rozgłaszanie wartości skalarnej
        • Rozgłaszanie wektora na macierz
        • Zasady rozgłaszania
      • Konwencja sumacyjna Einsteina
    • Przejścia w przód i wstecz
      • Definiowanie i inicjalizowanie warstwy
      • Gradienty i przejście wstecz
      • Modyfikowanie modelu
      • Implementacja przy użyciu biblioteki PyTorch
    • Podsumowanie
    • Pytania
      • Dalsze badania
  • Rozdział 18. Interpretacja sieci CNN przy użyciu mapy aktywacji klas
    • Mapa aktywacji klas i punkty zaczepienia
    • Gradientowa mapa aktywacji klas
    • Podsumowanie
    • Pytania
      • Dalsze badania
  • Rozdział 19. Klasa Learner biblioteki fastai od podstaw
    • Dane
      • Klasa Dataset
    • Klasy Module i Parameter
      • Prosta konwolucyjna sieć neuronowa
    • Funkcja straty
    • Klasa Learner
      • Wywołania zwrotne
      • Harmonogram modyfikowania współczynnika uczenia
    • Podsumowanie
    • Pytania
      • Dalsze badania
  • Rozdział 20. Uwagi końcowe
  • Dodatek A. Tworzenie bloga
    • Blogowanie przy użyciu usługi GitHub Pages
      • Tworzenie repozytorium
      • Konfigurowanie strony głównej
      • Tworzenie wpisów
      • Synchronizowanie GitHuba z własnym komputerem
    • Tworzenie bloga za pomocą notatnika Jupytera
  • Dodatek B. Lista kontrolna projektu dotyczącego danych
    • Analitycy danych
    • Strategia
    • Dane
    • Analityka
    • Implementacja
    • Utrzymywanie
    • Ograniczenia
      • O autorach
      • Podziękowania
      • Kolofon
  • Title: Deep learning dla programistów. Budowanie aplikacji AI za pomocą fastai i PyTorch
  • Author: Jeremy Howard, Sylvain Gugger
  • Original title: Deep Learning for Coders with fastai and PyTorch: AI Applications Without a PhD
  • Translation: Jacek Janusz
  • ISBN: 978-83-283-7510-9, 9788328375109
  • Date of issue: 2021-06-24
  • Format: Ebook
  • Item ID: delepr
  • Publisher: Helion