📚 Sprawdź nasz tutorial zanurzający się w prostej regresji liniowej z matematyką i Pythonem. 📚

Co to jest uczenie maszynowe?

Profesor Tom M. Mitchell przedstawił portret wyjaśniający operacyjną definicję uczenia maszynowego.

Profesor Tom M. Mitchell sportretował wyjaśniając operacyjną definicję uczenia machinalnego.

Źródło: Machine Learning Department at Carnegie Mellon

O programie komputerowym mówi się, że uczy się na podstawie doświadczenia E w odniesieniu do pewnej klasy zadań T i miary wydajności P, jeśli jego wydajność w zadaniach w T, mierzona przez P, poprawia się wraz z doświadczeniem E. ~ Tom M. Mitchell

Uczenie się maszyn zachowuje się podobnie do wzrostu dziecka. W miarę jak dziecko rośnie, zwiększa się jego doświadczenie E w wykonywaniu zadania T, co skutkuje wyższą miarą wydajności (P).

Na przykład dajemy dziecku zabawkę „klocek do sortowania kształtów”. (Teraz wszyscy wiemy, że w tej zabawce mamy różne kształty i otwory). W tym przypadku naszym zadaniem T jest znalezienie odpowiedniego otworu dla danego kształtu. Następnie dziecko obserwuje kształt i próbuje dopasować go do otworu w kształcie. Załóżmy, że zabawka ma trzy kształty: koło, trójkąt i kwadrat. W pierwszej próbie znalezienia otworu w kształcie, jej miara wydajności (P) wynosi 1/3, co oznacza, że dziecko znalazło 1 z 3 prawidłowych otworów w kształcie.

Po raz drugi dziecko próbuje ponownie i zauważa, że jest już trochę doświadczone w tym zadaniu. Biorąc pod uwagę zdobyte doświadczenie (E), dziecko próbuje tego zadania po raz kolejny, a mierząc wydajność (P), okazuje się, że wynosi ona 2/3. Po powtórzeniu tego zadania (T) 100 razy, dziecko zorientowało się, który kształt wchodzi do którego otworu.

Więc jej doświadczenie (E) wzrosło, jej wydajność (P) również wzrosła, a następnie zauważamy, że wraz ze wzrostem liczby prób z tą zabawką. Wydajność również wzrasta, co skutkuje wyższą dokładnością.

Takie wykonanie jest podobne do uczenia maszynowego. To co robi maszyna, to bierze zadanie (T), wykonuje je i mierzy jego wydajność (P). Teraz maszyna ma dużą liczbę danych, więc jak przetwarza te dane, jej doświadczenie (E) wzrasta w czasie, co skutkuje wyższą miarą wydajności (P). Tak więc po przejściu przez wszystkie dane, dokładność naszego modelu uczenia maszynowego wzrasta, co oznacza, że przewidywania dokonane przez nasz model będą bardzo dokładne.

Inna definicja uczenia maszynowego autorstwa Arthura Samuela:

Uczenie maszynowe to subdziedzina informatyki, która daje „komputerom zdolność uczenia się bez bycia jawnie zaprogramowanym.” ~ Arthur Samuel

Postarajmy się zrozumieć tę definicję: Stwierdza ona „uczyć się bez wyraźnego zaprogramowania” – co oznacza, że nie zamierzamy uczyć komputera za pomocą określonego zestawu reguł, ale zamiast tego, co zamierzamy zrobić, to nakarmić komputer wystarczającą ilością danych i dać mu czas na uczenie się z nich, poprzez popełnianie własnych błędów i poprawianie ich. Na przykład nie nauczyliśmy dziecka, jak dopasować kształty, ale wykonując to samo zadanie kilka razy, dziecko nauczyło się samodzielnie dopasowywać kształty do zabawki.

Dlatego możemy powiedzieć, że nie nauczyliśmy dziecka, jak dopasować kształty. Tak samo postępujemy z maszynami. Dajemy im wystarczająco dużo danych do pracy i karmimy je informacjami, których od nich oczekujemy. W ten sposób maszyna przetwarza dane i dokładnie je przewiduje.

Dlaczego potrzebujemy uczenia maszynowego?

Na przykład, mamy zestaw zdjęć kotów i psów. To co chcemy zrobić, to sklasyfikować je do grupy kotów i psów. Aby to zrobić, musimy znaleźć różne cechy zwierząt, takie jak:

  1. Ile oczu ma każde zwierzę?
  2. Jaki jest kolor oczu każdego zwierzęcia?
  3. Jaki jest wzrost każdego zwierzęcia?
  4. Jaka jest waga każdego zwierzęcia?
  5. Co każde zwierzę zazwyczaj je?

