Udostępnij za pośrednictwem


Two-Class Lokalnie głęboka maszyna wektorowa obsługi

Ważne

Obsługa programu Machine Learning Studio (wersja klasyczna) zakończy się 31 sierpnia 2024 r. Zalecamy przejście do usługi Azure Machine Learning przed tym terminem.

Od 1 grudnia 2021 r. nie będzie można tworzyć nowych zasobów programu Machine Learning Studio (wersja klasyczna). Do 31 sierpnia 2024 r. można będzie nadal korzystać z istniejących zasobów programu Machine Learning Studio (wersja klasyczna).

Dokumentacja programu ML Studio (wersja klasyczna) jest wycofywana i może nie być aktualizowana w przyszłości.

Tworzy model klasyfikacji binarnej przy użyciu lokalnego algorytmu maszyny wektorowej obsługi

Kategoria: Machine Learning / Inicjowanie modelu / Klasyfikacja

Uwaga

Dotyczy: tylko Machine Learning Studio (wersja klasyczna)

Podobne moduły przeciągania i upuszczania są dostępne w projektancie Azure Machine Learning.

Omówienie modułu

W tym artykule opisano sposób użycia modułu Dwuklasowa maszyna wektorowa obsługa lokalnie głęboka w programie Machine Learning Studio (wersja klasyczna), aby utworzyć dwuklasowy klasyfikator wektorów nośnych (SVM), który jest zoptymalizowany pod kątem wydajnego przewidywania.

Maszyny wektorów nośnych (SVM) to niezwykle popularna i dobrze zbadana klasa nadzorowanych modeli uczenia, które mogą być używane w zadaniach klasyfikacji liniowej i nieliniowej. Ostatnie badania koncentrowały się na sposobach optymalizacji tych modeli w celu wydajnego skalowania do większych zestawów treningowych. W tej implementacji firmy Microsoft Research funkcja jądra używana do mapowania punktów danych na przestrzeń funkcji została specjalnie zaprojektowana w celu skrócenia czasu potrzebnego do trenowania przy zachowaniu większości dokładności klasyfikacji.

Ten model jest metodą uczenia nadzorowanego i dlatego wymaga oznakowanego zestawu danych, który zawiera kolumnę etykiety.

Po zdefiniowaniu parametrów modelu wytrenuj go, podając model i otagowany zestaw danych jako dane wejściowe do funkcji Train Model lub Tune Model Hiperparameters. Wytrenowany model może następnie służyć do przewidywania wartości nowych danych wejściowych.

