Dwuklasowa sieć neuronowa

Tworzy klasyfikator binarny przy użyciu algorytmu sieci neuronowej

Kategoria: Machine Learning / Inicjowanie modelu / klasyfikacji

Uwaga

Dotyczy: Machine Learning Studio (wersja klasyczna)

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

Omówienie modułu

W tym artykule opisano sposób użycia modułu Two-Class Neural Network (Dwuklasowa sieć neuronowa) w programie Machine Learning Studio (model klasyczny) w celu utworzenia modelu sieci neuronowej, który może służyć do przewidywania celu, który ma tylko dwie wartości.

Klasyfikacja przy użyciu sieci neuronowych jest metodą uczenia nadzorowanego i dlatego wymaga otagowanego zestawu danych, który zawiera kolumnę etykiety. Tego modelu sieci neuronowej można na przykład użyć do przewidywania wyników binarnych, takich jak to, czy pacjent jest chory na określoną chorobę lub czy maszyna prawdopodobnie nie powiedzie się w określonym przedziale czasu.

Po zdefiniowaniu modelu należy go wytperować, podając oznaczony tagami zestaw danych i model jako dane wejściowe funkcji Train Model (Trenowanie modelu) lub Tune Model Hyperparameters (Dostrajanie hiperparametrów modelu). Wytrenowany model może następnie służyć do przewidywania wartości dla nowych danych wejściowych.

Więcej informacji na temat sieci neuronowych

Sieć neuronowa to zestaw wzajemnie połączonych warstw. Dane wejściowe są pierwszą warstwą i są połączone z warstwą wyjściową za pomocą grafu acyklicznego złożonego z ważonych krawędzi i węzłów.

Między warstwami wejściowymi i wyjściowych można wstawić wiele ukrytych warstw. Większość zadań predykcyjnych można łatwo wykonać przy użyciu tylko jednej lub kilku ukrytych warstw. Jednak ostatnie badania wykazały, że głębokie sieci neuronowe (DNN) z wieloma warstwami mogą być bardzo skuteczne w złożonych zadaniach, takich jak rozpoznawanie obrazów lub mowy. Kolejne warstwy są używane do modelowania rosnących poziomów głębokości semantycznych.

Relacja między danymi wejściowymi i wyjściowych jest dzielna na podstawie trenowania sieci neuronowej na podstawie danych wejściowych. Kierunek grafu jest kontynuowany od danych wejściowych przez warstwę ukrytą i do warstwy wyjściowej. Wszystkie węzły w warstwie są połączone ważonymi krawędziami z węzłami w następnej warstwie.

Aby obliczyć dane wyjściowe sieci dla określonych danych wejściowych, wartość jest obliczana w każdym węźle w warstwach ukrytych i w warstwie wyjściowej. Wartość jest ustawiana przez obliczenie ważonej sumy wartości węzłów z poprzedniej warstwy. Następnie do tej sumy ważonej jest stosowana funkcja aktywacji.

