I zostały aprowizacji w tensorflow zabaw . Jednym z zestawów danych wejściowych jest spirala. Bez względu na wybrane parametry wejściowe, bez względu na to, jak szeroką i głęboką wykonuję sieć neuronową, nie mogę dopasować się do spirali. Jak badacze danych dopasowują dane o tym kształcie?
neural-networks
classification
tensorflow
Souradeep Nanda
źródło
źródło
Odpowiedzi:
Istnieje wiele podejść do tego rodzaju problemu. Najbardziej oczywistym jest tworzenie nowych funkcji . Najlepsze funkcje, jakie mogę wymyślić, to przekształcenie współrzędnych na współrzędne sferyczne .
Nie znalazłem sposobu na zrobienie tego na placu zabaw, więc właśnie stworzyłem kilka funkcji, które powinny w tym pomóc (funkcje grzechu). Po 500 iteracjach będzie się nasycać i będzie się wahać z wynikiem 0,1. Sugeruje to, że nie będzie żadnych dalszych ulepszeń i najprawdopodobniej powinienem poszerzyć ukrytą warstwę lub dodać kolejną.
Nic dziwnego, że po dodaniu tylko jednego neuronu do ukrytej warstwy łatwo dostajesz 0,013 po 300 iteracjach. Podobnie dzieje się po dodaniu nowej warstwy (0,017, ale po znacznie dłuższych 500 iteracjach. Również nie jest zaskoczeniem, ponieważ trudniej jest propagować błędy). Najprawdopodobniej możesz grać z szybkością uczenia się lub uczeniem się adaptacyjnym, aby przyspieszyć, ale nie o to tutaj chodzi.
źródło
Idealnie sieci neuronowe powinny być w stanie samodzielnie znaleźć tę funkcję, bez zapewniania przez nas cech sferycznych. Po kilku eksperymentach udało mi się osiągnąć konfigurację, w której nie potrzebujemy niczego opróczX1 i X2) . Ta sieć zbiegła się po około 1500 epokach, co jest dość długie. Więc najlepszym sposobem może być dodanie dodatkowych funkcji, ale staram się tylko powiedzieć, że nadal można się bez nich połączyć.
źródło
Oszukiwanie ...arctan( y, x ) , r jest (x2)+y2))--------√ .
theta
jestW teorii,x2) i y2) powinny działać, ale w praktyce jakoś zawiodły, chociaż czasami to działa.
źródło
To jest przykład waniliowego placu zabaw Tensorflow bez żadnych dodatkowych funkcji i modyfikacji. W zależności od modelu czas trwania Spirali wynosił od 187 do ~ 300 Epoki. Użyłem Lasso Regularization L1, aby wyeliminować współczynniki. Zmniejszyłem rozmiar partii o 1, aby uniknąć nadmiernego dopasowania produkcji. W drugim przykładzie dodałem trochę szumów do zestawu danych, a następnie podniosłem L1, aby to zrekompensować.
źródło
Rozwiązanie Sięgnąłem po godzinie próby zazwyczaj zbiega się w odległości zaledwie 100 epok .
Tak, wiem, że nie ma tam najbardziej płynnej granicy decyzyjnej, ale zbiega się dość szybko.
Nauczyłem się kilku rzeczy z tego spiralnego eksperymentu:
Przypadkowo rozwiązanie, które wymyśliłem, jest bardzo podobne do rozwiązania dostarczonego przez Salvadora Dali .
Dodaj komentarz, jeśli znajdziesz więcej intuicji lub uzasadnień.
źródło