Deep Learning. Praca z językiem Python i biblioteką Keras. Wydanie III Chorzów

Uczenie głębokie to jedna z najdynamiczniej rozwijających się dziedzin informatyki w ciągu ostatniej dekady zrewolucjonizowało branżę IT, medycynę, transport i kulturę. Dziś, w erze ChatGPT, Midjourney i autonomicznych pojazdów, znajomość sieci neuronowych i generatywnej sztucznej inteligencji …

od 104,30 zł Najbliżej: 21 km

Liczba ofert: 1

Oferta sklepu

Opis

Uczenie głębokie to jedna z najdynamiczniej rozwijających się dziedzin informatyki w ciągu ostatniej dekady zrewolucjonizowało branżę IT, medycynę, transport i kulturę. Dziś, w erze ChatGPT, Midjourney i autonomicznych pojazdów, znajomość sieci neuronowych i generatywnej sztucznej inteligencji stała się kluczową kompetencją, którą powinien posiadać każdy programista i data scientist. Deep Learning. Praca z językiem Python i biblioteką Keras. Wydanie III to kompleksowy, praktyczny przewodnik po uczeniu głębokim od podstaw matematycznych po najnowsze architektury transformerów i modele dyfuzyjne. Napisany przez twórcę biblioteki Keras, Francois Cholleta, jest uznawany za jedno z najlepszych wprowadzeń do tej dziedziny na rynku. Książka prowadzi czytelnika przez cały ekosystem uczenia głębokiego: od tensorów i propagacji wstecznej, przez sieci konwolucyjne do klasyfikacji obrazów i segmentacji, rekurencyjne sieci neuronowe do prognozowania szeregów czasowych, aż po zaawansowane modele językowe i generowanie obrazów. Trzecie wydanie zostało niemal całkowicie zmienione zawiera nowe rozdziały poświęcone architekturze transformera, budowie własnego miniaturowego modelu GPT, dostrajaniu dużych modeli językowych techniką LoRA, a także generowaniu obrazów z użyciem modeli dyfuzyjnych i Stable Diffusion. Każdy rozdział uzupełniają gotowe do uruchomienia przykłady kodu w Pythonie z użyciem bibliotek: Keras, PyTorch, TensorFlow i JAX. Matematyczne podstawy sieci neuronowych: tensory, gradienty, spadek gradientu Sieci konwolucyjne (CNN) do klasyfikacji, segmentacji i wykrywania obiektów Rekurencyjne sieci neuronowe (LSTM, GRU) do prognozowania szeregów czasowych Architektura transformera i mechanizm uwagi od tłumaczenia maszynowego po ChatGPT Trenowanie miniaturowego modelu GPT i dostrajanie dużych modeli językowych (LoRA, RLHF) Generowanie obrazów: autoenkodery wariacyjne (VAE) i modele dyfuzyjne (Stable Diffusion) Najlepsze praktyki: dostrajanie hiperparametrów, trenowanie rozproszone, mieszana precyzja Francois Chollet twórca biblioteki Keras i współzałożyciel laboratorium badawczego Ndea. Od 2012 roku pracuje nad uczeniem głębokim, przez wiele lat jako badacz w Google. Autor wyzwania ARC-AGI do pomiaru inteligencji maszyn i założyciel ARC Prize Foundation. Matthew Watson inżynier w Google, pracuje nad modelem Gemini i ekosystemem uczenia głębokiego open source. Główny opiekun biblioteki Keras, specjalizuje się w narzędziach NLP. Absolwent Uniwersytetu Stanforda. Doskonała pozycja dla wszystkich, którzy lubią się uczyć przez praktykę i chcą się uczyć od najlepszych w branży. Anthony Goldbloom, założyciel Kaggle Inteligentny, praktyczny przewodnik, uczący, jak myśleć od pierwszej zasady do budowania modeli, które naprawdę działają. Santiago Valdarrama, założyciel ml.school Obecnie nie ma bardziej aktualnego i wyczerpującego przewodnika. Aran Komatsuzaki, EleutherAI Naucz się uczenia głębokiego od twórcy Keras warstwa po warstwie Spis treści: Przedmowa Podziękowania O książce O autorach O okładce 1. Czym jest uczenie głębokie? 1.1. Sztuczna inteligencja, uczenie maszynowe i uczenie głębokie 1.2. Sztuczna inteligencja 1.3. Uczenie maszynowe 1.4. Formy danych umożliwiające uczenie 1.5. "Głębia" uczenia głębokiego 1.6. Działanie uczenia głębokiego przedstawione na trzech rysunkach 1.7. Co wyróżnia uczenie głębokie? 1.8. Era generatywnej sztucznej inteligencji 1.9. Co dotychczas osiągnięto za pomocą uczenia głębokiego? 1.10. Nie wierz w tymczasową popularność 1.11. Lato może zamienić się w zimę 1.12. Nadzieje na powstanie sztucznej inteligencji 2. Matematyczne podstawy sieci neuronowych 2.1. Pierwszy przykład sieci neuronowej 2.2. Reprezentacja danych sieci neuronowych 2.2.1. Skalary (tensory zerowymiarowe) 2.2.2. Wektory (tensory jednowymiarowe) 2.2.3. Macierze (tensory dwuwymiarowe) 2.2.4. Trójwymiarowe tensory i tensory o większej liczbie wymiarów 2.2.5. Główne atrybuty 2.2.6. Obsługa tensorów w bibliotece NumPy 2.2.7. Wsad danych 2.2.8. Prawdziwe przykłady tensorów danych 2.3. Koła zębate sieci neuronowych: operacje na tensorach 2.3.1. Operacje wykonywane element po elemencie 2.3.2. Rzutowanie 2.3.3. Iloczyn tensorowy 2.3.4. Zmiana kształtu tensora 2.3.5. Geometryczna interpretacja operacji tensorowych 2.3.6. Interpretacja geometryczna uczenia głębokiego 2.4. Silnik sieci neuronowych: optymalizacja gradientowa 2.4.1. Czym jest pochodna? 2.4.2. Pochodna operacji tensorowej: gradient 2.4.3. Stochastyczny spadek wzdłuż gradientu 2.4.4. Łączenie pochodnych: algorytm propagacji wstecznej 2.5. Ponowna analiza pierwszego przykładu 2.5.1. Ponowna implementacja pierwszego przykładu od podstaw 2.5.2. Wykonanie jednego kroku trenowania 2.5.3. Pełna pętla trenowania 2.5.4. Ocena modelu Podsumowanie 3. Wprowadzenie do TensorFlow, PyTorch, JAX i Keras 3.1. Krótka historia frameworków uczenia głębokiego 3.2. Wzajemne powiązania tych frameworków 3.3. Wprowadzenie do TensorFlow 3.3.1. Pierwsze kroki w TensorFlow 3.3.2. Kompletny przykład: klasyfikacja liniowa w TensorFlow 3.3.3. Unikatowość podejścia TensorFlow 3.4. Wprowadzenie do PyTorch 3.4.1. Pierwsze kroki w PyTorch 3.4.2. Kompletny przykład: klasyfikacja liniowa w PyTorch 3.4.3. Unikatowość podejścia PyTorch 3.5. Wprowadzenie do JAX 3.5.1. Pierwsze kroki w JAX 3.5.2. Tensory w JAX 3.5.3. Generowanie liczb losowych w JAX 3.5.4. Kompletny przykład: klasyfikacja liniowa w JAX 3.5.5. Unikatowość podejścia JAX 3.6. Wprowadzenie do Keras 3.6.1. Pierwsze kroki w Keras 3.6.2. Warstwy: podstawowe bloki konstrukcyjne uczenia głębokiego 3.6.3. Od warstw po modele 3.6.4. Krok "kompilacji": konfiguracja procesu uczenia 3.6.5. Wybór funkcji straty 3.6.6. Metoda fit 3.6.7. Monitorowanie straty i wskaźników dla danych walidacyjnych 3.6.8. Wnioskowanie: używanie modelu po treningu Podsumowanie 4. Klasyfikacja i regresja 4.1. Przykład klasyfikacji binarnej: klasyfikacja recenzji filmów 4.1.1. Zbiór danych IMDb 4.1.2. Przygotowywanie danych 4.1.3. Budowa modelu 4.1.4. Walidacja modelu 4.1.5. Używanie wytrenowanej sieci do generowania przewidywań dotyczących nowych danych 4.1.6. Dalsze eksperymenty 4.1.7. Wnioski 4.2. Przykład klasyfikacji wieloklasowej: klasyfikacja krótkich artykułów prasowych 4.2.1. Zbiór danych Agencji Reutera 4.2.2. Przygotowywanie danych 4.2.3. Budowanie modelu 4.2.4. Walidacja modelu 4.2.5. Generowanie przewidywań dotyczących nowych danych 4.2.6. Inne sposoby obsługi etykiet i funkcji straty 4.2.7. Dlaczego warto tworzyć odpowiednio duże warstwy pośrednie? 4.2.8. Dalsze eksperymenty 4.2.9. Wnioski 4.3. Przykład regresji: przewidywanie cen mieszkań 4.3.1. Zbiór cen domów w Kalifornii 4.3.2. Przygotowywanie danych 4.3.3. Budowanie modelu 4.3.4. K-krotna walidacja krzyżowa 4.3.5. Generowanie przewidywań dotyczących nowych danych 4.3.6. Wnioski Podsumowanie 5. Podstawy uczenia maszynowego 5.1. Generalizacja: cel uczenia maszynowego 5.1.1. Zbyt słabe dopasowanie i nadmierne dopasowanie 5.1.2. Generalizacja w uczeniu głębokim 5.2. Ocena modeli uczenia maszynowego 5.2.1. Zbiory treningowe, walidacyjne i testowe 5.2.2. Proste punkty odniesienia oparte na zdrowym rozsądku 5.2.3. Rzeczy, o których warto pamiętać 5.3. Poprawa dopasowania modelu 5.3.1. Dostrajanie kluczowych parametrów spadku gradientu 5.3.2. Lepsze założenia wstępne dla architektury 5.3.3. Zwiększanie pojemności modelu 5.4. Poprawa generalizacji 5.4.1. Porządkowanie zbioru danych 5.4.2. Przetwarzanie cech 5.4.3. Wczesne zatrzymywanie trenowania 5.4.4. Regularyzacja modelu Podsumowanie 6. Uniwersalny przepływ roboczy uczenia maszynowego 6.1. Definiowanie zadania 6.1.1. Definiowanie problemu 6.1.2. Zbieranie danych 6.1.3. Zrozumienie danych 6.1.4. Wybór miary sukcesu 6.2. Budowa modelu 6.2.1. Przygotowywanie danych 6.2.2. Określanie techniki oceny wydajności modelu 6.2.3. Tworzenie modeli lepszych od linii bazowej 6.2.4. Skalowanie w górę: tworzenie modelu, który ulega nadmiernemu dopasowaniu 6.2.5. Regularyzacja modelu i jego dostrajanie 6.3. Wdrażanie modelu 6.3.1. Prezentacja modelu interesariuszom i ustalanie oczekiwań 6.3.2. Dostarczanie modelu wnioskowania 6.3.3. Monitorowanie modelu działającego w środowisku produkcyjnym 6.3.4. Utrzymywanie modelu Podsumowanie 7. Szczegółowe omówienie biblioteki Keras 7.1. Spektrum przepływów pracy 7.2. Różne sposoby budowy modeli Keras 7.2.1. Model sekwencyjny 7.2.2. Funkcjonalny interfejs API 7.2.3. Tworzenie modelu przez dziedziczenie po klasie Model 7.2.4. Mieszanie i dopasowywanie różnych komponentów 7.2.5. Pamiętaj: używaj odpowiednich narzędzi do swojego zadania 7.3. Wbudowane trenowanie i pętle ewaluacyjne 7.3.1. Pisanie własnych wskaźników 7.3.2. Używanie wywołań zwrotnych 7.3.3. Pisanie własnych wywołań zwrotnych 7.3.4. Monitorowanie i wizualizacja z użyciem TensorBoard 7.4. Pisanie własnych pętli trenowania i ewaluacji 7.4.1. Trenowanie a wnioskowanie 7.4.2. Pisanie niestandardowych funkcji kroku trenowania 7.4.3. Niskopoziomowe użycie wskaźników 7.4.4. Użycie metody fit() z niestandardową pętlą trenowania 7.4.5. Obsługa wskaźników w niestandardowej metodzie train_step() Podsumowanie 8. Klasyfikacja obrazów 8.1. Wprowadzenie do konwolucyjnych sieci neuronowych 8.1.1. Działanie sieci konwolucyjnej 8.1.2. Operacja max-pooling 8.2. Trenowanie konwolucyjnej sieci neuronowej na małym zbiorze danych 8.2.1. Stosowanie uczenia głębokiego w problemach małych zbiorów danych 8.2.2. Pobieranie danych 8.2.3. Budowa modelu 8.2.4. Wstępna obróbka danych 8.2.5. Stosowanie techniki augmentacji danych 8.3. Korzystanie ze wstępnie wytrenowanego modelu 8.3.1. Ekstrakcja cech ze wstępnie wytrenowanego modelu 8.3.2. Dostrajanie wstępnie wytrenowanego modelu Podsumowanie 9. Wzorce architektury sieci konwolucyjnych 9.1. Modułowość, hierarchia i ponowne użycie 9.2. Połączenie rezydualne 9.3. Normalizacja wsadu 9.4. Separowalne konwolucje po kanałach 9.5. Zebranie informacji: mały model podobny do Xception 9.6. Wykraczanie poza konwolucję: transformer wizyjny Podsumowanie 10. Czego uczą się neuronowe sieci konwolucyjne? 10.1. Wizualizacja pośrednich aktywacji 10.2. Wizualizacja filtrów konwolucyjnych sieci neuronowych 10.2.1. Wznoszenie gradientu w TensorFlow 10.2.2. Wznoszenie gradientu w PyTorch 10.2.3. Wznoszenie gradientu w JAX 10.2.4. Pętla wizualizacji filtra 10.3. Wizualizacja map ciepła aktywacji klas 10.3.1. Pobieranie gradientu najwyższej klasy: wersja TensorFlow 10.3.2. Pobieranie gradientu najwyższej klasy: wersja PyTorch 10.3.3. Pobieranie gradientu najwyższej klasy: wersja JAX 10.3.4. Wyświetlanie mapy ciepła aktywacji klasy 10.4. Wizualizacja przestrzeni ukrytej sieci konwolucyjnej Podsumowanie 11. Segmentacja obrazu 11.1. Zadania widzenia komputerowego 11.1.1. Rodzaje segmentacji obrazu 11.2. Trenowanie modelu segmentacji od podstaw 11.2.1. Pobieranie zbioru danych na potrzeby segmentacji 11.2.2. Budowa i trenowanie modelu segmentującego obraz 11.3. Użycie wstępnie wytrenowanego modelu segmentacji 11.3.1. Pobieranie modelu Segment Anything Model 11.3.2. Jak działa model SAM? 11.3.3. Przygotowanie obrazu testowego 11.3.4. Promptowanie modelu z podaniem punktu docelowego 11.3.5. Promptowanie modelu z podaniem ramki Podsumowanie 12. Wykrywanie obiektów 12.1. Jednoetapowe i dwuetapowe detektory obiektów 12.1.1. Dwuetapowe detektory R-CNN 12.1.2. Detektory jednoetapowe 12.2. Trenowanie modelu YOLO od podstaw 12.2.1. Pobieranie zbioru danych COCO 12.2.2. Budowanie modelu YOLO 12.2.3. Przygotowanie danych ze zbioru COCO dla modelu YOLO 12.2.4. Trenowanie modelu YOLO 12.3. Używanie wstępnie wytrenowanego detektora RetinaNet Podsumowanie 13. Prognozowanie szeregów czasowych 13.1. Różne rodzaje zadań z szeregami czasowymi 13.2. Przykład prognozowania temperatury 13.2.1. Przygotowanie danych 13.2.2. Punkt odniesienia oparty na zdrowym rozsądku, a nie na uczeniu maszynowym 13.2.3. Próba wykorzystania podstawowego modelu uczenia maszynowego 13.2.4. Próba wykorzystania jednowymiarowego modelu konwolucyjnego 13.3. Rekurencyjne sieci neuronowe 13.3.1. Działanie rekurencyjnych sieci neuronowych 13.3.2. Warstwa rekurencyjna w Keras 13.3.3. Wykorzystanie pełnego potencjału rekurencyjnych sieci neuronowych 13.3.4. Rekurencyjna technika dropout jako odpowiedź na nadmierne dopasowanie 13.3.5. Układanie warstw rekurencyjnych w stos 13.3.6. Użycie dwukierunkowych rekurencyjnych sieci neuronowych 13.4. Idąc jeszcze dalej Podsumowanie 14. Klasyfikacja tekstu 14.1. Krótka historia przetwarzania języka naturalnego 14.2. Przygotowanie danych tekstowych 14.2.1. Tokenizacja na znaki i na słowa 14.2.2. Tokenizacja na podsłowa 14.3. Zbiory a sekwencje 14.3.1. Wczytywanie zbioru danych IMDb 14.4. Modele oparte na zbiorach 14.4.1. Trenowanie modelu typu worek słów 14.4.2. Trenowanie modelu bigramowego 14.5. Modele sekwencyjne 14.5.1. Trenowanie modelu rekurencyjnego 14.5.2. Osadzenia słów 14.5.3. Używanie osadzeń słów 14.5.4. Wstępne trenowanie osadzeń tekstu 14.5.5. Klasyfikacja z użyciem wstępnie wytrenowanych osadzeń słów Podsumowanie 15. Modele językowe i transformer 15.1. Model językowy 15.1.1. Trenowanie szekspirowskiego modelu językowego 15.1.2. Generowanie tekstu w stylu Szekspira 15.2. Uczenie sekwencja do sekwencji 15.2.1. Tłumaczenie z języka angielskiego na hiszpański 15.2.2. Trenowanie sekwencja do sekwencji z użyciem rekurencyjnych sieci neuronowych 15.3. Architektura transformera 15.3.1. Mechanizm uwagi oparty na iloczynie skalarnym 15.3.2. Blok enkodera w transformerze 15.3.3. Blok dekodera w transformerze 15.3.4. Uczenie sekwencja do sekwencji za pomocą transformera 15.3.5. Osadzanie informacji o pozycji 15.4. Klasyfikacja z użyciem wstępnie wytrenowanego transformera 15.4.1. Wstępne trenowanie enkodera transformera 15.4.2. Wczytywanie wstępnie wytrenowanego transformera 15.4.3. Wstępne przetwarzanie recenzji filmowych IMDb 15.4.4. Dostrajanie wstępnie wytrenowanego transformera 15.5. Dlaczego transformer jest tak wydajny? Podsumowanie 16. Generowanie tekstu 16.1. Krótka historia generowania sekwencji 16.2. Trenowanie miniGPT 16.2.1. Budowanie modelu 16.2.2. Wstępne trenowanie modelu 16.2.3. Dekodowanie generatywne 16.2.4. Strategie próbkowania 16.3. Używanie wstępnie wytrenowanych dużych modeli językowych 16.3.1. Generowanie tekstu z modelem Gemma 16.3.2. Dostrajanie na instrukcjach 16.3.3. Adaptacja niskiego rzędu 16.4. Dalsze kroki z modelami LLM 16.4.1. Uczenie ze wzmocnieniem z informacją zwrotną od człowieka (RLHF) 16.4.2. Multimodalne modele LLM 16.4.3. Generowanie wspomagane wyszukiwaniem (RAG) 16.4.4. Modele "rozumujące" 16.5. Dokąd zmierzają duże modele językowe? Podsumowanie 17. Generowanie obrazu 17.1. Uczenie głębokie do generowania obrazu 17.1.1. Próbkowanie z ukrytych przestrzeni obrazów 17.1.2. Autoenkodery wariacyjne 17.1.3. Implementacja autoenkodera wariacyjnego z Keras 17.2. Modele dyfuzyjne 17.2.1. Zbiór danych Oxford Flowers 17.2.2. Autoenkoder odszumiający typu U-Net 17.2.3. Pojęcia kroku dyfuzji i harmonogramu dyfuzji 17.2.4. Proces trenowania 17.2.5. Proces generowania 17.2.6. Wizualizacja rezultatów z niestandardowym wywołaniem zwrotnym 17.2.7. Czas zacząć! 17.3. Modele tekst-do-obrazu 17.3.1. Badanie przestrzeni ukrytej modelu tekst-do-obrazu Podsumowanie 18. Sprawdzone praktyki 18.1. Korzystanie z pełni możliwości modeli 18.1.1. Optymalizacja hiperparametrów 18.1.2. Składanie modeli 18.2. Trenowanie modeli na większą skalę z użyciem wielu urządzeń 18.2.1. Trenowanie na wielu procesorach GPU 18.2.2. Trenowanie rozproszone w praktyce 18.2.3. Trenowanie na TPU 18.3. Przyspieszanie trenowania i wnioskowania za pomocą obliczeń z mniejszą precyzją 18.3.1. Precyzja zmiennoprzecinkowa 18.3.2. Wnioskowanie w połowicznej precyzji 18.3.3. Trenowanie z mieszaną precyzją 18.3.4. Skalowanie straty z mieszaną precyzją 18.3.5. Trenowanie z float8 18.3.6. Szybsze wnioskowanie z kwantyzacją Podsumowanie 19. Przyszłość sztucznej inteligencji 19.1. Ograniczenia uczenia głębokiego 19.1.1. Modele uczenia głębokiego słabo adaptują się do nowości 19.1.2. Modele uczenia głębokiego są bardzo wrażliwe na sposób formułowania i inne czynniki rozpraszające 19.1.3. Modele uczenia głębokiego mają problem z nauką programów podlegających generalizacji 19.1.4. Ryzyko antropomorfizacji modeli uczenia maszynowego 19.2. Skala nie jest złotym środkiem 19.2.1. Automaty a inteligentne agenty 19.2.2. Generalizacja lokalna a generalizacja ekstremalna 19.2.3. Zastosowanie inteligencji 19.2.4. Spektrum generalizacji 19.3. Jak budować inteligencję? 19.3.1. Hipoteza kalejdoskopowa 19.3.2. Istota inteligencji: dostrzeganie abstrakcji i jej rekombinacja 19.3.3. Ustalenie odpowiedniego celu jest ważne 19.3.4. Nowy cel: przystosowywanie się w locie 19.3.5. Fundacja ARC Prize 19.3.6. Era przystosowywania się w czasie testowania 19.3.7. ARC-AGI-2 19.4. Brakujące elementy: wyszukiwanie i symbole 19.4.1. Dwa bieguny abstrakcji 19.4.2. Poznanie jako połączenie dwóch rodzajów abstrakcji 19.4.3. Dlaczego uczenie głębokie nie jest pełną odpowiedzią na dostrzeganie abstrakcji? 19.4.4. Alternatywne podejście do sztucznej inteligencji: synteza programów 19.4.5. Łączenie uczenia głębokiego i syntezy programów 19.4.6. Wielokrotne używanie modułowych procedur składowych i nieustanne uczenie się 19.4.7. Przewidywania dotyczące dalekiej przyszłości 20. Wnioski 20.1. Przypomnienie najważniejszych koncepcji 20.1.1. Różne podejścia do sztucznej inteligencji 20.1.2. Co sprawia, że uczenie głębokie to wyjątkowa dziedzina uczenia maszynowego? 20.1.3. Jak należy traktować uczenie głębokie? 20.1.4. Najważniejsze technologie 20.1.5. Uniwersalny przepływ roboczy uczenia maszynowego 20.1.6. Najważniejsze architektury sieci 20.2. Ograniczenia uczenia głębokiego 20.3. Przyszłość uczenia głębokiego 20.4. Bycie na bieżąco z nowościami związanymi z szybko rozwijającą się dziedziną 20.4.1. Zdobywaj wiedzę praktyczną, pracując z prawdziwymi problemami przedstawianymi w serwisie Kaggle 20.4.2. Czytaj o nowych rozwiązaniach w serwisie arXiv 20.4.3. Eksploruj ekosystem związany z pakietem Keras 20.5. Ostatnie słowa Skorowidz

Specyfikacja

Podstawowe informacje

Autor
  • Francois Chollet, Matthew Watson
Wydawnictwo
  • Helion
Okładka
  • Miękka
Rok wydania
  • 2026
Ilość stron
  • 664
Tematyka
  • Programowanie
  • Projektowanie
ISBN
  • 9788328939387