W poniższych ćwiczeniach interaktywnych dowiesz się więcej o wewnętrznym działaniu sieci neuronowych. Najpierw zobaczysz, jak zmiany parametrów i hiperparametrów wpływają na predykcje sieci. Następnie wykorzystasz zdobytą wiedzę, aby wytrenować sieć neuronową w celu dopasowania do danych nieliniowych.
Ćwiczenie 1
Poniższy widget konfiguruje sieć neuronową o następującej konfiguracji:
- Warstwa wejściowa z 3 neuronami zawierającymi wartości
0.00 , 0.00 i 0.00 - Ukryta warstwa z 4 neuronami
- Warstwa wyjściowa z 1 neuronem
- Funkcja aktywacji ReLU zastosowana do wszystkich węzłów warstwy ukrytej i węzła wyjściowego
Sprawdź początkową konfigurację sieci (uwaga: nie klikaj jeszcze przycisków ▶️ ani >| ), a następnie wykonaj zadania znajdujące się pod widżetem.
Zadanie 1
Wartości dla trzech cech wejściowych modelu sieci neuronowej wynoszą 0.00 . Kliknij każdy z węzłów w sieci, aby zobaczyć wszystkie zainicjowane wartości. Przed kliknięciem przycisku Odtwórz ( ▶️ ) odpowiedz na to pytanie:
Jaka wartość wyjściowa, Twoim zdaniem, zostanie wytworzona: dodatnia, ujemna czy 0?
Dodatnia wartość wyjściowa
Wybrano dodatnią wartość wyjściową . Postępuj zgodnie z poniższymi instrukcjami, aby przeprowadzić wnioskowanie na danych wejściowych i sprawdzić, czy masz rację.
Ujemna wartość wyjściowa
Wybrano ujemną wartość wyjściową . Postępuj zgodnie z poniższymi instrukcjami, aby przeprowadzić wnioskowanie na danych wejściowych i sprawdzić, czy masz rację.
Wartość wyjściowa 0
Wybrano wartość wyjściową równą 0. Postępuj zgodnie z poniższymi instrukcjami, aby przeprowadzić wnioskowanie na danych wejściowych i sprawdzić, czy masz rację.
Teraz kliknij przycisk Odtwórz (▶️) nad siecią i obserwuj, jak wypełniają się wszystkie wartości węzłów ukrytych i wyjściowych. Czy powyższa odpowiedź była poprawna?
Kliknij tutaj, aby uzyskać wyjaśnienie
Dokładna wartość wyjściowa będzie się różnić w zależności od losowego zainicjowania parametrów wagi i odchylenia. Ponieważ jednak każdy neuron w warstwie wejściowej ma wartość 0, wagi użyte do obliczenia wartości węzłów warstwy ukrytej zostaną wyzerowane. Na przykład, pierwsze obliczenie węzła warstwy ukrytej będzie wyglądać następująco:
y = ReLU(w 11 * 0,00 + w 21 * 0,00 + w 31 * 0,00 + b)
y = ReLU(b)
Zatem wartość każdego węzła warstwy ukrytej będzie równa wartości ReLU odchylenia (b), która wyniesie 0, jeśli b jest ujemne, a samo b, jeśli b jest 0 lub dodatnie.
Wartość węzła wyjściowego zostanie wówczas obliczona w następujący sposób:
y = ReLU(szer. 11 * x 11 + szer. 21 * x 21 + szer. 31 * x 31 + szer. 41 * x 41 + b)
Zadanie 2
Przed modyfikacją sieci neuronowej odpowiedz na następujące pytanie:
Jeżeli dodasz kolejną ukrytą warstwę do sieci neuronowej po pierwszej ukrytej warstwie i tej nowej warstwie przydzielisz 3 węzły, zachowując wszystkie parametry wejściowe oraz parametry wagi/odchylenia bez zmian, to obliczenia których innych węzłów zostaną zmienione?
Wszystkie węzły w sieci, z wyjątkiem węzłów wejściowych
Wybrałeś wszystkie węzły w sieci, z wyjątkiem węzłów wejściowych . Postępuj zgodnie z poniższymi instrukcjami, aby zaktualizować sieć neuronową i sprawdzić, czy masz rację.
Tylko węzły w pierwszej ukrytej warstwie
Wybrałeś tylko węzły z pierwszej ukrytej warstwy . Postępuj zgodnie z poniższymi instrukcjami, aby zaktualizować sieć neuronową i sprawdzić, czy masz rację.
Tylko węzeł wyjściowy
Wybrałeś tylko węzeł wyjściowy . Postępuj zgodnie z poniższymi instrukcjami, aby zaktualizować sieć neuronową i sprawdzić, czy masz rację.
Teraz zmodyfikuj sieć neuronową, dodając nową ukrytą warstwę z 3 węzłami w następujący sposób:
- Kliknij przycisk + po lewej stronie tekstu 1 ukrytej warstwy , aby dodać nową ukrytą warstwę przed warstwą wyjściową.
- Kliknij przycisk + dwa razy nad nową ukrytą warstwą, aby dodać do niej 2 kolejne węzły.
Czy Twoja odpowiedź powyżej jest poprawna?
Kliknij tutaj, aby uzyskać wyjaśnienie
Zmienia się tylko węzeł wyjściowy. Ponieważ wnioskowanie w tej sieci neuronowej odbywa się w sposób „sprzężenia zwrotnego” (obliczenia przebiegają od początku do końca), dodanie nowej warstwy do sieci wpłynie tylko na węzły znajdujące się po nowej warstwie, a nie na te, które ją poprzedzają.
Zadanie 3
Kliknij drugi węzeł (od góry) w pierwszej ukrytej warstwie grafu sieciowego. Przed wprowadzeniem jakichkolwiek zmian w konfiguracji sieci, odpowiedz na następujące pytanie:
Jeśli zmienisz wartość wagi w 12 (wyświetlanej pod pierwszym węzłem wejściowym, x 1 ), obliczenia których innych węzłów mogą zostać zmienione dla niektórych wartości wejściowych?
Nic
Nie wybrałeś żadnej opcji . Postępuj zgodnie z poniższymi instrukcjami, aby zaktualizować sieć neuronową i sprawdzić, czy masz rację.
Drugi węzeł w pierwszej ukrytej warstwie, wszystkie węzły w drugiej ukrytej warstwie i węzeł wyjściowy.
Wybrano drugi węzeł w pierwszej warstwie ukrytej, wszystkie węzły w drugiej warstwie ukrytej oraz węzeł wyjściowy . Postępuj zgodnie z poniższymi instrukcjami, aby zaktualizować sieć neuronową i sprawdzić, czy masz rację.
Wszystkie węzły w pierwszej ukrytej warstwie, drugiej ukrytej warstwie i warstwie wyjściowej.
Wybrałeś wszystkie węzły w pierwszej warstwie ukrytej, drugiej warstwie ukrytej i warstwie wyjściowej . Postępuj zgodnie z poniższymi instrukcjami, aby zaktualizować sieć neuronową i sprawdzić, czy masz rację.
Teraz kliknij w pole tekstowe wagi w 12 (wyświetlanej pod pierwszym węzłem wejściowym, x 1 ), zmień jej wartość na 5.00 i naciśnij Enter. Obserwuj zmiany na wykresie.
Czy Twoja odpowiedź była poprawna? Zachowaj ostrożność podczas weryfikacji: jeśli wartość węzła się nie zmienia, czy oznacza to, że obliczenia bazowe się nie zmieniły?
Kliknij tutaj, aby uzyskać wyjaśnienie
Jedynym węzłem, na który ma to wpływ w pierwszej ukrytej warstwie, jest drugi węzeł (ten, który kliknąłeś). Obliczenia wartości dla pozostałych węzłów w pierwszej ukrytej warstwie nie zawierają parametru w 12 , więc nie są one modyfikowane. Dotyczy to wszystkich węzłów w drugiej ukrytej warstwie, ponieważ ich obliczenia zależą od wartości drugiego węzła w pierwszej ukrytej warstwie. Podobnie, wartość węzła wyjściowego jest modyfikowana, ponieważ jej obliczenia zależą od wartości węzłów w drugiej ukrytej warstwie.
Czy myślałeś, że odpowiedź brzmiała „brak”, ponieważ żadna z wartości węzłów w sieci nie zmieniła się po zmianie wartości wagi? Zwróć uwagę, że podstawowe obliczenia dla węzła mogą ulec zmianie bez zmiany jego wartości (np. zarówno ReLU(0), jak i ReLU(–5) generują wynik 0). Nie zakładaj, jak sieć została dotknięta, patrząc tylko na wartości węzłów; koniecznie przejrzyj również obliczenia.
Ćwiczenie 2
W ćwiczeniach „Cross of Feature” w module „Dane kategoryczne” ręcznie konstruowałeś krzyże cech, aby dopasować dane nieliniowe. Teraz sprawdzisz, czy potrafisz zbudować sieć neuronową, która automatycznie uczy się dopasowywać dane nieliniowe podczas treningu.
Twoje zadanie: skonfiguruj sieć neuronową, która będzie w stanie oddzielić pomarańczowe punkty od niebieskich punktów na poniższym diagramie, uzyskując stratę mniejszą niż 0,2 zarówno w przypadku danych treningowych, jak i testowych.
Instrukcje:
W poniższym interaktywnym widżecie:
- Zmodyfikuj hiperparametry sieci neuronowej, eksperymentując z niektórymi z następujących ustawień konfiguracyjnych:
- Dodaj lub usuń ukryte warstwy, klikając przyciski + i - po lewej stronie nagłówka WARSTWY UKRYTE na schemacie sieciowym.
- Dodaj lub usuń neurony z ukrytej warstwy, klikając przyciski + i - nad kolumną ukrytej warstwy.
- Zmień współczynnik uczenia, wybierając nową wartość z listy rozwijanej Współczynnik uczenia nad diagramem.
- Zmień funkcję aktywacji, wybierając nową wartość z listy rozwijanej Aktywacja nad diagramem.
- Kliknij przycisk Odtwórz (▶️) znajdujący się nad diagramem, aby wytrenować model sieci neuronowej przy użyciu określonych parametrów.
- Obserwuj wizualizację modelu dopasowującego się do danych w miarę postępu szkolenia, a także wartości strat testowych i strat szkoleniowych w sekcji Dane wyjściowe .
- Jeśli model nie osiągnie straty poniżej 0,2 w danych testowych i treningowych, kliknij „Resetuj” i powtórz kroki 1–3 z innym zestawem ustawień konfiguracji. Powtarzaj ten proces, aż osiągniesz pożądane rezultaty.
Kliknij tutaj, aby zapoznać się z naszym rozwiązaniem
Udało nam się osiągnąć stratę testową i szkoleniową poniżej 0,2 poprzez:
- Dodanie 1 ukrytej warstwy zawierającej 3 neurony.
- Wybór współczynnika uczenia wynoszącego 0,01.
- Wybór funkcji aktywacji ReLU.