Read the book: «Uczenie Maszynowe W Akcji»
Uczenie Maszynowe w Akcji
Przewodnik Dla laika
Alan T. Norman
Tłumacz: Krzysztof Zacharski
Copyright © Wszelkie prawa zastrzeżone.
Żadna część tej publikacji nie może być powielana, rozpowszechniana lub przekazywana w jakiejkolwiek formie lub za pomocą jakichkolwiek środków, w tym fotokopii, nagrywania lub innych metod elektronicznych lub mechanicznych, lub za pomocą jakiegokolwiek systemu przechowywania i wyszukiwania informacji, bez uprzedniej pisemnej zgody wydawcy, z wyjątkiem bardzo krótkich cytatów zawartych w recenzjach krytycznych i niektórych innych niekomercyjnych zastosowań dozwolonych przez prawo autorskie.
Spis Treści
DLACZEGO NAPISAŁEM TĘ KSIĄŻKĘ
Ta książka nie jest o programowaniu algorytmów uczenia maszynowego
Przewodnik dla laika
rozdział 1. Czym jest uczenie maszynowe?
Programowanie jawne a trenowanie algorytmu
Definicje: Sztuczna inteligencja a uczenie maszynowe a sieci neuronowe
Podstawowe pojęcia
Uczenie nadzorowane a nienadzorowane
Jakie problemy może rozwiązać uczenie maszynowe?
Czarna skrzynka: czego nie wiemy o uczeniu maszynowym
Zagłębiając się bardziej
Rozdział 2. Oczyszczanie, etykietowanie, porządkowanie zbiorów danych
Oczyszczanie zbioru danych
Potrzeba bardzo dużych zbiorów danych dla uczenia maszynowego
Muszą być dobrze oznakowane
rozdział 3. Wybieranie lub Pisanie Algorytmu uczenia maszynowego
Podstawowe pojęcia
Popularne typy algorytmów
Co trzeba zrobić, żeby napisać algorytm novel
Rozdział 4. Szkolenie I wdrażanie algorytmu
Zaangażowane programowanie
Statyczne a dynamiczne
Dostrajanie i projektkowanie funkcji
Odrzucanie algorytmu
Rozdział 5. Zastosowania uczenia maszynowego w świecie rzeczywistym
Transport
Produktowe Rekomendacje
Finanse
Asystenci Głosowi, Inteligentne Domy, I Samochody
Podsumowanie
Książka Bonusowa Bitcoin Whales
DLACZEGO NAPISAŁEM TĘ KSIĄŻKĘ
Witamy w świecie uczenia maszynowego!

