Chciałbym zaproponować innej społeczności golfistów wyzwanie:
(Sztuczne) sieci neuronowe są bardzo popularnymi modelami uczenia maszynowego, które można projektować i szkolić w celu przybliżenia dowolnej (zwykle nieznanej) funkcji. Często stosuje się je do rozwiązywania bardzo skomplikowanych problemów, których nie wiemy jak rozwiązać algorytmicznie, takich jak rozpoznawanie mowy, niektóre rodzaje klasyfikacji obrazów, różne zadania w autonomicznych systemach sterowania, ... Jeśli szukasz podkładu w sieciach neuronowych, rozważ to doskonałe Artykuł w Wikipedii .
Ponieważ jest to pierwszy z serii, która, mam nadzieję, będzie serią wyzwań związanych z golfem w uczeniu maszynowym, chciałbym, aby sprawy były jak najprostsze:
W wybranym przez siebie języku i ramach projektuj i trenuj sieć neuronową, która biorąc pod uwagę oblicza swój produkt dla wszystkich liczb całkowitych x_1, x_2 między (i włącznie) -10 i 10 . - 10 10
Cel wydajnościowy
Aby się zakwalifikować, Twój model nie może różnić się o więcej niż od poprawnego wyniku dla któregokolwiek z tych wpisów.
Zasady
Twój model
- musi być „tradycyjną” siecią neuronową (wartość węzła jest obliczana jako ważona liniowa kombinacja niektórych węzłów w poprzedniej warstwie, po której następuje funkcja aktywacji),
- może korzystać tylko z następujących standardowych funkcji aktywacyjnych:
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- musi przyjmować albo jako tupel / vector / list / ... liczb całkowitych albo unosi się jako jedyne wejście,
- zwraca odpowiedź jako liczbę całkowitą, liczbę zmiennoprzecinkową (lub odpowiedni kontener, np. wektor lub listę, która zawiera tę odpowiedź).
Twoja odpowiedź musi zawierać (lub link do) cały kod niezbędny do sprawdzenia wyników - w tym przeszkolone masy modelu.
Punktacja
Sieć neuronowa o najmniejszej liczbie wag (w tym wag obciążenia) wygrywa.
Cieszyć się!
f(x) = x
przesyła dane wejściowe?