Ten post będzie obejmował kilka bardzo podstawowych pojęć w uczeniu maszynowym, od algebry liniowej do metryk oceny. Służy on jako miły przewodnik dla początkujących, którzy chcą wejść na to pole.

Algebra liniowa

Algebra liniowa jest podstawowym filarem w dziedzinie uczenia maszynowego. Dlaczego. Algorytmy uczenia maszynowego są opisywane w książkach, artykułach i na stronach internetowych przy użyciu notacji wektorowej i macierzowej. Algebra liniowa jest matematyką danych, a jej notacja pozwala precyzyjnie opisywać operacje na danych za pomocą określonych operatorów. 2 najważniejsze pojęcia w algebrze liniowej, które powinieneś znać to wektory i macierze.

1 – Wektory

Wektor to tuple jednej lub więcej wartości znanych jako skalary. Powszechne jest wprowadzanie wektorów za pomocą definicji geometrycznej, w której wektor reprezentuje punkt lub współrzędną w przestrzeni wielowymiarowej. Główne operacje arytmetyczne na wektorach to dodawanie, odejmowanie, mnożenie, dzielenie, iloczyn kropkowy i mnożenie skalarne.

  • Dwa wektory o równej długości mogą być dodane razem, aby utworzyć nowy trzeci wektor.
  • Jeden wektor może być odjęty od innego wektora o równej długości, aby utworzyć nowy trzeci wektor.
  • Dwa wektory o równej długości można pomnożyć razem.
  • Dwa wektory o równej długości można podzielić.
  • Iloczyn kropkowy jest sumą pomnożonych elementów dwóch wektorów o tej samej długości, dającą skalar.
  • Wektor można pomnożyć przez skalar, aby przeskalować wielkość wektora.

Istnieje wiele zastosowań wektorów. Na przykład, wektory mogą reprezentować przesunięcie w przestrzeni 2D lub 3D. Punkty są po prostu wektorami od początku. Dane (piksele, gradienty w punkcie kluczowym obrazu, itp.) mogą być również traktowane jako wektor.

2 – Macierze

Macierz jest dwuwymiarową tablicą skalarów z jedną lub więcej kolumnami i jednym lub więcej wierszami. Jeśli macierz ma taką samą liczbę wierszy i kolumn, to jest to macierz kwadratowa. Macierz identyczności to macierz kwadratowa z 1 na przekątnej i 0 wszędzie indziej. Macierz diagonalna to macierz kwadratowa z liczbami na przekątnej i 0 w pozostałych miejscach. Wektor kolumnowy to po prostu macierz, w której jest jeden wiersz, a wektor rzędowy to po prostu macierz, w której jest jedna kolumna.

Podstawowe operacje na macierzach to dodawanie, skalowanie, iloczyn kropkowy, mnożenie wektorowe, mnożenie skalarne, transpozycja, odwrotność i wyznacznik / ślad.

  • Dwie macierze o tych samych wymiarach mogą być dodane razem, aby utworzyć nową trzecią macierz.
  • Podobnie, jedna macierz może być odjęta od innej macierzy o tych samych wymiarach.
  • Dwie macierze o tych samych wymiarach można ze sobą mnożyć, co często nazywane jest mnożeniem macierzy przez elementy.
  • Jedną macierz można podzielić przez inną macierz o tych samych wymiarach.
  • Iloczyn punktowy macierzy polega na pomnożeniu pozycji 2 wektorów razy siebie i zsumowaniu wyniku.
  • Macierz i wektor można mnożyć razem, o ile zachowana jest zasada mnożenia macierzy.
  • Macierz można mnożyć przez skalar. Wynikiem jest macierz o takim samym rozmiarze jak macierz macierzysta, w której każdy element macierzy jest mnożony przez wartość skalarną.
  • Transpozycja macierzy jest wtedy, gdy odwracamy kolumny i wiersze macierzy, więc wiersz 1 jest teraz kolumną 1, i tak dalej.
  • Dając macierz A, jej odwrotność A^(-1) jest macierzą taką, że A x A^(-1) = I. Jeśli A^(-1) istnieje, to A jest odwracalna lub niesingularna. W przeciwnym razie jest singular.

Uczenie maszynowe

1 – Główne podejścia

3 główne podejścia do uczenia maszynowego to:

  • Uczenie nienadzorowane, które jest używane dużo w wizji komputerowej. Przykładami są k-średnich, ICA, PCA, Gaussian Mixture Models i głębokie auto-enkodery.
  • Uczenie nienadzorowane, które jest również używane dużo w wizji komputerowej. Przykłady to głębokie nadzorowane sieci neuronowe.
  • Reinforcement Learning, który jest najczęściej używany do robotyki i problemów sterowania. Przykładami są głębokie metody Q-learning i policy gradient.