Jak skonfigurować sieć Two-Class neuronowych

  1. Dodaj moduł Two-Class Neural Network ( Dwuklasowa sieć neuronowa) do eksperymentu w programie Studio (wersja klasyczna). Ten moduł można znaleźć w Machine Learning, Initialize, w kategorii Klasyfikacja.

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

    • Pojedynczy parametr: wybierz tę opcję, jeśli wiesz już, jak chcesz skonfigurować model.

    • Zakres parametrów: wybierz tę opcję, jeśli nie masz pewności co do najlepszych parametrów. Następnie określ zakres wartości i użyj modułu Hiperparametry modelu strojenia, aby iterować po kombinacjach i znaleźć optymalną konfigurację.

  3. W przypadku specyfikacji warstwy ukrytej wybierz typ architektury sieci do utworzenia.

    • Przypadek w pełni połączony: używa domyślnej architektury sieci neuronowej zdefiniowanej dla dwuklasowych sieci neuronowych w następujący sposób:

      • Ma jedną ukrytą warstwę.

      • Warstwa danych wyjściowych jest w pełni połączona z warstwą ukrytą, a warstwa ukryta jest w pełni połączona z warstwą danych wejściowych.

      • Liczba węzłów w warstwie wejściowej jest równa liczbie funkcji w danych szkoleniowych.

      • Liczba węzłów w warstwie ukrytej jest ustawiana przez użytkownika. Wartość domyślna to 100.

      • Liczba węzłów jest równa liczbie klas. W przypadku dwuklasowej sieci neuronowej oznacza to, że wszystkie dane wejściowe muszą być mapowe na jeden z dwóch węzłów w warstwie wyjściowej.

    • Skrypt definicji niestandardowej: wybierz tę opcję, aby utworzyć niestandardową architekturę sieci neuronowej przy użyciu języka Net #. Za pomocą tej opcji można zdefiniować liczbę ukrytych warstw, ich połączenia i mapowania między warstwami.

    Po wybraniu opcji skryptu niestandardowego w polu tekstowym Definicja sieci neuronowej wpisz lub wklej instrukcje net# definiujące sieć. Przykłady można znaleźć w przewodniku po języku specyfikacji sieci neuronowych Net#.

  4. Jeśli nie używasz opcji skryptu, użyj opcji Liczba ukrytych węzłów i wpisz liczbę ukrytych węzłów. Wartość domyślna to jedna ukryta warstwa ze 100 węzłami.

  5. Aby Edukacja, zdefiniuj rozmiar kroku w każdej iteracji, przed poprawką. Większa wartość dla szybkości uczenia się może spowodować, że model będzie zbieżny szybciej, ale może powodować przekroczenie lokalnych wartości minimów.

  6. W przypadku ustawienia Liczba iteracji uczenia określ maksymalną liczbę przypadków trenowania, przez które algorytm ma przetwarzać przypadki trenowania.

  7. W przypadku początkowej wagi uczenia określ wagi węzłów na początku procesu uczenia.

  8. W przypadku momentum określ wagę do zastosowania podczas uczenia się do węzłów z poprzednich iteracji

  9. W typie normalizacji wybierz metodę, która ma być stosowana do normalizacji cech. Obsługiwane są następujące metody normalizacji:

    • Normalizacja dzielenia: normalizacja dzielenia tworzy pojemniki o równym rozmiarze, a następnie normalizuje każdą wartość w każdym pojemniku, dzieląc przez łączną liczbę pojemników.

    • Normalizuje Gaussona: normalizuje ponownie wartości każdej funkcji, aby mieć średnią 0 i wariancji 1. Jest to wykonywane przez obliczanie średniej i wariancji poszczególnych cech. Dla każdego wystąpienia wartość średnia jest odejmowana, a wynik jest dzielony przez kwadrat główny wariancji (odchylenie standardowe).

    • Normaliator minimalnej i maksymalnej: normalizuje liniowo min-maksimum ponownie skaluje każdą cechę do interwału [0,1].

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

    • Nie normalizuj: normalizacja nie jest wykonywana.

  10. Wybierz opcję Przykłady mieszania, aby mieszać przypadki między iteracjami. W przypadku zaznaczenia tej opcji przypadki są przetwarzane w dokładnie tej samej kolejności przy każdym uruchomieniu eksperymentu.

  11. W przypadku wartości Iniekt liczb losowych wpisz wartość, która ma być wartością iniekcją.

    Określanie wartości iniekcyjności jest przydatne, gdy chcesz zapewnić powtarzalność między przebiegami tego samego eksperymentu. W przeciwnym razie wartość zegara systemowego jest używana jako iniekcjator, co może spowodować nieco inne wyniki przy każdym uruchomieniu eksperymentu.

  12. Wybierz opcję Zezwalaj na nieznane poziomy kategorii, aby utworzyć grupowanie dla nieznanych wartości w zestawach trenowania i walidacji. Model może być mniej precyzyjny w znanych wartościach, ale zapewniać lepsze przewidywania dla nowych (nieznanych) wartości.

    W przypadku zaznaczenia tej opcji model może akceptować tylko wartości zawarte w danych szkoleniowych.

  13. Dodaj otagowany zestaw danych do eksperymentu i połącz jeden z modułów szkoleniowych.

    • Jeśli ustawisz dla ustawienia Utwórz tryb szkoleniowy wartość Pojedynczy parametr, użyj modułu Train Model (Trenowanie modelu).

    • Jeśli ustawisz dla ustawienia Utwórz tryb szkoleniowy wartość Zakres parametrów, użyj modułu Hiperparametry modelu dostrajania.

    Uwaga

    W przypadku przekazania zakresu parametrów do funkcji Train Model jest używana tylko pierwsza wartość z listy zakresów parametrów.

    Jeśli przekażemy pojedynczy zestaw wartości parametrów do modułu Dostrajanie hiperparametrów modelu, jeśli oczekuje on zakresu ustawień dla każdego parametru, zignoruje wartości i użyje wartości domyślnych dla uczących się.

    Jeśli wybierzesz opcję Zakres parametrów i wpiszesz pojedynczą wartość dowolnego parametru, ta pojedyncza wartość będzie używana podczas całego czyszczenie, nawet jeśli inne parametry zmienią się w zakresie wartości.

  14. Uruchom eksperyment.

Wyniki

Po zakończeniu trenowania:

  • Aby wyświetlić podsumowanie parametrów modelu, wagi cech uczonych na trenowanie i inne parametry sieci neuronowej, kliknij prawym przyciskiem myszy dane wyjściowe hiperparametrów trenowania modelu lub dostrajania modelu, a następnie wybierz pozycję Visualize (Wizualizacja).

  • Aby zapisać migawkę wytrenowany model, kliknij prawym przyciskiem myszy dane wyjściowe Trained model (Wytrenowany model) i wybierz pozycję Save As Trained Model (Zapisz jako wytrenowany model). Ten model nie jest aktualizowany w kolejnych przebiegach tego samego eksperymentu.

  • Aby przeprowadzić krzyżowe sprawdzanie poprawności zestawu danych z etykietami, połącz nieprzetrenowany model z modelem krzyżowej weryfikacji.

Przykłady

