Deep learning dla programistów. Budowanie aplikacji AI za pomocą fastai i PyTorch - ebook
Deep learning dla programistów. Budowanie aplikacji AI za pomocą fastai i PyTorch - 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!
Spis treści
- 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
- Praktyczne zastosowanie uczenia głębokiego
- 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!
- Kluczowe przykłady etyki danych
- 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
- Klasyfikacja wieloetykietowa
- 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
- Wstępne przetwarzanie tekstu
- 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
- Szczegółowa analiza warstwowego interfejsu programistycznego biblioteki fastai
- 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
- Magia konwolucji
- 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
- Widzenie komputerowe
- 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
- Tworzenie od podstaw warstwy sieci neuronowej
- 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
- Dane
- 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
- Blogowanie przy użyciu usługi GitHub Pages
- Dodatek B. Lista kontrolna projektu dotyczącego danych
- Analitycy danych
- Strategia
- Dane
- Analityka
- Implementacja
- Utrzymywanie
- Ograniczenia
- O autorach
- Podziękowania
- Kolofon
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-7510-9 |
Rozmiar pliku: | 25 MB |