Facebook - konwersja
  • promocja

50 algorytmów, które powinien znać każdy programista. Klasyczne i nowoczesne algorytmy z dziedzin uczenia maszynowego, projektowania oprogramowania, systemów danych i kryptografii - ebook

Wydawnictwo:
Data wydania:
1 października 2024
Format ebooka:
EPUB
Format EPUB
czytaj
na czytniku
czytaj
na tablecie
czytaj
na smartfonie
Jeden z najpopularniejszych formatów e-booków na świecie. Niezwykle wygodny i przyjazny czytelnikom - w przeciwieństwie do formatu PDF umożliwia skalowanie czcionki, dzięki czemu możliwe jest dopasowanie jej wielkości do kroju i rozmiarów ekranu. Więcej informacji znajdziesz w dziale Pomoc.
Multiformat
E-booki w Virtualo.pl dostępne są w opcji multiformatu. Oznacza to, że po dokonaniu zakupu, e-book pojawi się na Twoim koncie we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu.
, PDF
Format PDF
czytaj
na laptopie
czytaj
na tablecie
Format e-booków, który możesz odczytywać na tablecie oraz laptopie. Pliki PDF są odczytywane również przez czytniki i smartfony, jednakze względu na komfort czytania i brak możliwości skalowania czcionki, czytanie plików PDF na tych urządzeniach może być męczące dla oczu. Więcej informacji znajdziesz w dziale Pomoc.
Multiformat
E-booki w Virtualo.pl dostępne są w opcji multiformatu. Oznacza to, że po dokonaniu zakupu, e-book pojawi się na Twoim koncie we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu.
, MOBI
Format MOBI
czytaj
na czytniku
czytaj
na tablecie
czytaj
na smartfonie
Jeden z najczęściej wybieranych formatów wśród czytelników e-booków. Możesz go odczytać na czytniku Kindle oraz na smartfonach i tabletach po zainstalowaniu specjalnej aplikacji. Więcej informacji znajdziesz w dziale Pomoc.
Multiformat
E-booki w Virtualo.pl dostępne są w opcji multiformatu. Oznacza to, że po dokonaniu zakupu, e-book pojawi się na Twoim koncie we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu.
(3w1)
Multiformat
E-booki sprzedawane w księgarni Virtualo.pl dostępne są w opcji multiformatu - kupujesz treść, nie format. Po dodaniu e-booka do koszyka i dokonaniu płatności, e-book pojawi się na Twoim koncie w Mojej Bibliotece we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu przy okładce. Uwaga: audiobooki nie są objęte opcją multiformatu.
czytaj
na laptopie
Pliki PDF zabezpieczone watermarkiem możesz odczytać na dowolnym laptopie po zainstalowaniu czytnika dokumentów PDF. Najpowszechniejszym programem, który umożliwi odczytanie pliku PDF na laptopie, jest Adobe Reader. W zależności od potrzeb, możesz zainstalować również inny program - e-booki PDF pod względem sposobu odczytywania nie różnią niczym od powszechnie stosowanych dokumentów PDF, które odczytujemy każdego dnia.
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
czytaj
na tablecie
Aby odczytywać e-booki na swoim tablecie musisz zainstalować specjalną aplikację. W zależności od formatu e-booka oraz systemu operacyjnego, który jest zainstalowany na Twoim urządzeniu może to być np. Bluefire dla EPUBa lub aplikacja Kindle dla formatu MOBI.
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
czytaj
na czytniku
Czytanie na e-czytniku z ekranem e-ink jest bardzo wygodne i nie męczy wzroku. Pliki przystosowane do odczytywania na czytnikach to przede wszystkim EPUB (ten format możesz odczytać m.in. na czytnikach PocketBook) i MOBI (ten fromat możesz odczytać m.in. na czytnikach Kindle).
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
czytaj
na smartfonie
Aby odczytywać e-booki na swoim smartfonie musisz zainstalować specjalną aplikację. W zależności od formatu e-booka oraz systemu operacyjnego, który jest zainstalowany na Twoim urządzeniu może to być np. iBooks dla EPUBa lub aplikacja Kindle dla formatu MOBI.
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.