Na podstawie odpowiedzi na każde z tych pytań tworzymy wektor. Następnie stosujemy zestaw reguł, takich jak:

Jeśli wysokość > 1 stopy i waga > 15 funtów, to może to być kot.

Teraz musimy stworzyć taki zestaw reguł dla każdego punktu danych. Ponadto umieszczamy drzewo decyzyjne z twierdzeń if, else if, else i sprawdzamy, czy należy do jednej z kategorii.

Załóżmy, że wynik tego eksperymentu nie był owocny, ponieważ błędnie sklasyfikował wiele zwierząt, co daje nam doskonałą okazję do zastosowania uczenia maszynowego.

To, co robi uczenie maszynowe, to przetwarzanie danych za pomocą różnego rodzaju algorytmów i mówi nam, która cecha jest ważniejsza do określenia, czy jest to kot czy pies. Tak więc zamiast stosować wiele zestawów reguł, możemy uprościć je w oparciu o dwie lub trzy cechy, a w rezultacie daje nam to większą dokładność. Poprzednia metoda nie była wystarczająco uogólniona, aby móc przewidywać.

Modele uczenia maszynowego pomagają nam w wielu zadaniach, takich jak:

  • Rozpoznawanie obiektów
  • Sumaryzacja
  • Predykcja
  • Klasyfikacja
  • Klustracja
  • Systemy rekomendacji
  • I inne

Co to jest model uczenia maszynowego?

Model uczenia maszynowego to system pytań/odpowiedzi, który zajmuje się przetwarzaniem zadań związanych z uczeniem maszynowym. Pomyśl o nim jak o systemie algorytmów, który reprezentuje dane podczas rozwiązywania problemów. Metody, którymi zajmiemy się poniżej, są korzystne dla celów związanych z przemysłem, aby rozwiązać problemy biznesowe.

Na przykład wyobraźmy sobie, że pracujemy nad systemem ML Google Adwords, a naszym zadaniem jest wdrożenie algorytmu ML, aby przekazać konkretną demografię lub obszar za pomocą danych. Takie zadanie ma na celu przejście od wykorzystania danych do zebrania wartościowych spostrzeżeń w celu poprawy wyników biznesowych.

Główne algorytmy uczenia maszynowego:

Do przewidywania wartości ciągłych używamy algorytmów regresji.

Algorytmy regresji:

  • Regresja liniowa
  • Regresja wielomianowa
  • Regresja wykładnicza
  • Regresja logistyczna
  • Regresja logarytmiczna

Klasyfikacja

Algorytmy klasyfikacji wykorzystujemy do przewidywania klasy lub kategorii zbioru elementów.

Algorytmy klasyfikacji:

  • K-Najbliżsi Sąsiedzi
  • Drzewa decyzyjne
  • Las losowy
  • Support Vector Machine
  • Naive Bayes

Klastrowanie

Algorytmy klasteryzacji stosujemy do podsumowywania lub strukturyzacji danych.

Algorytmy klasteryzacji:

  • K-means
  • DBSCAN
  • Mean Shift
  • Hierarchiczny

Asocjacja

Algorytmy asocjacji używamy do kojarzenia współwystępujących elementów lub zdarzeń.

Algorytmy asocjacyjne:

  • Apriori

Detekcja anomalii

Detekcję anomalii stosujemy do wykrywania nienormalnych działań i nietypowych przypadków, takich jak wykrywanie oszustw.

Wykrywanie wzorców sekwencji

Wykrywanie wzorców sekwencji stosujemy do przewidywania kolejnych zdarzeń pomiędzy przykładami danych w sekwencji.

Redukcja wymiarowości

Używamy redukcji wymiarowości do zmniejszenia rozmiaru danych w celu wyodrębnienia tylko użytecznych cech ze zbioru danych.

Systemy rekomendacji

Używamy algorytmów rekomendujących do budowania silników rekomendacji.

Przykłady:

  • System rekomendacji Netflix.
  • System rekomendacji książek.
  • System rekomendacji produktów na Amazon.

W dzisiejszych czasach słyszymy wiele buzz words, takich jak sztuczna inteligencja, uczenie maszynowe, głębokie uczenie i inne.

Jakie są podstawowe różnice między sztuczną inteligencją, uczeniem maszynowym i głębokim uczeniem?

