Algorytmy uczenia maszynowego
Zaawansowane techniki implementacji
Imponujący rozwój standardowych algorytmów przy ciągłej obniżce cen sprzętu i
udostępnianiu coraz to szybszych komponentów przyczynił się do zrewolucjonizowania
wielu gałęzi przemysłu. Obecnie uczenie maszynowe pozwala automatyzować procesy, które
do niedawna musiały być zarządzane przez człowieka. Zadania, które jeszcze dekadę
temu stanowiły nieprzekraczalną przeszkodę, dziś są wykonywane przez zwykły komputer
osobisty. W efekcie dzięki technologii oraz dostępnym wysokopoziomowym otwartym
platformom każdy, kto zainteresuje się uczeniem maszynowym, może projektować i
wdrażać niezwykle potężne modele.
Celem tej książki jest przybliżenie profesjonalistom tajników złożonych algorytmów
uczenia maszynowego i zasad ich stosowania w praktyce.
Poza praktycznymi informacjami dotyczącymi działania algorytmów i ich wdrożeń
znalazły się tu również niezbędne podstawy teoretyczne. Opisano klasyczne modele
uczenia nadzorowanego, nienadzorowanego i półnadzorowanego. Wskazano, w jakich
sytuacjach okazują się one najbardziej przydatne. Zaprezentowano techniki wydobywania
danych za pomocą modeli bayesowskich, algorytmu MCMC, a także dzięki stosowaniu
ukrytych modeli Markowa. Omówiono zestaw przydatnych do uczenia maszynowego narzędzi,
takich jak biblioteki: scikit-learn, Keras i TensorFlow.
Najciekawsze zagadnienia:
najważniejsze koncepcje teoretyczne uczenia maszynowego
modelowanie probabilistyczne i uczenie hebbowskie
zaawansowane koncepcje modeli neuronowych
modele generatywne, takie jak splotowe sieci GAN i sieci Wassersteina
głębokie sieci przekonań
zaawansowane algorytmy: TD(tylda), aktor-krytyk, SARSA i Q-uczenie
O autorze 11
O recenzencie 12
Przedmowa 13
Rozdział 1. Podstawy modelu uczenia maszynowego 19
- Modele a dane 20
- Środkowanie i wybielanie 21
- Zbiory uczące i walidacyjne 24
- Cechy modelu uczenia maszynowego 29
- Pojemność modelu 29
- Obciążenie estymatora 32
- Wariancja estymatora 35
- Funkcje straty i kosztu 39
- Przykładowe funkcje kosztu 43
- Regularyzacja 45
- Podsumowanie 50
Rozdział 2. Wprowadzenie do uczenia półnadzorowanego 51
- Uczenie półnadzorowane 52
- Uczenie transdukcyjne 53
- Uczenie indukcyjne 53
- Założenia w uczeniu półnadzorowanym 53
- Generatywne mieszaniny gaussowskie 56
- Przykład generatywnej mieszaniny gaussowskiej 58
- Algorytm kontrastowy pesymistycznego szacowania wiarygodności 63
- Przykład zastosowania algorytmu CPLE 65
- Półnadzorowane maszyny wektorów nośnych (S3VM) 68
- Przykładowy algorytm maszyny S3VM 71
- Transdukcyjne maszyny wektorów nośnych 76
- Podsumowanie 82
Rozdział 3. Uczenie półnadzorowane bazujące na grafach 85
- Propagacja etykiet 86
- Przykład zastosowania algorytmu propagacji etykiet 89
- Propagacja etykiet w bibliotece Scikit-Learn 91
- Rozprzestrzenianie etykiet 94
- Przykład zastosowania algorytmu rozprzestrzeniania etykiet 95
- Propagacja etykiet na bazie błądzenia losowego Markowa 97
- Przykład propagacji etykiet na podstawie błądzenia losowego Markowa 98
- Uczenie rozmaitościowe 101
- Algorytm Isomap 102
- Osadzanie lokalnie liniowe 106
- Osadzanie widmowe Laplace'a 109
- Algorytm t-SNE 111
- Podsumowanie 113
Rozdział 4. Sieci bayesowskie i ukryte modele Markowa 115
- Prawdopodobieństwa warunkowe i twierdzenie Bayesa 116
- Sieci bayesowskie 118
- Próbkowanie w sieci bayesowskiej 119
- Przykład próbkowania za pomocą biblioteki PyMC3 129
- Ukryte modele Markowa 133
- Algorytm wnioskowania ekstrapolacyjno-interpolacyjnego 134
- Algorytm Viterbiego 141
- Podsumowanie 144
Rozdział 5. Algorytm EM i jego zastosowania 145
- Uczenie metodami MLE i MAP 146
- Algorytm EM 148
- Przykład szacowania parametrów 151
- Mieszanina gaussowska 154
- Przykład implementacji algorytmu mieszanin gaussowskich w bibliotece Scikit-Learn 157
- Analiza czynnikowa (FA) 159
- Przykład zastosowania analizy czynnikowej w bibliotece Scikit-Learn 164
- Analiza głównych składowych (PCA) 167
- Przykład zastosowania analizy PCA w bibliotece Scikit-Learn 173
- Analiza składowych niezależnych (ICA) 175
- Przykładowa implementacja algorytmu FastICA w bibliotece Scikit-Learn 178
- Jeszcze słowo o ukrytych modelach Markowa 180
- Podsumowanie 181
Rozdział 6. Uczenie hebbowskie i mapy samoorganizujące 183
- Reguła Hebba 184
- Analiza reguły kowariancji 188
- Stabilizacja wektora wag i reguła Oji 192
- Sieć Sangera 193
- Przykład zastosowania sieci Sangera 196
- Sieć Rubnera-Tavana 199
- Przykład zastosowania sieci Rubnera-Tavana 203
- Mapy samoorganizujące 205
- Przykład zastosowania mapy SOM 208
- Podsumowanie 211
Rozdział 7. Algorytmy klasteryzacji 213
- Algorytm k-najbliższych sąsiadów 213
- Drzewa KD 217
- Drzewa kuliste 218
- Przykład zastosowania algorytmu KNN w bibliotece Scikit-Learn 220
- Algorytm centroidów 223
- Algorytm k-means++ 225
- Przykład zastosowania algorytmu centroidów w bibliotece Scikit-Learn 227
- Algorytm rozmytych c-średnich 235
- Przykład zastosowania algorytmu rozmytych c-średnich w bibliotece Scikit-Fuzzy 239
- Klasteryzacja widmowa 242
- Przykład zastosowania klasteryzacji widmowej w bibliotece Scikit-Learn 246
- Podsumowanie 248
Rozdział 8. Uczenie zespołowe 249
- Podstawy uczenia zespołów 249
- Lasy losowe 251
- Przykład zastosowania lasu losowego w bibliotece Scikit-Learn 257
- Algorytm AdaBoost 260
- AdaBoost.SAMME 264
- AdaBoost.SAMME.R 266
- AdaBoost.R2 268
- Przykład zastosowania algorytmu AdaBoost w bibliotece Scikit-Learn 271
- Wzmacnianie gradientowe 275
- Przykład wzmacniania gradientowego drzew w bibliotece Scikit-Learn 279
- Zespoły klasyfikatorów głosujących 282
- Przykład zastosowania klasyfikatorów głosujących 283
- Uczenie zespołowe jako technika doboru modeli 285
- Podsumowanie 286
Rozdział 9. Sieci neuronowe w uczeniu maszynowym 287
- Podstawowy sztuczny neuron 288
- Perceptron 289
- Przykład zastosowania perceptronu w bibliotece Scikit-Learn 292
- Perceptrony wielowarstwowe 295
- Funkcje aktywacji 296
- Algorytm propagacji wstecznej 299
- Przykład zastosowania sieci MLP w bibliotece Keras 307
- Algorytmy optymalizacji 311
- Perturbacja gradientu 312
- Algorytmy momentum i Nesterova 312
- RMSProp 313
- Adam 315
- AdaGrad 316
- AdaDelta 317
- Regularyzacja i porzucanie 318
- Normalizacja wsadowa 326
- Przykład zastosowania normalizacji wsadowej w bibliotece Keras 328
- Podsumowanie 330
Rozdział 10. Zaawansowane modele neuronowe 333
- Głębokie sieci splotowe 334
- Operacje splotu 335
- Warstwy łączące 344
- Inne przydatne warstwy 347
- Przykłady stosowania głębokich sieci splotowych w bibliotece Keras 348
- Sieci rekurencyjne 356
- Algorytm propagacji wstecznej w czasie (BPTT) 357
- Jednostki LSTM 360
- Jednostki GRU 365
- Przykład zastosowania sieci LSTM w bibliotece Keras 367
- Uczenie transferowe 371
- Podsumowanie 373
Rozdział 11. Autokodery 375
- Autokodery 375
- Przykład głębokiego autokodera splotowego w bibliotece TensorFlow 377
- Autokodery odszumiające 381
- Autokodery rzadkie 384
- Autokodery wariacyjne 386
- Przykład stosowania autokodera wariacyjnego w bibliotece TensorFlow 389
- Podsumowanie 391
Rozdział 12. Generatywne sieci przeciwstawne 393
- Uczenie przeciwstawne 393
- Przykład zastosowania sieci DCGAN w bibliotece TensorFlow 397
- Sieć Wassersteina (WGAN) 403
- Przykład zastosowania sieci WGAN w bibliotece TensorFlow 405
- Podsumowanie 408
Rozdział 13. Głębokie sieci przekonań 409
- Losowe pola Markowa 410
- Ograniczone maszyny Boltzmanna 411
- Sieci DBN 415
- Przykład stosowania nienadzorowanej sieci DBN w środowisku Python 417
- Przykład stosowania nadzorowanej sieci DBN w środowisku Python 420
- Podsumowanie 422
Rozdział 14. Wstęp do uczenia przez wzmacnianie 423
- Podstawowe terminy w uczeniu przez wzmacnianie 423
- Środowisko 425
- Polityka 429
- Iteracja polityki 430
- Iteracja polityki w środowisku szachownicy 434
- Iteracja wartości 438
- Iteracja wartości w środowisku szachownicy 439
- Algorytm TD(0) 442
- Algorytm TD(0) w środowisku szachownicy 445
- Podsumowanie 448
Rozdział 15. Zaawansowane algorytmy szacowania polityki 451
- Algorytm TD(?) 452
- Algorytm TD(?) w bardziej skomplikowanym środowisku szachownicy 456
- Algorytm aktor-krytyk TD(0) w środowisku szachownicy 462
- Algorytm SARSA 467
- Algorytm SARSA w środowisku szachownicy 469
- Q-uczenie 472
- Algorytm Q-uczenia w środowisku szachownicy 473
- Algorytm Q-uczenia za pomocą sieci neuronowej 475
- Podsumowanie 482
Skorowidz 485
496 stron, Format: 17.0x24.0cm, oprawa miękka