Szczegóły ebooka

Uczenie maszynowe z użyciem Scikit-Learn, Keras i TensorFlow. Wydanie III

Uczenie maszynowe z użyciem Scikit-Learn, Keras i TensorFlow. Wydanie III

Aurélien Géron

Ebook

Pojęcia, techniki i narzędzia służące do tworzenia systemów inteligentnych

Głębokie sieci neuronowe mają niesamowity potencjał. Osiągnięcia ostatnich lat nadały procesom uczenia głębokiego zupełnie nową jakość. Obecnie nawet programiści niezaznajomieni z tą technologią mogą korzystać z prostych i niezwykle skutecznych narzędzi, pozwalających na sprawne implementowanie programów uczących się z danych.

Znajdziesz tu rozsądne, intuicyjne objaśnienia, a także mnóstwo praktycznych porad!

Francois Chollet, twórca interfejsu Keras

To trzecie wydanie bestsellerowego przewodnika po uczeniu maszynowym. Książka jest adresowana do osób, które chcą wejść w świat uczenia maszynowego ― przy czym wystarczą do tego minimalne umiejętności programistyczne. Zawarto tu minimum teorii, a proces nauki ułatwiają liczne przykłady i ćwiczenia. Dzięki temu przyswoisz niezbędne pojęcia i nauczysz się korzystać z gotowych platform produkcyjnych Pythona: Scikit-Learn, Keras i TensorFlow. W tym wydaniu pokazano różnorodne techniki, od prostej regresji liniowej aż po głębokie sieci neuronowe. Szybko nauczysz się tworzyć działające systemy inteligentne!

W książce między innymi:

  • korzystanie ze Scikit-Learn, z TensorFlow i Keras
  • modele: maszyny wektorów nośnych, drzewa decyzyjne, lasy losowe i metody zespołowe
  • uczenie nienadzorowane: redukcja wymiarowości, analiza skupień, wykrywanie anomalii
  • sieci neuronowe: sieci splotowe, rekurencyjne, modele dyfuzyjne i transformatory
  • trenowanie i implementacje sieci neuronowych

To znakomite wprowadzenie do teoretycznych i praktycznych rozważań na temat rozwiązywania problemów za pomocą sieci neuronowych!

Pete Warden, mobile lead projektu Tensor Flow

Twórz i trenuj nowoczesne sieci neuronowe!

Przedmowa

