Sieci neuronowe: ćwiczenia na placu zabaw

Pierwsza sieć neuronowa

W tym ćwiczeniu wytrenujemy naszą pierwszą małą sieć neuronową. Sieci neuronowe dadzą nam możliwość nauki modeli nielinearnych bez użycia różnych funkcji.

Zadanie 1. Model opisany poniżej łączy 2 funkcje wejściowe w 1 neuron. Czy model nauczy się nieliniowych zachowań? Uruchom je, aby potwierdzić

Zadanie 2. Spróbuj zwiększyć liczbę neuronów w ukrytej warstwie z 1 do 2 i spróbuj zmienić aktywację liniową na nieliniową, na przykład ReLU. Czy można utworzyć model, który może uczyć się nieliniowości? Czy może skutecznie modelować dane?

Zadanie 3. Spróbuj zwiększyć liczbę neuronów w ukrytej warstwie 2 z 3 za pomocą nielinearnej aktywacji, na przykład ReLU. Czy może skutecznie modelować dane? Czym różni się jakość modelu w zależności od modelu?

Zadanie 4. Kontynuuj eksperymentowanie, dodając lub usuwając ukryte warstwy i neurony na warstwę. Możesz też zmienić tempo, normalizację oraz inne ustawienia związane z uczeniem się. Jaka jest najmniejsza liczba neuronów i warstw, która daje wynik testowy 0,177 lub niższy?

Czy zwiększenie rozmiaru modelu powoduje poprawę dopasowania, czy też szybko skurcza się? Czy to się zmienia, jak często łączy się z dobrym modelem? Spróbuj na przykład takiej architektury:

  • Pierwsza ukryta warstwę z 3 neuronami.
  • Druga ukryta warstwa z 3 neuronami.
  • Trzecia ukryta warstwę z 2 neuronami.

(Odpowiedzi pojawią się tuż pod ćwiczeniem).



Inicjacja sieci neuronowej

To ćwiczenie wykorzystuje dane XOR, ale analizuje powtarzalność trenowania sieci neuronowych i znaczenie inicjalizacji.

Zadanie 1. Uruchom model zgodnie z przebiegiem 4–5 razy. Przed każdym testem kliknij przycisk Zresetuj sieć, aby uzyskać nową losową inicjalizację. (Przycisk Resetuj sieć to okrągła strzałka resetowania widoczna po lewej stronie przycisku odtwarzania). Pozwól na uruchomienie przez co najmniej 500 kroków, aby zapewnić konwersję. Z czym mają się łączyć poszczególne dane wyjściowe? Co się mówi o roli inicjowania w optymalizacji niezwiązanych z konwersjami?

Zadanie 2. Spróbuj stworzyć model nieco bardziej skomplikowany, dodając warstwę i kilka dodatkowych węzłów. Powtórz próby w zadaniu 1. Czy spowoduje to dodatkową stabilność wyników?

(Odpowiedzi pojawią się tuż pod ćwiczeniem).



Sieć neuronowa

Ten zbiór danych jest szumem spiralnym. Oczywiście model liniowy nie będzie oczywiście działać, ale nawet ręcznie zdefiniowane krzyżyki elementów mogą być trudne do zbudowania.

Zadanie 1. Wytrenuj najlepszy model wykorzystujący tylko X1 i X2. Możesz dodawać lub usuwać warstwy i neurony, zmieniać ustawienia nauczania, takie jak tempo nauczania, częstotliwość regularnego czy rozmiar grupy. Jaka jest najlepsza strata testowa? Jak gładkie są dane wyjściowe modelu?

Zadanie 2. Nawet w przypadku neuronowych sieci inżynieryjnych często jest potrzebnych do uzyskania największej wydajności. Spróbuj dodać dodatkowe cechy produktu lub inne przekształcenia, takie jak sin(X1) i sin(X2). Masz lepszy model? Czy dane wyjściowe modelu są bardziej płynne?

(Odpowiedzi pojawią się tuż pod ćwiczeniem).