50 algorytmów, które powinien znać każdy programista. Klasyczne i nowoczesne algorytmy z dziedzin uczenia maszynowego, projektowania oprogramowania, systemów danych i kryptografii - ebook

Wiedza o algorytmach jest niezbędna przy rozwiązywaniu problemów programistycznych i prowadzeniu złożonych obliczeń. Każdy programista powinien dobrze znać algorytmy, musi też umieć je zaprojektować, modyfikować i stosować. Niezależnie od tego, czy zajmujesz się uczeniem maszynowym, kwestiami bezpieczeństwa, czy inżynierią danych, rzetelne zrozumienie algorytmów jest Ci bardzo potrzebne.

Dzięki tej książce nauczysz się stosować algorytmy w praktycznych sytuacjach i zrozumiesz mechanizmy ich działania. Liczne przykłady pozwolą Ci się zapoznać z kilkoma sposobami ich projektowania i implementacji. Następnie poznasz algorytm określania pozycji stron w wynikach wyszukiwarek internetowych, związane z nimi grafy i algorytmy uczenia maszynowego, a także logikę. Zaznajomisz się ponadto z nowoczesnymi modelami sekwencyjnymi i ich wariantami, jak również algorytmami, metodykami i architekturami implementacji dużych modeli językowych, takich jak ChatGPT. W ostatniej części tego przewodnika znajdziesz opis technik przetwarzania równoległego, przydatnego w zadaniach wymagających dużej mocy obliczeniowej.

W książce między innymi:

  • projektowanie algorytmów przeznaczonych do złożonych zadań
  • sieci neuronowe i techniki uczenia głębokiego
  • struktury danych i algorytmy dostępne w bibliotekach Pythona
  • algorytm grafowy służący do wykrywania oszustw za pomocą analizy sieciowej
  • najnowocześniejsze algorytmy przetwarzania języka naturalnego
  • tworzenie systemu rekomendacji filmów
  • sekwencyjne modele uczenia maszynowego i nowoczesne modele LLM

Algorytmy: klucz do sukcesu w programowaniu!

Spis treści

O autorze

O recenzentach

Przedmowa

Wprowadzenie

