Szczegóły ebooka

Sztuczna inteligencja i uczenie maszynowe dla programistów. Praktyczny przewodnik po sztucznej inteligencji

Sztuczna inteligencja i uczenie maszynowe dla programistów. Praktyczny przewodnik po sztucznej inteligencji

Laurence Moroney

Ebook

Sztuczna inteligencja i uczenie maszynowe znajdują coraz więcej zastosowań w niemal wszystkich istotnych branżach. W technologiach sieci neuronowych tkwi olbrzymi potencjał. Za rozwojem uczenia maszynowego muszą nadążać architekci i programiści: aplikacja, w której wykorzystano technologie sztucznej inteligencji, musi pasować do określonego zastosowania. Poszczególne systemy różnią się od siebie, tak samo jak różne są rozwiązywane przez nie problemy. Sztuczna inteligencja ujawni swoje ogromne możliwości tylko, jeśli inżynierowie dostosują swoje aplikacje do rozwiązywania konkretnych problemów.

Ta książka jest praktycznym podręcznikiem opartym na sprawdzonej metodyce: nauce poprzez pisanie kodu w Pythonie. Aby w pełni z niego skorzystać, nie musisz znać wyższej matematyki. Dzięki praktycznym lekcjom szybko zaczniesz programowo tworzyć konkretne rozwiązania. Dowiesz się, jak można zaimplementować najważniejsze algorytmy uczenia maszynowego, korzystając ze znakomitej biblioteki TensorFlow. Nauczysz się też, w jaki sposób wdrażać modele uczenia maszynowego i tworzyć przydatne aplikacje, które będą działały w różnych środowiskach i na różnych platformach: przykładowo napiszesz aplikację w języku Kotlin w środowisku Android Studio czy też w języku Swift w środowisku Xcode.

W książce między innymi:

  • podstawy uczenia maszynowego
  • zastosowanie biblioteki TensorFlow do budowy praktycznych modeli
  • tworzenie modeli sieci neuronowych
  • implementacja widzenia komputerowego i rozpoznawania obrazów
  • przetwarzanie języka naturalnego
  • implementacja modeli dla urządzeń z systemami Android i iOS
  • udostępnianie modeli w internecie i chmurze dzięki systemowi TensorFlow Serving