📚 Sprawdź nasze rekomendacje redakcyjne na temat najlepszych książek o uczeniu maszynowym. 📚

Sztuczna inteligencja (AI):

Sztuczna inteligencja (AI), zgodnie z definicją profesora Andrew Moore’a, jest nauką i inżynierią tworzenia komputerów zachowujących się w sposób, który do niedawna uważaliśmy za wymagający ludzkiej inteligencji .

Zalicza się do nich:

  • Wizja komputerowa
  • Przetwarzanie języka
  • Kreatywność
  • Sumaryzacja

Uczenie maszynowe (ML):

Jak zdefiniował profesor Tom Mitchell, uczenie maszynowe odnosi się do naukowej gałęzi AI, która koncentruje się na badaniu algorytmów komputerowych, które pozwalają programom komputerowym automatycznie ulepszać się poprzez doświadczenie.

Oto one obejmują:

  • Klasyfikację
  • Sieci neuronowe
  • Klastrowanie

Głębokie uczenie:

Głębokie uczenie jest podzbiorem uczenia maszynowego, w którym warstwowe sieci neuronowe, w połączeniu z dużą mocą obliczeniową i dużymi zbiorami danych, mogą tworzyć potężne modele uczenia maszynowego.

Abstrakcyjna reprezentacja sieci neuronowej | Photo by Clink Adair via Unsplash

Abstrakcyjna reprezentacja sieci neuronowej | Photo by Clink Adair via Unsplash

Abstrakcyjna reprezentacja sieci neuronowej | Photo by Clink Adair via Unsplash

Dlaczego wolimy Pythona do implementacji algorytmów uczenia maszynowego?

Python jest popularnym językiem programowania ogólnego przeznaczenia. Możemy pisać algorytmy uczenia maszynowego używając Pythona i działa to dobrze. Powodem, dla którego Python jest tak popularny wśród naukowców zajmujących się danymi, jest to, że Python ma już zaimplementowaną różnorodność modułów i bibliotek, które czynią nasze życie wygodniejszym.

Przyjrzyjrzyjmy się pokrótce kilku ekscytującym bibliotekom Pythona.

  1. Numpy: Jest to biblioteka matematyczna do pracy z tablicami n-wymiarowymi w Pythonie. Umożliwia nam efektywne i wydajne wykonywanie obliczeń.
  2. Scipy: Jest to zbiór algorytmów numerycznych i zestaw narzędzi specyficznych dla danej dziedziny, w tym przetwarzanie sygnałów, optymalizacja, statystyka i wiele innych. Scipy jest funkcjonalną biblioteką do obliczeń naukowych i wysokowydajnych.
  3. Matplotlib: Jest to modny pakiet do plotowania, który zapewnia plotowanie 2D, a także plotowanie 3D.
  4. Scikit-learn: Jest to darmowa biblioteka uczenia maszynowego dla języka programowania python. Posiada większość algorytmów klasyfikacji, regresji i klastrowania oraz współpracuje z bibliotekami numerycznymi Pythona takimi jak Numpy, Scipy.

Algorytmy uczenia maszynowego dzielą się na dwie grupy :

  • Algorytmy uczenia nadzorowanego
  • Algorytmy uczenia nienadzorowanego

I. Algorytmy uczenia nadzorowanego:

Cel: Przewidzieć klasę lub etykietę wartości.

Uczenie nadzorowane jest gałęzią uczenia maszynowego (być może jest to główny nurt uczenia maszynowego/głębokiego na razie) związaną z wnioskowaniem o funkcji z etykietowanych danych treningowych. Dane treningowe składają się ze zbioru par *(input, target)*, gdzie input może być wektorem cech, a target instruuje, czego oczekujemy od funkcji na wyjściu. W zależności od typu *celu*, możemy z grubsza podzielić uczenie nadzorowane na dwie kategorie: klasyfikację i regresję. Klasyfikacja dotyczy celów kategorycznych; przykłady sięgają od prostych przypadków, takich jak klasyfikacja obrazów, do zaawansowanych tematów, takich jak tłumaczenia maszynowe i podpisywanie obrazów. Regresja dotyczy celów ciągłych. Jej zastosowania obejmują przewidywanie akcji, maskowanie obrazów i inne – które wszystkie mieszczą się w tej kategorii.

Dla zilustrowania poniższego przykładu uczenia nadzorowanego | Źródło: Photo by Shirota Yuri, Unsplash