Część I. Podstawy uczenia maszynowego

  • 1. Krajobraz uczenia maszynowego
    • Czym jest uczenie maszynowe?
    • Dlaczego warto korzystać z uczenia maszynowego?
    • Przykładowe zastosowania
    • Rodzaje systemów uczenia maszynowego
      • Nadzorowanie uczenia
      • Uczenie wsadowe i uczenie przyrostowe
      • Uczenie z przykładów i uczenie z modelu
    • Główne problemy uczenia maszynowego
      • Niedobór danych uczących
      • Niereprezentatywne dane uczące
      • Dane kiepskiej jakości
      • Nieistotne cechy
      • Przetrenowanie danych uczących
      • Niedotrenowanie danych uczących
      • Podsumowanie
    • Testowanie i ocenianie
      • Strojenie hiperparametrów i dobór modelu
      • Niezgodność danych
    • Ćwiczenia
  • 2. Nasz pierwszy projekt uczenia maszynowego
    • Praca z rzeczywistymi danymi
    • Przeanalizuj całokształt projektu
      • Określ zakres problemu
      • Wybierz wskaźnik wydajności
      • Sprawdź założenia
    • Zdobądź dane
      • Uruchom przykładowy kod w serwisie Google Colab
      • Zapisz zmiany w kodzie i w danych
      • Zalety i wady interaktywności
      • Kod w książce a kod w notatnikach Jupyter
      • Pobierz dane
      • Rzut oka na strukturę danych
      • Stwórz zbiór testowy
    • Odkrywaj i wizualizuj dane, aby zdobywać nowe informacje
      • Zwizualizuj dane geograficzne
      • Poszukaj korelacji
      • Eksperymentuj z kombinacjami atrybutów
    • Przygotuj dane pod algorytmy uczenia maszynowego
      • Oczyść dane
      • Obsługa tekstu i atrybutów kategorialnych
      • Skalowanie i przekształcanie cech
      • Niestandardowe transformatory
      • Potoki transformujące
    • Wybierz i wytrenuj model
      • Trenuj i oceń model za pomocą zbioru uczącego
      • Dokładniejsze ocenianie za pomocą sprawdzianu krzyżowego
    • Wyreguluj swój model
      • Metoda przeszukiwania siatki
      • Metoda losowego przeszukiwania
      • Metody zespołowe
      • Analizowanie najlepszych modeli i ich błędów
      • Oceń system za pomocą zbioru testowego
    • Uruchom, monitoruj i utrzymuj swój system
    • Teraz Twoja kolej!
    • Ćwiczenia
  • 3. Klasyfikacja
    • Zbiór danych MNIST
    • Uczenie klasyfikatora binarnego
    • Miary wydajności
      • Pomiar dokładności za pomocą sprawdzianu krzyżowego
      • Macierz pomyłek
      • Precyzja i pełność
      • Kompromis pomiędzy precyzją a pełnością
      • Wykres krzywej ROC
    • Klasyfikacja wieloklasowa
    • Analiza błędów
    • Klasyfikacja wieloetykietowa
    • Klasyfikacja wielowyjściowa
    • Ćwiczenia
  • 4. Uczenie modeli
    • Regresja liniowa
      • Równanie normalne
      • Złożoność obliczeniowa
    • Gradient prosty
      • Wsadowy gradient prosty
      • Stochastyczny spadek wzdłuż gradientu
      • Schodzenie po gradiencie z minigrupami
    • Regresja wielomianowa
    • Krzywe uczenia
    • Regularyzowane modele liniowe
      • Regresja grzbietowa
      • Regresja metodą LASSO
      • Regresja metodą elastycznej siatki
      • Wczesne zatrzymywanie
    • Regresja logistyczna
      • Szacowanie prawdopodobieństwa
      • Funkcje ucząca i kosztu
      • Granice decyzyjne
      • Regresja softmax
    • Ćwiczenia
  • 5. Maszyny wektorów nośnych
    • Liniowa klasyfikacja SVM
      • Klasyfikacja miękkiego marginesu
    • Nieliniowa klasyfikacja SVM
      • Jądro wielomianowe
      • Cechy podobieństwa
      • Gaussowskie jądro RBF
      • Klasy SVM i złożoność obliczeniowa
    • Regresja SVM
    • Mechanizm działania liniowych klasyfikatorów SVM
    • Problem dualny
      • Kernelizowane maszyny SVM
    • Ćwiczenia
  • 6. Drzewa decyzyjne
    • Uczenie i wizualizowanie drzewa decyzyjnego
    • Wyliczanie prognoz
    • Szacowanie prawdopodobieństw przynależności do klas
    • Algorytm uczący CART
    • Złożoność obliczeniowa
    • Wskaźnik Giniego czy entropia?
    • Hiperparametry regularyzacyjne
    • Regresja
    • Wrażliwość na orientację osi
    • Drzewa decyzyjne mają znaczną wariancję
    • Ćwiczenia
  • 7. Uczenie zespołowe i losowe lasy
    • Klasyfikatory głosujące
    • Agregacja i wklejanie
      • Agregacja i wklejanie w module Scikit-Learn
      • Ocena OOB
      • Rejony losowe i podprzestrzenie losowe
    • Losowe lasy
      • Zespół Extra-Trees
      • Istotność cech
    • Wzmacnianie
      • AdaBoost
      • Wzmacnianie gradientowe
      • Wzmacnianie gradientu w oparciu o histogram
    • Kontaminacja
    • Ćwiczenia
  • 8. Redukcja wymiarowości
    • Klątwa wymiarowości
    • Główne strategie redukcji wymiarowości
      • Rzutowanie
      • Uczenie rozmaitościowe
    • Analiza PCA
      • Zachowanie wariancji
      • Główne składowe
      • Rzutowanie na d wymiarów
      • Implementacja w module Scikit-Learn
      • Współczynnik wariancji wyjaśnionej
      • Wybór właściwej liczby wymiarów
      • Algorytm PCA w zastosowaniach kompresji
      • Losowa analiza PCA
      • Przyrostowa analiza PCA
    • Rzutowanie losowe
    • Algorytm LLE
    • Inne techniki redukowania wymiarowości
    • Ćwiczenia
  • 9. Techniki uczenia nienadzorowanego
    • Analiza skupień: algorytm centroidów i DBSCAN
      • Algorytm centroidów
      • Granice algorytmu centroidów
      • Analiza skupień w segmentacji obrazu
      • Analiza skupień w uczeniu półnadzorowanym
      • Algorytm DBSCAN
      • Inne algorytmy analizy skupień
    • Mieszaniny gaussowskie
      • Wykrywanie anomalii za pomocą mieszanin gaussowskich
      • Wyznaczanie liczby skupień
      • Bayesowskie modele mieszane
      • Inne algorytmy służące do wykrywania anomalii i nowości
    • Ćwiczenia