Część 1. Wstęp i podstawowe algorytmy

  • Rozdział 1. Wprowadzenie do algorytmów
    • Co to jest algorytm?
      • Fazy algorytmu
      • Środowisko programowania
    • Pakiety w Pythonie
      • Ekosystem SciPy
      • Jupyter Notebook
    • Techniki projektowania algorytmów
      • Wymiar danych
      • Wymiar obliczeniowy
    • Analiza efektywności
      • Analiza pamięciowej złożoności obliczeniowej
      • Czasowa złożoność obliczeniowa
      • Szacowanie efektywności
      • Notacja dużego O
      • Złożoność stała (O(1))
      • Złożoność liniowa (O(n))
      • Złożoność kwadratowa (O(n²))
      • Złożoność logarytmiczna
    • Wybór algorytmu
    • Walidacja algorytmu
      • Algorytmy dokładne, aproksymacyjne i randomizowane
      • Możliwość wyjaśnienia
    • Podsumowanie
  • Rozdział 2. Struktury danych w algorytmach
    • Struktury danych w Pythonie
      • Lista
      • Krotka
      • Słowniki i zbiory
      • Struktury danych Series i DataFrame
      • Macierz
    • Abstrakcyjne typy danych
      • Wektor
      • Stos
      • Kolejka
      • Drzewo
    • Podsumowanie
  • Rozdział 3. Algorytmy sortowania i wyszukiwania
    • Wprowadzenie do algorytmów sortowania
      • Zamiana wartości zmiennych w Pythonie
      • Sortowanie bąbelkowe
      • Sortowanie przez wstawianie
      • Sortowanie przez scalanie
      • Sortowanie Shella
      • Sortowanie przez wybieranie
      • Wybór właściwego algorytmu sortującego
    • Wprowadzenie do algorytmów wyszukiwania
      • Wyszukiwanie liniowe
      • Wyszukiwanie binarne
      • Wyszukiwanie interpolacyjne
    • Praktyczne przykłady
    • Podsumowanie
  • Rozdział 4. Projektowanie algorytmów
    • Wprowadzenie do projektowania algorytmów
      • Kwestia 1: poprawność. Czy algorytm zwraca rezultat, jakiego oczekujemy?
      • Kwestia 2: efektywność. Czy robi to w optymalny sposób?
      • Kwestia 3: skalowalność. Jak efektywny będzie ten algorytm zastosowany do większych zbiorów danych?
    • Strategie algorytmiczne
      • Strategia "dziel i rządź"
      • Strategia programowania dynamicznego
      • Strategia algorytmu zachłannego
    • Praktyczny przykład - rozwiązanie problemu komiwojażera
      • Metoda siłowa
      • Zastosowanie algorytmu zachłannego
      • Porównanie trzech strategii
    • Algorytm PageRank
      • Definicja problemu
      • Implementacja algorytmu PageRank
    • Programowanie liniowe
      • Definicja problemu w programowaniu liniowym
      • Praktyczny przykład - planowanie przepustowości za pomocą programowania liniowego
    • Podsumowanie
  • Rozdział 5. Algorytmy grafowe
    • Zwięzłe wprowadzenie do grafów
      • Grafy jako szkielet nowoczesnych sieci danych
      • Podstawa grafów: węzły (lub wierzchołki)
    • Teoria grafów i analiza sieci
    • Reprezentacja grafów
    • Mechanika i typy grafów
      • Sieci egocentryczne
    • Wprowadzenie do teorii analizy sieciowej
      • Najkrótsza ścieżka
      • Wskaźnik centralności
      • Obliczanie wskaźników centralności w Pythonie
      • Analiza sieci społecznościowych
    • Przeglądanie grafu
      • Wyszukiwanie wszerz
      • Wyszukiwanie w głąb
    • Studium przypadku - wykrywanie oszustw za pomocą SNA
      • Wprowadzenie
      • Czym jest oszustwo w tym kontekście
      • Prosta analiza pod kątem oszustwa
      • Podejście strażnicy
    • Podsumowanie