W Reinforcement Learning, zasady gry są nieznane. Nie ma nadzorcy, a jedynie sygnał nagrody z opóźnionym sprzężeniem zwrotnym. Działania agenta wpływają na kolejne dane, które otrzymuje.

W Unsupervised Learning chcemy znaleźć strukturę i znaczenie w danych bez żadnych etykiet. Jak wspomniano powyżej, przykładowe algorytmy to Principal Component Analysis, k-means, Non-Negative Matrix Factorization, Independent Component Analysis, Gaussian Mixture Models, Latent Dirichlet Allocation i Auto-Encoders.

W Supervised Learning, podstawowa terminologia jest taka, że mamy początkową przestrzeń wejściową x i początkową przestrzeń wyjściową y. Po obejrzeniu kilku przykładów (x, y), chcemy wybrać odwzorowanie F: x -> y, które dokładnie replikuje wzór wejścia-wyjścia z przykładów. Istnieje wiele algorytmów do znajdowania różnych modeli F na podstawie etykietowanych obserwacji (ground truth). Często uczenie jest kategoryzowane według ich przestrzeni wyjściowej, która może być dyskretna lub ciągła.

  • Ciągła przestrzeń wyjściowa jest używana w problemie regresji. Na przykład, biorąc pod uwagę dane wejściowe jako obraz talerza z jedzeniem, chcemy, aby wyjście było liczbą całkowitych kalorii. Lub biorąc pod uwagę dane wejściowe w postaci twarzy osoby, chcemy, aby dane wyjściowe stanowiły wiek tej osoby.
  • Z dyskretną przestrzenią wyjściową, zazwyczaj budujemy klasyfikatory. Na przykład, chcemy, aby wyjście było klasą 1, klasą 2, klasą 3…, gdzie liczby reprezentują jakąś znaczącą kategorię. Możemy również nazwać te etykiety lub kategorie.

2 – Dane szkoleniowe i dane testowe

Dane szkoleniowe są tym, co dajemy klasyfikatorowi podczas procesu szkolenia. Są to sparowane dane do nauki f(x) = y, gdzie x jest wejściem (wektor cech w R^d), a y jest wyjściem (etykieta z klasyfikacją). Podczas szkolenia staramy się znaleźć dobry model f(x), który odtwarza relację wejście-wyjście danych.

Dane testowe są używane z wyszkolonym klasyfikatorem, aby go ocenić. Mamy x, ale nie znamy y. Zwykle tylko udajemy, że nie mamy y w badaniach, ale w prawdziwym świecie naprawdę nie będziesz go miał. Wyszkolony system przewiduje y dla nas, a my oceniamy, jak dobrze działa system.

3 – Prawdopodobieństwa

Zamiast tylko kategoryzować dane wejściowe do jednej z K różnych klas, możemy chcieć poznać prawdopodobieństwo każdej z tych klas. Dla każdej możliwej kategorii, P(C = k | x) zwraca wartość pomiędzy 0 a 1, przy czym wartości bliższe 1 oznaczają, że klasyfikator „myśli”, że dana klasa jest prawdopodobną kategorią danych wejściowych. Aby sklasyfikować, chcemy wybrać największą wartość P(C = k | x).

4 – Modele parametryczne i nieparametryczne

Modele parametryczne wymagają dopasowania parametrów. Na przykład, chcemy znaleźć dobre wartości dla wektorów w dla naszego klasyfikatora liniowego. Modele parametryczne mają skończoną liczbę parametrów, w których liczba parametrów jest niezależna od zbioru treningowego.

Modele nieparametryczne polegają na przechowywaniu danych i używaniu ich w jakiś sposób. Tutaj liczba parametrów zależy od zbioru treningowego (jak dużo danych przechowujesz). Dokładniej, liczba parametrów rośnie wraz z rozmiarem zbioru treningowego.

Evaluating Machine Learning Classifiers

Po obejrzeniu zbioru przykładów (x, y), model wybiera odwzorowanie F: x -> y, które odtwarza schemat wejścia-wyjścia z przykładów. Pytanie brzmi, jak dobrze model F działa po treningu? Możemy ocenić F na danych treningowych, ale wydajność na danych treningowych nie mówi nam, jak dobrze model generalizuje na inne dane. Innymi słowy, F może po prostu zapamiętać dane treningowe. Tak więc, musimy ocenić na danych testowych, aby uzyskać lepsze wyobrażenie o tym, jak dobrze działa model.

