Szczegóły ebooka

Deep Learning. Receptury

Deep Learning. Receptury

Douwe Osinga

Ebook

Pomysł, by komputery wykorzystywać do generowania inteligentnych rozwiązań, narodził się w zamierzchłych dla informatyki czasach, mniej więcej w połowie XX wieku. Bardzo długo jednak idea ta - z powodu ograniczeń technologicznych - nie mogła wyjść poza rozważania teoretyczne. Dziś osoby zainteresowane uczeniem głębokim są w komfortowej sytuacji: mogą korzystać z ogólnie dostępnych frameworków uczenia głębokiego, sięgać po ogromne zbiory danych, a ponadto wyniki tego rodzaju badań znalazły się w centrum zainteresowania biznesu. Okazuje się, że nawet bez szczególnego przygotowania teoretycznego można budować i udoskonalać potężne modele sieci neuronowych oraz uczenia głębokiego i wdrażać je w konkretnych sytuacjach.

Dzięki tej książce, nawet jeśli nie posiadasz zaawansowanej wiedzy o uczeniu głębokim (oryg. deep learning), zaczniesz szybko tworzyć rozwiązania z tego zakresu. Zamieszczone tu receptury pozwolą Ci sprawnie zaznajomić się z takimi zastosowaniami uczenia głębokiego jak klasyfikacja, generowanie tekstów, obrazów i muzyki. Cennym elementem książki są informacje o rozwiązywaniu problemów z sieciami neuronowymi - testowanie sieci wciąż jest trudnym zagadnieniem. Ponadto znalazły się w niej porady dotyczące pozyskiwania danych niezbędnych do trenowania sieci, a także receptury, dzięki którym łatwiej zacząć użytkować modele w środowiskach produkcyjnych.

Z tej książki dowiesz się, jak:

  • tworzyć użyteczne aplikacje, które docenią użytkownicy
  • obliczać podobieństwo tekstów
  • wizualizować wewnętrzny stan systemu sztucznej inteligencji
  • napisać usługę odwrotnego wyszukiwania obrazów za pomocą wyuczonych sieci
  • wykorzystać sieci GAN, autoenkodery i LSTM do generowania ikon
  • wykrywać style w utworach muzycznych

Uczenie głębokie - rzecz dla kreatywnych filozofów z myszą w dłoni!

 

Wstęp 7

 

1. Narzędzia i techniki 15

  • 1.1. Typy sieci neuronowych 15
  • 1.2. Pozyskiwanie danych 25
  • 1.3. Wstępne przetwarzanie danych 31

2. Aby ruszyć z miejsca 39

  • 2.1. Jak stwierdzić, że utknęliśmy? 39
  • 2.2. Poprawianie błędów czasu wykonania 40
  • 2.3. Sprawdzanie wyników pośrednich 42
  • 2.4. Wybór odpowiedniej funkcji aktywacji (w warstwie wyjściowej) 43
  • 2.5. Regularyzacja i porzucanie 45
  • 2.6. Struktura sieci, wielkość wsadów i tempo uczenia 46
  • Podsumowanie 47

3. Obliczanie podobieństwa słów przy użyciu wektorów właściwościowych 49

  • 3.1. Stosowanie nauczonych modeli wektorów właściwościowych do określania podobieństw między wyrazami 50
  • 3.2. Operacje matematyczne z użyciem Word2vec 52
  • 3.3. Wizualizacja wektorów właściwościowych 54
  • 3.4. Znajdowanie klas obiektów z wykorzystaniem wektorów właściwościowych 55
  • 3.5. Obliczanie odległości semantycznych w klasach 59
  • 3.6. Wizualizacja danych kraju na mapie 60

4. Tworzenie systemu rekomendacji na podstawie odnośników wychodzących z Wikipedii 63

  • 4.1. Pozyskiwanie danych 63
  • 4.2. Uczenie wektorów właściwościowych filmów 67
  • 4.3. Tworzenie systemu rekomendacji filmów 70
  • 4.4. Prognozowanie prostych właściwości filmu 71