Część II. Sieci neuronowe i uczenie głębokie

  • 10. Wprowadzenie do sztucznych sieci neuronowych i ich implementacji z użyciem interfejsu Keras
    • Od biologicznych do sztucznych neuronów
      • Neurony biologiczne
      • Operacje logiczne przy użyciu neuronów
      • Perceptron
      • Perceptron wielowarstwowy i propagacja wsteczna
      • Regresyjne perceptrony wielowarstwowe
      • Klasyfikacyjne perceptrony wielowarstwowe
    • Implementowanie perceptronów wielowarstwowych za pomocą interfejsu Keras
      • Tworzenie klasyfikatora obrazów za pomocą interfejsu sekwencyjnego
      • Tworzenie regresyjnego perceptronu wielowarstwowego za pomocą interfejsu sekwencyjnego
      • Tworzenie złożonych modeli za pomocą interfejsu funkcyjnego
      • Tworzenie modeli dynamicznych za pomocą interfejsu podklasowego
      • Zapisywanie i odczytywanie modelu
      • Stosowanie wywołań zwrotnych
      • Wizualizacja danych za pomocą narzędzia TensorBoard
    • Dostrajanie hiperparametrów sieci neuronowej
      • Liczba warstw ukrytych
      • Liczba neuronów w poszczególnych warstwach ukrytych
      • Współczynnik uczenia, rozmiar grupy i pozostałe hiperparametry
    • Ćwiczenia
  • 11. Uczenie głębokich sieci neuronowych
    • Problemy zanikających/eksplodujących gradientów
      • Inicjalizacje wag Glorota i He
      • Lepsze funkcje aktywacji
      • Normalizacja wsadowa
      • Obcinanie gradientu
    • Wielokrotne stosowanie gotowych warstw
      • Uczenie transferowe w interfejsie Keras
      • Nienadzorowane uczenie wstępne
      • Uczenie wstępne za pomocą dodatkowego zadania
    • Szybsze optymalizatory
      • Optymalizacja momentum
      • Przyspieszony spadek wzdłuż gradientu (algorytm Nesterova)
      • AdaGrad
      • RMSProp
      • Optymalizator Adam
      • AdaMax
      • Nadam
      • AdamW
    • Harmonogramowanie współczynnika uczenia
    • Regularyzacja jako sposób zapobiegania przetrenowaniu
      • Regularyzacja l1 i l2
      • Porzucanie
      • Regularyzacja typu Monte Carlo (MC)
      • Regularyzacja typu max-norm
    • Podsumowanie i praktyczne wskazówki
    • Ćwiczenia
  • 12. Modele niestandardowe i uczenie za pomocą modułu TensorFlow
    • Krótkie omówienie modułu TensorFlow
    • Korzystanie z modułu TensorFlow jak z biblioteki NumPy
      • Tensory i operacje
      • Tensory a biblioteka NumPy
      • Konwersje typów
      • Zmienne
      • Inne struktury danych
    • Dostosowywanie modeli i algorytmów uczenia
      • Niestandardowe funkcje straty
      • Zapisywanie i wczytywanie modeli zawierających elementy niestandardowe
      • Niestandardowe funkcje aktywacji, inicjalizatory, regularyzatory i ograniczenia
      • Niestandardowe wskaźniki
      • Niestandardowe warstwy
      • Niestandardowe modele
      • Funkcje straty i wskaźniki oparte na elementach wewnętrznych modelu
      • Obliczanie gradientów za pomocą różniczkowania automatycznego
      • Niestandardowe pętle uczenia
    • Funkcje i grafy modułu TensorFlow
      • AutoGraph i kreślenie
      • Reguły związane z funkcją TF
    • Ćwiczenia
  • 13. Wczytywanie i wstępne przetwarzanie danych za pomocą modułu TensorFlow
    • Interfejs tf.data
      • Łączenie przekształceń
      • Tasowanie danych
      • Przeplatanie wierszy z różnych plików
      • Wstępne przetwarzanie danych
      • Składanie wszystkiego w całość
      • Pobieranie wstępne
      • Stosowanie zestawu danych z interfejsem Keras
    • Format TFRecord
      • Skompresowane pliki TFRecord
      • Wprowadzenie do buforów protokołów
      • Bufory protokołów w module TensorFlow
      • Wczytywanie i analizowanie składni obiektów Example
      • Obsługa list list za pomocą bufora protokołów SequenceExample
    • Warstwy przetwarzania wstępnego Keras
      • Warstwa Normalization
      • Warstwa Discretization
      • Warstwa CategoryEncoding
      • Warstwa StringLookup
      • Warstwa Hashing
      • Kodowanie cech kategorialnych za pomocą wektorów właściwościowych
      • Wstępne przetwarzanie tekstu
      • Korzystanie z wytrenowanych składników modelu językowego
      • Warstwy wstępnego przetwarzania obrazów
    • Projekt TensorFlow Datasets (TFDS)
    • Ćwiczenia
  • 14. Głębokie widzenie komputerowe za pomocą splotowych sieci neuronowych
    • Struktura kory wzrokowej
    • Warstwy splotowe
      • Filtry
      • Stosy map cech
      • Implementacja warstw splotowych w interfejsie Keras
      • Zużycie pamięci operacyjnej
    • Warstwa łącząca
    • Implementacja warstw łączących w interfejsie Keras
    • Architektury splotowych sieci neuronowych
      • LeNet-5
      • AlexNet
      • GoogLeNet
      • VGGNet
      • ResNet
      • Xception
      • SENet
      • Inne interesujące struktury
      • Wybór właściwej struktury CNN
    • Implementacja sieci ResNet-34 za pomocą interfejsu Keras
    • Korzystanie z gotowych modeli w interfejsie Keras
    • Gotowe modele w uczeniu transferowym
    • Klasyfikowanie i lokalizowanie
    • Wykrywanie obiektów
      • W pełni połączone sieci splotowe
      • Sieć YOLO
    • Śledzenie obiektów
    • Segmentacja semantyczna
    • Ćwiczenia
  • 15. Przetwarzanie sekwencji za pomocą sieci rekurencyjnych i splotowych
    • Neurony i warstwy rekurencyjne
      • Komórki pamięci
      • Sekwencje wejść i wyjść
    • Uczenie sieci rekurencyjnych
    • Prognozowanie szeregów czasowych
      • Rodzina modeli ARMA
      • Przygotowywanie danych dla modeli uczenia maszynowego
      • Prognozowanie za pomocą modelu liniowego
      • Prognozowanie za pomocą prostej sieci rekurencyjnej
      • Prognozowanie za pomocą głębokich sieci rekurencyjnych
      • Prognozowanie wielowymiarowych szeregów czasowych
      • Prognozowanie kilka taktów w przód
      • Prognozowanie za pomocą modelu sekwencyjnego
    • Obsługa długich sekwencji
      • Zwalczanie problemu niestabilnych gradientów
      • Zwalczanie problemu pamięci krótkotrwałej
    • Ćwiczenia
  • 16. Przetwarzanie języka naturalnego za pomocą sieci rekurencyjnych i mechanizmów uwagi
    • Generowanie tekstów szekspirowskich za pomocą znakowej sieci rekurencyjnej
      • Tworzenie zestawu danych uczących
      • Budowanie i uczenie modelu char-RNN
      • Generowanie sztucznego tekstu szekspirowskiego
      • Stanowe sieci rekurencyjne
    • Analiza opinii
      • Maskowanie
      • Korzystanie z gotowych reprezentacji właściwościowych i modeli językowych
    • Sieć typu koder - dekoder służąca do neuronowego tłumaczenia maszynowego
      • Dwukierunkowe sieci rekurencyjne
      • Przeszukiwanie wiązkowe
    • Mechanizmy uwagi
      • Liczy się tylko uwaga: pierwotna architektura transformatora
    • Zatrzęsienie modeli transformatorów
    • Transformatory wizualne
    • Biblioteka Transformers firmy Hugging Face
    • Ćwiczenia
  • 17. Autokodery, generatywne sieci przeciwstawne i modele rozpraszające
    • Efektywne reprezentacje danych
    • Analiza PCA za pomocą niedopełnionego autokodera liniowego
    • Autokodery stosowe
      • Implementacja autokodera stosowego za pomocą interfejsu Keras
      • Wizualizowanie rekonstrukcji
      • Wizualizowanie zestawu danych Fashion MNIST
      • Nienadzorowane uczenie wstępne za pomocą autokoderów stosowych
      • Wiązanie wag
      • Uczenie autokoderów pojedynczo
    • Autokodery splotowe
    • Autokodery odszumiające
    • Autokodery rzadkie
    • Autokodery wariacyjne
    • Generowanie obrazów Fashion MNIST
    • Generatywne sieci przeciwstawne
      • Problemy związane z uczeniem sieci GAN
      • Głębokie splotowe sieci GAN
      • Rozrost progresywny sieci GAN
      • Sieci StyleGAN
    • Modele rozpraszające
    • Ćwiczenia
  • 18. Uczenie przez wzmacnianie
    • Uczenie się optymalizowania nagród
    • Wyszukiwanie strategii
    • Wprowadzenie do narzędzia OpenAI Gym
    • Sieci neuronowe jako strategie
    • Ocenianie czynności: problem przypisania zasługi
    • Gradienty strategii
    • Procesy decyzyjne Markowa
    • Uczenie metodą różnic czasowych
    • Q-uczenie
      • Strategie poszukiwania
      • Przybliżający algorytm Q-uczenia i Q-uczenie głębokie
    • Implementacja modelu Q-uczenia głębokiego
    • Odmiany Q-uczenia głębokiego
      • Ustalone Q-wartości docelowe
      • Podwójna sieć DQN
      • Odtwarzanie priorytetowych doświadczeń
      • Walcząca sieć DQN
    • Przegląd popularnych algorytmów RN
    • Ćwiczenia
  • 19. Wielkoskalowe uczenie i wdrażanie modeli TensorFlow
    • Eksploatacja modelu TensorFlow
      • Korzystanie z systemu TensorFlow Serving
      • Tworzenie usługi predykcyjnej na platformie Vertex AI
      • Uwierzytelnianie i autoryzacja w serwisie GCP
      • Wykonywanie zadań predykcji wsadowych w usłudze Vertex AI
    • Wdrażanie modelu na urządzeniu mobilnym lub wbudowanym
    • Przetwarzanie modelu na stronie internetowej
    • Przyspieszanie obliczeń za pomocą procesorów graficznych
      • Zakup własnej karty graficznej
      • Zarządzanie pamięcią operacyjną karty graficznej
      • Umieszczanie operacji i zmiennych na urządzeniach
      • Przetwarzanie równoległe na wielu urządzeniach
    • Uczenie modeli za pomocą wielu urządzeń
      • Zrównoleglanie modelu
      • Zrównoleglanie danych
      • Uczenie wielkoskalowe za pomocą interfejsu strategii rozpraszania
      • Uczenie modelu za pomocą klastra TensorFlow
      • Realizowanie dużych grup zadań uczenia za pomocą usługi Vertex AI
      • Strojenie hiperparametrów w usłudze Vertex AI
    • Ćwiczenia
    • Dziękuję!

A. Lista kontrolna projektu uczenia maszynowego

B. Różniczkowanie automatyczne

C. Specjalne struktury danych

D. Grafy TensorFlow

Skorowidz

  • Tytuł: Uczenie maszynowe z użyciem Scikit-Learn, Keras i TensorFlow. Wydanie III
  • Autor: Aurélien Géron
  • Tytuł oryginału: Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems, 3rd Edition
  • Tłumaczenie: Krzysztof Sawka
  • ISBN: 978-83-8322-424-4, 9788383224244
  • Data wydania: 2023-07-04
  • Format: Ebook
  • Identyfikator pozycji: uczem3
  • Wydawca: Helion