Uczenie maszynowe: nie przestawaj zdobywać wiedzy!

  • Opinie o książce
  • Słowo wstępne
  • Przedmowa
    • Dla kogo jest ta książka?
    • Dlaczego napisałem tę książkę?
    • Jak się poruszać po tej książce?
    • Jakich zagadnień się nauczysz?
    • Zasoby dostępne w sieci
    • Konwencje zastosowane w tej książce
    • Wykorzystanie przykładów kodu
    • Podziękowania
  • CZĘŚĆ I. Tworzenie modeli
  • Rozdział 1. Wprowadzenie do biblioteki TensorFlow
    • Czym jest uczenie maszynowe?
    • Ograniczenia programowania tradycyjnego
    • Od programowania do uczenia
    • Czym jest TensorFlow?
    • Użycie platformy TensorFlow
      • Instalowanie platformy TensorFlow za pomocą języka Python
      • Użycie platformy TensorFlow w środowisku PyCharm
      • Użycie platformy TensorFlow w środowisku Google Colab
    • Pierwsze kroki z uczeniem maszynowym
      • Czego nauczyła się sieć?
    • Podsumowanie
  • Rozdział 2. Wprowadzenie do widzenia komputerowego
    • Rozpoznawanie elementów odzieży
      • Dane: Fashion MNIST
    • Neurony widzenia komputerowego
    • Projektowanie sieci neuronowej
      • Cały kod programu
    • Trenowanie sieci neuronowej
    • Analiza wyników modelu
    • Trenowanie przez dłuższy czas nadmierne dopasowanie
    • Zakończenie trenowania
    • Podsumowanie
  • Rozdział 3. Bardziej zaawansowane zagadnienie: wykrywanie cech w obrazach
    • Konwolucje
    • Pooling
    • Implementacja konwolucyjnych sieci neuronowych
    • Analiza sieci konwolucyjnej
    • Tworzenie konwolucyjnej sieci neuronowej rozróżniającej konie i ludzi
      • Zbiór danych Horses or Humans
      • Klasa ImageDataGenerator z pakietu Keras
      • Architektura konwolucyjnej sieci neuronowej przetwarzającej zbiór Horses or Humans
      • Tworzenie zbioru walidacyjnego
      • Testowanie obrazów ze zbioru Horse or Human
    • Generowanie dodatkowych obrazów
    • Uczenie transferowe
    • Klasyfikowanie wieloklasowe
    • Regularyzacja dropout
    • Podsumowanie
  • Rozdział 4. Korzystanie za pomocą biblioteki TensorFlow Datasets z publicznie dostępnych zbiorów danych
    • Pierwsze kroki z TFDS
    • Użycie biblioteki TFDS z modelami Keras
      • Wczytywanie określonych wersji
    • Użycie funkcji mapowania do generowania sztucznych danych
      • Użycie biblioteki TensorFlow Addons
    • Korzystanie z niestandardowych podzbiorów
    • Czym jest TFRecord?
    • Użycie procesu ETL do zarządzania danymi w TensorFlow
      • Optymalizacja fazy wczytywania
      • Zrównoleglenie procesu ETL w celu poprawy wydajności trenowania
    • Podsumowanie
  • Rozdział 5. Wprowadzenie do przetwarzania języka naturalnego
    • Zamiana języka na liczby
      • Pierwsze kroki z tokenizacją
      • Zamiana zdań na sekwencje
        • Użycie tokenów typu brak w słowniku
        • Do czego służy dopełnianie?
    • Usuwanie słów nieinformatywnych i porządkowanie tekstu
    • Obsługa realnych źródeł danych
      • Pobieranie tekstu za pomocą biblioteki TensorFlow Datasets
        • Korzystanie ze zbiorów danych IMDb zawierających podłańcuchy
      • Pobieranie tekstów z plików CSV
        • Tworzenie podzbiorów treningowych i testowych
      • Pobieranie tekstów z plików JSON
        • Odczytywanie plików JSON
    • Podsumowanie
  • Rozdział 6. Programowa analiza emocji za pomocą osadzeń
    • Ustalanie znaczenia słów
      • Prosty przykład: względne znaczenie słów
      • Przykład bardziej zaawansowany: użycie wektorów
    • Osadzenia w bibliotece TensorFlow
      • Tworzenie detektora sarkazmu przy użyciu osadzania
      • Zmniejszanie nadmiernego dopasowania w modelach językowych
        • Dostosowywanie współczynnika uczenia
        • Rozmiar słownika
        • Wymiary osadzania
        • Architektura modelu
        • Użycie dropoutu
        • Użycie regularyzacji
        • Inne zagadnienia związane z optymalizacją
      • Stosowanie modelu do klasyfikowania zdań
    • Wizualizacja osadzeń
    • Korzystanie ze wstępnie wytrenowanych osadzeń przy użyciu TensorFlow Hub
    • Podsumowanie
  • Rozdział 7. Użycie rekurencyjnych sieci neuronowych do przetwarzania języka naturalnego
    • Podstawy rekurencji
    • Zastosowanie rekurencji w przetwarzaniu języka naturalnego
    • Tworzenie klasyfikatora tekstu przy użyciu rekurencyjnych sieci neuronowych
      • Łączenie warstw LSTM
        • Optymalizacja modeli z wieloma warstwami LSTM
        • Użycie dropoutu
    • Użycie wstępnie wytrenowanych osadzeń w rekurencyjnych sieciach neuronowych
    • Podsumowanie
  • Rozdział 8. Użycie biblioteki TensorFlow do generowania tekstu
    • Zamiana sekwencji na sekwencje wejściowe
    • Tworzenie modelu
    • Generowanie tekstu
      • Prognozowanie następnego słowa
      • Łączenie prognoz w celu generowania tekstu
    • Poszerzenie zbioru danych
    • Zmiana architektury modelu
    • Ulepszenie danych
    • Kodowanie oparte na znakach
    • Podsumowanie
  • Rozdział 9. Sekwencje i dane szeregów czasowych
    • Wspólne atrybuty szeregów czasowych
      • Tendencja
      • Sezonowość
      • Autokorelacja
      • Szum
    • Metody prognozowania szeregów czasowych
      • Prosta metoda prognozowania jako punkt odniesienia
      • Pomiar dokładności prognozy
      • Metoda bardziej zaawansowana: wykorzystanie średniej ruchomej
      • Ulepszenie metody wykorzystującej średnią ruchomą
    • Podsumowanie
  • Rozdział 10. Tworzenie modeli uczenia maszynowego do prognozowania sekwencji
    • Tworzenie okna zbioru danych
      • Tworzenie okna zbioru danych szeregu czasowego
    • Tworzenie sieci DNN i jej trenowanie w celu dopasowania do danych sekwencji
    • Ocena wyników działania sieci DNN
    • Analiza ogólnej prognozy
    • Dostrajanie współczynnika uczenia
    • Dostrajanie hiperparametrów za pomocą narzędzia Keras Tuner
    • Podsumowanie
  • Rozdział 11. Użycie metod konwolucyjnych i rekurencyjnych w modelowaniu sekwencji
    • Użycie konwolucji z danymi sekwencyjnymi
      • Kodowanie konwolucji
      • Eksperymentowanie z hiperparametrami warstwy Conv1D
    • Korzystanie z danych pogodowych NASA
      • Odczytywanie danych GISS w Pythonie
    • Używanie sieci RNN do modelowania sekwencji
      • Korzystanie z większego zbioru danych
    • Użycie innych metod rekurencyjnych
    • Użycie dropoutu
    • Użycie dwukierunkowych sieci RNN
    • Podsumowanie
  • CZĘŚĆ II. Używanie modeli
  • Rozdział 12. Wprowadzenie do TensorFlow Lite
    • Czym jest TensorFlow Lite?
    • Przykład: utworzenie modelu i przekonwertowanie go do formatu TensorFlow Lite
      • Krok 1. zapisanie modelu
      • Krok 2. konwersja i zapamiętanie modelu
      • Krok 3. wczytanie modelu TFLite i alokacja tensorów
      • Krok 4. przeprowadzenie prognozy
    • Przykład: wykorzystanie uczenia transferowego w klasyfikatorze obrazów i jego konwersja na format TensorFlow Lite
    • Przykład: wykorzystanie uczenia transferowego w klasyfikatorze obrazów
      • Krok 1. utworzenie i zapisanie modelu
      • Krok 2. konwersja modelu do formatu TensorFlow Lite
      • Krok 3. optymalizacja modelu
    • Podsumowanie
  • Rozdział 13. Użycie TensorFlow Lite w systemie Android
    • Czym jest Android Studio?
    • Tworzenie pierwszej aplikacji opartej na TensorFlow Lite dla systemu Android
      • Krok 1. utworzenie nowego projektu
      • Krok 2. edycja pliku układu
      • Krok 3. dodanie zależności TensorFlow Lite
      • Krok 4. dodanie modelu TensorFlow Lite
      • Krok 5. utworzenie kodu umożliwiającego użycie modelu TensorFlow Lite do wnioskowania
    • Coś więcej niż Witaj, świecie! przetwarzanie obrazów
    • Przykładowe aplikacje wykorzystujące bibliotekę TensorFlow Lite
    • Podsumowanie
  • Rozdział 14. Użycie TensorFlow Lite w systemie iOS
    • Tworzenie pierwszej aplikacji TensorFlow Lite za pomocą Xcode
      • Krok 1. utworzenie prostej aplikacji iOS
      • Krok 2. dodanie bibliotek TensorFlow Lite do projektu
      • Krok 3. utworzenie interfejsu użytkownika
      • Krok 4. dodanie i zainicjalizowanie klasy odpowiedzialnej za operację prognozowania
      • Krok 5. przeprowadzenie operacji prognozowania
      • Krok 6. dodanie modelu do aplikacji
      • Krok 7. dodanie logiki obsługującej interfejs użytkownika
    • Coś więcej niż Witaj, świecie! przetwarzanie obrazów
    • Przykładowe aplikacje wykorzystujące bibliotekę TensorFlow Lite
    • Podsumowanie
  • Rozdział 15. Wprowadzenie do TensorFlow.js
    • Czym jest TensorFlow.js?
    • Instalowanie i używanie środowiska programistycznego Brackets
    • Tworzenie pierwszego modelu wykorzystującego bibliotekę TensorFlow.js
    • Tworzenie klasyfikatora irysów
    • Podsumowanie
  • Rozdział 16. Rozwiązywanie problemów z zakresu widzenia komputerowego za pomocą biblioteki TensorFlow.js
    • Uwagi dla programistów używających biblioteki TensorFlow dotyczące języka JavaScript
    • Tworzenie konwolucyjnej sieci neuronowej za pomocą języka JavaScript
    • Stosowanie wywołań zwrotnych do wizualizacji
    • Trenowanie za pomocą zbioru MNIST
    • Przeprowadzanie wnioskowania dla obrazów przy użyciu biblioteki TensorFlow.js
    • Podsumowanie
  • Rozdział 17. Konwersja modeli z Pythona do JavaScriptu i ponowne ich użycie
    • Konwersja modeli z Pythona do JavaScriptu
      • Użycie przekonwertowanych modeli
    • Użycie wcześniej przekonwertowanych modeli
      • Klasyfikator treści toksycznych
      • Użycie biblioteki MobileNet do klasyfikowania obrazów w przeglądarce
      • Użycie biblioteki PoseNet
    • Podsumowanie
  • Rozdział 18. Wykorzystanie uczenia transferowego w języku JavaScript
    • Uczenie transferowe przy użyciu biblioteki MobileNet
      • Krok 1. pobranie modelu MobileNet i identyfikacja warstw do użycia
      • Krok 2. utworzenie własnej architektury modelu, w której danymi wejściowymi są dane wyjściowe MobileNet
      • Krok 3. uzyskanie i sformatowanie danych
      • Krok 4. przeprowadzenie trenowania modelu
      • Krok 5. przeprowadzenie wnioskowania za pomocą modelu
    • Uczenie transferowe przy użyciu repozytorium TensorFlow Hub
    • Użycie modeli z portalu TensorFlow.org
    • Podsumowanie
  • Rozdział 19. Wdrażanie modeli za pomocą usługi TensorFlow Serving
    • Czym jest TensorFlow Serving?
    • Instalowanie systemu TensorFlow Serving
      • Instalacja przy użyciu Dockera
      • Bezpośrednia instalacja w systemie Linux
    • Tworzenie i udostępnianie modelu
      • Konfigurowanie serwera
    • Podsumowanie
  • Rozdział 20. Sztuczna inteligencja a etyka, uczciwość i prywatność
    • Uczciwość w procesie programowania
    • Uczciwość w procesie uczenia maszynowego
    • Narzędzia związane z kwestiami uczciwości
      • What-If
      • Facets
    • Uczenie federacyjne
      • Krok 1. identyfikacja dostępnych urządzeń, które można wykorzystać do trenowania
      • Krok 2. identyfikacja odpowiednich urządzeń, które można wykorzystać do trenowania
      • Krok 3. zainstalowanie modelu, który będzie używać zbioru treningowego
      • Krok 4. zwrócenie wyników trenowania do serwera
      • Krok 5. zainstalowanie modelu głównego w urządzeniach
      • Bezpieczna agregacja w uczeniu federacyjnym
      • Uczenie federacyjne przy użyciu TensorFlow Federated
    • Zasady firmy Google dotyczące sztucznej inteligencji
    • Podsumowanie
    • O autorze
    • Kolofon
  • RYSUNKI
  • Tytuł: Sztuczna inteligencja i uczenie maszynowe dla programistów. Praktyczny przewodnik po sztucznej inteligencji
  • Autor: Laurence Moroney
  • Tytuł oryginału: AI and Machine Learning for Coders: A Programmer's Guide to Artificial Intelligence
  • Tłumaczenie: Jacek Janusz
  • ISBN: 978-83-283-7851-3, 9788328378513
  • Data wydania: 2021-08-06
  • Format: Ebook
  • Identyfikator pozycji: szinum
  • Wydawca: Helion