Udostępnij za pośrednictwem


Regresja sieci neuronowej

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 regresji przy użyciu algorytmu sieci neuronowej

Kategoria: Machine Learning / Inicjowanie modelu / Regresja

Uwaga

Dotyczy: tylko Machine Learning Studio (klasyczne)

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 regresji sieci neuronowej w programie Machine Learning Studio (wersja klasyczna) w celu utworzenia modelu regresji przy użyciu dostosowywalnych algorytmów sieci neuronowych.

Mimo że sieci neuronowe są powszechnie znane do użycia w uczeniu głębokim i modelowaniu złożonych problemów, takich jak rozpoznawanie obrazów, można je łatwo dostosować do problemów regresji. Dowolną klasę modeli statystycznych można określić jako sieć neuronową, jeśli korzystają z adaptacyjnych wag i mogą przybliżone nieliniowe funkcje swoich danych wejściowych. W związku z tym regresja sieci neuronowej jest odpowiednia dla problemów, w których bardziej tradycyjny model regresji nie pasuje do rozwiązania.

Regresja sieci neuronowej jest metodą uczenia nadzorowanego i dlatego wymaga otagowanego zestawu danych, który zawiera kolumnę etykiety. Ponieważ model regresji przewiduje wartość liczbową, kolumna etykiety musi być typem danych liczbowych.

Model można wytszkolić, podając model i oznakowany zestaw danych jako dane wejściowe hiperparametrów trenowania modelu lub dostrajania modelu. Wytrenowany model może następnie służyć do przewidywania wartości dla nowych przykładów wejściowych.

Jak skonfigurować regresję sieci neuronowej

Sieci neuronowe można w szerokim zakresze dostosowywać. W tej sekcji opisano sposób tworzenia modelu przy użyciu dwóch metod:

  • Tworzenie modelu sieci neuronowej przy użyciu architektury domyślnej

    Jeśli zaakceptujesz domyślną architekturę sieci neuronowej, użyj okienka Właściwości, aby ustawić parametry kontrolujące zachowanie sieci neuronowej, takie jak liczba węzłów w warstwie ukrytej, tempo nauki i normalizacja.

    Zacznij tutaj, jeśli jesteś nowym użytkownikom sieci neuronowych. Moduł obsługuje wiele dostosowań, a także dostrajanie modeli, bez dogłębnej znajomości sieci neuronowych.

  • Definiowanie architektury niestandardowej dla sieci neuronowej

    Użyj tej opcji, jeśli chcesz dodać dodatkowe ukryte warstwy lub w pełni dostosować architekturę sieci, jej połączenia i funkcje aktywacji.

    Ta opcja jest najlepsza, jeśli znasz już sieci neuronowe. Aby zdefiniować architekturę sieci, należy użyć języka Net#.

