


Uczenie maszynowe z użyciem Scikit-Learn



Uczenie maszynowe z użyciem Scikit-Learn - Najlepsze oferty
Uczenie maszynowe z użyciem Scikit-Learn - Opis
W 2006 roku świat nauki zafascynował się głębokimi sieciami neuronowymi. Wbrew wcześniejszym przekonaniom okazało się, że ich uczenie jest możliwe. Technika ta została nazwana uczeniem głębokim. Wymagała zapewnienia olbrzymiej mocy obliczeniowej i potężnych ilości danych, jednak potencjał wytrenowanych sieci głębokich był niesamowity. Kolejne lata przyniosły bujny rozwój tej technologii w wielu obszarach, co pozwoliło na tworzenie przeróżnych zaawansowanych produktów. Prace nad nowymi zastosowaniami sieci głębokich trwają. Wszystko wskazuje na to, że już wkrótce zdominują one większość dziedzin naszego życia.To drugie wydanie bestsellerowego przewodnika po technikach uczenia maszynowego. Wystarczą minimalne umiejętności programistyczne, aby dzięki tej książce nauczyć się budowania i trenowania głębokiej sieci neuronowej. Zawarto tu minimum teorii, a proces nauki jest ułatwiony przez liczne przykłady i ćwiczenia. Wykorzystano gotowe rozwiązania i przedstawiono zasady pracy ze specjalistycznymi narzędziami, w tym z TensorFlow 2, najnowszą odsłoną modułu. W efekcie niepostrzeżenie przyswoisz niezbędny zasób pojęć i narzędzi służących do tworzenia systemów inteligentnych. Poznasz różnorodne techniki i zaczniesz samodzielnie ich używać. Po lekturze będziesz biegle posługiwać się najnowszymi technologiami sztucznej inteligencji!
W tej książce między innymi:
podstawy uczenia maszynowego i rozpoczęcie pracy z TensorFlow
techniki wykrywania obiektów, segmentacji semantycznej i mechanizmy uwagi
interfejs Keras, narzędzia TF Transform i TF (...) więcej Serving
wdrażanie modeli TensorFlow
techniki uczenia nienadzorowanego, wykrywanie anomalii oraz biblioteka TF Agents
TensorFlow 2: źródło magii zaawansowanych technologii!
Spis treści:
Przedmowa 15
CZĘŚĆ I. PODSTAWY UCZENIA MASZYNOWEGO 25
1. Krajobraz uczenia maszynowego 27
Czym jest uczenie maszynowe? 28
Dlaczego warto korzystać z uczenia maszynowego? 28
Przykładowe zastosowania 31
Rodzaje systemów uczenia maszynowego 33
Uczenie nadzorowane i uczenie nienadzorowane 34
Uczenie wsadowe i uczenie przyrostowe 40
Uczenie z przykładów i uczenie z modelu 43
Główne problemy uczenia maszynowego 48
Niedobór danych uczących 50
Niereprezentatywne dane uczące 50
Dane kiepskiej jakości 51
Nieistotne cechy 52
Przetrenowanie danych uczących 52
Niedotrenowanie danych uczących 54
Podsumowanie 54
Testowanie i ocenianie 55
Strojenie hiperparametrów i dobór modelu 55
Niezgodność danych 56
Ćwiczenia 57
2. Nasz pierwszy projekt uczenia maszynowego 59
Praca z rzeczywistymi danymi 59
Przeanalizuj całokształt projektu 61
Określ zakres problemu 61
Wybierz metrykę wydajności 63
Sprawdź założenia 65
Zdobądź dane 65
Stwórz przestrzeń roboczą 66
Pobierz dane 68
Rzut oka na strukturę danych 70
Stwórz zbiór testowy 74
Odkrywaj i wizualizuj dane, aby zdobywać nowe informacje 78
Wizualizowanie danych geograficznych 78
Poszukiwanie korelacji 80
Eksperymentowanie z kombinacjami atrybutów 83
Przygotuj dane pod algorytmy uczenia maszynowego 84
Oczyszczanie danych 84
Obsługa tekstu i atrybutów kategorialnych 87
Niestandardowe transformatory 89
Skalowanie cech 90
Potoki transformujące 90
Wybór i uczenie modelu 92
Trenowanie i ocena modelu za pomocą zbioru uczącego 92
Dokładniejsze ocenianie za pomocą sprawdzianu krzyżowego 93
Wyreguluj swój model 96
Metoda przeszukiwania siatki 96
Metoda losowego przeszukiwania 98
Metody zespołowe 98
Analizuj najlepsze modele i ich błędy 98
Oceń system za pomocą zbioru testowego 99
Uruchom, monitoruj i utrzymuj swój system 100
Teraz Twoja kolej! 103
Ćwiczenia 103
3. Klasyfikacja 105
Zbiór danych MNIST 105
Uczenie klasyfikatora binarnego 107
Miary wydajności 108
Pomiar dokładności za pomocą sprawdzianu krzyżowego 108
Macierz pomyłek 110
Precyzja i pełność 111
Kompromis pomiędzy precyzją a pełnością 112
Wykres krzywej ROC 116
Klasyfikacja wieloklasowa 119
Analiza błędów 121
Klasyfikacja wieloetykietowa 124
Klasyfikacja wielowyjściowa 125
Ćwiczenia 127
4. Uczenie modeli 129
Regresja liniowa 130
Równanie normalne 131
Złożoność obliczeniowa 134
Gradient prosty 135
Wsadowy gradient prosty 138
Stochastyczny spadek wzdłuż gradientu 141
Schodzenie po gradiencie z minigrupami 143
Regresja wielomianowa 145
Krzywe uczenia 146
Regularyzowane modele liniowe 150
Regresja grzbietowa 150
Regresja metodą LASSO 153
Metoda elastycznej siatki 155
Wczesne zatrzymywanie 156
Regresja logistyczna 157
Szacowanie prawdopodobieństwa 158
Funkcje ucząca i kosztu 159
Granice decyzyjne 160
Regresja softmax 162
Ćwiczenia 166
5. Maszyny wektorów nośnych 167
Liniowa klasyfikacja SVM 167
Klasyfikacja miękkiego marginesu 168
Nieliniowa klasyfikacja SVM 170
Jądro wielomianowe 171
Cechy podobieństwa 172
Gaussowskie jądro RBF 173
Złożoność obliczeniowa 175
Regresja SVM 175
Mechanizm działania 177
Funkcja decyzyjna i prognozy 177
Cel uczenia 178
Programowanie kwadratowe 180
Problem dualny 181
Kernelizowane maszyny SVM 182
Przyrostowe maszyny SVM 185
Ćwiczenia 186
6. Drzewa decyzyjne 187
Uczenie i wizualizowanie drzewa decyzyjnego 187
Wyliczanie prognoz 188
Szacowanie prawdopodobieństw przynależności do klas 190
Algorytm uczący CART 191
Złożoność obliczeniowa 192
Wskaźnik Giniego czy entropia? 192
Hiperparametry regularyzacyjne 193
Regresja 194
Niestabilność 196
Ćwiczenia 197
7. Uczenie zespołowe i losowe lasy 199
Klasyfikatory głosujące 199
Agregacja i wklejanie 202
Agregacja i wklejanie w module Scikit-Learn 203
Ocena OOB 205
Rejony losowe i podprzestrzenie losowe 206
Losowe lasy 206
Zespół Extra-Trees 207
Istotność cech 207
Wzmacnianie 209
AdaBoost 209
Wzmacnianie gradientowe 212
Kontaminacja 217
Ćwiczenia 219
8. Redukcja wymiarowości 223
Klątwa wymiarowości 224
Główne strategie redukcji wymiarowości 225
Rzutowanie 225
Uczenie rozmaitościowe 227
Analiza PCA 228
Zachowanie wariancji 229
Główne składowe 230
Rzutowanie na d wymiarów 231
Implementacja w module Scikit-Learn 232
Współczynnik wariancji wyjaśnionej 232
Wybór właściwej liczby wymiarów 232
Algorytm PCA w zastosowaniach kompresji 233
Losowa analiza PCA 234
Przyrostowa analiza PCA 235
Jądrowa analiza PCA 236
Wybór jądra i strojenie hiperparametrów 236
Algorytm LLE 239
Inne techniki redukowania wymiarowości 241
Ćwiczenia 241
9. Techniki uczenia nienadzorowanego 243
Analiza skupień 244
Algorytm centroidów 246
Granice algorytmu centroidów 255
Analiza skupień w segmentacji obrazu 256
Analiza skupień w przetwarzaniu wstępnym 257
Analiza skupień w uczeniu półnadzorowanym 259
Algorytm DBSCAN 262
Inne algorytmy analizy skupień 265
Mieszaniny gaussowskie 266
Wykrywanie anomalii za pomocą mieszanin gaussowskich 271
Wyznaczanie liczby skupień 273
Modele bayesowskie mieszanin gaussowskich 275
Inne algorytmy służące do wykrywania anomalii i nowości 279
Ćwiczenia 280
CZĘŚĆ II. SIECI NEURONOWE I UCZENIE GŁĘBOKIE 283
10. Wprowadzenie do sztucznych sieci neuronowych i ich implementacji z użyciem interfejsu Keras 285
Od biologicznych do sztucznych neuronów 286
Neurony biologiczne 287
Operacje logiczne przy użyciu neuronów 288
Perceptron 289
Perceptron wielowarstwowy i propagacja wsteczna 293
Regresyjne perceptrony wielowarstwowe 297
Klasyfikacyjne perceptrony wielowarstwowe 298
Implementowanie perceptronów wielowarstwowych za pomocą interfejsu Keras 300
Instalacja modułu TensorFlow 2 301
Tworzenie klasyfikatora obrazów za pomocą interfejsu sekwencyjnego 302
Tworzenie regresyjnego perceptronu wielowarstwowego za pomocą interfejsu sekwencyjnego 311
Tworzenie złożonych modeli za pomocą interfejsu funkcyjnego 312
Tworzenie modeli dynamicznych za pomocą interfejsu podklasowego 316
Zapisywanie i odczytywanie modelu 318
Stosowanie wywołań zwrotnych 318
Wizualizacja danych za pomocą narzędzia TensorBoard 320
Dostrajanie hiperparametrów sieci neuronowej 323
Liczba warstw ukrytych 326
Liczba neuronów w poszczególnych warstwach ukrytych 327
Współczynnik uczenia, rozmiar grupy i pozostałe hiperparametry 328
Ćwiczenia 330
11. Uczenie głębokich sieci neuronowych 333
Problemy zanikających/eksplodujących gradientów 334
Inicjalizacje wag Glorota i He 334
Nienasycające funkcje aktywacji 336
Normalizacja wsadowa 340
Obcinanie gradientu 346
Wielokrotne stosowanie gotowych warstw 347
Uczenie transferowe w interfejsie Keras 348
Nienadzorowane uczenie wstępne 350
Uczenie wstępne za pomocą dodatkowego zadania 350
Szybsze optymalizatory 352
Optymalizacja momentum 352
Przyspieszony spadek wzdłuż gradientu (algorytm Nesterova) 353
AdaGrad 355
RMSProp 356
Optymalizatory Adam i Nadam 357
Harmonogramowanie współczynnika uczenia 359
Regularyzacja jako sposób zapobiegania przetrenowaniu 364
Regularyzacja l1 i l2 364
Porzucanie 365
Regularyzacja typu Monte Carlo (MC) 368
Regularyzacja typu max-norm 370
Podsumowanie i praktyczne wskazówki 371
Ćwiczenia 372
12. Modele niestandardowe i uczenie za pomocą modułu TensorFlow 375
Krótkie omówienie modułu TensorFlow 375
Korzystanie z modułu TensorFlow jak z biblioteki NumPy 379
Tensory i operacje 379
Tensory a biblioteka NumPy 381
Konwersje typów 381
Zmienne 381
Inne struktury danych 382
Dostosowywanie modeli i algorytmów uczenia 383
Niestandardowe funkcje straty 383
Zapisywanie i wczytywanie modeli zawierających elementy niestandardowe 384
Niestandardowe funkcje aktywacji, inicjalizatory, regularyzatory i ograniczenia 386
Niestandardowe wskaźniki 387
Niestandardowe warstwy 389
Niestandardowe modele 392
Funkcje straty i wskaźniki oparte na elementach wewnętrznych modelu 394
Obliczanie gradientów za pomocą różniczkowania automatycznego 396
Niestandardowe pętle uczenia 399
Funkcje i grafy modułu TensorFlow 402
AutoGraph i kreślenie 404
Reguły związane z funkcją TF 405
Ćwiczenia 406
13. Wczytywanie i wstępne przetwarzanie danych za pomocą modułu TensorFlow 409
Interfejs danych 410
Łączenie przekształceń 410
Tasowanie danych 412
Wstępne przetwarzanie danych 415
Składanie wszystkiego w całość 416
Pobieranie wstępne 417
Stosowanie zestawu danych z interfejsem tf.keras 418
Format TFRecord 419
Skompresowane pliki TFRecord 420
Wprowadzenie do buforów protokołów 420
Bufory protokołów w module TensorFlow 422
Wczytywanie i analizowanie składni obiektów Example 423
Obsługa list list za pomocą bufora protokołów SequenceExample 424
Wstępne przetwarzanie cech wejściowych 425
Kodowanie cech kategorialnych za pomocą wektorów gorącojedynkowych 426
Kodowanie cech kategorialnych za pomocą wektorów właściwościowych 428
Warstwy przetwarzania wstępnego w interfejsie Keras 431
TF Transform 433
Projekt TensorFlow Datasets (TFDS) 435
Ćwiczenia 436
14. Głębokie widzenie komputerowe za pomocą splotowych sieci neuronowych 439
Struktura kory wzrokowej 440
Warstwy splotowe 441
Filtry 443
Stosy map cech 444
Implementacja w module TensorFlow 446
Zużycie pamięci operacyjnej 448
Warstwa łącząca 449
Implementacja w module TensorFlow 451
Architektury splotowych sieci neuronowych 452
LeNet-5 454
AlexNet 455
GoogLeNet 458
VGGNet 461
ResNet 461
Xception 465
SENet 466
Implementacja sieci ResNet-34 za pomocą interfejsu Keras 468
Korzystanie z gotowych modeli w interfejsie Keras 469
Gotowe modele w uczeniu transferowym 471
Klasyfikowanie i lokalizowanie 473
Wykrywanie obiektów 474
W pełni połączone sieci splotowe 476
Sieć YOLO 478
Segmentacja semantyczna 481
Ćwiczenia 484
15. Przetwarzanie sekwencji za pomocą sieci rekurencyjnych i splotowych 487
Neurony i warstwy rekurencyjne 488
Komórki pamięci 490
Sekwencje wejść i wyjść 491
Uczenie sieci rekurencyjnych 492
Prognozowanie szeregów czasowych 493
Wskaźniki bazowe 494
Implementacja prostej sieci rekurencyjnej 494
Głębokie sieci rekurencyjne 496
Prognozowanie kilka taktów w przód 497
Obsługa długich sekwencji 500
Zwalczanie problemu niestabilnych gradientów 501
Zwalczanie problemu pamięci krótkotrwałej 503
Ćwiczenia 511
16. Przetwarzanie języka naturalnego za pomocą sieci rekurencyjnych i mechanizmów uwagi 513
Generowanie tekstów szekspirowskich za pomocą znakowej sieci rekurencyjnej 514
Tworzenie zestawu danych uczących 515
Rozdzielanie zestawu danych sekwencyjnych 515
Dzielenie zestawu danych sekwencyjnych na wiele ramek 516
Budowanie i uczenie modelu Char-RNN 518
Korzystanie z modelu Char-RNN 519
Generowanie sztucznego tekstu szekspirowskiego 519
Stanowe sieci rekurencyjne 520
Analiza sentymentów 522
Maskowanie 526
Korzystanie z gotowych reprezentacji właściwościowych 527
Sieć typu koder - dekoder służąca do neuronowego tłumaczenia maszynowego 529
Dwukierunkowe warstwy rekurencyjne 532
Przeszukiwanie wiązkowe 533
Mechanizmy uwagi 534
Mechanizm uwagi wizualnej 537
Liczy się tylko uwaga, czyli architektura transformatora 539
Współczesne innowacje w modelach językowych 546
Ćwiczenia 548
17. Uczenie reprezentacji za pomocą autokoderów i generatywnych sieci przeciwstawnych 551
Efektywne reprezentacje danych 552
Analiza PCA za pomocą niedopełnionego autokodera liniowego 554
Autokodery stosowe 555
Implementacja autokodera stosowego za pomocą interfejsu Keras 556
Wizualizowanie rekonstrukcji 557
Wizualizowanie zestawu danych Fashion MNIST 558
Nienadzorowane uczenie wstępne za pomocą autokoderów stosowych 558
Wiązanie wag 560
Uczenie autokoderów pojedynczo 561
Autokodery splotowe 562
Autokodery rekurencyjne 563
Autokodery odszumiające 564
Autokodery rzadkie 566
Autokodery wariacyjne 569
Generowanie obrazów Fashion MNIST 572
Generatywne sieci przeciwstawne 574
Problemy związane z uczeniem sieci GAN 577
Głębokie splotowe sieci GAN 579
Rozrost progresywny sieci GAN 582
Sieci StyleGAN 585
Ćwiczenia 587
18. Uczenie przez wzmacnianie 589
Uczenie się optymalizowania nagród 590
Wyszukiwanie strategii 591
Wprowadzenie do narzędzia OpenAI Gym 593
Sieci neuronowe jako strategie 597
Ocenianie czynności: problem przypisania zasługi 598
Gradienty strategii 600
Procesy decyzyjne Markowa 604
Uczenie metodą różnic czasowych 607
Q-uczenie 609
Strategie poszukiwania 610
Przybliżający algorytm Q-uczenia i Q-uczenie głębokie 611
Implementacja modelu Q-uczenia głębokiego 612
Odmiany Q-uczenia głębokiego 616
Ustalone Q-wartości docelowe 616
Podwójna sieć DQN 617
Odtwarzanie priorytetowych doświadczeń 618
Walcząca sieć DQN 618
Biblioteka TF-Agents 619
Instalacja biblioteki TF-Agents 620
Środowiska TF-Agents 620
Specyfikacja środowiska 621
Funkcje opakowujące środowisko i wstępne przetwarzanie środowiska Atari 622
Architektura ucząca 625
Tworzenie Q-sieci głębokiej 627
Tworzenie agenta DQN 629
Tworzenie bufora odtwarzania i związanego z nim obserwatora 630
Tworzenie wskaźników procesu uczenia 631
Tworzenie sterownika 632
Tworzenie zestawu danych 633
Tworzenie pętli uczenia 636
Przegląd popularnych algorytmów RN 637
Ćwiczenia 639
19. Wielkoskalowe uczenie i wdrażanie modeli TensorFlow 641
Eksploatacja modelu TensorFlow 642
Korzystanie z systemu TensorFlow Serving 642
Tworzenie usługi predykcyjnej na platformie GCP AI 650
Korzystanie z usługi prognozowania 655
Wdrażanie modelu na urządzeniu mobilnym lub wbudowanym 658
Przyspieszanie obliczeń za pomocą procesorów graficznych 661
Zakup własnej karty graficznej 662
Korzystanie z maszyny wirtualnej wyposażonej w procesor graficzny 664
Colaboratory 665
Zarządzanie pamięcią operacyjną karty graficznej 666
Umieszczanie operacji i zmiennych na urządzeniach 669
Przetwarzanie równoległe na wielu urządzeniach 671
Uczenie modeli za pomocą wielu urządzeń 673
Zrównoleglanie modelu 673
Zrównoleglanie danych 675
Uczenie wielkoskalowe za pomocą interfejsu strategii rozpraszania 680
Uczenie modelu za pomocą klastra TensorFlow 681
Realizowanie dużych grup zadań uczenia za pomocą usługi Google Cloud AI Platform 684
Penetracyjne strojenie hiperparametrów w usłudze AI Platform 686
Ćwiczenia 688
Dziękuję! 688
A. Rozwiązania ćwiczeń 691
B. Lista kontrolna projektu uczenia maszynowego 725
C. Problem dualny w maszynach wektorów nośnych 731
D. Różniczkowanie automatyczne 735
E. Inne popularne architektury sieci neuronowych 743
F. Specjalne struktury danych 751
G. Grafy TensorFlow 757
O autorze: Aurélien Géron - jest konsultantem do spraw uczenia maszynowego. Wcześniej pracował w korporacji Google, a w latach 2013 – 2016 kierował zespołem klasyfikowania filmów w firmie YouTube. Był również założycielem i dyrektorem do spraw technicznych (w latach 2002 – 2012) w firmie Wifirst — czołowym francuskim dostawcy bezprzewodowych usług internetowych; te same funkcje pełnił w 2001 roku w firmie Polyconseil — obecnie zarządza ona usługą udostępniania samochodów elektrycznych Autolib’. mniej
Uczenie maszynowe z użyciem Scikit-Learn - Opinie i recenzje
Na liście znajdują się opinie, które zostały zweryfikowane (potwierdzone zakupem) i oznaczone są one zielonym znakiem Zaufanych Opinii. Opinie niezweryfikowane nie posiadają wskazanego oznaczenia.