5. Generowanie tekstu wzorowanego na przykładach 73

  • 5.1. Pobieranie ogólnie dostępnych tekstów 73
  • 5.2. Generowanie tekstów przypominających dzieła Szekspira 74
  • 5.3. Pisanie kodu z wykorzystaniem rekurencyjnej sieci neuronowej 77
  • 5.4. Kontrolowanie temperatury wyników 79
  • 5.5. Wizualizacja aktywacji rekurencyjnych sieci neuronowych 81

6. Dopasowywanie pytań 83

  • 6.1. Pobieranie danych ze Stack Exchange 83
  • 6.2. Badanie danych przy użyciu biblioteki Pandas 85
  • 6.3. Stosowanie Keras do określania cech tekstu 86
  • 6.4. Tworzenie modelu pytanie - odpowiedź 87
  • 6.5. Uczenie modelu z użyciem Pandas 88
  • 6.6. Sprawdzanie podobieństw 90

7. Sugerowanie emoji 93

  • 7.1. Tworzenie prostego klasyfikatora nastawienia 93
  • 7.2. Badanie prostego klasyfikatora 96
  • 7.3. Stosowanie sieci konwolucyjnych do analizy nastawienia 97
  • 7.4. Gromadzenie danych z Twittera 99
  • 7.5. Prosty mechanizm prognozowania emoji 100
  • 7.6. Porzucanie i wiele okien 102
  • 7.7. Tworzenie modelu operującego na słowach 103
  • 7.8. Tworzenie własnych wektorów właściwościowych 105
  • 7.9. Stosowanie rekurencyjnych sieci neuronowych do klasyfikacji 107
  • 7.10. Wizualizacja (nie)zgody 108
  • 7.11. Łączenie modeli 111

8. Odwzorowywanie sekwencji na sekwencje 113

  • 8.1. Uczenie prostego modelu typu sekwencja na sekwencję 113
  • 8.2. Wyodrębnianie dialogów z tekstów 115
  • 8.3. Obsługa otwartego słownika 116
  • 8.4. Uczenie chatbota z użyciem frameworka seq2seq 118

9. Stosowanie nauczonej już sieci do rozpoznawania obrazów 123

  • 9.1. Wczytywanie nauczonej sieci neuronowej 124
  • 9.2. Wstępne przetwarzanie obrazów 124
  • 9.3. Przeprowadzanie wnioskowania na obrazach 126
  • 9.4. Stosowanie API serwisu Flickr do gromadzenia zdjęć z etykietami 127
  • 9.5. Tworzenie klasyfikatora, który potrafi odróżniać koty od psów 128
  • 9.6. Poprawianie wyników wyszukiwania 130
  • 9.7. Ponowne uczenie sieci rozpoznającej obrazy 132

10. Tworzenie usługi odwrotnego wyszukiwania obrazów 135

  • 10.1. Pozyskiwanie obrazów z Wikipedii 135
  • 10.2. Rzutowanie obrazów na przestrzeń n-wymiarową 138
  • 10.3. Znajdowanie najbliższych sąsiadów w przestrzeni n-wymiarowej 139
  • 10.4. Badanie lokalnych sąsiedztw w wektorach właściwościowych 140

11. Wykrywanie wielu obrazów 143

  • 11.1. Wykrywanie wielu obrazów przy użyciu nauczonego klasyfikatora 143
  • 11.2. Stosowanie sieci Faster R-CNN do wykrywania obrazów 147
  • 11.3. Stosowanie Faster R-CNN na własnych obrazach 149