Jak skonfigurować maszynę wektorów nośnych Two-Class lokalnie

  1. Dodaj moduł Two-Class Locally-Deep Support Vector Machine (Dwuklasowa maszyna wektorowa) do eksperymentu w programie Studio (wersja klasyczna).

  2. Określ sposób trenowania modelu, ustawiając opcję Utwórz tryb trenera .

    • Pojedynczy parametr: jeśli wiesz, jak skonfigurować model, podaj określony zestaw wartości jako argumenty.

    • Zakres parametrów: jeśli nie masz pewności co do najlepszych parametrów, możesz znaleźć optymalne parametry, określając wiele wartości i używając modułu Tune Model Hyperparameters w celu znalezienia optymalnej konfiguracji. Trener iteruje wiele kombinacji podanych ustawień i określa kombinację wartości, które generują najlepszy model.

  3. W obszarze Głębokość drzewa określ maksymalną głębokość drzewa, którą można utworzyć za pomocą lokalnego modelu SVM uczenia jądra głębokiego (LD-SVM).

    Koszt trenowania zwiększa się liniowo z głębokością drzewa; w związku z tym wybierz odpowiednią głębokość, w zależności od tego, ile czasu można sobie pozwolić na spędzenie czasu podczas tworzenia modelu.

    Czas trenowania powinien być mniej więcej dwukrotny, ponieważ głębokość jest zwiększana o jedną.

    Dokładność przewidywania powinna wzrosnąć, osiągnąć szczyt, a następnie zmniejszyć się o rosnącą głębokość.

  4. W polu Lambda W określ wagę, która ma zostać podana do terminu regularyzacji.

    Regularyzacja ogranicza duże składniki wartości w wytrenowanym klasyfikatorze. Jeśli liczba próbek jest niewystarczająca, biorąc pod uwagę liczbę funkcji, można użyć regularyzacji L2, aby uniknąć nadmiernego dopasowania. Większe wartości lambda W oznaczają, że większy nacisk jest na regularne ustalanie wag klasyfikatora i mniej na błąd klasyfikacji zestawu treningowego.

    Jeśli wartość domyślna (0.1) nie działa prawidłowo, spróbuj również spróbować {0,0001, 0,001 i 0,01}.

  5. W polu Lambda Theta określ, ile miejsca należy pozostawić między granicą regionu a najbliższym punktem danych.

    Ten model działa przez partycjonowanie przestrzeni danych i przestrzeni funkcji w regionach. Gdy lambda Theta jest zminimalizowana w taki sposób, że granice regionów w wytrenowanym modelu są zbyt blisko punktów danych trenowania, model może spowodować niski błąd trenowania, ale wysoki błąd testu z powodu nadmiernego dopasowania.

    Aby zmniejszyć liczbę parametrów, które należy zweryfikować, dobrą regułą jest ustawienie lambda Theta na jedną dziesiątą wartości używanej dla lambda W. Większe wartości oznaczają, że większy nacisk kładzie się na zapobieganie nadmiernemu dopasowaniu niż minimalizowanie błędów klasyfikacji w zestawie treningowym.

    Jeśli wartość domyślna (0.01) nie działa prawidłowo, spróbuj również spróbować {0,0001, 0,001 i 0,1}.

  6. W polu Lambda Theta Prime wpisz wartość, aby kontrolować ilość krzywizny dozwolonej w granicach decyzyjnych w modelu.

    Większe wartości zapewniają modelowi elastyczność uczenia się zakrzywionych granic decyzyjnych, a mniejsze wartości mogą ograniczyć granice decyzyjne do większego wzorca liniowego krokowego.

    Ten parametr działa w połączeniu z parametrem Sigma . Aby zmniejszyć liczbę parametrów, które należy zweryfikować, dobrą regułą jest ustawienie lambda Theta Prime na jedną dziesiątą wartość lambda W.

    Jeśli wartość domyślna (0.01) nie działa prawidłowo, spróbuj również spróbować {0,0001, 0,001 i 0,1,}.

  7. W polu Ostrość Sigmoid wpisz wartość, która ma być używana dla parametru skalowania σ.

    Większe wartości oznaczają, że tanh w lokalnym jądrze Θ (theta) jest nasycony, podczas gdy mniejsza wartość oznacza bardziej liniowy zakres operacyjny dla tety. Pełną formułę optymalizacji można znaleźć w sekcji Uwagi techniczne .

    Jeśli wartość domyślna (1) nie działa prawidłowo, możesz również spróbować {0.1, 0.01, 0.001}.

  8. W obszarze Liczba iteracji wskaż, ile razy algorytm powinien zaktualizować parametry klasyfikatora z losowym podzbiorem przykładów.

  9. W obszarze Normalizacja funkcji wybierz metodę, która ma być używana w normalizacji wartości funkcji. Obsługiwane są następujące metody:

    • Normalizacja kwantowania: normalizator kwantowania tworzy pojemniki o równym rozmiarze, a następnie normalizuje każdą wartość w każdym pojemniku, która ma zostać podzielona przez całkowitą liczbę pojemników.

    • Gaussian normalizer: Gaussian normalizer ponownie skaluje wartości każdej funkcji, aby mieć średnią 0 i wariancję 1. Odbywa się to przez obliczenie średniej i wariancji każdej funkcji. Następnie dla każdego wystąpienia średnia wartość jest odejmowana, a wynik podzielony przez pierwiastek kwadratowy wariancji (odchylenie standardowe).

    • Normalizator min-max: normalizator min-max zmienia liniowo każdą funkcję do interwału [0,1].

      Przeskalowanie do interwału [0,1] odbywa się przez przesunięcie wartości każdej funkcji tak, aby minimalna wartość wynosi 0, a następnie dzieląc przez nową maksymalną wartość (co jest różnicą między oryginalnymi maksymalnymi i minimalnymi wartościami).

    • Nie normalizuj: nie jest wykonywana normalizacja.

  10. W polu Losowe rozstawienie liczb wpisz wartość, która ma być używana jako nasion, jeśli chcesz zapewnić powtarzalność między przebiegami.

  11. Wybierz opcję Zezwalaj na nieznane poziomy kategorii , aby utworzyć grupę dla nieznanych wartości w zestawach testowania lub walidacji.

    Jeśli usuniesz jego zaznaczenie, model może akceptować tylko wartości zawarte w danych treningowych. W poprzednim przypadku model może być mniej precyzyjny dla znanych wartości, ale może zapewnić lepsze przewidywania dla nowych (nieznanych) wartości.

  12. Połączenie otagowany zestaw danych i jeden z modułów szkoleniowych:

    Uwaga

    Jeśli przekazujesz zakres parametrów do trenowania modelu, używa ona tylko pierwszej wartości na liście zakresów parametrów.

    W przypadku przekazania pojedynczego zestawu wartości parametrów do modułu Tune Model Hyperparameters , gdy oczekuje on zakresu ustawień dla każdego parametru, ignoruje wartości i używa wartości domyślnych dla ucznia.

    Jeśli wybierzesz opcję Zakres parametrów i wprowadzisz pojedynczą wartość dla dowolnego parametru, ta określona wartość jest używana w całym zamiataniu, nawet jeśli inne parametry zmieniają się w zakresie wartości.

  13. Uruchom eksperyment.

