Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Pierwsza sieć neuronowa
W tym ćwiczeniu wytrenujemy naszą pierwszą małą sieć neuronowa.
Sieci neuronowe pozwolą nam poznać modele nieliniowe
krzyżówek cech.
Zadanie 1. Podany model łączy 2 cechy wejściowe w
jeden neuron. Czy ten model nauczy się nieliniowości? Uruchom go, aby potwierdzić
prawdopodobną.
Zadanie 2. Spróbuj zwiększyć liczbę neuronów w ukrytej warstwie z
1 na 2, ale możesz też zmienić aktywację linearną na nielinearną.
takich jak ReLU. Czy potrafisz utworzyć model, który uczy się nieliniowości? Czy może modelować?
danych?
Zadanie 3. Spróbuj zwiększyć liczbę neuronów w ukrytej warstwie z
2–3 w przypadku aktywacji nieliniowej, np. ReLU. Czy potrafi modelować dane?
co osłabia efektywność przekazu? Czym różni się jakość modelu w trakcie jego uruchomienia?
Zadanie 4. Kontynuuj eksperymentowanie, dodając lub usuwając ukryte warstwy
i neuronów na warstwę. Możesz też zmieniać tempo nauki,
regularyzacji i innych ustawieniach uczenia się. Jaki jest najmniejszy?
liczba neuronów i warstw, które można wykorzystać, aby doprowadzić do straty testów
wynosi 0,177 lub mniej.
Czy zwiększenie rozmiaru modelu poprawia dopasowanie czy jak szybko ten staje się zbieżny?
Czy to zmienia się, jak często będzie się zbliżać do odpowiedniego modelu? Na przykład spróbuj użyć polecenia
następujący architektura:
Pierwsza ukryta warstwa z 3 neuronami.
Druga ukryta warstwa z 3 neuronami.
Trzecia ukryta warstwa z 2 neuronami.
(Odpowiedzi pojawią się tuż pod ćwiczeniem).
Kliknij ikonę plusa, aby uzyskać odpowiedź na zadanie 1.
Aktywacja jest ustawiona na Liniowy, więc ten model nie może się uczyć
żadnych nieliniowości. Strata jest bardzo duża, a model nie spełnia swoich oczekiwań
danych.
Kliknij ikonę plusa, aby odpowiedzieć na zadanie 2.
Nieliniowa funkcja aktywacji może się uczyć modeli nieliniowych. Pamiętaj jednak:
pojedyncza warstwa ukryta z 2 neuronami nie może odzwierciedlać wszystkich nieliniowości
w tym zbiorze danych, będą one miały dużą utratę nawet bez szumu:
niekorzystnie wpływa na dane. Te ćwiczenia nie są deterministyczne, więc niektóre biegi
nie nauczą się skutecznego modelu, podczas gdy inne uruchomienia będą działać dość dobrze.
Najlepszy model może nie mieć takiego kształtu, jakiego oczekujesz.
Kliknij ikonę plusa, aby uzyskać odpowiedź na zadanie 3.
To ćwiczenie cechuje niedeterministyczny charakter Playground. O
do modelowania zbioru danych wystarczy jedna ukryta warstwa z 3 neuronami (brak
szumu), ale nie wszystkie uruchomienia zbiegają się z dobrym modelem.
Wystarczą 3 neurony, ponieważ funkcja XOR może być wyrażona jako połączenie 3 połów półpłaszczyzn (aktywacja ReLU). Widać to w
obrazy neuronów, które pokazują dane wyjściowe poszczególnych neuronów. Dobry model
z 3 neuronami i aktywacją ReLU powstanie 1 obraz z niemal
linii pionowej, gdzie X1 jest wartością dodatnią (lub ujemną; znak może
), jeden obraz z prawie poziomą linią, wykrywający oznaki
X2 i 1 zdjęcie z linią ukośną, wykrywające
interakcji.
Jednak nie wszystkie uruchomienia będą się zgadzać z dobrym modelem. Niektóre uruchomienia nie będą działać
jest lepszy niż model z 2 neuronami, gdzie można zobaczyć zduplikowane neurony
przypadków.
Kliknij ikonę plusa, aby uzyskać odpowiedź na zadanie 4.
Jedna ukryta warstwa z 3 neuronami może modelować dane, ale nie
nadmiarowość, więc przy wielu uruchomieniach w efekcie w efekcie tracę neuron i nie nauczy się
dobry model. Pojedyncza warstwa z więcej niż 3 neuronami ma więcej nadmiarowości,
więc z większym prawdopodobieństwem będziecie łatwiej korzystać z dobrego modelu.
Jak widzieliśmy, pojedyncza warstwa ukryta, która zawiera tylko 2 neurony, nie może modelować danych.
cóż. Jeśli spróbujesz to zrobić, zobaczysz, że wszystkie elementy w warstwie wyjściowej
mogą być jedynie kształtami składającymi się z linii pochodzących z tych dwóch węzłów. W tym przypadku
głębsza sieć może modelować zbiór danych lepiej niż tylko pierwsza ukryta warstwa:
poszczególne neurony w drugiej warstwie mogą modelować bardziej złożone kształty, takie jak
w prawej górnej ćwiartce, łącząc neurony w pierwszej warstwie. Podczas dodawania
druga ukryta warstwa może nadal modelować zbiór danych lepiej niż pierwsza ukryta
samej warstwy, lepiej dodać do niej więcej węzłów,
niech więcej linii będzie częścią zestawu, na podstawie którego powstaje druga warstwa
kształtów.
Jednak model z jednym neuronem w pierwszej ukrytej warstwie nie może nauczyć się dobrego
bez względu na to, jak głęboko Dzieje się tak, ponieważ dane wyjściowe pierwszego
zmienia się tylko wzdłuż jednego wymiaru (zwykle linii ukośnej), która nie jest
do modelowania tego zbioru danych. Późniejsze warstwy nie mogą tego skompensować.
jak bardzo złożone, informacje zawarte w danych wejściowych zostały nieodwracalnie
zgubiony.
A co gdyby, zamiast próbować stworzyć małą sieć, mieliśmy wiele warstw z nazwą,
i wielu neuronów w przypadku prostego problemu? Jak zaobserwowaliśmy, pierwsza
będzie można wypróbować
wiele różnych nachyleń linii. A drugi
będą mogły gromadzić je
na wiele różnych kształtów,
a na kolejnych warstwach widać mnóstwo kształtów.
Umożliwiając modelowi uwzględnianie wielu różnych kształtów przy tak wielu
różnych ukrytych neuronów, masz wystarczającą ilość miejsca, aby model mógł rozpocząć
łatwe dopasowywanie do szumu w zestawie treningowym,
które pasują do fabuły danych treningowych, a nie do
uogólnionych danych podstawowych. W tym przykładzie większe modele mogą być skomplikowane
aby dopasować dokładne punkty danych. W skrajnych przypadkach duży model
może nauczyć się wyspy wokół pojedynczego punktu hałasu,
zapamiętywanie danych. Jeśli model będzie o wiele większy,
że często radzi sobie gorzej niż prostszy model,
czyli wystarczyć wystarczającej liczby neuronów, aby rozwiązać problem.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 2024-08-22 UTC."],[[["This exercise explores training a neural network to learn nonlinearities and model data effectively."],["Increasing the number of neurons and using nonlinear activation functions like ReLU improves model performance."],["A single hidden layer with 3 neurons using ReLU can sufficiently model the data, but model quality varies between runs."],["Deeper and wider networks risk overfitting, potentially memorizing noise instead of generalizing patterns."],["While adding layers can improve model performance, redundant layers and neurons might lead to worse results compared to a simpler, well-structured model."]]],[]]