Sztuczna inteligencja jest gotowa zmienić bieg historii ludzkości, być może bardziej niż jakakolwiek inna technologia w historii. Dużą część tej rewolucji stanowi uczenie maszynowe.
Uczenie maszynowe jest nauką o uczeniu komputerów, aby dokonywały przewidywań na podstawie danych. Na podstawowym poziomie, uczenie maszynowe polega na podaniu komputerowi zestawu danych i poproszeniu go o dokonanie przewidywań. Na początku, komputer będzie miał wiele przewidywań błędnych. Jednakże, w ciągu tysięcy przewidywań, komputer zmieni swój algorytm, aby dokonywać lepszych przewidywań.
Ten rodzaj obliczeń prognozujących był kiedyś niemożliwy. Komputery po prostu nie mogły przechowywać wystarczającej ilości danych lub przetwarzać ich wystarczająco szybko, aby skutecznie się uczyć. Obecnie, każdego roku, komputery stają się coraz inteligentniejsze w szybkim tempie. Postępy w przechowywaniu danych i mocy obliczeniowej napędzają ten trend w kierunku inteligentniejszych maszyn. W rezultacie komputery robią dziś rzeczy, które były nie do pomyślenia jeszcze dekadę lub dwie temu.
Uczenie maszynowe ma już wpływ na Twoje codzienne życie. Amazon wykorzystuje uczenie maszynowe do przewidywania produktów, które będziesz chciał kupić. Gmail używa go do filtrowania spamu z Twojej skrzynki odbiorczej. Twoje rekomendacje filmów na Netflixie są oparte na algorytmach uczenia maszynowego.
Jednak wpływ uczenia maszynowego nie kończy się na tym. Algorytmy uczenia maszynowego dokonują przewidywań we wszystkich branżach, od rolnictwa po opiekę zdrowotną. Co więcej, jego wpływ będzie odczuwalny w nowych branżach i na nowe sposoby każdego roku. W miarę pojawiania się tych nowych zastosowań uczenia maszynowego, będziemy stopniowo akceptować je jako część normalnego życia. Niemniej jednak, to nowe poleganie na inteligentnych maszynach jest punktem zwrotnym w historii technologii, a trend ten tylko przyspiesza.
W przyszłości uczenie maszynowe i sztuczna inteligencja będą generalnie napędzać automatyzację wielu zadań wykonywanych obecnie przez ludzi. Samojeżdżące samochody polegają na uczeniu maszynowym do rozpoznawania obrazu i będą w coraz większym stopniu częścią transportu, podobnie jak samojeżdżące ciężarówki i inne pojazdy do transportu towarów. Znaczna część rolnictwa i produkcji jest obecnie zautomatyzowana, tak że uczenie maszynowe zapewnia żywność, którą spożywamy i towary, których używamy. Trend w kierunku automatyzacji tylko przyspiesza. Inne zastosowania uczenia maszynowego mogą zasadniczo zmienić pracę wykonywaną przez ludzi na co dzień, ponieważ maszyny stają się bardziej biegłe w zarządzaniu procesami i wykonywaniu pracy opertej na wiedzy.
Odkąd uczenie maszynowe będzie miało tak głęboki wpływ na codzienne życie, ważne jest, aby każdy miał dostęp do informacji o tym, jak ono działa. Dlatego właśnie napisałem tę książkę. Obecny obraz informacji na temat uczenia maszynowego jest podzielony.
Po pierwsze, istnieją wyjaśnienia dla ogółu społeczeństwa, które przygłuszają koncepcje. Te wyjaśnienia sprawiają, że uczenie maszynowe wydaje się czymś, co może zrozumieć tylko ekspert.
Po drugie, istnieją dokumenty techniczne pisane przez ekspertów dla ekspertów. Wykluczają one ogół społeczeństwa żargonem i złożonością. Oczywiście, napisanie i wykonanie algorytmu uczenia maszynowego jest ogromnym wyczynem technicznym, a te techniczne wyjaśnienia są ważne. Jednak w obecnej literaturze na temat uczenia maszynowego istnieje pewna dziura.
A co z laikiem, który naprawdę chce zrozumieć tę technologiczną rewolucję, niekoniecznie po to, by pisać kod, ale po to, by mieć pojęcie o zmianach zachodzących wokół niego? Zrozumienie podstawowych pojęć uczenia maszynowego nie powinno być ograniczone do jakiejś technologicznej elity. Te zmiany będą dotyczyć nas wszystkich. Mają one konsekwencje etyczne i ważne jest, aby społeczeństwo wiedziało o wszystkich korzyściach i wadach uczenia maszynowego.
Dlatego właśnie napisałem tę książkę. Jeśli brzmi to dla Ciebie interesująco, mam nadzieję, że Ci się spodoba..
Ta książka nie jest o programowaniu algorytmów uczenia maszynowego
Jeśli ten manifest wstępu nie był wystarczająco jasny: to nie jest książka o kodowaniu. Nie jest ona przeznaczona dla informatyków, którzy chcą się dowiedzieć, jak tworzyć algorytmy uczenia maszynowego.
Po pierwsze, nie mam prawie żadnych kwalifikacji do napisania takiej książki. Ludzie spędzają lata ucząc się zawiłości pisania algorytmów i trenowania sieci. Istnieją całe programy doktoranckie, które badają krawędzie pola, czerpiąc z algebry liniowej i statystyki predyktywnej. Jeśli zanurzysz się głęboko w szczegóły uczenia maszynowego i pokochasz je na tyle, by zrobić doktorat, możesz z łatwością dojść do zarabiania 300.000-600.000$ dolarów, pracując dla dużej firmy technologicznej. To jest jak rzadkie i cenne są te umiejętności.
Ja nie mam takich kwalifikacji i myślę, że to dobrze. Jeśli sięgnąłeś po tę książkę, oznacza to, że jesteś początkującym zainteresowanym uczeniem maszynowym. Prawdopodobnie nie jesteś techniczny, a jeśli jesteś, to szukasz książki, która pozwoli Ci zacząć od podstawowych pojęć. Jako autor tekstów o technologii, ciągle uczę się o technologiach. Jestem studentem uczenia maszynowego i pamiętam, jak to jest być początkującym. Mogę pomóc wyjaśnić podstawowe koncepcje w sposób, który jest łatwy do zrozumienia. Po przeczytaniu tej książki będziesz miał solidne podstawy, które ułatwią Ci przejście do bardziej zaawansowanej książki, jeśli będziesz chciał dowiedzieć się więcej.
Jeśli jednak czujesz, że już rozumiesz podstawowe zasady lub naprawdę potrzebujesz książki, która nauczy Cię jak napisać i wytrenować algorytm uczenia maszynowego, to prawdopodobnie nie jest to książka dla Ciebie.
Przewodnik dla laika
Prawdziwym celem tej książki jest bycie łatwym do czytania wprowadzeniem do uczenia maszynowego. Moim celem jest napisanie książki, którą każdy mógłby przeczytać, pozostając wiernym zasadom uczenia maszynowego i nie upraszczając pojęć. Jestem przekonany o inteligencji moich czytelników i nie uważam, że książka dla początkujących musi koniecznie być poświęcona złożoności i niuansom. To powiedziawszy, nie jest to duża książka, i nigdzie nie jest w pełni wyczerpująca. Osoby zainteresowane tematem będą chciały zagłębić się bardziej w inne książki i badania.
W tej książce przyjrzymy się podstawowym pojęciom i rodzajom uczenia maszynowego. Zbadamy, jak one działają. Następnie zbadamy kwestie zbiorów danych, pisania i trenowania algorytmów. Na koniec poznamy kilka rzeczywistych przypadków użycia uczenia maszynowego oraz miejsc, w których uczenie maszynowe może zostać wykorzystane w przyszłości.
Jeszcze raz witamy w uczeniu maszynowym. Zanurzmy się w nim...
rozdział 1. Czym jest uczenie maszynowe?
Celem tego pierwszego rozdziału jest ustalenie ram dla reszty tego, co przeczytasz w tej książce. Przedstawimy tu podstawowe koncepcje, które będziemy omawiać bardziej szczegółowo w kolejnych rozdziałach. Ta książka opiera się na sobie, a ten rozdział jest jej podstawą.
Logicznym miejscem do rozpoczęcia jest zdefiniowanie, co mamy na myśli, gdy mówimy o uczeniu maszynowym.