Tworzenie modelu sieci neuronowej przy użyciu architektury domyślnej

  1. Dodaj moduł Regresja sieci neuronowej do eksperymentu w programie Studio (wersja klasyczna). Ten moduł można znaleźć w Machine Learning, Initialize, w kategorii Regresja.

  2. Wskaż 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 Dostrajanie hiperparametrów modelu, aby iterować po kombinacjach i znaleźć optymalną konfigurację.

  3. W skrypcie Warstwa ukryta wybierz pozycję W pełni połączona sprawa. Ta opcja tworzy model przy użyciu domyślnej architektury sieci neuronowej, która dla modelu regresji sieci neuronowej ma następujące atrybuty:

    • Sieć ma dokładnie jedną ukrytą warstwę.
    • Warstwa danych wyjściowych jest w pełni połączona z ukrytą warstwą, a warstwa ukryta jest w pełni połączona z warstwą wejściową.
    • Użytkownik może ustawić liczbę węzłów w warstwie ukrytej (wartość domyślna to 100).

    Ponieważ liczba węzłów w warstwie wejściowej zależy od liczby cech w danych szkoleniowych, w modelu regresji w warstwie wyjściowej może być tylko jeden węzeł.

  4. W przypadku liczby ukrytych węzłów wpisz liczbę ukrytych węzłów. Wartość domyślna to jedna ukryta warstwa ze 100 węzłami. (Ta opcja nie jest dostępna, jeśli definiujesz architekturę niestandardową przy użyciu języka Net#).

  5. W Edukacja rate wpisz wartość, która definiuje krok w każdej iteracji, przed poprawką. Większa wartość kursu nauki może spowodować, że model będzie zbieżny szybciej, ale może przekroczenie lokalnych minimów.

  6. W przypadku ustawienia Liczba iteracji uczenia określ maksymalną liczbę przypadków trenowania przetwarzanych przez algorytm.

  7. W przypadku początkowych wag uczenia wpisz wartość, która określa wagi węzłów na początku procesu uczenia.

  8. W przypadku momentum wpisz wartość do zastosowania podczas uczenia się jako wagę na węzłach z poprzednich iteracji.

  9. W przypadku opcji Typ normalizacji wybierz jedną z następujących metod normalizacji cech:

    • Binning normalizer :Binning creates groups of equal size, a następnie normalizuje każdą wartość w każdej grupie do podziału przez łączną liczbę grup.

    • Normalizuje Gaussa: Normalizacja Gaussa zmienia skalę wartości każdej funkcji na średnią 0 i wariancja 1. Odbywa się to przez obliczanie średniej i wariancji poszczególnych cech, a następnie dla każdego wystąpienia odejmowanie wartości średniej i podzielenie przez główny kwadrat wariancji (odchylenie standardowe).

    • Normalizuj wartość minimalna-maksymalna: normalizacja minimalna-maksymalna liniowo ponownie skaluje każdą funkcję do interwału [0,1].

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

    • Nie normalizuj: normalizacja nie jest wykonywana.

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

  11. W przypadku wartości Iniekt liczb losowych możesz opcjonalnie wpisać 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.

  12. Wybierz opcję Zezwalaj na nieznane poziomy kategorii , aby utworzyć grupowanie dla nieznanych wartości. Model może być mniej precyzyjny w przypadku znanych wartości, 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. Połączenie zestaw danych trenowania i jeden z modułów szkoleniowych:

    Ostrzeżenie

    Jeśli przekażemy zakres parametrów do funkcji Train Model, będzie używana tylko pierwsza wartość z listy zakresów parametrów.

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

    W przypadku wybrania opcji Zakres parametrów i wprowadzenia pojedynczej wartości dla dowolnego parametru określona pojedyncza wartość będzie używana podczas całej czyszczenie, nawet jeśli inne parametry zmienią się w zakresie wartości.

  14. Uruchom eksperyment.

Definiowanie architektury niestandardowej

  1. Dodaj moduł Regresja sieci neuronowej do eksperymentu.

  2. Wskaż 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 Dostrajanie hiperparametrów modelu, aby iterować po kombinacjach i znaleźć optymalną konfigurację.

  3. W bloku Specyfikacja warstwy ukrytej wybierz pozycję Skrypt definicji niestandardowej. Należy wybrać tę opcję, jeśli chcesz zdefiniować niestandardową architekturę sieci neuronowej przy użyciu języka Net #.

  4. Po wybraniu opcji Skrypt definicji niestandardowejzostanie wyświetlone pole tekstowe Definicja sieci neuronowej. Możesz wkleić skrypt Net#, aby zdefiniować niestandardową architekturę sieci neuronowej, w tym liczbę ukrytych warstw, ich połączenia i opcje zaawansowane, takie jak określanie mapowań między warstwami.

  5. W Edukacja rate wpisz wartość, która definiuje krok w każdej iteracji, przed poprawką. Większa wartość kursu nauki może spowodować, że model będzie zbieżny szybciej, ale może przekroczenie lokalnych minimów.

  6. W przypadku ustawienia Liczba iteracji uczenia określ maksymalną liczbę przypadków trenowania przetwarzanych przez algorytm.

  7. W przypadku początkowych wag uczenia wpisz wartość, która określa wagi węzłów na początku procesu uczenia.

  8. W przypadku momentum wpisz wartość do zastosowania podczas uczenia się jako wagę na węzłach z poprzednich iteracji.

  9. W przypadku opcji Typ normalizacji wybierz jedną z następujących metod normalizacji cech:

    • Normalizacja ingu: Tworzenie grup o równym rozmiarze, a następnie normalizowanie każdej wartości w każdej grupie przez podzielenie przez łączną liczbę grup.

    • Normalizuje Gaussa: Normalizacja Gaussa zmienia skalę wartości każdej funkcji na średnią 0 i wariancja 1. Odbywa się to przez obliczanie średniej i wariancji poszczególnych cech, a następnie dla każdego wystąpienia odejmowanie wartości średniej i podzielenie przez główny kwadrat wariancji (odchylenie standardowe).

    • Minimalna-maksymalna: normalizacja minimalna-maksymalna liniowo ponownie skaluje każdą funkcję do interwału [0,1].

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

    • Nie normalizuj: normalizacja nie jest wykonywana.

  10. Wybierz opcję Przykłady mieszania, aby zmienić kolejność przypadków 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 funkcji Iniekt liczb losowych możesz opcjonalnie wpisać 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.

  12. Wybierz opcję Zezwalaj na nieznane poziomy kategorii, aby utworzyć grupowanie dla nieznanych wartości. Wszelkie nieznane wartości w zestawie danych testowych są mapowane na tę nieznaną kategorię. Użycie tej opcji może spowodować, że model będzie nieco mniej dokładny w znanych wartościach, ale zapewni lepsze przewidywania dla nowych (nieznanych) wartości.

    Jeśli ta opcja zostanie odznaczona, model może przewidywać tylko wartości zawarte w danych szkoleniowych.

  13. Połączenie zestaw danych trenowania i jeden z modułów szkoleniowych:

    Ostrzeżenie

    Jeśli przekażemy zakres parametrów do funkcji Train Model, będzie on używać tylko pierwszej wartości 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 będzie używać wartości domyślnych dla uczących się.

    Jeśli wybierzesz opcję Zakres parametrów i wpiszesz pojedynczą wartość dowolnego parametru, ta pojedyncza wartość, która zostanie określona, 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

Przykłady sposobu, w jaki ten algorytm jest używany w eksperymentach, można znaleźć w tych przykładach w Azure AI Gallery:

Eksperymenty zapewniają więcej pomocy na net#. Eksperymenty są powiązane i mają postęp 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;0.01] Float 0.005 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 ukrytych węzłów Dowolne Ciąg 100 Wpisz liczbę węzłów w warstwie ukrytej. W przypadku wielu ukrytych warstw wpisz listę rozdzieloną przecinkami.
Liczba iteracji uczenia >= 1 Liczba całkowita 100 Określanie liczby iteracji podczas nauki
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 puste, aby użyć domyślnego iniekcyju.

Ten parametr jest opcjonalny
Zezwalaj na nieznane poziomy kategorii Dowolne Wartość logiczna true Wskaż, 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
Nie wytrenowany model ILearner, interfejs Nieprzeszkolony model regresji

Zobacz też

Regresja
Lista modułów A–Z