Część 2. Algorytmy uczenia maszynowego

  • Rozdział 6. Algorytmy nienadzorowanego uczenia maszynowego
    • Wprowadzenie do nienadzorowanego uczenia maszynowego
      • Uczenie nienadzorowane w cyklu życia eksploracji danych
      • Trendy badawcze w zakresie uczenia nienadzorowanego
      • Praktyczne przykłady
    • Algorytmy klasteryzacji
      • Algorytm k-średnich (algorytm centroidów)
    • Kroki grupowania hierarchicznego
    • Implementacja grupowania hierarchicznego
    • Algorytm DBSCAN
    • Tworzenie klastrów przy użyciu algorytmu DBSCAN w Pythonie
    • Ocena klastrów
    • Redukcja wymiarów
      • Analiza głównych składowych
    • Wyszukiwanie reguł asocjacyjnych
      • Rodzaje reguł
      • Wskaźniki reguł
      • Algorytmy analizy asocjacyjnej
    • Podsumowanie
  • Rozdział 7. Tradycyjne algorytmy uczenia nadzorowanego
    • Nadzorowane uczenie maszynowe
    • Problemy nadzorowanego uczenia maszynowego
      • Warunki konieczne
      • Rozróżnienie między klasyfikatorami a regresorami
    • Algorytmy klasyfikujące
      • Wyzwanie dla klasyfikatorów
      • Tablica pomyłek
      • Kompromis między czułością i precyzją
    • Algorytm drzewa decyzyjnego
      • Algorytm klasyfikujący drzewa decyzyjnego
      • Wady i zalety klasyfikatorów opartych na drzewach decyzyjnych
      • Przypadki użycia
    • Metody zespolone
      • Implementacja wzmacniania gradientowego
      • Różnica między lasem losowym a wzmocnieniem gradientowym
      • Wykorzystanie algorytmu lasu losowego do wyzwania dla klasyfikatorów
    • Regresja logistyczna
      • Założenia
      • Określanie relacji
      • Funkcje straty i kosztu
      • Kiedy używać regresji logistycznej
      • Wykorzystanie algorytmu regresji logistycznej do wyzwania dla klasyfikatorów
    • Maszyna wektorów nośnych
      • Wykorzystanie maszyny wektorów nośnych do wyzwania dla klasyfikatorów
      • Naiwny klasyfikator bayesowski
    • Twierdzenie Bayesa
      • Wyliczanie prawdopodobieństwa
      • Reguły mnożenia dla koniunkcji zdarzeń
      • Ogólne zasady mnożenia
      • Zasady dodawania dla alternatywy zdarzeń
      • Wykorzystanie naiwnego klasyfikatora bayesowskiego do wyzwania dla klasyfikatorów
    • Zwycięzcą wśród algorytmów klasyfikacji jest.
      • Algorytmy regresji
      • Wyzwanie dla regresji
      • Definicja problemu
      • Dane historyczne
      • Inżynieria cech w strumieniowym przetwarzaniu danych
    • Regresja liniowa
      • Prosta regresja liniowa
      • Ewaluacja regresorów
      • Regresja wielomianowa
      • Wykorzystanie algorytmu regresji liniowej do wyzwania dla regresji
      • Kiedy używa się regresji liniowej?
      • Wady regresji liniowej
      • Algorytm drzewa regresji
      • Wykorzystanie drzewa regresji do wyzwania dla regresji
      • Regresyjny algorytm wzmocnienia gradientowego
      • Wykorzystanie algorytmu wzmocnienia gradientowego do wyzwania dla regresji
    • Zwycięzcą wśród algorytmów regresji jest.
    • Praktyczny przykład: jak przewidywać pogodę
    • Podsumowanie
  • Rozdział 8. Algorytmy sieci neuronowych
    • Wprowadzenie do sieci neuronowych
      • Tło historyczne
      • Początki sztucznej inteligencji
    • Sieci neuronowe
      • Perceptrony
      • Intuicyjne rozumienie sieci neuronowych
      • Warstwowe architektury uczenia głębokiego
    • Trenowanie sieci neuronowej
    • Anatomia sieci neuronowej
    • Definicja gradientu prostego
    • Funkcje aktywacji
      • Funkcja kroku
      • Funkcja sigmoidalna
      • Jednostronnie obcięta funkcja liniowa (funkcja ReLU)
      • Tangens hiperboliczny (tanh)
      • Znormalizowana funkcja wykładnicza (funkcja softmax)
    • Narzędzia i modele
      • Keras
    • Wybór pomiędzy modelem sekwencyjnym a funkcjonalnym
      • TensorFlow
      • Podstawowe pojęcia TensorFlow
      • Matematyka tensorów
    • Rodzaje sieci neuronowych
      • Sieć konwolucyjna
      • Generatywne sieci przeciwstawne
    • Uczenie transferowe
    • Studium przypadku - użycie uczenia głębokiego do wykrywania oszustw
      • Metodyka
    • Podsumowanie
  • Rozdział 9. Algorytmy nienadzorowanego języka naturalnego
    • Wprowadzenie do przetwarzania języka naturalnego
    • Terminologia przetwarzania języka naturalnego
      • Wstępne przetwarzanie tekstu w NLP
    • Czyszczenie danych przy użyciu Pythona
    • Macierz słowo - dokument
      • Macierz TF-IDF
      • Podsumowanie i omówienie wyników
    • Wprowadzenie do wektorów słów
    • Implementacja osadzania słów za pomocą metody Word2Vec
      • Interpretowanie wartości podobieństwa
      • Zalety i wady Word2Vec
    • Studium przypadku - analiza sentymentu w recenzjach restauracji
      • Import potrzebnych bibliotek i załadowanie zbioru danych
      • Budowa czystego korpusu - wstępne przetwarzanie danych
      • Konwersja danych tekstowych na cechy numeryczne
      • Analiza wyników
    • Zastosowania NLP
    • Podsumowanie
  • Rozdział 10. Modele sekwencyjne
    • Ewolucja zaawansowanych technik modelowania sekwencyjnego
    • Autokodery
      • Kodowanie automatycznego kodera
      • Przygotowanie środowiska
    • Model Seq2Seq
      • Koder
      • Wektor myśli
      • Dekoder
      • Tokeny specjalne w Seq2Seq
      • Dylemat informacyjnego wąskiego gardła
    • Mechanizm atencji
      • Czym jest atencja w sieciach neuronowych
      • Trzy kluczowe aspekty mechanizmów atencji
      • Mechanizmy atencji - szczegóły
      • Ograniczenia mechanizmów atencji
    • Samouwaga
      • Wagi atencji
      • Koder - dwukierunkowe sieci RNN
      • Wektor myśli
      • Dekoder - zwykłe sieci RNN
      • Szkolenie a inferencja
    • Transformatory - kolejny po samouwadze etap ewolucji sieci neuronowych
      • Jakie są największe zalety transformatorów
      • Analiza kodu w Pythonie
      • Interpretacja wyników
    • Duże modele językowe
      • Atencja w modelach LLM
      • GPT i BERT - najbardziej znane modele NLP
      • Tworzenie zaawansowanych modeli LLM przy użyciu głębokich i szerokich modeli
    • Bottom of Form
    • Podsumowanie
  • Rozdział 11. Zaawansowane modelowanie sekwencyjne
    • Ewolucja zaawansowanych technik modelowania sekwencyjnego
    • Autokodery
      • Kodowanie automatycznego kodera
      • Przygotowanie środowiska
    • Model Seq2Seq
      • Koder
      • Wektor myśli
      • Dekoder
      • Tokeny specjalne w Seq2Seq
      • Dylemat informacyjnego wąskiego gardła
    • Mechanizm atencji
      • Czym jest atencja w sieciach neuronowych
      • Trzy kluczowe aspekty mechanizmów atencji
      • Mechanizmy atencji - szczegóły
      • Ograniczenia mechanizmów atencji
    • Samouwaga
      • Wagi atencji
      • Koder - dwukierunkowe sieci RNN
      • Wektor myśli
      • Dekoder - zwykłe sieci RNN
      • Szkolenie a inferencja
    • Transformatory - kolejny po samouwadze etap ewolucji sieci neuronowych
      • Jakie są największe zalety transformatorów
      • Analiza kodu w Pythonie
      • Interpretacja wyników
    • Duże modele językowe
      • Atencja w modelach LLM
      • GPT i BERT - najbardziej znane modele NLP
      • Tworzenie zaawansowanych modeli LLM przy użyciu głębokich i szerokich modeli
    • Bottom of Form
    • Podsumowanie