Wyniki

Po zakończeniu trenowania:

  • Aby wyświetlić podsumowanie parametrów modelu, kliknij prawym przyciskiem myszy dane wyjściowe modułu Train Model (Trenowanie modelu) lub Tune Model Hyperparameters (Dostrajanie hiperparametrów modelu) i wybierz pozycję Visualize (Wizualizacja).

  • Aby zapisać przystawkę wytrenowanego modelu, kliknij prawym przyciskiem myszy dane wyjściowe wytrenowanego modelu i wybierz polecenie Zapisz jako wytrenowany model. Ten model nie jest aktualizowany w kolejnych przebiegach tego samego eksperymentu.

  • Aby przeprowadzić krzyżową walidację względem oznaczonego zestawu danych, połącz nietrenowany model z modelem Cross-Validate.

Uwagi techniczne

Ta sekcja zawiera szczegóły implementacji, porady i odpowiedzi na często zadawane pytania.

Porady dotyczące użycia

Ten klasyfikator LD-SVM jest najbardziej przydatny w następujących warunkach:

  • Masz problem z klasyfikacją binarną lub możesz zmniejszyć problem do zadania klasyfikacji binarnej.

  • Próbowano klasyfikator liniowy, ale nie działał dobrze.

  • Próbowano uruchomić nieliniowy svM lub inny klasyfikator i uzyskać dobrą dokładność klasyfikacji, ale trenowanie modelu trwało zbyt długo.

  • Możesz sobie pozwolić na poświęcenie dokładności przewidywania, aby skrócić czas trenowania.

Modele LD-SVM są dobrym wyborem, gdy dane są wystarczająco skomplikowane, aby modele liniowe (takie jak regresja logistyczna) działały słabo. Modele LD-SVM są również wystarczająco małe, aby były używane na urządzeniach przenośnych lub w innych scenariuszach, w których złożone modele (takie jak sieci neuronowe) są zbyt duże, aby efektywnie korzystać.

Z drugiej strony ten model nie powinien być używany, jeśli nie dbasz o rozmiar modelu lub jeśli model liniowy jest wymagany dla uproszczenia lub szybkości przewidywania. Nie ma również sensu zmieniać się na LD-SVM, jeśli klasyfikatory liniowe już dają dobre wyniki, lub jeśli można uzyskać wysoką dokładność klasyfikacji, dodając niewielkie ilości nieliniowości.

Szczegóły implementacji

Model LD-SVM został opracowany przez firmę Microsoft Research w ramach ciągłych wysiłków na rzecz przyspieszenia nieliniowego przewidywania SVM. Praca Gonen i Alpaydin (2008) na zlokalizowanej metodzie uczenia jądra była szczególnie cenna. Użycie lokalnej funkcji jądra umożliwia modelowi uczenie się dowolnych lokalnych funkcji osadzania, w tym funkcji o wysokim wymiarach, rozrzedzonych i obliczeniowo głębokich funkcjach, które wprowadzają nieliniowość do modelu.

LD-SVM jest szybszy niż większość innych klasyfikatorów z kilku powodów:

  • Model uczy się granic decyzji, które są lokalnie liniowe. W związku z tym punkt testowy może być skutecznie sklasyfikowany przez przetestowanie go względem lokalnej granicy decyzyjnej, zamiast testowania całego zestawu granic decyzyjnych na całym obszarze funkcji.

  • Model korzysta z wydajnych procedur opartych na pierwotnych, aby zoptymalizować przestrzeń osadzonych funkcji lokalnych ze strukturą drzewa, które są skalowane do dużych zestawów treningowych z ponad pół miliona punktów treningowych.

  • Koszt testowania punktu na granicy lokalnej decyzji jest logarytmiczne w liczbie punktów treningowych.

W wyniku tych optymalizacji trenowanie modelu LD-SVM jest wykładniczo szybsze niż trenowanie tradycyjnych modeli SVM.

Formuła optymalizacji

optimization formula

Badania

Aby uzyskać więcej informacji na temat algorytmu i podstawowych badań, zobacz Local Deep Kernel Edukacja for Efficient Non-linear SVM Prediction (Lokalne głębokie jądro Edukacja na potrzeby wydajnego nieliniowego przewidywania svm).

Parametry modułu

Nazwa Zakres Typ Domyślny Opis
Tworzenie trybu trenera Lista Opcja parametru ucznia Pojedynczy parametr Zaawansowane opcje ucznia:

1. Tworzenie ucznia przy użyciu jednego parametru
2. Tworzenie ucznia przy użyciu zakresu parametrów
Głębokość drzewa >=1 Liczba całkowita 3 Głębokość lokalnego głębokiego drzewa SVM.
Lambda W >=1.401298E-45 Float 0.1 Waga regularyzacji parametru lambda W klasyfikatora.
Lambda Theta >=1.401298E-45 Float 0,01 Waga regularyzacji parametru klasyfikatora Lambda Theta.
Lambda Theta Prime >=1.401298E-45 Float 0,01 Waga regularyzacji parametru klasyfikatora Lambda Theta prime.
Ostrość sigmoidowa >=1.401298E-45 Float 1.0 Sigmoid ostrość.
Głębokość drzewa [1;int. MaxValue] ParametrRangeSettings 1; 3; 5; 7 Zakres głębokości lokalnego głębokiego drzewa SVM.
Lambda W [1.401298E-45;3.40282347E+38] ParametrRangeSettings 0.1; 0.01; 0.001 Zakres wagi regularyzacji dla parametru klasyfikatora Lambda W.
Lambda Theta [1.401298E-45;3.40282347E+38] ParametrRangeSettings 0.1; 0.01; 0.001 Zakres wagi regularyzacji dla parametru klasyfikatora Lambda Theta.
Lambda Theta Prime [1.401298E-45;3.40282347E+38] ParametrRangeSettings 0.1; 0.01; 0.001 Zakres wagi regularyzacji dla parametru klasyfikatora Lambda Theta prime".
Ostrość sigmoidowa [1.401298E-45;3.40282347E+38] ParametrRangeSettings 1.0; 0.1; 0.01 Zakres ostrości sigmoidu.
Normalizator funkcji Lista Typ normalizatora normalizacja Min-Max Typ normalizacji stosowanej do przykładów szkoleniowych.
Liczba iteracji >=1 Liczba całkowita 15000 Liczba iteracji szkoleniowych.
Liczba iteracji [1;int. MaxValue] ParametrRangeSettings 10000; 15000; 20000 Zakres liczby iteracji uczenia się.
Losowe rozmieszczanie liczb Dowolne Liczba całkowita Nasion dla generatora liczb losowych, który jest używany przez model. Pozostaw wartość pustą dla wartości domyślnej.
Zezwalaj na nieznane poziomy kategorii Dowolne Boolean Prawda Jeśli wartość True, tworzy dodatkowy poziom dla każdej kolumny kategorii. Wszystkie poziomy w zestawie danych testowych, które nie są dostępne w zestawie danych trenowania, są mapowane na ten dodatkowy poziom.

Dane wyjściowe

Nazwa Typ Opis
Nietrenowany model ILearner, interfejs Nietrenowany model klasyfikacji binarnej.

Zobacz też

Klasyfikacja
Lista modułów A-Z