Najprostszą miarą oceny klasyfikacji jest dokładność, która jest ułamkiem punktów poprawnie sklasyfikowanych. Dokładność może być obliczona jako suma prawdziwych pozytywów i prawdziwych negatywów, podzielona przez wszystkie punkty danych. Współczynnik błędu to po prostu 1 – Dokładność, lub suma fałszywych pozytywów i fałszywych negatywów, podzielona przez wszystkie punkty danych.

Aby wdrożyć dokładność, najlepszym sposobem jest przechowywanie przewidywań dla każdego wektora testowego x_t. Tak więc, jeśli masz w sumie T wektorów do przetestowania, kończysz z T-wymiarowym wektorem ze wszystkimi swoimi przewidywaniami, a następnie po prostu porównaj go z prawdą gruntową. Można również zapisać prawdopodobieństwa, aby obliczyć inne metryki, ale może to wymagać dużo pamięci, jeśli masz wiele klas.

1 – Macierz konfuzji

Macierz konfuzji jest specyficznym układem tabeli, który pozwala na wizualizację wydajności algorytmu, zazwyczaj uczenia nadzorowanego. Każdy wiersz macierzy reprezentuje instancje w przewidywanej klasie, podczas gdy każda kolumna reprezentuje instancje w rzeczywistej klasie. Pozwala to zobaczyć, które klasy są najbardziej mylone. Silna” przekątna wskazuje na dobrą wydajność. W znormalizowanej macierzy nieporozumień, wiersze są znormalizowane do sumy 1.

2 – Precyzja i Recall

Precyzja jest liczbą poprawnie sklasyfikowanych pozytywnych przykładów podzielonych przez całkowitą liczbę przykładów, które są klasyfikowane jako pozytywne. Recall to liczba poprawnie sklasyfikowanych pozytywnych przykładów podzielona przez całkowitą liczbę rzeczywistych pozytywnych przykładów w zestawie testowym. Precyzja-Recall jest dominującą metryką w detekcji obiektów i jest szczególnie przydatna, gdy kategorie są niezrównoważone. Wysoka precyzja oznacza, że algorytm zwrócił znacznie więcej istotnych wyników niż nieistotnych, podczas gdy wysoki przywołanie oznacza, że algorytm zwrócił większość istotnych wyników.

3 – Progi klasyfikatora

Często klasyfikator będzie miał pewną wartość zaufania w każdej kategorii. Są one najczęściej generowane przez klasyfikatory probabilistyczne. Czasami, progujemy wartości prawdopodobieństwa. W wizji komputerowej zdarza się to często w detekcji. Optymalny próg różni się w zależności od zadania. Niektóre metryki wydajności są wrażliwe na próg. Zmieniając wartość progu od min do max (od 0 do 1), możemy narysować krzywą (ROC i Precision-Recall Curves).

Model Power

1 – Overfitting & Underfitting

Mówi się, że nasz klasyfikator F jest nadmiernie dopasowany do danych, jeśli wydajność szkolenia jest znacznie większa niż wydajność testu. Z drugiej strony, F niedostosowuje dane, gdy nie jest wystarczająco silny, aby modelować relację wejście-wyjście.

2 – Pojemność modelu

Pojemność modelu odnosi się do liczby parametrów. Większa pojemność ogólnie oznacza, że potrzebujesz więcej danych szkoleniowych do trenowania modelu, w przeciwnym razie istnieje duże ryzyko przepasowania. Z drugiej strony, niska pojemność prawdopodobnie oznacza, że underfit danych szkoleniowych znacznie.

Specyficznie, z sieci neuronowych, więcej neuronów oznacza większą pojemność. Dobrą analogią jest to, że liniowy klasyfikator ma bardzo niską pojemność, a głęboka sieć neuronowa ma dużą pojemność. Przy większej ilości danych treningowych, bardziej złożony model wygrywa. Klasyfikatory z większym modelem mogą tworzyć złożone granice decyzyjne, ale zbyt złożone mogą być kiepskim modelem dla danych testowych, szczególnie jeśli dane są ograniczone.

3 – Złożoność próbki

Złożoność próbki to liczba próbek treningowych, które musimy dostarczyć do algorytmu uczącego, aby funkcja zwrócona przez algorytm mieściła się w arbitralnie małym błędzie najlepszej możliwej funkcji (trenuj i testuj). Algorytmy o większej pojemności modelu mają tendencję do gorszej złożoności próbkowej, ponieważ mają więcej parametrów do dopasowania i przy niewystarczającej ilości danych treningowych mogą być nadmiernie dopasowane. W tych przypadkach techniki regularyzacji mogą pomóc.

Jeśli zainteresował Cię ten materiał, śledź publikację Cracking Data Science Interview, aby otrzymać moje kolejne artykuły na temat tego, jak złamać proces wywiadu w nauce o danych.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *