Deep learning dla programistów. Budowanie aplikacji AI za pomocą fastai i PyTorch

75,91

Opis

Uczenie głębokie zmienia oblicze wielu branż. Ta rewolucja już się zaczęła, jednak potencjał AI i sieci neuronowych jest znacznie większy. Korzystamy więc dziś z osiągnięć komputerowej analizy obrazu i języka naturalnego, wspierania badań naukowych czy budowania skutecznych strategii biznesowych – wchodzimy do świata, który do niedawna był dostępny głównie dla naukowców. W konsekwencji trudno o źródła wiedzy, które równocześnie byłyby przystępne dla zwykłych programistów i miały wysoką wartość merytoryczną. Problem polega na tym, że bez dogłębnego zrozumienia działania algorytmów uczenia głębokiego trudno tworzyć dobre aplikacje.Oto praktyczny i przystępny przewodnik po koncepcjach uczenia głębokiego, napisany tak, aby ułatwić zrozumienie najnowszych technik w tej dziedzinie bez znajomości wyższej matematyki. Książka daje znakomite podstawy uczenia głębokiego, a następnie stopniowo wprowadza zagadnienia sposobu działania modeli, ich budowy i trenowania. Pokazano w niej również praktyczne techniki przekształcania modeli w działające aplikacje. Znalazło się tu mnóstwo wskazówek ułatwiających poprawianie dokładności, szybkości i niezawodności modeli. Nie zabrakło też informacji o najlepszych sposobach wdrażania od podstaw algorytmów uczenia głębokiego i stosowaniu ich w najnowocześniejszych rozwiązaniach.W książce między innymi:gruntownie i przystępnie omówione podstawy uczenia głębokiegonajnowsze techniki uczenia głębokiego i ich praktyczne zastosowaniedziałanie modeli oraz zasady ich treningupraktyczne tworzenie aplikacji korzystających z uczenia głębokiegowdrażanie algorytmów uczenia głębokiegoetyczne implikacje AIUczenie głębokie? Dobrze zrozum, dobrze zastosuj!Spis treści:Opinie o książceWstępDla kogo jest przeznaczona ta książka?Co musisz wiedzieć?Czego się nauczysz dzięki tej książce?PrzedmowaCzęść I. Uczenie głębokie w praktyceRozdział 1. Podróż po świecie uczenia głębokiegoUczenie głębokie jest dla każdegoSieci neuronowe krótka historiaKim jesteśmy?Jak zdobyć wiedzę o uczeniu głębokim?Twoje projekty i Twój sposób myśleniaOprogramowanie: PyTorch, fastai i Jupyter (i dlaczego nie ma to znaczenia)Twój pierwszy modelUzyskanie dostępu do serwera z procesorem graficznym i możliwością realizowania uczenia głębokiegoUruchomienie pierwszego notatnikaCo to jest uczenie maszynowe?Co to jest sieć neuronowa?Trochę słownictwa związanego z uczeniem głębokimOgraniczenia związane z uczeniem maszynowymJak działa nasz program do rozpoznawania obrazówCzego nauczył się program do rozpoznawania obrazów?Systemy do rozpoznawania obrazów mogą radzić sobie z zadaniami innymi niż analiza obrazówPodsumowanie słownictwaUczenie głębokie to nie tylko klasyfikowanie obrazówZbiory walidacyjne i testoweUżycie oceny w definiowaniu zbiorów testowychMoment, w którym wybierasz swoją własną przygodęPytaniaDalsze badaniaRozdział 2. Od modelu do produkcjiPraktyczne zastosowanie uczenia głębokiegoRozpoczęcie projektuStan uczenia głębokiegoWidzenie komputeroweDokumenty tekstowe (przetwarzanie języka naturalnego)Łączenie tekstu z obrazamiDane tabelaryczneSystemy rekomendacjiInne typy danychMetoda układu napędowegoGromadzenie danychOd danych do obiektu DataLoadersGenerowanie sztucznych danychTrenowanie modelu i używanie go do czyszczenia danychPrzekształcanie modelu w aplikację internetowąKorzystanie z modelu do wnioskowaniaTworzenie w notatniku aplikacji na podstawie modeluZamień notatnik w prawdziwą aplikacjęWdrażanie aplikacjiJak uniknąć katastrofyNieprzewidziane konsekwencje i pętle sprzężenia zwrotnegoZapisuj!PytaniaDalsze badaniaRozdział 3. Etyka danychKluczowe przykłady etyki danychBłędy i regresja: wadliwy algorytm używany do świadczeń opieki zdrowotnejPętle sprzężenia zwrotnego: system rekomendacji YouTubeUprzedzenie: wykładowca Latanya Sweeney aresztowanaDlaczego ma to znaczenie?Integracja uczenia maszynowego z projektowaniem produktuZagadnienia związane z etyką danychRegres i odpowiedzialnośćPętle sprzężenia zwrotnegoUprzedzenieUprzedzenie historyczneUprzedzenie pomiaroweUprzedzenie agregacyjneUprzedzenie reprezentacyjneRozwiązywanie problemów związanych z różnymi rodzajami uprzedzeńDezinformacjaIdentyfikowanie i rozwiązywanie problemów etycznychPrzeanalizuj projekt, nad którym pracujeszProcesy do zaimplementowaniaPryzmat etycznyPotęga różnorodnościUczciwość, odpowiedzialność i przejrzystośćRola politykiSkuteczność przepisówPrawa i politykaSamochody historyczny precedensWnioskiPytaniaDalsze badaniaUczenie głębokie w praktyce to wszystko!Część II. Zrozumienie aplikacji fastaiRozdział 4. Jak to wygląda od środka trenowanie klasyfikatora cyfrPiksele podstawa widzenia komputerowegoPodejście pierwsze: podobieństwo pikseliTablice NumPy i tensory PyTorchWyznaczanie wskaźników z wykorzystaniem rozgłaszaniaStochastyczny spadek wzdłuż gradientuWyznaczanie gradientówStopniowanie ze współczynnikiem uczeniaKompleksowy przykład użycia stochastycznego spadku wzdłuż gradientuEtap 1.: inicjalizacja parametrówEtap 2.: obliczanie prognozEtap 3.: obliczanie stratyEtap 4.: obliczanie gradientówEtap 5.: stopniowanie wagEtap 6.: powtórzenie procesuEtap 7.: koniecPodsumowanie procesu stochastycznego spadku wzdłuż gradientuFunkcja straty MNISTSigmoidaStochastyczny spadek wzdłuż gradientu i minipaczkiZłożenie wszystkiego w całośćTworzenie optymalizatoraWprowadzanie nieliniowościBardziej rozbudowane modelePodsumowanie słownictwaPytaniaDalsze badaniaRozdział 5. Klasyfikowanie obrazówOd psów i kotów do ras zwierząt domowychDobór wstępnySprawdzanie i debugowanie obiektu DataBlockEntropia krzyżowaPrzeglądanie aktywacji i etykietSoftmaxLogarytm prawdopodobieństwaObliczanie logarytmuInterpretacja modeluPoprawianie modeluWyszukiwarka współczynnika uczeniaOdmrażanie i uczenie transferoweDyskryminatywne współczynniki uczeniaWybór liczby epokBardziej złożone architekturyPodsumowaniePytaniaDalsze badaniaRozdział 6. Inne zagadnienia związane z widzeniem komputerowymKlasyfikacja wieloetykietowaDaneTworzenie obiektu DataBlockBinarna entropia krzyżowaRegresjaGromadzenie danychTrenowanie modeluPodsumowaniePytaniaDalsze badaniaRozdział 7. Trenowanie supernowoczesnego modeluImagenetteNormalizacjaProgresywna zmiana rozmiaruWydłużenie czasu testuMixupWygładzanie etykietPodsumowaniePytaniaDalsze badaniaRozdział 8. Szczegółowa analiza filtrowania zespołowegoPierwszy kontakt z danymiCzynniki ukryteTworzenie obiektu DataLoadersFiltrowanie zespołowe od podstawWygaszanie wagTworzenie własnego modułu osadzaniaInterpretacja osadzeń i przesunięćUżycie aplikacji fastai.collabOdległość osadzaniaUruchamianie modelu filtrowania zespołowegoUczenie głębokie w filtrowaniu zespołowymPodsumowaniePytaniaDalsze badaniaRozdział 9. Szczegółowa analiza modelowania tabelarycznegoOsadzenia skategoryzowanePoza uczeniem głębokimZbiór danychKonkursy KaggleSprawdzenie danychDrzewa decyzyjneObsługa datUżycie obiektów TabularPandas i TabularProcTworzenie drzewa decyzyjnegoZmienne skategoryzowaneLasy losoweTworzenie lasu losowegoBłąd out-of-bagInterpretacja modeluWariancja drzewa dla pewności prognozyWażności cechUsuwanie zmiennych o niskiej ważnościUsuwanie zbędnych cechCzęściowa zależnośćWyciek danychInterpreter drzewaEkstrapolacja i sieci neuronoweProblem ekstrapolacjiWyszukiwanie danych spoza domenyUżycie sieci neuronowejŁączenie w zespołyWzmacnianieŁączenie osadzeń z innymi metodamiPodsumowaniePytaniaDalsze badaniaRozdział 10. Szczegółowa analiza przetwarzania języka naturalnego rekurencyjne sieci neuronoweWstępne przetwarzanie tekstuTokenizacjaTokenizacja słów przy użyciu biblioteki fastaiTokenizacja podłańcuchówZamiana na liczby przy użyciu biblioteki fastaiUmieszczanie tekstu w paczkach dla modelu językowegoTrenowanie klasyfikatora tekstuUżycie klasy DataBlock w modelu językowymDostrajanie modelu językowegoZapisywanie i wczytywanie modeliGenerowanie tekstuTworzenie klasyfikatora DataLoadersDostrajanie klasyfikatoraDezinformacja i modele językowePodsumowaniePytaniaDalsze badaniaRozdział 11. Przygotowywanie danych dla modeli za pomocą interfejsu API pośredniego poziomu z biblioteki fastaiSzczegółowa analiza warstwowego interfejsu programistycznego biblioteki fastaiTransformacjeTworzenie własnej transformacjiKlasa Pipeline potoku transformacjiTfmdLists i Datasets kolekcje przekształconeTfmdListsDatasetsZastosowanie interfejsu API pośredniego poziomu SiamesePairPodsumowaniePytaniaDalsze badaniaZrozumienie aplikacji fastai podsumowanieCzęść III. Podstawy uczenia głębokiegoRozdział 12. Tworzenie od podstaw modelu językowegoDaneTworzenie od podstaw pierwszego modelu językowegoObsługa modelu językowego w bibliotece PyTorchPierwsza rekurencyjna sieć neuronowaUlepszanie sieci RNNObsługa stanu sieci RNNTworzenie większej liczby sygnałówWielowarstwowe rekurencyjne sieci neuronoweModelEksplodujące lub zanikające aktywacjeArchitektura LSTMTworzenie modelu LSTM od podstawTrenowanie modelu językowego wykorzystującego architekturę LSTMRegularyzacja modelu LSTMDropoutRegularyzacja aktywacji i czasowa regularyzacja aktywacjiTrening regularyzowanego modelu LSTM z wiązanymi wagamiPodsumowaniePytaniaDalsze badaniaRozdział 13. Konwolucyjne sieci neuronoweMagia konwolucjiOdwzorowywanie jądra splotuKonwolucje w bibliotece PyTorchKroki i dopełnienieZrozumienie równań konwolucjiPierwsza konwolucyjna sieć neuronowaTworzenie konwolucyjnej sieci neuronowejZrozumienie arytmetyki konwolucjiPola receptywneKilka uwag o TwitterzeObrazy koloroweUlepszanie stabilności trenowaniaProsty model bazowyZwiększenie wielkości paczkiTrenowanie jednocykliczneNormalizacja wsadowaPodsumowaniePytaniaDalsze badaniaRozdział 14. Sieci ResNetPowrót do ImagenetteTworzenie nowoczesnej konwolucyjnej sieci neuronowej ResNetPomijanie połączeńModel sieci ResNet na poziomie światowymWarstwy z wąskim gardłemPodsumowaniePytaniaDalsze badaniaRozdział 15. Szczegółowa analiza architektur aplikacjiWidzenie komputeroweFunkcja cnn_learnerFunkcja unet_learnerModel syjamskiPrzetwarzanie języka naturalnegoDane tabelarycznePodsumowaniePytaniaDalsze badaniaRozdział 16. Proces trenowaniaTworzenie modelu bazowegoOgólny optymalizatorMomentumRMSPropAdamDwie metody wygaszania wagWywołania zwrotneTworzenie wywołania zwrotnegoKolejność wywołań zwrotnych i wyjątkiPodsumowaniePytaniaDalsze badaniaPodstawy uczenia głębokiego podsumowanieCzęść IV. Uczenie głębokie od podstawRozdział 17. Sieć neuronowa od podstawTworzenie od podstaw warstwy sieci neuronowejModelowanie neuronuMnożenie macierzy od podstawArytmetyka składowychRozgłaszanieRozgłaszanie wartości skalarnejRozgłaszanie wektora na macierzZasady rozgłaszaniaKonwencja sumacyjna EinsteinaPrzejścia w przód i wsteczDefiniowanie i inicjalizowanie warstwyGradienty i przejście wsteczModyfikowanie modeluImplementacja przy użyciu biblioteki PyTorchPodsumowaniePytaniaDalsze badaniaRozdział 18. Interpretacja sieci CNN przy użyciu mapy aktywacji klasMapa aktywacji klas i punkty zaczepieniaGradientowa mapa aktywacji klasPodsumowaniePytaniaDalsze badaniaRozdział 19. Klasa Learner biblioteki fastai od podstawDaneKlasa DatasetKlasy Module i ParameterProsta konwolucyjna sieć neuronowaFunkcja stratyKlasa LearnerWywołania zwrotneHarmonogram modyfikowania współczynnika uczeniaPodsumowaniePytaniaDalsze badaniaRozdział 20. Uwagi końcoweDodatek A. Tworzenie blogaBlogowanie przy użyciu usługi GitHub PagesTworzenie repozytoriumKonfigurowanie strony głównejTworzenie wpisówSynchronizowanie GitHuba z własnym komputeremTworzenie bloga za pomocą notatnika JupyteraDodatek B. Lista kontrolna projektu dotyczącego danychAnalitycy danychStrategiaDaneAnalitykaImplementacjaUtrzymywanieOgraniczeniaO autorachPodziękowaniaKolofon

łukasz łukasz, studia obszarów wiejskich, arkadiusz kobus, banki opole

yyyyy