"Zrozumieć głębokie uczenie"

Identyfikator Librowy: 213124

Spis treści

Strona tytułowa 3

Strona redakcyjna 4

Przedmowa 11

Podziękowania 12

O tej książce 13

O autorze 15

1. Wprowadzenie do głębokiego uczenia: dlaczego warto się tego nauczyć 16

W tym rozdziale 16

Dlaczego warto opanować głębokie uczenie się 17

Zapraszamy do grokowania głębokiego uczenia 17

Czy trudno będzie się tego nauczyć? 18

Dlaczego powinieneś przeczytać tę książkę 18

Co jest potrzebne, aby zacząć 19

Podsumowanie 20

Zapewne potrzebna jest jakaś znajomość Pythona 20

2. Podstawowe koncepcje: jak maszyny się uczą? 21

W tym rozdziale 21

Czym jest głębokie uczenie? 22

Czym jest uczenie się maszyn? 22

Nadzorowane uczenie się maszyn 23

Nienadzorowane uczenie się maszyn 24

Uczenie parametryczne kontra nieparametryczne 24

Nadzorowane uczenie parametryczne 25

Parametryczne uczenie nienadzorowane 27

Uczenie nieparametryczne 28

Podsumowanie 29

3. Wprowadzenie do prognozowania neuronowego: propagacja w przód 30

W tym rozdziale 30

Krok 1: Prognoza 31

Wykonywanie prognozy przez prostą sieć neuronową 32

Czym jest sieć neuronowa? 33

Co robi ta sieć neuronowa? 34

Wykonywanie prognozy dla wielu danych wejściowych 35

Wiele danych wejściowych: Co robi ta sieć neuronowa? 36

Wykonywanie prognozy z wieloma danymi wyjściowymi 41

Prognozowanie z wieloma danymi wejściowymi i wyjściowymi 42

Wiele wejść i wyjść: jak to działa? 44

Prognozowanie na podstawie prognoz 46

Elementarz NumPy 47

Podsumowanie 50

4. Wprowadzenie do prognozowania neuronowego: metoda gradientowa 51

W tym rozdziale 51

Nauka 52

Porównywanie 52

Przewidywanie, porównywanie i nauka 52

Po co mierzyć błędy? 53

Jaka jest najprostsza forma uczenia się sieci neuronowej? 54

Nauka metodą ciepło-zimno 55

Charakterystyka uczenia metodą ciepło-zimno 56

Obliczanie jednocześnie kierunku i wielkości na podstawie błędu 57

Jedna iteracja metody gradientowej 59

Uczenie się jest po prostu redukowaniem błędu 60

Przyjrzyjmy się kilku krokom uczenia się 61

Dlaczego to działa? Czym naprawdę jest weight_delta? 63

Skupmy całą uwagę na jednej idei 64

Pudełko z wystającymi drążkami 65

Pochodne: Podejście drugie 66

Co naprawdę trzeba wiedzieć 67

Czego nie musimy naprawdę wiedzieć 67

Jak użyć pochodnych do uczenia się 67

Psucie metody gradientowej 69

Rozbieżność 70

Wizualizacja nadmiernych korekt 70

Wprowadzenie parametru alpha 71

Alpha w kodzie źródłowym 72

Zapamiętywanie 72

5. Uczenie się dla wielu wag jednocześnie: uogólnienie metody gradientowej 74

W tym rozdziale 74

Uczenie się metodą gradientową przy wielu danych wejściowych 75

Prosty gradient z wieloma danymi wejściowymi – objaśnienie 76

Przyjrzyjmy się kilku krokom uczenia się 79

Zamrożenie jednej wagi: co to daje? 81

Uczenie się metodą gradientową z wieloma wyjściami 84

Metoda gradientowa z wieloma wejściami i wyjściami 86

Czego uczą się te wagi? 88

Wizualizacja wartości wag 90

Wizualizowanie iloczynów skalarnych (sum ważonych) 90

Podsumowanie 91

6. Budowanie pierwszej głębokiej sieci neuronowej: wprowadzenie do propagacji wstecznej 92

W tym rozdziale 92

Problem świateł ulicznych 93

Przygotowywanie danych 94

Macierze i relacje macierzowe 95

Tworzenie macierzy w Pythonie 97

