Uczenie głębokie od zera. Podstawy implementacji w Pythonie - ebook
Uczenie głębokie od zera. Podstawy implementacji w Pythonie - ebook
Uczenie głębokie (ang. deep learning) zyskuje ostatnio ogromną popularność. Jest to ściśle związane z coraz częstszym zastosowaniem sieci neuronowych w przeróżnych branżach i dziedzinach. W konsekwencji inżynierowie oprogramowania, specjaliści do spraw przetwarzania danych czy osoby w praktyce zajmujące się uczeniem maszynowym muszą zdobyć solidną wiedzę o tych zagadnieniach. Przede wszystkim trzeba dogłębnie zrozumieć podstawy uczenia głębokiego. Dopiero po uzyskaniu biegłości w posługiwaniu się poszczególnymi koncepcjami i modelami możliwe jest wykorzystanie w pełni potencjału tej dynamicznie rozwijającej się technologii.
Ten praktyczny podręcznik, poświęcony podstawom uczenia głębokiego, zrozumiale i wyczerpująco przedstawia zasady działania sieci neuronowych z trzech różnych poziomów: matematycznego, obliczeniowego i konceptualnego. Takie podejście wynika z faktu, że dogłębne zrozumienie sieci neuronowych wymaga nie jednego, ale kilku modeli umysłowych, z których każdy objaśnia inny aspekt działania tych sieci. Zaprezentowano tu również techniki implementacji poszczególnych elementów w języku Python, co pozwala utworzyć działające sieci neuronowe. Dzięki tej książce stanie się jasne, w jaki sposób należy tworzyć, uczyć i stosować wielowarstwowe, konwolucyjne i rekurencyjne sieci neuronowe w różnych praktycznych zastosowaniach.
W książce między innymi:
- matematyczne podstawy uczenia głębokiego
- tworzenie modeli do rozwiązywania praktycznych problemów
- standardowe i niestandardowe techniki treningu sieci neuronowych
- rozpoznawanie obrazów za pomocą konwolucyjnych sieci neuronowych
- rekurencyjne sieci neuronowe, ich działanie i implementacja
- praca z wykorzystaniem biblioteki PyTorch
Uczenie głębokie: zrozum, zanim zaimplementujesz!
Spis treści
Wprowadzenie 9
1. Podstawowe zagadnienia 15
- Funkcje 16
- Matematyka 16
- Diagramy 16
- Kod 17
- Pochodne 20
- Matematyka 20
- Diagramy 20
- Kod 21
- Funkcje zagnieżdżone 22
- Diagram 22
- Matematyka 22
- Kod 23
- Inny diagram 23
- Reguła łańcuchowa 24
- Matematyka 24
- Diagram 24
- Kod 25
- Nieco dłuższy przykład 27
- Matematyka 27
- Diagram 27
- Kod 28
- Funkcje z wieloma danymi wejściowymi 29
- Matematyka 30
- Diagram 30
- Kod 30
- Pochodne funkcji z wieloma danymi wejściowymi 31
- Diagram 31
- Matematyka 31
- Kod 32
- Funkcje przyjmujące wiele wektorów jako dane wejściowe 32
- Matematyka 33
- Tworzenie nowych cech na podstawie istniejących 33
- Matematyka 33
- Diagram 33
- Kod 34
- Pochodne funkcji z wieloma wektorami wejściowymi 35
- Diagram 35
- Matematyka 36
- Kod 36
- Następny etap - funkcje wektorowe i ich pochodne 37
- Diagram 37
- Matematyka 37
- Kod 38
- Funkcje wektorowe i ich pochodne w kroku wstecz 38
- Grafy obliczeniowe z danymi wejściowymi w postaci dwóch macierzy dwuwymiarowych 40
- Matematyka 41
- Diagram 43
- Kod 43
- Ciekawa część - krok wstecz 43
- Diagram 44
- Matematyka 44
- Kod 46
- Podsumowanie 50
2. Wprowadzenie do budowania modeli 51
- Wstęp do uczenia nadzorowanego 52
- Modele uczenia nadzorowanego 53
- Regresja liniowa 55
- Regresja liniowa - diagram 55
- Regresja liniowa - bardziej pomocny diagram (i obliczenia matematyczne) 57
- Dodawanie wyrazu wolnego 58
- Regresja liniowa - kod 58
- Uczenie modelu 59
- Obliczanie gradientów - diagram 59
- Obliczanie gradientów - matematyka (i trochę kodu) 60
- Obliczanie gradientów - (kompletny) kod 61
- Używanie gradientów do uczenia modelu 62
- Ocena modelu - testowe i treningowe zbiory danych 63
- Ocena modelu - kod 63
- Analizowanie najważniejszej cechy 65
- Budowanie sieci neuronowych od podstaw 66
- Krok 1. Zestaw regresji liniowych 67
- Krok 2. Funkcja nieliniowa 67
- Krok 3. Inna regresja liniowa 68
- Diagramy 68
- Kod 70
- Sieci neuronowe - krok wstecz 71
- Uczenie i ocena pierwszej sieci neuronowej 73
- Dwa powody, dla których nowy model jest lepszy 74
- Podsumowanie 75
3. Deep learning od podstaw 77
- Definicja procesu deep learning - pierwszy krok 77
- Elementy sieci neuronowych - operacje 79
- Diagram 79
- Kod 80
- Elementy sieci neuronowych - warstwy 82
- Diagramy 82
- Elementy z elementów 84
- Wzorzec warstwy 86
- Warstwa gęsta 88
- Klasa NeuralNetwork (i ewentualnie inne) 89
- Diagram 89
- Kod 90
- Klasa Loss 90
- Deep learning od podstaw 92
- Implementowanie treningu na porcjach danych 92
- Klasa NeuralNetwork - kod 93
- Nauczyciel i optymalizator 95
- Optymalizator 95
- Nauczyciel 97
- Łączenie wszystkich elementów 98
- Pierwszy model z dziedziny deep learning (napisany od podstaw) 99
- Podsumowanie i dalsze kroki 100
4. Rozszerzenia 101
- Intuicyjne rozważania na temat sieci neuronowych 102
- Funkcja straty - funkcja softmax z entropią krzyżową 104
- Komponent nr 1. Funkcja softmax 104
- Komponent nr 2. Entropia krzyżowa 105
- Uwaga na temat funkcji aktywacji 108
- Eksperymenty 111
- Wstępne przetwarzanie danych 111
- Model 112
- Eksperyment: wartość straty z użyciem funkcji softmax z entropią krzyżową 113
- Współczynnik momentum 113
- Intuicyjny opis współczynnika momentum 114
- Implementowanie współczynnika momentum w klasie Optimizer 114
- Eksperyment - algorytm SGD ze współczynnikiem momentum 116
- Zmniejszanie współczynnika uczenia 116
- Sposoby zmniejszania współczynnika uczenia 116
- Eksperymenty - zmniejszanie współczynnika uczenia 118
- Inicjowanie wag 119
- Matematyka i kod 120
- Eksperymenty - inicjowanie wag 121
- Dropout 122
- Definicja 122
- Implementacja 122
- Eksperymenty - dropout 123
- Podsumowanie 125
5. Konwolucyjne sieci neuronowe 127
- Sieci neuronowe i uczenie reprezentacji 127
- Inna architektura dla danych graficznych 128
- Operacja konwolucji 129
- Wielokanałowa operacja konwolucji 131
- Warstwy konwolucyjne 131
- Wpływ na implementację 132
- Różnice między warstwami konwolucyjnymi a warstwami gęstymi 133
- Generowanie predykcji z użyciem warstw konwolucyjnych - warstwa spłaszczania 134
- Warstwy agregujące 135
- Implementowanie wielokanałowej operacji konwolucji 137
- Krok w przód 137
- Konwolucja - krok wstecz 140
- Porcje danych, konwolucje dwuwymiarowe i operacje wielokanałowe 144
- Konwolucje dwuwymiarowe 145
- Ostatni element - dodawanie kanałów 147
- Używanie nowej operacji do uczenia sieci CNN 150
- Operacja Flatten 150
- Kompletna warstwa Conv2D 151
- Eksperymenty 152
- Podsumowanie 153
6. Rekurencyjne sieci neuronowe 155
- Najważniejsze ograniczenie - przetwarzanie odgałęzień 156
- Automatyczne różniczkowanie 158
- Pisanie kodu do akumulowania gradientów 158
- Powody stosowania sieci RNN 162
- Wprowadzenie do sieci RNN 163
- Pierwsza klasa dla sieci RNN - RNNLayer 164
- Druga klasa dla sieci RNN - RNNNode 165
- Łączenie obu klas 166
- Krok wstecz 167
- Sieci RNN - kod 169
- Klasa RNNLayer 170
- Podstawowe elementy sieci RNNNode 172
- Zwykłe węzły RNNNode 173
- Ograniczenia zwykłych węzłów RNNNode 175
- Pierwsze rozwiązanie - węzły GRUNode 176
- Węzły LSTMNode 179
- Reprezentacja danych dla opartego na sieci RNN modelu języka naturalnego na poziomie znaków 182
- Inne zadania z obszaru modelowania języka naturalnego 182
- Łączenie odmian warstw RNNLayer 183
- Łączenie wszystkich elementów 184
- Podsumowanie 185
7. PyTorch 187
- Typ Tensor w bibliotece PyTorch 187
- Deep learning z użyciem biblioteki PyTorch 188
- Elementy z biblioteki PyTorch - klasy reprezentujące model, warstwę, optymalizator i wartość straty 189
- Implementowanie elementów sieci neuronowej za pomocą biblioteki PyTorch - warstwa DenseLayer 190
- Przykład - modelowanie cen domów w Bostonie z użyciem biblioteki PyTorch 191
- Elementy oparte na bibliotece PyTorch - klasy optymalizatora i wartości straty 192
- Elementy oparte na bibliotece PyTorch - klasa nauczyciela 193
- Sztuczki służące do optymalizowania uczenia w bibliotece PyTorch 195
- Sieci CNN w bibliotece PyTorch 196
- Klasa DataLoader i transformacje 198
- Tworzenie sieci LSTM za pomocą biblioteki PyTorch 200
- Postscriptum - uczenie nienadzorowane z użyciem autoenkoderów 202
- Uczenie reprezentacji 203
- Podejście stosowane w sytuacjach, gdy w ogóle nie ma etykiet 203
- Implementowanie autoenkodera za pomocą biblioteki PyTorch 204
- Trudniejszy test uczenia nienadzorowanego i rozwiązanie 209
- Podsumowanie 210
A. Skok na głęboką wodę 211
- Reguła łańcuchowa dla macierzy 211
- Gradient dla wartości straty względem wyrazu wolnego 215
- Konwolucje z użyciem mnożenia macierzy 215
Kategoria: | Bazy danych |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-6598-8 |
Rozmiar pliku: | 6,9 MB |