-
nowość
Uczenie maszynowe z użyciem Scikit-Learn i PyTorch. Koncepcje, narzędzia i techniki umożliwiające konstruowanie inteligentnych systemów - ebook
Uczenie maszynowe z użyciem Scikit-Learn i PyTorch. Koncepcje, narzędzia i techniki umożliwiające konstruowanie inteligentnych systemów - ebook
Uczenie maszynowe i sztuczna inteligencja to dziś najgorętsze tematy w branży IT. Od ChatGPT po autonomiczne pojazdy technologie AI przekształcają każdą dziedzinę przemysłu. Popyt na specjalistów ML rośnie wykładniczo, a umiejętność budowania i wdrażania modeli uczenia maszynowego stała się poszukiwaną na rynku kompetencją potencjalnych pracowników. Ta książka to kompleksowy przewodnik po świecie uczenia maszynowego z wykorzystaniem najpopularniejszych narzędzi: Scikit-Learn do klasycznych algorytmów ML i PyTorch wiodącej biblioteki do uczenia głębokiego.
Książka prowadzi czytelnika od podstaw uczenia maszynowego do zaawansowanych technik uczenia głębokiego. Część pierwsza obejmuje fundamenty ML: przygotowanie danych, wybór i trenowanie modeli, algorytmy klasyfikacji i regresji, drzewa decyzyjne, lasy losowe, techniki redukcji wymiarowości. Druga jest poświęcona sieciom neuronowym i uczeniu głębokiemu w PyTorch: od podstawowych perceptronów, przez sieci splotowe do widzenia komputerowego, sieci rekurencyjne do przetwarzania sekwencji, aż po transformatory architekturę stojącą za współczesnymi asystentami AI. Każdy rozdział zawiera praktyczne przykłady w postaci notatników Jupyter, gotowe do uruchomienia w Google Colab.
W książce:
- Kompletny projekt ML
- Klasyczne algorytmy
- Sieci neuronowe w PyTorch
- CNN do widzenia komputerowego i wykrywania obiektów
- Transformatory do NLP
- Uczenie przez wzmacnianie i generatywne modele AI
- Transfer learning, kwantyzacja, przyspieszanie modeli
Od podstaw do transformatorów praktyczny przewodnik po ML i AI
Książka ta wychowała nowe pokolenie praktyków uczenia maszynowego. Została znakomicie zaktualizowana, aby uwzględnić PyTorch, i ponownie staje się najważniejszym praktycznym przewodnikiem w tej dziedzinie.
Tarun Narayanan, inżynier uczenia maszynowego w Amazon AGI
Geron trafia w sedno: praktyczne implementacje w Scikit-Learn i PyTorch, które uczą koncepcji, równoważone teorią, która wyjaśnia, zamiast przytłaczać.
Ulf Bissbort, dyrektor do spraw technicznych i współzałożyciel ZefHub
Książka ta jest prawdziwą biblią dla początkujących w dziedzinie uczenia maszynowego.
Haesun Park, laureatka programu Microsoft AI MVP
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
- Problemy z wdrażaniem
- Krok wstecz
- 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
- Uczenie i funkcja kosztu
- Granice decyzyjne
- Regresja softmax
- Ćwiczenia
- Regresja liniowa
- 5. 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
- 6. 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 na podstawie histogramu
- Kontaminacja
- Ćwiczenia
- 7. 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
- 8. 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
- 9. Wprowadzenie do sztucznych sieci neuronowych
- Od biologicznych do sztucznych neuronów
- Neurony biologiczne
- Operacje logiczne przy użyciu neuronów
- Perceptron
- Perceptron wielowarstwowy i propagacja wsteczna
- Budowanie i trenowanie perceptronów wielowarstwowych przy użyciu Scikit-Learn
- Regresyjne perceptrony wielowarstwowe
- Klasyfikacyjne perceptrony wielowarstwowe
- Wytyczne dotyczące dostrajania hiperparametrów
- Liczba warstw ukrytych
- Liczba neuronów w poszczególnych warstwach ukrytych
- Współczynnik uczenia
- Rozmiar grupy danych
- Pozostałe hiperparametry
- Ćwiczenia
- Od biologicznych do sztucznych neuronów
- 10. Budowanie sieci neuronowych w bibliotece PyTorch
- Podstawy biblioteki PyTorch
- Tensory PyTorch
- Przyspieszenie sprzętowe
- Różniczkowanie automatyczne
- Implementacja regresji liniowej
- Regresja liniowa z wykorzystaniem tensorów i różniczkowania automatycznego
- Regresja liniowa z wykorzystaniem wysokopoziomowego API PyTorch
- Implementacja regresyjnego perceptronu wielowarstwowego
- Implementacja schodzenia po gradiencie z minigrupami z wykorzystaniem obiektów klasy DataLoader
- Ocena modelu
- Budowanie modeli niesekwencyjnych przy użyciu niestandardowych modułów
- Budowanie modeli wielowejściowych
- Budowanie modeli wielowyjściowych
- Tworzenie klasyfikatora obrazów z wykorzystaniem biblioteki PyTorch
- Wczytywanie zestawu danych za pomocą biblioteki TorchVision
- Budowanie klasyfikatora
- Strojenie hiperparametrów sieci neuronowych za pomocą biblioteki Optuna
- Zapisywanie i wczytywanie modeli PyTorch
- Kompilacja i optymalizacja modelu PyTorch
- Ćwiczenia
- Podstawy biblioteki PyTorch
- 11. Uczenie głębokich sieci neuronowych
- Problemy zanikających/eksplodujących gradientów
- Inicjalizacje wag Glorota i He
- Lepsze funkcje aktywacji
- Normalizacja wsadowa
- Normalizacja warstwowa
- Obcinanie gradientu
- Wielokrotne stosowanie gotowych warstw
- Uczenie transferowe w bibliotece PyTorch
- 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
- Harmonogramowanie wykładnicze
- Wyżarzanie kosinusowe
- Harmonogramowanie wydajnościowe
- Rozgrzewanie współczynnika uczenia
- Wyżarzanie kosinusowe z ciepłymi restartami
- Harmonogramowanie 1cycle
- Regularyzacja jako sposób zapobiegania przetrenowaniu
- Regularyzacja l1 i l2
- Porzucanie
- Regularyzacja typu Monte Carlo
- Regularyzacja typu max-norm
- Praktyczne wskazówki
- Ćwiczenia
- Problemy zanikających/eksplodujących gradientów
- 12. Głębokie widzenie komputerowe za pomocą splotowych sieci neuronowych
- Struktura kory wzrokowej
- Warstwy splotowe
- Filtry
- Stosy map cech
- Implementacja warstw splotowych w bibliotece PyTorch
- Warstwa łącząca
- Implementacja warstw łączących w bibliotece PyTorch
- Architektury splotowych sieci neuronowych
- LeNet-5
- AlexNet
- GoogLeNet
- ResNet
- Xception
- SENet
- Inne interesujące struktury
- Wybór właściwej struktury CNN
- Wymagania dotyczące pamięci GPU: wnioskowanie a uczenie
- Odwracalne sieci rezydualne (RevNet)
- Implementacja sieci ResNet-34 za pomocą biblioteki PyTorch
- Korzystanie z gotowych modeli w bibliotece TorchVision
- 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
- 13. 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
- 14. Przetwarzanie języka naturalnego z wykorzystaniem sieci RNN i mechanizmu uwagi
- Generowanie tekstu w szekspirowskim stylu przy użyciu znakowej sieci rekurencyjnej
- Tworzenie zestawu danych treningowych
- Osadzenia
- Budowanie i trenowanie modelu Char-RNN
- Generowanie sztucznego tekstu szekspirowskiego
- Analiza opinii z wykorzystaniem bibliotek Hugging Face
- Tokenizacja przy użyciu biblioteki Tokenizers z Hugging Face
- Wielokrotne korzystanie ze wstępnie wytrenowanych tokenizatorów
- Budowanie i trenowanie modelu analizy opinii
- Dwukierunkowe sieci rekurencyjne
- Wielokrotne stosowanie wstępnie wytrenowanych osadzeń i modeli językowych
- Klasy specyficzne dla zadań
- API Trainer
- Potoki Hugging Face
- Sieć koder-dekoder w zadaniach neuronowego tłumaczenia maszynowego
- Przeszukiwanie wiązkowe
- Mechanizmy uwagi
- Ćwiczenia
- Generowanie tekstu w szekspirowskim stylu przy użyciu znakowej sieci rekurencyjnej
- 15. Transformatory w przetwarzaniu języka naturalnego i czatbotach
- Uwaga to wszystko, czego potrzebujesz: oryginalna architektura transformatora
- Kodowanie pozycyjne
- Uwaga wieloblokowa
- Budowanie pozostałej części transformatora
- Budowanie transformatora tłumaczącego tekst z języka angielskiego na hiszpański
- Transformatory zawierające tylko koder w zadaniach rozumienia języka naturalnego
- Architektura modelu BERT
- Wstępne trenowanie modelu BERT
- Strojenie modelu BERT
- Inne modele oparte wyłącznie na koderze
- Transformatory zawierające wyłącznie dekoder
- Architektura GPT-1 i generatywne trenowanie wstępne
- Architektura GPT-2 i uczenie zeroprzykładowe
- Architektura GPT-3, uczenie w kontekście, uczenie jednoprzykładowe i uczenie kilkuprzykładowe
- Generowanie tekstu za pomocą modelu GPT-2
- Wykorzystanie modelu GPT-2 do odpowiadania na pytania
- Pobieranie i uruchamianie jeszcze większego modelu: Mistral-7B
- Przekształcanie dużego modelu językowego w czatbota
- Dostrajanie modelu do prowadzenia rozmów i wykonywania poleceń przy użyciu technik SFT i RLHF
- Bezpośrednia Optymalizacja Preferencji (DPO)
- Dostrajanie modelu przy użyciu biblioteki TRL
- Od modelu czatbota do pełnego systemu czatbota
- Protokół kontekstu modelu
- Biblioteki i narzędzia
- Modele typu koder-dekoder
- Ćwiczenia
- Uwaga to wszystko, czego potrzebujesz: oryginalna architektura transformatora
- 16. Transformatory wizyjne i wielomodalne
- Transformatory wizyjne
- Sieci rekurencyjne z uwagą wizualną
- DETR: hybrydowe połączenie sieci splotowej i transformatora do wykrywania obiektów
- Oryginalny transformator wizyjny
- Transformator obrazów wydajny pod względem wykorzystania danych (DeiT)
- Piramidowy transformator wizyjny do zadań gęstej predykcji
- Transformator Swin: szybki i wszechstronny transformator wizyjny
- DINO: samonadzorowane uczenie się reprezentacji wizualnych
- Inne ważne modele i techniki wizyjne
- Transformatory wielomodalne
- VideoBERT: wariant modelu BERT dla tekstu i wideo
- ViLBERT: dwustrumieniowy transformator do tekstu i obrazu
- CLIP: podwójny koder tekstu i obrazu trenowany za pomocą kontrastowego uczenia wstępnego
- DALL·E: generowanie obrazów na podstawie poleceń tekstowych
- Perceiver: łączenie modalności o dużej rozdzielczości z przestrzeniami ukrytymi
- Perceiver IO: elastyczny mechanizm wyjściowy dla Perceivera
- Flamingo: otwarty dialog wizualny
- BLIP i BLIP-2
- Inne modele wielomodalne
- Ćwiczenia
- Transformatory wizyjne
- 17. Przyspieszanie transformatorów
- Szybsze dekodowanie podczas wnioskowania
- Buforowanie par klucz-wartość
- Dekodowanie spekulatywne
- Główne podejścia zrównoleglania dekodowania
- Przyspieszanie wieloblokowej uwagi
- Mechanizm rzadkiej uwagi
- Mechanizm przybliżonej uwagi
- Współdzielenie rzutowań między głowicami uwagi
- FlashAttention: szybka i dokładna implementacja mechanizmu uwagi
- Skalowanie z wykorzystaniem mieszaniny ekspertów
- Warstwa mieszaniny ekspertów
- Zalety mieszaniny ekspertów
- Wyzwania związane z modelami MoE
- Szybsze uczenie
- Dostrajanie modeli efektywne parametrycznie (PEFT)
- Tworzenie punktów kontrolnych funkcji aktywacji
- Pakowanie sekwencji i grupowanie ich według długości
- Akumulacja gradientów
- Przyspieszanie trenowania z wykorzystaniem przetwarzania równoległego
- Ćwiczenia
- Szybsze dekodowanie podczas wnioskowania
- 18. Autokodery, generatywne sieci przeciwstawne i modele dyfuzyjne
- Efektywne reprezentacje danych
- Analiza PCA za pomocą niedopełnionego autokodera liniowego
- Autokodery stosowe
- Implementacja autokodera stosowego za pomocą biblioteki PyTorch
- Wizualizowanie rekonstrukcji
- Wykrywanie anomalii przy użyciu autokoderów
- 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
- Dyskretne autokodery wariacyjne
- Generatywne sieci przeciwstawne
- Problemy związane z uczeniem sieci GAN
- Modele dyfuzyjne
- Ćwiczenia
- 19. Uczenie przez wzmacnianie
- Czym jest uczenie przez wzmacnianie?
- Gradienty strategii
- Wprowadzenie do biblioteki Gymnasium
- Sieci neuronowe jako strategie
- Ocenianie czynności: problem przypisania zasługi
- Rozwiązywanie środowiska CartPole za pomocą gradientów strategii
- Metody oparte na wartościach
- 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
- Usprawnienia sieci DQN
- Algorytmy typu aktor-krytyk
- Opanowanie gry Atari Breakout przy użyciu implementacji PPO z biblioteki Stable-Baselines3
- Przegląd popularnych algorytmów RN
- Ćwiczenia
- Dziękuję!
- A. Różniczkowanie automatyczne
- Różniczkowanie ręczne
- Metoda różnic skończonych
- Różniczkowanie automatyczne
- Odwrotne różniczkowanie automatyczne
- B. Mieszana precyzja i kwantyzacja
- Popularne reprezentacje liczb
- Modele o zredukowanej precyzji
- Trening z mieszaną precyzją
- Kwantyzacja
- Kwantyzacja liniowa
- Kwantyzacja potreningowa przy użyciu torch.ao.quantization
- Trening z uwzględnieniem kwantyzacji (QAT)
- Kwantyzacja dużych modeli językowych przy użyciu biblioteki bitsandbytes
- Korzystanie ze wstępnie skwantyzowanych modeli
- C. 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
- D. Względne kodowanie pozycyjne
- Względne kodowanie pozycyjne (RPE)
- Rotacyjne osadzenia pozycyjne (RoPE)
- Uwaga z obciążeniami liniowymi (ALiBi)
- E. Modele przestrzeni stanów (SSM)
- Tradycyjne modele SSM
- Funkcje jako wektory
- Jednostka pamięci Legendre'a (LMU)
- Struktura HiPPO
- Splotowa reprezentacja modeli LTI SSM
- Efektywne modelowanie długich sekwencji za pomocą strukturalnych modeli przestrzeni stanów (S4)
- Mamba: modelowanie sekwencji w czasie liniowym z wykorzystaniem selektywnych przestrzeni stanów
- Korzystanie z modelu Mamba
- F. Inne popularne architektury sieci neuronowych
- Sieci Hopfielda
- Maszyny Boltzmanna
- Ograniczone maszyny Boltzmanna
- Głębokie sieci przekonań
- Mapy samoorganizujące
| Kategoria: | Programowanie |
| Zabezpieczenie: |
Watermark
|
| ISBN: | 978-83-289-9939-8 |
| Rozmiar pliku: | 77 MB |