Budowanie sieci neuronowej 98

Pełna, wsadowa i stochastyczna metoda gradientowa 99

Uczenie się całego zbioru danych 99

Sieci neuronowe uczą się korelacji 100

Presja w górę i w dół 101

Przypadek brzegowy: przeuczenie (overfitting) 102

Przypadek brzegowy: sprzeczne presje 103

Uczenie się pośredniej korelacji 104

Tworzenie korelacji 105

Propagacja wsteczna: długodystansowy wkład błędu 106

Układanie sieci neuronowych w stos: przegląd 106

Propagacja wsteczna: dlaczego to działa? 107

Dlaczego sieć neuronowa nadal nie działa 108

Liniowe czy nieliniowe 108

Tajemnica korelacji warunkowej 109

Krótka przerwa 110

Nasza pierwsza „głęboka” sieć neuronowa 111

Propagacja wsteczna w kodzie 112

Jedna iteracja propagacji wstecznej 113

Zebranie wszystkiego razem 114

Dlaczego głębokie sieci są ważne? 115

7. Jak obrazować sieci neuronowe: w myślach i na papierze 117

W tym rozdziale 117

Czas na uproszczenie 118

Korelacja zbiorcza 118

Wcześniejsza, zbyt złożona wizualizacja 119

Uproszczona wizualizacja 120

Jeszcze większe upraszczanie 121

Zobaczmy, jak prognozuje ta sieć 122

Łączenie zmiennych 124

Wizualizacja przy użyciu liter zamiast obrazów 124

Ważność narzędzi wizualizacji 125

Wszystko obok siebie 125

8. Uczenie się sygnałów i ignorowanie szumu: wprowadzenie do regularyzacji i przetwarzania wsadowego 127

W tym rozdziale 127

Trójwarstwowa sieć dla danych MNIST 128

No dobrze, to było łatwe 129

Przeuczenie w sieciach neuronowych 130

Zapamiętywanie a uogólnianie 130

Skąd bierze się przeuczenie 131

Branżowy standard regularyzacji: wykluczanie (dropout) 132

Najprostsza regularyzacja: wczesne zatrzymanie 132

Dlaczego wykluczanie działa: działanie zespołowe 133

Wykluczanie w kodzie 134

Przetwarzanie z wykluczeniem dla danych MNIST 135

Miniwsadowa metoda gradientowa 136

Podsumowanie 138

9. Modelowanie prawdopodobieństwa i nieliniowość: funkcje aktywacji 139

W tym rozdziale 139

Czym jest funkcja aktywacji? 140

Standardowe funkcje aktywacji dla ukrytych warstw 142

Standardowe funkcje aktywacji dla warstwy wyjściowej 143

Kluczowy problem: Dane wejściowe zawierają podobieństwa 145

Obliczanie funkcji softmax 146

Stosowanie funkcji aktywacji 147

Mnożenie delta przez nachylenie 149

Aktualizowanie sieci MNIST 150

Przełożenie wielkości wyjścia na nachylenie (pochodną) 150

10. Neuronowe uczenie się krawędzi i narożników: wprowadzenie do konwolucyjnych sieci neuronowych 153

W tym rozdziale 153

Wielokrotne wykorzystanie tych samych wag w wielu miejscach 154

Warstwa konwolucyjna 155

Prosta implementacja w NumPy 156

Podsumowanie 160

11. Sieci neuronowe rozumiejące język: king–man+woman ==? 161

W tym rozdziale 161

Czym jest rozumienie języka? 162

Przetwarzanie języka naturalnego (NLP) 162

Nadzorowane NLP 163

Przechwytywanie korelacji słów w danych wejściowych 164

Zbiór danych recenzji filmowych z IMDB 164

Prognozowanie recenzji filmów 165

Wprowadzenie do warstw osadzających 166

Interpretowanie wyjścia 168

Architektura sieci neuronowej 169

Porównywanie osadzeń słów 171

Czym jest znaczenie neuronu? 172

Wypełnianie pustych miejsc 173

Znaczenie wynika ze straty 174

King – Man + Woman ~= Queen 177

Analogie słów 178

Podsumowanie 179

12. Sieci neuronowe piszące jak Szekspir: warstwy rekurencyjne dla danych o zmiennej długości 180

W tym rozdziale 180

Czy porównywanie naprawdę ma znaczenie? 181

Wyzwanie: dane o dowolnej długości 181

Zaskakująca siła uśrednionych wektorów słów 182

Jak informacja jest przechowywana w tych osadzeniach? 183

Jak sieć neuronowa wykorzystuje osadzenia? 184

Ograniczenia wektorów „worka słów” 185

Macierze, które niczego nie zmieniają 186

Wykorzystanie macierzy jednostkowych do sumowania osadzeń słów 186

Uczenie się macierzy przejść 187

Uczenie się w celu tworzenia użytecznych wektorów zdań 188

Propagacja w przód w Pythonie 189

Jak zastosować do tego propagację wsteczną? 190

Nauczmy tę sieć! 191

Propagacja w przód przy danych dowolnej długości 192

Przygotowania 192

Propagacja wsteczna dla danych o dowolnej długości 193

Aktualizowanie wag przy danych dowolnej długości 194

Uruchomienie i analiza wyjścia 195

Podsumowanie 196

13. Przedstawiamy automatyczną optymalizację: budujemy platformę głębokiego uczenia 198

W tym rozdziale 198

Czym jest platforma głębokiego uczenia? 199

Wprowadzenie do tensorów 199

Wprowadzenie do automatycznego obliczania gradientu (autograd) 200

Małe podsumowanie 202

Tensory używane wielokrotnie 203

Ulepszenie funkcji autograd w celu obsługi wielokrotnie używanych tensorów 203

Dodawanie obsługi zmiany znaku 206

Jak działa wsteczna propagacja dodawania? 206

Dodawanie obsługi dodatkowych funkcji 207

Wykorzystanie autograd do uczenia sieci neuronowej 210

Dodanie automatycznej optymalizacji 212

Dodanie wsparcia dla różnych typów warstw 213

Warstwy zawierające warstwy 213

Warstwy funkcji straty 214

Jak uczyć platformę 215

Warstwy nieliniowości 216

Warstwa osadzająca 217

Dodawanie indeksowania do mechanizmu autograd 218

Warstwa entropii krzyżowej 219

Warstwa osadzająca powraca 219

Warstwa rekurencyjna 221

Podsumowanie 224

14. Uczenie się pisania jak Szekspir: długa pamięć krótkotrwała (LSTM) 226

W tym rozdziale 226

Modelowanie znaków języka 227

Potrzeba obcięcia propagacji wstecznej 227

Obcięta propagacja wsteczna 228

Próbka wyjścia 230

Zanikające i eksplodujące gradienty 231

Mały przykład propagacji wstecznej w RNN 232

Komórki LSTM 233

Intuicyjne rozumienie bramek LSTM 234

Warstwa LSTM 234

Ulepszanie modelu znaków języka 235

Uczenie LSTM modelu znaków języka 236

Dostrajanie modelu LSTM znaków języka 237

Podsumowanie 238

15. Głębokie uczenie się na niewidzianych danych: wprowadzenie do uczenia sfederowanego 239

W tym rozdziale 239

Problem prywatności w głębokim uczeniu się 240

Sfederowane uczenie się 240

Uczenie się wykrywania spamu 241

Stwórzmy federację 243

Bezpieczne agregowanie 244

Włamywanie się do sfederowanego uczenia się 244

Szyfrowanie homomorficzne 245

Homomorficznie szyfrowane sfederowane uczenie się 246

Podsumowanie 247

16. Co dalej: krótki przewodnik 249

W tym rozdziale 249

Gratulacje! 250

Krok 1: Początek nauki PyTorch 250

Krok 2: Udział w innych kursach głębokiego uczenia się 250

Krok 3: Matematyczne podręczniki głębokiego uczenia się 251

Krok 4: Utworzenie bloga i nauczanie głębokiego uczenia się 251

Krok 5: Twitter 252

Krok 6: Stosowanie wiedzy z artykułów naukowych 252

Krok 7: Zdobądź dostęp do GPU 252

Krok 10: Rozwijanie lokalnej społeczności 253

Krok 8: Zarabianie przy zdobywaniu praktyki 253

Krok 9: Dołączenie do projektu open source 253

Przypisy 254