Moja prosta definicja brzmi następująco: uczenie maszynowe pozwala komputerowi uczyć się na podstawie doświadczeń.
Może to brzmieć banalnie, ale jeśli przełamać tę definicję, ma ona głębokie znaczenie. Przed uczeniem maszynowym, komputery nie mogły się doskonalić na podstawie doświadczeń. Zamiast tego, cokolwiek przekazał kod, to komputer to robił.
Uczenie maszynowe, w swoim najprostszym wyjaśnieniu, polega na umożliwieniu komputerowi zróżnicowania jego odpowiedzi i wprowadzeniu pętli sprzężenia zwrotnego dla dobrych i złych odpowiedzi. Oznacza to, że algorytmy uczenia maszynowego różnią się zasadniczo od programów komputerowych, które powstały przed nimi. Zrozumienie różnicy między jawnym programowaniem a szkoleniem algorytmów jest pierwszym krokiem do tego, by zobaczyć, jak uczenie maszynowe fundamentalnie zmienia informatykę.
Programowanie jawne a trenowanie algorytmu
Z kilkoma ostatnimi wyjątkami, prawie każde oprogramowanie, z którego korzystałeś w swoim życiu, było jawnie zaprogramowane. Oznacza to, że jakiś człowiek napisał zestaw reguł, których komputer ma przestrzegać. Wszystko, od systemu operacyjnego Twojego komputera, poprzez Internet, aż po aplikacje w Twoim telefonie, ma kod napisany przez człowieka. Bez człowieka, który dałby komputerowi zestaw reguł do działania, komputer nie byłby w stanie nic zrobić.
Programowanie jawne jest wspaniałe. Stanowi szkielet wszystkiego, co obecnie robimy z komputerami. Jest idealne, gdy potrzebujesz komputera, aby zarządzał danymi, obliczał wartości lub śledził zależności za Ciebie. Programowanie jawne jest bardzo potężne, ale ma wąskie gardło: człowieka.
Staje się to problematyczne, gdy chcemy wykonać skomplikowane rzeczy z pomocą komputera, na przykład poprosić go o rozpoznanie zdjęcia kota. Gdybyśmy mieli użyć jawnego programowania, by nauczyć komputer, czego ma szukać w kocie, spędzilibyśmy lata na pisaniu kodu na każdą ewentualność. Co jeśli na zdjęciu nie widać wszystkich czterech łap? Co, jeśli kot jest innego koloru? Czy komputer mógłby wyodrębnić czarnego kota na czarnym tle lub białego kota na śniegu?
Są to rzeczy, które uważamy za oczywiste jako ludzie. Nasze mózgi rozpoznają rzeczy szybko i łatwo w wielu kontekstach. Komputery nie są w tym tak dobre i trzeba by milionów linijek jawnego kodu, żeby powiedzieć komputerowi, jak ma rozpoznawać kota. W rzeczywistości, może nie być w ogóle możliwe, aby jednoznacznie zaprogramować komputer do 100% dokładnego rozpoznawania kotów, ponieważ kontekst zawsze może się zmienić i zepsuć twój kod.
Wtedy do gry wkraczają algorytmy. Przy programowaniu jawnym próbowaliśmy powiedzieć komputerowi, czym jest kot i uwzględnić w kodzie każdą ewentualność. W przeciwieństwie do tego, algorytmy uczenia maszynowego pozwalają komputerowi odkryć, czym jest kot.
Na początek, algorytm może zawierać kilka kluczowych cech. Na przykład, możemy powiedzieć komputerowi, aby szukał czterech nóg i ogona. Następnie podajemy algorytmowi wiele obrazków. Niektóre z nich to koty, ale inne mogą być psami, drzewami lub losowymi obrazkami. Gdy algorytm zgadnie, będziemy wzmacniać poprawne odpowiedzi, a za błędne dawać negatywne informacje zwrotne.
Z czasem komputer wykorzysta ten algorytm do stworzenia własnego modelu tego, czego należy szukać, aby zidentyfikować kota. Składnikami modelu komputera mogą być rzeczy, o których na początku nawet nie pomyśleliśmy. Z kolejnymi wzmocnieniami i tysiącami zdjęć, algorytm będzie stopniowo stawał się coraz lepszy w identyfikowaniu kotów. Być może nigdy nie osiągnie 100% dokładności, ale będzie wystarczająco dokładny, aby zastąpić człowieka rozpoznającego koty i będzie bardziej wydajny.
Algorytmy są wytycznymi, ale nie są jednoznacznymi regułami. Są nowym sposobem mówienia komputerowi, jak ma podejść do zadania. Wprowadzają pętle sprzężenia zwrotnego, które samoczynnie korygują się w trakcie setek lub tysięcy prób wykonania zadania.
Definicje: Sztuczna inteligencja a uczenie maszynowe a sieci neuronowe
Ta książka jest o uczeniu maszynowym, ale to pojęcie mieści się w szerszym kontekście. Ponieważ uczenie maszynowe zyskuje coraz większą popularność, dużo się o nim pisze. W artykułach tych dziennikarze często używają zamiennie terminów: sztuczna inteligencja, uczenie maszynowe i sieci neuronowe. Istnieją jednak drobne różnice pomiędzy tymi trzema terminami.

Sztuczna inteligencja jest najstarszym i najszerszym z tych trzech terminów. Powstała w połowie XX wieku, sztuczna inteligencja odnosi się do każdego przypadku, gdy maszyna obserwuje i dostosowuje się do swojego środowiska. Sztuczna inteligencja stoi w kontraście do naturalnej inteligencji u ludzi i zwierząt. Z czasem jednak zakres sztucznej inteligencji uległ zmianie. Na przykład, rozpoznawanie znaków było kiedyś poważnym wyzwaniem dla AI. Teraz jest to rutynowe i nie jest już uważane za część AI. W miarę odkrywania nowych zastosowań AI, włączamy je do naszych ram odniesienia dla tego, co jest normalne, a zakres AI rozszerza się na wszystko, co jest następne.
Uczenie maszynowe jest specyficznym podzbiorem AI. Poświęciliśmy już trochę czasu na jego zdefiniowanie w tym rozdziale, ale odnosi się ono do nadania maszynie pętli sprzężenia zwrotnego, która pozwala jej uczyć się na podstawie doświadczeń. Jako termin, uczenie maszynowe istnieje dopiero od lat 80. Dopiero od niedawna, w ciągu ostatnich 10-15 lat, dysponujemy mocą obliczeniową i pamięcią masową, aby naprawdę zacząć wdrażać uczenie maszynowe na szeroką skalę.

