Uczenie Maszynowe W Akcji

Tekst
Przeczytaj fragment
Oznacz jako przeczytane
Czcionka:Mniejsze АаWiększe Aa

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.

To koniec darmowego fragmentu. Czy chcesz czytać dalej?