DEEP LEARNING PRACA Z JĘZYKIEM R I BIBLIOTEKĄ KERAS
FRANCOIS CHOLLET, J.J. ALLAIRE

Wydawnictwo: HELION
Cena: 77.00 zł
65.45 zł brutto
- Paczkomaty InPost 16.99 zł brutto
- Poczta Polska - odbiór w punkcie 11.99 zł brutto
- Poczta Polska - przedpłata 17.99 zł brutto
- Poczta Polska - pobranie 19.99 zł brutto
- Kurier FEDEX - przedpłata 16.99 zł brutto
- Kurier DHL - przedpłata 19.99 zł brutto
- Kurier DHL - pobranie 24.99 zł brutto
- Odbiór osobisty - UWAGA - uprzejmie prosimy poczekać na informację z księgarni o możliwości odbioru zamówienia - 0.00 zł brutto
Opis
ISBN: 978-83-283-4780-9
371 stron
format: B5
oprawa: miękka
Rok wydania: 2019
W ostatnich latach byliśmy świadkami ogromnego postępu technik sztucznej inteligencji, uczenia maszynowego oraz uczenia głębokiego. Konsekwencje tego błyskawicznego rozwoju są odczuwalne w niemal każdej dziedzinie. Wydaje się, że to jedna z tych technologii, które powinny być dostępne dla jak najszerszej grupy ludzi. Dopiero wtedy uczenie głębokie wykorzysta w pełni swój potencjał i stanie się prawdziwym impulsem rozwoju naszej cywilizacji. Co prawda na pierwszy rzut oka ta niesamowita technologia może wydawać się wyjątkowo skomplikowana i trudna do zrozumienia, warto jednak wykorzystać dostępne narzędzia, takie jak biblioteka Keras i język R, aby implementować mechanizmy uczenia głębokiego wszędzie tam, gdzie okażą się przydatne.
Ta książka jest znakomitym przewodnikiem po technikach uczenia głębokiego. Poza wyczerpująco przedstawionymi podstawami znajdziesz tu zasady implementacji tych technik z wykorzystaniem języka R i biblioteki Keras. Dzięki przystępnym wyjaśnieniom i praktycznym przykładom szybko zrozumiesz nawet bardziej skomplikowane zagadnienia uczenia głębokiego. Poznasz koncepcje i dobre praktyki związane z tworzeniem mechanizmów analizy obrazu, przetwarzania języka naturalnego i modeli generatywnych. Przeanalizujesz ponad 30 przykładów kodu uzupełnionego dokładnymi komentarzami. W efekcie szybko przygotujesz się do korzystania z uczenia głębokiego w rozwiązywaniu konkretnych problemów.
SPIS TREŚCI
Przedmowa
Podziękowania
O książce
O autorach
CZĘŚĆ I. PODSTAWY UCZENIA GŁĘBOKIEGO
Rozdział 1. Czym jest uczenie głębokie?
1.1. Sztuczna inteligencja, uczenie maszynowe i uczenie głębokie
1.1.1. Sztuczna inteligencja
1.1.2. Uczenie maszynowe
1.1.3. Formy danych umożliwiające uczenie
1.1.4. "Głębia" uczenia głębokiego
1.1.5. Działanie uczenia głębokiego przedstawione na trzech rysunkach
1.1.6. Co dotychczas osiągnięto za pomocą uczenia głębokiego?
1.1.7. Nie wierz w tymczasową popularność
1.1.8. Nadzieje na powstanie sztucznej inteligencji
1.2. Zanim pojawiło się uczenie głębokie: krótka historia uczenia maszynowego
1.2.1. Modelowanie probabilistyczne
1.2.2. Wczesne sieci neuronowe
1.2.3. Metody jądrowe
1.2.4. Drzewa decyzyjne, lasy losowe i gradientowe wzmacnianie maszyn
1.2.5. Powrót do sieci neuronowych
1.2.6. Co wyróżnia uczenie głębokie?
1.2.7. Współczesne uczenie maszynowe
1.3. Dlaczego uczenie głębokie? Dlaczego teraz?
1.3.1. Sprzęt
1.3.2. Dane
1.3.3. Algorytmy
1.3.4. Nowa fala inwestycji
1.3.5. Demokratyzacja uczenia głębokiego
1.3.6. Co dalej?
Rozdział 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 R
2.2.7. Wsad danych
2.2.8. Prawdziwe przykłady tensorów danych
2.2.9. Dane wektorowe
2.2.10. Dane szeregu czasowego i dane sekwencyjne
2.2.11. Dane w postaci obrazów
2.2.12. Materiały wideo
2.3. Koła zębate sieci neuronowych: operacje na tensorach
2.3.1. Operacje wykonywane element po elemencie
2.3.2. Operacje na tensorach o różnych wymiarach
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.6. Podsumowanie rozdziału
Rozdział 3. Rozpoczynamy korzystanie z sieci neuronowych
3.1. Anatomia sieci neuronowej
3.1.1. Warstwy: podstawowe bloki konstrukcyjne uczenia głębokiego
3.1.2. Modele: sieci warstw
3.1.3. Funkcja straty i optymalizatory: najważniejsze elementy konfiguracji procesu uczenia
3.2. Wprowadzenie do pakietu Keras
3.2.1. Keras, TensorFlow, Theano i CNTK
3.2.2. Instalowanie pakietu Keras
3.2.3. Praca z pakietem Keras: krótkie wprowadzenie
3.3. Przygotowanie stacji roboczej do uczenia głębokiego
3.3.1. Dwie opcje uruchamiania pakietu Keras
3.3.2. Wady i zalety uruchamiania uczenia głębokiego w chmurze
3.3.3. Jaki procesor graficzny najlepiej nadaje się do uczenia głębokiego?
3.4. Przykład klasyfikacji binarnej: klasyfikacja recenzji filmów
3.4.1. Zbiór danych IMDB
3.4.2. Przygotowywanie danych
3.4.3. Budowa sieci neuronowej
3.4.4. Walidacja modelu
3.4.5. Używanie wytrenowanej sieci do generowania przewidywań dotyczących nowych danych 90
3.4.6. Dalsze eksperymenty
3.4.7. Wnioski
3.5. Przykład klasyfikacji wieloklasowej: klasyfikacja krótkich artykułów prasowych 91
3.5.1. Zbiór danych Agencji Reutera
3.5.2. Przygotowywanie danych
3.5.3. Budowanie sieci
3.5.4. Walidacja modelu
3.5.5. Generowanie przewidywań dotyczących nowych danych
3.5.6. Inne sposoby obsługi etykiet i funkcji straty
3.5.7. Dlaczego warto tworzyć odpowiednio duże warstwy pośrednie?
3.5.8. Dalsze eksperymenty
3.5.9. Wnioski
3.6. Przykład regresji: przewidywanie cen mieszkań
3.6.1. Zbiór cen mieszkań w Bostonie
3.6.2. Przygotowywanie danych
3.6.3. Budowanie sieci
3.6.4. K-składowa walidacja krzyżowa
3.6.5. Wnioski
3.7. Podsumowanie rozdziału
Rozdział 4. Podstawy uczenia maszynowego
4.1. Cztery rodzaje uczenia maszynowego
4.1.1. Uczenie nadzorowane
4.1.2. Uczenie nienadzorowane
4.1.3. Uczenie częściowo nadzorowane
4.1.4. Uczenie przez wzmacnianie
4.2. Ocena modeli uczenia maszynowego
4.2.1. Zbiory treningowe, walidacyjne i testowe
4.2.2. Rzeczy, o których warto pamiętać
4.3. Wstępna obróbka danych, przetwarzanie cech i uczenie cech
4.3.1. Przygotowywanie danych do przetwarzania przez sieci neuronowe
4.3.2. Przetwarzanie cech
4.4. Nadmierne dopasowanie i zbyt słabe dopasowanie
4.4.1. Redukcja rozmiaru sieci
4.4.2. Dodawanie regularyzacji wag
4.4.3. Porzucanie - technika dropout
4.5. Uniwersalny przepływ roboczy uczenia maszynowego
4.5.1. Definiowanie problemu i przygotowywanie zbioru danych
4.5.2. Wybór miary sukcesu
4.5.3. Określanie techniki oceny wydajności modelu
4.5.4. Przygotowywanie danych
4.5.5. Tworzenie modeli lepszych od linii bazowej
4.5.6. Skalowanie w górę: tworzenie modelu, który ulega nadmiernemu dopasowaniu
4.5.7. Regularyzacja modelu i dostrajanie jego hiperparametrów
4.6. Podsumowanie rozdziału
CZĘŚĆ II. UCZENIE GŁĘBOKIE W PRAKTYCE
Rozdział 5. Uczenie głębokie i przetwarzanie obrazu
5.1. Wprowadzenie do konwolucyjnych sieci neuronowych
5.1.1. Działanie sieci konwolucyjnej
5.1.2. Operacja max-pooling
5.2. Trenowanie konwolucyjnej sieci neuronowej na małym zbiorze danych
5.2.1. Stosowanie uczenia głębokiego w problemach małych zbiorów danych
5.2.2. Pobieranie danych
5.2.3. Budowa sieci neuronowej
5.2.4. Wstępna obróbka danych
5.2.5. Stosowanie techniki augmentacji danych
5.3. Korzystanie z wcześniej wytrenowanej konwolucyjnej sieci neuronowej
5.3.1. Ekstrakcja cech
5.3.2. Dostrajanie
5.3.3. Wnioski
5.4. Wizualizacja efektów uczenia konwolucyjnych sieci neuronowych
5.4.1. Wizualizacja pośrednich aktywacji
5.4.2. Wizualizacja filtrów konwolucyjnych sieci neuronowych
5.4.3. Wizualizacja map ciepła aktywacji klas
5.5. Podsumowanie rozdziału
Rozdział 6. Uczenie głębokie w przetwarzaniu tekstu i sekwencji
6.1. Praca z danymi tekstowymi
6.1.1. Kodowanie słów i znaków metodą gorącej jedynki
6.1.2. Osadzanie słów
6.1.3. Łączenie wszystkich technik: od surowego tekstu do osadzenia słów
6.1.4. Wnioski
6.2. Rekurencyjne sieci neuronowe
6.2.1. Warstwa rekurencyjna w pakiecie Keras
6.2.2. Warstwy LSTM i GRU
6.2.3. Przykład warstwy LSTM zaimplementowanej w pakiecie Keras
6.2.4. Wnioski
6.3. Zaawansowane zastosowania rekurencyjnych sieci neuronowych
6.3.1. Problem prognozowania temperatury
6.3.2. Przygotowywanie danych
6.3.3. Punkt odniesienia w postaci zdrowego rozsądku
6.3.4. Podstawowe rozwiązanie problemu przy użyciu techniki uczenia maszynowego
6.3.5. Punkt odniesienia w postaci pierwszego modelu rekurencyjnego
6.3.6. Stosowanie rekurencyjnego porzucania w celu zmniejszenia nadmiernego dopasowania
6.3.7. Tworzenie stosów warstw rekurencyjnych
6.3.8. Korzystanie z dwukierunkowych rekurencyjnych sieci neuronowych
6.3.9. Kolejne rozwiązania
6.3.10. Wnioski
6.4. Konwolucyjne sieci neuronowe i przetwarzanie sekwencji
6.4.1. Przetwarzanie sekwencji za pomocą jednowymiarowej sieci konwolucyjnej
6.4.2. Jednowymiarowe łączenie danych sekwencyjnych
6.4.3. Implementacja jednowymiarowej sieci konwolucyjnej
6.4.4. Łączenie sieci konwolucyjnych i rekurencyjnych w celu przetworzenia długich sekwencji
6.4.5. Wnioski
6.5. Podsumowanie rozdziału
Rozdział 7. Najlepsze zaawansowane praktyki uczenia głębokiego
7.1. Funkcjonalny interfejs programistyczny pakietu Keras: wykraczanie poza model sekwencyjny
7.1.1. Wprowadzenie do funkcjonalnego interfejsu API
7.1.2. Modele z wieloma wejściami
7.1.3. Modele z wieloma wyjściami
7.1.4. Skierowane acykliczne grafy warstw
7.1.5. Udostępnianie wag warstwy
7.1.6. Modele pełniące funkcję warstw
7.1.7. Wnioski
7.2. Monitorowanie modeli uczenia głębokiego przy użyciu wywołań zwrotnych pakietu Keras i narzędzia TensorBoard
7.2.1. Używanie wywołań zwrotnych w celu sterowania procesem trenowania modelu
7.2.2. Wprowadzenie do TensorBoard - platformy wizualizacji danych pakietu TensorFlow
7.2.3. Wnioski
7.3. Korzystanie z pełni możliwości modeli
7.3.1. Konstrukcja zaawansowanych architektur
7.3.2. Optymalizacja hiperparametru
7.3.3. Składanie modeli
7.3.4. Wnioski
7.4. Podsumowanie rozdziału
Rozdział 8. Stosowanie uczenia głębokiego w celu generowania danych
8.1. Generowanie tekstu za pomocą sieci LSTM
8.1.1. Krótka historia generatywnych sieci rekurencyjnych
8.1.2. Generowanie danych sekwencyjnych
8.1.3. Dlaczego strategia próbkowania jest ważna?
8.1.4. Implementacja algorytmu LSTM generującego tekst na poziomie liter
8.1.5. Wnioski
8.2. DeepDream
8.2.1. Implementacja algorytmu DeepDream w pakiecie Keras
8.2.2. Wnioski
8.3. Neuronowy transfer stylu
8.3.1. Strata treści
8.3.2. Strata stylu
8.3.3. Implementacja neuronowego transferu stylu przy użyciu pakietu Keras
8.3.4. Wnioski
8.4. Generowanie obrazów przy użyciu wariacyjnych autoenkoderów
8.4.1. Próbkowanie z niejawnej przestrzeni obrazów
8.4.2. Wektory koncepcyjne używane podczas edycji obrazu
8.4.3. Wariacyjne autoenkodery
8.4.4. Wnioski
8.5. Wprowadzenie do generatywnych sieci z przeciwnikiem
8.5.1. Schematyczna implementacja sieci GAN
8.5.2. Zbiór przydatnych rozwiązań
8.5.3. Generator
8.5.4. Dyskryminator
8.5.5. Sieć z przeciwnikiem
8.5.6. Trenowanie sieci DCGAN
8.5.7. Wnioski
8.6. Podsumowanie rozdziału
Rozdział 9. Wnioski
9.1. Przypomnienie najważniejszych koncepcji
9.1.1. Sztuczna inteligencja
9.1.2. Co sprawia, że uczenie głębokie to wyjątkowa dziedzina uczenia maszynowego?
9.1.3. Jak należy traktować uczenie głębokie?
9.1.4. Najważniejsze technologie
9.1.5. Uniwersalny przepływ roboczy uczenia maszynowego
9.1.6. Najważniejsze architektury sieci
9.1.7. Przestrzeń możliwości
9.2. Ograniczenia uczenia głębokiego
9.2.1. Ryzyko antropomorfizacji modeli uczenia maszynowego
9.2.2. Lokalne uogólnianie a ekstremalne uogólnianie
9.2.3. Wnioski
9.3. Przyszłość uczenia głębokiego
9.3.1. Modele jako programy
9.3.2. Wykraczanie poza algorytm propagacji wstecznej i warstwy różniczkowalne
9.3.3. Zautomatyzowane uczenie maszynowe
9.3.4. Nieustanne uczenie się i wielokrotne używanie modułowych procedur składowych
9.3.5. Przewidywania dotyczące dalekiej przyszłości
9.4. Bycie na bieżąco z nowościami związanymi z szybko rozwijającą się dziedziną
9.4.1. Zdobywaj wiedzę praktyczną, pracując z prawdziwymi problemami przedstawianymi w serwisie Kaggle
9.4.2. Czytaj o nowych rozwiązaniach w serwisie arXiv
9.4.3. Eksploruj ekosystem związany z pakietem Keras
9.5. Ostatnie słowa
DODATKI
Dodatek A. Instalowanie pakietu Keras i innych bibliotek niezbędnych do jego działania w systemie Ubuntu
Dodatek B. Uruchamianie kodu w środowisku RStudio Server przy użyciu zdalnej instancji procesora graficznego EC2
Skorowidz
Kod wydawnictwa: 978-83-283-4780-9
Ten produkt nie ma jeszcze opinii
Twoja opinia
aby wystawić opinię.