Sieci neuronowe są podzbiorem uczenia maszynowego i są obecnie najgorętszym trendem w branży. Sieć neuronowa składa się z wielu węzłów, które współpracują ze sobą w celu wytworzenia odpowiedzi. Każdy z najniższych węzłów ma określoną funkcję. Na przykład, podczas oglądania obrazu węzły niskiego poziomu mogą identyfikować określone kolory lub linie. Późniejsze węzły mogą grupować linie w kształty, mierzyć odległości lub szukać gęstości kolorów. Każdy z tych węzłów jest następnie ważony pod kątem jego wpływu na ostateczną odpowiedź. Na początku sieć neuronowa będzie popełniać wiele błędów, ale w trakcie wielu prób będzie aktualizować wagi każdego węzła, aby coraz lepiej znajdować prawidłowe odpowiedzi.
Teraz, kiedy przeczytasz artykuł o AI, uczeniu maszynowym lub sieciach neuronowych, zrozumiesz różnicę. Kluczem jest uświadomienie sobie, że są to podzbiory. Sieci neuronowe są tylko jednym z rodzajów uczenia maszynowego, które z kolei jest tylko częścią sztucznej inteligencji.
Podstawowe pojęcia
Uczenie maszynowe może być stosowane w wielu przypadkach. Tak długo jak istnieją znaczące dane do przeanalizowania, uczenie maszynowe może pomóc nadać im sens. W związku z tym, każdy projekt uczenia maszynowego jest inny. Jednakże, istnieje pięć podstawowych części każdej aplikacji uczenia maszynowego:
1. problem
Uczenie maszynowe jest przydatne wszędzie tam, gdzie trzeba rozpoznać wzorce i przewidzieć zachowanie na podstawie danych archiwalnych. Rozpoznawanie wzorców może oznaczać wszystko, od rozpoznawania znaków, przez przewidywanie konserwacji, po polecanie produktów klientom na podstawie wcześniejszych zakupów..
Jednak komputer nie rozumie danych ani problemu. Zamiast tego, badacz danych musi nauczyć komputer, czego ma szukać, używając odpowiednich informacji zwrotnych. Jeśli badacz danych nie zdefiniuje dobrze problemu, nawet najlepszy algorytm wytrenowany na największym zbiorze danych nie przyniesie oczekiwanych rezultatów.

Jasne jest, że uczenie maszynowe nie jest jeszcze dobrze przystosowane do rozumowania symbolicznego wysokiego poziomu. Na przykład, algorytm może być w stanie zidentyfikować koszyk, kolorowe jajka i pole, ale nie będzie w stanie powiedzieć, że jest to polowanie na jajka wielkanocne, jak to zrobiłoby większość ludzi..
Zazwyczaj projekty uczenia maszynowego mają bardzo wąski, specyficzny problem, na który szukają odpowiedzi. Inny problem będzie wymagał nowego podejścia i być może innego algorytmu.
The free sample has ended.