Koncepcja regresji logistycznej
Regresja logistyczna jest algorytmem klasyfikacji binarnej. Jest to algorytm decyzyjny, co oznacza, że tworzy granice między dwiema klasami. Rozszerza problem regresji liniowej, który wykorzystuje funkcja aktywacji na swoich wyjściach, aby ograniczyć go między 1 a 0. W rezultacie jest to używane do problemów z klasyfikacją binarną. Wykres regresji logistycznej wygląda jak poniższy rysunek:
Widzimy, że wykres jest ograniczony między 0 a 1. Normalna regresja liniowa może dać wartość docelową jako dowolną liczbę rzeczywistych, ale nie jest tak w przypadku regresji logistycznej z powodu funkcji sigmoidalnej. Regresja logistyczna opiera się na koncepcji oceny maksymalnego prawdopodobieństwa (MLE). Maksymalne prawdopodobieństwo po prostu przyjmuje rozkład prawdopodobieństwa z danym zestawem parametrów i pyta: „Jak prawdopodobne jest, że zobaczyłbym te dane, gdyby moje dane zostały wygenerowane z tego rozkładu prawdopodobieństwa?„Działa to poprzez obliczenie prawdopodobieństwa dla każdego indywidualnego punktu danych, a następnie mnożąc wszystkie te prawdopodobieństwa razem. W praktyce dodajemy logarytmy prawdopodobieństwa.
Jeśli potrzebujemy zbudować model uczenia maszynowego, każdy niezależny punkt danych zmiennych będzie x1 * w1 + x2 * w2… i tak dalej, dając wartość od 0 do 1, po przekazaniu funkcji aktywacji. Jeśli weźmiemy 0.50 jako czynnik decydujący lub próg. Następnie dowolny wynik większy niż 0.5 jest uważane za 1, podczas gdy każdy wynik mniejszy niż jest uważany za 0.
W przypadku więcej niż 2 klas używamy podejścia One-VS-All. One-VS-All, znany również jako jeden VS-REST, jest procesem klasyfikacji Multilabel i Multiclass ML. Działa poprzez najpierw szkolenie klasyfikatora binarnego dla każdej kategorii, a następnie dopasowanie każdego klasyfikatora do każdego wejścia, aby określić, do której klasy należy wejście. Jeśli twój problem ma n klas, jeden VS-all przekonwertuje Twój zestaw danych szkoleniowych na N Problemy z klasyfikacją binarną.
Funkcja utraty związana z regresją logistyczną jest Binary Cross Entropia co jest odwrotnością wzrostu informacji. Jest to również znane jako nazwa utrata dziennika. Funkcja utraty jest podana przez równanie:
Co to jest funkcja straty?
Funkcja utraty to metryka matematyczna, którą chcemy zmniejszyć. Chcemy zbudować model, który może dokładnie przewidzieć, czego chcemy, a jednym ze sposobów pomiaru wydajności modelu jest spojrzenie na stratę, ponieważ wiemy, co modelu wyprowadza i co powinniśmy uzyskać. Możemy trenować i ulepszyć nasz model, używając tej straty i odpowiednio dostosowując parametry modelu. Funkcje strat różnią się w zależności od rodzaju algorytmu. W przypadku regresji liniowej średnie błąd kwadratowy i średni błąd bezwzględny są popularnymi funkcjami strat, podczas gdy entropia krzyżowa jest odpowiednia do problemów z klasyfikacją.
Jaka jest funkcja aktywacji?
Funkcje aktywacji to po prostu funkcje matematyczne, które modyfikują zmienną wejściową, aby podać nowe wyjście. Zwykle odbywa się to w uczeniu maszynowym, aby standaryzować dane lub ograniczyć dane wejściowe do określonego limitu. Popularne funkcje działania są sigmoidalne, proste liniowe (RELU), TAN (H) itp.
Co to jest Pytorch?
Pytorch to popularna alternatywa głębokiego uczenia się, która działa z pochodnią. Został stworzony przez dział AI Facebooka, ale można go używać podobnie do innych opcji. Służy do opracowywania różnych modeli, ale jest najczęściej stosowany w przypadkach użycia języka naturalnego (NLP). Pytorch jest zawsze świetną opcją, jeśli chcesz budować modele o bardzo niewielu zasobach i chcesz przyjazny dla użytkownika, łatwa w użyciu i biblioteka światła dla twoich modeli. Wydaje się również naturalne, które pomaga w zakończeniu procesu. Będziemy używać Pytorcha do wdrożenia naszych modeli z powodu wymienionych powodów. Jednak algorytm pozostaje taki sam z innymi alternatywami, takimi jak tensorflow.
Wdrożenie regresji logistycznej w Pytorch
Wykorzystamy poniższe kroki do wdrożenia naszego modelu:
Będziemy klasyfikować Zestaw danych mnist cyfry. To popularny problem z głębokim uczeniem się nauczycielami dla początkujących.
Najpierw zaimportujmy wymagane biblioteki i moduły.
Importuj pochodnięNastępnym krokiem jest zaimportowanie zestawu danych.
pociąg = dsets.Mnist (root = './data ', pociąg = true, transform = transformuje.Totensor (), pobierz = false)Użyj ładowacza danych, aby Twoje dane były dożywotnie
Train_Loader = pochodnia.Utils.dane.DataLoader (DataSet = Train, Batch_Size = Batch_Size, Shuffle = True)Zdefiniuj model.
model klasy (pochodnia.nn.Moduł):Określ hiperparametry, optymalizator i stratę.
partia = 50Wreszcie trenuj model.
ITR = 0Wniosek
Przeszliśmy wyjaśnienie regresji logistycznej i jej implementacji za pomocą Pytorch, która jest popularną biblioteką do opracowywania modeli głębokiego uczenia się. Wdrożyliśmy problem klasyfikacji zestawu danych MNIST, w którym rozpoznaliśmy cyfry na podstawie parametrów obrazów.