Uczenie maszynowe z użyciem Scikit-Learn, Keras i TensorFlow - ebook
Uczenie maszynowe z użyciem Scikit-Learn, Keras i TensorFlow - 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!
Spis treści
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
- Regresja liniowa
- 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
- Liniowa klasyfikacja SVM
- 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
- Analiza skupień: algorytm centroidów i DBSCAN
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
- Od biologicznych do sztucznych neuronów
- 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
- Problemy zanikających/eksplodujących gradientów
- 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
- Interfejs tf.data
- 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
- Neurony i warstwy rekurencyjne
- 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
- Generowanie tekstów szekspirowskich za pomocą znakowej sieci rekurencyjnej
- 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ę!
- Eksploatacja modelu TensorFlow
A. Lista kontrolna projektu uczenia maszynowego
B. Różniczkowanie automatyczne
C. Specjalne struktury danych
D. Grafy TensorFlow
Skorowidz
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-8322-424-4 |
Rozmiar pliku: | 71 MB |