Aby uzyskać przykłady dotyczące sposobu, w jaki ten algorytm uczenia jest używany, zobacz Azure AI Gallery. Te eksperymenty są powiązane i opisane w jednym dokumencie, który postępuje od konfiguracji podstawowej do zaawansowanej:

Uwagi techniczne

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

Więcej informacji na temat sieci #

W Machine Learning Studio (klasycznej) można dostosować architekturę modelu sieci neuronowej przy użyciu języka Net#. Dostosowania obsługiwane przez język Net# obejmują:

  • Określanie liczby ukrytych warstw i liczby węzłów w każdej warstwie
  • Określanie mapowań między warstwami
  • Definiowanie konwolucji i pakietów z udostępnianiem wag
  • Wybieranie funkcji aktywacji

Model sieci neuronowej jest definiowany przez strukturę wykresu, która zawiera następujące atrybuty:

  • Liczba ukrytych warstw
  • Liczba węzłów w każdej warstwie ukrytej
  • Jak warstwy są połączone
  • Która funkcja aktywacji jest używana
  • Wagi krawędzi grafu

Ważne

Użytkownik może określić ogólną strukturę wykresu oraz funkcję aktywacji. Nie można jednak określić wag krawędzi i należy je nauczyć podczas trenowania sieci neuronowej na danych wejściowych.

Ogólnie rzecz biorąc, sieć ma następujące wartości domyślne:

  • Pierwsza warstwa to zawsze warstwa danych wejściowych.
  • Ostatnia warstwa to zawsze warstwa danych wyjściowych.
  • Liczba węzłów w warstwie wyjściowej powinna być równa liczbie klas.

Można zdefiniować dowolną liczbę warstw pośrednich (czasami nazywanych warstwami ukrytymi, ponieważ są one zawarte w modelu i nie są bezpośrednio widoczne jako punkty końcowe).

W przewodniku informacyjnym net# wyjaśniono składnię i przedstawiono przykładowe definicje sieci. Wyjaśniono w nim, jak używać języka Net# do dodawania ukrytych warstw i definiowania sposobu, w jaki różne warstwy współdziałają ze sobą.

Na przykład poniższy skrypt auto używa słowa kluczowego , które automatycznie ustawia liczbę cech dla warstw wejściowych i wyjściowych oraz używa wartości domyślnych dla warstwy ukrytej.

input Data auto;  
hidden Hidden auto from Data all;  
output Result auto from Hidden all;   

Aby uzyskać dodatkowe przykłady skryptów, zobacz Przewodnik po języku specyfikacji sieci neuronowych Net#.

Porada

Sieci neuronowe mogą być kosztowne obliczeniowo ze względu na wiele hiperparametrów i wprowadzenie niestandardowych topologii sieci. Mimo że w wielu przypadkach sieci neuronowe dają lepsze wyniki niż inne algorytmy, uzyskanie takich wyników może wymagać sprawiedliwego przemycania (iteracji) hiperparametrów.

Parametry modułu

Nazwa Zakres Typ Domyślny Opis
Specyfikacja warstwy ukrytej Lista Topologia sieci neuronowych W pełni połączona sprawa Określanie architektury warstwy ukrytej
Początkowa waga uczenia >= double. Epsilon Float 0.1 Określanie wag węzłów na początku procesu uczenia
Tempo nauki [double. Epsilon;1.0] Float 0.1 Określanie rozmiaru każdego kroku w procesie uczenia
Tempo [0.0;1.0] Float 0,0 Określanie wagi do zastosowania podczas uczenia się do węzłów z poprzednich iteracji
Definicja sieci neuronowej Dowolne Streamreader Po wybraniu opcji Skrypt definicji niestandardowej wpisz prawidłowe wyrażenie skryptu w każdym wierszu, aby zdefiniować warstwy, węzły i zachowanie niestandardowej sieci neuronowej
Typ normalizacji Lista Metoda normalizacji Min-Max normalizatora Wybieranie typu normalizacji do zastosowania w przypadku przykładów uczenia
Liczba iteracji uczenia >= 1 Liczba całkowita 100 Określanie liczby iteracji wykonywanych podczas uczenia
Przykłady mieszania Dowolne Wartość logiczna true Wybierz tę opcję, aby zmienić kolejność wystąpień między iteracjami uczenia
Iniekt liczb losowych Dowolne Liczba całkowita Określ liczbowy iniekt do użycia podczas generowania liczb losowych. Pozostaw to pole puste, aby użyć domyślnego iniekcyju.
Zezwalaj na nieznane poziomy kategorii Dowolne Boolean Prawda Wskazuje, czy należy utworzyć dodatkowy poziom dla nieznanych kategorii. Jeśli testowy zestaw danych zawiera kategorie, które nie są obecne w zestawie danych treningowych, są one mapowane na ten nieznany poziom.

Dane wyjściowe

Nazwa Typ Opis
Nieprzetrenowany model ILearner, interfejs Nieprzetrenowany binarny model klasyfikacji

Zobacz też

Klasyfikacja
Regresja sieci neuronowej
Wieloklasowa sieć neuronowa
Lista modułów A–Z