Część 3. Zagadnienia zaawansowane

  • Rozdział 12. Systemy rekomendacji
    • Wprowadzenie do systemów rekomendacji
    • Typy systemów rekomendacji
      • Systemy rekomendacji oparte na treści
      • Systemy rekomendacji oparte na filtrowaniu kooperacyjnym
      • Hybrydowe systemy rekomendacji
    • Ograniczenia systemów rekomendacji
      • Zimny start
      • Wymagania dotyczące metadanych
      • Problem rzadkości danych
      • Obosieczny miecz wpływu społecznościowego w systemach rekomendacji
    • Obszary praktycznych zastosowań
      • Mistrzowskie wykorzystanie rekomendacji opartych na danych przez Netfliksa
      • Ewolucja systemu rekomendacji Amazona
    • Przykład praktyczny - tworzenie systemu rekomendacji
      • 1. Przygotowanie środowiska
      • 2. Ładowanie danych - recenzji i tytułów
      • 3. Połączenie danych - tworzenie kompletnego widoku
      • 4. Analiza opisowa - wyciąganie wniosków na podstawie ocen
      • 5. Przygotowanie do generowania rekomendacji - tworzenie macierzy
      • 6. Testowanie systemu - rekomendowanie filmów
    • Podsumowanie
  • Rozdział 13. Algorytmiczne przetwarzanie danych
    • Wprowadzenie do algorytmów danych
      • Twierdzenie CAP w kontekście algorytmów danych
      • Przechowywanie danych w systemach rozproszonych
      • Twierdzenie CAP i kompresja danych
    • Twierdzenie CAP
      • Systemy CA
      • Systemy AP
      • Systemy CP
    • Algorytmy kompresji danych
      • Techniki kompresji bezstratnej
    • Praktyczny przykład - zarządzenie danymi w AWS, czyli koncentracja na twierdzeniu CAP i algorytmach kompresji
      • 1. Zastosowanie twierdzenia CAP
      • 2. Algorytmy kompresji
      • 3. Ocena korzyści
    • Podsumowanie
  • Rozdział 14. Kryptografia
    • Wprowadzenie do kryptografii
      • Waga najsłabszego ogniwa
      • Terminologia
      • Wymagania bezpieczeństwa
      • Podstawy projektowania szyfrów
    • Rodzaje technik kryptograficznych
      • Kryptograficzna funkcja skrótu
      • Szyfrowanie symetryczne
      • Szyfrowanie asymetryczne
    • Przykład - kwestie bezpieczeństwa we wdrażaniu modelu uczenia maszynowego
      • Atak man-in-the-middle
      • Obrona przed techniką masquerading
      • Szyfrowanie danych i modelu
    • Podsumowanie
  • Rozdział 15. Algorytmy przetwarzania danych w dużej skali
    • Wprowadzenie do algorytmów wielkoskalowych
    • Charakterystyka wydajnej infrastruktury dla algorytmów wielkoskalowych
      • Elastyczność
      • Cechy dobrze zaprojektowanego algorytmu wielkoskalowego
    • Strategia przetwarzania przez wiele zasobów
    • Teoretyczne możliwości przetwarzania równoległego
      • Prawo Amdahla
      • Wyprowadzanie prawa Amdahla
      • CUDA - wykorzystanie architektury GPU do przetwarzania równoległego
      • Przetwarzanie klastrowe przy użyciu Apache Spark
    • Jak Apache Spark wspomaga wykonywanie algorytmów wielkoskalowych
      • Przetwarzanie rozproszone
      • Przetwarzanie w pamięci
    • Algorytmy wielkoskalowe w przetwarzaniu chmurowym
      • Przykład
    • Podsumowanie
  • Rozdział 16. Uwagi praktyczne
    • Problemy dotyczące rozwiązań algorytmicznych
      • Oczekiwać nieoczekiwanego
    • Porażka bota sztucznej inteligencji Twittera
    • Transparentność algorytmu
      • Algorytmy uczenia maszynowego i transparentność
    • Etyka i algorytmy
      • Problemy z algorytmami uczącymi się
      • Znaczenie kwestii etycznych
      • Czynniki wpływające na rozwiązania algorytmiczne
    • Ograniczanie stronniczości modeli
    • Kiedy używać algorytmów
      • Zdarzenia według teorii czarnego łabędzia i ich wpływ na algorytmy
    • Podsumowanie
Kategoria: Programowanie
Zabezpieczenie: Watermark
Watermark
Watermarkowanie polega na znakowaniu plików wewnątrz treści, dzięki czemu możliwe jest rozpoznanie unikatowej licencji transakcyjnej Użytkownika. E-książki zabezpieczone watermarkiem można odczytywać na wszystkich urządzeniach odtwarzających wybrany format (czytniki, tablety, smartfony). Nie ma również ograniczeń liczby licencji oraz istnieje możliwość swobodnego przenoszenia plików między urządzeniami. Pliki z watermarkiem są kompatybilne z popularnymi programami do odczytywania ebooków, jak np. Calibre oraz aplikacjami na urządzenia mobilne na takie platformy jak iOS oraz Android.
ISBN: 978-83-289-1110-9
Rozmiar pliku: 13 MB

BESTSELLERY

Kategorie: