"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