Aby zrozumieć, czym jest uczenie nadzorowane, posłużymy się przykładem. Na przykład, dajemy dziecku 100 pluszowych zwierząt, w których jest po dziesięć zwierząt każdego rodzaju, np. dziesięć lwów, dziesięć małp, dziesięć słoni i inne. Następnie uczymy dziecko rozpoznawać różne rodzaje zwierząt na podstawie różnych cech (właściwości) zwierzęcia. Na przykład, jeśli jego kolor jest pomarańczowy, to może to być lew. Jeśli jest to duże zwierzę z trąbą, to może to być słoń.

Uczymy dziecko, jak rozróżniać zwierzęta, to może być przykład uczenia się pod nadzorem. Teraz, kiedy dajemy dziecku różne zwierzęta, powinno ono być w stanie zaklasyfikować je do odpowiedniej grupy zwierząt.

Na potrzeby tego przykładu zauważamy, że 8/10 jego klasyfikacji było poprawnych. Możemy więc powiedzieć, że dziecko wykonało całkiem niezłą pracę. To samo odnosi się do komputerów. Dostarczamy im tysiące punktów danych z ich rzeczywistymi wartościami etykietowanymi (dane etykietowane to dane zaklasyfikowane do różnych grup wraz z ich wartościami cech). Następnie uczy się on na podstawie różnych cech w okresie szkolenia. Po zakończeniu okresu szkolenia, możemy użyć naszego modelu do przewidywań. Należy pamiętać, że maszyna jest już karmiona etykietowanymi danymi, więc jej algorytm predykcji jest oparty na uczeniu nadzorowanym. W skrócie, możemy powiedzieć, że przewidywania w tym przykładzie są oparte na etykietowanych danych.

Przykładowe algorytmy uczenia nadzorowanego :

  • Regresja liniowa
  • Regresja logistyczna
  • K-Najbliżsi Sąsiedzi
  • Drzewo decyzyjne
  • Las losowy
  • Maszyna wektorów podporowych

II. Uczenie nienadzorowane:

Cel: Określenie wzorców/grup danych.

W przeciwieństwie do uczenia nadzorowanego. Uczenie nienadzorowane wnioskuje z nieoznakowanych danych o funkcjach, które opisują ukryte struktury w danych.

Prawdopodobnie najbardziej podstawowym typem uczenia nienadzorowanego są metody redukcji wymiaru, takie jak PCA, t-SNE, przy czym PCA jest zwykle używane w przetwarzaniu wstępnym danych, a t-SNE zwykle w wizualizacji danych.

Bardziej zaawansowaną gałęzią jest klastrowanie, które bada ukryte wzorce w danych, a następnie na ich podstawie dokonuje predykcji; przykłady obejmują klastrowanie K-mean, gaussowskie modele mieszane, ukryte modele Markowa i inne.

Wraz z renesansem głębokiego uczenia, uczenie nienadzorowane zyskuje coraz więcej uwagi, ponieważ uwalnia nas od ręcznego etykietowania danych. W świetle głębokiego uczenia, rozważamy dwa rodzaje uczenia bez nadzoru: uczenie reprezentacji i modele generatywne.

Uczenie reprezentacji ma na celu wydestylowanie reprezentatywnej cechy wysokiego poziomu, która jest przydatna w dalszych zadaniach, podczas gdy modele generatywne mają na celu odtworzenie danych wejściowych na podstawie pewnych ukrytych parametrów.

Dla zilustrowania poniższego przykładu uczenia bez nadzoru | Źródło: Photo by Jelleke Vanooteghem, Unsplash

Uczenie nienadzorowane działa tak, jak brzmi. W tego typu algorytmach nie mamy etykietowanych danych. Maszyna musi więc sama przetworzyć dane wejściowe i spróbować wyciągnąć wnioski na temat danych wyjściowych. Na przykład, pamiętasz dziecko, któremu daliśmy zabawkę w kształcie? W tym przypadku nauczyłby się na własnych błędach, aby znaleźć idealny otwór dla różnych kształtów.

Ale haczyk polega na tym, że nie karmimy dziecka, ucząc metod dopasowywania kształtów (dla celów uczenia maszynowego zwanych danymi etykietowanymi). Jednak dziecko uczy się na podstawie różnych cech zabawki i próbuje wyciągnąć wnioski na ich temat. W skrócie, przewidywania opierają się na danych nieoznaczonych.

Przykłady algorytmów uczenia bez nadzoru:

  • Redukcja wymiaru
  • Oszacowanie gęstości
  • Analiza koszyka rynkowego
  • Generatywne sieci przeciwstawne (GAN)
  • Klastrowanie

.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *