Wyzwanie
Znajdź najmniejszą sieć neuronową ze sprzężeniem zwrotnym, taką, że biorąc pod uwagę dowolny trójwymiarowy wektor wejściowy z wpisami liczb całkowitych w , sieć wyprowadza największy (tzn. „Najbardziej pozytywny”) pierwiastek z wielomian z błędem ściśle mniejszym niż .
Dopuszczalność
Pojęcie dopuszczalności w moim poprzednim wyzwaniu polegającym na grze w sieci neuronowe wydawało się nieco restrykcyjne, dlatego w przypadku tego wyzwania wykorzystujemy bardziej liberalną definicję sprzężonej sieci neuronowej:
Neuron jest funkcją , który jest określony przez wektor o ciężarach , A Odchylenie , i aktywacja funkcji w następujący sposób:
Sprzężona do przodu sieć neuronowa z węzłami wejściowymi jest funkcją którą można zbudować z sekwencji neuronów, gdzie każdy pobiera dane wejściowe z i generuje skalar . Biorąc pod uwagę określony zestaw zwęzłów wyjściowych, to wyjście sieci neuronowych jest wektorem .
Ponieważ funkcje aktywacyjne można dostosować do dowolnego zadania, musimy ograniczyć klasę funkcji aktywacyjnych, aby wyzwanie było interesujące. Dozwolone są następujące funkcje aktywacji:
Tożsamość.
ReLU.
SoftPlus.
Sigmoid.
Sinusoid.
Ogólnie, dopuszczalna sieć neuronowa jest określona przez węzły wejściowe, sekwencję neuronów i węzły wyjściowe, podczas gdy każdy neuron jest określony przez wektor wag, obciążenie i funkcję aktywacji z powyższej listy. Na przykład dopuszczalna jest następująca sieć neuronowa, choć nie spełnia ona celu wydajności tego wyzwania:
Węzły wejściowe:
Neurony: dla
Węzły wyjściowe:
Ta sieć składa się z 8 neuronów, z których każdy ma zerową stronniczość i aktywację tożsamości. Innymi słowy, sieć ta oblicza uogólnioną sekwencję Fibonacciego wygenerowaną przez i a następnie wyprowadza z tej sekwencji 5., 9. i 10. liczbę w tej kolejności.
Punktacja
Biorąc pod uwagę liczbę rzeczywistą z końcowym rozszerzeniem dziesiętnym, niech będzie najmniejszą nieujemną liczbą całkowitą dla której i niech będzie najmniejszą nieujemną liczbą całkowitą dla której jest liczbą całkowitą. Wtedy mówimy, jest precyzja z .
Na przykład ma dokładność , podczas gdy ma dokładność .
Twój wynik to suma dokładności wag i stronniczości w sieci neuronowej.
(Np. Powyższy przykład ma 16 punktów).
Weryfikacja
Chociaż korzenie można wyrazić za pomocą wzoru sześciennego , największy dostęp do korzenia można najłatwiej uzyskać za pomocą metod numerycznych. Zgodnie z sugestią @ xnora obliczyłem największy pierwiastek dla każdego wyboru liczb całkowitych , a wyniki można znaleźć tutaj . Każda linia tego pliku tekstowego ma formę a,b,c,root
. Na przykład w pierwszym wierszu podano, że największy pierwiastek z wynosi około .
Edycja: oryginalny plik, który opublikowałem, zawierał błędy w przypadkach, gdy wielomian zawierał wiele elementów głównych. Obecna wersja powinna być wolna od takich błędów.
a
niezerowe, a nawet tylko 1. Zalecam też umieszczenie niektórych przypadków testowych, dając pierwiastek wysokiej precyzji, abyśmy mogli sprawdzić, czy nasze wartości mieszczą się w granicach 0,1. Dobrze byłoby mieć dane wyjściowe dla wszystkich możliwych danych wejściowych, prawdopodobnie w łączu, ponieważ to dużo dla postu.
x -> a * sin(b * softplus(x) + c)
może zastąpić dowolną skończoną liczbę punktów danych z liczbą całkowitą x
na dowolną precyzję przy użyciu bardzo dużej i precyzyjnej częstotliwości.
a=0
i kwadrat ma dwa złożone pierwiastki?