12. Styl obrazu 153

  • 12.1. Wizualizacja aktywacji sieci CNN 153
  • 12.2. Oktawy i skalowanie 157
  • 12.3. Wizualizacja tego, co sieć neuronowa prawie widzi 158
  • 12.4. Jak uchwycić styl obrazu? 161
  • 12.5. Poprawianie funkcji straty w celu zwiększenia koherencji obrazu 164
  • 12.6. Przenoszenie stylu na inny obraz 166
  • 12.7. Interpolacja stylu 167

13. Generowanie obrazów przy użyciu autoenkoderów 169

  • 13.1. Importowanie rysunków ze zbioru Google Quick Draw 170
  • 13.2. Tworzenie autoenkodera dla obrazów 171
  • 13.3. Wizualizacja wyników autoenkodera 173
  • 13.4. Próbkowanie obrazów z właściwego rozkładu 175
  • 13.5. Wizualizacja przestrzeni autoenkodera wariacyjnego 178
  • 13.6. Warunkowe autoenkodery wariacyjne 179

14. Generowanie ikon przy użyciu głębokich sieci neuronowych 183

  • 14.1. Zdobywanie ikon do uczenia sieci 184
  • 14.2. Konwertowanie ikon na tensory 186
  • 14.3. Stosowanie autoenkodera wariacyjnego do generowania ikon 187
  • 14.4. Stosowanie techniki rozszerzania danych do poprawy wydajności autoenkodera 190
  • 14.5. Tworzenie sieci GAN 191
  • 14.6. Uczenie sieci GAN 193
  • 14.7. Pokazywanie ikon generowanych przez sieć GAN 194
  • 14.8. Kodowanie ikon jako instrukcji rysowniczych 196
  • 14.9. Uczenie sieci rekurencyjnych rysowania ikon 197
  • 14.10. Generowanie ikon przy użyciu sieci rekurencyjnych 199

15. Muzyka a uczenie głębokie 201

  • 15.1. Tworzenie zbioru uczącego na potrzeby klasyfikowania muzyki 202
  • 15.2. Uczenie detektora gatunków muzyki 204
  • 15.3. Wizualizacja pomyłek 206
  • 15.4. Indeksowanie istniejącej muzyki 207
  • 15.5. Konfiguracja API dostępu do serwisu Spotify 209
  • 15.6. Zbieranie list odtwarzania i utworów ze Spotify 210
  • 15.7. Uczenie systemu sugerowania muzyki 213
  • 15.8. Sugerowanie muzyki przy wykorzystaniu modelu Word2vec 214

16. Przygotowywanie systemów uczenia maszynowego do zastosowań produkcyjnych 217

  • 16.1. Użycie algorytmu najbliższych sąsiadów scikit-learn do obsługi wektorów właściwościowych 218
  • 16.2. Stosowanie Postgresa do przechowywania wektorów właściwościowych 219
  • 16.3. Zapisywanie i przeszukiwanie wektorów właściwościowych przechowywanych w bazie Postgres 220
  • 16.4. Przechowywanie modeli wysokowymiarowych w Postgresie 221
  • 16.5. Pisanie mikroserwisów w języku Python 222
  • 16.6. Wdrażanie modelu Keras z użyciem mikroserwisu 224
  • 16.7. Wywoływanie mikroserwisu z poziomu frameworka internetowego 225
  • 16.8. Modele seq2seq TensorFlow 226
  • 16.9. Uruchamianie modeli uczenia głębokiego w przeglądarkach 227
  • 16.10. Wykonywanie modeli Keras przy użyciu serwera TensorFlow 230
  • 16.11. Stosowanie modeli Keras z poziomu iOS-a 232

Skorowidz 235

  • Tytuł: Deep Learning. Receptury
  • Autor: Douwe Osinga
  • Tytuł oryginału: Deep Learning Cookbook: Practical Recipes to Get Started Quickly
  • Tłumaczenie: Piotr Rajca
  • ISBN: 978-83-283-5232-2, 9788328352322
  • Data wydania: 2019-07-02
  • Format: Ebook
  • Identyfikator pozycji: delere
  • Wydawca: Helion